Jeff Atwood

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

Bay Area, CA
Jeff Atwood

code refactoring

The real cost of performance

I don’t usually get territorial about modifications to “my” code. First of all, it’s our code. And if you want to change something, be my guest; that’s why God invented source control. But, for the love of all that’s holy, don’t take working code and

By Jeff Atwood ·
Comments

c#

WebFileManager updated

I updated the WebFileManager CodeProject article with some enhancements. It now supports zipping files and column sorting: I included both the code-behind and inline code versions of the page in the solution archive this time. There’s also a new dependency on SharpZipLib, assuming you want the remote file zipping

By Jeff Atwood ·
Comments

arcade gaming

MAME Cocktail Arcade

After years of resistance, I finally buckled. I ordered a 3-way MAME cocktail arcade kit: Over the last few years, the homebrew arcade market has spawned a number of businesses specializing in prefab cabinets – think IKEA meets MAME. They ship you the cabinet in a large box, and you assemble

By Jeff Atwood ·
Comments

unicode

There Ain’t No Such Thing as Plain Text

Over the last few months, I’ve come to realize that I had an ugly American view of strings. I always wondered what those crazy foreigners were complaining about in their comments on my CodeProject articles, and now I know: there ain’t no such thing as plain text: If

By Jeff Atwood ·
Comments

multithreading

Perceived Performance and Form.Paint

As a follow-up to my caution about exceptions in Form.Paint(), I wanted to illustrate why this technique is so effective. Let’s say you had a form with this code: Private IsFirstPaint As Boolean = True Private Sub DoWork() Cursor = Cursors.WaitCursor StatusBar1.Text = "Loading..." System.Threading.Thread.

By Jeff Atwood ·
Comments

software development concepts

Moving the Block

A recent post by Wesner Moise after a two month hiatus got me thinking about a passage from Steve McConnell’s, After The Gold Rush. Like all Steve’s stuff, it’s great, but the title is unintentionally ironic: the book was released in 1999, at the very height of

By Jeff Atwood ·
Comments

windows forms

If an Exception happens in Form.Paint, does anyone catch it?

In a previous post, I mentioned the old VB6 trick of deferring form work until the Form.Paint event in order to provide a (seemingly) responsive interface to the user. Well, in the .NET world there’s one strange side effect when you do this. Let’s say you had

By Jeff Atwood ·
Comments

asp.net

Code-Behind vs. Inline Code

After religiously adhering to the new, improved code-behind model of ASP.NET for so long, I have to admit it’s sort of refreshing to rediscover inline code ASPX pages again. Deploying single web pages to a server without recompiling the entire solution? Making localized edits to single pages that

By Jeff Atwood ·
Comments

programming languages

On mistakes

It’s always reassuring to be reminded that people much more talented than myself make mistakes, too. And I especially appreciate it when they share those mistakes in the form of advice: On avoiding IT mistakes: Rick Cattell’s, Things I Wish I Learned in Engineering School: • Good technology is

By Jeff Atwood ·
Comments

javascript

Client-Side code highlighting

When I visited Alex Gorbatchev’s blog, I noticed he had a unique client-side code highlighting solution in place, one I hadn’t seen anywhere else. That’s something I’ve wanted on my blog for a while; the vanilla <PRE> sections I’ve been using are serviceable,

By Jeff Atwood ·
Comments

windows

2005: Twenty years of Windows

The year 2005 marks the 20th anniversary of Windows 1.0: The first version of Windows I actually used was Windows 3.0. Coming from an Amiga background, I was unimpressed. It wasn’t until Windows 3.1 and Windows For Workgroups 3.11 that I actually started to believe

By Jeff Atwood ·
Comments

dvd

DVD Ripping and Nero Recode

Steve Makofsky turned me on to some software I already use: Nero Burning ROM, but more specifically, Nero Recode 2, which is a part of their expanded “ultra” Nero suite. I’ve long considered Nero the definitive DVD and CD burning software; I had no idea they also offered a

By Jeff Atwood ·
Comments