Archives for 2017

2017.12.31: Summary of reading: October - December 2017
2017.12.07: Concurrent Servers: Part 5 - Redis case study
2017.12.05: Book review: "Programming in Haskell" by Graham Hutton (2nd ed.)
2017.11.27: Deciphering Haskell's applicative and monadic parsers
2017.11.09: Concurrent Servers: Part 4 - libuv
2017.10.06: Concurrent Servers: Part 3 - Event-driven
2017.10.04: Concurrent Servers: Part 2 - Threads
2017.10.02: Concurrent Servers: Part 1 - Introduction
2017.09.30: Summary of reading: July - September 2017
2017.08.16: Right and left folds, primitive recursion patterns in Python and Haskell
2017.08.04: Clojure - the perfect language to expand your brain?
2017.07.20: Book review: "Working Effectively with Legacy Code" by Michael C. Feathers
2017.07.11: Interacting with a long-running child process in Python
2017.07.01: Summary of reading: April - June 2017
2017.06.23: Clojure concurrency and blocking with core.async
2017.06.07: Reducers, transducers and core.async in Clojure
2017.05.23: Notes on debugging Clojure code
2017.05.10: Adventures in JIT compilation: Part 4 - in Python
2017.05.08: Book review: "Essentials of Programming Languages" by D. Friedman and M. Wand
2017.05.01: Adventures in JIT compilation: Part 3 - LLVM
2017.04.11: On Recursion, Continuations and Trampolines
2017.04.01: Summary of reading: January - March 2017
2017.03.22: Adventures in JIT compilation: Part 2 - an x64 JIT
2017.03.20: Adventures in JIT compilation: Part 1 - an interpreter
2017.02.24: reStructuredText vs. Markdown for technical documentation
2017.01.13: Benefits of dependencies in software projects as a function of effort
2017.01.11: A brief tutorial on parsing reStructuredText (reST)
2017.01.05: Some notes on Luz - an assembler, linker and CPU simulator