Imagine you are a moderately-successful but unknown pipe organ builder in early 18th-century Leipzig, with far more ego than brains, and a mouth bigger than both. One evening, you go to a neighboring parish to listen to a recital by that famous organist and composer J. S. Bach. The music is lovely and captivating, but you can’t stand the sound of the instrument he’s playing on. Right in the middle of Herr Bach’s performance, you stand up, loudly cry, “I could build a more suitable organ from my son’s discarded tin whistles!”, throw a handful of small coins into the offering basket, and finish with “Here – get yourself a better one!”
The next morning, a footman delivers a note from the gentleman, asking if you would be interested in building him such a musical instrument. Cold sweat breaks out on your brow, and your stomach twists itself in knots around your breakfast. Me – build a new organ – for Bach?! The honor would be immense. The cost of failure would be catastrophic.
Transpose this tale to the early 21st century and the key of hacking, and you can see how chutzpah seduced me into offering to build a new high-end computer workstation for Eric S. Raymond. We’re friendly, from afar, but I’m not fit to even clean his keyboard and screens, much less attempt to give him a tool that would meet his exacting standards and huge requirements.
This is not to say that I’m completely unsuited to the task. I’ve been a Unix user and programmer for more than 30 years, and I’ve had ‘root’ for all but a couple of those years. I’ve supported more than 8 different versions of Unix professionally (and that counts every Linux distro I’ve ever touched as only one of those versions), often several variants simultaneously, for communities of up to 1000 users. I use Linux (Ubuntu 14.04 LTS) exclusively on my personal system. I know what I’m talking about, and I’ve done nearly as much doing as talking.
But still – Eric. S. Raymond. *gulp*
To be precise, I didn’t build up the hardware of the “Great Beast of Malvern”. That honor and responsibility went to Wendell and Logan of TekSyndicate.com, an online PC components retailer targeting the high-end gamer and modder market. I was just liable for getting the system software installed and configured, and assisting Eric in getting his home directory and other environment moved off his current desktop and onto this fire-breathing monster.
So everything converged on the first week of December. My wife was out of town to visit her mother. That freed me for all of each evening to work with Wendell to install the system. Eric had already run a short script I had supplied him, which gave me an outline of the configuration of his old system, and a list (several thousand items long!) of the packages he had installed. I knew he also ran Ubuntu, so we agreed that 14.04 LTS would be most suitable. Given the huge disks going into his new box, I recommended configuring his filesystems under LVM, to give him resizing and snapshot flexibility. Wendell had a motherboard that was almost identical to the one going into the new box, but it had an IPMI configuration so that I could get a remote console, for booting and adjusting the BIOS. (He’s in Kentucky, I’m in northwest Ohio.) And the other HDD wouldn’t be available, so I would have to format and partition it after the fact. He also had a flight booked to Eric’s place for Saturday morning, so the box had to be finished by then.
No sweat. Easy-peasy.
(Cue ominous music….)
Tuesday night Wendell and I started a Google video Hangout after work, and just chatted about my background and the background of this project. Next thing I knew, nearly four hours had passed, and I had to wrap it up. Well, this might be a little more involved that I first thought.
Wednesday, we tried to get me connected to the IPMI. Hm, this needs Java and the Java Web Start packages. And it wanted to use non-standard ports, so Wendell’s firewall had to be adjusted. And re-adjusted. And Google Chromium didn’t want to run javaws, so I had to tweak Firefox into submission. And the video of the GUI was laggy as hell, which made the feedback of a mouse click or keystroke agonizing. And… And… Five hours later, I was beginning to sweat. I hadn’t added a single package to the box yet, hadn’t partitioned one disk, hadn’t done a damned thing towards the actual project. And I couldn’t work on it Thursday night, because an unavoidable piece of Real Life got in the way. It would all come down to what I could get done on Friday.
Friday evening, I put on my lucky “LISA in Chicago 1996” T-shirt, and Wendell and I started for the last time after we each finished work. He had the installer ISO mounted on the machine. I c a r e f u l l y typed the command to zero out the SSD (wouldn’t do to smash your installer!), and rebooted to the installer image. Now the Ubuntu 14.04 installer won’t let you set up the disk with LVM, so I used these directions to hack the installation process. Hours melted away as I checked and double-checked each command – no time for errors now. After I got the basic install done, I copied a script onto the box which contained better than 600 lines of “apt-get” commands for that long list of packages Eric had previously been using. No problem, I thought, “apt-get” won’t error out if you try to install a package that’s already been installed. And it drags in all the requirements for a package when it installs it, so the order of installation doesn’t make any difference. Thus, I had written the script’s hashbang line with “-xe” to give me a trace and to die if something else broke.
Something else broke.
Seems Eric’s old box had some obsolete packages installed, which weren’t available anymore. So I cursed, and edited the script to take out every line up to the broken one, and took out the name of the missing package. And ran it again.
(Betcha you can guess what happened.)
Something else broke.
This time, it was some package (don’t remember – inn2?) that needed some install-time configuration I hadn’t previously captured. Interrupt the script, copy it, delete everything down to the broken line. Make a note to Eric that he would have to do this one himself. Lather, rinse, repeat.
Then something else broke.
By the 10th iteration of this nightmare, sometime more than 6 hours later, I just threw caution to the winds, removed that pesky “-e” from the hashbang line of the package installer script, and let it rip one last time. It thrashed and stumbled to the “exit 0″ at its end.
Whiskey Tango Foxtrot. Did everything install? (Obliviously not.) Did enough install? (Hope so!) I shut the system down for the last time, Wendell and I called it a wrap and stopped the video recording, and I went home, worrying about how this would all look in Malvern some 19 hours later. Fortunately, Herr Raymond likes the sound of his new organ.
Oh, by the way – if you ever hear me muttering about “tin whistles” or “bitty boxes” under my breath again –
Kindly beat some sense into me!
Edited (2015-01-01) to add: Here’s the first video from TekSyndicate.
Today I am participating in “The Day We Fight Back“. Maybe all of three people will see it here. That’s fine; I didn’t do it because I thought I would drive gazillions of eyeballs to their site from mine, nor because I’m some sort of Internet Meme Purveyor™ that would instantly popularize ‘The Cause’. I’m doing it because it’s the right thing to do.
I dunno about you, but I’ve done some things that I’m not that proud of. And there’s evidence of them online, I’m sure. Although they probably don’t rise to the level of criminal activity, I am doubtless susceptible to ‘persuasion’ and pressure if SomeOne™ were to threaten to make them public. And when we are governed by the rule of men and not the rule of law, human nature makes it inevitable that that SomeOne™ will yield to the temptation to use that info against – if not me, then some other poor schmoo. “To Protect Us From Terror!” “To Save The Children!” “To Keep Us From The Red Menace!”
Yes, there are clearly existential enemies of western civilization that would destroy it if they could. They do organize via electronic communications; evidence of those hostile activities should be used against them, either in a court of law, or as a military intelligence asset. But the indiscriminate hoovering-up of all phone calls and internet traffic, in a vague hope that some useful patterns can be teased out, does far more harm than good. Remember Ben Franklin:
They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.
Let me tell you a little story.
Nearly seventy years ago, two erstwhile allies, at the end of a planet-spanning war, found themselves bitter rivals, and entered into a struggle to see which could develop the military and economic means to rule that world. Dividing the technological corpse of their former mutual enemy between them, they used these tools and ideas to forge ever more terrible weapons. Soon, their contest focused on a particular goal, both of symbolic and harsh military value – which would be the first to have their citizens walk on the face of the planet’s major satellite, and return safely.
And in less than twenty-five years, one outpaced the other so far that, not once but six times, they were able to have a pair of their own walk on that moon and return home unscathed.
Almost twenty more years passed, and one of the empires collapsed. The other, beset by other economic, military, and spiritual troubles, drastically curtailed their space-faring ways, never more sending their kind beyond low orbits of the planet, and leaving the depths of the heavens to be explored by robotic vessels.
Fast forward to the present, and a few of these creatures banded together, and with monies they had earned from technologies that had not even been a fantasy when that last global war had finished, founded multiple companies to return to space, not as conquistadors, but as captains of industry. First more cunning robots, then more of the creatures themselves, would return to that moon, and move out to explore and exploit the other planets of their star, and ultimately, the rest of the universe.
Not a bad tale, eh? Wait – this isn’t fiction – it’s history.
Alan Kay once said “The best way to predict the future is to invent it.” But the second-best way to predict the future is to write science fiction. Hard, nuts-and-bolts science fiction. By starting with a technological premise, and logically extending it within the boundaries of science and engineering as we know them, or as we could plausibly extend them, we give ourselves the ability to sketch a future (if not the future) and explore how humanity will deal with the challenges and opportunities presented.
And wouldn’t you know it – the wild speculations of the science-fiction authors of one time become the models for hard-headed engineering in the next time. Gene Roddenberry’s flip-top communicators from the original Star Trek became our first-generation cell phones; his “tricorders” became our modern smartphones. Rovers on Mars, or mining asteroids, stop being just the fantastic dreams of authors, and become the exotic but real workdays of people whose imaginations are fueled and informed by reading sci-fi.
So to predict the future, we must invent it. And to invent it, to know what we can and should do, we read. And wonder.
Well, this hasn’t turned out as well as I hoped…
I mentioned that I succumbed to the temptation to follow the White Rabbit down the hole, and re-created my blog (for the third try) using a hand-rolled WordPress instance. I thought I needed to do this because I didn’t have the ability to control the theme and formatting of my blog’s previous instance.
Wrong. My error lay in trying to adjust these administrative details without being logged in to my administrative account. (I posted almost all the entries from a WordPress user with only ‘author’ privileges.)
Lessons learned? Although it is best practice to use the least privilege possible to run a computer system, you must be careful to make sure you are wearing your Super
ManUser costume when you have to do super things. I’m not going to roll it back, but I won’t be nearly so eager to plunge ahead next time.
I saw a white rabbit in a finely tailored waistcoat yesterday, jumping down a hole. I looked in, took a deep breath, and jumped after him….
This is the third instance of my blog. I had started about five years ago, thinking I was going to document the restarting of my career as a software engineer. That petered out after a couple of months. Then, about a year and a half ago, I started to blog again, now talking about my attempts to retool myself as a science-fiction author.
I had been doing better there. But my hosting company (1 and 1 Hosting) kept trying to be “helpful”; within two months, I had to change themes to keep it looking even half-way tolerable. And last February, they quit using their old blogging engine and went to their new “Click ‘n Build” blog builder. Which uses WordPress on the inside, but they’ve neutered it, and one of the things that got cut out was the ability to change the theme at all. And somewhere along the line they clobbered the character encoding, so that if you go look at that second blog now, there are a whole lot of spurious Â characters, and other junque.
Now, about six months ago I found out that my hosting package included command-line access to the underlying Debian Linux box. And I have pretensions of being a sysadmin and (arguably obsolete) hacker. SO-oh, I sez to meself, I could just put up my own WordPress instance. (This is where I started seeing the rabbit.)
I knew that I could spend forever trying to get it all right. But I was dissatisfied with what I had, and I just knew I could do better. So I jumped.
Here we are. Please bear with me as I adjust all the knobs and press the right buttons. Until (and unless) I say differently, assume that the Editorial Policy and ‘Rules of the Road’ (as well as the attribution / sharing / copyright policy) are just the same as in blog #2.