“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”’ »

“#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”’ »

Upgrade: Ubuntu Linux 8.04

In the wee hours of last Sunday morning, I decided to take the plunge and upgrade my copy of Ubuntu Linux. I’d been using the previous major release (7.10) since it came out, eight months ago. I’d wanted to wait and upgrade Mini-mEee to 8.04 first, before subjecting my main work system to it, but …

Continue reading ‘Upgrade: Ubuntu Linux 8.04’ »

Ubuntu 8.04 for the Eee PC

I installed Ubuntu 8.04 on my main system over the weekend (I’m preparing a blog entry about it now). I’d hoped to try it out on the Eee system first, but that hadn’t been possible yet. The Ubuntu-Eee project finally posted a Release Candidate for the 8.04 upgrade a week ago yesterday, on the second. …

Continue reading ‘Ubuntu 8.04 for the Eee PC’ »

“When code goes bad: What to watch for”

This article clarifies a few things that I’ve subconsciously noticed myself — for instance, when you have a function in your program that does more than it should, it becomes hard to succinctly and concisely name it. It also introduces the “three numbers in software” (zero, one, and infinity), and the phrase “inheriting from the …

Continue reading ‘“When code goes bad: What to watch for”’ »