AutoDMC's PICAYUNE INTELLIGENCE

Thoughts of small town life in Minnesota. Circulation 47.

SoftLayer: 640K Ought To Be Enough For Anybody

Tags: , ,

bill_gatesEveryone knows the famous Bill Gates quote.  Smartest Man In The World fails to understand his own industry.  Guffaw, guffaw.

Turns out he didn’t say that at all, as this InnerLayer post discusses:

I was talking with a friend about memory on computers. He said he wanted a computer with tons of memory for Photoshop. I said something to the effect that I’ve never seen a desktop that can handle more than 16 GB, and that most operating systems now don’t want to handle more than that… that Windows will only give a process 4 GB max, 2 GB for the application and 2 GB shared with the operating system. He then said “I can’t imagine having to use more than 16 GB!” This immediately reminded me of Bill Gates’ famous quote, that “640K ought to be more than enough for everybody.” Striving for accuracy, I went to the Internet to find when and where he said this.

Interesting fact came up: HE NEVER SAID IT. He vehemently denies having ever uttered this phrase. Every quote I’ve seen is always un-sourced, so let’s give him the benefit of the doubt. So what makes this quote clog the tubes so easily?

First, the irony that a person renowned for his computer visions of the future would say something so backward causes people to smile. Secondly, there is a nugget of truth. In a 1989 speech, Bill Gates said:

“I have to say that in 1981, making those decisions, I felt like I was providing enough freedom for 10 years. That is, a move from 64k to 640k felt like something that would last a great deal of time. Well, it didn’t – it took about only 6 years before people started to see that as a real problem.”

Bill never said “640K is enough for everybody.” He said “640K should keep everyone happy for the next 10 years.” Turns out he was wrong. Within less than 6 years we started hitting the “640K limit”… which wasn’t a hard limit at all, it was just a limit proposed by the operating system at the time. Mr. Gates thought that 640K was generous, and in the beginning it was. But as the industry marched forward, it started cramping. Pretty soon, we had DOS memory managers, extended and expanded memory, virtual memory… we would do ANYTHING to escape the 640K limit.

So what’s the moral of this story? First, you can’t believe just anything you read on the Internet. Sometimes something gets into the tubes because it’s funny, not because it’s accurate. Secondly, predicting the computer industry is hard. To be a successful computer development company (like the portion of SoftLayer I work in), you have to be able to look to the horizon and attempt to spy the most likely location the software industry is moving in. We developers work on projects 3, 6, 9, 12 months before they’re used by our users; we have to make predictions at least double that size in advance to give growth room whilst the next tool is developed. And, I dare say, we’ve done a good job of that around here!

In conclusion, Bill Gates never said “640K should be enough for everybody.” That quote is a myth. It’s a funny joke, but a joke nonetheless. However, Bill Gates did actually say this at a Macintosh conference:

“To create a new standard, it takes something that’s not just a little bit different; it takes something that’s really new and really captures people’s imagination — and the Macintosh, of all the machines I’ve ever seen, is the only one that meets that standard.”

And this time there’s video evidence. And there’s the not-quite-quote where Bill Gates implies that Vista isn’t really the best thing since 8086 Segmented Physical Memory Models. Aren’t real quotes more humorous fake ones? I think so.

Originally posted on Wednesday, January 23rd, 2008 at http://theinnerlayer.softlayer.com/2008/640k-should-be-enough-for-everybody/

SoftLayer: The Usage Of Complex Algorithms For Password Generation

Tags: ,

I’ve always wanted to write one of those snazzy whitepapers with the highfalutin’ soundin’ titles.  So in this post on the InnerLayer, I described my method for developing tough-to-crack but easy-to-remember passwords…

Passwords are difficult. On the first hand, you want to create a password that uncrackable by anyone, lest they be teenage hackers or CSI experts with magical hacking tools. On the other hand, the password has be rememberable by you yourself, lest only teenage hakcers and CSI experts with magical hacking tools are able to access your data.

