August 22, 2007

Slipping Through the Cracks

Ok, so here's how the new package management for distributions is supposed to work.

You use your favorite manager (yum, apt-get, etc), you install the binary, and then away you go.

For the longest time, I would have problems with non-standard naming conventions. Most well-behaved GTK/Gnome apps at least throw themselves in the menu, but that assumes you're using a desktop system. Occasionally, when installing RPM's on my server, I won't even know what the command is to invoke the darn thing. The install command might be "yum install foo," but after it's installed, you might have to run foo or Foo or g2Fu or whatever. You're dropped off after yum does its job with no help.

It's like taking a bus to a convention and being dropped off 5 blocks away, with no sign or map.

Which brings me to my next point. I'm trying to install Mailman to start a small listserv-type thing. I I had to root around to find it (do you search "listserv" or "web mailing list" or what?). When I found it, I got yum to happily install it. However, now what?

It's supposed to be administered from the web. There are files in /etc/mailman, but I rooted around in there without finding much. There's no man page installed, so I'm at a loss. What's the URL? There's an entry in /etc/httpd/conf.d for mailman, which means apache is supposed to redirect some URL to it, but *what* URL? In this case, where do I look for help? It's times like I this I can see the gap between theory and practice in free software.

Posted by flynn at 1:26 PM

August 13, 2007

The Gutwrenching Joy of Linux

So, there was a post on Slashdot recently that epitomized the frustrating thrill that you can get with a complex system like Linux.

Basically, Linux evolved from Unix. Unix files have a time stamp called "atime." What atime means is it's the last time a file was accessed in any way: reading or writing. So, every time the system opens a file for reading, it has to write back out to the same file to adjust the atime. It's a bit more complicated than that with inode-based filesystems, but the upshot of this is that reading files can require disk writes. Disk writes can be slow...much slower than reads. Current hard disks aren't too bad in a difference, but flash memory is much, much slower to write to than to read from.

The game I work on at work now has migrated to using USB flash drives. That's been a whole host of other problems I won't get into now, but we'd noticed some odd slowdowns when doing things like playing video. Basically, since a file write is done on access, that means if you're streaming video from flash, you end up writing out for every read, and that REALLY slows things down.

Well, you can fix this by a simple mount command argument in fstab - noatime. Doing that sped up our game immensely. What does this have to do with frustration & joy? Well, there's always the idea that there's some setting, some optimization, some configuration that is hiding in the back alley somewhere that can make life better. It's like being in a jungle, but a jungle that has treasure hidden in the form of a downed plane, a buried chest, or a tree of life. It's out there....you just have to look.

Posted by flynn at 12:19 PM