keeping /etc under revision control

A while back I saw a blog post about keeping /etc under version control.  The particular article talked about using Mercurial for this and built on an article that used git to do the same thing. The nice thing about this approach was that it hooked directly into Debian’s apt and made sure that your repository was synced before and after each package installation … which means that if you forget to sync your changes to the machine’s configuration yourself, the system will take care of it for you. I set out to do something similar myself and, just as I finished, I discovered Joey Hess’s etckeeper which supports git and Mercurial, but not Bazaar, my DVCS of choice. So I added it. The biggest problem I found was that bzr doesn’t support pre-commit hooks the same way that git and Mercurial do, but since etckeeper has pre-commit hooks, I just put the action there. This means that some of the meta-data could get out of sync if you do a “bzr commit” by hand, but until the start-commit hook is added, I think that is just the way things will have to be.

Ubuntu hates XFS

I was a little worried that the hard drive in my laptop was dying (though, looking at the Load_Cycle_Count, I don’t think it is Ubuntu’s fault, at least not because of cycle time) and since I was on-site, I was able to get a loaner laptop.  I decided to use XFS (/boot would be ext3). Big Mistake. Everything worked great on the installation, but as soon as I installed all the updates and rebooted, gnome-terminal wouldn’t start. Took a little doing, but I discovered that my XFS partition had become corrupted.  Ran xfs_repair and it dumped a few files in /lost+found. But now things work. Take heed.

Linux on the desktop is definitely here

In talking to some people about my mother’s experience with Ubuntu, I decided that the one thing Canonical could do to make it all easier would be to build a Windows- or C#-based downloader-and-cd-burner. (C# so that it would work on a Mac or Linux as well as Windows.) Using this hypothetical app, people like my mother could download an ISO, fetch and verify a GPG-signed MD5 checksum, and burn a cd using a single application. No more fumbling with multiple unfamiliar applications to accomplish a single task. Still, with prominent mention of Dell computers on Ubuntu’s front page, with the advent of $200 computers loaded with Linux, with nerdy sons like me, even the streamlined ISO burner may not be as urgent to get Ubuntu on Grandma’s desktop. But it would really help.

The Freetard gives his Mama a bit of Ubuntu

How is it that some fancy-pants framework is always the right tool for an abstract job and PHP is the right tool for a real job? (The right tool for the slob) Exactly. Though I would say “Why do all these freetards talk about freedom, but then give their Mama a Mac?” So it is good that an idealist, freetard like myself actual tests his ideals in the real world. In this case, the test subject was an important one: my mother. A couple of weeks ago, Mark Pilgram’s post about switching his father to Ubuntu reminded me that I had told my mother she should try Ubuntu since her Windows laptop was slowing down. That weekend, I mentioned it to her again in email. Her response was “Ubuntu is what? … oh I see something about printing. That would be GREAT if I could communicate from my computer to the printer.” (You can read our whole email exchange, if you like.) Given her limited knowlege of Linux, I asked her to try it out. In fact, I made it more challenging. I pointed her to the Ubuntu download page and asked her to download the ISO and burn it … and I wouldn’t help her. She managed to get a Dapper installation CD burned (I didn’t tell her which version to try) but ended up thinking she had failed because the MD5 checksum process didn’t work. Or maybe it did and the download was bad. Still, I was able to use the CD when we met up a week later. In the end, that part of the experiment showed part of the failures of Ubuntu’s efforts. At least when it come to 56 year-old grandmothers, Ubuntu’s download page is too filled with jargon to be really useful. And I don’t know where to report this bug. Even though we live a thousand or so miles apart, we happened to be getting together the next weekend. So I got a Gutsy CD ready so that I could walk her through the Ubuntu installation and finish it up. Even then, my faith in Ubuntu was shattered. When I asked her to boot off the CD, she did, but she started it in safe mode (which probably created other problems). Still, there were a few bright spots. Perhaps the biggest thing Ubuntu got right was converting her existing Windows user, including bookmarks and IM account, over to the equivilent programs in Linux. That feat, in and of itself, makes me almost forgive all else. Still, there were a number of things that the installation didn’t get right:

  1. When it is converting the only existing Windows user, it asks for a username and password. And then it asks for the “default” username and password on the next screen. Why?
  2. Resizing the disk when you want to preserve the existing Windows installation is too confusing. Still.
  3. The Live CD installation tells you to “remove the CD and reboot”, but you can’t remove it when the Live CD environment is still running.
  4. The boot splash screen was a blank screen and you would have thought the installation failed if you hadn’t seen this before and watched the drive activity light
  5. She has a widescreen laptop, but it defaulted to 1024×768 and a VESA driver instead of 1280×768 and an ATI driver
  6. Suspend on her Compaq Pressario V2000 doesn’t work.
  7. Her broadcom wireless meant I had to download drivers on my laptop and transfer them to hers.

