This is the blog index.
- Web Publishing—2025-09-28
- "Senior" Software Engineers—2025-01-07
- Default Open Source—2023-06-28
- "Meta-circular" Static Types—2022-06-08
- On the Missed Opportunities of Static Types—2021-02-05
- The Best Part of Waking Up, is a Sound Board in Your Cup—2020-02-10
- Serving Traffic "Directly" from SQLite—2020-01-20
- ELI5: Employment History Edition—2019-10-18
- Check for Go Errors—2019-06-08
- Combining Similar Time Series—2019-06-07
- Be Moore Like Chuck—2018-12-31
- Simplifying Slideshow—2017-11-04
- Dr. Charles Kapps—2017-10-24 (Updated 2018-12-30)
- How to provide help—2017-08-31
- Playbooks Aren't Written For "You"—2017-06-22
- Grapt—2017-01-01
- envjson: Config Checking for 12 Factor Apps—2016-09-28
- Either continue, or error—2016-07-01
- hifi: hacks I find interesting—2015-09-17
- Scanabanana—2015-09-01
- Yacking About Yet Another Yak Shave Called Lack—2015-05-22
- Reduce, Reuse, Recycle—2015-03-06
- Everywhere I see...—2015-02-03
- More About "let" in Python—2014-11-13
- A "One" Line Echo Server Using "let" in Python—2014-11-12
- 4 Years of Hack and Tell—2014-08-29
- More Modest—2014-08-16
- Stupid Programming Language Arguments—2014-08-15
- Plotting Points—2014-07-31
- A Language by Any Other Name—2014-02-10
- Stripe CTF 3.0 Recap—2014-01-31
- Static Analysis—2014-01-15
- "2014"—2014-01-01
- When—2013-12-12
- Realm of Racket—2013-12-05
- A Spreadsheet is Not a Database—2013-09-24
- Applying the Web of Trust Model to Blog Reading—2013-07-25
- A Prescription for Dynamic Image Resizing—2012-12-18
- LinkedList NYC Solution—2012-11-05
- Fabric not Uniforms—2012-10-11 (Revised 2018-12-30)
- Side Projects and your Full-Time Job—2012-09-04
- Small, Life Problems? Just a Matter of Programming—2012-03-23
- Smart Moves in URL Shorteners—2012-03-13
- Cleaning out the Keyboard—2012-01-15
- Code Blogging: Call With Current Continuation for Python—2011-08-09
- Parser Combinators Made Simple—2011-04-18
- Serializing Work to be Done—2011-04-15
- Softserv Serves Requests—2011-01-07
- unipoint-mode: A minor-mode for Mathematical Unicode—2010-11-04
- ant.el: A Code Walkthrough—2010-10-29
- Clojure Conj Reading List—2010-10-24
- This is not the Freehackers Union...—2010-10-12
- Google Spreadsheets: Game of Life—2010-06-25
- Code Blogging: ARGF in Python—2010-06-23
- Maps are Broken, for Some Definition of Broken—2010-06-22
- Pattern Matching with "With"—2010-04-28
- The Real Disappointment—2010-01-28
- Remote Objects—2009-11-20
- Python Worlds—2009-10-01
- Bitten... Really Hard—2009-09-09
- The Case of the Unusable Reusable—2009-07-22
- The Hacker's Utility Belt: SSH—2009-05-07
- The Power That is GNU Emacs—2009-04-30
- Dispatching With "with"—2009-03-04
- Higher Order PHP—2009-02-06
- Anagrams Predicate—2009-01-08
- Chocolate Cupcakes—2008-12-15
- Python Type Constructors a la OCaml—2008-09-30
- The Failure of Bayesian Filtering For Automated Screening of Med School Applications—2008-09-18
- Announcing the Return of Modest—2008-09-08
- Gearing Up to Learn—2006-08-30
- Apple Hardware Should Be Called Brokenware.—2006-07-19
- Simple Django View For Dynamic Text Replacement—2006-06-30
- The Best Tool for the Job—2006-06-29
- Classifying Web 2.0 as Design as well as Function—2006-06-28
- The Best Argument for OS X—2006-06-27
- Andrew vs SPAM Part III—2006-06-14
- Aghh! Word Attachments—2006-05-11
- All This Talk About OSX...—2006-04-25
- From Concept to Reality in 30 Days—2006-04-04
- UN-Equal Oppurtunity Employer—2006-03-31