Just a few more notes related to the site redesign process, and then I'll move on to other topics.

Things that went right:

  • As I mentioned before, I went with Drupal again, and I still love it.
  • I used CSSEdit heavily in developing the site theme. My CSS-fu is not quite at the level of the masters, so this app was incredibly valuable in the design process. Editing CSS by hand always ends up as a frustrating trial-and-error scheme for me, but with CSSEdit I was able to make significant changes and updates with (relative) ease.
  • I also used Firebug some, which is another awesome site development tool. I probably would have used it more but I didn't know about it until most of the heavy lifting was done.
  • I installed Drupal (along with MySQL and PHP5) on my Mac, and was therefore able to do all of my development offline. Once ready, I just uploaded the files and transferred the database contents, and the online version just worked. Awesome!
  • Thanks to Pair's domain-mapping system, I was able to upload the new site into a sub-directory without disturbing the old site. Once I verified that the new site worked, I essentially flipped the switch, pointing atomicbird.com to the new directory, and the transition happened automatically. A whole new site and not a moment of downtime, how cool is that?
  • An amazing new book documenting Drupal's workings came out right when I needed it. As a result I was able to customize my site design in ways that would have previously been beyond me. For example, I'm using Lightbox2 for images, and with Drupal's theme system I was able to make images become nice and lightboxey more or less automatically when they're uploaded. Mac developers might think of the theme system as sort of like an informal protocol in Objective-C: Functions are defined which your theme can override if you like, but you're not obligated to implement any of it. In this way you can customize where you want and let the default behavior take over elsewhere.

Things that went wrong:

  • I accidentally broke my Sparkle application auto-updates for a while on transition day. I didn't have Sparkle's server-side code running on my Mac and I didn't realize it wasn't working until after the changeover. This was apparently due to some new security fixes in recent versions of Drupal, which among other things meant that running PHP in the files/ directory is no longer considered a good idea (if it ever was). Moving the Sparkle files to a new location was easy enough, but what about all those people who already have copies of MondoMouse and Chimey that are expecting the old URL? I had to quickly learn a bit of Apache's mod_rewrite to fix up URLs on the fly, but now it works.
  • I'm still getting spammed through the site contact page, something I thought I would be free of by now. I'm attempting to deal with this by means of a math-based CAPTCHA right now. The contact form will ask you to solve a random simple math problem like "what is 4+5?". Get it right and the message is sent, otherwise forget it.
  • My web store at eSellerate is fully customized to look just like this site. However their web store system has some, uh, undocumented behaviors. What bit me here is that if your design includes something like:

    <span id="foo">Hello, world</span>

    It will unexpectedly render as:

    <span>Hello, world</span>

    This really sucks if you have a CSS selector "#foo". I spent a while trying to figure out why my design was broken until checked out the source code. It turns out that id on a span gets stripped out for some reason, although class remains untouched. At the last minute I had to convert a bunch of ids to classes just to make the store work right.