Archive

software development concepts

Revisiting The Facts and Fallacies of Software Engineering

I like to re-read my favorite books every few years, so I brought Robert Glass’ seminal Facts and Fallacies of Software Engineering with me on my most recent trip. I thought it was a decent, but imperfect read when I originally bought it in 2004. As I scanned through the

By Jeff Atwood ·
Comments

software development

Is Eeyore Designing Your Software?

This classic Eric Lippert post describes, in excruciating, painful detail, exactly how much work it takes to add a single ChangeLightBulbWindowHandleEx function to a codebase at Microsoft: * One dev to spend five minutes implementing ChangeLightBulbWindowHandleEx. * One program manager to write the specification. * One localization expert to review the specification for

By Jeff Atwood ·
Comments

gaming

The Sierra Network II

You may remember Sierra’s ImagiNation network from the earliest days of dial-up networking: The ImagiNation Network (INN), aka The Sierra Network (TSN), was the first online multiplayer gaming system. Developed by Sierra On-Line in 1989, and first available to the public in 1991, the ImagiNation Network was a unique

By Jeff Atwood ·
Comments

software development concepts

Paul Graham’s Participatory Narcissism

I have tremendous respect for Paul Graham. His essays – repackaged in the book Hackers and Painters – are among the best writing I’ve found on software engineering. Not all of them are so great, of course, but the majority are well worth your time. That’s more than I can

By Jeff Atwood ·
Comments

programming concepts

The First Rule of Programming: It’s Always Your Fault

You know the feeling. It’s happened to all of us at some point: you’ve pored over the code a dozen times and still can’t find a problem with it. But there’s some bug or error you can’t seem to get rid of. There just has

By Jeff Atwood ·
Comments

rechargeable batteries

Adventures in Rechargeable Batteries

Every self-respecting geek loves gadgets. I’m no exception. And so many of my favorite gadgets have a voracious appetite for batteries. I don’t know why all the other battery types fell so far out of favor, but between AA and AAA, I could probably power 95% of my

By Jeff Atwood ·
Comments

extensions

The Dark Side of Extensions

One of the best things – if not the best thing – about Firefox is the rich, vibrant ecosystem of add-ons that has grown up around it. Almost anything you could possibly want to do with a web browser can be done with Firefox... if you’re willing to hunt down the

By Jeff Atwood ·
Comments

multiple monitors

Does More Than One Monitor Improve Productivity?

I’ve been a multiple monitor enthusiast since the dark days of Windows Millennium Edition. I’ve written about the manifold joys of many-monitor computing a number of times over the last four years: * Multiple Monitors and Productivity * Multiple LCDs * Joining the Prestigious Three Monitor Club * The Large Display Paradox

By Jeff Atwood ·
Comments

internationalization

What’s Wrong With Turkey?

Software internationalization is is difficult under the best of circumstances, but it always amazed me how often one particular country came up in discussions of internationalization problems: Turkey. For example, this Rick Strahl post from mid-2005 is one of many examples I’ve encountered: I’ve been tracking a really

By Jeff Atwood ·
Comments

programming languages

Choosing Your Own Adventure

The Choose Your Own Adventure book series was one of my favorites as a young reader. The Choose Your Own adventure books are still around; modern versions can be found at your local bookstore. I bought one today at a local Barnes & Noble to refresh my memory, and although

By Jeff Atwood ·
Comments

Real-Time Raytracing

Like many programmers, my first exposure to ray tracing was on my venerable Commodore Amiga. It’s an iconic system demo every Amiga user has seen at some point: behold the robot juggling silver spheres! Thus begins the article in the May/June 1987 AmigaWorld in which Eric Graham explains

By Jeff Atwood ·
Comments

privacy

A Question of Programming Ethics

From the ACM Code of Ethics: As an ACM member I will 1. Contribute to society and human well-being. 2. Avoid harm to others. 3. Be honest and trustworthy. 4. Be fair and take action not to discriminate. 5. Honor property rights including copyrights and patent. 6. Give proper credit

By Jeff Atwood ·
Comments