On their own pages, outside the blog: the Code of Conduct and the AI Policy.
📜 Highlighted articles #
Where hexagonal architecture shines, and what to reach for instead - Ports and adapters pays where the domain is the complicated part. Here is how it looks in Kotlin with Spring, in Guile Scheme and in Haskell, and when MVC, KISS and CQRS are the better answer.
Parsing Expression Grammar in Lisp: Converting Org to HTML with (ice-9 peg) in Guile - Converting Org to HTML with (ice-9 peg) in Guile: OrgWebAlchemy
Quest for the eternal Dock - lambdock - How embedding a Lisp engine created an infinitely extensible program for your daily usage and workflow improvement, Guile Scheme + C + GTK4 built the dock Wayland was waiting for, after many failed prototypes and effort.
Emacs Eglot for Scala and Kotlin (JVM) - Enjoy Emacs and its built-in language server (LSP) superpowers, for JVM languages. Let's walk through basic language setups, specialized workspace configuration handling, and dive deep into some advanced JSON-RPC and advice-based workarounds for Scala (Metals) and Kotlin that make development truly seamless from Emacs and liberate you from IntelliJ ☺️.
Maak: The power of Lisp that powers your trusty command runner and the enlightenments - The infinitely extensible command runner, control plane and project automator à la Make (Guile Scheme - Lisp)
Hacking Freedom: Compiling GNU Emacs from Source - By compiling GNU Emacs directly from the upstream Savannah repositories, you unlock the absolute bleeding edge of the extensible, self-documenting operating system disguised as a text editor.
jointhefreeworld - A Style Guide for Documentation - This style guide will help you write better documentation, manuals, tutorials and READMEs
Scriba v0.3.3 - Structured Logging in Lisp - Scriba is a structured logging library for GNU Guile that prioritizes flexibility and observability. It provides modular log routing, formatting, and filtering, allowing developers to generate human-readable console logs during development and machine-readable JSON logs for production environments.
Manifesto for Agile Software Development - We are uncovering better ways of developing software by doing it and helping others do it. This document should help refresh you on what Agile truly is about.
Why I Still Reach for Scheme and Lisp Instead of Haskell - Scheme (and Lisp) lets you express complex systems and problem domains in simpler terms than any other language can. For all its brilliance, Haskell resists most of the attempts people make to just hack and write useful code quickly.
Functional repository pattern in Scheme? Decoupling and abstracting the data layer in Lisp - Decoupling and abstracting the data layer in Lisp. Implementing the Repository Pattern with Hygienic Macros in Scheme.
Don't Reward the Best Firefighter - For every loud firefighter, there's an invisible fire preventer. This is the engineer who spends a month refactoring a messy legacy service that no one else wants to touch.
Most Technical Problems are People Problems - You cannot clean up technical debt without first addressing the people, process, and politics that created it.
Simple Rust Guix Emacs development environment - A minimal, declarative setup for productive Rust hacking with Emacs and Guix.
Embracing the eternal Sexp wisdom with the GNU - I have recently reached new heights in declarative configurations of operating systems, programs and my workflow ⚙️ and development.
Hexagon of Doom - The Cost of Over-Abstraction and Indirection - Let me explain why I think Ports&Adapter / Hexagonal architecture introduces net harm to software projects.
The FREE stack - My Tech Radar - The FREE stack as a tech radar: what I adopt, trial, assess and deprecate across languages, frameworks, data, tools, platforms and practice.
Mètsàtron's astral analysis of Joe's being - My brother from another mother, Mètsàtron Sucurí Jibōia did some astral and digital readings about me (Joe).
Markdown Cheat-sheet for Beginners - Markdown is a simple, lightweight markup language used for formatting plain text. It's designed to be easy to read and write, and it can be converted into HTML, PDF, LaTEX and many other formats.
Scheme and Lisps are Great for production - "Why bother with Scheme/Lisp?" is a classic question, with countless valid answers. While I can't list them all exhaustively, I will try to explain my motivation.
The Best Programmers I Know - I have met a lot of developers in my life. Lately, I asked myself: "What does it take to be one of the best? What do they all have in common?"
Why I Program in Lisp? - Why choose for this paren-heavy form of lambda calculus? Lisp is a language that was designed to be used as a tool for thinking about problems, and that is the fun part of programming.
Moving from Sway to Hyprland - Archived SwayFX config - After using Sway as my daily Wayland compositor for quite some time, I recently made the switch to Hyprland. The decision wasn't made lightly, as Sway, especially with the SwayFX fork, served me well.
Building Conky with Wayland Support on GNU Guix - Since I use GNU Guix and run a Wayland-based environment (Sway), I wanted to get Conky building with Wayland support.
Legendary Lisp Laptop - a modern Lisp machine with Framework laptop - A modern Lisp machine built on a Framework laptop.
Scheme & Lisp Style Guide - Riastradh's Lisp Style Rules for some really clean Scheme, Lisp and Guile code.
Podman root-less setup on GNU Guix - By leveraging Podman, a daemonless container engine, we can achieve rootless containerization, enhancing security and flexibility with Guix.
YAML Schemas in Emacs with Eglot - Are you editing YAML files and would like to use JSON schemas for YAML in Emacs?
Emacs registers - a god-send for your day job - Ever had to work on very long files in projects you are not familiar with, and felt lost without an anchor point? Enter Emacs and its register system, which lets you "bookmark" locations in a file (buffer) and jump back to them, and much, much more!
Brief aan mijzelf - Jij en ik weten dat levend zijn pieken en dalen betekent.
Free à la Carte - Modeling effects with free monads in a simple and composable way with Haskell. Checkout my custom library and how to use it.
Black Box Testing in modern Software - Testing software at a high level means freedom of implementation and refactoring, while maintaining guarantees of correctness.
Open VPN 3 on NixOS with Web-based SAML - Learn how to install and configure the OpenVPN 3 client on NixOS, in a reproducible way.
Create a Windows 11 bootable USB from GNU Linux - procedure for creating a bootable USB flash drive with Windows 11. The same process should also work with any HDD/SSD connected to your system.
Open VPN 3 on Void Linux - Learn how to build OpenVPN 3 from source code and install it on Void Linux, for SAML VPN auth.
Emacs for absolute beginners - In this article, I'm going to give you exactly what you need to get started using Emacs and understand the basic concepts and key bindings of the editor.
GNU Guix VM aarch64 - The Guix ISO installer didn't work for me on aarch64. Making a qcow2 VM image or doing a manual install did work.
Why SQL SELECT * is often a bad idea - Doing a SELECT * may seem like a time-saver, but it's actually setting you up for problems in the long run, especially when the database schema changes.
🔗 Elsewhere #
Kept by hand, because these are not articles of this blog.
How Guix enables multi-dimensional rollbacks and more reproducibility!