Archive
2023
2022
2021
- My tiny side project has had more impact than my decade in the software industry
- Adventures in WebAssembly object files and linking
- GraphQL composition can radically simplify data query maintenance
2016
- GraphJoiner: Implementing GraphQL with joins
- Power à la Carte: fine-grained control of power in programming languages
2015
- Nope: a statically-typed subset of Python that compiles to JS and C#
- Code smears: code smells that spread across your codebase
2014
2013
- Converting docx to clean HTML: handling the XML structure mismatch
- Fun with Prolog: write an algorithm, then run it backwards
- Relocatable Python virtualenvs using Whack
- An experiment in reusable web widgets
- The Cthulhu Effect, or what happens to old programmers
- Adding git (or hg, or svn) dependencies in setup.py (Python)
- External code quality and libification
- The best retrospectives are in the middle of a project, not the end
- Test reuse
- spur.py: A simplified interface for SSH and subprocess in Python
2012
- The importance of extremes
- Polymorphism and reimplementing integers
- Don't make big decisions, make big decisions irrelevant
- Modularity through HTTP
- Convert Python packages to single-file Python scripts with stickytape
- Shed is self-hosting
- Downloading source control URIs with Blah
- Functions and corresponding methods with the same name in Shed
- Applicative functors in uncurried languages
- Peaks and troughs in software development
- Safer mutation: change the value, change the name
- The opposite of <noscript>
- What is the expression problem?
- Solving the expression problem with union types in Shed
- Shed programming language
- The impurity of object identity
2011
- Coupling classes to interfaces
- Sharing JavaScript between the browser and the server
- Writing maintainable code
2010
- Design Minimalism or the Dinosaur Snaggletooth
- Naming Functional/Procedural Functions
- Naming Test Methods
- Orders of Magnitude
- Object orientation without classes
2009
- Object orientation, inheritance and the template pattern (oh my!)
- Dynamic languages and testing
- Funk 0.2 released
- Funk – A Python mocking framework