Archive

web development

Reducing Your Website’s Bandwidth Usage

Over the last three years, this site has become far more popular than I ever could have imagined. Not that I’m complaining, mind you. Finding an audience and opening a dialog with that audience is the whole point of writing a blog in the first place. But on the

By Jeff Atwood ·
Comments

object-oriented programming

Your Code: OOP or POO?

I’m not a fan of object orientation for the sake of object orientation. Often the proper OO way of doing things ends up being a productivity tax. Sure, objects are the backbone of any modern programming language, but sometimes I can’t help feeling that slavish adherence to objects

By Jeff Atwood ·
Comments

programming concepts

Curly’s Law: Do One Thing

In Outliving the Great Variable Shortage, Tim Ottinger invokes Curly’s Law: A variable should mean one thing, and one thing only. It should not mean one thing in one circumstance, and carry a different value from a different domain some other time. It should not mean two things at

By Jeff Atwood ·
Comments

windows vista

Choosing Anti-Anti-Virus Software

Now that Windows Vista has been available for almost a month, the comparative performance benchmarks are in. * Windows XP vs. Vista: The Benchmark Rundown (Tom’s Hardware) * Windows Vista Performance Guide (Anandtech) It’s about what I expected; rough parity with the performance of Windows XP. Vista’s a bit

By Jeff Atwood ·
Comments

programming languages

FizzBuzz: the Programmer’s Stairway to Heaven

Evidently writing about the FizzBuzz problem on a programming blog results in a nigh-irresistible urge to code up a solution. The comments here, on Digg, and on Reddit – nearly a thousand in total – are filled with hastily coded solutions to FizzBuzz. Developers are nothing if not compulsive problem solvers. It

By Jeff Atwood ·
Comments

programming languages

Why Can’t Programmers... Program?

I was incredulous when I read this observation from Reginald Braithwaite: Like me, the author is having trouble with the fact that 199 out of 200 applicants for every programming job can’t write code at all. I repeat: they can’t write any code whatsoever. The author he’s

By Jeff Atwood ·
Comments

hardware

You Want a 10,000 RPM Boot Drive

I don’t go out of my way to recommend building your own computer. I do it, but I’m an OCD-addled, pain-loving masochist. You’re usually better off buying whatever cut-rate OEM box Dell is hawking at the moment, particularly now that Intel has finally abandoned the awful Pentium

By Jeff Atwood ·
Comments

compression

Revisiting 7-ZIP

In my previous post, I extolled the virtues of WinRAR and the RAR archive format. I disregarded 7-ZIP because it didn’t do well in that particular compression study, and because my previous experiences with it had shown it to be efficient, but brutally slow. But that’s no longer

By Jeff Atwood ·
Comments

compression

Don’t Use ZIP, Use RAR

When I wrote Today is “Support Your Favorite Small Software Vendor Day,” I made a commitment to spend at least $20 per month supporting my fellow independent software developers. WinRAR has become increasingly essential to my toolkit over the last year, so this month, I’m buying a WinRAR license.

By Jeff Atwood ·
Comments

programming practices

URL Rewriting to Prevent Duplicate URLs

As a software developer, you may be familiar with the DRY principle: don’t repeat yourself. It’s absolute bedrock in software engineering, and it’s covered beautifully in The Pragmatic Programmer, and even more succinctly in this brief IEEE software article (pdf). If you haven’t committed this to

By Jeff Atwood ·
Comments

mac

Because They All Suck

The release of Windows Vista has caused an unfortunate resurgence in that eternal flame of computer religious wars, Mac vs. PC. Everywhere I go, somebody’s explaining in impassioned tones why their pet platform is better than yours. It’s all so tedious. Personally, I had my fill of Mac

By Jeff Atwood ·
Comments

distributed systems

Everybody Loves BitTorrent

The traditional method of distributing large files is to put them on a central server. Each client then downloads the file directly from the server. It’s a gratifyingly simple approach, but it doesn’t scale. For every download, the server consumes bandwidth equal to the size of the file.

By Jeff Atwood ·
Comments