slinkp blog
Cursor and the danger of overpromising
Programming with Kimi-K2 via Aider (August 2025)
Deepseek R1-0528 + Aider (tried 2025-07-25 and 2025-08-10)
Programming with Aider + Qwen 3 Coder (2025-07-25)
Programming with Aider: Impressions, Overview
Copilot in Emacs
What I've Been Up To Lately (or, blog posts to come)
Recording System Audio Output on a Macbook
More pedal rebuild updates, and a successful guitar mod
Spydey - a handy link checker
Rebuilding old DIY effects pedals, update April 2025
Git: retroactively keeping tests green
Rebuilding old DIY effects pedals
Stumbled onto an old Bitly blog post
Recurse summer 2023 - part 2
Modernizing my Python development setup in Emacs
At Recurse center! Part 1 ... And, blogging again!
Fun with recursion and The Little Schemer
Chai (bagged teas) reviews 2019-2023
Writing Tests that Fail Well
Sane project planning pt. II: Against Wishful Thinking
Finding Which Superclass Provides a Method
Thread Locals in Python: Mostly easy
Celebrating Ten Years of Startup Orange
Thoughts on sane planning, part 1: Stagger your projects
Cataracts? Really? Yes
git rebase is like nuclear power ...
Finally, a blog
Prince: "When Doves Cry"
Falsehoods Programmers Believe about REST APIs
urllib2 gotcha
Fun with mocks, or: Mock-mock-unmock-unmock oops
My Emacs setup [OUTDATED]
Using Sqlalchemy Declarative with Django and Nose, Oh My
Graphite, so confusing!
Python One-Liners: Generator expressions
convert hg repository to git
Linux on the Macbook Air (2013)
settings.py considered evil
Python string split weirdness
Context Manager + Decorator
map vs. iter
pdbpp rocks!
Git rebase conflicts
Bash logging to both stdout and stderr
Debugging as Immersive Game
Django is not an application framework
Mock configuration tip
Python packaging: Where Pip and Virtualenv fall short
Cron rant
Python dictionary trick: d3 = d1 + d2
Migrating Trac Wikis to Github
How to run Django under Paste Deploy for locally testing a WSGI pipeline
Reduce Friction for Your Bug Reporters