strongly-typed-thoughts blog https://strongly-typed-thoughts.net Articles about software engineering and various opinions en-us Copyright 2026 Dimitri Sabadie hadronized@strongly-typed-thoughts.net (Dimitri Sabadie) hadronized@strongly-typed-thoughts.net (Dimitri Sabadie) 22 Jul 2026 13:06:40 +0200 22 Jul 2026 13:06:40 +0200 https://www.rssboard.org/rss-specification hadronized’s shell script 60 https://strongly-typed-thoughts.net/static/imgs/tus.png strongly-typed-thoughts blog https://strongly-typed-thoughts.net 3 4 5 6 7 8 9 The burden of hypersensitivity https://strongly-typed-thoughts.net/blog/burnout.html https://strongly-typed-thoughts.net/blog/burnout.html 21 Apr 2026 00:00:00 +0200 defer and errdefer in Rust https://strongly-typed-thoughts.net/blog/rust-defer.html https://strongly-typed-thoughts.net/blog/rust-defer.html 23 Sep 2025 00:00:00 +0200 My Corne keyboard https://strongly-typed-thoughts.net/blog/crkbd.html https://strongly-typed-thoughts.net/blog/crkbd.html 17 Jun 2025 00:00:00 +0200 Vim vs. Kakoune puzzles https://strongly-typed-thoughts.net/blog/vim-kak-helix-puzzle.html https://strongly-typed-thoughts.net/blog/vim-kak-helix-puzzle.html 21 May 2025 00:00:00 +0200 My second opinion on Zig https://strongly-typed-thoughts.net/blog/zig-2025.html https://strongly-typed-thoughts.net/blog/zig-2025.html 05 Feb 2025 00:00:00 +0100 Introducing flirt https://strongly-typed-thoughts.net/blog/flirt.html https://strongly-typed-thoughts.net/blog/flirt.html 04 Dec 2024 00:00:00 +0100 Zig, linear types and PwTP https://strongly-typed-thoughts.net/blog/zig-linear-pwtp.html https://strongly-typed-thoughts.net/blog/zig-linear-pwtp.html 17 Jul 2024 00:00:00 +0200 Moving away from PR/MR workflow https://strongly-typed-thoughts.net/blog/aerc-24.html https://strongly-typed-thoughts.net/blog/aerc-24.html 05 Jun 2024 00:00:00 +0200 Zellij is doing too much https://strongly-typed-thoughts.net/blog/zellij-2024.html https://strongly-typed-thoughts.net/blog/zellij-2024.html 25 Apr 2024 00:00:00 +0200 The Kakoune philosophy https://strongly-typed-thoughts.net/blog/kakoune-philosophy-2023.html https://strongly-typed-thoughts.net/blog/kakoune-philosophy-2023.html 23 Dec 2023 00:00:00 +0100 Reflections about note-taking https://strongly-typed-thoughts.net/blog/note-taking-2023.html https://strongly-typed-thoughts.net/blog/note-taking-2023.html 12 Oct 2023 00:00:00 +0200 kak-tree-sitter v0.4 and reflections https://strongly-typed-thoughts.net/blog/kak-tree-sitter-v0.4.0.html https://strongly-typed-thoughts.net/blog/kak-tree-sitter-v0.4.0.html 29 Aug 2023 00:00:00 +0200 Kakoune design analysis with kak-tree-sitter https://strongly-typed-thoughts.net/blog/kakoune-2023-v2.html https://strongly-typed-thoughts.net/blog/kakoune-2023-v2.html 09 Jun 2023 00:00:00 +0200 Even more hindsight on Vim, Helix and Kakoune https://strongly-typed-thoughts.net/blog/kakoune-2023.html https://strongly-typed-thoughts.net/blog/kakoune-2023.html 24 May 2023 00:00:00 +0200 My thoughts about editors in 2022 https://strongly-typed-thoughts.net/blog/helix-2023.html https://strongly-typed-thoughts.net/blog/helix-2023.html 01 Jan 2023 00:00:00 +0100 "luminance redesign; Part 1: compatible vertex types" https://strongly-typed-thoughts.net/blog/luminance-redesign-part-1.html https://strongly-typed-thoughts.net/blog/luminance-redesign-part-1.html 06 Sep 2022 00:00:00 +0200 A Rust shading language EDSL https://strongly-typed-thoughts.net/blog/shades-edsl.html https://strongly-typed-thoughts.net/blog/shades-edsl.html 30 Jul 2022 00:00:00 +0200 Useful Hop in 2022 https://strongly-typed-thoughts.net/blog/hop-2022.html https://strongly-typed-thoughts.net/blog/hop-2022.html 18 Jul 2022 00:00:00 +0200 Development Environments https://strongly-typed-thoughts.net/blog/development-environments.html https://strongly-typed-thoughts.net/blog/development-environments.html 26 Jun 2022 00:00:00 +0200 Configuration tweaking and spare-time https://strongly-typed-thoughts.net/blog/configuration_tweaking_spare_time.html https://strongly-typed-thoughts.net/blog/configuration_tweaking_spare_time.html 20 Jun 2022 00:00:00 +0200 Optimizing Advent of Code 2021 Day 16 part 1 and 2 https://strongly-typed-thoughts.net/blog/aoc-21.html https://strongly-typed-thoughts.net/blog/aoc-21.html 24 Dec 2021 00:00:00 +0100 Neovim plugins stability https://strongly-typed-thoughts.net/blog/neovim-plugin-stability.html https://strongly-typed-thoughts.net/blog/neovim-plugin-stability.html 03 Nov 2021 00:00:00 +0100 My thoughts about editors in (early) 2021 https://strongly-typed-thoughts.net/blog/neovim-2021.html https://strongly-typed-thoughts.net/blog/neovim-2021.html 22 Mar 2021 00:00:00 +0100 My thoughts about editors in 2020 https://strongly-typed-thoughts.net/blog/hop-trie-backtrack-filling.html https://strongly-typed-thoughts.net/blog/hop-trie-backtrack-filling.html 15 Mar 2021 00:00:00 +0100 My thoughts about editors in 2020 https://strongly-typed-thoughts.net/blog/on_editors.html https://strongly-typed-thoughts.net/blog/on_editors.html 07 Sep 2020 00:00:00 +0200 The compile-time deinterleaving interface of luminance-0.40 https://strongly-typed-thoughts.net/blog/typesafe-deinterleaving.html https://strongly-typed-thoughts.net/blog/typesafe-deinterleaving.html 19 Jul 2020 00:00:00 +0200 The new luminance is there https://strongly-typed-thoughts.net/blog/luminance-0.40.html https://strongly-typed-thoughts.net/blog/luminance-0.40.html 16 Jul 2020 00:00:00 +0200 An interesting subtle property of where clauses with super traits https://strongly-typed-thoughts.net/blog/undecidable-instances-rust.html https://strongly-typed-thoughts.net/blog/undecidable-instances-rust.html 02 May 2020 00:00:00 +0200 Let’s talk about C++ exceptions https://strongly-typed-thoughts.net/blog/on-cpp-exceptions.html https://strongly-typed-thoughts.net/blog/on-cpp-exceptions.html 25 Feb 2020 00:00:00 +0100 Let’s talk about C++ constructors https://strongly-typed-thoughts.net/blog/cpp-constructors.html https://strongly-typed-thoughts.net/blog/cpp-constructors.html 24 Feb 2020 00:00:00 +0100 Emulating RFC 1598, less or… more?! https://strongly-typed-thoughts.net/blog/hkt-1598.html https://strongly-typed-thoughts.net/blog/hkt-1598.html 25 Nov 2019 00:00:00 +0100 My Rust 2020 ideas https://strongly-typed-thoughts.net/blog/rust-2020.html https://strongly-typed-thoughts.net/blog/rust-2020.html 31 Oct 2019 00:00:00 +0100 "Announcement: luminance-0.31, luminance-derive and luminance-glutin" https://strongly-typed-thoughts.net/blog/luminance-0.31.html https://strongly-typed-thoughts.net/blog/luminance-0.31.html 29 Aug 2019 00:00:00 +0200 cargo and how crates.io doesn’t like cyclic dev-dependencies https://strongly-typed-thoughts.net/blog/cargo-cyclic-deps.html https://strongly-typed-thoughts.net/blog/cargo-cyclic-deps.html 23 Aug 2019 00:00:00 +0200 Animate code with awoo! https://strongly-typed-thoughts.net/blog/introducing-awoo.html https://strongly-typed-thoughts.net/blog/introducing-awoo.html 28 Jul 2019 00:00:00 +0200 On public API and private implementation https://strongly-typed-thoughts.net/blog/traits-and-apis.html https://strongly-typed-thoughts.net/blog/traits-and-apis.html 13 Jun 2019 00:00:00 +0200 Pre luminance-1.0.0 and random thoughts https://strongly-typed-thoughts.net/blog/pre-luminance-1.0.0.html https://strongly-typed-thoughts.net/blog/pre-luminance-1.0.0.html 26 Apr 2019 00:00:00 +0200 splines-1.0.0 and first release candidate https://strongly-typed-thoughts.net/blog/splines-1.0.0.html https://strongly-typed-thoughts.net/blog/splines-1.0.0.html 22 Apr 2019 00:00:00 +0200 "New cargo subcommand: sync-readme" https://strongly-typed-thoughts.net/blog/cargo_sync_readme.html https://strongly-typed-thoughts.net/blog/cargo_sync_readme.html 25 Feb 2019 00:00:00 +0100 Universal JSON support in warmy-0.11.1 https://strongly-typed-thoughts.net/blog/warmy-universal-json.html https://strongly-typed-thoughts.net/blog/warmy-universal-json.html 25 Jan 2019 00:00:00 +0100 Hindsight on Advent of Code 2018 https://strongly-typed-thoughts.net/blog/aoc-18.html https://strongly-typed-thoughts.net/blog/aoc-18.html 12 Jan 2019 00:00:00 +0100 A more faithful Display for proc-macro token types https://strongly-typed-thoughts.net/blog/proc-macro-faithful-display.html https://strongly-typed-thoughts.net/blog/proc-macro-faithful-display.html 01 Dec 2018 00:00:00 +0100 Rust traits and their (lack of) privacy https://strongly-typed-thoughts.net/blog/rfc-private-traits-items.html https://strongly-typed-thoughts.net/blog/rfc-private-traits-items.html 27 Nov 2018 00:00:00 +0100 GLSL visitor pattern https://strongly-typed-thoughts.net/blog/glsl-visitor.html https://strongly-typed-thoughts.net/blog/glsl-visitor.html 22 Nov 2018 00:00:00 +0100 Introducing pest into glsl and hindsight about nom vs. pest (part 1) https://strongly-typed-thoughts.net/blog/glsl-pest-part-1.html https://strongly-typed-thoughts.net/blog/glsl-pest-part-1.html 17 Nov 2018 00:00:00 +0100 Introducing pest into glsl and hindsight about nom vs. pest (part 2) https://strongly-typed-thoughts.net/blog/glsl-pest-part-2.html https://strongly-typed-thoughts.net/blog/glsl-pest-part-2.html 17 Nov 2018 00:00:00 +0100 On dealing with owning and borrowing in public interfaces https://strongly-typed-thoughts.net/blog/on-owning-and-borrowing-pub-interface.html https://strongly-typed-thoughts.net/blog/on-owning-and-borrowing-pub-interface.html 04 Nov 2018 00:00:00 +0100 Release of glsl-quasiquote-0.2 https://strongly-typed-thoughts.net/blog/glsl-quasiquote-0.2.html https://strongly-typed-thoughts.net/blog/glsl-quasiquote-0.2.html 22 Oct 2018 00:00:00 +0200 Rust and features discoverability https://strongly-typed-thoughts.net/blog/rust-doc-feature-problem.html https://strongly-typed-thoughts.net/blog/rust-doc-feature-problem.html 13 Oct 2018 00:00:00 +0200 GLSL quasiquoting in Rust! https://strongly-typed-thoughts.net/blog/glsl-quasiquote.html https://strongly-typed-thoughts.net/blog/glsl-quasiquote.html 05 Oct 2018 00:00:00 +0200 Trying to tackle the orphans problem https://strongly-typed-thoughts.net/blog/orphans_problem.html https://strongly-typed-thoughts.net/blog/orphans_problem.html 20 Sep 2018 00:00:00 +0200 Easy interpolation across splines https://strongly-typed-thoughts.net/blog/interpolation-rs.html https://strongly-typed-thoughts.net/blog/interpolation-rs.html 05 Aug 2018 00:00:00 +0200 On impl blocks, injection and surjection in Rust https://strongly-typed-thoughts.net/blog/on-rust-impl-block.html https://strongly-typed-thoughts.net/blog/on-rust-impl-block.html 22 Jul 2018 00:00:00 +0200 The Cheddar shading language https://strongly-typed-thoughts.net/blog/cheddar-0.1.html https://strongly-typed-thoughts.net/blog/cheddar-0.1.html 09 Jul 2018 00:00:00 +0200 "luminance-0.27: cleanup, easier to use and examples!" https://strongly-typed-thoughts.net/blog/luminance-0.27.html https://strongly-typed-thoughts.net/blog/luminance-0.27.html 28 Jun 2018 00:00:00 +0200 Moving out of a Drop struct in Rust? https://strongly-typed-thoughts.net/blog/rust-no-drop.html https://strongly-typed-thoughts.net/blog/rust-no-drop.html 22 May 2018 00:00:00 +0200 Rank-n functions in Rust? https://strongly-typed-thoughts.net/blog/rank_n_rust.html https://strongly-typed-thoughts.net/blog/rank_n_rust.html 19 May 2018 00:00:00 +0200 "Asynchronous warmy: a prequel" https://strongly-typed-thoughts.net/blog/async_warmy_prequel.html https://strongly-typed-thoughts.net/blog/async_warmy_prequel.html 08 May 2018 00:00:00 +0200 Main differences between luminance and other famous Rust crates https://strongly-typed-thoughts.net/blog/luminance_comparing.html https://strongly-typed-thoughts.net/blog/luminance_comparing.html 28 Mar 2018 00:00:00 +0200 Auto-derive uniform interfaces in luminance-0.25.5 https://strongly-typed-thoughts.net/blog/luminance_uniform_interface_macro.html https://strongly-typed-thoughts.net/blog/luminance_uniform_interface_macro.html 01 Mar 2018 00:00:00 +0100 warmy-0.6.0; bug fixes and rewrite https://strongly-typed-thoughts.net/blog/warmy_rewrite.html https://strongly-typed-thoughts.net/blog/warmy_rewrite.html 24 Feb 2018 00:00:00 +0100 Spectra gets Rust scripting! https://strongly-typed-thoughts.net/blog/spectra_plugins.html https://strongly-typed-thoughts.net/blog/spectra_plugins.html 19 Feb 2018 00:00:00 +0100 State of luminance https://strongly-typed-thoughts.net/blog/state_of_luminance.html https://strongly-typed-thoughts.net/blog/state_of_luminance.html 14 Sep 2017 00:00:00 +0200 Rust GLSL crate https://strongly-typed-thoughts.net/blog/glsl_crate.html https://strongly-typed-thoughts.net/blog/glsl_crate.html 30 Jul 2017 00:00:00 +0200 On programming workflows https://strongly-typed-thoughts.net/blog/workflow.html https://strongly-typed-thoughts.net/blog/workflow.html 23 Jul 2017 00:00:00 +0200 Postmortem #1 – Revision 2017 https://strongly-typed-thoughts.net/blog/what_went_revision_2017.html https://strongly-typed-thoughts.net/blog/what_went_revision_2017.html 20 Apr 2017 00:00:00 +0200 Lifetimes limits – self borrowing and dropchecker https://strongly-typed-thoughts.net/blog/lifetimes_and_self_borrowing.html https://strongly-typed-thoughts.net/blog/lifetimes_and_self_borrowing.html 07 Feb 2017 00:00:00 +0100 luminance designs https://strongly-typed-thoughts.net/blog/luminance_design.html https://strongly-typed-thoughts.net/blog/luminance_design.html 28 Aug 2016 00:00:00 +0200 luminance-0.6.0 sample https://strongly-typed-thoughts.net/blog/luminance_sample.html https://strongly-typed-thoughts.net/blog/luminance_sample.html 25 Jul 2016 00:00:00 +0200 Porting a Haskell graphics framework to Rust (luminance) https://strongly-typed-thoughts.net/blog/luminance_rust.html https://strongly-typed-thoughts.net/blog/luminance_rust.html 29 Apr 2016 00:00:00 +0200 Pure API vs. IO-bound API for graphics frameworks https://strongly-typed-thoughts.net/blog/pure_vs_io.html https://strongly-typed-thoughts.net/blog/pure_vs_io.html 18 Feb 2016 00:00:00 +0100 Existential quantification and GADT in luminance-0.8 https://strongly-typed-thoughts.net/blog/luminance-0.8.html https://strongly-typed-thoughts.net/blog/luminance-0.8.html 09 Dec 2015 00:00:00 +0100 OpenGL 3.2 support for luminance! https://strongly-typed-thoughts.net/blog/luminance-0.7.html https://strongly-typed-thoughts.net/blog/luminance-0.7.html 12 Nov 2015 00:00:00 +0100 "luminance, episode 0.6: UBO, SSBO, Stackage" https://strongly-typed-thoughts.net/blog/luminance-0.6.html https://strongly-typed-thoughts.net/blog/luminance-0.6.html 25 Oct 2015 00:00:00 +0200 luminance-0.5.1 and wavefront-0.4.0.1 https://strongly-typed-thoughts.net/blog/luminance-0.5.1.html https://strongly-typed-thoughts.net/blog/luminance-0.5.1.html 18 Oct 2015 00:00:00 +0200 Load geometries with wavefront-0.1! https://strongly-typed-thoughts.net/blog/wavefront-0.1.html https://strongly-typed-thoughts.net/blog/wavefront-0.1.html 11 Oct 2015 00:00:00 +0200 luminance-0.3 – Adding more texture kinds to the equation… https://strongly-typed-thoughts.net/blog/luminance-0.3.html https://strongly-typed-thoughts.net/blog/luminance-0.3.html 06 Oct 2015 00:00:00 +0200 luminance first tutorial https://strongly-typed-thoughts.net/blog/luminance_first_tutorial.html https://strongly-typed-thoughts.net/blog/luminance_first_tutorial.html 24 Sep 2015 00:00:00 +0200 luminance 0.1 released! https://strongly-typed-thoughts.net/blog/luminance_0.1.html https://strongly-typed-thoughts.net/blog/luminance_0.1.html 22 Sep 2015 00:00:00 +0200 Thoughts about software meta-design https://strongly-typed-thoughts.net/blog/software_meta_design.html https://strongly-typed-thoughts.net/blog/software_meta_design.html 13 Sep 2015 00:00:00 +0200 Contravariance and luminance to add safety to uniforms https://strongly-typed-thoughts.net/blog/luminance_uniform_contravariance.html https://strongly-typed-thoughts.net/blog/luminance_uniform_contravariance.html 23 Aug 2015 00:00:00 +0200 Never forget your git stashes again! https://strongly-typed-thoughts.net/blog/reverse_prompt_git_stash.html https://strongly-typed-thoughts.net/blog/reverse_prompt_git_stash.html 16 Aug 2015 00:00:00 +0200 Luminance – what was that alignment stuff already? https://strongly-typed-thoughts.net/blog/luminance_32bit.html https://strongly-typed-thoughts.net/blog/luminance_32bit.html 11 Aug 2015 00:00:00 +0200 Luminance – Vertex Arrays https://strongly-typed-thoughts.net/blog/luminance_vertex_arrays.html https://strongly-typed-thoughts.net/blog/luminance_vertex_arrays.html 10 Aug 2015 00:00:00 +0200 Luminance – framebuffers and textures https://strongly-typed-thoughts.net/blog/luminance_framebuffer_texture.html https://strongly-typed-thoughts.net/blog/luminance_framebuffer_texture.html 01 Aug 2015 00:00:00 +0200 Introducing Luminance, a safer OpenGL API https://strongly-typed-thoughts.net/blog/introducing_luminance.html https://strongly-typed-thoughts.net/blog/introducing_luminance.html 24 Jul 2015 00:00:00 +0200 Don’t use Default https://strongly-typed-thoughts.net/blog/default.html https://strongly-typed-thoughts.net/blog/default.html 16 Jul 2015 00:00:00 +0200 smoothie-0.3, Bézier curves and new user interface https://strongly-typed-thoughts.net/blog/smoothie_bezier.html https://strongly-typed-thoughts.net/blog/smoothie_bezier.html 30 Jun 2015 00:00:00 +0200 Mac OS X support in al-0.1.4 https://strongly-typed-thoughts.net/blog/osx_al.html https://strongly-typed-thoughts.net/blog/osx_al.html 29 Jun 2015 00:00:00 +0200 HID and MSI keyboards https://strongly-typed-thoughts.net/blog/hid_msi_keyboards.html https://strongly-typed-thoughts.net/blog/hid_msi_keyboards.html 20 Jun 2015 00:00:00 +0200 Asset management in a real time 3D engine in Haskell https://strongly-typed-thoughts.net/blog/resource_management.html https://strongly-typed-thoughts.net/blog/resource_management.html 16 Jun 2015 00:00:00 +0200 Losing our privacy https://strongly-typed-thoughts.net/blog/you_are_being_spied_on.html https://strongly-typed-thoughts.net/blog/you_are_being_spied_on.html 21 Apr 2015 00:00:00 +0200 Generalized swap https://strongly-typed-thoughts.net/blog/generalized_swap.html https://strongly-typed-thoughts.net/blog/generalized_swap.html 14 Apr 2015 00:00:00 +0200 Volumetric light shafts https://strongly-typed-thoughts.net/blog/volumetric_light_shafts.html https://strongly-typed-thoughts.net/blog/volumetric_light_shafts.html 08 Apr 2015 00:00:00 +0200 Getting into netwire https://strongly-typed-thoughts.net/blog/getting_into_netwire.html https://strongly-typed-thoughts.net/blog/getting_into_netwire.html 15 Mar 2015 00:00:00 +0100 al 0.1.1.2 was shipped https://strongly-typed-thoughts.net/blog/al_0.1.1.2.html https://strongly-typed-thoughts.net/blog/al_0.1.1.2.html 03 Mar 2015 00:00:00 +0100 al 0.1.0.2 – documentation and default paths https://strongly-typed-thoughts.net/blog/al_0.1.0.2.html https://strongly-typed-thoughts.net/blog/al_0.1.0.2.html 01 Mar 2015 00:00:00 +0100 al 0.1 released! https://strongly-typed-thoughts.net/blog/al_0.1.html https://strongly-typed-thoughts.net/blog/al_0.1.html 28 Feb 2015 00:00:00 +0100 Smoothie, a Haskell library for creating smooth curves https://strongly-typed-thoughts.net/blog/smoothie.html https://strongly-typed-thoughts.net/blog/smoothie.html 26 Feb 2015 00:00:00 +0100 Why has type aliasing almost killed me https://strongly-typed-thoughts.net/blog/type_aliasing.html https://strongly-typed-thoughts.net/blog/type_aliasing.html 07 Jan 2015 00:00:00 +0100 Abstracting shader — Environment https://strongly-typed-thoughts.net/blog/abstracting_over_shader_environment.html https://strongly-typed-thoughts.net/blog/abstracting_over_shader_environment.html 17 Nov 2014 00:00:00 +0100 Abstracting shader – Haskell ash library https://strongly-typed-thoughts.net/blog/abstracting_over_shader.html https://strongly-typed-thoughts.net/blog/abstracting_over_shader.html 14 Nov 2014 00:00:00 +0100