So, how do you make passwords?

One of the more secure ways are to use a random letter generator, like random.org, to build random strings, pick one, and memorize it. It’s pretty secure (random.org uses real random noise to produce it’s random numbers)and with seven random alphanumeric characters, the password search space is about 2.2 trillion combinations! But are you really going to remember “QRSr0Fu” or “W96TUON” two weeks from now? (My generated set had “myELlRK” which I might be able to remember…) If you type your password every hour or so, you might remember this by muscle memory pretty quick. Just in time to have to change it, I bet.

Another way is to take a word or phrase, turn some letters into |33+sp34k, and you get something more random, but much more rememberable. So, for example, “minivan” becomes “m1n1v4n!” and “washington” becomes “w4sh1ngt0n!?!” These are actually quite rememberable; the use of non-standard characters disallows the use of rainbow tables and dictionary attacks, so they’re much less suseptable to cracking. However, what happens when you forget the “!”, or that “Washington” gets “?!?” or that you did NOT turn “t” into “+”? You could end up going through a few cycles trying to “guess” your own password. Again, if you use it all the time, you’ll learn by muscle memory. And this lets you come up with some cool passwords, like “c4p+41nK1rk”. How can you beat that?

My favorite way, however, lets you write your password down in plain sight. I tend to cycle through passwords, and if you’re anything like me you have two online banking passwords, four credit card or loan company passwords, a work domain password, 6 email passwords, a home log in password, etc, etc, etc. If you take the easy way out and use the same password everywhere, you end up making kittens and security experts cry. If, however, you have a completely separate randomized combination for each account, your brain will get stuck in an infinite loop. Using this method, you get to write down your passwords and tack them to the wall. Or put ‘em on a sticky note. In plain sight. Email them to yourself without a care. It uses a special type of encryption to keep your password safe. Not AES or DES or TEA or other TLAs. I call this “Hippocampy Encryption” (named in honor of the part of the brain that does memory type activities).

The key is to write down a set of clues that will tell you (but only you) what your password is. You can add symbols to help you remember what kind of encoding to use for your password. Here’s a password I just made up right now as an example:


Shawn's rival ^
shout your home team
Esirpretne
Sam.

Because everything on this note is simply a hint for your specific brain to recall a password, it’s specific to you. Hints don’t even have to have anything to do with the subject. The hint “Red October” could tell you the word “fortworth”, whereas for me, I’d be trying “R4M1US”, “M1SSL3S”, “jackryan”, “TomClancy”, etc. You can string three or four hints together for a password. Note, these create long passwords, and your coworkers may start to believe that you have a superhuman capacity for memorizing long strings of randomized data. Do not do anything to dissuade them from this belief. And, because the hints point to common words and numbers already lodged in your grey matter, you may be suprised just how fast you type in that 20 character long password. Compared to my speed on 7 character random strings, it’s blazing.

And due to the pattern matching ability of your brain, remembering the passwords are easy. Lets say you’ve written your clue on the back of one of your business cards, so you have it handy if you need it. After a few days, just SEEING a business card will bring your new password to the front of your mind. After a while, you’ll stop needing your hint sheet, as you’ll just remember the password. And when it comes time to change your password, shred your card and your postit, post a new one (in a different color if you can, helps the brain), and give yourself a few days. Unlike scrawling your random digits on a paper or card, even if somebody stole your “Hippocampically Encoded” card, they would have to REALLY know you (or be a really good guesser) to get the password. Even with your card, you’ve reduced them to brute searching. And if your card/note turns up missing, it takes about 30 seconds to whip up a new hint sheet. Not only is your attacker brute forcing your hint sheet, but it’s the wrong hint sheet anyway!

