Archives for 2018

24.12.2018: Beware of copying mutexes in Go
05.12.2018: Type erasure and reification
14.11.2018: Type inference
12.11.2018: Unification
17.10.2018: Covariance and contravariance in subtyping
04.10.2018: Go hits the concurrency nail right on the head
01.10.2018: Partial and Total Orders
30.09.2018: Summary of reading: July - September 2018
13.09.2018: Go and Algebraic Data Types
04.09.2018: Measuring context switching and memory overheads for Linux threads
08.08.2018: On the uses and misuses of panics in Go
01.08.2018: Launching Linux threads and processes with clone
13.07.2018: Basics of Futexes
05.07.2018: Elegant Python code for a Markov chain text generator
30.06.2018: Summary of reading: April - June 2018
28.06.2018: Slow and fast methods for generating random integers in Python
07.06.2018: Minimal character-based LSTM implementation
25.05.2018: Understanding how to implement a character-based RNN language model
22.05.2018: Backpropagation through a fully-connected layer
08.05.2018: Concurrent Servers: Part 6 - Callbacks, Promises and async/await
04.04.2018: Depthwise separable convolutions for machine learning
31.03.2018: Summary of reading: January - March 2018
26.03.2018: The Confusion Matrix in statistical tests
13.03.2018: Conditional probability and Bayes' theorem
02.03.2018: Command-line autocomplete for Go documentation
20.02.2018: The Expression Problem in Go
13.02.2018: Turning off blog comments
12.02.2018: Computing remainders by doubling
05.02.2018: More thoughts on the Expression Problem in Haskell
30.01.2018: Return type polymorphism in Haskell
22.01.2018: Haskell functions as functors, applicatives and monads
09.01.2018: Affine transformations