Archives for 2018

2018.12.24: Beware of copying mutexes in Go
2018.12.05: Type erasure and reification
2018.11.14: Type inference
2018.11.12: Unification
2018.10.17: Covariance and contravariance in subtyping
2018.10.04: Go hits the concurrency nail right on the head
2018.10.01: Partial and Total Orders
2018.09.30: Summary of reading: July - September 2018
2018.09.13: Go and Algebraic Data Types
2018.09.04: Measuring context switching and memory overheads for Linux threads
2018.08.08: On the uses and misuses of panics in Go
2018.08.01: Launching Linux threads and processes with clone
2018.07.13: Basics of Futexes
2018.07.05: Elegant Python code for a Markov chain text generator
2018.06.30: Summary of reading: April - June 2018
2018.06.28: Slow and fast methods for generating random integers in Python
2018.06.07: Minimal character-based LSTM implementation
2018.05.25: Understanding how to implement a character-based RNN language model
2018.05.22: Backpropagation through a fully-connected layer
2018.05.08: Concurrent Servers: Part 6 - Callbacks, Promises and async/await
2018.04.04: Depthwise separable convolutions for machine learning
2018.03.31: Summary of reading: January - March 2018
2018.03.26: The Confusion Matrix in statistical tests
2018.03.13: Conditional probability and Bayes' theorem
2018.03.02: Command-line autocomplete for Go documentation
2018.02.20: The Expression Problem in Go
2018.02.13: Turning off blog comments
2018.02.12: Computing remainders by doubling
2018.02.05: More thoughts on the Expression Problem in Haskell
2018.01.30: Return type polymorphism in Haskell
2018.01.22: Haskell functions as functors, applicatives and monads
2018.01.09: Affine transformations