Why Our Rackmount Server is a Crappy Bedroom Computer 2
For Codemecca’s first capital expenditure, Mike and I split the cost of a Dell Poweredge 2550 rack-mounted server we’re using for dedicated development among other things. Since my bedroom’s been pretty low-tech for a while, I thought I’d put Lord Xenu (that’s his name, by the way) in there for that ego-boosting feeling, you know.
What a crappy idea.
So for one, since I don’t actually have a rack, I stuck this bad boy right on the ground in the subtle-yet-noticable spot behind my $20 Walmart TV stand. Because old Xenu is so freakin’ long, the back side had to be closest to the monitor for the cord to reach, leaving the CDROM drive, power button, and all the sexiness on the front in full view of the corner’s carpet alone.
Also, since he takes up so much space, I had to reclaim trash can territory on Lord Xenu’s back. Not much could be done for the more necessary deskchair territory in that area. Working there had a few restrictions on movement, but I could manage those. Even his industrial strength fans that sound like a rolled-down car window at eighty are pretty tolerable.
But to top it all off Lord Xenu is possessed – likely with some Scientology voodoo. Apparently Dell has some silly feature built in that causes it to randomly boot. The first time this happened to me was when a nap I took turned into an all-day hibernation. I woke up in the wee hours of the morning fully dressed, sweating because my door had been left open – something I never do when sleeping – and Lord Xenu was completely on at the Linux login prompt. Yeah I was pretty freaked out.
So earlier today I gave Xenu the boot. Now my roommates and I get to deal with his crap in the living room. Moral here? Have big closets.
The Caveman Complex: An Informal Study 2
Every programmer is guilty of it. Fumbling with someone else’s software we get egotistical, enraged, eccentric — call it what you want — and think Argh! I can write this better!
More times than not, these very programs are enormous software packages like the Apache web server, the Linux kernel, or actual programming languages themselves.
But love is blind so we open our text editors and begin pounding out the code. Weeks of somewhat fruitful work ensue until we crash and the ambition is lost. We realize You know, they really did do a good job writing that.
This is what I call the Caveman Complex. Mentally, most of us just can’t stand using someone else’s code not knowing what’s going on behind the scenes so we reinvent the wheel continuously. Perhaps it’s the hacker spirit wanting to learn how a system works. Wait, actually, it’s exactly that.
A perfect example of the Caveman Complex is the Linux operating system. Perhaps the most impressive accomplishment of the open source movement, Linux remains very ambiguous behind the scenes to most because any good operating system should. A software developer’s prime directive must be to make their system painless to use. So how do we hackers get our fix on the nitty-gritty? Why, we make our own Linux operating system! This occurs so frequently that many outsiders simply don’t take Linux seriously — with good reason. Frankly, no one should take these spin-offs seriously. Tying this segue back, these outsiders must understand how programmers think: with a Caveman Complex! Only Linux distributions backed corporately deserve trust. Everything else is just us goofing off. We’re programmers. We can’t help ourselves.
But how detrimental is this mentality? Conventional wisdom suggests reinventing the wheel is awful. Economically, this redundancy constitutes inefficiency. As the rambling futurist on his soap box would affirm, if we’re to continue our major leaps forward, our efficiency should be improving, not following the habitual tendencies of our engineers to toy around. Since we programmers are a key foundation on which technological progress depends, inefficient habits are absolutely taboo. Or are they?
I say this hacker spirit — this Caveman Complex — is as necessary to society as the developers themselves. These feelings of curiosity and exploration, albeit inefficient, are what make programming fun and, most importantly, are what teach programmers. Any seasoned coder will answer the question “How can I learn a programming language?” the same way: “Sit down and start coding!” What they code doesn’t matter as much as the fact they’ve actually begun the process. Mistakes must be made before they can be learned from.
So if our Caveman Complexes should be nurtured, how do we respond? Should executives financially fuel this drive to work on personal projects? Some do, but most shouldn’t have to. Those to whom programming comes naturally will do this unconditionally in their free time. In fact, in today’s competitive world, programmers are perhaps living testimonies to natural selection. Keep it alive or fall behind.
Programmers, to you I encourage tinkering. I encourage writing your own relational database management system when MySQL can outperform what you produce in every possible way. I encourage writing your own MP3 meta-data decoder when realistically you can’t allow for the tiny modifications made by the innumerable different encoders used over the years. I encourage writing your own Xorg window manager that might save you 0.2 seconds when you want to open a bash terminal. Society needs you to!
Always remember: Keep it alive or fall behind.
Potty-training your tarballs 2
So it’s late at night and you’re up reading Slashdot while the source code for that program you thought seemed pretty cool so you’d check it out downloads.
Firefox tells you it’s finished downloading and you begin the old extract, configure, compile, install, run routine you’ve done a hundred times.
And then it happens.
Your neighbors, sleeping in bed, wake to your resounding shriek in the night:
“Ahhh!!! That tarball just crapped all over my home!”
Yes, it happened to you. Don’t feel bad. It’s the moron who didn’t pack his archive in a subfolder’s fault. There’s no way you could have known all those compressed files were going to mix with the dozens of files already in your home directory. No, really — don’t be so hard on yourself.
Potty-train your tarball and have it clean up its mess by typing this:
tar ztf poopypants.tar.gz | xargs rm -rIf rm starts giving you confirmation messages ad nauseam, add the letter f after the -r, but remember — if the tarball contained a subfolder with the same name as an existing folder in your home directory, removing the folder with -rf won’t discriminate between files inside it added by tar and files rightfully there. Careful!
Now to figure out how to change a baby’s diaper with piped Unix commands…