Wednesday, March 12, 2008

Computer Infants

As Clifford Jr. begins to approach his first birthday it is hard to miss his basic forms of communication. When he wants a bottle he will whine and then point to it when he finally sees it. When we wants food he will whine some more and then point again to his desire. I was pondering these actions today and I realized something; most computer literate people are computer infants.

Admittedly the computer language is not very developed as of yet. Computers have even had their own form of the tower of Babel, there are multiple languages available for use. But when it comes to everyday interaction with a computer we are simply infants. When I want to read email I first must point and click. For some there is whining before the pointing and clicking. When I want to download software I must first point and click. In order to update our computers we must all point and click. We can only communicate with computers on an infantile level.

As a result we have developed elaborate means to accomplish tasks. We can't simply tell our computer to turn on our favorite music or to dictate a letter for us. Instead we have figured out how to tell our computers that we are pointing at multiple files. We have found out how to communicate with each other via these infantile actions.

The command line interface is looked at as being archaic. We think to ourselves that because we can look at pretty pictures while we interact with our computer that progress has been made. What if the graphical user environment that we have all come to love and enjoy has been major step backwards. What if we decided to suddenly stop speaking to each other and only point and grunt every time we needed to communicate? Wouldn't that be considered a step backwards in communication?

Yet all is not lost. We still have the ability to reverse our major graphical blunder. I'm not saying we should discard it, as it has proved itself to be quite useful. Perhaps we should instead learn to communicate with our computers through a command line interface. At this point in time there are only a few words and simple sentences that we can use.

The bash, sh, korn, zsh shells are just a few options to communicating with our computers. Those of you using windows, a majority of you, will unfortunately not have this available to you. The lack of a good command line in Windows is really unfortunate. I have learned to communicate with my Linux computers via the command line, thus making some tasks much faster to accomplish. Batch image editing and processing. Batch file renaming. System and installed software updates. These are all things that I have been able to do much more quickly through the command line than I ever could through a graphical environment.

For instance, on a Linux computer it is quite simple to update the operating system and all installed software with a simple sentence written in Bash.
sudo apt-get update && sudo apt-get upgrade
Linux users can also tell apt-get to clean it's room after its finished:
sudo apt-get update && sudo apt-get upgrade && sudo apt-get clean
At first you would look at these nonsense words and symbols and think that it is not worth it. However, imagine the time I save knowing that I can update my operating system along with my office suite, instant messenger, web browser, media players, email program, photo editing, and photo organization software, all with a simple sentence. I know many people who are more than willing to grunt around the internet pointing and clicking their way through update after update to get the newest software.

Now consider that you downloaded hundreds of pictures to your computer from your digital camera. Also consider that the filenames do not represent what is contained within the picture. You can either go through your graphical environment and click every picture and change every single name seperately. OR you could speak this simple sentence:
ls foo*.jpg | awk '{print("mv "$1" "$1)}' | sed 's/foo/bar/2' | /bin/sh
Again you would look at it and think, "What crazy nonsense!" But I assure you that this crazy nonsense will save you hours of time. What if you needed to create thumbnails of all these pictures you just downloaded for your sweet new website or blog? What sounds better - Opening each file separately, resizing it, and then saving it as some other name, OR a simple sentence in Bash:
Convert foo*.jpg 180x110 *.jpg
I think I'll speak to my computer a little and then sit back and relax. I'll be finished with the thumbnails for my website just as you are getting started. Point, grunt, want, click, don't want, don't want, grunt, grunt, grunt, whine...

Imagine, if you will, that we could communicate with computers as we communicate with each other. Perhaps you wanted to listen to Bach's 3rd symphony, eroica. Lets say you didn't want to listen to all of it but only wanted to hear the 3rd movement? Wouldn't it be nice to simply say, "Computer, Bach's 3rd symphony, 3rd movement" and your computer would begin to play the tune at a comfortable sound level?

Alas, I digress. Star Trek technology is still far from being reality.