Blog articles

This is my blog. I talk about functional programming, graphics, demoscene, optimization and many other topics!

It is intentional that no comment can be written by readers to prevent flooding, scams and spamming.

Feel free to subscribe to the feed to be notified when a new article is released!


Introducing flirt on Wed Dec 4 17:08:00 2024 UTC
Zig, linear types and PwTP on Wed Jul 17 18:35:00 2024 UTC
Moving away from PR/MR workflow on Wed Jun 5 10:12:00 2024 UTC
Zellij is doing too much on Thu Apr 25 10:43:00 2024 UTC
The Kakoune philosophy on Sat Dec 23 14:15:00 2023 UTC
Reflections about note-taking on Thu Oct 12 20:35:00 2023 UTC
kak-tree-sitter v0.4 and reflections on Tue Aug 29 10:35:00 2023 UTC
Kakoune design analysis with kak-tree-sitter on Fri Jun 9 19:20:00 2023 UTC
Even more hindsight on Vim, Helix and Kakoune on Wed May 24 11:50:00 2023 UTC
My thoughts about editors in 2022 on Sun Jan 1 00:00:00 2023 UTC
luminance redesign; Part 1: compatible vertex types on Tue Sep 6 11:30:00 2022 UTC
A Rust shading language EDSL on Sat Jul 30 13:30:00 2022 UTC
Useful Hop in 2022 on Mon Jul 18 14:26:00 2022 UTC
Development Environments on Sun Jun 26 15:01:00 2022 UTC
Optimizing Advent of Code 2021 Day 16 part 1 & 2 on Fri Dec 24 14:54:00 2021 UTC
Neovim plugins stability on Wed Nov 3 00:24:00 2021 UTC
My thoughts about editors in (early) 2021 on Mon Mar 22 21:00:00 2021 UTC
Optimizing the permutation algorithm of hop.nvim on Mon Mar 15 00:00:00 2021 UTC
My thoughts about editors in 2020 on Mon Sep 7 00:03:00 2020 UTC
The compile-time deinterleaving interface of luminance-0.40 on Sun Jul 19 19:39:00 2020 UTC
The new luminance is there on Thu Jul 16 18:49:00 2020 UTC
An interesting subtle property of where clauses with super traits on Sat May 2 23:50:00 2020 UTC
Let’s talk about C++ exceptions on Sat Feb 29 20:20:00 2020 UTC
Let’s talk about C++ constructors on Mon Feb 24 00:35:00 2020 UTC
Emulating RFC 1598, less or… more?! on Mon Nov 25 15:50:00 2019 UTC
My Rust 2020 ideas on Thu Oct 31 15:15:00 2019 UTC
Announcement: luminance-0.31, luminance-derive and luminance-glutin on Thu Aug 29 13:12:00 2019 UTC
cargo and how crates.io doesn’t like cyclic dev-dependencies on Fri Aug 23 12:00:00 2019 UTC
Animate code with awoo! on Sun Jul 28 11:00:00 2019 UTC
On public API and private implementation on Thu Jun 13 17:05:00 2019 UTC
Pre luminance-1.0.0 and random thoughts on Fri Apr 26 22:30:00 2019 UTC
splines-1.0.0 and first release candidate on Mon Apr 22 01:10:00 2019 UTC
New cargo subcommand: sync-readme on Mon Feb 25 18:50:00 2019 UTC
Universal JSON support in warmy-0.11.1 on Fri Jan 25 00:50:00 2019 UTC
Hindsight on Advent of Code 2018 on Sat Jan 12 00:20:00 2019 UTC
A more faithful Display for proc-macro token types on Sat Dec 1 19:51:00 2018 UTC
Rust traits and their (lack of) privacy on Tue Nov 27 04:00:00 2018 UTC
glsl-0.13 and its visitor pattern on Thu Nov 22 04:20:00 2018 UTC
Introducing pest into glsl and hindsight about nom vs. pest (part 2) on Sat Nov 17 20:40:00 2018 UTC
Introducing pest into glsl and hindsight about nom vs. pest (part 1) on Sat Nov 17 05:00:00 2018 UTC
On dealing with owning and borrowing in public interfaces on Sun Nov 4 01:30:00 2018 UTC
Release of glsl-quasiquote-0.2 on Mon Oct 22 02:00:00 2018 UTC
Rust and features discoverability on Sat Oct 13 23:37:00 2018 UTC
GLSL quasiquoting in Rust! on Fri Oct 5 19:00:00 2018 UTC
Trying to tackle the orphans problem on Thu Sep 20 12:30:00 2018 UTC
Easy interpolation across splines on Sun Aug 5 19:00:00 2018 UTC
On impl blocks, injection and surjection in Rust on Sun Jul 22 22:05:00 2018 UTC
The Cheddar shading language on Mon Jul 9 01:00:00 2018 UTC
luminance-0.27: cleanup, easier to use and examples! on Thu Jun 28 14:00:00 2018 UTC
Moving out of a Drop struct in Rust? on Tue May 22 22:22:00 2018 UTC
Rank-n functions in Rust? on Sat May 19 12:48:00 2018 UTC
Asynchronous warmy: a prequel on Tue May 8 19:30:00 2018 UTC
Main differences between luminance and other famous Rust crates on Wed Mar 28 18:40:00 2018 UTC
Auto-derive uniform interfaces in luminance-0.25.5 on Thu Mar 1 02:18:00 2018 UTC
warmy-0.6.0; bug fixes and rewrite on Sat Feb 24 19:46:00 2018 UTC
Spectra gets Rust scripting! on Mon Feb 19 02:57:00 2018 UTC
State of luminance on Thu Sep 14 00:00:00 2017 UTC
Rust GLSL crate on Sun Jul 30 00:00:00 2017 UTC
On programming workflows on Sun Jul 23 00:00:00 2017 UTC
Postmortem #1 – Revision 2017 on Thu Apr 20 00:00:00 2017 UTC
Lifetimes limits – self borrowing and dropchecker on Tue Feb 7 00:00:00 2017 UTC
luminance designs on Sun Aug 28 00:00:00 2016 UTC
luminance-0.6.0 sample on Mon Jul 25 00:00:00 2016 UTC
Porting a Haskell graphics framework to Rust (luminance) on Fri Apr 29 00:00:00 2016 UTC
Pure API vs. IO-bound API for graphics frameworks on Thu Feb 18 00:00:00 2016 UTC
Existential quantification and GADT in luminance-0.8 on Wed Dec 9 00:00:00 2015 UTC
OpenGL 3.2 support for luminance! on Fri Nov 13 00:00:00 2015 UTC
luminance, episode 0.6: UBO, SSBO, Stackage on Sun Oct 25 00:00:00 2015 UTC
luminance-0.5.1 and wavefront-0.4.0.1 on Sun Oct 18 00:00:00 2015 UTC
Load geometries with wavefront-0.1! on Sun Oct 11 00:00:00 2015 UTC
luminance-0.3 – Adding more texture kinds to the equation… on Tue Oct 6 00:00:00 2015 UTC
luminance first tutorial on Thu Sep 24 00:00:00 2015 UTC
luminance 0.1 released! on Tue Sep 22 00:00:00 2015 UTC
Thoughts about software meta-design on Sun Sep 13 00:00:00 2015 UTC
Contravariance and luminance to add safety to uniforms on Sun Aug 23 00:00:00 2015 UTC
Never forget your git stashes again! on Sun Aug 16 00:00:00 2015 UTC
Luminance – what was that alignment stuff already? on Tue Aug 11 00:00:00 2015 UTC
Luminance – Vertex Arrays on Mon Aug 10 00:00:00 2015 UTC
Luminance – framebuffers and textures on Sat Aug 1 00:00:00 2015 UTC
Introducing Luminance, a safer OpenGL API on Fri Jul 24 00:00:00 2015 UTC
Don’t use Default on Thu Jul 16 00:00:00 2015 UTC
smoothie-0.3, Bézier curves and new user interface on Tue Jun 30 00:00:00 2015 UTC
Mac OS X support in al-0.1.4 on Mon Jun 29 00:00:00 2015 UTC
HID and MSI keyboards on Sat Jun 20 00:00:00 2015 UTC
Asset management in a real time 3D engine in Haskell on Tue Jun 16 00:00:00 2015 UTC
Losing our privacy on Tue Apr 21 00:00:00 2015 UTC
Generalized swap on Tue Apr 14 00:00:00 2015 UTC
Volumetric light shafts on Wed Apr 8 00:00:00 2015 UTC
Getting into netwire on Sun Mar 15 00:00:00 2015 UTC
al 0.1.1.2 was shipped on Tue Mar 3 00:00:00 2015 UTC
al 0.1.0.2 – documentation and default paths on Sun Mar 1 00:00:00 2015 UTC
al 0.1 released! on Sat Feb 28 00:00:00 2015 UTC
Smoothie, a Haskell library for creating smooth curves on Thu Feb 26 00:00:00 2015 UTC
Why has type aliasing almost killed me on Wed Jan 7 00:00:00 2015 UTC
Abstracting shader – Environment on Mon Nov 17 00:00:00 2014 UTC
Abstracting shader – Haskell ash library on Fri Nov 14 00:00:00 2014 UTC