(Yes, I still need to report these bugs.) But even after all this, I was still encouraged when I explained that we wanted to preserve her Windows partition and she asked “Why? I won’t be needing it any more!” In the end, she went home with Ubuntu running on her laptop and seemed pretty happy with it. Hopefully, in a few weeks I can write more about any snags she has run into.

Ubuntu Emacs + misc.

I have been having a lot of fun with my Launchpad PPA. In addition to org-mode, I’ve packaged color-theme and a snapshot of the Unicode+XFT branch of Emacs using the package name emacs-xft-snapshot so it doesn’t conflict with existing packages. I also put a package for PHP’s Xdebug (which does a decent job of profiling PHP code and can be used to make pretty call graphs) and one for eMusic/J.

Mac Vs. PC

My mother called me up the other day: “Hey! Have you seen these new Mac vs. PC commercials?” she asked. “You should show your kids!” They are funny, but, they’ve gone on for too long. The PC guys are even (finally) coming up with some nice come-backs. Besides, I’ve been a Free Software user and contributor, advocate of programming freedom for too long to get sucked into the platform wars that Microsoft, Apple, and others foment. You like Windows? Great! OS X? Wonderful! So what Beryl only now beginning to do things that OS X has done for decades? I’m a geek and I value my freedom more than the latest GeeWhizGottaHaveIt feature that Steve Jobs has decided is cool. I’m also patient. I have to be. The Gnome desktop doesn’t do everything a PC or Mac does right now, but in a couple of years (at the most) that oh-so-unique feature on your proprietary platform of choice will be commodified to the point of ubiquity. Ubuntu has already begun to make a credible effort at this, attempting to steal market share from the established leader. Yeah, your BMW is nice, but my used minivan gets me where I need to go, and I didn’t have to spend a mint on it.

Converting Redhat to Ubuntu in colo

At BusyTonight, trying to see how much bandwidth we can consume crawling sites. Bandwidth tends to be pricy, so we haven’t had much chance to really test our wings till now. We got a colo’d server with a 10mb unmetered pipe. Problem was, it had RedHat installed and our software is written to be installed as Debian packages on Ubuntu. So, how do you manage convert the operating system of a server you don’t have physical access to? Well, Debian makes it (relatively) easy. The debootstrap tool that Ubuntu inherited from Debian make it possible to set up a spare partition (swap, if need be) as a boot disk into which you can temporarily install Ubuntu. Once you have that up, you can tweak Grub, reboot with your fingers crossed, and — provided everything works smoothly the first time — you’ve got a Ubuntu system running. Of course, nothing works smoothly the first time. Luckily, I had kvm access for a few hours. So, I used it to struggle with the kernel. Too late, I realized I needed a custom kernel. Since I didn’t have to figure out which bits were missing from the Ubuntu kernel or what bits were included that shouldn’t have been, I just used the stock RedHat kernel to run the Ubuntu OS. It works enough to test out some ideas we have. And, if we need to do this in the future, I’ve a good idea of where to start.

Where do real programmers work?

I came across Joel Spokely’s assertion that “… the most satisfying careers, if you’re a software developer, are at actual software companies.” Something here didn’t sound quite right. “What about Open Source Software?” I thought. Then I saw POSSE: Portland Open Source Software Entrepreneurs (POSSE) is a local organization of entrepreneurs who rely on and develop OSS to help businesses succeed. See, there’s this whole other group of programmers besides the money-and-fame rock stars that Joel is talking about. Sure, they’re awesome developers and they’re excited about what they do. But people who work on Free Software are doing amazing things, too. Usually, it has been in their free time, often for their own use, so it doesn’t have the spit-and-polish that commercial software has. Even that is changing, though. Things like Beagle, Firefox and Ubuntu Linux show us that even Free Software has the power to be “remarkable software.” The sort of stuff the Joel says you need rock stars for.