| 4. 1. 2024 | Quick binary diffs with XDelta – theifworks
|
| 1. 4. 2022 | Announcing Canopy v0.4 – theifworks
|
| 7. 6. 2021 | Named arguments in JavaScript – theifworks
|
| 31. 5. 2021 | Type theory for named arguments – theifworks
|
| 26. 10. 2020 | Reading and writing, part 5: concurrency and language design – theifworks
|
| 19. 10. 2020 | Reading and writing, part 4: user workflows – theifworks
|
| 12. 10. 2020 | Reading and writing, part 3: web applications – theifworks
|
| 5. 10. 2020 | Reading and writing, part 2: files and databases – theifworks
|
| 28. 9. 2020 | Reading and writing, part 1: locations and locks – theifworks
|
| 31. 7. 2020 | Missing TLS certificate verification in Faye – theifworks
|
| 2. 6. 2020 | ReDoS vulnerability in websocket-extensions – theifworks
|
| 12. 5. 2020 | Controlling mutation with types – theifworks
|
| 28. 4. 2020 | Authentication and extension bypass in Faye – theifworks
|
| 7. 2. 2020 | Why recursion matters, part 3: meaningful programs – theifworks
|
| 4. 2. 2020 | Why recursion matters, part 2: lazy evaluation – theifworks
|
| 2. 2. 2020 | Why recursion matters, part 1: proof by induction – theifworks
|
| 2. 2. 2020 | Why recursion matters, part 1: proof by induction – theifworks
|
| 6. 1. 2020 | A little polymorphism, part 2: channels, combinators and const generics – theifworks
|
| 6. 1. 2020 | A little polymorphism, part 2: channels, combinators and const generics – theifworks
|
| 3. 1. 2020 | A little polymorphism, part 1: vectors, closures and coherence – theifworks
|
| 3. 1. 2020 | A little polymorphism, part 1: vectors, closures and coherence – theifworks
|
| 22. 11. 2019 | Hilbert's rusty hotel – theifworks
|
| 22. 4. 2019 | Generic returns in Rust – theifworks
|
| 8. 4. 2019 | Announcing *Building Git* – theifworks
|
| 31. 12. 2017 | How I accidentally learned Prolog – theifworks
|
| 28. 9. 2017 | Implementing patience diff – theifworks
|
| 19. 9. 2017 | The patience diff algorithm – theifworks |