Archives
- When Google Takeout Fails – August 27, 2025
- Sampling with SQL – August 23, 2024
- Dice Race (part 1) – June 24, 2023
- A Great Old-Timey Game-Programming Hack – December 14, 2013
- Tricks of the trade: Recursion to Iteration, Part 4: The Trampoline – June 12, 2013
- Tricks of the trade: Recursion to Iteration, Part 3: Recursive Data Structures – June 3, 2013
- Lazy merging in Python using streams – May 26, 2013
- Tricks of the trade: Recursion to Iteration, Part 2: Eliminating Recursion with the Time-Traveling Secret Feature Trick – May 14, 2013
- Tricks of the trade: Recursion to Iteration, Part 1: The Simple Method, secret features, and accumulators – May 11, 2013
- Odds and the evidence of a single coin toss – March 4, 2013
- The second-order-diff Git trick – February 18, 2013
- Mounting a Nexus 7's filesystem under Fedora 17 – November 15, 2012
- Test like you're betting for your life – April 15, 2012
- Finally! I have blogged 100 thousand words. – January 29, 2012
- The inner beauty of tree traversals (in Haskell) – January 26, 2012
- A flyweight mocking helper for Python – November 7, 2011
- The most surprisingly helpful thing I have written – November 1, 2011
- Almost there: 100K words – July 20, 2011
- Good enough to steal – July 10, 2011
- Writing a simple plagiarism detector in Haskell – June 16, 2011
- Presso hand-powered espresso maker: thoughts? – April 5, 2011
- Dear readers: let me know if my feeds explode – March 26, 2011
- Errata-sleuthing for fun and knowledge – March 24, 2011
- A quick summary of the VL2 data-center network scheme – March 17, 2011
- How to update your server's BIOS across the network – March 3, 2011
- Some less-uninformed speculation about the Google-Bing squabble – February 3, 2011
- The Google-Microsoft squabble over Bing results: some completely uninformed speculation – February 2, 2011
- Are engineers really bad at things they can't measure? – January 23, 2011
- The Bayesian meets Monty Hall – January 1, 2011
- The other LectroTest – December 31, 2010
- Most popular articles on my blog for 2010: the old stuff rules – December 28, 2010
- Blog updates: faster, mathier, and more cacheable – December 26, 2010
- More on the evidence of a single coin toss – December 20, 2010
- On the evidence of a single coin toss – December 7, 2010
- The easy way to understand web-font licensing: use open-source fonts – November 4, 2010
- Emacs-magit 0.8.2 pushed to Fedora updates-testing – August 13, 2010
- Quick tip: converting lines of text to paragraphs (and the reverse) – July 16, 2010
- An interesting flaw (or feature?) in Amazon's marketplace – June 24, 2010
- Two handy alternatives to the top command: htop and atop – June 10, 2010
- A formal language for recipes: brain dump – January 8, 2010
- Dispel the magic by defining the semantics – July 23, 2009
- How to fix a broken bootloader configuration after a Fedora Linux upgrade – July 5, 2009
- Dear Jeff Bezos: Here's an easy, effective way to fix the production problems in Amazon Kindle-edition books and, at the same time, prove that the Kindle is really, truly better than paper – June 29, 2009
- The best-kept secret in programming conferences, especially in a down economy – May 22, 2009
- Twitter puns – May 7, 2009
- Perl saved my vacation! – April 25, 2009
- Perlfolk! Get your YAPC|10 talk proposals in now! – April 20, 2009
- 10th-Anniversary YAPC coming right up! – February 24, 2009
- When you buy proprietary software, you get suffering – February 3, 2009
- Magit is a handy Emacs mode for people who use Git – February 2, 2009
- Emacs stuff I always seem to forget – January 7, 2009
- See you at the Pittsburgh Perl Workshop 2008! – October 8, 2008
- The Insecurity of Security Questions: Why I met my wife in CWmKryWzuxCSAnMDuIg. – September 19, 2008
- PXSL Tools now on Hackage and GitHub – August 24, 2008
- Thinking algebraically: a functional-programming dividend that pays during your imperative-programming day job – August 20, 2008
- Fun stuff: Video of Type B Erie steam shovel in action! – August 10, 2008
- Fun stuff: Historical Construction Equipment Association's 2008 convention – August 9, 2008
- Oleg's great way of explaining delimited continuations – May 5, 2008
- That looks about right – April 11, 2008
- Property checking with Python's nose testing framework – March 19, 2008
- PXSL Tools 1.0: Your ticket out of XML Hell – December 17, 2007
- How I stopped missing Darcs and started loving Git – December 10, 2007
- TMR 9! – November 19, 2007
- A couple of tips for writing Puppet manifests – November 15, 2007
- How to download photos and movies from the Palm Centro to a Linux desktop – November 2, 2007
- How to hotsync the Palm Centro with a Fedora 7 Linux desktop via USB – October 31, 2007
- Perl helps prove universality of 2, 3 Turing machine – October 26, 2007
- Practical differences between Darcs and Git/Mercurial – October 25, 2007
- PPW 2007 is here! – October 13, 2007
- PPW 2007: a twenty-ton can of programming whoop-ass – September 25, 2007
- Bloglines doesn't handle inter-element white space properly – September 11, 2007
- Updated cabal2rpm helps you make RPM packages from Haskell Cabal packages – September 7, 2007
- ClusterBy: a handy little function for the toolbox – September 1, 2007
- R tips and tricks: Producing smooth bitmap plots – August 25, 2007
- Fun with statistics: estimating blog readership (a do-it-yourself recipe) – August 22, 2007
- Pittsburgh Perl Workshop 2007: Don't miss your chance to speak! – August 20, 2007
- Seven signs YOU may have created a Gratuitous Domain Specific Language – August 18, 2007
- A bright future: security and modern type systems – August 15, 2007
- My photo of British soldier lichen is now published! – August 14, 2007
- Hailstorm! – July 15, 2007
- Greasmonkey script annotates IMDb movies with their decoder-ring percentile ranks – July 11, 2007
- Talk: Fun with Numbers: R and Perl (and IMDB data) – June 21, 2007
- My upgrade to Fedora 7: rocky start but great finish – June 7, 2007
- I'm going to be a published photographer! – May 31, 2007
- Repairing my Kenwood A/V receiver's remote-control sensor – May 25, 2007
- Good espresso at Sheetz? – May 18, 2007
- New Fedora Core RPMS for CRAN packages arm, Matrix, lme4, car, coda, leaps, and mlmRev – April 25, 2007
- Engauge Digitizer: a handy tool for extracting data from charts – April 17, 2007
- Netflix vs. Amazon Unbox: Netflix still wins – April 7, 2007
- I have written a short novel's worth of content for my blog – March 30, 2007
- Directory-tree printing in Haskell, part three: lazy I/O – March 28, 2007
- Debate to learn. Learn to debate. – March 26, 2007
- The IMDB Movie Rating Decoder Ring: updated w/ 2 March 2007 data – March 9, 2007
- Directory-tree printing in Haskell, part two: refactoring – March 7, 2007
- A simple directory-tree printer in Haskell – February 22, 2007
- Don't let password recovery keep you from protecting your users – February 9, 2007
- Ruby 1.9 gets handy new method Object#tap – February 7, 2007
- A bad way to start the evening – January 29, 2007
- Never store passwords in a database! – December 15, 2006
- I blame the pie – November 14, 2006
- Minor site churn – November 4, 2006
- Lowering the bar for over a decade – November 4, 2006
- Adding Haskell syntax highlighting to the Typo blogging system – November 1, 2006
- Introductory Haskell: Solving the Sorting-It-Out Kata – October 31, 2006
- A type-based solution to the “strings problem”: a fitting end to XSS and SQL-injection holes? – October 18, 2006
- If unit testing can't keep Rails safe from string-escaping problems, what makes you think it will keep your projects safe? – October 12, 2006
- GHC 6.6 is out! – October 11, 2006
- Unit testing is a tool, not a goal – October 10, 2006
- Baker's percentages and how not to explain them – September 16, 2006
- The 2006 Pittsburgh Perl Workshop is a ten-ton can of programming whoop-ass – September 12, 2006
- Netflix: don't act like weasels – August 31, 2006
- Typo-4.0.3 instability and a minor patch for sqlite3-ruby – August 24, 2006
- Database connection leak in Typo 4.0.3: problem solved – August 24, 2006
- Solving the Google Code Jam "countPaths" problem in Perl – August 17, 2006
- Solving the Google Code Jam "countPaths" problem in Ruby – August 16, 2006
- Solving the Google Code Jam "countPaths" problem in Haskell – August 15, 2006
- Some recent reviews of distributed source-code-management systems – August 14, 2006
- How to make sure your servers come back up after an extended power outage – August 9, 2006
- Adding reddit and del.icio.us buttons to articles in Typo – August 9, 2006
- Amazon Grocery: an upbeat mini-review – August 3, 2006
- Upgrading my blog to run Typo 4.0 – July 24, 2006
- A quick look at my blog's web statistics – July 20, 2006
- A coder's guide to usage guides (and why you ought to use one) – July 19, 2006
- Interesting stuff: matchstick moss (British soldier lichen) – July 7, 2006
- Mini-review of CafePress's direct-printed t-shirts – July 5, 2006
- Claiming my blog on Bloglines – July 5, 2006
- LectroTest: new release, new talk, and the new LectroTest Emporium! – June 27, 2006
- Dell-support follow-up survey – June 27, 2006
- New server arrives: my adventure in Dell customer-support Hell – June 23, 2006
- Macro photography: lady-beetle larva – June 18, 2006
- Unexpected downtime – June 17, 2006
- My code is “so clever as to be stupid” – June 16, 2006
- Two good talks on software and freedom – June 7, 2006
- Unofficial answers to FAQs about Giant Eagle's “fuelperks” gas discount – May 3, 2006
- The Supermarket Pricing Kata in Haskell – April 28, 2006
- The honeybee stories are back! – April 20, 2006
- Perl and Pittsburgh: fun stuff coming your way! – April 12, 2006
- Composing functions in Ruby – April 7, 2006
- The Bowling Game Kata in Haskell – April 5, 2006
- The "perfect shuffles" puzzle (solved in Haskell) – March 23, 2006
- Talk: Embedded domain-specific languages for Perl – March 14, 2006
- Good stuff: Tab Mix Plus for Firefox – March 3, 2006
- Finding duplicate words in writing: a handy Perl script – March 1, 2006
- My new rig is up and running – February 17, 2006
- How to flash your BIOS when you don't have a floppy drive – February 17, 2006
- Plogs: channelized shovel marketing from Amazon – February 13, 2006
- Ryan Carson: Building web applications on a budget – February 8, 2006
- A simple Apache recipe for migrating blog articles to a new host – February 6, 2006
- Good stuff: Aldo Coffee Company – January 30, 2006
- Night of the long-tailed beast! – January 23, 2006
- Everything old is new again: moving content over from my old blog. – January 21, 2006
- Wondrous oddities: R's function-call semantics – January 20, 2006
- Mining gold from the Internet Movie Database, part 1: decoding user ratings – January 17, 2006
- Improving Typo's spam protection – January 16, 2006
- Cost-reducing interfaces should be the focus – December 8, 2005
- Proofreading with speech synthesis – December 6, 2005
- Try Ruby from your web browser – November 30, 2005
- Ten simple ways to protect your privacy – November 28, 2005
- Good stuff: Google Local for mobile devices – November 28, 2005
- Wow! A Haskell-based first-person shooter! – November 22, 2005
- Verizon FiOS fiber-optic Internet service: a first look – November 15, 2005
- Replacing the fan array in my HP ProCurve 4000M switch – November 11, 2005
- Things to do with unexpected free time – November 10, 2005
- Linux just works – November 2, 2005
- Damian Conway's talk on Sufficiently Advanced Technologies – November 1, 2005
- Interesting stuff: keeping bees – October 28, 2005
- Top-ten weblog usability mistakes: My blog's scorecard – October 26, 2005
- Google Web Accelerator vs. unsafe linking: Round Two! – October 25, 2005
- The oddities of floating-point arithmetic – September 27, 2005
- Scope herding with delimited continuations – September 13, 2005
- New RPM release: Emacs Speaks Statistics 5.2.10 – September 12, 2005
- Good stuff: Foyle's War – September 1, 2005
- Closures and the professional programmer – August 30, 2005
- Power parsing with Haskell and Parsec – August 27, 2005
- I have moved my blog over to Typo – August 25, 2005
- How to change symlinks atomically – August 22, 2005
- Perl Mongers meet at PAPA-8 pinball tournament kickoff! – August 12, 2005
- Seeing small with digital cameras – July 13, 2005
- Math makes tea taste better – July 11, 2005
- The button_to helper is now part of Rails! – June 16, 2005
- Where have the IEEE t-shirts gone? – June 10, 2005
- Good stuff: One-Touch high capacity stapler from Staples – May 31, 2005
- Taking the unsafe GETs out of Rails – May 8, 2005
- Google Web Accelerator offers web developers an important opportunity – May 6, 2005
- Cool stuff: Composable memory transactions – April 9, 2005
- It's official: I like Ruby – April 8, 2005
- Writing a simple Ruby evaluator in Haskell – March 25, 2005
- Source code management with darcs: a first look – February 12, 2005
- When worlds collide and then dance: Test::LectroTest meets Test::Builder – February 8, 2005
- Google's no-follow proposal is a double win for the web – January 18, 2005
- Letterpress Christmas cards – December 22, 2004
- Floss loss: how Amazon screwed up an order for the world's best dental floss – December 7, 2004
- How do software teams scale?: A snapshot based on switching SCM tools – November 19, 2004
- 2004 Presidential-election state polling data at a glance – November 2, 2004
- Fun with Modern Election Methods – September 29, 2004
- LectroTest: An automatic, specification-based testing tool for Perl – September 10, 2004
- Open-source statistics: R and ESS – August 27, 2004
- The Mobile Weather Problem and its solution – August 11, 2004
- Computing the digits of e – July 22, 2004
- Concurrent port scanner in Haskell – March 13, 2004
- My new Radio VCR – February 20, 2004
- Fun with Asterisk – November 15, 2003
- A Coder’s Guide To Coffee – April 25, 2002
- Seven Lessons from the ICFP Programming Contest – July 31, 2001