- 2024-12-17 Testing my RISC-V implementation with RISCOF test suite
- 2024-12-11 Adding a debugger and ELF loader to my RISC-V emulator
- 2024-12-07 Writing a simple RISC-V emulator
- 2024-11-23 Moving large files via clipboard on Wayland
- 2024-11-03 Tail calls in Valeri
- 2024-11-03 Correctly spawning apps from scripts in sway/i3
- 2024-10-28 Connecting to my home PC from the mobile phone
- 2024-10-15 Reraising continuations
- 2024-10-12 Valeri notebook programming with Org Babel
- 2024-10-06 Disassembling functions
- 2024-10-05 Capturing and serializing continuations
- 2024-09-30 SyncThing now has encrypted servers
- 2024-09-28 Purity, delimited continuations and I/O
- 2024-09-15 Backtraces in Valeri
- 2024-09-13 Immutable tree-structured stack
- 2024-09-11 Reporting errors from the compilation phase
- 2024-09-09 Let's try Forgejo code forge
- 2024-09-08 Error reporting and syntax objects
- 2024-09-01 Valeri REPL became actually useful (and keeps state)
- 2024-08-26 Valeri now has a REPL
- 2024-08-23 First real program compiled with Valeri
- 2024-08-11 First working code generation for simple arithmetic
- 2024-08-03 New spin on a C++ garbage collector
- 2024-07-28 Why I'm going for immutability
- 2024-07-04 NuPhy Air: best keyboard so far
- 2024-06-24 Element X is a new Matrix app for mobile
- 2024-06-10 Emacs can start up almost as fast as Vim
- 2024-04-01 I've ported my language from C to C++ (a story of error handling)
- 2024-01-29 Tail-recursive even/odd
- 2024-01-28 Implementing globals
- 2024-01-21 Better assembler and stack-based register file
- 2024-01-07 Text to binary and back
- 2023-12-31 VM progress update: dicts and parsing
- 2023-11-19 Why use red-black trees instead of hash tables?
- 2023-10-29 Writing programming languages is fun
- 2023-10-26 I now host my own videos (with PeerTube)
- 2023-10-22 Virtual Machine debugging and GDB pretty printers
- 2023-10-16 VM progress update: hashes and function calls
- 2023-10-07 Statically linked Python interpreter
- 2023-09-28 GCC static analyzer for C programs
- 2023-09-27 Many of my projects are dirty hacks
- 2023-09-25 Programming languages are operating systems
- 2023-09-24 VM progress update: data segment and constants
- 2023-09-17 VM progress update: flexible arena, ASAN and gcov
- 2023-09-03 Using YubiKey for personal security
- 2023-09-02 VM progress update: strings, slices and function bindings
- 2023-08-28 Calling convention dilemma
- 2023-08-27 Kagi Search: a decent Google alternative
- 2023-08-21 A fuzzy launcher I use for the last 2 years
- 2023-08-20 VM progress update: arrays and function calls
- 2023-08-17 Enjoying internet with prefers-reduced-motion
- 2023-08-15 VM progress update: simple garbage collection
- 2023-08-15 Auto-mount USB drives in NixOS
- 2023-08-13 Playing SomaFM internet radio from the terminal
- 2023-08-05 VM progress update: frozen data types
- 2023-07-30 How and why I use NixOS
- 2023-07-28 Simple VM for dynamic languages
- 2023-06-28 Daily-Driving OnePlus 6 with PostmarketOS
- 2023-06-11 Setting up Dendrite Matrix server with Nix
- 2021-11-13 How to use Sony cameras as webcam in Linux
- 2021-11-08 Companion tools for tiling window managers
- 2021-11-08 An idea: minimalist Linux teleprompter
- 2021-10-29 PinePhone - a very promising device
- 2021-10-27 Bandcamp vs subscription streaming services
- 2021-10-24 Framework laptop - first impressions
- 2021-10-24 Firefox without menu bar and URL bar
- 2021-09-23 Sway tabbed layout
- 2021-09-20 Calendar widget for sway/wayland: alpha
- 2021-09-18 6 months with Wayland + Sway
- 2021-09-12 Why I like fzf
- 2021-08-21 A new static website built from scratch
- 2020-06-09 A very productive OSX workflow
- 2020-06-01 Zetteklasten: associative thought
- 2019-01-08 Setting up postfix on OS X