Ok, so if you've been watching tech news at all in the last few days you're probably heard the phrase "Net Neutrality" thrown all around, and you've probably heard the name Thomas Wheeler (The Chairman of the FCC) tossed around with it, and likely a couple dozen words you wouldn't let your daughter hear. But here's the real question, what is Net Neutrality, and why should I care?
"What is it?"
Net Neutrality is basically the "Immortal Declaration" of data, that all data is created equal. Different software or services use different protocols, different ports, styles of transmission, etc. Basically Net Neutrality says that it doesn't matter either way, data is data and it's all treated the same way, none getting higher priority or faster speeds than the other.
"Why do I care?"
Because if Comcast is allowed to charge for one company to get "faster conduits to users" then the smaller companies out there that can't afford those kinds of things are going to be slower. Let's clarify this a little more with a very simple example. If you've got a line that can carry 1000 megabits per second, and two companies are equal over it, they each transfer at 500 megabits per second. Now company number one pays a premium, so they get 700 megabits per second instead. The other client didn't pay anything, but they're now being punished by getting lowered to 300 megabits, because that's all that's left.
"But why do I care about that?"
Well, you care because this means smaller companies will be facing bandwidth handicaps, which will cause service issues they can't hope to resolve. You care because the truest nature of the internet, the fact that it's unbiased, unmoderated, pure data is now gone and you're only getting passable service from the few that are paying the most, while the rest are lost in the crossroads. You care because the "small guy" trying to start his business with an amazing idea will fail because he's being forced out by big companies, not because the idea was bad.
"No, really, why do I care?"
Jeez, you're really a jerk... ok, you care because your own experience of the internet will be defined not by creativity, or new ideas or passion, it will be defined by who paid more to get it in front of you while the rest of the servers in the world time out.
Am I saying to protest, or get frantic, or start writing letters? No, I'm saying to know what's going on, be aware, and alert, and then make your own choice on what to do. Now you know the basics, go read the news and do your research, or don't, and leave knowing just a little more than you did yesterday.
Later!
Tuesday, April 29, 2014
Monday, April 28, 2014
Meaningful Variables People!
So this one is aimed at the programmers out there, with a little pet peeve of mine. I wrote the code standard at my company, with the help of the other developers here, but I really have to say that it's just common sense that you don't use variable "integer" to represent an integer unless it's just a counter used in a loop.
In other words, be just a LITTLE bit creative people. If you're counting inventory, how about "ammtLeft." If you're working on capacity, "seatsRemaining." Hell, I don't care if you use "placesForAsses" just put something there that is meaningful! "Count" doesn't really cut it, nor does "total" in any cases where it might be ambiguous what you're using it to total.
So unless you're like me and you're naming your strings "int" and your floats "string", then please just try to give it 15 seconds of thought and make it just that much easier to let someone else help solve problems without deciphering what you wrote line by line. Thanks!
In other words, be just a LITTLE bit creative people. If you're counting inventory, how about "ammtLeft." If you're working on capacity, "seatsRemaining." Hell, I don't care if you use "placesForAsses" just put something there that is meaningful! "Count" doesn't really cut it, nor does "total" in any cases where it might be ambiguous what you're using it to total.
So unless you're like me and you're naming your strings "int" and your floats "string", then please just try to give it 15 seconds of thought and make it just that much easier to let someone else help solve problems without deciphering what you wrote line by line. Thanks!
Friday, April 18, 2014
The Room Two
So today I'm just going to make a quick note about a pair of games that have absolutely blown me away, but I don't want to make this a novel so hold tight for your quick look at The Room and The Room Two, from Fireproof Games.
Both games are basically the same concept. If you know what a room escape game is, you can safely skip over the rest of this paragraph, just watch out for the spikey pit at the end. A room escape game is a game that has the player searching through items, cabinets, drawers, or whatever else is around, so that they can unlock the next puzzle and eventually the next door to leave to the next room. Wash, rinse, repeat. If you don't like puzzles, logical or optical, then this kind of game probably isn't for you.
Welcome back skippers. Now The Room, if you ask me, is the game that ruined all other room escape games for me. It's got fantastic graphics, excellent intuitive controls, clever puzzles, and is easily the most fun I've ever had in that kind of puzzle. The ambiance of the hauntingly perfect music just finishes the deal, and that combined with the top notch graphics give a really immersive experience that's only problem is the chance of losing your whole afternoon before you realize it.
The Room did feel a touch short once I was finished, but never once did I regret the purchase because it was so clever and fun. The Room Two I've not finished yet, but it carries everything I said above, except it seems notably longer, with more puzzles, and just as much fun. I find myself looking for time where I'm waiting for something to open so I can arrive early and play while I wait.
So my final thoughts, you really should try these games. The Room is available for $1 on the google play store, and The Room Two is $3, though at the time I'm writing it, The Room Two is also available on Humble Bundle as well, so go check it out somewhere. You won't regret it!
Thursday, April 17, 2014
K.I.S.S. - No, not the band...
You've probably heard KISS before. Some say "Keep it Simple and Straightforward" or "Keep it Sweet and Simple." There are a surprising number of variants to this simple acronym, but the point remains the same.
As a developer I struggle with this often. It's hard to resist the urge to add complex functions, intricate testing, and twisting logic behind the scenes to give every nuance it's chance to be handled in the perfect and expected way. The problem is that the more complex you make something, the easier it is for a simple mistake to slip in and the more layers you have to debug it. Sometimes it's worth the hour to plan out a simpler solution, then execute that one, so long as it meets your requirements.
The moral of this story is this, whenever you can, Keep it Simple, Stupid.
As a developer I struggle with this often. It's hard to resist the urge to add complex functions, intricate testing, and twisting logic behind the scenes to give every nuance it's chance to be handled in the perfect and expected way. The problem is that the more complex you make something, the easier it is for a simple mistake to slip in and the more layers you have to debug it. Sometimes it's worth the hour to plan out a simpler solution, then execute that one, so long as it meets your requirements.
The moral of this story is this, whenever you can, Keep it Simple, Stupid.
Wednesday, April 16, 2014
Hey Coders - They're ALL your customers!
So last week I posted about how to treat customers, now I want to make a point or two aimed at developers, coders, and the like. In case you didn't realize it, everyone, everywhere is your customer. Let me explain with a retail example.
Let's say a company makes a widget, they then distribute that widget through wholesale distributors, who then sell the widgets to stores who then sell to customers. When a customer buys something and it's broken, they take it back to the store. The store then tells the distributor, who in most cases will exchange it and send the bad one back to the manufacturer. Guess what, that means that every link in that chain is, directly or indirectly, a customer of the manufacturer.
Well for developers it's even worse. Everyone in your own company is your customer. The salesmen showing off your product can't have it break or fail. Your manager is basically your distributor, and other departments count on your code working for their livelihood as well. Then the clients you're selling your program too are obviously your customers, but anyone logging into that software, like your client's clients, are also your clients indirectly.
You, as a developer, need to remember to try your best to consider your code from the perspective of every one of those link in the chain. Your job, like anyone else, is to make your customers happy (if possible) and functional, so don't forget to look down that chain every now and then, if you can ask how they like it, but especially remember to not shrug them off because they're approval is even more relevant than your manager's.
Let's say a company makes a widget, they then distribute that widget through wholesale distributors, who then sell the widgets to stores who then sell to customers. When a customer buys something and it's broken, they take it back to the store. The store then tells the distributor, who in most cases will exchange it and send the bad one back to the manufacturer. Guess what, that means that every link in that chain is, directly or indirectly, a customer of the manufacturer.
Well for developers it's even worse. Everyone in your own company is your customer. The salesmen showing off your product can't have it break or fail. Your manager is basically your distributor, and other departments count on your code working for their livelihood as well. Then the clients you're selling your program too are obviously your customers, but anyone logging into that software, like your client's clients, are also your clients indirectly.
You, as a developer, need to remember to try your best to consider your code from the perspective of every one of those link in the chain. Your job, like anyone else, is to make your customers happy (if possible) and functional, so don't forget to look down that chain every now and then, if you can ask how they like it, but especially remember to not shrug them off because they're approval is even more relevant than your manager's.
Friday, April 11, 2014
OH NO, Heartbleed! What do I do?
Right now everyone in the IT community is buzzing about Heartbleed, and talking techie talk about it which likely leaves many people wondering things like "What can I do?"
While I'm not a security expert, being an IT/Developer person there are some basics that are simple to do that most people should be doing.
While I'm not a security expert, being an IT/Developer person there are some basics that are simple to do that most people should be doing.
- Change your passwords regularly (if you're using your high school locker combo and you're not in high school, WARNING)
- Keep an eye on your CC statements, don't just pay them blindly (What? I didn't order 45 Nickel-plated muskrat picklers!)
- Make sure the url you're at isn't weird. (I wanted to go to www.yahoo.com, not www.igotyourpassword.yahoodler.com)
There are more practices, but those are some of the basics. Now, what is heartbleed? Heartbleed, in the simplest sense, is a way for people to peek at what you're typing into some of those secure sites (the https sites that have a little lock next to them in the URL bar). Normally that lock means that you're secure, but heartbleed got past that security level. What's worse, it's a server-side problem, so you can't really fix it, just work around it until they fix it.
Now the question everyone's asking... What do I do now?!
Well my advice is this:
- Change your passwords
- Keep an eye on your CC statements for fraudulent charges
Sound familiar? Good, you ARE awake! Yay, here's a cookie (don't worry, google already gave it to you). So the part about being server side adds a little hiccup here. Since the problem is server-side you need to be careful and change your passwords regularly now, even more often than you used to and especially once again when a site confirms that they're now heartbleed free. The reason? Because someone might have your password now, so you should change it, but since heartbleed isn't fixed everywhere yet, that means that your new password is vulnerable too.
There's a very good chance that you're safe, and no one has your information... but isn't it better to be safe rather than sorry if someone got it?
So that's it for today, post your comments, questions, and rants below so I can equally ignore you all, and see you next week!
Thursday, April 10, 2014
The customer is always right...
This is a basic one, folks, from way back when. Let's take a quick look at what it means.
It means that you go out of your way to help the customer. It means that when possible you give them the answers and services they seek. It means you always treat them with the utmost respect and never in an inappropriate way.
It does not mean you let them take advantage of you or your company, or to gain access or credit where it's unwarranted. Use your head, but don't ever forget your duty to show respect and manners to that customer.
And when possible, PLEASE don't make us sit through 30 minutes of hold music or annoying button pressing just to be hung up on.
Just sayin'...
It means that you go out of your way to help the customer. It means that when possible you give them the answers and services they seek. It means you always treat them with the utmost respect and never in an inappropriate way.
It does not mean you let them take advantage of you or your company, or to gain access or credit where it's unwarranted. Use your head, but don't ever forget your duty to show respect and manners to that customer.
And when possible, PLEASE don't make us sit through 30 minutes of hold music or annoying button pressing just to be hung up on.
Just sayin'...
Wednesday, April 9, 2014
Tell someone your plans...
This is just a quick bit of advice. Lots of times I have plans, and want to do things, then just get sidetracked, or lose interest. Next time you really wanna see how a side project goes, tell a friend that you're going to try doing it. That makes it more real, it's not an idea, or a random thought, now it's a plan, and that makes it easier to keep yourself on track for it.
Tuesday, April 8, 2014
KEEP your schedule...
So I post my first late blog since I started with a simple warning. When you take precautions and you're careful, and well-organized and doing things well, don't assume you're doing things well so you can stop being cautious..
Let's see a real life example that probably happens more than anyone would care to admit. Person has chronic pain for some reason or another. They start taking medication (with a doctor's permission) on a regular regimen. Low and behold, the pain which was chronic is now gone. This does NOT mean you can stop the medication. Modify maybe, explore other options perhaps, but if you just stop the medication, the odds are you'll be right back where you were.
When you take steps to make something work well, and it works well, that does not mean the steps aren't required. So make yourself a schedule, or pattern of work, and keep to it.
Test, Code, Test, Debug, Test, Release.
When you get 5 releases that are all flawless, that does not mean you skip a test cycle people! So don't just make your schedule, KEEP it!
Let's see a real life example that probably happens more than anyone would care to admit. Person has chronic pain for some reason or another. They start taking medication (with a doctor's permission) on a regular regimen. Low and behold, the pain which was chronic is now gone. This does NOT mean you can stop the medication. Modify maybe, explore other options perhaps, but if you just stop the medication, the odds are you'll be right back where you were.
When you take steps to make something work well, and it works well, that does not mean the steps aren't required. So make yourself a schedule, or pattern of work, and keep to it.
Test, Code, Test, Debug, Test, Release.
When you get 5 releases that are all flawless, that does not mean you skip a test cycle people! So don't just make your schedule, KEEP it!
Monday, April 7, 2014
Get thee to a Con...
Today I'm just going to say you should go to a Con. And if you don't know, by Con I mean Convention. Why? Because they're fun, and social, and they're a wonderful resource to make friends, business contacts, and just kick back for a few days.
And I don't want to hear "but I don't like star trek" or whatever else you're thinking. There are so many Cons on so many topics I couldn't even hope to list them all. Whether you like Firearms, Video Games, My Little Ponies, Cross-stitch, Painting, Driving, Sports, Business Logic, or just about anything else you could imagine, there's a Con somewhere that is all about your favorite passion or hobby.
And I just want to say, if your favorite hobby is "Business Logic" I think you really need to re-read the oxford definition of "Hobby."
Seriously though, folks, get out there and have fun! They're a great way to see what's trending, learn new details, meet people with the same passions, and purchase related products usually cheaper than general stores.
So find your hobby, find their convention, and I'll see you at the Con!
And I don't want to hear "but I don't like star trek" or whatever else you're thinking. There are so many Cons on so many topics I couldn't even hope to list them all. Whether you like Firearms, Video Games, My Little Ponies, Cross-stitch, Painting, Driving, Sports, Business Logic, or just about anything else you could imagine, there's a Con somewhere that is all about your favorite passion or hobby.
And I just want to say, if your favorite hobby is "Business Logic" I think you really need to re-read the oxford definition of "Hobby."
Seriously though, folks, get out there and have fun! They're a great way to see what's trending, learn new details, meet people with the same passions, and purchase related products usually cheaper than general stores.
So find your hobby, find their convention, and I'll see you at the Con!
Friday, April 4, 2014
Bait and Switch... Come on people!
Ok people, today is apparently rant day, so please bear with me.
I understand that you want to sell your software and to do so you want to give out free trials. This makes perfect sense to me, as a developer. What I don't accept is how you do so with deceit and trickery. Come on people. When you offer a limited function version, you need to say that right away.
In the last 48 hours, I installed three short-cut game developer packages. You know, those apps that say "Use us to make mobile apps and we'll make all the cross-platform junk for you!" Yes, I'm actually a developer, but I was really curious to see these bundlers in action, and also because I was curious if point and drag development could make something as full-featured and fun as standard.
Yeah well instead of seeing either of those things, and being able to make a happy little review on them next week, I'm going to have some fun lambasting them here, by name. I want to preface this by stating that all three of these packages advertised that they were free and gave you the ability to cross-develop, and all included iOS, Android, HTML5, and more. Seems they all had one thing in common, trickery.
Let's start with GameMaker Studio from YoYo Games. It looks very promising, with the ability to start developing right away with what appeared to be rather intuitive options, though it did take me a few minutes to figure out how to zoom in/out on my canvas. Then I noticed that it was set to HTML5 in the type, and I wanted to set it to Android, the environment I wanted to test. I click android and get a "oh no, you need to download that plugin" kind of alert, with a link on it. Fine. Well I follow the link and see the pricing page. Full version software (Which I assume is needed to install the plugins) was $99, and that's not counting the plugins. iOS was $199 and Android was $199... that's five hundred dollars just to do what they told me I could do for free before I started!
Now let's talk about Construct 2 from Scirra. Once again, the interface was clean, though it was a bit confusing as the "Browse examples" button opened explorer showing me lots of examples that doubleclicking didn't open, I had to try dragging it off the explorer window onto the canvas which loaded it, but then I got a jQuery error when I tried to run it. So the software was a little buggy, it happens. But again, I went into more detail to try and export into Android and sure enough, please buy the full version. Small print later told me about the fact that I had to upgrade to "Personal" for $120, or "Business" for $400 to export to mobile devices, which was the whole sales pitch of the product in the first place.
Finally GameSalad. This one I heard about long ago but remembered in the back of my mind so I thought I'd check them out after being let down twice. This time I was more careful and just perused the website. Go ahead, look at it. Right of the front page, on the left: Create Games Rapidly, Drag & Drop, no Code - Download Creator for Free - Develop and publish on all major platforms, then it showed icons for Windows, Mac, iOS, Android.. the usual suspects. Did you hear "try our free version" anywhere in there? Did you get the idea that the download it's offering you can't actually publish on most of those listed platforms? No, in the top right corner of the page, there's a tiny little icon that says "go pro" and that takes you to the page that tells you that the pro version is $300 a year. (This one DID allow iOS dev on the free version, to be fair)
There you go, three examples of why I'm pissed off this morning. Yes, I looked back at the steam pages for the first two and after scrolling past all the descriptions, right above the comments I saw the small print that mentioned that the version that was free didn't actually do anything but these other versions that cost money did, but I am very frustrated that I needed to look down to the small print to see the "All important advertised features not available in this version" note.
So yeah, people, please. I'm not asking you to stop making trimmed down versions of your software, just be honest in what someone's spending their time getting.
I understand that you want to sell your software and to do so you want to give out free trials. This makes perfect sense to me, as a developer. What I don't accept is how you do so with deceit and trickery. Come on people. When you offer a limited function version, you need to say that right away.
In the last 48 hours, I installed three short-cut game developer packages. You know, those apps that say "Use us to make mobile apps and we'll make all the cross-platform junk for you!" Yes, I'm actually a developer, but I was really curious to see these bundlers in action, and also because I was curious if point and drag development could make something as full-featured and fun as standard.
Yeah well instead of seeing either of those things, and being able to make a happy little review on them next week, I'm going to have some fun lambasting them here, by name. I want to preface this by stating that all three of these packages advertised that they were free and gave you the ability to cross-develop, and all included iOS, Android, HTML5, and more. Seems they all had one thing in common, trickery.
Let's start with GameMaker Studio from YoYo Games. It looks very promising, with the ability to start developing right away with what appeared to be rather intuitive options, though it did take me a few minutes to figure out how to zoom in/out on my canvas. Then I noticed that it was set to HTML5 in the type, and I wanted to set it to Android, the environment I wanted to test. I click android and get a "oh no, you need to download that plugin" kind of alert, with a link on it. Fine. Well I follow the link and see the pricing page. Full version software (Which I assume is needed to install the plugins) was $99, and that's not counting the plugins. iOS was $199 and Android was $199... that's five hundred dollars just to do what they told me I could do for free before I started!
Now let's talk about Construct 2 from Scirra. Once again, the interface was clean, though it was a bit confusing as the "Browse examples" button opened explorer showing me lots of examples that doubleclicking didn't open, I had to try dragging it off the explorer window onto the canvas which loaded it, but then I got a jQuery error when I tried to run it. So the software was a little buggy, it happens. But again, I went into more detail to try and export into Android and sure enough, please buy the full version. Small print later told me about the fact that I had to upgrade to "Personal" for $120, or "Business" for $400 to export to mobile devices, which was the whole sales pitch of the product in the first place.
Finally GameSalad. This one I heard about long ago but remembered in the back of my mind so I thought I'd check them out after being let down twice. This time I was more careful and just perused the website. Go ahead, look at it. Right of the front page, on the left: Create Games Rapidly, Drag & Drop, no Code - Download Creator for Free - Develop and publish on all major platforms, then it showed icons for Windows, Mac, iOS, Android.. the usual suspects. Did you hear "try our free version" anywhere in there? Did you get the idea that the download it's offering you can't actually publish on most of those listed platforms? No, in the top right corner of the page, there's a tiny little icon that says "go pro" and that takes you to the page that tells you that the pro version is $300 a year. (This one DID allow iOS dev on the free version, to be fair)
There you go, three examples of why I'm pissed off this morning. Yes, I looked back at the steam pages for the first two and after scrolling past all the descriptions, right above the comments I saw the small print that mentioned that the version that was free didn't actually do anything but these other versions that cost money did, but I am very frustrated that I needed to look down to the small print to see the "All important advertised features not available in this version" note.
So yeah, people, please. I'm not asking you to stop making trimmed down versions of your software, just be honest in what someone's spending their time getting.
Thursday, April 3, 2014
Set your gambling limit...
Most people know that before you go gambling at a casino you should decide what your cut-off is. Me, I usually take fifty dollars. If I lose it all, then it's gone, and I do something else with my time. If I win then I can on the fly decide how much to re-gamble, up to that original fifty so that I never end up in a hole I can't dig out of.
Well I did some thinking on this and I think the same principal applies, in some ways, to any development project even though we don't always think about it. Every project manager has to weigh the risks of starting a new project against the risks of enhancing existing ones.
Now I'm not saying that employing software developers is a gamble, but rather that you need to have in mind how much you're willing to put into a project before your investment (the gamble) outweighs the possible return (the winnings).
As a developer, sometimes it's hard to accept that there are times when a really good idea just isn't worth doing because of the time/personnel investment. So just keep in mind your resources, your goals, and how much you can "risk" to get where you want to be, and you'll be able to plan out reasonable steps that get larger as you go, and who knows where you'll end up!
Well I did some thinking on this and I think the same principal applies, in some ways, to any development project even though we don't always think about it. Every project manager has to weigh the risks of starting a new project against the risks of enhancing existing ones.
Now I'm not saying that employing software developers is a gamble, but rather that you need to have in mind how much you're willing to put into a project before your investment (the gamble) outweighs the possible return (the winnings).
As a developer, sometimes it's hard to accept that there are times when a really good idea just isn't worth doing because of the time/personnel investment. So just keep in mind your resources, your goals, and how much you can "risk" to get where you want to be, and you'll be able to plan out reasonable steps that get larger as you go, and who knows where you'll end up!
Wednesday, April 2, 2014
Humble Bundle - Get your game charity on!
This is really just a quick promotion to a site I really have been a long-time supporter of. www.HumbleBundle.com is a fantastic site that sells game bundles, not only at an amazing price, but for charity.
Every two weeks, usually, there's a new bundle of games. You can pay any amount you want ($1 or higher) to get some of the games, or pay more than the average to unlock every game in the bundle. Today's bundle, at the moment I'm writing this, is about 3.80 average, so paying $4 unlocks every game in the bundle. And you even get to pick how much of your payment goes to charity, the developers, or the site itself for upkeep and costs.
Check out their site today, most times they offer games on windows and mac, but the current bundle is for Android too!
Every two weeks, usually, there's a new bundle of games. You can pay any amount you want ($1 or higher) to get some of the games, or pay more than the average to unlock every game in the bundle. Today's bundle, at the moment I'm writing this, is about 3.80 average, so paying $4 unlocks every game in the bundle. And you even get to pick how much of your payment goes to charity, the developers, or the site itself for upkeep and costs.
Check out their site today, most times they offer games on windows and mac, but the current bundle is for Android too!
Subscribe to:
Posts (Atom)