- Weeknote 18: Code comments (2024-12-15)
- paketoi 0.1 (2024-04-23)
- Creating AWS Lambda zip files with Pex (2024-01-31)
- Do not use requirements.txt (2023-10-31)
- clojure.xml and untrusted input (2021-03-13)
- clojure.spec and untrusted input (2021-03-06)
- Clojure project automation tool of my dreams (2021-01-23)
- Code review in context (2020-12-13)
- Code review is for collaboration (2020-11-22)
- Why bother with Integrant? (2020-11-15)
- What are DIDs? (2020-11-01)
- Caching HTTP requests in Clojure (2020-10-25)
- Generating random tokens in Clojure (2020-10-18)
- clj-branca: lessons learned (2020-10-11)
- Branca and yak shaving (2020-10-04)
- Solving the diamond problem with shading (2020-09-27)
- Local memoized recursive functions (2020-09-20)
- JWT and its alternatives (2020-08-30)
- Signing .jars is worthless (2020-07-26)
- Who is going to use the programming language? (2020-05-31)
- Automating spec-tools releases (2020-05-24)
- Essential features of data specification libraries (2020-05-10)
- Schema, Spec, and Malli (2020-05-03)
- Put files where they are expected (2020-04-12)
- Programming is writing (2020-02-25)
- Hello again, Python (2020-01-19)
- Standard problems, standard solutions (2019-12-19)
- Just automate syntax formatting (2019-12-12)
- Keeping code review fast (2019-12-05)
- The power of code review (2019-11-28)
- Coercing JSON with malli (2019-11-20)
- The joys of coverage (2019-10-10)
- Revisiting Clojure testing (2019-01-29)
- How I use tap> (2018-10-18)
- Why interceptors? (2018-09-03)
- Fully automated releases (2018-08-11)
- Edit clipboard contents in Vim (2018-05-07)
- Secure Scuttlebutt: some technical details (2017-12-30)
- What is pair programming like? (2017-07-04)
- Commit messages are worthless (2017-06-02)
- On JSONfeed (2017-05-20)
- clojure.spec for configuration validation (2017-05-12)
- Running ClojureScript tests with Karma (2017-02-08)
- Clojure test runner of my dreams (2017-01-26)
- Some questions (June 2016) (2016-06-28)
- On feeling guilty about not being good enough (2016-06-21)
- You'll want locally scoped CSS (2016-06-14)
- Why look beyond JavaScript? (2016-06-07)
- How I solved the Orbital Challenge (2016-05-17)
- What's the point of dependent types? (2016-05-03)
- Finding that lemma: Coq search commands (2016-04-19)
- How to divide by zero? (2016-04-12)
- Multitenant Flask-SQLAlchemy (2016-03-15)
- Elementary algebra in Coq: Trivial group (2016-03-01)
- Elementary algebra in Coq: Defining a group (2016-02-16)
- What's in a proof? (2016-02-09)
- Getting started with Coq (2016-02-02)
- Helsinki Haskell User Group (2016-01-26)
- The bare minimum to know about RELAX NG (2016-01-12)
- Code review requires trust (2015-12-16)
- Python is not good enough (2015-12-02)
- Spinning while sleeping (2015-11-18)
- Webpacking a project (2015-10-28)
- Commandments for code review (2015-09-07)
- Some questions I can't answer (2015-09-06)
- FRP and self-adjusting computation (2015-07-25)
- ROS: Good, bad and ugly (2015-06-15)
- In praise of Hiccup (2014-09-25)
- Math is programming (2014-08-05)
- When is static typing worthwhile? (2014-06-24)
- Compiling assembler files with avr-gcc without C runtime (2014-01-27)