programming concepts

open source

Open Source: Free as in "Free"

Here's Scott Hanselman [http://www.hanselman.com/blog/SandcastleMicrosoftCTPOfAHelpCHMFileGeneratorOnTheTailsOfTheDeathOfNDoc.aspx] on the death of nDoc [http://www.charliedigital.com/PermaLink,guid,95b2ab68-ba92-413a-b758-2783cde5df9c.aspx] : > We are blessed. This Open Source stuff is free. But it's free like a puppy. It takes years of care and feeding.

By Jeff Atwood ·
Comments

programming concepts

Separating Programming Sheep from Non-Programming Goats

⚠ Please note, this paper was ultimately retracted by its author (pdf) in 2014: In 2006 I wrote an intemperate description of the results of an experiment carried out by Saeed Dehnadi. Many of the extravagant claims I made were insupportable, and I retract them. I continue to believe, however, that

By Jeff Atwood ·
Comments

programming concepts

The Monopoly Interview

Reginald Braithwaite's favorite interview question is an offbeat one: sketch out a software design to referee the game Monopoly.* I think it's a valid design exercise which neatly skirts the puzzle question trap. But more importantly, it's fun. Interviews are a terror for the

By Jeff Atwood ·
Comments

software maintenance

The Noble Art of Maintenance Programming

Mention the words "maintenance programming" to a group of developers and they'll, to a man (or woman), recoil in horror. Maintenance programming is widely viewed as janitorial work. But maybe that's an unfair characterization. In Software Conflict 2.0 : The Art and Science of

By Jeff Atwood ·
Comments

software development

Why Do We Have So Many Screwdrivers?

Jon Raynor added this comment to my previous post about keeping up with the pace of change in software development: The IT field is basically a quagmire. It's better to accept that fact right away or move on to a different field. I guess someday I wish for

By Jeff Atwood ·
Comments

best practices

Best Practices and Puffer Fish

James Bach's seminal rant, No Best Practices, is a great reality check for architecture astronaut rhetoric. It's worth revisiting even if you've read it before. Some might say Bach's viewpoint is pessimistic, even cynical: The way to get rich in this world

By Jeff Atwood ·
Comments

regex

Regex Performance

I was intrigued by a recent comment from a Microsoft Hotmail developer on the ptifalls they've run into while upgrading Hotmail to .NET 2.0: Regular Expressions can be very expensive. Certain (unintended and intended) strings may cause RegExes to exhibit exponential behavior. We've taken several

By Jeff Atwood ·
Comments

programming concepts

It looks like you're writing a for loop!

Even the best programmers make shitty software, with bugs. But some programmers are naturally proficient at creating this special kind of software, as illustrated by a Croatian developer known as Stinky: The anecdote that best reveals how little Stinky knew about programming started when he asked Bojan to help him

By Jeff Atwood ·
Comments

visual studio

Code Snippets in VS.NET 2005

One of the most enjoyable new features in Visual Studio .NET 2005 is Code Snippets [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/html/codesnippets.asp] . This animated GIF illustrates how it works: I'm demonstrating three types of snippets here: * simple expansion * template expansion (with

By Jeff Atwood ·
Comments

events

Is DoEvents Evil, Revisited

A colleague of mine had some excellent comments on the surprising reentrancy issues you'll run into when using Application.DoEvents(): The Application.DoEvents method is often used to allow applications to repaint while some longer task is taking place. This is usually the result of polling instead of

By Jeff Atwood ·
Comments

learning

Success through Failure

I found this Will Wright quote, from a roundtable at last week's E3, rather interesting: Will Wright said he's learned the most from games that seemed appealing on paper, but were failures in the marketplace. "I actually ask people when hiring how many failures they&

By Jeff Atwood ·
Comments

programming concepts

Welcome to the Tribe

I don’t know why I haven’t found this before, but Robert Read’s* How to be a Programmer (PDF version) is well worth your time: To be a good programmer is difficult and noble. The hardest part of making real a collective vision of a software project is

By Jeff Atwood ·
Comments