All of my posts ever:
- 2024-07-31: Health Industry Company Sues to Prevent Certificate Revocation
- 2024-06-28: Checking for Compromised Private Keys has Never Been Easier
- 2024-06-14: Information Security: "We Can Do It, We Just Choose Not To"
- 2024-05-30: GitHub's Missing Tab
- 2024-05-14: "Is This Project Still Maintained?"
- 2024-05-01: The Mediocre Programmer's Guide to Rust
- 2024-04-09: How I Tripped Over the Debian Weak Keys Vulnerability
- 2024-02-13: Not all TLDs are Created Equal
- 2024-01-30: Why Certificate Lifecycle Automation Matters
- 2024-01-16: Pwned Certificates on the Fediverse
- 2023-11-07: PostgreSQL Encryption: The Available Options
- 2023-06-12: Private Key Redaction: Redux
- 2023-04-30: dev-dependencies and Rust's unused_crate_dependencies lint
- 2023-04-18: Rutie and Magnus, Two Good Ways to Build Ruby Extensions in Rust
- 2023-04-07: Database Encryption: If It's So Good, Why Isn't Everyone Doing It?
- 2021-10-07: Discovering AWS IAM accounts
- 2020-05-17: Private Key Redaction: UR DOIN IT RONG
- 2018-12-17: pwnedkeys: who has the keys to *your* kingdom?
- 2018-12-12: Falsehoods Programmers Believe About Pagination
- 2015-08-13: Your "Infrastructure as Code" is still code!
- 2015-08-03: How not to report abuse
- 2015-07-14: Why DANE isn't going to win
- 2015-07-07: It's 10pm, do you know where your SSL certificates are?
- 2015-02-15: The Vicious Circle of Documentation
- 2014-11-23: You stay classy, Uber
- 2014-11-20: Multi-level prefix delegation is not a myth! I've seen it!
- 2014-11-16: A benefit of running an alternate init in Debian Jessie
- 2014-10-15: My entry in the "Least Used Software EVAH" competition
- 2014-08-30: Chromium tabs crashing and not rendering correctly?
- 2014-07-24: First Step with Clojure: Terror
- 2014-07-23: Per-repo update hooks with gitolite
- 2014-07-08: Doing Password Complexity Wrong
- 2014-07-06: Witness the security of this fully DNSSEC-enabled zone!
- 2014-06-29: Adventures in DNSSEC
- 2014-06-25: Moving forward with an SSL Co-op
- 2014-06-22: Key Transition Statements: Worthless?
- 2014-06-12: GPG key transition
- 2014-06-05: An SSL Certificate Cooperative?
- 2014-05-03: How *not* to do a redirect
- 2014-01-11: Keep your gems clean!
- 2013-12-20: I am officially smarter than the Internet
- 2013-12-19: Truly, nothing is safe
- 2013-12-15: So you think your test suite is comprehensive?
- 2013-12-05: The easy bit of software development
- 2013-11-26: The Shoe is on the Other Foot
- 2013-11-11: Timezones are not optional information
- 2013-10-30: How to deal with the "package { gcc: }" problem in Puppet
- 2013-10-29: Why Your Puppet Module Sucks
- 2013-10-13: RACK_ENV: It's not *for* you
- 2013-10-10: How *not* to respond to interview feedback
- 2013-10-02: A vim-outliner cheatsheet
- 2013-06-18: Thought for the day
- 2013-05-14: A Modest Vocabulary Proposal
- 2013-04-15: splunkd, Y U NO FOREGROUND?!?
- 2013-04-11: RSpec the easy way
- 2013-03-22: Managing your Databases
- 2013-02-25: libvirt errors that are not helpful
- 2013-01-22: When is a guess not a guess?
- 2013-01-03: Everything's Better With Cats
- 2012-10-26: The e-mail PDA
- 2012-07-23: Podcasting protip
- 2012-07-19: Melt your cores with Rake's multitask
- 2012-05-23: Unhealthy Obsessions
- 2012-05-13: vmdksync helps you escape from VMware
- 2011-12-25: The Other Way...
- 2011-12-17: Rethtool: How I Learned to Stop Worrying and Love the ioctl
- 2011-11-12: Misleading error messages from blktrace
- 2011-10-28: rsync for LVM-managed block devices
- 2011-08-23: UPSes in Datacentres
- 2011-08-23: Oh HP, you Bucket of Fail
- 2011-08-21: Unintended Consequences: Why Evidence Matters
- 2011-08-19: Stream of Consciousness
- 2011-08-07: Using a Local Root Zone with djbdns
- 2011-08-06: Why Everyone Needs HTTPS
- 2011-08-04: Yeah... not so useful
- 2011-07-30: Making SKS available on port 80 with nginx
- 2011-07-30: Giddyup! Simple web application deployment with 'git push'
- 2011-07-28: Speaking Truth to Idiots
- 2011-07-24: Followup to "SSL Session Caching (in nginx)"
- 2011-07-22: Aaah, That Takes Me Back...
- 2011-07-19: Static Comments in Jekyll
- 2011-07-16: MySQL replication and crash recovery
- 2011-07-14: More Nginx SSL Performance Tips
- 2011-07-13: "Wireless Internet is the future" my arse
- 2011-07-07: Honest Achmed is my CA of Choice
- 2011-07-01: Metablogging
- 2011-06-28: Water Saving Shower Heads
- 2011-06-28: SSL Session Caching (in nginx)
- 2011-05-13: How to Frustrate Your Train Driver
- 2011-04-03: Websites and Accessability
- 2011-04-03: "Every Debian developer is also an Ubuntu developer" indeed...
- 2011-02-15: "Please send a patch"
- 2011-02-07: My Goals for Wheezy
- 2011-02-05: I Am Certified!
- 2011-01-29: Changing my name
- 2011-01-23: Debugging Debian Installer
- 2011-01-06: Tethering to an Android phone
- 2010-08-23: My Hero!
- 2010-08-15: Anticlimax
- 2010-06-24: On lDAP objectClasses
- 2010-02-10: Using Virgin Mobile Broadband with wvdial
- 2009-12-26: Making pbuilder just that little bit faster
- 2009-12-01: When Scientists Get Into The Kitchen...
- 2009-09-10: Cool Regex Win-of-the-week
- 2009-09-05: Is There Something Wrong With Me...
- 2009-09-04: I want those two days of my life back, Puppet
- 2009-08-10: Oh Firefox...
- 2009-07-12: Vimoutliner... finally!
- 2009-07-12: Backwards Compatibility FTW
- 2009-06-14: The Rise and Fall of Wordperfect
- 2009-06-13: "Tx unit hang" in e1000 driver
- 2009-06-08: Quote of the Day
- 2009-06-03: Local HTML docs for Prototype
- 2009-05-15: Water Tanks, Reliability, and Redundancy
- 2009-05-01: The Accounting Equation
- 2009-04-27: ~/porn
- 2009-04-24: Insane/Brilliant Idea of the Day
- 2009-04-23: from idiot import *
- 2009-04-22: Really, Really Distributed Revision Control
- 2009-02-23: Information Leaks from Vacation Replies
- 2009-02-18: Depressing, yet Inspiring
- 2009-02-10: Venerating blessed Saint Makita
- 2009-02-10: Search Engines: All Google, All The Time
- 2009-02-10: Look Ma, I'm in the paper!
- 2009-02-08: English Comprehension Skills
- 2009-01-31: Ssssssmokin'
- 2009-01-07: A Word Of Thanks...
- 2009-01-07: A Marketing Slogan
- 2008-12-12: ETOOMUCHMAGIC
- 2008-11-18: Dependency Resolution Failure
- 2008-10-23: Porting debian-installer to the DNS-323
- 2008-10-22: Load Balancing FTP Servers
- 2008-10-22: Gawd I Love Virtualisation
- 2008-10-16: Retitling Blog Posts
- 2008-10-06: E-mail Address Validation for Ruby
- 2008-10-05: The Healing Power of Hate
- 2008-06-12: Womble's Word of the Week: Retrofit!
- 2008-05-06: Distributing Ruby Programs
- 2008-05-04: Spam Filter Developers and Administrators: Dumber Than The Dumbest Person On The Internet
- 2008-05-01: Architecture Astronauts
- 2008-04-17: When you think you're good...
- 2008-04-15: Blahsagne
- 2008-03-04: Dear Web 2.0 Application Authors...
- 2008-02-26: IEEE, Thou Art Clowns
- 2008-02-21: Aaargh! Wikis!
- 2008-02-14: What Time Is It There, Anyway?
- 2008-02-08: Part of the 73rd Barbecue Division...
- 2008-01-28: Kudos to the Lazyweb
- 2008-01-27: Dear Lazyweb: Where Are Those Borders Coming From?
- 2008-01-26: Looking Behind The Proprietary Curtain
- 2008-01-26: A Wheel With Corners
- 2008-01-18: Dear Software Authors...
- 2007-12-31: Go Wide or Go Deep
- 2007-12-31: Cowboys
- 2007-12-16: Camping: CGIs on steroids
- 2007-12-13: E-Commerce, thy name is mud
- 2007-12-05: Strategists and Tacticians
- 2007-11-29: Stupid
- 2007-10-11: EBay Sez: Linux is for scammers
- 2007-10-04: That Didn't Take Long
- 2007-10-02: That ain't no *disco* inferno
- 2007-09-29: The Plain Text PDA
- 2007-09-20: Suing over Software
- 2007-09-18: Documentation: The Chicken and the Egg
- 2007-09-14: Free To Good Home...
- 2007-08-30: "Printer Friendly"
- 2007-08-24: APEC Provocateur?
- 2007-08-15: Dangerous Merging
- 2007-08-08: Just so I'm not accused of being a coward...
- 2007-07-22: Why I'm Afraid of Flying
- 2007-07-18: The Trials of Browsers
- 2007-07-09: Hell is other people('s code)
- 2007-07-09: Britney Spears explains Garbage Collection
- 2007-07-07: Exceptional Flow Control
- 2007-07-06: Well, that was surreal
- 2007-07-01: This is what Web 2.0 is for
- 2007-06-19: Applause is Warranted
- 2007-06-15: Observations on Travel
- 2007-06-09: Project Honeypot: The Joining
- 2007-06-09: Good DNS Hygiene
- 2007-06-07: For Your General Good Health...
- 2007-06-04: Perhaps It Wasn't The Marketing...
- 2007-06-03: Project Honeypot
- 2007-06-03: OfflineIMAP and Deleting Folders
- 2007-06-03: Get Your War On
- 2007-05-31: E-mail Overload
- 2007-05-30: The Programmer's Rant
- 2007-05-25: Who needs Groklaw...
- 2007-05-25: The Real Reason Software Sucks
- 2007-05-17: The Security Theatre's Sydney Tour
- 2007-05-15: If You Find Those PC/Mac Ads Annoying...
- 2007-05-14: Wanted: A Telco That Doesn't Suck
- 2007-05-14: A Lesson In Critical Reading
- 2007-05-03: Cool Ruby Feature: A Hash With a Dynamic Default
- 2007-02-02: Why Security Is So Hard
- 2006-12-29: VLAN adventures
- 2006-12-23: Miss Manners' Guide to Porn at the Office
- 2006-12-14: Could You Pass the 8th Grade in 1895?
- 2006-12-11: We Are Living In a Computer Simulation
- 2006-12-06: I Have Problems With REST
- 2006-12-05: Automatic Ordering Systems
- 2006-12-02: The Patron Saint of Modern Computing
- 2006-11-29: You Know That Sinking Feeling You Get...
- 2006-11-28: A Very Creepy Story
- 2006-11-26: When Open Classes Attack
- 2006-11-15: Severe Discomfort's "The Joy of UDP"
- 2006-09-08: Bruce Schneier, You're my hero
- 2006-09-06: Stripping Away Unnecessary Detail
- 2006-09-03: Tarballing
- 2006-09-03: One Sentence Review Of Babe 2: Pig in the city
- 2006-09-03: Music To Hack To -- The Belated Summary
- 2006-09-03: I think someone didn't get the memo...
- 2006-08-29: Public vs Private Enterprise
- 2006-08-25: I'm So Excited!
- 2006-08-24: That's one way to put it...
- 2006-07-30: Shell Scripting: Good; Sane Tools: Better
- 2006-07-12: User Interfaces as Slideshows
- 2006-07-12: It's All So Simple When You Know How
- 2006-07-03: Shittyrail does it again!
- 2006-06-08: Inadvertantly Appropriate
- 2006-06-08: [Ruby] Blocks as Resource Management
- 2006-06-08: A Fool And His Money are soon parted...
- 2006-05-24: Trains: Inverse Hibernation
- 2006-05-24: Testing the Testing of Your Tests
- 2006-05-14: Curious Perversions in Software Engineering
- 2006-05-11: The Pain of CFEngine
- 2006-05-02: I think it's time for #wimbledon...
- 2006-04-08: Stunning. Simply Stunning.
- 2006-04-06: Vista Demo with OS X
- 2006-04-04: Rewriting in Rails -- A Practical Examination
- 2006-04-04: A Poem for Anne
- 2006-04-03: Demanding Gets You Nowhere
- 2006-04-03: A Rebuttal to "Copy and Paste"
- 2006-03-29: Bug Reports as Relationship Counselling
- 2006-03-24: The Little Engine That Might Be Able To Later
- 2006-03-23: Packeteer Are Spamming Scum
- 2006-03-22: Memory Games for The SMS Crowd
- 2006-03-21: The Curse of the Podcast
- 2006-03-14: When find(1) and xargs(1) is Just Too Hard...
- 2006-02-22: More Ruby Zen
- 2006-02-15: Crafty Like a Fox? Or Just Dumb?
- 2006-02-09: Drama on Rails
- 2006-02-08: LCA 2006: The Hackfest Results
- 2006-02-08: Microsoft Patent Indemnification Not Worth Squat
- 2006-02-07: Oh The Horror, The Horror!
- 2006-02-03: Another Conference Not To Be Missed
- 2006-01-28: That's Not A Question, *This* Is A Question!
- 2006-01-26: LCA 2006: Samba 4 -- Oh My!
- 2006-01-26: LCA 2006: Luxurious Student Accomodation
- 2006-01-26: LCA 2006: The Hackfest
- 2006-01-23: The Future Is FUSE
- 2006-01-23: LCA 2006 -- The Early Years
- 2006-01-23: LCA 2006 -- Schwag Review
- 2006-01-19: Billy and his Boots
- 2006-01-18: It Never Rains...
- 2006-01-17: But how, dear Liza?
- 2006-01-16: Work it out yourself, dammit!
- 2006-01-15: Evolution vs Revolution
- 2006-01-12: Xinerama is the r0x0r
- 2006-01-06: Music To Hack To?
- 2006-01-04: Tabs Are For Indents, damnit!
- 2006-01-03: Those who don't understand Unix...
- 2005-12-26: The Documentation Conundrum
- 2005-12-26: Making DVD Movies
- 2005-12-26: Language Is Not Just Syntax
- 2005-12-24: My Alternate Career
- 2005-12-22: Ubuntu is now a mature distribution
- 2005-12-13: Diversity in Revision Control
- 2005-12-11: Planet Saves the Day!
- 2005-12-11: FORTH: The One True Language
- 2005-12-05: spellcheck.google.com
- 2005-12-05: My Number One Travel Accessory
- 2005-12-05: "Average" skills in a resume
- 2005-12-02: OOP and the Get/Set issue
- 2005-12-01: A trace mixin for Python
- 2005-11-24: Key Signing and The Identity Problem
- 2005-11-22: Rhetorical Quiz No. 1
- 2005-11-21: The Fun Never Stops With Ruby
- 2005-11-20: The Other Ruby
- 2005-11-20: My First Time Mining Ruby
- 2005-11-15: Arrr, it's Sonybeard the Pirate!
- 2005-11-13: Working as a Witness
- 2005-11-13: Snail Racing (The Legal System)
- 2005-11-13: Linking Does Not Create A Derivative Work
- 2005-11-12: Challenge/Response is Not The Answer
- 2005-11-11: Do we need a licence to *use* our software?
- 2005-11-09: Redhat Considered Harmful
- 2005-11-06: The Internet is Not What It Seems
- 2005-11-06: Cleaning The Barbeque
- 2005-11-05: When Technology Goes Wrong
- 2005-10-26: A Licence to Use Your Genes?
- 2005-10-24: Could *you* pass 8th grade math?
- 2005-10-23: Parents Can Be So Cruel
- 2005-10-16: Why Ubuntu Loves dpatch
- 2005-10-16: Nokia 3120 with Gnokii
- 2005-10-16: Debian Patch Management Smackdown
- 2005-10-12: Humour and the Law
- 2005-10-11: Suuuuure They're There For Our Safety
- 2005-10-10: Cost-effective foodstuffs
- 2005-10-06: On Web Services and Free Data
- 2005-09-23: Python Make You Forget Plural
- 2005-09-20: Flybooks and Linux
- 2005-09-19: My visited countries (WARNING: Meme Alert!)
- 2005-09-15: Voluntary Cubicles?
- 2005-09-15: ADSL Service is the sux0r
- 2005-09-11: Software Freedom Day 2005
- 2005-09-11: Parser Generators
- 2005-09-11: Lemmings on the web
- 2005-09-08: The Zebra I am riding...
- 2005-09-08: The Parable of the mudpile
- 2005-09-08: The Blog as a Knowledge Base
- 2005-09-07: Yay for disconnected operation!
- 2005-09-07: Sometimes it really *is* zebras
- 2005-09-07: My New Love