programming
2024
- Weeknote 18: Code commentsDec 15
- paketoi 0.1Apr 23
- Creating AWS Lambda zip files with PexJan 31
2023
2021
- clojure.xml and untrusted inputMar 13
- clojure.spec and untrusted inputMar 6
- Clojure project automation tool of my dreamsJan 14
2020
- Code review in contextDec 13
- Code review is for collaborationNov 22
- Why bother with Integrant?Nov 15
- What are DIDs?Nov 1
- Caching HTTP requests in ClojureOct 25
- Generating random tokens in ClojureOct 18
- clj-branca: lessons learnedOct 11
- Branca and yak shavingOct 4
- Solving the diamond problem with shadingSep 27
- Local memoized recursive functionsSep 20
- JWT and its alternativesAug 30
- Signing .jars is worthlessJul 26
- Who is going to use the programming language?May 31
- Automating spec-tools releasesMay 24
- Essential features of data specification librariesMay 10
- Schema, Spec, and MalliMay 3
- Put files where they are expectedApr 12
- Programming is writingFeb 25
- Hello again, PythonJan 19
2019
- Standard problems, standard solutionsDec 19
- Just automate syntax formattingDec 12
- Keeping code review fastDec 5
- The power of code reviewNov 28
- Coercing JSON with malliNov 20
- The joys of coverageOct 10
- Revisiting Clojure testingJan 29
2018
- How I use tap>Oct 18
- Fully automated releasesAug 11
- Why interceptors?Aug 3
- Edit clipboard contents in VimMay 7
2017
- Secure Scuttlebutt: some technical detailsDec 30
- What is pair programming like?Jul 4
- Commit messages are worthlessJun 2
- On JSONfeedMay 20
- clojure.spec for configuration validationMay 14
- Running ClojureScript tests with KarmaFeb 8
- Clojure test runner of my dreamsJan 26
2016
- Some questions (June 2016)Jun 28
- On feeling guilty about not being good enoughJun 21
- You'll want locally scoped CSSJun 14
- Why look beyond JavaScript?Jun 7
- How I solved the Orbital ChallengeMay 17
- What's the point of dependent types?May 3
- Finding that lemma: Coq search commandsApr 19
- How to divide by zero?Apr 12
- Multitenant Flask-SQLAlchemyMar 15
- Elementary algebra in Coq: Trivial groupMar 1
- Elementary algebra in Coq: Defining a groupFeb 16
- What's in a proof?Feb 9
- Getting started with CoqFeb 2
- Helsinki Haskell User GroupJan 26
- The bare minimum to know about RELAX NGJan 12
2015
- Code review requires trustDec 16
- Python is not good enoughDec 2
- Spinning while sleepingNov 18
- Webpacking a projectOct 28
- Commandments for code reviewSep 7
- Some questions I can't answerSep 6
- FRP and self-adjusting computationJul 25
- ROS: Good, bad and uglyJun 15