Archives for Uncategorized

Why you get code sprawl

I’m working on a project right now, and I need to fetch a particular object from the database. Unfortunately, the method I need doesn’t exactly exist, despite the fact that the object is stored in the database and has a strongly-typed class that defines it. I have to sit here and figure out exactly how [...]

Debug Windows services in C# using reflection

[This example is for .NET 3.5 and Visual Studio 2008] I recently had to fix a bug in a Windows service written in C#. Unfortunately, Windows services are not straightforward to run in debug mode. This led me to try two solutions that I found lacking. I ended up using a relatively simple and flexible [...]

How to close the last/only tab in Firefox 3.5

I recently downloaded the latest version of Firefox. I quickly discovered that one of my favourite features was gone: the ability to close a tab if it’s the only one open. It’s turns out that the feature isn’t missing; it’s just no longer enabled by default. I figure this makes sense since a fresh install [...]

Trusting your users is hard for you, but good for them

Default options should handle the most common, most trustworthy case. Gmail got this right when they stopped asking for confirmation for users’ actions and started allowing people to undo them instead. For example, most of the time, I am sure I want to trash that email, so asking for confirmation does nothing for me; my [...]

Grow great software without getting hung up on the past

Smart people can invent solutions to problems you don’t actually have yet. The problem is, it’s easy to think of problems you don’t have yet. Stopping to solve them all now is a recipe for paralysis. – Chip Morningstar, Smart People Can Rationalize Anything It’s important to focus on your current difficulties. And if you [...]