Jen suckered me into volunteering to help her music boosters with their choir contest this weekend. This entailed waking up at 4:45AM so we could leave at 5:30AM to finish setup and get ready for the festivities to begin at 8:00AM. Woo? My job description was Sound Technician for the day, where I handled four Sony voice recorders; three for the judges and one to record the choir. Each choir used between eight and twelve minutes for two or three songs, but each time block was twenty to act as a buffer between groups.
I was given a laptop from 2002 which ran XP . . . barely. I would have used my own system, but the chosen Sony recorders don’t support USB file transfer. No, you have to use their propriety software, which only runs on XP, Vista, and Windows 7. I’m not kidding. Sony actually wasted time writing software for something that’s been solved for the past five years: moving files between a computer and a USB-compatible device. Either way, once the files were transfered, I burned to an Audio CD so each team had audio comments from each judge, and a record of their performance. This took ten minutes every single time, because, again, the laptop was from the dawn of time. Inevitably, this meant I was still burning the CD while the next group started. Efficient!
In any case, I performed this task 18 times, and to ensure nothing was lost, I burned the data files to backup disks in sets of six. This also required ten minutes for each iteration. Luckily, I brought my ebook reader, so I didn’t have to express impotent rage at a Windows progress bar for several hours. Everything finished around 3:15PM, which meant we left around 4:00PM since I had to burn the final audio CD and backup. Such was a large majority of my Saturday.
On the plus side, I’ve decided to obliterate my website! (Fair warning, if you’re not interested in programming, leave now. I warned you.)
. . . by replacing it with something else. Seriously, my “engine” is a bunch of loosely coupled PHP scripts I threw together ten years ago. Certainly I’ve tweaked them occasionally, but they’ve lived essentially untouched in all that time, and there’s a limit to the amount of crud I can bolt on. Eventually, I’d need an actual blog engine, or a CMS, or my sprawling monstrosity will attain sentience and destroy us all.
But what to choose? I wanted to go with something in Python because the language’s object model and reference override system is truly an entity to behold, and a ton of the frameworks use really ingenous template engines, but there’s something about the community that encourages tinkering and hobbyism. That’s the only way I can explain why there is a dearth of major projects like WordPress or Movable Type. Everything I tested out was either something from a dude’s basement, or hideously unpolished and utterly baffling. Yes, I could write my own, but that’s just compounding the fragmentation issue; we don’t need yet another SomeDudesBlogEngine. I tried that, but after taking into account all the things I actually wanted and thinking about all the modules available for the larger engines, I’d not only be reinventing the wheel, but I’d be making it out of government cheese and balsa just because I wanted my wheel to have a fresh pine scent. This kind of thing is called NIH (or, Not Invented Here), and is an anathema to progress.
Sure, there’s Zope and the Plone plugin, but I think we can all agree those were never meant for human beings to comprehend, let alone utilize. It’s like building a site using a blindfold, a handful of darts, and your wife holding the dartboard—you may get what you want eventually, but it’s a long and painful process for everyone involved. Which brings me to the message I have for the Django and Zope developers: your default admin system is completely unusable! Let’s get this straight: menus are organized.
Zope, I’m sorry, but a giant select-box containing dozens, or even hundreds of configurable items, is not the epitome of or usability. I don’t care how powerful Zope is, because using it is like trying to find the one black marble in a swimming-pool of blue ones. Stop using the damn select box, and actually sort all the similar items into a freaking taxonomy, and turn the categories into suitable icons, or a drill-down with breadcrumbs, or tabs, or . . . anything else, really.
Django… you know I enjoy your occasional company, but you really need a bath. Please, change your wardrobe. Your default admin template is fine for small hobby projects, but anyone using it for a large engine is clinically insane. Your much lauded modularity, isn’t; out of the dozen different Django blog systems I tried, approximately none worked out of the box, using fresh pypi or github downloads of everything involved.
So after some searching around and tinkering, I decided to use Drupal. It’s got everything I want either directly, or through modules. And here’s a stark contrast to every python project ever, I was able to install it through a user-friendly wizard through the web-browser. Sure the menus are a little arbitrary, the modules strangely configured, and some of the plugins wonky and baffling, but I still got a working system out of it in a couple hours of experimentation. I love Python but . . . there’s just no competition here.
So we’ll see how long it takes to replace the content on my website with a much needed refresh.