If you care at all how I managed to create this index, take a look at the code far, far below.
4 Mar 2022 – The 2030 Self-Driving Car Bet
31 Dec 2021 – Updating The Single Most Influential Book of the BASIC Era
19 Apr 2020 – Building a PC, Part IX: Downsizing
12 Sep 2019 – The Rise of the Electric Scooter
20 Aug 2019 – Electric Geek Transportation Systems
30 May 2019 – An Exercise Program for the Fat Web
17 Feb 2019 – The Cloud Is Just Someone Else’s Computer
22 Oct 2018 – What does Stack Overflow want to be when it grows up?
21 Sep 2018 – There is no longer any such thing as Computer Security
31 Dec 2017 – To Serve Man, with Software
5 Nov 2017 – The Existential Terror of Battle Royale
2 Jun 2017 – Hacker, Hack Thyself
24 Mar 2017 – Thunderbolting Your Video Card
10 Mar 2017 – Password Rules Are Bullshit
30 Jan 2017 – I’m Loyal to Nothing Except the Dream
17 Jan 2017 – An Inferno on the Head of a Pin
23 Nov 2016 – Let’s Encrypt Everything
2 Nov 2016 – Your Digital Pinball Machine
25 Aug 2016 – Can Software Make You Less Racist?
24 Jul 2016 – The Raspberry Pi Has Revolutionized Emulation
20 May 2016 – The Golden Age of x86 Gaming
7 May 2016 – Your Own Personal WiFi Storage
29 Apr 2016 – They Have To Be Monsters
15 Apr 2016 – Here’s The Programming Game You Never Asked For
25 Mar 2016 – Thanks For Ruining Another Game Forever, Computers
4 Mar 2016 – We Hire the Best, Just Like Everyone Else
14 Feb 2016 – Is Your Computer Stable?
3 Feb 2016 – The Scooter Computer
2 Jan 2016 – Zopfli Optimization: Literally Free Bandwidth
4 Dec 2015 – The Hugging Will Continue Until Morale Improves
30 Nov 2015 – The 2016 HTPC Build
19 Nov 2015 – To ECC or Not To ECC
17 Sep 2015 – Building a PC, Part VIII: Iterating
18 Aug 2015 – Our Brave New World of 4K Displays
8 Aug 2015 – Welcome to The Internet of Compromised Things
5 Aug 2015 – I Tried VR and It Was Just OK
30 Jul 2015 – Doing Terrible Things To Your Code
30 Apr 2015 – What is Trolling?
23 Apr 2015 – Your Password is Too Damn Short
3 Apr 2015 – Given Enough Money, All Bugs Are Shallow
28 Mar 2015 – Toward a Better Markdown Tutorial
9 Mar 2015 – Our Programs Are Fun To Use
9 Jan 2015 – The God Login
15 Dec 2014 – The Evolution of eInk
26 Nov 2014 – Because Reading is Fundamental
11 Nov 2014 – The Tablet Turning Point
23 Oct 2014 – What If We Could Weaponize Empathy?
20 Oct 2014 – Your Community Door
9 Oct 2014 – Level One: The Intro Stage
4 Sep 2014 – Standard Markdown is now Common Markdown
3 Sep 2014 – Standard Flavored Markdown
17 Jul 2014 – The “Just In Time” Theory of User Behavior
16 May 2014 – The Infinite Space Between Words
25 Apr 2014 – What Can Men Do?
16 Apr 2014 – Three Things
19 Mar 2014 – Please Read The Comments
17 Mar 2014 – The Trap You Set For Yourself
28 Feb 2014 – 10 Years of Coding Horror
24 Feb 2014 – App-pocalypse Now
18 Feb 2014 – Complaint-Driven Development
16 Feb 2014 – The Road to VR
21 Oct 2013 – Why Does Windows Have Terrible Battery Life?
18 Oct 2013 – You Don’t Need Millions of Dollars
14 Oct 2013 – Updating Your Utility Belt
17 Sep 2013 – The 2013 HTPC Build
27 Aug 2013 – The CODE Keyboard
18 Jul 2013 – The Rule of Three
29 Apr 2013 – So You Don’t Want to be a Programmer After All
22 Mar 2013 – Why Ruby?
5 Feb 2013 – Civilized Discourse Construction Kit
21 Jan 2013 – The End of Ragequitting
13 Dec 2012 – Web Discussions: Flat by Design
1 Dec 2012 – The Organism Will Do Whatever It Damn Well Pleases
26 Nov 2012 – For a Bit of Colored Ribbon
19 Nov 2012 – Touch Laptops
13 Nov 2012 – A SSD in Your Pocket
1 Nov 2012 – Do You Wanna Touch
25 Oct 2012 – The Future of Markdown
16 Oct 2012 – Judging Websites
15 Oct 2012 – Building Servers for Fun and Prof… OK, Maybe Just for Fun
4 Oct 2012 – Todon’t
1 Oct 2012 – The PC is Over
26 Sep 2012 – Somebody is to Blame for This
23 Sep 2012 – The Last PC Laptop
12 Sep 2012 – Computer Crime, Then and Now
8 Aug 2012 – I Was a Teenage Hacker
1 Aug 2012 – Today is Goof Off at Work Day
26 Jul 2012 – The IPS LCD Revolution
23 Jul 2012 – But You Did Not Persuade Me
20 Jul 2012 – New Programming Jargon
10 Jul 2012 – Coding Horror: The Book
9 Jul 2012 – Betting the Company on Windows 8
29 Jun 2012 – The PHP Singularity
27 Jun 2012 – Concluding the Great MP3 Bitrate Experiment
21 Jun 2012 – The Great MP3 Bitrate Experiment
18 Jun 2012 – Because Everyone (Still) Needs a Router
14 Jun 2012 – How to Talk to Human Beings
31 May 2012 – How to Stop Sucking and Be Awesome Instead
25 May 2012 – So You Want to be a Programmer
19 May 2012 – The Eternal Lorem Ipsum
15 May 2012 – Please Don’t Learn to Code
7 May 2012 – This Is All Your App Is: a Collection of Tiny Details
3 May 2012 – Buying Happiness
1 May 2012 – Trust Me, I’m Lying
26 Apr 2012 – Geekatoo, the Geek Bat-Signal
23 Apr 2012 – Will Apps Kill Websites?
17 Apr 2012 – Make Your Email Hacker Proof
16 Apr 2012 – Learn to Read the Source, Luke
10 Apr 2012 – Books: Bits vs. Atoms
6 Apr 2012 – Speed Hashing
2 Apr 2012 – Preserving The Internet… and Everything Else
29 Mar 2012 – Visualizing Code to Fail Faster
27 Mar 2012 – The End of Pagination
23 Mar 2012 – What You Can’t See You Can’t Get
19 Mar 2012 – Welcome to the Post PC Era
13 Mar 2012 – Rubber Duck Problem Solving
5 Mar 2012 – How to Hire a Programmer
23 Feb 2012 – Should All Web Traffic Be Encrypted?
14 Feb 2012 – Meetings: Where Work Goes to Die
6 Feb 2012 – Farewell Stack Exchange
3 Feb 2012 – Listen to Your Community, But Don’t Let Them Tell You What to Do
1 Feb 2012 – The One Button Mystique
18 Jan 2012 – Defeating SOPA and PIPA Isn’t Enough
19 Dec 2011 – Building Social Software for the Anti-Social
13 Dec 2011 – Gifts for Geeks, 2011 Edition
7 Dec 2011 – Fast Approximate Anti-Aliasing (FXAA)
7 Nov 2011 – Bias Lighting
24 Oct 2011 – On Parenthood
17 Oct 2011 – Multiple Video Cards
15 Oct 2011 – Serving at the Pleasure of the King
12 Oct 2011 – The Gamification
6 Sep 2011 – Cutting the Gordian Knot of Web Identity
27 Jul 2011 – Nobody’s Going to Help You, and That’s Awesome
18 Jul 2011 – Building a PC, Part VII: Rebooting
20 Jun 2011 – Performance is a Feature
10 Jun 2011 – Geek Transportation Systems
4 Jun 2011 – Suspension, Ban or Hellban?
23 May 2011 – The Infinite Version
4 May 2011 – Who Needs a Sound Card, Anyway?
2 May 2011 – The Hot/Crazy Solid State Drive Scale
25 Apr 2011 – Working with the Chaos Monkey
28 Mar 2011 – Revisiting the Home Theater PC
14 Feb 2011 – The Importance of Net Neutrality
4 Feb 2011 – How to Write Without Writing
31 Jan 2011 – Lived Fast, Died Young, Left a Tired Corpse
20 Jan 2011 – 24 Gigabytes of Memory Ought to be Enough for Anybody
3 Jan 2011 – Trouble In the House of Google
14 Dec 2010 – The Dirty Truth About Web Passwords
28 Nov 2010 – My Holiday in Beautiful Panau
24 Nov 2010 – Your Internet Driver’s License
13 Nov 2010 – Breaking the Web’s Cookie Jar
22 Oct 2010 – The Keyboard Cult
25 Sep 2010 – Because Everyone Needs a Router
17 Sep 2010 – YouTube vs. Fair Use
15 Sep 2010 – Revisiting Solid State Hard Drives
11 Sep 2010 – Go That Way, Really Fast
27 Aug 2010 – Vampires (Programmers) versus Werewolves (Sysadmins)
13 Aug 2010 – What’s On Your Utility Belt?
20 Jul 2010 – Groundhog Day, or, the Problem with A/B Testing
21 Jun 2010 – Whatever Happened to Voice Recognition?
1 Jun 2010 – The Vast and Endless Sea
6 May 2010 – On Working Remotely
30 Apr 2010 – What’s Wrong With CSS
21 Apr 2010 – So You’d Like to Send Some Email (Through Code)
4 Apr 2010 – Three Monitors For Every User
31 Mar 2010 – Usability On The Cheap and Easy
24 Mar 2010 – The Opposite of Fitts’ Law
19 Mar 2010 – Compiled or Bust?
22 Feb 2010 – The Non-Programming Programmer
12 Feb 2010 – Welcome Back Comments
25 Jan 2010 – Cultivate Teams, Not Ideas
18 Jan 2010 – The Great Newline Schism
10 Jan 2010 – A Democracy of Netbooks
29 Dec 2009 – Responsible Open Source Code Parenting
17 Dec 2009 – Building a PC, Part VI: Rebuilding
14 Dec 2009 – International Backup Awareness Day
10 Dec 2009 – Microformats: Boon or Bane?
3 Dec 2009 – Version 1 Sucks, But Ship It Anyway
19 Nov 2009 – Buy Bad Code Offsets Today!
15 Nov 2009 – Parsing Html The Cthulhu Way
9 Nov 2009 – Whitespace: The Silent Killer
5 Nov 2009 – Preserving Our Digital Pre-History
3 Nov 2009 – Stack Overflow Careers: Amplifying Your Awesome
26 Oct 2009 – Revisiting “The Fold”
22 Oct 2009 – Treating User Myopia
18 Oct 2009 – The Interview With The Programmer
13 Oct 2009 – The State of Solid State Hard Drives
12 Oct 2009 – The Xanadu Dream
28 Sep 2009 – Email: The Variable Reinforcement Machine
10 Sep 2009 – 9 Ways Marketing Weasels Will Try to Manipulate You
2 Sep 2009 – If It Looks Corporate, Change It
27 Aug 2009 – Have You Met Your Dog, Patches?
24 Aug 2009 – That Means It’s Working
19 Aug 2009 – The Only Truly Failed Project
14 Aug 2009 – All Programming is Web Programming
11 Aug 2009 – Are You a Digital Sharecropper?
9 Aug 2009 – COBOL: Everywhere and Nowhere
5 Aug 2009 – Software Pricing: Are We Doing It Wrong?
31 Jul 2009 – The Paper Data Storage Option
29 Jul 2009 – Coding Horror: Movable Type Since 2004
26 Jul 2009 – Windows 7: The Best Vista Service Pack Ever
21 Jul 2009 – Nobody Hates Software More Than Software Developers
18 Jul 2009 – Software Engineering: Dead?
13 Jul 2009 – Meta Is Murder
9 Jul 2009 – How Not to Advertise on the Internet
7 Jul 2009 – Testing With “The Force”
6 Jul 2009 – Code: It’s Trivial
1 Jul 2009 – Oh, You Wanted “Awesome” Edition
30 Jun 2009 – All Abstractions Are Failed Abstractions
24 Jun 2009 – The iPhone Software Revolution
23 Jun 2009 – Scaling Up vs. Scaling Out: Hidden Costs
21 Jun 2009 – Monty Hall, Monty Fall, Monty Crawl
17 Jun 2009 – We Done Been … Framed!
16 Jun 2009 – Url Shorteners: Destroying the Web Since 2002
11 Jun 2009 – The Wrong Level of Abstraction
8 Jun 2009 – Regular Expressions for Regular Programmers
7 Jun 2009 – Unix is Dead, Long Live Unix
3 Jun 2009 – Sharing Files With BitTorrent
2 Jun 2009 – I Stopped Reading Your Blog Years Ago
1 Jun 2009 – The Girl Who Proved P = NP
28 May 2009 – Server Fault: Calling All Lusers
26 May 2009 – Beyond RAID
25 May 2009 – Penny Auctions: They’re Gambling
22 May 2009 – How to Motivate Programmers
19 May 2009 – The Bathroom Wall of Code
17 May 2009 – Why Isn’t My Encryption… Encrypting?
13 May 2009 – Why Do Computers Suck at Math?
11 May 2009 – The Web Browser Address Bar is the New Command Line
8 May 2009 – Pseudocode or Code?
5 May 2009 – I Just Logged In As You: How It Happened
3 May 2009 – I Just Logged In As You
30 Apr 2009 – Optimizing Your Wallet
26 Apr 2009 – Has The Virtualization Future Arrived?
21 Apr 2009 – A Modest Proposal for the Copy and Paste School of Code Reuse
20 Apr 2009 – How Not to Conduct an Online Poll
16 Apr 2009 – Exception-Driven Development
15 Apr 2009 – Is Open Source Experience Overrated?
13 Apr 2009 – Death to the Space Infidels!
9 Apr 2009 – Training Your Users
8 Apr 2009 – Sex, Lies, and Software Development
5 Apr 2009 – Almost Perfect
4 Apr 2009 – I Happen to Like Heroic Coding
3 Apr 2009 – The Eight Levels of Programmers
1 Apr 2009 – Should Competent Programmers be “Mathematically Inclined”?
29 Mar 2009 – The Ugly American Programmer
26 Mar 2009 – Don’t Like It? Code it Yourself!
22 Mar 2009 – Who’s Your Arch-Enemy?
21 Mar 2009 – See You at EclipseCon!
19 Mar 2009 – Five Dollar Programming Words
16 Mar 2009 – The Hardest Interview Puzzle Question Ever
15 Mar 2009 – The World’s Largest MMORPG: You’re Playing it Right Now
12 Mar 2009 – Spawned a New Process
10 Mar 2009 – Why Can’t Error Messages Be Fun?
10 Mar 2009 – Sharpening the Saw
9 Mar 2009 – The Computer Performance Shell Game
5 Mar 2009 – HTML Validation: Does It Matter?
3 Mar 2009 – Procrastination and the Bikeshed Effect
1 Mar 2009 – The Promise and Peril of Jumbo Frames
28 Feb 2009 – File Compression in the Multi-Core Era
27 Feb 2009 – Paying Down Your Technical Debt
25 Feb 2009 – Who’s Your Coding Buddy?
23 Feb 2009 – Rate Limiting and Velocity Checking
19 Feb 2009 – The Bad Apple: Group Poison
18 Feb 2009 – Are You An Expert?
13 Feb 2009 – Real Ultimate Programming Power
11 Feb 2009 – The Ferengi Programmer
9 Feb 2009 – The Elephant in the Room: Google Monoculture
7 Feb 2009 – Don’t Reinvent The Wheel, Unless You Plan on Learning More About Wheels
4 Feb 2009 – You’re Doing It Wrong
2 Feb 2009 – Mixing Oil and Water: Authorship in a Wiki World
1 Feb 2009 – Have Keyboard, Will Program
29 Jan 2009 – The Sad Tragedy of Micro-Optimization Theater
27 Jan 2009 – The Ultimate Dogfooding Story
25 Jan 2009 – A Scripter at Heart
22 Jan 2009 – Open Source Software, Self Service Software
20 Jan 2009 – The One Thing Programmers and Musicians Have In Common
19 Jan 2009 – A Visit With Alan Kay
16 Jan 2009 – The Two Types of Browser Zoom
14 Jan 2009 – Die, You Gravy Sucking Pig Dog!
12 Jan 2009 – Top 25 Most Dangerous Programming Mistakes
11 Jan 2009 – If You Don’t Change the UI, Nobody Notices
8 Jan 2009 – Overnight Success: It Takes Years
7 Jan 2009 – Dictionary Attacks 101
4 Jan 2009 – Are You Creating Micromanagement Zombies?
31 Dec 2008 – Finishing The Game
30 Dec 2008 – The Problem of the Unfinished Game
29 Dec 2008 – Programming: Love It or Leave It
27 Dec 2008 – My Software Is Being Pirated
24 Dec 2008 – Best (or Worst) Geek Christmas Ever
23 Dec 2008 – Pressing the Software Turbo Button
21 Dec 2008 – Gifts for Geeks: 2008 Edition, Sort Of
18 Dec 2008 – Hardware is Cheap, Programmers are Expensive
16 Dec 2008 – Avoiding The Uncanny Valley of User Interface
15 Dec 2008 – Easy, Efficient Hi-Def Video Playback
11 Dec 2008 – Profitable Until Deemed Illegal
10 Dec 2008 – My Scaling Hero
7 Dec 2008 – Our Hacker Odyssey
4 Dec 2008 – Blu-Ray: Is It Time?
3 Dec 2008 – The Problem With Logging
30 Nov 2008 – Tending Your Software Garden
25 Nov 2008 – Is Email = Efail?
23 Nov 2008 – Can You Really Rent a Coder?
19 Nov 2008 – That’s Not a Bug, It’s a Feature Request
17 Nov 2008 – We Are Typists First, Programmers Second
15 Nov 2008 – Your Favorite NP-Complete Cheat
12 Nov 2008 – Stop Me If You Think You’ve Seen This Word Before
10 Nov 2008 – Feeding My Graphics Card Addiction
8 Nov 2008 – Coding: It’s Just Writing
4 Nov 2008 – Remembering the Dynabook
30 Oct 2008 – HCI Remixed
29 Oct 2008 – The Problem With URLs
25 Oct 2008 – The Web Browser is the New Laptop
23 Oct 2008 – You’re Reading The World’s Most Dangerous Programming Blog
22 Oct 2008 – The One Thing Every Software Engineer Should Know
20 Oct 2008 – Obscenity Filters: Bad Idea, or Incredibly Intercoursing Bad Idea?
16 Oct 2008 – Programming Is Hard, Let’s Go Shopping!
14 Oct 2008 – Preventing CSRF and XSRF Attacks
12 Oct 2008 – The Importance of Sitemaps
23 Sep 2008 – Cross-Site Request Forgeries and You
18 Sep 2008 – Bill Gates and Code Complete
16 Sep 2008 – Stack Overflow: None of Us is as Dumb as All of Us
7 Sep 2008 – Spawning a New Process
28 Aug 2008 – Protecting Your Cookies: HttpOnly
24 Aug 2008 – Deadlocked!
20 Aug 2008 – Check In Early, Check In Often
17 Aug 2008 – The Perils of FUI: Fake User Interface
13 Aug 2008 – Secrets of the JavaScript Ninjas
9 Aug 2008 – Music to (Not) Code By
4 Aug 2008 – On Our Project, We’re Always 90% Done
2 Aug 2008 – Quantity Always Trumps Quality
30 Jul 2008 – Alpha, Beta, and Sometimes Gamma
28 Jul 2008 – Is Money Useless to Open Source Projects?
26 Jul 2008 – Understanding The Hardware
24 Jul 2008 – Coding Without Comments
22 Jul 2008 – Building Tiny, Ultra Low Power PCs
20 Jul 2008 – Web Development as Tag Soup
17 Jul 2008 – Dealing With Bad Apples
15 Jul 2008 – The Ultimate Software Gold Plating
14 Jul 2008 – Maybe Normalizing Isn’t Normal
12 Jul 2008 – Monkeypatching For Humans
9 Jul 2008 – iTunes is Anti-Web
8 Jul 2008 – Spartan Programming
6 Jul 2008 – The Problem With Code Folding
4 Jul 2008 – Investing in a Quality Programming Chair
2 Jul 2008 – Why Can’t Microsoft Ship Open Source Software?
1 Jul 2008 – Alan Turing, the Father of Computer Science
29 Jun 2008 – Open Wireless and the Illusion of Security
27 Jun 2008 – Regular Expressions: Now You Have Two Problems
25 Jun 2008 – Smart Enough Not To Build This Website
23 Jun 2008 – Revisiting the XML Angle Bracket Tax
22 Jun 2008 – The Ultimate Code Kata
19 Jun 2008 – Department of Declaration Redundancy Department
17 Jun 2008 – Coding For Violent Psychopaths
16 Jun 2008 – Physics Based Games
14 Jun 2008 – Don’t Go Dark
12 Jun 2008 – ASCII Pronunciation Rules for Programmers
11 Jun 2008 – Markov and You
9 Jun 2008 – Exploring Wide Finder
7 Jun 2008 – Finally, a Definition of Programming I Can Actually Understand
6 Jun 2008 – The Greatest Invention in Computer Science
4 Jun 2008 – Please Give Us Your Email Password
2 Jun 2008 – Large USB Flash Drive Performance
1 Jun 2008 – Whatever Happened to UI Consistency?
31 May 2008 – Revisiting the Black Sunday Hack
29 May 2008 – Strong Opinions, Weakly Held
28 May 2008 – Designing For Evil
26 May 2008 – It’s Clay Shirky’s Internet, We Just Live In It
22 May 2008 – OpenID: Does The World Really Need Yet Another Username and Password?
20 May 2008 – PHP Sucks, But It Doesn’t Matter
19 May 2008 – Twitter: How Not To Crash Responsibly
18 May 2008 – Crash Responsibly
15 May 2008 – Oh Yeah? Fork You!
13 May 2008 – Is HTML a Humane Markup Language?
12 May 2008 – Cleaning Your Display and Keyboard
11 May 2008 – XML: The Angle Bracket Tax
6 May 2008 – Supporting DRM-Free Music
5 May 2008 – Understanding Model-View-Controller
4 May 2008 – The Mainstreaming of GPS
1 May 2008 – Re-Encoding Your DVDs
30 Apr 2008 – The Great Dub-Dub-Dub Debate
28 Apr 2008 – Programmers Don’t Read Books – But You Should
25 Apr 2008 – Building Your Own Home Theater PC
24 Apr 2008 – The Problem with Software Registration
22 Apr 2008 – Behold WordPress, Destroyer of CPUs
21 Apr 2008 – Everything I Needed to Know About Programming I Learned from BASIC
18 Apr 2008 – Should All Developers Have Manycore CPUs?
17 Apr 2008 – Building a PC, Part V: Upgrading
16 Apr 2008 – Introducing Stackoverflow.com
15 Apr 2008 – Your Session Has Timed Out
13 Apr 2008 – Revisiting “How Much Power Does My Laptop Really Use”?
10 Apr 2008 – Donating $5,000 to .NET Open Source
9 Apr 2008 – We Don’t Use Software That Costs Money Here
7 Apr 2008 – Rediscovering Arcade Nostalgia
6 Apr 2008 – Help Name Our Website
5 Apr 2008 – Setting up Subversion on Windows
3 Apr 2008 – Mousing Surface Theory
2 Apr 2008 – UI-First Software Development
1 Apr 2008 – Core War: Two Programs Enter, One Program Leaves
31 Mar 2008 – Let That Be a Lesson To You, Son: Never Upgrade.
30 Mar 2008 – Revisiting “Keyboard vs. The Mouse, pt 1”
29 Mar 2008 – Just a Little Bit of Software History Repeating
27 Mar 2008 – What Should The Middle Mouse Button Mean?
26 Mar 2008 – I {entity} Unicode
25 Mar 2008 – Revisiting The Facts and Fallacies of Software Engineering
24 Mar 2008 – Is Eeyore Designing Your Software?
23 Mar 2008 – The Sierra Network II
21 Mar 2008 – Paul Graham’s Participatory Narcissism
20 Mar 2008 – The First Rule of Programming: It’s Always Your Fault
19 Mar 2008 – Adventures in Rechargeable Batteries
18 Mar 2008 – The Dark Side of Extensions
16 Mar 2008 – Does More Than One Monitor Improve Productivity?
13 Mar 2008 – What’s Wrong With Turkey?
11 Mar 2008 – Choosing Your Own Adventure
10 Mar 2008 – Real-Time Raytracing
7 Mar 2008 – A Question of Programming Ethics
6 Mar 2008 – Death Threats, Intimidation, and Blogging
5 Mar 2008 – See You at MIX08!
4 Mar 2008 – CAPTCHA is Dead, Long Live CAPTCHA!
2 Mar 2008 – Actual Performance, Perceived Performance
28 Feb 2008 – UsWare vs. ThemWare
26 Feb 2008 – Douchebaggery
25 Feb 2008 – I Repeat: Do Not Listen to Your Users
24 Feb 2008 – On Escalating Communication
20 Feb 2008 – Code Isn’t Beautiful
19 Feb 2008 – There Ain’t No Such Thing as the Fastest Code
18 Feb 2008 – Tivoization and the GPL
14 Feb 2008 – The Ultimate Unit Test Failure
13 Feb 2008 – Spatial Navigation and Opera
11 Feb 2008 – The Dramatic Password Reveal
10 Feb 2008 – Where the Heck is My Focus?
7 Feb 2008 – The Years of Experience Myth
6 Feb 2008 – Extending Your Wireless Network With Better Antennas
4 Feb 2008 – DRM Ignorance is Expensive
3 Feb 2008 – A Lesson in Apple Economics
2 Feb 2008 – Get Your Database Under Version Control
31 Jan 2008 – Every User Lies
30 Jan 2008 – Is Worse Really Better?
28 Jan 2008 – What’s Your Backup Strategy?
27 Jan 2008 – Why Doesn’t Anyone Give a Crap About Freedom Zero?
24 Jan 2008 – What Can You Build in 600 Lines of Code?
22 Jan 2008 – Getting the Interview Phone Screen Right
21 Jan 2008 – Reinventing the Clipboard
19 Jan 2008 – The Sesame Street Presentation Rule
17 Jan 2008 – See You at CUSEC 2008
16 Jan 2008 – Typography: Where Engineers and Designers Meet
15 Jan 2008 – The Five Browser Shortcuts Everyone Should Know
13 Jan 2008 – What’s On Your Keychain, 2008 Edition
12 Jan 2008 – How Should We Teach Computer Science?
10 Jan 2008 – The Enduring Art of Computer Programming
9 Jan 2008 – No Matter What They Tell You, It’s a People Problem
8 Jan 2008 – Don’t Pollute User Space
6 Jan 2008 – The Magpie Developer
4 Jan 2008 – My Racing Simulation Rig
3 Jan 2008 – Understanding User and Kernel Mode
1 Jan 2008 – The Trouble with PDFs
28 Dec 2007 – An Inalienable Right to Privacy
26 Dec 2007 – Modern Logo
23 Dec 2007 – Size Is The Enemy
20 Dec 2007 – Digital Certificates: Do They Work?
19 Dec 2007 – The Great Browser JavaScript Showdown
18 Dec 2007 – Nobody Cares What Your Code Looks Like
17 Dec 2007 – Software Registration Keys
15 Dec 2007 – On The Meaning of “Coding Horror”
13 Dec 2007 – Our Fractured Online Identities
12 Dec 2007 – Sorting for Humans : Natural Sort Order
11 Dec 2007 – Blacklists Don’t Work
10 Dec 2007 – Are You a Doer or a Talker?
9 Dec 2007 – Gifts for Geeks: 2007 Edition
7 Dec 2007 – The Danger of Naïveté
6 Dec 2007 – Hashtables, Pigeonholes, and Birthdays
5 Dec 2007 – Sharing The Customer’s Pain
4 Dec 2007 – Please Don’t Steal My Focus
3 Dec 2007 – Shuffling
2 Dec 2007 – Presentation: Be Vain
29 Nov 2007 – Mort, Elvis, Einstein, and You
28 Nov 2007 – What If They Gave a Browser War and Microsoft Never Came?
26 Nov 2007 – The Big Ball of Mud and Other Architectural Disasters
25 Nov 2007 – The Two Types of Programmers
20 Nov 2007 – Has CAPTCHA Been “Broken”?
19 Nov 2007 – Living the Dream: Rock Band
18 Nov 2007 – Pair Programming vs. Code Reviews
15 Nov 2007 – You’re Now Competing With The Internet
14 Nov 2007 – Don’t Forget To Lock Your Computer
12 Nov 2007 – What’s in a Project Name?
11 Nov 2007 – The Sad State of Digital Software Distribution
9 Nov 2007 – Is It Time for 64-bit on the Desktop?
7 Nov 2007 – Making Donations Easy
6 Nov 2007 – Who Wrote This Crap?
4 Nov 2007 – Don’t Click Here: The Art of Hyperlinking
1 Nov 2007 – Not All LCD Panels Are Created Equal
31 Oct 2007 – The F5 Key Is Not a Build Process
30 Oct 2007 – Embracing Languages Inside Languages
28 Oct 2007 – Your Desktop Is Not a Destination
26 Oct 2007 – How To Achieve Ultimate Blog Success In One Easy Step
25 Oct 2007 – I’d Consider That Harmful, Too
24 Oct 2007 – Hardware Assisted Brute Force Attacks: Still For Dummies
23 Oct 2007 – Virtual Machine Server Hosting
21 Oct 2007 – Let’s Play Planning Poker!
18 Oct 2007 – Are Features The Enemy?
17 Oct 2007 – Why Does Software Spoil?
15 Oct 2007 – Remember, This Stuff Is Supposed To Be Fun
14 Oct 2007 – Torrent Informatics
13 Oct 2007 – Mouse Ballistics
11 Oct 2007 – A Visual Explanation of SQL Joins
10 Oct 2007 – A Lesson in Control Simplicity
8 Oct 2007 – Geek Diet and Exercise Programs
7 Oct 2007 – YouTube: The Big Copyright Lie
4 Oct 2007 – Do Not Buy This Book
3 Oct 2007 – Revisiting Programming Fonts
2 Oct 2007 – Software Branching and Parallel Universes
1 Oct 2007 – Pushing Operating System Limits
28 Sep 2007 – Computer Display Calibration 101
27 Sep 2007 – Why Are Web Uploads So Painful?
26 Sep 2007 – Can Your Team Pass The Elevator Test?
25 Sep 2007 – Slaying Mighty Dragons: Competitive Ranking and Matching Systems
24 Sep 2007 – Steve McConnell in the Doghouse
21 Sep 2007 – LCD Monitor Arms
20 Sep 2007 – On Expose, Flip3D, and Switcher
19 Sep 2007 – Everything Is Fast For Small n
18 Sep 2007 – Lazyweb Calling
17 Sep 2007 – Practicing the Fundamentals: The New Turing Omnibus
16 Sep 2007 – You’re Probably Storing Passwords Incorrectly
12 Sep 2007 – Classic Computer Science Puzzles
10 Sep 2007 – Gigabyte: Decimal vs. Binary
8 Sep 2007 – Rainbow Hash Cracking
6 Sep 2007 – The Problem With Tabbed Interfaces
5 Sep 2007 – The Peanut Butter Theory of User Interface Design
4 Sep 2007 – Online Newspapers, Offline
2 Sep 2007 – Keeping The Menu Simple
1 Sep 2007 – Choosing Dual or Quad Core
29 Aug 2007 – Falling Into The Pit of Success
28 Aug 2007 – Was The Windows Registry a Good Idea?
26 Aug 2007 – Computer Workstation Ergonomics
23 Aug 2007 – Widescreen and FOV
22 Aug 2007 – Programming Games, Analyzing Games
21 Aug 2007 – URL Shortening: Hashes In Practice
20 Aug 2007 – How Not To Write a Technical Book, Epilogue
19 Aug 2007 – Leading by Example
16 Aug 2007 – Thirteen Blog Cliches
15 Aug 2007 – YSlow: Yahoo’s Problems Are Not Your Problems
14 Aug 2007 – Discipline Makes Strong Developers
13 Aug 2007 – Measuring Font Legibility
10 Aug 2007 – Trojans, Rootkits, and the Culture of Fear
9 Aug 2007 – Dell XPS M1330 Review
7 Aug 2007 – The Large Display Paradox
6 Aug 2007 – Catalogs of Data Visualization
3 Aug 2007 – Configuring The Stack
2 Aug 2007 – What’s Worse Than Crashing?
1 Aug 2007 – Speeding Up Your PC’s Boot Time
31 Jul 2007 – Always. Be. Shipping.
30 Jul 2007 – The Software Imprinting Dilemma
27 Jul 2007 – The Coming Software Patent Apocalypse
26 Jul 2007 – Google’s Number One UI Mistake
25 Jul 2007 – Whatever Happened to Civility on The Internet?
24 Jul 2007 – Lessons from Garry’s Mod
23 Jul 2007 – Building a PC, Part IV: Now It’s Your Turn
20 Jul 2007 – Will My Software Project Fail?
19 Jul 2007 – Futurist Programming… in 1994
18 Jul 2007 – What’s Wrong With Setup.exe?
17 Jul 2007 – The Principle of Least Power
16 Jul 2007 – The Non-Maximizing Maximize Button
13 Jul 2007 – Don’t Be a Commodity Blogger
12 Jul 2007 – Steve Mann, Cyborg
11 Jul 2007 – Building a PC, Part III – Overclocking
10 Jul 2007 – Building a PC, Part II
9 Jul 2007 – Building a PC, Part I
6 Jul 2007 – Defining Open Source
5 Jul 2007 – Better Image Resizing
4 Jul 2007 – Game Development Postmortems
3 Jul 2007 – The Technology Backlash
2 Jul 2007 – Rethinking Design Patterns
29 Jun 2007 – Avoiding Walled Gardens on the Internet
28 Jun 2007 – The Three Faces of About Face
27 Jun 2007 – Why You Don’t Want an iPhone – Yet
26 Jun 2007 – Learning, or, Learning How To Learn
25 Jun 2007 – Supporting Open Source Projects in the Microsoft Ecosystem
22 Jun 2007 – How To Advertise on Your Blog Without (Completely) Selling Out
21 Jun 2007 – Does Anyone Actually Read Software EULAs?
20 Jun 2007 – The Windows Security Epidemic: Don’t Run as an Administrator
19 Jun 2007 – In Programming, One Is The Loneliest Number
18 Jun 2007 – Escaping From Gilligan’s Island
15 Jun 2007 – How to Clean Up a Windows Spyware Infestation
14 Jun 2007 – Incremental Feature Search in Applications
13 Jun 2007 – Where Are The High Resolution Displays?
12 Jun 2007 – Font Rendering: Respecting The Pixel Grid
11 Jun 2007 – What’s Wrong With Apple’s Font Rendering?
7 Jun 2007 – Who Killed the Desktop Application?
6 Jun 2007 – Designing for Informavores, or, Why Users Behave Like Animals Online
5 Jun 2007 – Don’t Ask – Observe
4 Jun 2007 – Removing The Login Barrier
1 Jun 2007 – Background Compilation and Background Spell Checking
31 May 2007 – Gates and Jobs, Then and Now
30 May 2007 – The Best Code is No Code At All
29 May 2007 – Let’s Build a Grid
28 May 2007 – Computer Hardware Pornography
27 May 2007 – Why Is The System Idle Process Hogging All The Resources?
25 May 2007 – How to Get Rich Programming
24 May 2007 – Upgrading to a High Efficiency Power Supply
23 May 2007 – The End of the “Microsoft Tax”
22 May 2007 – When Hardware is Free, Power is Expensive
21 May 2007 – JavaScript: The Lingua Franca of the Web
18 May 2007 – Productivity Tip: Upgrade Your Pentium 4
17 May 2007 – Reducing User Interface Friction
16 May 2007 – Meet The Inventor of the Mouse Wheel
15 May 2007 – Designing Interactions at IDEO
14 May 2007 – Bill Gates and DONKEY.BAS
11 May 2007 – C# and the Compilation Tax
10 May 2007 – This Site May Harm Your Computer
9 May 2007 – Zoomable Interfaces
8 May 2007 – Giving Up on Microsoft
7 May 2007 – Your Favorite Programming Quote
4 May 2007 – Phishing: The Forever Hack
3 May 2007 – Maximizing The Value of Your Keystrokes
2 May 2007 – Basic Design Principles for Software Developers
1 May 2007 – Programming Tip: Learn a Graphics Editor
30 Apr 2007 – An Initiate of the Bayesian Conspiracy
29 Apr 2007 – See You At MIX07
26 Apr 2007 – JavaScript and HTML: Forgiveness by Default
25 Apr 2007 – Coding Horror on .NET Rocks
24 Apr 2007 – How Not To Write a Technical Book
23 Apr 2007 – Where Are All the Open Source Billionaires?
20 Apr 2007 – Welcome to Dot-Com Bubble 2.0
19 Apr 2007 – Apparently Bloggers Aren’t Journalists
18 Apr 2007 – Sins of Software Security
17 Apr 2007 – When In Doubt, Make It Public
16 Apr 2007 – Reddit: Language vs. Platform
12 Apr 2007 – Twitter: Service vs. Platform
11 Apr 2007 – The Pernicious Issue of Software Patents
10 Apr 2007 – Usability Is Timeless
9 Apr 2007 – Is Amazon’s Mechanical Turk a Failure?
6 Apr 2007 – EA’s Software Artists
5 Apr 2007 – SEOs: the New Pornographers of the Web
4 Apr 2007 – Firefox as an IDE
3 Apr 2007 – Pick a License, Any License
2 Apr 2007 – Software Projects as Rock Climbing
2 Apr 2007 – Mouse DPI and USB Polling Rate
1 Apr 2007 – All About My Cats!
29 Mar 2007 – Software Development as a Collaborative Game
28 Mar 2007 – Learning on the Battlefield
27 Mar 2007 – Going Commando – Put Down The Mouse
26 Mar 2007 – What’s Wrong With The Daily WTF
23 Mar 2007 – Folding: The Death of the General Purpose CPU
22 Mar 2007 – Top 6 List of Programming Top 10 Lists
21 Mar 2007 – A Race of Futuristic Supermen!
20 Mar 2007 – Code Access Security and Bitfrost
19 Mar 2007 – Primary Keys: IDs versus GUIDs
16 Mar 2007 – Creating User Friendly 404 Pages
15 Mar 2007 – The “Works on My Machine” Certification Program
14 Mar 2007 – Are Web Interfaces “Good Enough”?
13 Mar 2007 – My Work PC, or, Taking Your Own Advice
12 Mar 2007 – Building a Computer the Google Way
9 Mar 2007 – Software Internationalization, SIMS Style
8 Mar 2007 – Dude, Where’s My 4 Gigabytes of RAM?
7 Mar 2007 – Getting the Most Out of PNG
6 Mar 2007 – Using Amazon S3 as an Image Hosting Service
5 Mar 2007 – Reducing Your Website’s Bandwidth Usage
2 Mar 2007 – Your Code: OOP or POO?
1 Mar 2007 – Curly’s Law: Do One Thing
28 Feb 2007 – Choosing Anti-Anti-Virus Software
27 Feb 2007 – FizzBuzz: the Programmer’s Stairway to Heaven
26 Feb 2007 – Why Can’t Programmers… Program?
24 Feb 2007 – You Want a 10,000 RPM Boot Drive
23 Feb 2007 – Revisiting 7-ZIP
22 Feb 2007 – Don’t Use ZIP, Use RAR
21 Feb 2007 – URL Rewriting to Prevent Duplicate URLs
20 Feb 2007 – Because They All Suck
19 Feb 2007 – Everybody Loves BitTorrent
16 Feb 2007 – Beyond JPEG
15 Feb 2007 – What’s In a Version Number, Anyway?
14 Feb 2007 – Origami Software and Crease Patterns
13 Feb 2007 – Code Smaller
12 Feb 2007 – Does Offline Mode Still Matter?
9 Feb 2007 – Remotely Waking Up Your PC
8 Feb 2007 – Non-Native UI Sucks
7 Feb 2007 – Boyd’s Law of Iteration
6 Feb 2007 – The Software “Check Engine” Light
5 Feb 2007 – What You Have, What You Know, What You Are
2 Feb 2007 – Windows Vista Media Center
1 Feb 2007 – The Economics of Bandwidth
31 Jan 2007 – Low-Fi Usability Testing
30 Jan 2007 – Stylesheets for Print and Handheld
29 Jan 2007 – How To Become a Better Programmer by Not Programming
26 Jan 2007 – Extending The Windows Vista Grace Period to 120 Days
25 Jan 2007 – Dynamic, Lightweight Visualization
24 Jan 2007 – Would you rather be a Navigator or an Explorer?
23 Jan 2007 – If It Isn’t Documented, It Doesn’t Exist
22 Jan 2007 – Shipping Isn’t Enough
19 Jan 2007 – Identicons for .NET
18 Jan 2007 – A World of Endless Advertisements
17 Jan 2007 – Do Certifications Matter?
16 Jan 2007 – There Are No Design Leaders in the PC World
15 Jan 2007 – Five Things You Didn’t Know About Me (and my office)
12 Jan 2007 – The Problem With C++
11 Jan 2007 – If It’s Not in Google, Does Your Website Really Exist?
10 Jan 2007 – The Power of Defaults
9 Jan 2007 – Typing Trumps Pointing
8 Jan 2007 – Test Doubles: A Taxonomy of Pretend Objects
5 Jan 2007 – The Story About PING
4 Jan 2007 – The Sugar UI
3 Jan 2007 – If Loving Computers is Wrong, I Don’t Want to Be Right
2 Jan 2007 – Keeping Time on the PC
1 Jan 2007 – On the Use of Cliches
29 Dec 2006 – Is your PC capable of Hi-Def?
28 Dec 2006 – Will your next computer monitor be a HDTV?
27 Dec 2006 – Did YouTube Cut the Gordian Knot of Video Codecs?
22 Dec 2006 – Logging in with the Keyboard
21 Dec 2006 – Assertiveness for Software Developers
20 Dec 2006 – The Day The Trackbacks Died
19 Dec 2006 – Eric Lippert’s Purple Crayon
18 Dec 2006 – Code Tells You How, Comments Tell You Why
17 Dec 2006 – Hard Drive Temperatures: Be Afraid
16 Dec 2006 – Next-Gen DVD: Are Those Additional Pixels Worth Your Money?
15 Dec 2006 – High-Definition Video on the PC
14 Dec 2006 – Percentage of Chart Which Resembles Ms. Pac-Man
13 Dec 2006 – LCD Progress
12 Dec 2006 – Is Your Database Under Version Control?
11 Dec 2006 – Printer and Screen Resolution
10 Dec 2006 – Moore’s Law in Practical Terms
8 Dec 2006 – Joining The Prestigious Three Monitor Club
7 Dec 2006 – Reading with Edward Tufte
4 Dec 2006 – Are You an Evangelist Too?
3 Dec 2006 – Cool Gifts for Geeks: 2006 Edition
1 Dec 2006 – Today is Support Your Favorite Small Software Vendor Day
30 Nov 2006 – The Project Postmortem
27 Nov 2006 – This Is What Happens When You Let Developers Create UI
24 Nov 2006 – Discussions: Flat or Threaded?
23 Nov 2006 – CPU vs. GPU
22 Nov 2006 – Exploring Vista’s Advanced Search
21 Nov 2006 – iPod Alternatives
20 Nov 2006 – Filesystem Paths: How Long is Too Long?
17 Nov 2006 – Computers are Lousy Random Number Generators
16 Nov 2006 – It’s Never Been Built Before
15 Nov 2006 – Simplicity as a Force
14 Nov 2006 – Microsoft Project and the Gantt Waterfall
13 Nov 2006 – It’s a Malformed World
9 Nov 2006 – Office 2007 – not so WIMPy
8 Nov 2006 – Speed Still Matters
7 Nov 2006 – Screencasting for Windows
6 Nov 2006 – KeyTraino for Visual Studio 2005
3 Nov 2006 – Customization: The Software Tar-Baby
2 Nov 2006 – Growing up with the Microcomputer
1 Nov 2006 – The High Score Table
31 Oct 2006 – What did you write five years ago?
30 Oct 2006 – Whitelist, Blacklist, Greylist
27 Oct 2006 – The Single Most Important Virtual Machine Performance Tip
26 Oct 2006 – The Build Server: Your Project’s Heart Monitor
25 Oct 2006 – CAPTCHA Effectiveness
24 Oct 2006 – Swiss Army Knife or Generalizing Specialist
23 Oct 2006 – Does Writing Code Matter?
21 Oct 2006 – Windows Live Writer: making the Internet a better place
20 Oct 2006 – The Iron Stool
19 Oct 2006 – My Giant Heatsink Fetish
18 Oct 2006 – Buy the Community, Not the Product
17 Oct 2006 – The Last Responsible Moment
16 Oct 2006 – Chickens, Pigs, and Really Inappropriate Terminology
13 Oct 2006 – Opting Out of Linked In
12 Oct 2006 – The Field of Dreams Strategy
11 Oct 2006 – Chess: Computer v. Human
10 Oct 2006 – Blog Advertising: Yea or Nay
9 Oct 2006 – Software Development: It’s a Religion
6 Oct 2006 – DEFCON: Shall We Play a Game?
5 Oct 2006 – Building and Overclocking a Core 2 Duo System
4 Oct 2006 – On Frameworkitis
3 Oct 2006 – Is Software Development Like Manufacturing?
2 Oct 2006 – Anything But Waterfall
29 Sep 2006 – I Rock at BASIC
28 Sep 2006 – Hard Drives – breaking the Terabyte Barrier
27 Sep 2006 – The Multitasking Myth
26 Sep 2006 – Making Developers Cry Since 1995
25 Sep 2006 – Changing Your Organization (for Peons)
22 Sep 2006 – Why Does Vista Use All My Memory?
21 Sep 2006 – Company of Heroes
20 Sep 2006 – Fifty Years of Software Development
19 Sep 2006 – How big is your Lap, Anyway?
18 Sep 2006 – When Understanding means Rewriting
15 Sep 2006 – On Unnecessary Namespacing
14 Sep 2006 – Is Your IDE Hot or Not?
13 Sep 2006 – A Visit from the Metrics Maid
12 Sep 2006 – Vista and the Rise of the Flash Drives
11 Sep 2006 – Has Joel Spolsky Jumped the Shark?
8 Sep 2006 – Technological Racism
7 Sep 2006 – Have You Ever Been Windows Experienced?
6 Sep 2006 – Software: It’s a Gas
5 Sep 2006 – Unnecessary Dialogs: Stopping the Proceedings with Idiocy
4 Sep 2006 – Transfer Mode Downgraded
1 Sep 2006 – External Hard Drives
31 Aug 2006 – Computer Languages aren’t Human Languages
30 Aug 2006 – Game Player, Game Programmer
29 Aug 2006 – Thread Priorities are Evil
28 Aug 2006 – The Sporkfe
25 Aug 2006 – How to Write Technical Documentation
24 Aug 2006 – The Programmer’s Bill of Rights
23 Aug 2006 – Coding Horror Sightings
22 Aug 2006 – Building a Quiet PC
21 Aug 2006 – Total Users Does Not Equal Total Usage
20 Aug 2006 – DirectX Version Number Abuse
18 Aug 2006 – Video Card Power Consumption
17 Aug 2006 – The Power of “View Source”
16 Aug 2006 – Source Control: Anything But SourceSafe
15 Aug 2006 – Coding Horror Stickers
14 Aug 2006 – The Magical Number Seven Plus or Minus Two
11 Aug 2006 – Sometimes It’s a Hardware Problem
10 Aug 2006 – The Last Configuration Section Handler… Revisited
9 Aug 2006 – Fitts’ Law and Infinite Width
8 Aug 2006 – Quad Core Desktops and Diminishing Returns
7 Aug 2006 – Properties vs. Public Variables
6 Aug 2006 – Filesystem Metadata Doesn’t Scale
4 Aug 2006 – A Spec-tacular Failure
3 Aug 2006 – My Love/Hate relationship with ClearType
2 Aug 2006 – Shortening Long File Paths
1 Aug 2006 – Open Source: Free as in “Free”
31 Jul 2006 – Linus Torvalds, Visual Basic Fan
28 Jul 2006 – Are You an XML Bozo?
27 Jul 2006 – Windows XP, Our New Favorite Legacy Operating System
26 Jul 2006 – Compiler, It Hurts When I Do This
25 Jul 2006 – Information Density and Dr. Bronner
24 Jul 2006 – What is “Modern Software Development”
21 Jul 2006 – The problem with “Low Priority”
20 Jul 2006 – I Pity The Fool Who Doesn’t Write Unit Tests
19 Jul 2006 – Creating Smaller Virtual Machines
18 Jul 2006 – Why Can’t Database Tables Index Themselves?
17 Jul 2006 – Diseconomies of Scale and Lines of Code
15 Jul 2006 – Own a Coding Horror
14 Jul 2006 – Separating Programming Sheep from Non-Programming Goats
13 Jul 2006 – I Heart Strings
12 Jul 2006 – The Visual Studio IDE and Regular Expressions
11 Jul 2006 – Power, Surge Protection, PCs, and You
10 Jul 2006 – Brute Force Key Attacks Are for Dummies
7 Jul 2006 – In Defense of the “Smackdown” Learning Model
6 Jul 2006 – A Comparison of JPEG Compression Levels and Recompression
5 Jul 2006 – How Good an Estimator are You? Part III
4 Jul 2006 – The Monopoly Interview
3 Jul 2006 – How Good an Estimator Are You? Part II
30 Jun 2006 – How Good an Estimator Are You?
29 Jun 2006 – ASUS W3J Laptop Review
28 Jun 2006 – The Mysterious Cone of Uncertainty
27 Jun 2006 – Secretly, We’re All Geeks
26 Jun 2006 – Object-Relational Mapping is the Vietnam of Computer Science
25 Jun 2006 – Meet the Arch-Nemesis of Productivity: The Internet
23 Jun 2006 – Vive la Programming Revolution!
22 Jun 2006 – Text Columns: How Long is Too Long?
21 Jun 2006 – When Object-Oriented Rendering is Too Much Code
20 Jun 2006 – Is Writing More Important Than Programming?
19 Jun 2006 – Pretty Code, Ugly Code
18 Jun 2006 – PC Pinball Sims
16 Jun 2006 – Laptop Alternatives
15 Jun 2006 – Desktopitis
14 Jun 2006 – How Long Would It Take if Everything Went Wrong?
13 Jun 2006 – WWWWWDD?
12 Jun 2006 – The Noble Art of Maintenance Programming
8 Jun 2006 – What’s on Your Keychain… in 2006?
7 Jun 2006 – Did IE6 Make Web 2.0 Possible?
6 Jun 2006 – Programming Your Hands
5 Jun 2006 – Don’t Ask Us Questions. We’ll Just Ignore You.
2 Jun 2006 – Road Warrior Revisited
1 Jun 2006 – Love It, Hate It
31 May 2006 – Peopleware Revisited
30 May 2006 – Touchpad vs. Trackpoint
29 May 2006 – Do Modems Still Matter?
26 May 2006 – Pixels, Megapixels, and Desktop Resolutions
25 May 2006 – Is the Command Prompt the New Desktop?
24 May 2006 – You may be a victim of software counterfeiting.
23 May 2006 – Apple Laptops: Good, Cheap, Fast – pick three
22 May 2006 – Are Recipes for Novices?
19 May 2006 – Programmers and Chefs
18 May 2006 – Code Smells
17 May 2006 – Snappy Answers to Stupid Programming Questions
16 May 2006 – Localhost HTTP debugging with Fiddler
15 May 2006 – The Long, Dismal History of Software Project Failure
12 May 2006 – Egoless Programming: You Are Not Your Job
11 May 2006 – Excess Blog Flair
10 May 2006 – Power, Influence, and Copywriting
9 May 2006 – The Ten Commandments of Egoless Programming
8 May 2006 – Invisible Formatting Tags are Evil
7 May 2006 – Spam via SMTP Non-Delivery Reports
5 May 2006 – A Setup Conundrum
4 May 2006 – Virtualization and Ring Negative One
3 May 2006 – Design Matters – but Content is King
2 May 2006 – Following Instructions for Dummies
1 May 2006 – Fail Early, Fail Often
30 Apr 2006 – Why Do We Have So Many Screwdrivers?
27 Apr 2006 – Keeping Up and “Just In Time” Learning
26 Apr 2006 – Of Spaces, Underscores and Dashes
25 Apr 2006 – A Blog Without Comments Is Not a Blog
24 Apr 2006 – Web 2.0 and The “Whatever Box” Server
23 Apr 2006 – If the User Can’t Find It…
21 Apr 2006 – The Cartoon Guide to… Programming?
19 Apr 2006 – Windows Vista: Security Through Endless Warning Dialogs
18 Apr 2006 – Remote Desktop Tips and Tricks
17 Apr 2006 – Are You Following the Instructions on the Paint Can?
16 Apr 2006 – Your Personal Brand
14 Apr 2006 – UML, Circuit Diagrams, and God’s Rules
13 Apr 2006 – Wikipedia: Inclusionists vs. Deletionists
12 Apr 2006 – Automatic Login for Virtual Machines
11 Apr 2006 – It’s Better Than Nothing
10 Apr 2006 – (Very) Basic Textbox Keyboard Shortcuts
9 Apr 2006 – How Much Power Does My Laptop Really Use?
7 Apr 2006 – Best Practices and Puffer Fish
6 Apr 2006 – Blocking Image Bandwidth Theft with URL Rewriting
5 Apr 2006 – Teach Yourself Programming in 23 Hours
4 Apr 2006 – A Fistful of Connectors
3 Apr 2006 – Menus and Toolbars Don’t Scale
2 Apr 2006 – Code Elegance, Code Balance
31 Mar 2006 – The 2GB Windows XP Hibernation Problem
30 Mar 2006 – STOP! Having Trouble?
29 Mar 2006 – I Shall Call It… SomethingManager
28 Mar 2006 – How Not To Become a Rockstar Programmer
27 Mar 2006 – The Ideal Computer Desk
26 Mar 2006 – Making Considerate Software
24 Mar 2006 – The Value of Repetition… Again
23 Mar 2006 – But It’s Just One More
22 Mar 2006 – Rapid Prototyping Fun
21 Mar 2006 – The Login Explosion
20 Mar 2006 – Everything You Know Will Be Obsolete in Five Years
17 Mar 2006 – Microsoft Doesn’t Trust .NET
16 Mar 2006 – Programmers as Human Beings
15 Mar 2006 – Selling Usability
14 Mar 2006 – In Praise of Good Design
13 Mar 2006 – Firefox Excessive Memory Usage
12 Mar 2006 – History of the OK Button
10 Mar 2006 – Users Don’t Care About You
9 Mar 2006 – SDWest 2006: My McConnell Moment
8 Mar 2006 – Doing It Like Everyone Else Does
7 Mar 2006 – Web Forms: Death By a Thousand Textboxes
6 Mar 2006 – The Cult of Coleco Adam
3 Mar 2006 – Sucking Less Every Year
2 Mar 2006 – In Pursuit of Simplicity
1 Mar 2006 – Snippet Enumeration Macro
28 Feb 2006 – Making a Video Game out of your code
27 Feb 2006 – Quick and Dirty Internet Connection Troubleshooting
24 Feb 2006 – Error Codes Must Die
23 Feb 2006 – Levelling Up in the IDE
22 Feb 2006 – Sometimes a Word is Worth a Thousand Icons
21 Feb 2006 – C# Snippet Parity
20 Feb 2006 – Will Mouse Gestures Ever Be Mainstream?
19 Feb 2006 – Darwinia
17 Feb 2006 – Choosing between .NET Pepsi and .NET Coke
16 Feb 2006 – Colorization Required
15 Feb 2006 – The Real Cost of Hello World
14 Feb 2006 – Fear of Writing
13 Feb 2006 – Standard Browser Keyboard Shortcuts
12 Feb 2006 – Lotus Notes: Survival of the Unfittest
10 Feb 2006 – Presentation Zen
9 Feb 2006 – On Audio Visualization
8 Feb 2006 – Hazmat Placards and Icons
7 Feb 2006 – The Day Performance Didn’t Matter Any More
6 Feb 2006 – .NET Pet Shop 4
5 Feb 2006 – Revisiting Edit and Continue
3 Feb 2006 – Keeping Private Keys Private
2 Feb 2006 – Smart Tags and Sane Keyboard Shortcuts
1 Feb 2006 – Don’t Acronymize Your Users
31 Jan 2006 – How Not to Give a Presentation
30 Jan 2006 – Presentation Magnification
29 Jan 2006 – Not All Bugs Are Worth Fixing
26 Jan 2006 – Google is the Help Menu
25 Jan 2006 – Visual Design Patterns
24 Jan 2006 – Dependency Avoidance
23 Jan 2006 – … and a Pony!
21 Jan 2006 – Code Reviews: Just Do It
20 Jan 2006 – 3D positional audio and HRTFs
19 Jan 2006 – The World’s Slowest Windows XP System
18 Jan 2006 – DIVX vs. DivX
16 Jan 2006 – Our Virtual Machine Future
15 Jan 2006 – Software Developers and Asperger’s Syndrome
14 Jan 2006 – Is there an optimal piracy rate?
12 Jan 2006 – Regex Performance
11 Jan 2006 – Return to the Planet of Managed Code Bloat
10 Jan 2006 – Flattening Arrow Code
9 Jan 2006 – Cleaning Word’s Nasty HTML
8 Jan 2006 – Anisotropic Filtering
6 Jan 2006 – The Zen of Mustard and Pickles
5 Jan 2006 – The Impossibly Small PC: Nano-ITX
4 Jan 2006 – Getting Back to Web Basics
3 Jan 2006 – I Heart Cheatsheets
2 Jan 2006 – Filesystems Aren’t a Feature
31 Dec 2005 – New Year’s Resolutions – for Microsoft
28 Dec 2005 – Of White Elephants and Gifting
27 Dec 2005 – Seven Habits of Highly Effective Programmers
26 Dec 2005 – PC Racing Sims
22 Dec 2005 – Web Typography Hack: sIFR
21 Dec 2005 – The CSS Zen Garden and ASP.NET
20 Dec 2005 – Automated Hard Drive Defragmentation
19 Dec 2005 – Client vs. Developer Wars
18 Dec 2005 – The Story of SkiFree
16 Dec 2005 – Variable Bit Rate: Getting the Best Bang for Your Byte
15 Dec 2005 – This Just In: Internet Makes Books Obsolete
14 Dec 2005 – Progressive Image Rendering
13 Dec 2005 – UI Follies, Volume III
12 Dec 2005 – Getting Started with Indexing Service
11 Dec 2005 – an Incomplete Guide to Building a Web Site that Works
10 Dec 2005 – Screenshots: JPEG vs. GIF (and PNG)
8 Dec 2005 – Headphone Snobbery
7 Dec 2005 – Animal, Vegetable, or Mineral?
6 Dec 2005 – A Stopwatch Class for .NET 1.1
5 Dec 2005 – The History of Wumpus
5 Dec 2005 – Why Programmers File the Worst Bug Reports
4 Dec 2005 – The Case For Case Insensitivity
2 Dec 2005 – The TweakUI Tips
1 Dec 2005 – Trespasser Postmortem
30 Nov 2005 – Whatever Happened to the META Tag?
29 Nov 2005 – In praise of Beyond Compare
28 Nov 2005 – C#, VB.NET, and echoing strings in the VS.NET Immediate Window
27 Nov 2005 – Dysfunctional Specifications
26 Nov 2005 – The Many Faces of (Windows) Death
21 Nov 2005 – Avoiding Undocumentation
20 Nov 2005 – Conversations with Erich Gamma
18 Nov 2005 – Comparing Font Legibility
17 Nov 2005 – Learning from TEH INTARWEB
16 Nov 2005 – Software Apprenticeship
15 Nov 2005 – Disambiguating Search with Quasi-Evil Hierarchies
14 Nov 2005 – The Lost Art of Progressive HTML Rendering
12 Nov 2005 – The Windows 95 Startup Sound
10 Nov 2005 – Please use .ToString() responsibly
9 Nov 2005 – The Lesson of HyperTerminal
8 Nov 2005 – My Giant Calculator
7 Nov 2005 – Road Signs and Icons
6 Nov 2005 – Guitar Hero: Are You Ready to ROCK?
4 Nov 2005 – Which Online Discussion Archetype Are You?
3 Nov 2005 – 64-bit Desktop vs. 64-bit Server
2 Nov 2005 – Sample Databases in SQL Server 2005
1 Nov 2005 – GotDotNet: still sucking after all these years
31 Oct 2005 – Search: If It Isn’t Incremental, It’s Excremental
30 Oct 2005 – Improving the Clipboard
28 Oct 2005 – Avoiding Booleans
27 Oct 2005 – Copying Visual Studio Code Snippets to the Clipboard as HTML
26 Oct 2005 – Google search VS.NET macro
25 Oct 2005 – The Cognitive Style of Visual Studio
24 Oct 2005 – The Cost of Leaving Your PC On
23 Oct 2005 – Excluding Matches With Regular Expressions
22 Oct 2005 – It looks like you’re writing a for loop!
21 Oct 2005 – The Nigerian Spammer Anthem
19 Oct 2005 – Running XP with the pagefile disabled
18 Oct 2005 – If You’re Reading This, You Are a Low-Value Demographic
17 Oct 2005 – Unit Testing vs. Beta Testing
16 Oct 2005 – Code Snippets in VS.NET 2005
15 Oct 2005 – Media Center 2005 adds Non-Linear Stretch
14 Oct 2005 – Pimp My IDE
13 Oct 2005 – Microchip Easter Eggs
12 Oct 2005 – Wrangling ASP.NET Viewstate
11 Oct 2005 – The Best of Creative Computing
10 Oct 2005 – Why Do Login Dialogs Have a “User” Field?
9 Oct 2005 – Keyboard Shortcut Summary Macro
8 Oct 2005 – ALT+TAB Extreme*
7 Oct 2005 – C# implementation of ASCII85
6 Oct 2005 – Equipping our ASCII Armor
5 Oct 2005 – Avoiding “Blank Page Syndrome”
4 Oct 2005 – Comparing GUIs: OS X vs. Windows XP
2 Oct 2005 – Configurability and Voiding Your Warranty
1 Oct 2005 – Changing the Windows XP Boot Screen
30 Sep 2005 – Wind, Angle, and Power
29 Sep 2005 – Revenge of Codename: Snowball
28 Sep 2005 – Keyboarding: Microsoft Natural Ergonomic 4000
27 Sep 2005 – Mastering GUIDs with Occam’s Razor
26 Sep 2005 – Microsoft naming: who stole the soul?
25 Sep 2005 – Programming 4 Fun
23 Sep 2005 – On the Death of the Main Menu
22 Sep 2005 – In Defense of Verbosity
21 Sep 2005 – Everything you always wanted to know about Task Manager but were afraid to ask
20 Sep 2005 – When Email Goes Bad
19 Sep 2005 – Moire Screensaver Source
15 Sep 2005 – The Positive Impact of Negative Thinking
14 Sep 2005 – Is UI still in the stone age?
13 Sep 2005 – The Six Dumbest Ideas in Computer Security
12 Sep 2005 – PDC05: I’m only there for the chicks.
11 Sep 2005 – Stupid Registry Tricks
9 Sep 2005 – Speeding up web browsing
8 Sep 2005 – The Spolsky-Babbitt Connection
7 Sep 2005 – The Problem With Configurability
6 Sep 2005 – Managed Code Analysis Tools
5 Sep 2005 – Head First Design Patterns
1 Sep 2005 – A Celebration of The Windows Key
31 Aug 2005 – Don’t Make Me Think, Second Edition
30 Aug 2005 – Usability vs. Learnability
28 Aug 2005 – Variable “foo” and Other Programming Oddities
27 Aug 2005 – The Rise of the PokerBots
26 Aug 2005 – How to be Lazy, Dumb, and Successful
25 Aug 2005 – Mavis Beacon Ate My Brain!
24 Aug 2005 – The User Interface Is The Application
23 Aug 2005 – Microsoft LogParser
22 Aug 2005 – Is DoEvents Evil, Revisited
21 Aug 2005 – Clean Sources Plus
19 Aug 2005 – Despite the incredible slowness and the sparseness of features, this is really really cool
18 Aug 2005 – The myth of infinite detail: Bilinear vs. Bicubic
17 Aug 2005 – Are All Programming Languages The Same?
16 Aug 2005 – Nasty Software Hacks and Intel’s CPUID
15 Aug 2005 – Microsoft 1978
12 Aug 2005 – UI Follies: Windows Media Player Edition
11 Aug 2005 – Passphrase Evangelism
10 Aug 2005 – Perfmon Gone Wild
9 Aug 2005 – TryParse and the Exception Tax
8 Aug 2005 – How to fit three bugs in 512 bytes of security code
7 Aug 2005 – Consolas and ClearType
4 Aug 2005 – Option Strict and Option Explicit in VB.NET 2005
3 Aug 2005 – Does Having The Best Programmers Really Matter?
2 Aug 2005 – Why Estimate When You Can Measure?
1 Aug 2005 – Vision Quest
28 Jul 2005 – Athlon X2: Dual Core Present
27 Jul 2005 – Steve Ballmer: Sweatiest Billionaire Ever
26 Jul 2005 – What if it was infinitely fast?
24 Jul 2005 – The D.I.Y. PC
22 Jul 2005 – The Dancing Bunnies Problem
21 Jul 2005 – Show, Don’t Tell
20 Jul 2005 – Just Try Again
19 Jul 2005 – On Being Pushy
18 Jul 2005 – For Best Results, Don’t Initialize Variables
17 Jul 2005 – Passwords vs. Pass Phrases
14 Jul 2005 – A Tribute to the Windows 3.1 “Hot Dog Stand” Color Scheme
13 Jul 2005 – Code Colorizing and Readability
12 Jul 2005 – Gigabit Ethernet and Back of the Envelope Calculations
11 Jul 2005 – VNC vs. Remote Desktop
10 Jul 2005 – Blue LED Backlash
8 Jul 2005 – How to be Successful, Happy, Fulfilled, and Drive a Totally Hot Car
7 Jul 2005 – Desktop RAID: Oversold?
6 Jul 2005 – Stupid Command Prompt Tricks
5 Jul 2005 – Martin Fowler hates XSLT too
4 Jul 2005 – VS.NET and Code Regions
30 Jun 2005 – Bayesian Kryptonite – spoofed email
29 Jun 2005 – For Best Results, Forget the Bonus
28 Jun 2005 – Uncrippling Windows XP’s IIS 5.1
27 Jun 2005 – Comic Sans, the Font Of The Gods
23 Jun 2005 – The Broken Window Theory
22 Jun 2005 – UI is Hard
21 Jun 2005 – High Dynamic Range Lighting
20 Jun 2005 – World Zone Pricing
19 Jun 2005 – Why Anyone Can Succeed
16 Jun 2005 – The Pontiac Aztek and the Perils of Design by Committee
15 Jun 2005 – Where Are The .NET Blogging Solutions?
14 Jun 2005 – Formatting HTML code snippets with Ten Ton Wrecking Balls
13 Jun 2005 – Phantom DOS files in my root
9 Jun 2005 – Visual Studio .NET 2003 and 2005 Keyboard Shortcuts
8 Jun 2005 – Flickr Hacks
7 Jun 2005 – Compression and Cliffs
6 Jun 2005 – x86 Uber Alles
4 Jun 2005 – The Game Controller Family Tree
3 Jun 2005 – Alternative Keyboarding
2 Jun 2005 – Are Design Patterns How Languages Evolve?
1 Jun 2005 – Recursive Page.FindControl
31 May 2005 – Gee, I Wish I Had Spent More Time Alone With My Computer
29 May 2005 – Google Hardware circa 1999
28 May 2005 – Troubleshooting .NET performance using Peanut Butter
27 May 2005 – Incompetence Considered Harmful
26 May 2005 – John Dvorak, blogging O.G.
25 May 2005 – VM Server Hosting
24 May 2005 – Success through Failure
23 May 2005 – On Managed Code Performance, Again
22 May 2005 – Bridges, Software Engineering, and God
20 May 2005 – Blogging about Blogging
19 May 2005 – Google-fu
18 May 2005 – A Group Is Its Own Worst Enemy
17 May 2005 – Stored Procedures vs. Ad-Hoc SQL
16 May 2005 – The Code-First Dictum
15 May 2005 – Obfuscating Code
14 May 2005 – Conventions and Usability
13 May 2005 – XP Automatic Update Nagging
12 May 2005 – Schedule Games
11 May 2005 – The Difficulty of Dogfooding
10 May 2005 – My Mouse Fetish
8 May 2005 – Multiple Core CPU Futures
7 May 2005 – Defeating Optimism
6 May 2005 – Following the Instructions on the Paint Can
4 May 2005 – Cognitive Diversity
3 May 2005 – Welcome to the Tribe
2 May 2005 – New Job at Vertigo Software
1 May 2005 – Unwanted Modeling Language
30 Apr 2005 – Barcodes and QR Codes
29 Apr 2005 – Respecting Abstraction
27 Apr 2005 – When Writing Code Means You’ve Failed
26 Apr 2005 – Give me parameterized SQL, or give me death
25 Apr 2005 – Canonicalization: Not Just for Popes
24 Apr 2005 – The Start Menu must be stopped
22 Apr 2005 – You Can Write FORTRAN in any Language
21 Apr 2005 – The bloated world of Managed Code
20 Apr 2005 – Because Information is Beautiful
19 Apr 2005 – What Would Blanka Do?
18 Apr 2005 – Encryption for Dummies
16 Apr 2005 – Improved craigslist.org all city search
15 Apr 2005 – Good Test / Bad Test
14 Apr 2005 – Determining Build Date the hard way
13 Apr 2005 – ASP.NET NTLM Authentication – is it worth it?
12 Apr 2005 – Tabbed Browsing and MDI-SDI-WTF
10 Apr 2005 – Hackers and Pastry Chefs
9 Apr 2005 – Raleigh Code Camp: User Friendly Exception Handling Strategies
8 Apr 2005 – Raleigh Code Camp Tomorrow
7 Apr 2005 – Custom wsdlHelpGenerator + webroot = error
6 Apr 2005 – Checksums and Hashes
5 Apr 2005 – The Prototype Pitfall
4 Apr 2005 – Rube Goldberg Software Devices
3 Apr 2005 – Better Presentations through Practice
1 Apr 2005 – Parsing: Beyond Regex
31 Mar 2005 – Searching all Craigslist.org Cities
30 Mar 2005 – What’s on your keychain?
29 Mar 2005 – John Carmack on Java, Phones, and Gaming
28 Mar 2005 – Building Mht Files from URLs revisited
27 Mar 2005 – On Necessity
24 Mar 2005 – Are You There, God? It’s Me, Microsoft.
23 Mar 2005 – Trees, TreeViews, and UI
22 Mar 2005 – If You Like Regular Expressions So Much, Why Don’t You Marry Them?
20 Mar 2005 – BetaBrite LED Sign API completed
19 Mar 2005 – Make Mine XCOPY
18 Mar 2005 – Because IE6 is the new Netscape 4.7x
17 Mar 2005 – Captchas Compared and Critiqued
16 Mar 2005 – A Developer’s Second Most Important Asset
14 Mar 2005 – Developers Are Users Too
13 Mar 2005 – Automated Continuous Integration and the BetaBrite LED Sign
12 Mar 2005 – Get Me The Laziest People Money Can Buy
11 Mar 2005 – Logging TraceListener Improved
10 Mar 2005 – The Slow Brain Death of VB.NET
9 Mar 2005 – Paging Dr. Dotnetsky…
8 Mar 2005 – On Managed Code Performance
7 Mar 2005 – MS Language Equivalents
6 Mar 2005 – Logging TraceListener
5 Mar 2005 – On Software “Engineering”
4 Mar 2005 – Notepad Strikes Back
3 Mar 2005 – To Compile or Not To Compile
2 Mar 2005 – The Great Enterprise Software Swindle
1 Mar 2005 – On Interviewing Programmers
28 Feb 2005 – The One Trillion Dollar Development Pyramid
27 Feb 2005 – Managing with Trust
26 Feb 2005 – iPod Hacking via Modem
25 Feb 2005 – Remotely Managing Remote Desktop
23 Feb 2005 – Pentium-M Home Theater PC
22 Feb 2005 – Why Is Forever
21 Feb 2005 – You Gotta Own It
20 Feb 2005 – Is your PC boring?
19 Feb 2005 – Multiple LCDs
18 Feb 2005 – Improved Unhandled Exception behavior in .NET 2.0
17 Feb 2005 – The Floppy Drive Must Die
16 Feb 2005 – Regex use vs. Regex abuse
15 Feb 2005 – Beating CAPTCHAs with .NET code
13 Feb 2005 – A need for speed– and silence
11 Feb 2005 – Gettin’ Greppy Wit It
10 Feb 2005 – Keyboarding
9 Feb 2005 – ASP.NET About Box (Page)
8 Feb 2005 – Virtual PC 2004 tips
7 Feb 2005 – Ivory Tower Development
6 Feb 2005 – Let the IDE do it
4 Feb 2005 – Wintellect ASP.NET FAQ
3 Feb 2005 – Level 5 means never having to say you’re sorry
2 Feb 2005 – Resharper for VB.NET
1 Feb 2005 – Console apps and AppDomain.CurrentDomain.UnhandledException
31 Jan 2005 – The He-Man Pattern Haters Club
30 Jan 2005 – MAME Cocktail Arcade, documented
29 Jan 2005 – Video Codecs are the next DLL Hell
26 Jan 2005 – It’s the IDE, dummy!
25 Jan 2005 – RegexBuddy and Friends
24 Jan 2005 – Universally Annoying Remotes, Revisited
23 Jan 2005 – Disk Space
21 Jan 2005 – Some Lessons From Forth
20 Jan 2005 – Ideas Are More Important Than Code
19 Jan 2005 – A Modest Namespace Proposal
18 Jan 2005 – Who Needs Talent When You Have Intensity?
16 Jan 2005 – Screwdrivers vs. Couture
15 Jan 2005 – Micro-Optimization and Meatballs
14 Jan 2005 – Tog and Google on UI
13 Jan 2005 – The Reality of Failure
12 Jan 2005 – Net.WebClient and Deflate
11 Jan 2005 – The real cost of performance
10 Jan 2005 – WebFileManager updated
9 Jan 2005 – MAME Cocktail Arcade
8 Jan 2005 – There Ain’t No Such Thing as Plain Text
7 Jan 2005 – Perceived Performance and Form.Paint
6 Jan 2005 – Moving the Block
5 Jan 2005 – If an Exception happens in Form.Paint, does anyone catch it?
4 Jan 2005 – Code-Behind vs. Inline Code
3 Jan 2005 – On mistakes
2 Jan 2005 – Client-Side code highlighting
1 Jan 2005 – 2005: Twenty years of Windows
31 Dec 2004 – DVD Ripping and Nero Recode
29 Dec 2004 – Threading, Concurrency, and the Most Powerful Psychokinetic Explosive in the Universe
28 Dec 2004 – Spurious Pundit
27 Dec 2004 – It Came From Planet Architecture
26 Dec 2004 – Reducing Useless Clutter on Websites
25 Dec 2004 – Road Warrior, Beyond Lapdom
24 Dec 2004 – Emulating Passion
23 Dec 2004 – Happy Talk Must Die
22 Dec 2004 – Task Manager Extreme
21 Dec 2004 – The Last Configuration Section Handler…
18 Dec 2004 – Is DoEvents Evil?
17 Dec 2004 – Interactive Xpath Expression Builder
16 Dec 2004 – Progamming Fonts
15 Dec 2004 – My Database is a Web Service
14 Dec 2004 – Road Warrior, come out to play
13 Dec 2004 – This is your Anti-Productivity Pod
11 Dec 2004 – Visual Diff Tools Revisited
10 Dec 2004 – Blue Collar Software Development
9 Dec 2004 – Never design what you can steal
7 Dec 2004 – Gold Plating
6 Dec 2004 – The Magical Build Machine
5 Dec 2004 – Universally Annoying Remotes
3 Dec 2004 – Top Tens
2 Dec 2004 – Programming for Luddites
1 Dec 2004 – UI Follies, Volume II
30 Nov 2004 – Classic ASP
29 Nov 2004 – Because I love the smell of compilation in the morning
28 Nov 2004 – Custom AssemblyInfo Attributes
27 Nov 2004 – Populate your AssemblyInfo
26 Nov 2004 – WebFileManager
25 Nov 2004 – Giving of thanks, and tech support
24 Nov 2004 – On American Programmers
23 Nov 2004 – Trapped in a Bitmapped World
22 Nov 2004 – Full Threaded Shellicious
21 Nov 2004 – Good Programmers Get Off Their Butts
19 Nov 2004 – Shellicious
18 Nov 2004 – Process.Start and Impersonation
16 Nov 2004 – Web Farms and ASP.NET ViewState
15 Nov 2004 – Multiple /bin folders in ASP.NET
13 Nov 2004 – When Good Comments Go Bad
12 Nov 2004 – So you want to be a Game Developer
10 Nov 2004 – VB.NET vs C#, round two
9 Nov 2004 – You’ll Never Have Enough Cheese
8 Nov 2004 – Captcha Control Coda
7 Nov 2004 – The Cost of Complexity
6 Nov 2004 – Is DVD the new VHS?
4 Nov 2004 – Don’t Be Afraid to Break Stuff
3 Nov 2004 – HTTP Compression via HttpModule
2 Nov 2004 – Rebuttal Rebuttal
1 Nov 2004 – Free as in Beer
31 Oct 2004 – Full Trust can’t be trusted
30 Oct 2004 – UI Follies, Volume I
28 Oct 2004 – Who Needs Stored Procedures, Anyways?
27 Oct 2004 – The Antidote to ASP.NET Smart Navigation
26 Oct 2004 – Creating Even More Exceptional Exceptions
25 Oct 2004 – Teaching Users to Read
24 Oct 2004 – Creating More Exceptional Exceptions
22 Oct 2004 – We’re Building the Space Shuttle
21 Oct 2004 – KISS and YAGNI
20 Oct 2004 – 10 Foot Interface Showdown
18 Oct 2004 – Just Say No
17 Oct 2004 – Throwing Better .NET Exceptions with SOAP and HTTP
15 Oct 2004 – Managed HTML rendering
14 Oct 2004 – I want my WSH.NET!
13 Oct 2004 – Stuck in a VB.NET Ghetto
12 Oct 2004 – A Programmer’s Portfolio
11 Oct 2004 – A Pragmatic Quick Reference
10 Oct 2004 – Are your exceptions silent?
8 Oct 2004 – How about an hourly build?
7 Oct 2004 – Media Center goes retail
6 Oct 2004 – We Make Shitty Software… With Bugs!
5 Oct 2004 – Defending Perpetual Intermediacy
4 Oct 2004 – Double-Click Must Die revisited
3 Oct 2004 – Double-Click Must Die
2 Oct 2004 – ASP.NET CAPTCHA control, improved
1 Oct 2004 – An ASP.NET CAPTCHA Server Control
29 Sep 2004 – Don’t Devalue the Address Bar
28 Sep 2004 – Why Your Code Sucks… and Mine Doesn’t
27 Sep 2004 – The Rise and Fall of Homo Logicus
22 Sep 2004 – Weeding out the Weak Developers with J2EE
21 Sep 2004 – POPFile vs. POPFile
20 Sep 2004 – Why Objects Suck, Revisited
19 Sep 2004 – Some Plan(s) for Spam
18 Sep 2004 – The Jack Principles
16 Sep 2004 – The Delusion of Reuse and the Rule of Three
15 Sep 2004 – SquishySyntaxHighlighter and CRC32
14 Sep 2004 – Performance Considered Harmful
13 Sep 2004 – Saving URLs to MHTML via .NET
12 Sep 2004 – Being technologically savvy isn’t enough
11 Sep 2004 – Whidbey ships with Visual SourceSafe
10 Sep 2004 – Get your Hex on
9 Sep 2004 – A tale of two UIs
8 Sep 2004 – Killing Zombie Websites
7 Sep 2004 – Do You Want to Save?
5 Sep 2004 – Using the Command Window
4 Sep 2004 – The Wisdom of Sells
3 Sep 2004 – Skill Disparities in Programming
2 Sep 2004 – Development is Inherently Wicked
1 Sep 2004 – Loose Typing Sinks Ships
31 Aug 2004 – Unbreakable Links Revisited
30 Aug 2004 – You Think You Hate Mondays?
29 Aug 2004 – The Incredible LinkTron 5000™!
28 Aug 2004 – Java vs. .NET RegEx performance
27 Aug 2004 – Net.WebClient and GZip
26 Aug 2004 – Sniff this!
25 Aug 2004 – Building Unbreakable Links
24 Aug 2004 – Why aren’t my optimizations optimizing?
23 Aug 2004 – Showstopper!
22 Aug 2004 – HTTP Compression and IIS 6.0
21 Aug 2004 – User Friendly ASP.NET Exception Handling
20 Aug 2004 – The Joy of Deletion
19 Aug 2004 – Monster Project Management
18 Aug 2004 – Side by side issues
17 Aug 2004 – Throwing better SOAP exceptions
16 Aug 2004 – GUI patterns
15 Aug 2004 – Pragmatic Programming
14 Aug 2004 – Why I’m The Best Programmer In The World*
14 Aug 2004 – Task Manager Extension
13 Aug 2004 – Performance: Remoting vs. Web Services
12 Aug 2004 – DCOM, XP SP2, and Remote Debugging
11 Aug 2004 – Worse Is Better
10 Aug 2004 – Be Good at Your Job
9 Aug 2004 – McConnell IEEE articles
8 Aug 2004 – The Popularity Tax
8 Aug 2004 – Comment Spam
7 Aug 2004 – Inherits Nothing
27 Jul 2004 – Grand Unification Theory
26 Jul 2004 – Just Say No to Finalization!
23 Jul 2004 – DEVELOPERS^3
22 Jul 2004 – Rethrowing Exceptions
19 Jul 2004 – Go, Monkey!
14 Jul 2004 – VB vs. C# – FIGHT!
13 Jul 2004 – VS.NET 2003 VB outlining broken
11 Jul 2004 – Virtual PC 2004
10 Jul 2004 – Why Objects Suck
8 Jul 2004 – Coding Slave
7 Jul 2004 – I’m smarter than the Runtime!
3 Jul 2004 – Putting the Science Back Into Computer Science
3 Jul 2004 – Athlon 64: Developer’s Choice
2 Jul 2004 – My Buddy, Regex
30 Jun 2004 – Edit and Continue
29 Jun 2004 – Commandos, Infantry, and Police
28 Jun 2004 – Hungarian Wars
28 Jun 2004 – Visual Diff Tools
27 Jun 2004 – Code Complete 2: The Revenge
27 Jun 2004 – Death to the Dialog Box
26 Jun 2004 – UNIX will never be usable
24 Jun 2004 – What’s worse than a Bad Error Message?
23 Jun 2004 – Debugging ASPNET_WP in Production
22 Jun 2004 – User-Friendly Exception Handling
20 Jun 2004 – The Tyranny of ElseIf
15 Jun 2004 – Multiple Monitors and Productivity
14 Jun 2004 – What if software was never free?
13 Jun 2004 – About… More About Box
12 Jun 2004 – Revenge of Notepad
9 Jun 2004 – The Tivo Remote
21 Feb 2004 – We Are Morons: a quick look at the Win2k source
17 Feb 2004 – .NET Compiler Performance
17 Feb 2004 – About… The About Box
10 Feb 2004 – In the beginning, there was Movable Type
2 Feb 2004 – Recommended Reading for Developers
1 Feb 2004 – About Me
Scraping Coding Horror 🔗
This week a colleague of mine created a really useful tool to scrape questions and answers from a company’s website to gather FAQs which we can then feed into a gpt-3 fine-tuned model to act as a virtual agent. I was handling the fine-tuning and creating the interface with the open AI spec whilst he created the scraper. Needless to say I got a little bit of task envy. Not specifically because I wasn’t enjoying what I was doing, in fact I was, it’s just what you’re not doing is what you always want to do, even though the grass rarely is greener. Anyway, I wanted to do some scraping. So tonight, that’s what I did.
As I’ve mentioned in many blogs, including my previous the blog Coding Horror (as if there isn’t enough links on this page) is one of my all time favourites. However, I wasn’t involved at all in software in 2004 and the birth of the blog, so I feel like I’ve missed a big part of software blogging history.
I frequently go back and read through these blogs as they are binge-worthy, much better — in my opinion — than any Netflix series.
The website, I find, is quite difficult to know where you’re at. I’ve constantly read blogs multiple times and find it a bit of a pain to navigate to older blogs. My general methodology is to scroll to the bottom, click “Older posts” and repeat until I find a blog I haven’t read. There must be a better way, I’m sure there is, but that’s not the point… scraping is the point.
I wanted to find all of the blogs on Coding Horror and collate them so I’ve got a simple list I can jump to and easily remember where I’m at without having to navigate many pages.
The cunning plan
From Coding Horror, I need to grab the title, the date and the link to the blog.

