GMail, Return-Path, and Lost Replies

September 15th, 2007

I missed a couple of important e-mails while I was in Norway this past week. Although I was checking my metalab.unc.edu e-mail at least once a day, several important responses somehow went to my GMail address instead, which I was not checking. I found them when I got home and opened my Gmail account yesterday.

At first I was perplexed, because I do not usually set my return address to GMail. Then I remembered that on the road I was using the GMail SMTP server to send, because the Speakeasy server I normally use only works from my local area network behind my router. Could GMail be rewriting my headers? So I did some experiments.
Read the rest of this entry »

Why Does Software Assume Hardware is Reliable?

August 30th, 2007

I am getting quite tired of Mac OS X locking itself into the spinning beach ball of death due to failing hardware. In the last year or so I’ve had two LaCie hard drives go out on me, and a third seems to be going now. In each case, the Mac got thrown into a completely confused funk because the drive didn’t respond quickly enough or at all. Note that these drives were used strictly used as external backup device. They didn’t hold any operating system or application files.

Haven’t we learned by now that I/O is an unreliable operation, and that you should never assume that any read call will succeed, or will return data in the format you want? That’s true whether you’re talking about files or FireWire packets. Furthermore, critical components like the Finder should not block on synchronous I/O. Any I/O needs they have should be serviced asynchronously.

It’s hard to take the Mac seriously as a reliable server platform when it’s so easily brought to its knees by one misbehaving hard drive.
Read the rest of this entry »

Window Maximizing and Multimonitor Setups Across Platforms

August 16th, 2007

For the last couple of months I’ve been working on Windows as my main desktop during the workday (not my personal choice, but I can live with it.), and that’s caused me to notice a few things I haven’t noticed before, especially in contrast to the Mac style of managing windows. I’ve task switched between Mac and Windows before–for several years in the late 90s I did all my development and book writing on Windows and all my e-mail and Internet on the Mac–but this is the first time I’ve had the chance to compare the two environments with multiple monitors, and that’s made some difference in my take on matters. Practices that work well on a single monitor system don’t work as well on multimonitor system and vice versa. After playing with this for a while, I’m starting to think that the Windows approach works better for multiple, small monitors and the Mac approach works better for a single, widescreen monitor.

To summarize, here are the critical differences between the two platforms. These are worth keeping in mind when you’re designing a cross-platform application such as Firefox or Limewire, or any web site.
Read the rest of this entry »

Talks I Want See at SD

August 15th, 2007

The call for papers for Software Development 2008 West is now live. What follows are abstracts for some talks that I am not giving, but that I very much hope someone else will present. If anyone feels like submitting one of these under their own name, I’ll champion it when the advisory board goes over the submissions.

Intro to Ruby

Ruby is the fastest growing programming language of the new millennium. Through interactive exercises, this full day, hands on tutorial will bring programmers from zero to sixty with the language including:

  • Control structures
  • Strings and Regular Expressions
  • Formatted Output
  • Arrays and Hashes
  • Math
  • Objects and classes
  • Closures
  • Files
  • Network Programming

Read the rest of this entry »

The State of Native XML Databases

August 13th, 2007

I’ve recently been asked by several people to summarize the state of native XML databases for those interested in exploring this space. IMHO, native XML databases are now roughly where relational databases were circa 1994: solid, proven technology that gets the job done but only if you pay big bucks to do it. However, there’s some promising open source activity on the horizon. To be brief, there are roughly four (maybe five) choices to consider:

  • Mark Logic
  • eXist
  • DB2 9
  • Berkeley DB XML

Read the rest of this entry »