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

Month: February 2004

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.

Hacking Gentoo

gentoo_tux.png
It’s late at night, and I’ve been hacking on my home network of Gentoo
Linux boxes. I’ve been performing rigorous analysis and system tests
(does the shit work) for nearly a year. I think it’s all culminating
here and now at 0100 AST 1000 miles off the coast of Florida on the
Caribbean island of Puerto Rico.

One of the biggest challenges in
maintaining more than one Linux box is the updating. The Open Source
community moves so fast, it’s impossible to maintain more than one box
by manual methods (ie performing updates physically yourself via CD or
Internet). You have a couple of options. You buy a distro, slap it in,
install it, firewall the hell out of it, and forget about upgrading for
at least a year. You’ll get lots of work done because you won’t be
constantly tweaking your machine and breaking things every other week,
and you’ll have good solid security more or less for a year. Or you try
to keep up with updates and end up breaking something, having to
install something that is not vendor supported, overwrite something
else, want to remove it, but can’t, and end up wiping and reinstalling
a new version. So on the one hand you don’t have access to usability
upgrades, and new features, on the other you end up spending more time
in administration for your machine than actually doing useful work. A
computer as a tool shouldn’t become the focus of the employee. The
computer must be able to take care of its needs with little interaction
from the user. Or if you prefer, the computer is too important to have
its well-being left in the hands of a user. Say it with me IT
professionals, "If you have to depend on the user for anything, you’ve
failed."

Now, this is where Gentoo comes in. It’s a distribution
based on the source code of the programs themselves. A Sparc, an old
Alpha, an MIPS machine, PPC, Intel, AMD Opteron all update the same
way, automatically, seamlessly. It’s beautiful, in theory of course

In
practice stuff still breaks, libraries still get whacked, and things
sometimes don’t work as advertised. For example, the library issue:
When you compile a program some of them dynamically link to certain
library files, for example openssl-0.9.6 a library for secure socket
layer encryption functions. A literal ton of programs (that’s funny
only if you realise that programs are electrons), link against this
library and use its wonderful features. What happens when you move to
openssl-0.9.7? This happened recently in the Linux world and it was a
pain in the ass.

I mean, you could go through all your binaries
and check to see with what they are linked. If it returns an error,
well there’s your culprit. There are thousands of binaries, and you
don’t want to do this stuff by hand. I really don’t care how long it
takes, I’d just like the computer to take care of it on its own, behind
the scenes, like a secret little administrative agent.

So
this is what I’ve been doing today. Turns out this openssl-0.9.6
business is now trivial thanks to Gentoo’s package tools, namely
revdep-rebuild. It takes a look at your installed package database and
draws all the lines between libraries and programs that link to them,
then recompiles the programs to link against the new library (I think
it just really brute forces the whole issue, but I have to investigate
more thoroughly). Pretty cool, huh? This is actually pretty heady stuff
and a lot more significant than it sounds. It allows you to hit the
moving target that is OSS development, maintaining integrity of your
Linux distribution, taking advantage of the fast pace of development
with absolutely NO manual intervention with any of the hosts you’re
maintaining.

It works like this. You set up a central master
server that is responsible for, downloading, compiling, and serving
packages. The network of client machines each pick up prepackaged and
pretested packages and install them at set intervals, every day if you
like. Gone are the days where you have to either wipe the client’s
machine and reinstall to upgrade, or tell them to just deal with it
until the following upgrade cycle in a year.

Man, it’s late,
and I don’t know why in the hell I decided to write all this down. Just
what I’ve been doing for the past couple of weeks, seamless automatic
maintenance of multiple (hundreds) hosts on a network. This rocks!

Now to bed.

Linux is Dead, Long Live Linux

new_and_improved_sm.pngMy ode to Dave Barry

I
have to say that this most recent Linux kernel 2.6x that just came out
is WAY better than the first few releases of the last 2.4x series,
which were a disaster. The last series got out the door with some
serious virtual memory issues.

For instance, under heavy load,
the kernel would go into crisis management mode, like a middle manager
at an end of the year performance review. Yeah, I know, not pretty. And
as the boat was sinking, the kernel had its handy dandy thimble and was
dutifully bailing. This was the infamous disk thrashing kernelTM (up until 2.4.12, I think).

So
you’d – get this – click on one program too many and the performance of
your system would deteriorate until – and I’m not making this up – it
became unresponsive and you’d have to hard reset it. That’s all fine
and dandy for that OTHER OS, but this was the first time that had
happened to me with Linux, and it was damn embarrassing. Yes, even more
embarrassing than all the crap I have stuffed in my garage, and no,
Viagra wasn’t going to fix it.

