Jeff Atwood

Indoor enthusiast. Co-founder of Stack Overflow and Discourse. Disclaimer: I have no idea what I'm talking about. Find me here:

Bay Area, CA
Jeff Atwood

A Stopwatch Class for .NET 1.1

The first rule of performance testing is to measure, then measure again, then measure one more time just to be sure. NET 2.0 adds a handy Diagnostics.Stopwatch [http://msdn2.microsoft.com/en-us/library/system.diagnostics.stopwatch.aspx] which is perfect for this kind of ad-hoc precision timing. A

By Jeff Atwood · · Comments

The History of Wumpus

I sometimes go by the handle "Wumpus" online. It's part of my personal brand [https://blog.codinghorror.com/your-personal-brand/], just like Coding Horror is [https://blog.codinghorror.com/on-the-meaning-of-coding-horror/]. Why? It was one of my formative computing experiences on the first "real" computer I

By Jeff Atwood · · Comments

Why Programmers File the Worst Bug Reports

Who files better bugs? Users or developers? In How to Report Bugs Effectively [http://www.chiark.greenend.org.uk/~sgtatham/bugs.html], Simon Tatham notes that software developers, contrary to what you might think, file some of the worst bug reports: > It isn't only non-programmers who produce

By Jeff Atwood · · Comments

The Case For Case Insensitivity

One of the most pernicious problems with C-based languages is that they're case-sensitive. While this decision may have made sense in 1972 when the language was created [http://cm.bell-labs.com/cm/cs/who/dmr/chist.html], one wonders why the sins of Kernighan and Ritchie [http://cm.

By Jeff Atwood · · Comments

The TweakUI Tips

I've been running some version of Microsoft's cool TweakUI powertoy [http://www.microsoft.com/windowsxp/downloads/powertoys/xppowertoys.mspx ] since the heady days of Windows 95. I recently found out that the author is none other than Raymond Chen [http://blogs.msdn.com/oldnewthing/archive/2005/

By Jeff Atwood · · Comments

Trespasser Postmortem

I love playing videogames, but I have no illusions whatsoever of being talented enough to write videogames. Game developers live a hard life, and not just because the industry is notoriously abusive. Even the most brilliant minds can get bogged down in the morass of complexity that is game development.

By Jeff Atwood · · Comments

Whatever Happened to the META Tag?

When was the last time you saw a HTML header like this? <head> <title>GUID World</title> <meta name="description" content="Everything you wanted to know about GUIDs but were afraid to ask"> <meta name="keywords&

By Jeff Atwood · · Comments

In praise of Beyond Compare

It's a shame that Beyond Compare isn't listed in more "favorite tool" lists. This amazing little folder and file differencing tool has earned its spot in my core toolset a dozen times over. Here's a screenshot of it in action: I'

By Jeff Atwood · · Comments

C#, VB.NET, and echoing strings in the VS.NET Immediate Window

I've become rather agnostic on the whole topic of C# versus VB.NET, but there are still those annoying little differences that sneak up behind you and rabbit-punch you in the kidneys. Like, say, using the VS.NET 2003 command window in immediate mode to print a string:

By Jeff Atwood · · Comments

Dysfunctional Specifications

The guys at 37signals think functional specs are worthless: Don't write a functional specifications document. Why? Well, there's nothing functional about a functional specifications document. Functional specifications documents lead to an illusion of agreement. A bunch of people agreeing on paragraphs of text is not real

By Jeff Atwood · · Comments

The Many Faces of (Windows) Death

As I recall, the Blue Screen of Death was introduced with Windows NT 3.1 circa 1993: A blue screen of death occurs when the kernel, or a driver running in kernel mode, encounters an error from which it cannot recover. This is usually caused by a [hardware] driver that

By Jeff Atwood · · Comments

Avoiding Undocumentation

Have you ever noticed that much of the online MSDN .NET framework help is.. not helpful? Take the the MSDN help for the IBindingList.AddIndex method [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemComponentModelIBindingListClassAddIndexTopic.asp] , for example: Scott Swigart calls this undocumentation, and elaborates further

By Jeff Atwood · · Comments