musings of a peripatetic

What IT can learn from Video games

As I sit here in front of my computer, I hear my roommate in the other room talking to his Xbox 360.  He’s actually playing in a multi-player online game and communicating with people via the in game voice chat.  I think it’s Halo 3 but the actual game he’s playing is irrelevant.  They all seem to have the same technology these days–high resolution, hi fidelity landscapes that one interacts with with friends and strangers alike.  So what relevance does this have to IT?  It’s _simple_.  Simplicity is something we in IT seem to run away from as fast as possible.  His video game presents a cohesive interface that allows him to interact in a virtual world more vibrant than the sci-fi portrayed by major motion pictures 15 years ago.  It is high technology made accessible and put in the hands of the masses.  Comparatively the interfaces of our IT computing systems are in the stone age.   At best the collaboration tools I use are overlays in my environment.  Band-aids slapped on a series of deep wounds.  So what am I complaining about?  My problem is that software development and management should think deeply about the medium in which it is presented.  I spend my day working in 4 windows.  My email, my web browser, my instant messenger and my shell session.  I happen to like my shell session most of all.  It’s the most powerful interface I have because it can encompass the other 3.    I can control just about anything from it and with one command I can travel from Durham to Boston, Florida even China.  I’m talking about bash and ssh by extension.    There are days when I want to be entirely in a shell session.  I run screen, I have finch for IM on one window, mutt for email on another and listen to music or control video playback on a third.  I used to work on mainframes and there it was TSO over TN3270.  Terminals are very powerful interfaces to those who know how to drive them.  Individual pieces of software can be wonderful.  However, whenever we have to change context, change from one user interface to another, it takes time.  It’s the integration that is the problem.  The glue.  We need to thing about changing the paradigm of the way we get to interfaces and creating a landscape that fosters innovation.  My roommate has a persistent Voice over IP (VOIP) connection with everyone in his game.  He doesn’t have to start to initiate a voice call, it’s already going.  Everyone is in the same landscape with different views of the same information.  In a day and age of working mobile, virtual team, and reduced travel budgets, IT solutions need to make screen sharing and collaboration as intuitive as Halo 3.

Have you seen any of these articles saying how Vista is terrible and Vista has failed?  The truth of the matter is that Vista tries to be everything to all and failed.  This is no fault of Vista.  The problem is that the paradigm of individual operating systems is changing.  A slashdot meme that is slowly fading is “imagine a beowolf cluster.”  Now we talk of virtualization.  What changed?  The hardware got more powerful than it wasn’t as important to make look two like one as to make one look like two.  I read an article recently that touted the IBM mainframe because it was able to have 85% utilization vs. 15% utilization of commodity hardware.  In the same article a VMware spokesperson made the claim that their software also allows hardware to be 85% efficient. I used to work on mainframes and  everything was done on a tn3270 session.  Mainframes were carved up with z/VM to allow lost of z/OS images to run in parallel, but it was always done with a tn3270 session.  One interface.  I never saw most of the machines I worked on because I didn’t need to.  The only time I had any sort of physical interaction was when I had to load tapes for maintenance and even that went away at the end. 

Command line interfaces aren’t going away any time soon.  Microsoft’s offering a headless version of Windows 2008 is an acquiescence of that fact.  However, a text mode console isn’t always the best interface.  They are ill suited to deal with images, or non-linear editing or casual users.  At the other extreme of a command line interface is immersive 3D.  There’s been a lot of talk about Second Life recently.  To anyone who’s read Snowcrash by Neal Stephenson, you recognize that Second Life is a poor interpretation of The Steet.  Second life is a video game.  It’s a user interface that attempts to be a representation of data.  It is a top down approach and as a result is semantically entirely unlike the street.  The street was an abstraction of data, an aggregate of interfaces to systems, but it’s a vision of what might be. 