So… have you guessed my password above? It’s GARYkemp!1071Max. ‘Course, you’d only know that if you knew that I played Pokemon and left my rival’s name at default, that I decided that “^” meant “Make it all uppercase”, that my home team is the Kemp High School (and that I was talking high school football), that by “Shout” I meant “give it an exclamation point”, but that the whole word should be lower case (because the hint is), that Esirpretne is “Enterprise” backwards, and that I meant to make the serial numbers backwards (but not the NCC part), and that by Sam (a very common name) I meant “Give me the name of Sam’s partner in that incredibly funny cartoon by Steve Purcell, Sam and Max: Freelance Police.” The period is just decoration. If you did guess it, contact the NSA. I hear they’re hiring people like you.

Originally posted on Wednesday, February 13th, 2008 at http://theinnerlayer.softlayer.com/2008/the-usage-of-complex-algorithms-for-password-generation/

SoftLayer: INFRASTRUCTURE!

Tags: , ,

I’m one of those nerds who get excited about INFRASTRUCTURE!  Web applications are exciting and fun… but I like looking in the blogs to see how they wired up the servers and wrote the programs that DO what the application does!

I assisted with SoftLayer’s “Virtual Private Racks” (an infrastructure upgrade that lets you pool server resources as if they were wired into one rack and one router, no matter where the servers were physically located) and the SoftLayer API (a SOAP api that lets you do EVERYTHING on the SoftLayer network)… and both projects are all about INFRASTRUCTRE!

So… my InnerLayer blog entry about INFRASTRUCTURE:

Wal-Mart! Champion of Retail! Who else can build a large brick box, paint it blue, stuff it with stuff, and make money hand over fist? What is the source of this power? Many will say it’s their sheer size. However, this isn’t true! Because what many people forget is that Wal-Mart had to start with one single store, just like every other retailer in America. So what is their secret?

INFRASTRUCTURE!

It’s been said that Wal-Mart can track a single apple from the tree to the front of the store. Every piece of inventory is logged and tracked from pickup to delivery. Every single bottle of aspirin, every sock, every donut is duly logged and mashed up in massive data warehouses where giant computers munch the data and produce useful reports. You know what the most popular item is at Wal-Mart? According to an employee friend of mine, in the Cedar Creek Lake Area of North Texas, it’s Bananas. They know how many bananas are sold, when they were sold, what the best day of the week is for banana sales, and which cashier is responsible for the most banana sales during a month. They can track banana sales over time, by store, region, trucking company, banana producer, you name it. They know which employee was on duty in the fresh fruit aisle when banana sales were high, and which employee used to be on duty in the fresh fruit aisle when banana sales were low. It’s all in there, if you want it.

However, Wal-Mart had to build this technology from scratch. They had to install special data systems in their distribution centers. They had to build their own server farms, lease their own data lines… did you know Wal-Mart has it’s own SATELLITE NETWORK?!? The Wal-Mart Satellite Network is one of the largest private satellite systems in the world, carrying real time data from every single Wal-Mart store and distribution center to Wal-Mart’s headquarters in Bentonville, Arkansas, where it is poured into their massive data warehouse. They can plan, instantly, to take care of overstocks and shortfalls at every store, as soon as it happens.

You don’t need to build your own satellite network to get competition crushing infrastructure today. Using the technology solutions provided by SoftLayer, and simple connections to the Internet, you too can have the type of infrastructure necessary to succeed in today’s business world. We provide world class servers for your number crunching, huge amounts of networked storage for your data warehouse, geographically diverse datacenters for disaster security, and a private network that allows you to tie it all together as blazing high speeds. Using our awesome API 3.0, you can automate just about every part of maintaining your infrastructure. Leveraging the Internet, you can build data portals that allow your partners to keep you up to date on production, to plan finances, track bananas, whatever you want to do!

We’ve already taken care of the hard work required to build the infrastructure. Now all you have to do is leverage it.

 

Originally posted on Thursday, April 17th, 2008 at http://theinnerlayer.softlayer.com/2008/infrastructure/.

SoftLayer: On Site Development

Tags: ,

