I <3 Steve McConnell*
Coding Horror
programming and human factors
by Jeff Atwood

Complete Archives

November 17, 2008We Are Typists First, Programmers Second
November 15, 2008Your Favorite NP-Complete Cheat
November 12, 2008Stop Me If You Think You've Seen This Word Before
November 10, 2008Feeding My Graphics Card Addiction
November 08, 2008Coding: It's Just Writing
November 04, 2008Remembering the Dynabook
October 30, 2008HCI Remixed
October 29, 2008The Problem With URLs
October 25, 2008The Web Browser is the New Laptop
October 23, 2008You're Reading The World's Most Dangerous Programming Blog
October 22, 2008The One Thing Every Software Engineer Should Know
October 20, 2008Obscenity Filters: Bad Idea, or Incredibly Intercoursing Bad Idea?
October 16, 2008Programming Is Hard, Let's Go Shopping!
October 14, 2008Preventing CSRF and XSRF Attacks
October 12, 2008The Importance of Sitemaps
September 23, 2008Cross-Site Request Forgeries and You
September 18, 2008Bill Gates and Code Complete
September 16, 2008Stack Overflow: None of Us is as Dumb as All of Us
September 07, 2008Spawning a New Process
August 28, 2008Protecting Your Cookies: HttpOnly
August 24, 2008Deadlocked!
August 20, 2008Check In Early, Check In Often
August 17, 2008The Perils of FUI: Fake User Interface
August 13, 2008Secrets of the JavaScript Ninjas
August 09, 2008Music to (Not) Code By
August 04, 2008On Our Project, We're Always 90% Done
August 02, 2008Quantity Always Trumps Quality
July 30, 2008Alpha, Beta, and Sometimes Gamma
July 28, 2008Is Money Useless to Open Source Projects?
July 26, 2008Understanding The Hardware
July 24, 2008Coding Without Comments
July 22, 2008Building Tiny, Ultra Low Power PCs
July 20, 2008Web Development as Tag Soup
July 17, 2008Dealing With Bad Apples
July 15, 2008The Ultimate Software Gold Plating
July 14, 2008Maybe Normalizing Isn't Normal
July 12, 2008Monkeypatching For Humans
July 09, 2008iTunes is Anti-Web
July 08, 2008Spartan Programming
July 06, 2008The Problem With Code Folding
July 04, 2008Investing in a Quality Programming Chair
July 02, 2008Why Can't Microsoft Ship Open Source Software?
July 01, 2008Alan Turing, the Father of Computer Science
June 29, 2008Open Wireless and the Illusion of Security
June 27, 2008Regular Expressions: Now You Have Two Problems
June 25, 2008Smart Enough Not To Build This Website
June 23, 2008Revisiting the XML Angle Bracket Tax
June 22, 2008The Ultimate Code Kata
June 19, 2008Department of Declaration Redundancy Department
June 17, 2008Coding For Violent Psychopaths
June 16, 2008Physics Based Games
June 14, 2008Don't Go Dark
June 12, 2008ASCII Pronunciation Rules for Programmers
June 11, 2008Markov and You
June 09, 2008Exploring Wide Finder
June 07, 2008Finally, a Definition of Programming I Can Actually Understand
June 06, 2008The Greatest Invention in Computer Science
June 04, 2008Please Give Us Your Email Password
June 02, 2008Large USB Flash Drive Performance
June 01, 2008Whatever Happened to UI Consistency?
May 31, 2008Revisiting the Black Sunday Hack
May 29, 2008Strong Opinions, Weakly Held
May 28, 2008Designing For Evil
May 26, 2008It's Clay Shirky's Internet, We Just Live In It
May 22, 2008OpenID: Does The World Really Need Yet Another Username and Password?
May 20, 2008PHP Sucks, But It Doesn't Matter
May 19, 2008Twitter: How Not To Crash Responsibly
May 18, 2008Crash Responsibly
May 15, 2008Oh Yeah? Fork You!
May 13, 2008Is HTML a Humane Markup Language?
May 12, 2008Cleaning Your Display and Keyboard
May 11, 2008XML: The Angle Bracket Tax
May 06, 2008Supporting DRM-Free Music
May 05, 2008Understanding Model-View-Controller
May 04, 2008The Mainstreaming of GPS
May 01, 2008Re-Encoding Your DVDs
April 30, 2008The Great Dub-Dub-Dub Debate
April 28, 2008Programmers Don't Read Books -- But You Should
April 25, 2008Building Your Own Home Theater PC
April 24, 2008The Problem with Software Registration
April 22, 2008Behold WordPress, Destroyer of CPUs
April 21, 2008Everything I Needed to Know About Programming I Learned from BASIC
April 18, 2008Should All Developers Have Manycore CPUs?
April 17, 2008Building a PC, Part V: Upgrading
April 16, 2008Introducing Stackoverflow.com
April 15, 2008Your Session Has Timed Out
April 13, 2008Revisiting "How Much Power Does My Laptop Really Use"?
April 10, 2008Donating $5,000 to .NET Open Source
April 09, 2008We Don't Use Software That Costs Money Here
April 07, 2008Rediscovering Arcade Nostalgia
April 06, 2008Help Name Our Website
April 05, 2008Setting up Subversion on Windows
April 03, 2008Mousing Surface Theory
April 02, 2008UI-First Software Development
April 01, 2008Core War: Two Programs Enter, One Program Leaves
March 31, 2008Let That Be a Lesson To You, Son: Never Upgrade.
March 30, 2008Revisiting "Keyboard vs. The Mouse, pt 1"
March 29, 2008Just a Little Bit of Software History Repeating
March 27, 2008What Should The Middle Mouse Button Mean?
March 26, 2008I {entity} Unicode
March 25, 2008Revisiting The Facts and Fallacies of Software Engineering
March 24, 2008Is Eeyore Designing Your Software?
March 23, 2008The Sierra Network II
March 21, 2008Paul Graham's Participatory Narcissism
March 20, 2008The First Rule of Programming: It's Always Your Fault
March 19, 2008Adventures in Rechargeable Batteries
March 18, 2008The Dark Side of Extensions
March 16, 2008Does More Than One Monitor Improve Productivity?
March 13, 2008What's Wrong With Turkey?
March 11, 2008Choosing Your Own Adventure
March 10, 2008Real-Time Raytracing
March 07, 2008A Question of Programming Ethics
March 06, 2008Death Threats, Intimidation, and Blogging
March 05, 2008See You at MIX08!
March 04, 2008CAPTCHA is Dead, Long Live CAPTCHA!
March 02, 2008Actual Performance, Perceived Performance
February 28, 2008UsWare vs. ThemWare
February 26, 2008Douchebaggery
February 25, 2008I Repeat: Do Not Listen to Your Users
February 24, 2008On Escalating Communication
February 20, 2008Code Isn't Beautiful
February 19, 2008There Ain't No Such Thing as the Fastest Code
February 18, 2008Tivoization and the GPL
February 14, 2008The Ultimate Unit Test Failure
February 13, 2008Spatial Navigation and Opera
February 11, 2008The Dramatic Password Reveal
February 10, 2008Where the Heck is My Focus?
February 07, 2008The Years of Experience Myth
February 06, 2008Extending Your Wireless Network With Better Antennas
February 04, 2008DRM Ignorance is Expensive
February 03, 2008A Lesson in Apple Economics
February 02, 2008Get Your Database Under Version Control
January 31, 2008Every User Lies
January 30, 2008Is Worse Really Better?
January 28, 2008What's Your Backup Strategy?
January 27, 2008Why Doesn't Anyone Give a Crap About Freedom Zero?
January 24, 2008What Can You Build in 600 Lines of Code?
January 22, 2008Getting the Interview Phone Screen Right
January 21, 2008Reinventing the Clipboard
January 19, 2008The Sesame Street Presentation Rule
January 17, 2008See You at CUSEC 2008
January 16, 2008Typography: Where Engineers and Designers Meet
January 15, 2008The Five Browser Shortcuts Everyone Should Know
January 13, 2008What's On Your Keychain, 2008 Edition
January 12, 2008How Should We Teach Computer Science?
January 10, 2008The Enduring Art of Computer Programming
January 09, 2008No Matter What They Tell You, It's a People Problem
January 08, 2008Don't Pollute User Space
January 06, 2008The Magpie Developer
January 04, 2008My Racing Simulation Rig
January 03, 2008Understanding User and Kernel Mode
January 01, 2008The Trouble with PDFs
December 28, 2007An Inalienable Right to Privacy
December 26, 2007Modern Logo
December 23, 2007Size Is The Enemy
December 20, 2007Digital Certificates: Do They Work?
December 19, 2007The Great Browser JavaScript Showdown
December 18, 2007Nobody Cares What Your Code Looks Like
December 17, 2007Software Registration Keys
December 15, 2007On The Meaning of "Coding Horror"
December 13, 2007Our Fractured Online Identities
December 12, 2007Sorting for Humans : Natural Sort Order
December 11, 2007Blacklists Don't Work
December 10, 2007Are You a Doer or a Talker?
December 09, 2007Gifts for Geeks: 2007 Edition
December 07, 2007The Danger of Naïveté
December 06, 2007Hashtables, Pigeonholes, and Birthdays
December 05, 2007Sharing The Customer's Pain
December 04, 2007Please Don't Steal My Focus
December 03, 2007Shuffling
December 02, 2007Presentation: Be Vain
November 29, 2007Mort, Elvis, Einstein, and You
November 28, 2007What If They Gave a Browser War and Microsoft Never Came?
November 26, 2007The Big Ball of Mud and Other Architectural Disasters
November 25, 2007The Two Types of Programmers
November 20, 2007Has CAPTCHA Been "Broken"?
November 19, 2007Living the Dream: Rock Band
November 18, 2007Pair Programming vs. Code Reviews
November 15, 2007You're Now Competing With The Internet
November 14, 2007Don't Forget To Lock Your Computer
November 12, 2007What's in a Project Name?
November 11, 2007The Sad State of Digital Software Distribution
November 09, 2007Is It Time for 64-bit on the Desktop?
November 07, 2007Making Donations Easy
November 06, 2007Who Wrote This Crap?
November 04, 2007Don't Click Here: The Art of Hyperlinking
November 01, 2007Not All LCD Panels Are Created Equal
October 31, 2007The F5 Key Is Not a Build Process
October 30, 2007Embracing Languages Inside Languages
October 28, 2007Your Desktop Is Not a Destination
October 26, 2007How To Achieve Ultimate Blog Success In One Easy Step
October 25, 2007I'd Consider That Harmful, Too
October 24, 2007Hardware Assisted Brute Force Attacks: Still For Dummies
October 23, 2007Virtual Machine Server Hosting
October 21, 2007Let's Play Planning Poker!
October 18, 2007Are Features The Enemy?
October 17, 2007Why Does Software Spoil?
October 15, 2007Remember, This Stuff Is Supposed To Be Fun
October 14, 2007Torrent Informatics
October 13, 2007Mouse Ballistics
October 11, 2007A Visual Explanation of SQL Joins
October 10, 2007A Lesson in Control Simplicity
October 08, 2007Geek Diet and Exercise Programs
October 07, 2007YouTube: The Big Copyright Lie
October 04, 2007Do Not Buy This Book
October 03, 2007Revisiting Programming Fonts
October 02, 2007Software Branching and Parallel Universes
October 01, 2007Pushing Operating System Limits
September 28, 2007Computer Display Calibration 101
September 27, 2007Why Are Web Uploads So Painful?
September 26, 2007Can Your Team Pass The Elevator Test?
September 25, 2007Slaying Mighty Dragons: Competitive Ranking and Matching Systems
September 24, 2007Steve McConnell in the Doghouse
September 21, 2007LCD Monitor Arms
September 20, 2007On Exposé, Flip3D, and Switcher
September 19, 2007Everything Is Fast For Small n
September 18, 2007Lazyweb Calling
September 17, 2007Practicing the Fundamentals: The New Turing Omnibus
September 16, 2007You're Probably Storing Passwords Incorrectly
September 12, 2007Classic Computer Science Puzzles
September 10, 2007Gigabyte: Decimal vs. Binary
September 08, 2007Rainbow Hash Cracking
September 06, 2007The Problem With Tabbed Interfaces
September 05, 2007The Peanut Butter Theory of User Interface Design
September 04, 2007Online Newspapers, Offline
September 02, 2007Keeping The Menu Simple
September 01, 2007Choosing Dual or Quad Core
August 29, 2007Falling Into The Pit of Success
August 28, 2007Was The Windows Registry a Good Idea?
August 26, 2007Computer Workstation Ergonomics
August 23, 2007Widescreen and FOV
August 22, 2007Programming Games, Analyzing Games
August 21, 2007URL Shortening: Hashes In Practice
August 20, 2007How Not To Write a Technical Book, Epilogue
August 19, 2007Leading by Example
August 16, 2007Thirteen Blog Clichés
August 15, 2007YSlow: Yahoo's Problems Are Not Your Problems
August 14, 2007Discipline Makes Strong Developers
August 13, 2007Measuring Font Legibility
August 10, 2007Trojans, Rootkits, and the Culture of Fear
August 09, 2007Dell XPS M1330 Review
August 07, 2007The Large Display Paradox
August 06, 2007Catalogs of Data Visualization
August 03, 2007Configuring The Stack
August 02, 2007What's Worse Than Crashing?
August 01, 2007Speeding Up Your PC's Boot Time
July 31, 2007Yes, But What Have You *Done*?
July 30, 2007The Software Imprinting Dilemma
July 27, 2007The Coming Software Patent Apocalypse
July 26, 2007Google's Number One UI Mistake
July 25, 2007Whatever Happened to Civility on The Internet?
July 24, 2007Lessons from Garry's Mod
July 23, 2007Building a PC, Part IV: Now It's Your Turn
July 20, 2007Will My Software Project Fail?
July 19, 2007Futurist Programming.. in 1994
July 18, 2007What's Wrong With Setup.exe?
July 17, 2007The Principle of Least Power
July 16, 2007The Non-Maximizing Maximize Button
July 13, 2007Don't Be a Commodity Blogger
July 12, 2007Steve Mann, Cyborg
July 11, 2007Building a PC, Part III - Overclocking
July 10, 2007Building a PC, Part II
July 09, 2007Building a PC, Part I
July 06, 2007Defining Open Source
July 05, 2007Better Image Resizing
July 04, 2007Game Development Postmortems
July 03, 2007The Technology Backlash
July 02, 2007Rethinking Design Patterns
June 29, 2007Avoiding Walled Gardens on the Internet
June 28, 2007The Three Faces of About Face
June 27, 2007Why You Don't Want an iPhone -- Yet
June 26, 2007Learning, or, Learning How To Learn
June 25, 2007Supporting Open Source Projects in the Microsoft Ecosystem
June 22, 2007How To Advertise on Your Blog Without (Completely) Selling Out
June 21, 2007Does Anyone Actually Read Software EULAs?
June 20, 2007The Windows Security Epidemic: Don't Run as an Administrator
June 19, 2007In Programming, One Is The Loneliest Number
June 18, 2007Escaping From Gilligan's Island
June 15, 2007How to Clean Up a Windows Spyware Infestation
June 14, 2007Incremental Feature Search in Applications
June 13, 2007Where Are The High Resolution Displays?
June 12, 2007Font Rendering: Respecting The Pixel Grid
June 11, 2007What's Wrong With Apple's Font Rendering?
June 07, 2007Who Killed the Desktop Application?
June 06, 2007Designing for Informavores, or, Why Users Behave Like Animals Online
June 05, 2007Don't Ask -- Observe
June 04, 2007Removing The Login Barrier
June 01, 2007Background Compilation and Background Spell Checking
May 31, 2007Gates and Jobs, Then and Now
May 30, 2007The Best Code is No Code At All
May 29, 2007Let's Build a Grid
May 28, 2007Computer Hardware Pornography
May 27, 2007Why Is The System Idle Process Hogging All The Resources?
May 25, 2007How to Get Rich Programming
May 24, 2007Upgrading to a High Efficiency Power Supply
May 23, 2007The End of the "Microsoft Tax"
May 22, 2007When Hardware is Free, Power is Expensive
May 21, 2007JavaScript: The Lingua Franca of the Web
May 18, 2007Productivity Tip: Upgrade Your Pentium 4
May 17, 2007Reducing User Interface Friction
May 16, 2007Meet The Inventor of the Mouse Wheel
May 15, 2007Designing Interactions at IDEO
May 14, 2007Bill Gates and DONKEY.BAS
May 11, 2007C# and the Compilation Tax
May 10, 2007This Site May Harm Your Computer
May 09, 2007Zoomable Interfaces
May 08, 2007Giving Up on Microsoft
May 07, 2007Your Favorite Programming Quote
May 04, 2007Phishing: The Forever Hack
May 03, 2007Maximizing The Value of Your Keystrokes
May 02, 2007Basic Design Principles for Software Developers
May 01, 2007Programming Tip: Learn a Graphics Editor
April 30, 2007An Initiate of the Bayesian Conspiracy
April 29, 2007See You At MIX07
April 26, 2007JavaScript and HTML: Forgiveness by Default
April 25, 2007Coding Horror on .NET Rocks
April 24, 2007How Not To Write a Technical Book
April 23, 2007Where Are All the Open Source Billionaires?
April 20, 2007Welcome to Dot-Com Bubble 2.0
April 19, 2007Apparently Bloggers Aren't Journalists
April 18, 2007Sins of Software Security
April 17, 2007When In Doubt, Make It Public
April 16, 2007Reddit: Language vs. Platform
April 12, 2007Twitter: Service vs. Platform
April 11, 2007The Pernicious Issue of Software Patents
April 10, 2007Usability Is Timeless
April 09, 2007Is Amazon's Mechanical Turk a Failure?
April 06, 2007EA's Software Artists
April 05, 2007SEOs: the New Pornographers of the Web
April 04, 2007Firefox as an IDE
April 03, 2007Pick a License, Any License
April 02, 2007Mouse DPI and USB Polling Rate
April 02, 2007Software Projects as Rock Climbing
April 01, 2007All About My Cats!
March 29, 2007Software Development as a Collaborative Game
March 28, 2007Learning on the Battlefield
March 27, 2007Going Commando - Put Down The Mouse
March 26, 2007What's Wrong With The Daily WTF
March 23, 2007Folding: The Death of the General Purpose CPU
March 22, 2007Top 6 List of Programming Top 10 Lists
March 21, 2007A Race of Futuristic Supermen!
March 20, 2007Code Access Security and Bitfrost
March 19, 2007Primary Keys: IDs versus GUIDs
March 16, 2007Creating User Friendly 404 Pages
March 15, 2007The "Works on My Machine" Certification Program
March 14, 2007Are Web Interfaces "Good Enough"?
March 13, 2007My Work PC, or, Taking Your Own Advice
March 12, 2007Building a Computer the Google Way
March 09, 2007Software Internationalization, SIMS Style
March 08, 2007Dude, Where's My 4 Gigabytes of RAM?
March 07, 2007Getting the Most Out of PNG
March 06, 2007Using Amazon S3 as an Image Hosting Service
March 05, 2007Reducing Your Website's Bandwidth Usage
March 02, 2007Your Code: OOP or POO?
March 01, 2007Curly's Law: Do One Thing
February 28, 2007Choosing Anti-Anti-Virus Software
February 27, 2007FizzBuzz: the Programmer's Stairway to Heaven
February 26, 2007Why Can't Programmers.. Program?
February 24, 2007You Want a 10,000 RPM Boot Drive
February 23, 2007Revisiting 7-ZIP
February 22, 2007Don't Use ZIP, Use RAR
February 21, 2007URL Rewriting to Prevent Duplicate URLs
February 20, 2007Because They All Suck
February 19, 2007Everybody Loves BitTorrent
February 16, 2007Beyond JPEG
February 15, 2007What's In a Version Number, Anyway?
February 14, 2007Origami Software and Crease Patterns
February 13, 2007Code Smaller
February 12, 2007Does Offline Mode Still Matter?
February 09, 2007Remotely Waking Up Your PC
February 08, 2007Non-Native UI Sucks
February 07, 2007Boyd's Law of Iteration
February 06, 2007The Software "Check Engine" Light
February 05, 2007What You Have, What You Know, What You Are
February 02, 2007Windows Vista Media Center
February 01, 2007The Economics of Bandwidth
January 31, 2007Low-Fi Usability Testing
January 30, 2007Stylesheets for Print and Handheld
January 29, 2007How To Become a Better Programmer by Not Programming
January 26, 2007Extending The Windows Vista Grace Period to 120 Days
January 25, 2007Dynamic, Lightweight Visualization
January 24, 2007Would you rather be a Navigator or an Explorer?
January 23, 2007If It Isn't Documented, It Doesn't Exist
January 22, 2007Shipping Isn't Enough
January 19, 2007Identicons for .NET
January 18, 2007A World of Endless Advertisements
January 17, 2007Do Certifications Matter?
January 16, 2007There Are No Design Leaders in the PC World
January 15, 2007Five Things You Didn't Know About Me (and my office)
January 12, 2007The Problem With C++
January 11, 2007If It's Not in Google, Does Your Website Really Exist?
January 10, 2007The Power of Defaults
January 09, 2007Typing Trumps Pointing
January 08, 2007Test Doubles: A Taxonomy of Pretend Objects
January 07, 2007Please Stand By.. We're Experiencing Technical Difficulties
January 05, 2007The Story About PING
January 04, 2007The Sugar UI
January 03, 2007If Loving Computers is Wrong, I Don't Want to Be Right
January 02, 2007Keeping Time on the PC
January 01, 2007On the Use of Clichés
December 29, 2006Is your PC capable of Hi-Def?
December 28, 2006Will your next computer monitor be a HDTV?
December 27, 2006Did YouTube Cut the Gordian Knot of Video Codecs?
December 22, 2006Logging in with the Keyboard
December 21, 2006Assertiveness for Software Developers
December 20, 2006The Day The Trackbacks Died
December 19, 2006Eric Lippert's Purple Crayon
December 18, 2006Code Tells You How, Comments Tell You Why
December 17, 2006Hard Drive Temperatures: Be Afraid
December 16, 2006Next-Gen DVD: Are Those Additional Pixels Worth Your Money?
December 15, 2006High-Definition Video on the PC
December 14, 2006Percentage of Chart Which Resembles Ms. Pac-Man
December 13, 2006LCD Progress
December 12, 2006Is Your Database Under Version Control?
December 11, 2006Printer and Screen Resolution
December 10, 2006Moore's Law in Practical Terms
December 08, 2006Joining The Prestigious Three Monitor Club
December 07, 2006Reading with Edward Tufte
December 04, 2006Are You an Evangelist Too?
December 03, 2006Cool Gifts for Geeks: 2006 Edition
December 01, 2006Today is "Support Your Favorite Small Software Vendor Day"
November 30, 2006The Project Postmortem
November 27, 2006This Is What Happens When You Let Developers Create UI
November 24, 2006Discussions: Flat or Threaded?
November 23, 2006CPU vs. GPU
November 22, 2006Exploring Vista's Advanced Search
November 21, 2006iPod Alternatives
November 20, 2006Filesystem Paths: How Long is Too Long?
November 17, 2006Computers are Lousy Random Number Generators
November 16, 2006It's Never Been Built Before
November 15, 2006Simplicity as a Force
November 14, 2006Microsoft Project and the Gantt Waterfall
November 13, 2006It's a Malformed World
November 09, 2006Office 2007 -- not so WIMPy
November 08, 2006Speed Still Matters
November 07, 2006Screencasting for Windows
November 06, 2006KeyTraino for Visual Studio 2005
November 03, 2006Customization: The Software Tar-Baby
November 02, 2006Growing up with the Microcomputer
November 01, 2006The High Score Table
October 31, 2006What did you write five years ago?
October 30, 2006Whitelist, Blacklist, Greylist
October 27, 2006The Single Most Important Virtual Machine Performance Tip
October 26, 2006The Build Server: Your Project's Heart Monitor
October 25, 2006CAPTCHA Effectiveness
October 24, 2006Swiss Army Knife or Generalizing Specialist
October 23, 2006Does Writing Code Matter?
October 21, 2006Windows Live Writer: making the Internet a better place
October 20, 2006The Iron Stool
October 19, 2006My Giant Heatsink Fetish
October 18, 2006Buy the Community, Not the Product
October 17, 2006The Last Responsible Moment
October 16, 2006Chickens, Pigs, and Really Inappropriate Terminology
October 13, 2006Opting Out of Linked In
October 12, 2006The Field of Dreams Strategy
October 11, 2006Chess: Computer v. Human
October 10, 2006Blog Advertising: Yea or Nay
October 09, 2006Software Development: It's a Religion
October 06, 2006DEFCON: Shall We Play a Game?
October 05, 2006Building and Overclocking a Core 2 Duo System
October 04, 2006On Frameworkitis
October 03, 2006Is Software Development Like Manufacturing?
October 02, 2006Anything But Waterfall
September 29, 2006I Rock at BASIC
September 28, 2006Hard Drives -- breaking the Terabyte Barrier
September 27, 2006The Multi-Tasking Myth
September 26, 2006Making Developers Cry Since 1995
September 25, 2006Changing Your Organization (for Peons)
September 22, 2006Why Does Vista Use All My Memory?
September 21, 2006Company of Heroes
September 20, 2006Fifty Years of Software Development
September 19, 2006How big is your Lap, Anyway?
September 18, 2006When Understanding means Rewriting
September 15, 2006On Unnecessary Namespacing
September 14, 2006Is Your IDE Hot or Not?
September 13, 2006A Visit from the Metrics Maid
September 12, 2006Vista and the Rise of the Flash Drives
September 11, 2006Has Joel Spolsky Jumped the Shark?
September 08, 2006Technological Racism
September 07, 2006Have You Ever Been Windows Experienced?
September 06, 2006Software: It's a Gas
September 05, 2006Unnecessary Dialogs: Stopping the Proceedings with Idiocy
September 04, 2006Transfer Mode Downgraded
September 01, 2006External Hard Drives
August 31, 2006Computer Languages aren't Human Languages
August 30, 2006Game Player, Game Programmer
August 29, 2006Thread Priorities are Evil
August 28, 2006The Sporkfe
August 25, 2006How to Write Technical Documentation
August 24, 2006The Programmer's Bill of Rights
August 23, 2006Coding Horror Sightings
August 22, 2006Building a Quiet PC
August 21, 2006Total Users Does Not Equal Total Usage
August 20, 2006DirectX Version Number Abuse
August 18, 2006Video Card Power Consumption
August 17, 2006The Power of "View Source"
August 16, 2006Source Control: Anything But SourceSafe
August 15, 2006Coding Horror Stickers
August 14, 2006The Magical Number Seven Plus or Minus Two
August 11, 2006Sometimes It's a Hardware Problem
August 10, 2006The Last Configuration Section Handler.. Revisited
August 09, 2006Fitts' Law and Infinite Width
August 08, 2006Quad Core Desktops and Diminishing Returns
August 07, 2006Properties vs. Public Variables
August 06, 2006Filesystem Metadata Doesn't Scale
August 04, 2006A Spec-tacular Failure
August 03, 2006My Love/Hate relationship with ClearType
August 02, 2006Shortening Long File Paths
August 01, 2006Open Source: Free as in "Free"
July 31, 2006Linus Torvalds, Visual Basic Fan
July 28, 2006Are You an XML Bozo?
July 27, 2006Windows XP, Our New Favorite Legacy Operating System
July 26, 2006Compiler, It Hurts When I Do This
July 25, 2006Information Density and Dr. Bronner
July 24, 2006What is "Modern Software Development"?
July 21, 2006The problem with "Low Priority"
July 20, 2006I Pity The Fool Who Doesn't Write Unit Tests
July 19, 2006Creating Smaller Virtual Machines
July 18, 2006Why Can't Database Tables Index Themselves?
July 17, 2006Diseconomies of Scale and Lines of Code
July 15, 2006Own a Coding Horror
July 14, 2006Separating Programming Sheep from Non-Programming Goats
July 13, 2006I Heart Strings
July 12, 2006The Visual Studio IDE and Regular Expressions
July 11, 2006Power, Surge Protection, PCs, and You
July 10, 2006Brute Force Key Attacks Are for Dummies
July 07, 2006In Defense of the "Smackdown" Learning Model
July 06, 2006A Comparison of JPEG Compression Levels and Recompression
July 05, 2006How Good an Estimator are You? Part III
July 04, 2006The Monopoly Interview
July 03, 2006How Good an Estimator Are You? Part II
June 30, 2006How Good an Estimator Are You?
June 29, 2006ASUS W3J Laptop Review
June 28, 2006The Mysterious Cone of Uncertainty
June 27, 2006Secretly, We're All Geeks
June 26, 2006Object-Relational Mapping is the Vietnam of Computer Science
June 25, 2006Meet the Arch-Nemesis of Productivity: The Internet
June 23, 2006Vive la Programming Révolution!
June 22, 2006Text Columns: How Long is Too Long?
June 21, 2006When Object-Oriented Rendering is Too Much Code
June 20, 2006Is Writing More Important Than Programming?
June 19, 2006Pretty Code, Ugly Code
June 18, 2006PC Pinball Sims
June 16, 2006Laptop Alternatives
June 15, 2006Desktopitis
June 14, 2006How Long Would It Take if Everything Went Wrong?
June 13, 2006WWWWWDD?
June 12, 2006The Noble Art of Maintenance Programming
June 10, 2006See You at TechEd 2006
June 08, 2006What's on Your Keychain.. in 2006?
June 07, 2006Did IE6 Make Web 2.0 Possible?
June 06, 2006Programming Your Hands
June 05, 2006Don't Ask Us Questions. We'll Just Ignore You.
June 02, 2006Road Warrior Revisited
June 01, 2006Love It, Hate It
May 31, 2006Peopleware Revisited
May 30, 2006Touchpad vs. Trackpoint
May 29, 2006Do Modems Still Matter?
May 26, 2006Pixels, Megapixels, and Desktop Resolutions
May 25, 2006Is the Command Prompt the New Desktop?
May 24, 2006You may be a victim of software counterfeiting.
May 23, 2006Apple Laptops: Good, Cheap, Fast -- pick three
May 22, 2006Are Recipes for Novices?
May 19, 2006Programmers and Chefs
May 18, 2006Code Smells
May 17, 2006Snappy Answers to Stupid Programming Questions
May 16, 2006Localhost HTTP debugging with Fiddler
May 15, 2006The Long, Dismal History of Software Project Failure
May 12, 2006Egoless Programming: You Are Not Your Job
May 11, 2006Excess Blog Flair
May 10, 2006Power, Influence, and Copywriting
May 09, 2006The Ten Commandments of Egoless Programming
May 08, 2006Invisible Formatting Tags are Evil
May 07, 2006Spam via SMTP Non-Delivery Reports
May 05, 2006A Setup Conundrum
May 04, 2006Virtualization and Ring Negative One
May 03, 2006Design Matters -- but Content is King
May 02, 2006Following Instructions for Dummies
May 01, 2006Fail Early, Fail Often
April 30, 2006Why Do We Have So Many Screwdrivers?
April 27, 2006Keeping Up and "Just In Time" Learning
April 26, 2006Of Spaces, Underscores and Dashes
April 25, 2006A Blog Without Comments Is Not a Blog
April 24, 2006Web 2.0 and The "Whatever Box" Server
April 23, 2006If the User Can't Find It...
April 21, 2006The Cartoon Guide to.. Programming?
April 19, 2006Windows Vista: Security Through Endless Warning Dialogs
April 18, 2006Remote Desktop Tips and Tricks
April 17, 2006Are You Following the Instructions on the Paint Can?
April 16, 2006Your Personal Brand
April 14, 2006UML, Circuit Diagrams, and God's Rules
April 13, 2006Wikipedia: Inclusionists vs. Deletionists
April 12, 2006Automatic Login for Virtual Machines
April 11, 2006It's Better Than Nothing
April 10, 2006(Very) Basic Textbox Keyboard Shortcuts
April 09, 2006How Much Power Does My Laptop Really Use?
April 07, 2006Best Practices and Puffer Fish
April 06, 2006Blocking Image Bandwidth Theft with URL Rewriting
April 05, 2006Teach Yourself ASP.NET 2.0 in 23 Hours
April 04, 2006A Fistful of Connectors
April 03, 2006Menus and Toolbars Don't Scale
April 02, 2006Code Elegance, Code Balance
March 31, 2006The 2GB Windows XP Hibernation Problem
March 30, 2006STOP! Having Trouble?
March 29, 2006I Shall Call It.. SomethingManager
March 28, 2006How Not To Become a Rockstar Programmer
March 27, 2006The Ideal Computer Desk
March 26, 2006Making Considerate Software
March 24, 2006The Value of Repetition.. Again
March 23, 2006But It's Just One More
March 22, 2006Rapid Prototyping Fun
March 21, 2006The Login Explosion
March 20, 2006Everything You Know Will Be Obsolete in Five Years
March 19, 2006Meeting at MIX06
March 17, 2006Microsoft Doesn't Trust .NET
March 16, 2006Programmers as Human Beings
March 15, 2006Selling Usability
March 14, 2006In Praise of Good Design
March 13, 2006Firefox Excessive Memory Usage
March 12, 2006History of the OK Button
March 10, 2006Users don't care about you
March 09, 2006SDWest 2006: My McConnell Moment
March 08, 2006Doing It Like Everyone Else Does
March 07, 2006Web Forms: Death By a Thousand Textboxes
March 06, 2006The Cult of Coleco Adam
March 03, 2006Sucking Less Every Year
March 02, 2006In Pursuit of Simplicity
March 01, 2006Snippet Enumeration Macro
February 28, 2006Making a Video Game out of your code
February 27, 2006Quick and Dirty Internet Connection Troubleshooting
February 24, 2006Error Codes Must Die
February 23, 2006Levelling Up in the IDE
February 22, 2006Sometimes a Word is Worth a Thousand Icons
February 21, 2006C# Snippet Parity
February 20, 2006Will Mouse Gestures Ever Be Mainstream?
February 19, 2006Darwinia
February 17, 2006Choosing between .NET Pepsi and .NET Coke
February 16, 2006Colorization Required
February 15, 2006The Real Cost of Hello World
February 14, 2006Fear of Writing
February 13, 2006Standard Browser Keyboard Shortcuts
February 12, 2006Lotus Notes: Survival of the Unfittest
February 10, 2006Presentation Zen
February 09, 2006On Audio Visualization
February 08, 2006Hazmat Placards and Icons
February 07, 2006The Day Performance Didn't Matter Any More
February 06, 2006.NET Pet Shop 4
February 05, 2006Revisiting Edit and Continue
February 03, 2006Keeping Private Keys Private
February 02, 2006Smart Tags and Sane Keyboard Shortcuts
February 01, 2006Don't Acronymize Your Users
January 31, 2006How Not to Give a Presentation
January 30, 2006Presentation Magnification
January 29, 2006Not All Bugs Are Worth Fixing
January 27, 2006VSLive! 2006
January 26, 2006Google is the Help Menu
January 25, 2006Visual Design Patterns
January 24, 2006Dependency Avoidance
January 23, 2006.. and a Pony!
January 21, 2006Code Reviews: Just Do It
January 20, 20063D positional audio and HRTFs
January 19, 2006The World's Slowest Windows XP System
January 18, 2006DIVX vs. DivX
January 16, 2006Our Virtual Machine Future
January 15, 2006Software Developers and Asperger's Syndrome
January 14, 2006Is there an optimal piracy rate?
January 12, 2006Regex Performance
January 11, 2006Return to the Planet of Managed Code Bloat
January 10, 2006Flattening Arrow Code
January 09, 2006Cleaning Word's Nasty HTML
January 08, 2006Anisotropic Filtering
January 06, 2006The Zen of Mustard and Pickles
January 05, 2006The Impossibly Small PC: Nano-ITX
January 04, 2006Getting Back to Web Basics
January 03, 2006I Heart Cheatsheets
January 02, 2006Filesystems Aren't a Feature
December 31, 2005New Year's Resolutions -- for Microsoft
December 28, 2005Of White Elephants and Gifting
December 27, 2005Seven Habits of Highly Effective Programmers
December 26, 2005PC Racing Sims
December 22, 2005Web Typography Hack: sIFR
December 21, 2005The CSS Zen Garden and ASP.NET
December 20, 2005Automated Hard Drive Defragmentation
December 19, 2005Client vs. Developer Wars
December 18, 2005The Story of SkiFree
December 16, 2005Variable Bit Rate: Getting the best Bang for your Byte
December 15, 2005This Just In: Internet Makes Books Obsolete
December 14, 2005Progressive Image Rendering
December 13, 2005UI Follies, Volume III
December 12, 2005Getting Started with Indexing Service
December 11, 2005an Incomplete Guide to Building a Web Site that Works
December 10, 2005Screenshots: JPEG vs. GIF
December 08, 2005Headphone Snobbery
December 07, 2005Animal, Vegetable, or Mineral?
December 06, 2005A Stopwatch Class for .NET 1.1
December 05, 2005Why Programmers File the Worst Bug Reports
December 04, 2005The Case For Case Insensitivity
December 02, 2005The TweakUI Tips
December 01, 2005Trespasser Postmortem
November 30, 2005Whatever Happened to the META Tag?
November 29, 2005In praise of Beyond Compare
November 28, 2005C#, VB.NET, and echoing strings in the VS.NET Immediate Window
November 27, 2005Dysfunctional Specifications
November 26, 2005The Many Faces of (Windows) Death
November 21, 2005Avoiding Undocumentation
November 20, 2005Conversations with Erich Gamma
November 18, 2005Comparing Font Legibility
November 17, 2005Learning from TEH INTARWEB
November 16, 2005Software Apprenticeship
November 15, 2005Disambiguating Search with Quasi-Evil Hierarchies
November 14, 2005The Lost Art of Progressive HTML Rendering
November 12, 2005The Windows 95 Startup Sound
November 10, 2005Please use .ToString() responsibly
November 09, 2005The Lesson of HyperTerminal
November 08, 2005My Giant Calculator
November 07, 2005Road Signs and Icons
November 06, 2005Guitar Hero: Are You Ready to ROCK?
November 05, 2005Vertigo Blogs go Public
November 04, 2005Which online discussion archetype are you?
November 03, 200564-bit Desktop vs. 64-bit Server
November 02, 2005Sample Databases in SQL Server 2005
November 01, 2005GotDotNet: still sucking after all these years
October 31, 2005Search: If It Isn't Incremental, It's Excremental
October 30, 2005Improving the Clipboard
October 28, 2005Avoiding Booleans
October 27, 2005Copying Visual Studio Code Snippets to the Clipboard as HTML
October 26, 2005Google search VS.NET macro
October 25, 2005The Cognitive Style of Visual Studio
October 24, 2005The Cost of Leaving Your PC On
October 23, 2005Excluding Matches With Regular Expressions
October 22, 2005It looks like you're writing a for loop!
October 21, 2005The Nigerian Spammer Anthem
October 19, 2005Running XP with the pagefile disabled
October 18, 2005If You're Reading This, You Are a Low-Value Demographic
October 17, 2005Unit Testing vs. Beta Testing
October 16, 2005Code Snippets in VS.NET 2005
October 15, 2005Media Center 2005 adds Non-Linear Stretch
October 14, 2005Pimp My IDE
October 13, 2005Microchip Easter Eggs
October 12, 2005Wrangling ASP.NET Viewstate
October 11, 2005The Best of Creative Computing
October 10, 2005Why Do Login Dialogs Have a "User" Field?
October 09, 2005Keyboard Shortcut Summary Macro
October 08, 2005ALT+TAB Extreme*
October 07, 2005C# implementation of ASCII85
October 06, 2005Equipping our ASCII Armor
October 05, 2005Avoiding "Blank Page Syndrome"
October 04, 2005Comparing GUIs: OS X vs. Windows XP
October 02, 2005Configurability and Voiding Your Warranty
October 01, 2005Changing the Windows XP Boot Screen
September 30, 2005Wind, Angle, and Power
September 29, 2005Revenge of Codename: Snowball
September 28, 2005Keyboarding: Microsoft Natural Ergonomic 4000
September 27, 2005Mastering GUIDs with Occam's Razor
September 26, 2005Microsoft naming: who stole the soul?
September 25, 2005Programming 4 Fun
September 23, 2005On the Death of the Main Menu
September 22, 2005In Defense of Verbosity
September 21, 2005Everything you always wanted to know about Task Manager but were afraid to ask
September 20, 2005When Email Goes Bad
September 19, 2005Moire Screensaver Source
September 17, 2005VS.NET 2005 RTM
September 16, 2005Is Windows now more secure than Open Source?
September 15, 2005The Positive Impact of Negative Thinking
September 14, 2005Is UI still in the stone age?
September 13, 2005The Six Dumbest Ideas in Computer Security
September 12, 2005PDC05: I'm only there for the chicks.
September 11, 2005Stupid Registry Tricks
September 09, 2005Speeding up web browsing
September 08, 2005The Spolsky-Babbitt Connection
September 07, 2005The Problem With Configurability
September 06, 2005Managed Code Analysis Tools
September 05, 2005Head First Design Patterns
September 02, 2005Hurricane Katrina
September 01, 2005A Celebration of The Windows Key
August 31, 2005Don't Make Me Think, Second Edition
August 30, 2005Usability vs. Learnability
August 28, 2005Variable "foo" and Other Programming Oddities
August 27, 2005The Rise of the PokerBots
August 26, 2005How to be Lazy, Dumb, and Successful
August 25, 2005Mavis Beacon Ate My Brain!
August 24, 2005The User Interface Is The Application
August 23, 2005Microsoft LogParser
August 22, 2005Is DoEvents Evil, Revisited
August 21, 2005Clean Sources Plus
August 19, 2005Despite the incredible slowness and the sparseness of features, this is really really cool
August 18, 2005The myth of infinite detail: Bilinear vs. Bicubic
August 17, 2005Are All Programming Languages The Same?
August 16, 2005Nasty Software Hacks and Intel's CPUID
August 15, 2005Microsoft 1978
August 14, 2005New Logitech Mouse and Keyboard
August 12, 2005UI Follies: Windows Media Player Edition
August 11, 2005Passphrase Evangelism
August 10, 2005Perfmon Gone Wild
August 09, 2005TryParse and the Exception Tax
August 08, 2005How to fit three bugs in 512 bytes of security code
August 07, 2005Consolas and ClearType
August 04, 2005Option Strict and Option Explicit in VB.NET 2005
August 03, 2005Does Having The Best Programmers Really Matter?
August 02, 2005Why Estimate When You Can Measure?
August 01, 2005Vision Quest
July 28, 2005Athlon X2: Dual Core Present
July 27, 2005Steve Ballmer: Sweatiest Billionaire Ever
July 26, 2005What if it was infinitely fast?
July 24, 2005The D.I.Y. PC
July 22, 2005The Dancing Bunnies Problem
July 21, 2005Show, Don't Tell
July 20, 2005Just Try Again
July 19, 2005On Being Pushy
July 18, 2005For Best Results, Don't Initialize Variables
July 17, 2005Passwords vs. Pass Phrases
July 14, 2005A Tribute to the Windows 3.1 "Hot Dog Stand" Color Scheme
July 13, 2005Code Colorizing and Readability
July 12, 2005Gigabit Ethernet and Back of the Envelope Calculations
July 11, 2005VNC vs. Remote Desktop
July 10, 2005Blue LED Backlash
July 08, 2005How to be Successful, Happy, Fulfilled, and Drive a Totally Hot Car
July 07, 2005Desktop RAID: Oversold?
July 06, 2005Stupid Command Prompt Tricks
July 05, 2005Martin Fowler hates XSLT too
July 04, 2005