In the above image the html of the stuff I need looks like the following:
<header class="post-header">
<span class="post-meta"><time datetime="2019-05-30">30 May 2019</time> </span>
<h2 class="post-title"><a href="/an-exercise-program-for-the-fat-web/">An Exercise Program for the Fat Web</a></h2>
</header>
All of the information is there, ready for the taking.
Cheerio
I’ll be writing the scraper using node.js, so I’ll need some tools to get me going. The main one being Cheerio. Cheerio allows us to easily traverse and find elements from some Markup.
Here’s all the code I wrote to do this:
const axios = require("axios");
const cheerio = require("cheerio");
const fs = require('fs');
let links = [];
async function scrapeCodingHorror() {
let index = 1;
while (true) {
try {
const { data } = await axios.get(`https://blog.codinghorror.com/page/${index}/`);
const $ = cheerio.load(data);
const listItems = $(".post .post-header");
listItems.each((idx, el) => {
const titleEl = $(el).find('.post-title');
const title = titleEl.text();
const path = titleEl.find('a').attr('href');
const date = $(el).find('.post-meta').text();
const link = `https://blog.codinghorror.com${path}`
links.push(`[${date} - ${title}](${link})`)
});
index++;
} catch(e) {
break;
}
}
fs.writeFileSync('links.md', links.join('\n'));
}
scrapeCodingHorror();
I’m looping through every page until cheerio throws an error, then I just output the links to a file. Axios is used to load the data from the webpage, which we then load into cheerio. I’m getting all the elements with the classes .post .post-header
. Then I’m extracting the title element by using the find()
keyword, from this I can get the title and the path. The date is the same process as the title just within the .post-meta
class, so I extract that too. Then I’m combining the path with the full Coding Horror URL and then pushing the markdown to an array. Bobs your uncle.