(think)
Learning OCaml: String Interpolation
Learning OCaml: PPX for Mere Mortals
Learning OCaml: Printing Data Structures
Learning OCaml: Working with Records
Building Emacs Major Modes with TreeSitter: Lessons Learned
Setting up Emacs for OCaml Development: Neocaml Edition
Learning Vim in 3 Steps
How to Vim: Auto-save on Activity
How to Vim: To the Terminal and Back
How to Vim: Build your .vimrc from Scratch
Adding Empty Lines in Vim: Redux
Supercharging Claude Code with the Right (CLI) Tools
How to Vim: Many Ways to Paste
Neocaml 0.1: Ready for Action
A Fresh Look for the Blog: Switching to Jekyll’s Chirpy Theme
Tips on Using Mastodon
How to Vim: Navigating Prose in Style
How to Vim: Alternative Approach to Find and Replace
How to Vim: Insert Thing at Point in Command Mode
How to Vim: Using Effectively the Command History
How to Vim: Joining Lines
Burst-driven Development: My Approach to OSS Projects Maintenance
Rust: Embrace Captured Identifier in Format Strings
Configure Quick Terminal Size in Ghostty
Why I Chose Ruby over Python
Wayward Predicates in Ruby
How to Vim: Fixing Typos
How to Vim: Take Control of Split Positioning
Learning OCaml: Having Fun with the Fun Module
Learning OCaml: Numerical Type Conversions
zoxide: tips and tricks
How to Fish: Moving Between Recent Directories
How to Vim: Proper Ways to Escape
How to Vim: Reloading File Buffers