These days I work with the previously mentioned “commodity hardware” and while I’m working with decentralized hardware,  I still can do remote administration via KVM over IP.  KVM over IP is wonderful although it can have a few limitations, like the need for an addition module for remote hard power cycling.  The rest of my time I use VMware.  When I’m sitting at my computer doing remote administration.  KVM over IP and VMware present a very similar interface.  The catch is that I can’t access them from the same interface. The latest VMware server beta has a Web interface.  The console doesn’t work properly in Firefox on Ubuntu, so I go to a VMware image running windows and access it that way.  The abstraction of processing data and power is no longer at a individual OS level but data center level.  A result of this shift is that I don’t care if my computer crashes nearly as much as I care if my connection is down.  Whether testers/developer/it professionals/users are presented with VNC, Remote Desktop, a RMA or VMware console or KVM over IP doesn’t matter, to the end user it’s a window. The paradigm of “my machine” has changed.   So the way we give them the box should be changed.  We need to envision our entire IT infrastructure as a cloud which we carve out bits which are given to people as needed and returned to the cloud when finished.  Amazon’s Elastic Compute Cloud (EC2) and Simple Storage Service (S3) are early examples of this mentality.   S3 provides a simple API for data storage of any size and similarly EC2 provides a API that allows creation and control of an Amazon Machine Image (AMI).   These services are too homogeneous for an test organization because they currently only supports x86 Linux images.  However it points toward a comprehensive test framework with network sandboxing, storage and different architectures all controlled from a common API.

What should IT look like in the future?  The paradigm of “my computer” are going to look a lot more gray and we must answer the question of how we bring together communication and work sessions.  How do we pull together VOIP, chat, shell sessions, email and other collaboration tools?  Lets start by looking at video games.

twitter is the new finger (a bedtime story for little hackers)

Once upon a time there was an operating system philosophy called Unix. Unix was the operating system of all the good people at universities and colleges. If you wanted to a use a computer at school there was only one computer to use, a Unix machine, and everybody had an account on the same Unix server and you accessed it with a terminal. People with accounts on the machine were called users and all your files were stored in your home directory. The amazing thing was you never had to carry around a computer and you could get to them whenever you had access to terminal. Unix made it easy to share, it made sure everybody was nice. Pale men in dark rooms made sure everything worked, most of the time. The happy little code monkeys wrote services like sendmail that allowed users to send electronic messages to each other, talk so they could chat and finger so they could see was online. finger even checked a file in you home directory for a file called .plan that you could leave messages about what you were doing or going to be doing when you were away. Configuration files in Unix always had a . in front of them so you didn’t see them unless you really looked for them with ls -la . And life was good. Then the Personal Computer came and made it difficult to do all the things that worked well on Unix. People had to maintain their computer and worry about nasty things like bugs, viruses, worms and blue screens of death. Nobody used finger anymore. And people were not happy. Then one day the World Wide Web was invented, people decided that they didn’t like to maintain their own data anymore so they used software on the web like gMail to store all their email. The software code monkeys wrote things like Instant messenger so you could chat and twitter so you could see what your friends were doing. A silly little code monkey named Nathan even wrote a little perl program to sync the .plan file with twitter. So twitter was like finger. And once again people could access their data whenever they had access to a terminal. Except now we call terminals apple macbook pros. And everybody was happy except the blue screens of death. They went and sulked under the overpasses leading away from Redmond.

So what is the moral of the story? Well the moral of the story is that nothing is new under the sun, and the more things change the more they stay the same.

Code Follows…

Read the rest of this entry »

rebirth or maybe just a work in progress

So this thing called blogging, it turns out I often don’t like to write these short essays but infrequently. Eric said he thinks that between he and Kyle they have the “most prolific blogging family”. Well then between Derrick and myself I think we have more inactive websites than any other family. :) I haven’t had a whole lot of time for this site and even less motivation. I was having some problems with Movabletype with themes and pages and I sort of got fed up with dealing with it. I don’t know if this is perception or reality but I feel like blogging software has stagnated over the last year or so as blogs have gone mainstream. All the cool kids are now doing mashups and hanging out on flickr, youtube or facebook. I’ve been using Movabletype since college. The first post on this blog was in August of 2003 and I’ve always liked it because it statically renders html so your website handles traffic much better. The downside is that it isn’t as reactive and it’s a little more challenging to add new technologies like AJAX. Movabletype was the original cool blog software. It’s changed it’s pay structure though what seems like every year and now they’ve open sourced their code base to try and catch up again with Wordpress. For the last while I’ve been telling I’ve been telling my friends to use that if they want to start a blog, use that because there seems to be more free themes and good plugins available. I finally broke down and took sometime today to migrate to Wordpress and grab a new theme. So over the next weeks and months I’ll be tinkering until I come up with something I like. It’s always a big of a pain to add back in the galleries and other “features.”