-
C++ Has Block Expressions You Just Need to Write Them in a Funny Way
2020-07-05
Rust is an expression language, so everything is an expression, you just sometimes ignore the result so it looks like a statement. This is a feature I really miss in c++ because it allows for some concise patterns. Fortunately there is a fairly readable approximation in c++ 17 via lambdas. …
-
The Spineless Tagless G Machine
2020-02-03
Haskell’s evaluation model is interesting because it efficiently maps lazy evaluation of a functional language onto modern hardware with registers and memory pointers. …
-
Replacing types in Postgraphile
2020-01-05
Postgraphile comes with many good defaults out of the box, but occassionally it’s necessary to replace a default type. …
-
Kernel Self Protection
2017-06-04
grsecrurity have stopped releasing their unstable kernel patches, leaving a bit of a void if you want to add those layers of protection to your kernel. …
-
Nix hackathon March 2017
2017-03-17
Earlier this month Smarkets was being awesome and hosted our 2nd Nix hackathon. We had a fantasic crowd of smart people, and the Smarkets office was downright amazing. We had standing desks with extra monitors. The coffee was so thick that it was still strong in homeopathic doses. We even had smarties on tap. …
-
systemd dynamic users
2017-02-16
systemd 232 introduced a really cool feature that allows running as a dynamically allocated user with DynamicUser=yes. …
-
Emulating closed type classes with closed type families
2017-01-18
Haskell actually implements two languages: The value-level language, and a more limited type-level language that is evaluated at compile time. …
-
seccomp filters for NGINX
2017-01-01
Linux’ BPF based seccomp sandbox is a reasonably powerful way to stop processes from running arbitrary syscalls when owned (or by accident). …
-
Writing HTML apps in Haskell - Part 2
2016-12-01
In part 1 I described the basic two-process setup for accessing the DOM from within Haskell. …
-
Writing HTML apps in Haskell - Part 1
2016-11-26
Recently I wanted to to build a user interface in Haskell that runs on my Gnome desktop, not in the cloud (the audience gasps). …