I checked around for a bit, and by a bit, I mean Slashdot,
but the Linux press was decidedly quiet, too quiet. I smelled cover-up.
Then one fine day the waters burst forth as Linus announced that he had
ripped the guts out of the VM (virtual memory) module, given it a
severe thrashing, and put in something more agreeable. I quickly
upgraded, and things seemed to be better, but I never quite got over my
trust issues. It still seemed dangerously, recklessly stupid under high
load, and by high load, I mean listening to mp3s and surfing the web.

Well,
I’d have to say that 2.6 is as beautiful and wonderful as 2.4 was ugly
and miserable. Wow, what an improvement and not just in desktop
responsiveness (which is very nice but not why we uber geeks use it in
the first place), but overall stability. I have confidence that it
won’t decide to push up daisies at an inappropriate time. In fact, my
primary desktop machine here, is my development database server,
webserver, nfs server, instant messaging server, remote update master,
print server, desktop publishing platform, multimedia player, video
machine, office suite, web development platform, and multimedia
authoring system.

<voice accent="Austin Powers">YEAH BABY</voice>

Angry with God?

Are you angry with God? Do you look around at all the injustice, hatred, and pain in the world and ask yourself, how could a God that is all love and compassion allow this to happen. How can He let us live lives filled with such sorrow and torment? How could He let my loved ones die such cruel deaths? How could he let rapists and murderers steal our little children and do such awful things? How could God let beasts such as Hitler, Saddam Hussein, Pol Pot, Genghis Khan, the Black Plague exist in this world where he lets his children play.

Why not baby proof the place a bit?

It’s a simple question, possibly the simplest question ever asked. It’s incongruous to us why God would let such awful thing coexist with his beloved children. Would you tell your children to run out and play by the in-ground pool. Oops, you fell in and drowned. Free will… what’re ya gonna do? You fell in. I told you to be careful. I told you to take care. I guess it was meant to be.

And it burns us up. It makes us angry. Does it make you angry?

I was doing my weekly session at the juvenile prison last week and I had occasion to express to my young pupil a bit of wisdom that came to me in a flash. It was inspired by these children, some of them murderers, car thieves, drug addicts, robbers, and petty crooks. It was inspired by what I saw in their faces, their innocent baby faces.

"You see," I said, "It’s like a child with its father. You have any kids?"

"No," he said.

"Cousins, nephews, nieces?" I asked. He said that he did, but I realized that he might not get what I was about to say. I’ll try it anyway, I thought. Can’t hurt.

I asked him if he saw babies crying because they were hungry, tired, or needed a diaper change. I asked him if he had ever tried to explain, or saw someone explain to the baby why it was crying. "Did the baby respond properly? Did the baby stop crying because it now understood. The irritation, its angst, now made sense, so it calmed down. He laughed and said no. Of course not. His laughter lifted me. He was going to get this, I thought.

It’s interesting to note, that parents will never ever be able to fully explain, allay all fears, take on all burdens from their children. In adolescence, parents attempt to explain the feelings of awkwardness and rejection as normal. Everybody feels that way, they say. Meanwhile, the child thinks or says that they couldn’t possibly understand. How could they? How could they understand the pain I feel right now? I’m living it. You parents can’t understand what it’s like.

Every time a parent tries to explain, or convey experience and wisdom to a child, the child rejects it. You won’t understand until you live it. You will try to explain it to your children but they will reject it. All you can do is be there to pick up the pieces and try to cajole, motivate, and guide. All you can do it change the diaper, bring the food, soothe the restless nights and hold them when they cry.

If you believe in a God with whom to be angry, can you at least see through that clouded consciousness of your childhood and see a father who wants to help? Can you at least realize for a brief instant how we can’t possibly understand what’s to come next, and by next, I mean tomorrow? Can you see yourself as a child who cries and doesn’t know why?

If I know anything about being a father, it’s that when I hold Olaia or Jaimito, I would do anything to take away their pain, their frustration, but I can’t. I can’t because there is no way in the universe I can convey experience. And what is experience if not a combination of pain, joy, suffering, and happiness?

You don’t want to throw out the baby with the bath water do you? It’s okay, though, if you’re angry with God, I’ll give you a hug if you need it. I understand. I empathize. I hurt too, but I know someone who hurts more. He’s been locked up at the age of 17. He has no father. His uncle is in prison. He best friend was gunned down. He has no education. He’s poor and a drug addict.

© 2026 El Gringoqueño

Theme by Anders NorenUp ↑