Sometimes, when you write a blog post, somebody else reads what you write a different way than you meant it.

Due to a typo, the hyphen was left out of the title for this post when I sent it into the blog.  The correct title is “On-Site Development.”

Apparently, without the hyphen, the word grouping gets screwed up;  my friend Dan pointed out that the title seemed to be saying that the blog post was about “Site Development.”  Kinda “On the Origins of the Species” kinda thing.  Stupid order of operations biting me in the posterior!

This post was basically talking about how nice it is when the programmers for an application and the users of an application are near enough that continual dialog can be made.  And how important it is in this day and age to have an agile programming language and programming framework to allow updates to your programs…

I have a friend who worked at an internationally recognized fast food restaurant. It relies heavily on it’s computer systems to operate. Being a programmer (I’ve always preferred Computer Alchemist), I’ve always been fascinated with the command and control programs used at these restaurants, and have drilled many family members and friends to describe (in the most non-specific non-job-endangering way) what they do with those computers to do their job.

At the fast food restaurant, every order is entered into the cash register at the front of the line, processed by the computer systems on site, the orders are relayed to the kitchen in realtime and displayed on monitors, and various thermal ticket printers spit out meal tickets to be affixed to the various food items to describe their state (Double Cheeseburger, No Pickles, No Onions, Add Secret Sauce). It’s an amazing dance of software.

But I noticed that my friend the grill cook was constantly complaining about the system. Apparently, the order processing is really real time. When the guy up front presses the “double cheeseburger” button, it immediately lights up in the back but it doesn’t alert you that this is an order in progress! So, if the cooks are in a rush and just preparing orders as fast as possible, they might already have the pickles on the burger before the lady up front presses the “No Pickles” button, updating the display. Also, updated items are NOT IDENTIFIED by the system, so if the burger is already wrapped and the burger man is already moving to the next little square, it might not be caught! (Keep this in mind: most order “errors” at this internationally recognized fast food restaurant are caused by slow order takers, or slow customers, or customers who change their mind at the end of an order (Oh, could you make that burger with no onions?). Remember, if the guys in the back are rushing, get your order together in your head before you speak. If you say “Double Cheeseburger, no pickles, no onions, add secret sauce” just like that, it’ll pop into the system the right way!)

My question, of course, was “Why not rewrite the cash registers to be more awesome?” See, the old registers tied into a small computer in the back room that tied into the monitors in the kitchen. All state was held on that one machine, so obviously as soon as it was updated, it would appear on the monitors. But I couldn’t figure out why they kept using this stupid backwards system. It’s 2008! When I worked in the local greasepit in my small town, we used paper tickets we were more efficient than this fast food restaurant’s system! So why haven’t they updated? Simple: the people who can fix it aren’t there to use it.

Aha! That’s what makes SoftLayer so awesome. See, our programming staff is right here, in the same office as everyone else (except for those people who work in our datacenters, but they have our internal IM, email, and phone numbers and know they can contact us at any time.). If something breaks, or if something is built in a backwards or strange way, we know immediately and can turn around and fix it. In fact, we have a whole lot of programmers, as a ratio of developers to normal people. This high ratio allows us to have the best control portal in the world, and to add features quickly. See, if only developers worked at that fast food restaurant, and saw how the system was used, and were allowed to make changes (another awesome bit about SoftLayer: management is open to change. You’d be surprised how many obvious changes simply are not allowed by management in some dev shops…), then it would be a much easier place for everyone involved. And maybe I’d get my Double Cheeseburger right. Without the onions.

Originally posted on Wednesday, May 14th, 2008 at http://theinnerlayer.softlayer.com/2008/on-site-development/

SoftLayer Blog: Thinkin’ Like A Programmer

Tags: ,

My former job, before I moved back to Kemp, back to my favorite town in the world, was at a rockin’ software company known as SoftLayer. I call it a software company, because the division I worked in (Development) was so important. I loved it, because they knew that their control panel was what sold servers, not the other way around, and gave generous amounts of time, money, and effort into the Dev team.

