Choosing the right tool-set.

by debianjoe

user@everywhere ~> 

Once again, I have run into some contention regarding the way that I prefer to do things from someone who doesn’t share my particular tastes.  That in and of itself is fine, as I’m pretty accustomed to ignoring personal opinions on subjects that don’t really have any relevance to me.  This time, it was in response to my user-space not being ‘modern’ enough.  This particular conversation only got interesting when he was showing me (as though I care) about the wonderful world of a fully-modernized KDE desktop.  “Hey Joe, look, my laptop’s battery is at 100%, and here’s the volume control right next to it.  It’s just really convenient.”

Now, first off, the laptop is plugged in, so battery life is pretty much a useless topic, but I got what he meant, so I kicked over to my shell and typed in:

cat /sys/class/power_supply/BAT0/capacity

Oh, look…there’s mine as well…and ‘alsamixer’ is right over here, which is a far more detailed volume control.  To tell you the truth, using KDE for me would be overkill, as I’d probably just open a terminal in it fullscreen and work from there.”

I doubt strongly that this guy took this to heart, or anything of the sort and really don’t care one way or the other what he does as long as his system works for him, I do have some opinions on how to choose your tool-set to fill out your own needs.

To draw an analogy, I like to lift weights.  I do it a lot and have done so for quite some time.  I don’t go to a big commercial gym, though, as I have everything that I need in my garage at home.  A rack, a couple of barbells, and a few thousand pounds of iron plates.  When I first got into lifting, I went to a large ‘fitness center’ and went through machine after machine, making sure that I hit all possible groups of muscles that I thought that I needed to according to the magazines I’d read on the subject.  After a few years, I came to realize that I was really wasting a ton of time.  I ended up stripping my entire workout down to a few complex barbell lifts, and my progress was greatly improved by it despite the fact that it took about 25% of the time that my previous workouts did.

One of my staples is the clean-and-press.  For those of you unfamiliar with the lift, look it up.  It’s a semi-complex lift, but the advantages to it are not so different from how I’d suggest you pick out your tool-set for computing.  The clean-and-press hits the entire body, stressing the ability to pull, lift with the legs, and ends in an overhead press that taxes both balance and pressing strength.  See, rather than using 20 different machines to isolate these parts into ‘perfect’ (some sarcasm here) form, I choose something that accomplishes as much as possible in the minimal amount of time and requires the least amount of extra stuff.

Shell (whichever one you prefer) is the complex barbell lift of the *nix world.  While there are different levels of mastery, I believe that the most productive possible use of anyone’s time up to a certain point is to understand how to work inside their shell.  As my own knowledge of shell syntax grew, I found myself needing and wanting less and less external programs to do the little tasks.  Unix nature is that everything is a little task, and the tasks that appear to be big are in reality a series of much smaller tasks that work together.  Master the little tasks using the most appropriate tool, and soon enough, no task is too great.