This follows a standard pattern in my Linux experience. I love Linux, and have for years, but along with its cool open-source, open-ended, open-connection format, there's a strong tendency to fall into the Upgrade Cycle of Doom. This happens when you try to install a fairly new application or utility. You find that it has a dependency on a library. You find that that library, in turn, depends on another library. That other library only ships on an updated version of the kernel, or you can download the source and build it yourself.
Back in the day, when I was running Mandrake, this cycle would take a long time, and the only reason I kept it up was because I was always doing it... when you're regularly installing stuff, you generally keep up with the latest versions of the libraries you need. These days I'm dual booting more often, and Linux is usually just running in the background to power MythTV or azureus.
However, after playing around with some iphone apps, I got curious about how hard it would be to write one of my own. I haven't written any programs for Mac OS, ever, but it seemed like a fun task. I found a project on Google Code to develop a cross-compiler for the iPhone, so I decided I'd try to play around with that.
I realized I didn't have all the tools I'd need to build the cross-compiler, so I went about updating them. This is far easier for Ubuntu, thanks to its use of debian's apt-get system. This is a wonderful replacement for the more traditional .rpm or "build it yourself" system: apt-get automatically checks all your dependencies, downloads necessary resources, and manages all of the configuration settings and other files for you. It kind of feels like cheating. The one problem, though, is that apt-get tends to only play nicely in an all-apt-get setting; if you start mucking around with raw builds on your own, apt-get won't know how to deal with things.
So anyways, I fire up apt-get, and that's when I discover that my ancient version of Ubuntu, Breezy Badger, has been discontinued from the apt-get world. Ubuntu releases new versions at regular six-month intervals, and gradually phase out support for older versions. That meant I wasn't able to get the tools I needed via apt-get any more.
At this point, I had two options: either return to the old way and track down and install the things I needed on my own, or do the upgrade. I knew the upgrade would be painful, but it's something I'd want to do sooner or later, and I'd rather do it now when it's not all that pressing than later when it's important.
And so I struck off into the unknown. It turns out that Ubuntu has two classes of releases, divided by the length of time they are supported. So I already had a choice: upgrade to the most recent version, or upgrade to the most recent version with long-lived support.
I decided at first to go with the one with more support. Since I had already gone for about two years since my last upgrade, it seemed logical that I might be able to wait about as long before the next upgrade, so it made sense to choose a version that would let me update my programs for a while into the future.
I jumped into the upgrade, which went very slickly. Even without downloading or burning CDs, I was able to easily stream down everything I needed using ubuntu's tool, and soon things were off. It wasn't a totally automatic process, but I was able to keep it running overnight or while I was at work and respond to queries when I returned.
Finally, everything was upgraded again! Except I now ran into the second rule of Linux upgrades: when you change something, expect other things to break. Again, I was expecting this, so I knew ahead of time what sorts of things to check: verify that mythtv was still working, make sure that I could use my remote, and so on. These are all things that had taken me several weeks to get working originally, and I had the feeling that they would behave the same the second time around.
My feelings were correct. Myth took a little bit of work - the backend database, MySQL, had been upgraded, and needed some manual reconfiguration in order to put it back into shape so the front end could talk with it. The bigger problem, though, was the remote control. I just couldn't get the receiver to work.
After poking around the forums a bit, I found a post from an Ubuntu developer describing an incredibly simple process to get lirc (the "Linux Infrared Remote Control" program) running. There was just one catch: it required a recent version of the Linux kernel. As in, a few weeks old. As in, more recent than the version that ships with Dapper.
So, back into the upgrade seat I went. I would have to go from Dapper all the way up to Gutsy in order to access the right kernel. Ubuntu recommends that you upgrade one step at a time, not skipping over intermediate releases; I did some calculations, and determined that spending a few days doing simple releases would be a better plan than spending one day forcing the version to Gutsy and then spending weeks tracking down all the problems it introduced. So I took baby steps: Dapper to Edgy, Edgy to Feisty, and Feisty to Gutsy.
And that brought me back to my screen. Throughout this process, I'd been monitoring progress via SSH on my main box. Oh, I should have mentioned before now that all this is taking place on my media PC, which is hooked up to my television. Small console text is hard to read on that screen, so I've really appreciated the ability to do remote administration. Anyways, after I was finally on Gutsy, I spent some time getting myth working again, and then moved my focus to lirc. I was delighted at this - it took less than half an hour to get my remote working, including the time I spent configuring the serial port and managing my startup options. In contrast with the weeks it took me to get the remote operational under Breezy, including manually rebuilding my kernel modules, I'd say we've come a long way.
However, we're not quite there yet. Somewhere along the line, I managed to mess up my Samba setup. At least, I assume that I did. All my configuration files look fine to me, but I'm no longer able to browse my media PC's network shares from my main desktop. That's something I've been able to take for granted for a few years and take much advantage of, so I want to get it working again as soon as I can.
After that, though, definitely going to be compiling for the iphone! You can count on it. After all this effort, I'll be crushed if I can't even say "Hello, world."
I may have to learn Objective C first, though. If it isn't one thing...
Hm, what else have I been up to? Oh! Big news this week was getting to see Terry Pratchett at Kepler's. I'm very glad that I went; I'm a pretty recent convert to his books, but I enjoy them immensely.
His talk was funny and a little bit odd. He started off by talking about his recent stroke and the death of his father - sad topics, to be sure. He segued into a discussion of his future plans for writing, which will lead off with some non-Discworld books but circle back around. There was also some discussion of a Discworld film, which is news to me; he sounded excited about it, but warned that he won't believe it's actually happening until he's walking down the red carpet. We'll be getting Hogfather in the States soon, though he dryly speculated that most of us had already arranged to see it. (Guilty.) I'm still a little unsure of how to best describe him in person... he's kind of elfin, but with a darker personality, but funnier. He doesn't seem to be as natural of a good speaker as Neil Gaiman was, but he's arrived at good public speaking through practice and patience.
He also gave a generous Q&A session. Some topics he touched on included:
- What it's like to write for both adults and kids. He said that the adult fans read the kids books (I haven't yet, but I will), and he suspects that the kids read the adult books. Because of that, he's careful about what he puts in them: if you know the details of certain adult subjects, you'll understand certain references within the books, while if you don't already know about them, you won't be able to learn much from Discworld. He also said that, in his experience, kids who read come from families who read, and this makes him more comfortable, since he thinks kids tackling his adult books will have good support for anything they run into.
- Whether he'll write another Discworld non-novel, like "The Science of Discworld." "My agent tells me that there's been a lot of new science since that was written," he dead-panned. He likes the idea, but doesn't know if or when it will happen - as usual, there are so many other projects going on, and that isn't a very high priority for him right now.
- Whether he'll collaborate with Neil Gaiman again. "Now there's a question I don't get asked often." (I actually wasn't sure if he was being sarcastic - I think it was probably extremely dry British humor, but it was hard to tell.) They haven't ruled it out, but they won't write a book for the sake of writing a book; if they come up with a good idea, and actually both have time to do it, he'd be happy to. "Don't hold your breath" was the impression I got.
- His favorite Discworld character. I was expecting him to say something political, like "They're all my favorite" or "I can't choose just one." Instead, he gave two. I forget the first one, other than that it was a female name. I don't think I've read about her yet; it wasn't Susan or one of the witches. The second name, though, was Sam Vimes, which actually got a round of applause. (Well deserved, too; he's probably my favorite character as well.) He said something like, "If I could, every Discworld novel I wrote would be a Guards novel."
- (Some time later) His favorite book that he's written. "Wintersmith."
- His feelings on technology. "It's fine, but there's no reason that things need to have developed the way that they did on Earth." He told an anecdote about an inventor in the 18th century who invented a design for an airplane, but was never able to make it fly, because he relied on a steam power engine. Several years after he died, petroleum engines were invented. If he had lived just a little while longer, it's very possible that we would have had airplanes long before they actually came. More broadly, I think he was getting at the point that things on the Discworld should be seen as alternate possibilities... we should be less Earth-centric, and have a bit more fun in how we consider the universe.
Then he signed a lot of books for everyone. I thanked him for coming. "Oh, the pilot did all the work," he said. I laughed, and left. Have I mentioned before that I'm not good at talking with famous people? In addition to Making Money, I also had him sign my copy of Good Omens. Erik mentioned that he had previously had his signed by Pratchett, who wrote "Burn this book!", and later by Gaiman, who added an asterisk and wrote "Apply Holy Water Here." Gaiman did the "Burn this book!" part for me, but I guess they aren't trading off any more, since Pratchett just put his signature below Gaiman's. Ah, well. I'm definitely not complaining - it was very cool to just meet him.
It was also fun to do another literary event. I still clearly remember what it was like living in Kansas City, when it felt like book signings were the only real cultural events in the area. I could fill a shelf with the authors I picked up through Rainy Day Books (Ron Chernow, David McCullough, Al Franken, Azar Nafisi...) Out here I'm averaging one author a year. And you know something? I think that's OK. They're good authors, and perhaps just as importantly, people I wasn't reading before I moved to California. Great A'Tuin moves onward, and I'm just happy to be here for the ride.