Well, SoftLayer has a blog, and it’s a good one. Not a stodgy corporate blog where everyone blabs about, say, Accounting (except for Gary Kinman), but an interesting blog of life experiences and computers. It’s called the Innerlayer, and it can be found here: http://theinnerlayer.softlayer.com/

The last post I made there is something I come to face with all the time: Thinkin’ Like A Programmer. In our highly specialized world; where specialization is important for the various fields to keep moving forward, where people can no longer be jacks-of-ALL-trades, there comes a point where people fail to communicate; it’s almost like separate languages being spoken. And that’s where my post comes in: it’s not maliciousness, it’s simple miscommunication. I was just Thinkin’ Like A Programmer.

“I can’t figure this out. My email client says I can’t attach more than 10 M of data, but then it says I have 16501 K of data attached, and it can’t send that. What’s a ‘M’? What’s a ‘K’? Why is the second number so big? I only attached a few files!”

I explained to my uncle that “M” stood for Megabyte, and “K” stood for Kilobyte. That a simple calculation to convert “K”s to “M”s was to take the last three digits off the “K”s and you had the size in “M”s, give or take one. That he had 16-17 Megabytes of data attached to his email, and he can only have 10.

His response was to wonder (1) why didn’t the client just tell him he had “too much data,” and (2) why did the program give him Ms AND Ks, instead of picking one?

My reply consisted of (1) it did, that’s what the message said, and (2) because the programmer was thinking like a programmer.

See, my uncle is a very, very smart man. He worked in a video arcade as the guy who rewired the arcade machines when they exploded when somebody poured a Coke on them. He knew how the machines worked in and out. And got paid good money. When he moved back to Texas, he took up industrial and residential electric work, and is now a fully licensed foreman who’s in high demand all through the area. When he says “I won’t take a job that pays less than $20 a hour,” it’s not because he’s picky, it’s because he doesn’t have to. Sharp as a tack. But he’s not a computer pro. Not a problem, people can’t be pros at everything. This ain’t the 1700s, where you can pick up a test tube and learn everything known about chemistry in a few days.

But why would a programmer write a error message for an email program that would be unreadable to end users? Because it’s perfectly readable to him! When my uncle read out the message, my first response was “You have about 7 Megabytes too many attachments. Send a second email.”

Therefore, a programmer checking his work would think this was a great error message. Not only does it tell you that the email can’t be sent, but it tells you why. The limit is in Megabytes, but email messages are typically sent in Kilobytes, so the data is already there. See how helpful I am! And the unit conversion between Ks and Ms are very easy; programmers do it 10 times a day and wouldn’t even notice it.

That’s why we have end user testing, to try to catch these things that programmers won’t notice. It’s just a simple conversion of units! But for an electrician trying to send an email, it was as opaque as to him as if he had told me that I had a single pole dual throw make-break when I need a dual pole single throw break-make. It makes perfect sense, if you’re used to it. And if I think about it for a minute, I could figure it out most likely… but the point is, his error message is useless to me as it’s formatted. But it makes perfect sense to him.

So, what’s the moral of the story? Well, moral 1 is, try to be sure that all users of your product can understand what you say. We have an extensive testing process here at SoftLayer to make sure our data screens are usable without any confusion. Moral 2 is that programmers don’t “actively” attempt to “keep people from using their computers” by “making their programs too complex.” For us, it’s completely transparent and useful, as useful to us as a circuit diagram is to an electrician. Just let us know if we make something a bit to opaque; it wasn’t on purpose, and sometimes it’s an easy fix. We were just thinking like programmers.

SoftLayer Blog:  Thinkin’ Like A Programmer

© 2009 AutoDMC's PICAYUNE INTELLIGENCE. All Rights Reserved.

This blog is powered by Wordpress and Magatheme by Bryan Helmig.