Saturday, October 13, 2007

Changing perspectives

As any parent can tell you there is little difference between a child's perception of want and need. In the field of IT I have observed that customers as well distinguish only slightly between their wants and needs. Clearly I remember the users at one customer's site insisting that they needed sound cards for each of their PCs. Unlike today, PCs were both very costly and poorly appointed when they arrived from the manufacturer. Adding a sound card to each PC was both economically costly as well as person-power intensive. All for what? So that the users could hear "You've got mail!" Beyond that "need" there was no other business line objective being met by the expenditure of time and money on sound cards.

[Digression: (Sound Card = $65.00 + Person-hours (2 per PC @ $35.00/Hr) = $70.00) x 35 PCs = $4,725.00 = "Oh yeah! You got mail, baby. And the company got pwned!" ...but I digress.]

...changing perspectives...

My interest was piqued by an entry in the listing this morning. AWM is listed as a minimal windowing environment.

It's small, functional, and fast. It is based on dwm and is just ~1800 lines of code.
I am a Linux gadget geek and so the prospect of a minimal window manager just begged to be explored. The entire tarball for awm-0.0.7.tar.bz2 lists ( ls -alth ) at just 20K. A window manager in less than 20K (~1800 lines of code). Unbelievable!

AWM is such a small program that configuring it is a matter of editing a config.h file before compiling. When I compiled it and it didn't offer the expected console window I checked config.h and it wanted rxterm. Slackware 12 doesn't have an rxterm. So I just deleted the "r" and recompiled.


I have a really simple and FAST window manager. Very cool... but that is not really the changing perspective I wanted to talk about here.

AWM does not do anything beyond display the window(s) and allow the user to move among virtual "desktops". There are no short-cuts, no icons, no menus, no nothing! AWM does almost* nothing for the user. As such the user gets to make all the decisions about what programs get run. Once the decision(s) are made then it is up the the user to manually start the program(s). It is at this point that my perspective is beginning to change...radically.

In this minimalist environment I am prompted to evaluate exactly what my needs are compared to what my wants might be. Do I "need" all the bells and eye-candy whistles in order to have a fulfilling computer experience. What to I really want? And more importantly, what do I really need?

My conclusions are as minimal as AWM.
  1. I need a command prompt (xterm) so that I can run the script that connects my PCMCIA wireless network card to my home network. (Ctrl-Alt-x)*
  2. I need to start my browser, Firefox, to access all of my Web 2.0 base applications. (Ctrl-Alt-f)*
  3. I want to run Pidgin (my IM client) on a different virtual "desktop" so I change to it (Ctrl-Alt-RightArrow)
  4. I then need to start anther console (xterm) so that I can start Pidgin. (Ctrl-Alt-x)*
  5. I want to move the Pidgin window to the upper right corner of the desktop. (Ctrl-LeftButton-Drag)
Earlier I said AWM does almost* nothing for the user. The "*" alludes to the reconfigurability of AWM. In the case of FireFox the author, Alpt, graciously gave a working example in the config.h file for GeekHacks like me to get up and running. Simple additions to the config.h file (and then recompile) allows the user to "configure" AWM's keybindings any way they may choose.

Note: After I figured out the Slackware vs. rxterm issue I purposely went back and put the "r" back into the config.h file. This effectively prevents AWM from starting a command console window on every virtual desktop. Instead I bound xterm to the Ctrl-Alt-x keystrok combination. That allows me to start a command console window only when I want to. AWM ROCKZ!!!

So here is the ...changing perspectives... bottom line: I rely on FireFox and Pidgin for the majority of my computing wants. I need a simple window manager so that I can run these two programs. I do not need all the rest of the stuff that comes with my Slackware 12 distribution.

It is this perspective that makes me mumble and grumble when customers call up and tell me that they have to have the latest and greatest soft/hardware. "I need it. I just can't get along without it."

...Git along little doggies, git along...

Bonus Video (Longish, you don't need to watch the entire full length feature.)
"Tell me what you want, what you really really want..."

. . .