“Don’t hide or disable menu items”

I generally agree with Joel Spolsky on most things computer-related, but I’ve been thinking about this for a few days, and I just have to disagree. I see where he’s coming from, but it seems to me that there’s a better way to let the user know why an option is disabled (maybe a mouse-over …

Continue reading ‘“Don’t hide or disable menu items”’ »

“E-Mail After the Rapture”

I’ve always liked Bruce Schneier, a very well-known security professional. Earlier this month, he tackled the thorny question of how You’ve Been Left Behind, a post-Rapture service for those who believe in that Christian concept, secures the information that you give them to ensure that it won’t be stolen or prematurely released. If you’re not …

Continue reading ‘“E-Mail After the Rapture”’ »

“#ifdef Considered Harmful”

This is an old (1992) paper on writing cross-platform C programs, but it’s useful nonetheless. A lot of the problems highlighted in it have all but vanished over the intervening years, but the general ideas are still valid, even on Windows machines. (Have you ever tried writing a non-trivial Windows application, using the raw Win32 …

Continue reading ‘“#ifdef Considered Harmful”’ »

#ifdef or #if defined?

One of my co-workers discovered an interesting item in the #ifdef/#ifndef entry of the help files for Microsoft Visual C++ 2005: These directives are provided only for compatibility with previous versions of the language. The defined( identifier ) constant expression used with the #if directive is preferred. (Update: The same statement is in the help …

Continue reading ‘#ifdef or #if defined?’ »

“The Ultimate Code Kata”

Jeff Atwood has a good article on using practice-programming to continually hone your programming skills: Contrary to what you might believe, merely doing your job every day doesn’t qualify as real practice. Going to meetings isn’t practicing your people skills, and replying to mail isn’t practicing your typing. You have to set aside some time …

Continue reading ‘“The Ultimate Code Kata”’ »