Use Python for Scripting!
"Use the right tool" is nice in theory, but not when the tool acts a bit differently from machine to machine, and isn't always installed.
"Use the right tool" is nice in theory, but not when the tool acts a bit differently from machine to machine, and isn't always installed.
I feel that code generators for communication protocols are a chore to use. Let's see why that's the case, and how we can improve them.
I could ensure my OCaml builds are 100% reproducible, but what's the cost?
Let's see why OCaml isn't user friendly for web services at the moment, and how we can fix that.
There's no official support for system-versioned tables in Postgres yet, and the temporal extensions aren't supported on Azure/AWS/GCP. Let's implement it ourselves with 3 triggers and an index.
Phantom types won't revolutionise your Go debugging experience, but it can make it slightly better! Here's one way they can help out.
With phantom types, we can make a static access control system in Go that will detect errors and act as easy-to-read documentation. Here's how you do it.
Go has phantom types, and we can use them to attach singletons to contexts. Here is a short post on how to do just that.
Like Go, GraphQL isn't at the forefront of type theory. Let's look at what I miss and whether it would be sensible to add them to the specification.
A blog usually has its style and shape, and your visitors expects that to continue on. But what do you do if you both want to keep that expectation while also making posts in a completely diferent style?
I've wanted to get my Moonlander keyboard's duck key to print the duck emoji for a long time. Here's how I did it!
Your static site is probably small enough already, but here are some tricks to make the fonts and images even smaller. I cover the things I do with fonts, as well as some utility scripts I use with Jekyll to automate the entire "convert to all the different formats"-problem new formats cause (as one needs to deal with backwards compatibility).
When generics comes out, here's a possible way to use it for typed HTTP servers in Go. As a bonus, there's a short "rant" about how the implementation causes functional programming to be hard.
A thought experiment on how one could add row polymorphism to Go.
Whoever assumed asymptotic complexity to be easy has not considered to test it in the real world.
What do we do when we can't compare dependency versions?
If you want to make a package manager, think before jumping straight to lock files.
By realising that transducers are conduits in disguise, we can create a transducer interface that is much easier to use than the current one.
Let's implement Clojure's Transducers in Haskell!
This post describes what the new project Inlein bring to the table for Clojurians.