to be read while listening to Queen’s "I’m Going Slightly Mad"
Everything and everyone is a file, no more than a file, no less.
We
all strive to be big monolithic programs, with fancy buttons, big
memory footprints, environments where people, if they want to do
anything, must go through us. We strive to be pre-eminent on the
desktop, world stage. We crave fame. Look at me we say. Look how
important I have become. I am an Office Suite, hear me roar. Look how
much I can do. If you want to do any work, you must come through me.
Yet,
quietly, the hand of the messiah shushes us and compassionately tells
us we don’t want that burden. You do so for your own glory and not the
glory of the community, the glory of your siblings. You channel them
through yourself because you deem yourself important and indispensable.
You are indeed talented, he gently says laying his hand on your
shoulder, but where do you wish to go with this? To what end do you
hope to arrive? Sooner or later the load on your shoulders will be too
great, the bloat uncontrollable, unwieldy. You will not be extensible.
You may be the greatest that has ever been born, but the strain is not
something I should visit upon you. Why do you think I gave you brothers
and sisters – GNU?
Bash? These are your salvation. These are your tools to
interconnectedness, these are the gifts that will lead you to the
sublime.
Be at ease, big program, you are but a file, but
you are not JUST a file. You are a node that links together this
network, wherein shall you fish. They made you fishers of data, I shall
make you fishers of knowledge.
I still haven’t been able to shake this mania that I’ve been under… it’s like a Linux
spell. I have been hacking on Altamente’s server products for like two
months straight, going to bed around 2 am every night. If I didn’t know
better, I would have thought I’d wound up on the night shift. In my
delirium, today, I had a vision, a waking dream, a incandescent
glow-induced hallucination about the universe and my place in it.
In
the paradigm of Linux, everything is a file. I see files everywhere, I
interact with them, their inodes, links to them both symbolic and hard.
They are physical tangible objects to me. I know this interaction like
an old shoe. I’ve been using it off and on since 1989, and it fits, or
perhaps like that old shoe, I’ve broken it in, and I fit it as much as
it fits me.
Take MDA’s for example (Mail Delivery Agents),
where mail goes before it winds up in your Outlook folders *rolls
eyes*. Some use a format called mbox, which was one big glommed
together gigantic pile of bits, a big sloppy ball of wax, just waiting
to explode in your face every time a new mail arrived. You had to have
all kinds of special tools to extract, prune, or otherwise manipulate
this file. Everything had to be custom written especially for that
stinking format. Delete a mail? Well, first, lock your mbox, then back
it up, then rm. No? Oh, you need a special delete program specifically
designed to work with that file. Wah, I want to use rm.
When the choice of Maildir delivery arrived with qmail,
it was like that old familiar world of Unix. It made sense again. I
could use regular filesystem tools to deal with these mailboxes. If
wanted to clean out old mails, cron, grep, find, rm, and bash were all
I needed. Fantastic!
#!/bin/bash
find /var/spool/qmailscan/quarantine/ -name "*mango*" \
-a -type f -a -mtime +2 | while read file
do
rm "$file"
done
This is a bash program I use on mango to wipe out any quarantined
virus email after 2 days. We get a ton of them, and without this tiny
little program, the server would fill up. However, we’d still like to
have a disposition of a couple of days in case we need to check it out
before deleting it. See how simple this is? We use cron to run this
little script every day at a set hour. The above is a program. The
above is just as sophisticated as anything with buttons, checkboxes,
and a gui – but it’s better. This little jewel is an autonomous agent
capable of performing the same task every day without failure for as
long as it has electricity. In short, after I write this little thing,
I never have to look at it again. It does what I need it to do,
reliably and without intervention.
I’ve written tons of
little one or two line programs to do everything from take poorly
formatted word documents of data and massage them into suitable formats
for publication in HTML or injection into a database or mailing list. I
get these things sometimes in such poor shape. I run a few tiny teenie
little bitty itsy one function programs like grep, cat, tr, and awk and
I’ve got a nicely formatted list, table, or structured document.
My
point is this: I wonder if there is a place for people like me in the
future of IT. I don’t even fancy myself a programmer. I do okay, but
I’ve never written a program over a 1,000 lines in my life, and 99% of
the them are less than a 100. See what I mean? I almost always can
string together pre-built GNU utilities, rm, find, grep, cat, sort, gawk, bash, cp, touch, tr, bc, diff, mv, sed, tar, and many others.
I
feel like this monk of the arcane, cloistered away from the buzzing of
corporate dollars, fancy slogans, glossy programs, big deals. I am but
a little worm hidden away from all of this, competently hacking out one
useful task after another with no more needs than a square meal, a
comfortable bed, an old PII, and a decent net connection.
We
must teach our brethren the ways of the Unix shell, for if we don’t we
will forever be trapped handcuffed in that big shiny plastic bubble of
modern life, where we see but we can’t interact. We must go back, back
to the beginning and learn the first lessons. We must relearn that it
is only through connection, collaboration shall we achieve, shall we be
saved.