
Power of the penguin
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.

My ode to Dave Barry
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>
I was listening to Performance Today the other day, and I heard the Edgar Meyer Violin Concerto. I was struck by how expressive it was. This is a very nice piece I thought, but I've heard this before. It had that same plaintive meloncholy as Samuel Barber's Violin Concerto. In fact, it's a complete ripoff. I chuckled to myself. Good artists copy, great artists steal. This was a theft all right.
I later did a search on Google and found out that Hilary Hahn bundles her Meyer performance with a little Samuel Barber as well. Well I'll be, I'm not the only one. Like two peas in a pod these concertos.
They are BOTH worth a listen. Highly recommended. You can pick up the CD at Amazon.
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.
I had a fabulous birthday party yesterday, thrown by the most fabulous chica, Laura. She cooked up the sweetest gesture. She got a bunch of friends and family together to read my weblog here and comment on their favorite entries. I had a wonderful time, and thank you all who took the time and commented on how much you enjoyed what you read. I am touched. I'm still smiling.
With that said, I am reminded of my own favorite entries: "A young pupil in a quandary for direction, asked his teacher how he may judge the battles upon which to draw his sword," a little lesson in which I am both teacher and student, the teacher who has the wisdom and the young disciple who has much to learn, who continues to struggle with his selection of battle. I know the theory, but like so many concepts, practice is a much more difficult proposition. Who is the rat who is the dragon?
I also like, "The Concept of Nothing," for its irreverent cleverness. If ever there was an essay designed specifically to provoke discussion, this is it. This is a piece designed to specifically create substance from nothing, dialogue from silence, and rational thought from assumption.