El Gringoqueño

All a man needs out of life is a place to sit ‘n’ spit in the fire.

How Linux will Save the World, part II

make_world.pngto 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.

Leave a Reply

Powered by WP Hashcash

Favorites

Categories

Recently

Links