Up: Colorless Green Ideas | [Related] «^» «T» |
Monday, January 15, 2007
The Problems of Nomads
And they said, Go to, let us build us a city, and a tower, whose top may reach unto heaven; and let us make us a name, lest we be scattered abroad upon the face of the whole earth.
Zombie Spaniards invaded my webserver last week, so I moved all of my virtual belongings to a new, faster machine and had the plug pulled on the infected one. As I gathered numerous websites into tar.gz files (the equivalent of liquor-store boxes when you're moving) I felt a genuine melancholy—I was the last one to leave and I was turning out the lights. I never saw the machine that hosted my sites, because it sat in an office park in Texas, but it was a very real place in my mind—a collection of directories sensibly arranged, some exposed to the world via the Web, others only accessible to someone with proper identification.
As to the server that was hacked, even though I'd been working with it for three years, I was able to move lodgings and have everything up and running on a new box in about a day. That's because much of my data is in XML, with a little bit of it in RDF, and I use boring computer languages and standard, unexciting programs to make things run. I've learned in twelve years of building websites that you must be able at any time to pick up all of your files and move, whether to a new server, a new platform, or a new set of ideas. There's no use fighting it. You're programming along and someone comes along and shouts, Pack up, we're leaving. We've got to get moved over to “agile” programming, or Web 2.0, or Microsoft Vista, or Apple Mac OS X Leopard. So you leave behind the picked-over land in the hope of richer soil.
I've been a user of XML for a decade (SGML before that), and for nearly as long I've been following the development of RDF. XML is a means of structuring text into a tree, and RDF is a way of drawing a map where each idea is its own city and there are many roads that link the cities together. In XML you say: “this is a book, and this is a chapter in the book, and this is a section of that chapter.” In RDF you say: “this chapter is part of a book, and that book is written by a man named Dave who has written another book with a man named John who used to work for a company called Consolidated Undulating Prong before he left there and went to work for a company called Magical Thinking where he wrote a book with his coworker Dave.” Of course you can do everything you can do in XML in RDF and vice-versa, which means people fight endlessly about what each technology means. But what I like about XML and RDF is that, first, they are text-based, and you can you can look at them in the simplest of editors; and two, you can be somewhat sloppy when you create your data (or, at least, I can—I'm connecting ideas, not performing bank transactions). This sloppiness is great: I don't have to anticipate everything I'm going to do with my XML and my RDF. I just keep adding and editing and capturing as much data as I can, then, as needs arise, I go back into my text editor to add more structure, and I fiddle with the dials to pull out the information I need.
For as long as I've been interested in XML I've been interested in emulation—that is, of running a virtual computer inside of another computer. At first it was because I could use an Amiga emulator to re-connect with the computer of my childhood. Then it was a project for a boss, to make WordPerfect 6.2 for DOS run inside a powerful Macintosh. Over time I realized that emulators have much in common with virtual machines—a virtual machine is software with pretensions to hardware—and so I spent time looking in confusion upon Squeak, and Parrot, and the Java Virtual Machine.
Emulators and virtual machines are built for nomads. The emulators serve as scrapbooks of the days of our grandfathers (back to the 1980s) so that we can learn from their wisdom, or play their chunky video games. The virtual machines promise immortality: anywhere you go, they say, we virtual machines will be there; any code you write, we will run. And now, tremendous energy is being expended on virtualization, where a single computer can run many operating systems, or many instances of a single operating system. So a virtual Windows machine can run within a Macintosh, or Windows can run Linux while still being Windows. There are tools that allow these virtual machines to be started, stopped, and passed around between physical machines—stacks of imaginary computers shuffled like a deck of cards. All of these devices are sops to the nomad's problem, and provide the illusion of /home.
After I put in a request to have the old server put out to pasture, I found myself wondering when we'll get beyond our nomadic stage. At one point in human history, it's suggested, some hunter-gatherers settled down next to a field of grain, and instead of eating everything and moving on, they planted new grain and irrigated the field. But we're not there yet. The technology industry still equates destruction and disposal with progress—witness as laptops and new all-in-one machines require you to throw away a perfectly good (and expensive) LCD screen when you upgrade. There is no way to realize the value of a computer, to get every last bit of computing out of it, because the upgrades are so hungry for power that you must keep feeding them CPU cycles until the hardware is emaciated and weak. Software is like the spiders that eat their mother.
There are proponents of Lisp and Scheme, of Haskell, of Smalltalk and Java and Groovy, and of Ruby, who say that they have found the right way to use those cycles—the language to beat all languages. Paul Graham has written about Arc, a computer language “for the next 100 years,” which he promises to build.
And the LORD said, Behold, the people is one, and they have all one language; and this they begin to do: and now nothing will be restrained from them, which they have imagined to do.
Right there you have the eternal promise of the Steve Jobs keynote, the Alan Kay presentation, the Douglas Engelbart demo, the Steve Ballmer pitch, the Google beta launch, and the Nicholas Negroponte showcase. The image of a product is projected 40 feet tall and luminous behind the man, who points back to the image and repeats God's words into his lapel mic: “Nothing will be restrained from them which they have imagined to do.” But God has zero sympathy for this approach:
Go to, let us go down, and there confound their language, that they may not understand one another's speech. So the LORD scattered them abroad from thence upon the face of all the earth . . .
That's why I like emulators, virtual machines, and XML and RDF. It is the stuff I can carry with me when I am scattered abroad. Every time the men of Palo Alto or Mountain View, promising a spiritual journey that will end in riches, ask us to believe them and come help build the tower, everyone starts racing to see who can lay the most bricks before God knocks it all down again. We know that God's going to knock it down but we can't help ourselves. It's pure nerd compulsion. The man shows us the huge product and we nod and grin. “You can touch your music,” says Steve Jobs, with hippie wonder, of the new iPhone. Why would I want to touch my music? The whole point of MP3s is that I no longer have to touch anything or put anything into a tray. But maybe if I don't touch my music I'll be left behind. I'd better look into it.
I am now finishing a website that contains hundreds of thousands of images, and within five years I will need to re-convert all of those images to a higher resolution to match the increased dot pitch of the collective computer screen. Fair enough; progress is progress. But the data that pins those issues together, connects them, is in simple RDF, sliced and sorted inside a Java virtual machine, and all the code beneath my code is open-sourced to its core. Thus even as servers die or are put to sleep, even as operating systems come and go, I can carry the work forward—despite all of the progress around me.
I doubt I'll see an end to this nomadic data-lifestyle in the next few decades, or even in my lifetime. But really, no complaints—it's fun to wander around in the middle of so much waste and progress, and I'd rather be here than anywhere. You just have to keep working out how to travel light and stay portable.