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.
Blog posts by Jean Niklas L'orange (hyPiRion)
"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.
This blogpost explores what the simplest collection type is, and whether it is useful or not.
This blogpost experiment with recursive transducers, and how one could use them for composable nanopass parsers.
Punchcards for a collection of projects may give you some indication of work culture.
The last post in the persistent vector series, explaining why 32 is chosen as branching factor and what "effectively constant time" is.
This blog post dives into new discoveries in Swearjure, which makes it possible to prove that it is Turing complete.
This is a very detailed blogpost related to persistent/transient vector performance, with benchmarks and plots.
Ever wondered how Clojure's transients work? Or perhaps you don't know how to use transients properly? Both things will be explained in this blog post.
A master's thesis properly describing the persistent vector, the RRB-tree as well as optimisations on the RRB-tree.
In this blog post, we will have a look at how we reduce constant factors in the persistent vector through a tail implementation.
An example of a Leiningen project using several java/clojure compilation steps.
Sometimes, adding mallocs to a program increases performance.
This is part 2 of the blog series which explains Clojure's Persistent Vectors.
Ever wondered how Clojure's persistent vector actually works? This is part 1 of a blog series which aims to explain them.
Finding bugs in RFCs, and why you should read them in HTML form.
A working Clojure program with a minimal amount of alphanumerics.
Cancelling blocking reads in Java is anything but sane.
Can you learn anything valuable by removing programming constructs?
In which an unfit language is surprisingly fit.
Is Clojure turing complete without alphanumeric characters?