Tag Archives: best practices

When Your Computer Catches Fire

Occasionally, I amuse myself by reading Not Always Right. I really shouldn’t, as it’s always bad for my opinion of humanity, but sometimes I just can’t look away. And occasionally, it clues me in to a teachable moment. Like this one, which recently appeared there: Caller: “My computer is a fire risk.” Me: “What makes you say that?” [...]

Developers Are Not QA Testers

When a company says “we can’t afford a QA department”, what they’re really saying is, “we accept that our software will be infested with bugs, and quality is not important to us.” When they compound this basic error by saying, “the developers will just have to do their own QA”, they prove that they have [...]

Easy Restarts Are a Security Feature

The more stuff you have open (or habitually leave open) in an application, the more it becomes part of your consciousness, an extension of your mind. For many of us, the question “What are you doing right now?” could best be answered by, “Here’s a list of the tabs I have open in my web browser.” [...]

Are You Sure You Want to Read This Blog Post? (y/n)

When should you ask a user “Are you sure you want to do that?” Bear in mind that asking this question when you don’t have to has more than one bad effect: Obviously, it wastes the user’s time and may even annoy them. It also contributes to the general problem of “too damned many dialog boxes [...]

Is Your Domain Name Spellable and Pronounceable?

A good domain name should have the following features: When someone says it to you, you know how to spell it. This means that if my friend wants to tell me about your site at a party or a club or out on the street somewhere, she doesn’t have to spell it out for me. [...]

Can You Learn From a Prediction That Was Wrong?

Recently, a bunch of the blogs and journals I read (including my friends, not just big, famous sources) have had some bones to pick with Clifford Stoll’s 1995 Newsweek opinion piece, “Why Web Won’t Be Nirvana”. Stoll said: “no online database will replace your daily newspaper, no CD-ROM can take the place of a competent [...]

How Many Ways Is Your Imitation Scrollbar Broken?

If you’re going to reinvent the wheel, you should at least make sure your new version is somehow better than the previous kind. Reimplementing standard UI and OS widgets is one of the most common ways developers reinvent the wheel these days — it started with Flash developers building their own controls, and has now spread [...]

Testing Backward-Incompatible Changes

Let’s say one day you decide to add a feature to your software or service. For example, you need a new flag on user accounts, so that different types of users get different features. (These don’t even have to be tiered account levels; maybe accounts of type “music lover” get a widget in the sidebar [...]

Notes on LJ Content Sieve

My latest project is something I call “LJ Content Sieve”: a Greasemonkey script to filter out content on one’s Livejournal views based on nearly any attribute of a post or comment. However, Livejournal is very customizable. It has 31 different “layouts”, each of which can then be further “themed” by application of CSS. This means [...]

Would Shlemiel the Painter Optimize Prematurely?

I don’t want to optimize this code prematurely. And “while you’re still writing it” is probably premature. On the other hand, totally ignoring algorithmic complexity is a sure route to a Shlemiel the Painter’s algorithm. Do I really want to just write the whole thing, and then start profiling it to see where the hot [...]