From M1 MacBook to Arch Linux: A month-long experiment that became permanenent
After 15 years on macOS, I made the leap to Arch Linux using Omarchy. Here's what I discovered about the trade-offs, workflow changes, and why shorter battery life and fan noise haven't sent me back to my MacBook.
Overengineering my homelab so I don't pay cloud providers
After years on a VPS, I'm moving my self-hosted services home and using the opportunity to migrate to a more flexible and robust setup.
Speeding up my ZSH shell
Super quick one I want to document here! I got myself on a side quest, again! No biggie, my ZSH shell was taking ages to load. When I say ages, more like...
A simple habit that saves my evenings
As a software engineer, I often work on big tasks that require hours of continuous and focused work. However, we have plenty of meetings, colleagues asking us something in Slack, and lunch breaks. Add a colleague who comes to you and calls you for a cup of coffee if you work from the office. And usually, we don’t…
Modern Linux tools
Programming notes for Unreal Engine, Houdini, Game Development, Math, & Graphics
Microsoft please get your tab to autocomplete shit together
What do you think is gonna happen after I press tab when looking at this screenshot?
Vibe coding cleanup as a service
The rise of AI-powered coding has created an unexpected market: cleaning up the technical debt from prompt-generated software. Here's why 'Vibe Coding cleanup' is becoming a legitimate service category and what it means for the future of software development.
Using uv and PEP 723 for Self-Contained Python Scripts
We all love Python’s comprehensive standard library, but let’s face it – PyPI’s wealth of packages often becomes essential. Sharing single-file, self-contained Python scripts that rely on these external tools can be a headache. Historically, we’ve relied on requirements.txt or full-fledged package managers such as…
Markdown is holding you back
Explore why Markdown, despite its ubiquity, might not be the best fit for technical content.
I can't recommend Grafana anymore
The Grafana Stack can be an incredible powerful monitoring solution, but through my experience I found out how maintenance intensive it is and how uncertain the…
Messing with scraper bots
Markov chain babblers, bogus php files, and more!
Become unbannable from your email
You don't own your email; you rent it. This vulnerability leaves your entire digital life at risk. Read how to seize back control of your most critical online asset by switching providers and setting up your own unbannable email server.
The evolution of a structural code editor
This post outlines the evolution of the EYG editor. The major changes over time, design thoughts and some implementation notes.
Thinkserver: My web-based coding environment
I've made my own web-based coding environment for working on little projects. A few years ago I found Glitch. It's great: a web-based coding environment that makes it really easy to quickly start edit
Code-GUI bidirectional editing via LSP
I built a small proof-of-concept for a system that enables real-time bidirectional editing between any modern code editor and a GUI, enabled by an LSP1 server. Code-based CAD I like working on small projects at home that benefit from CAD. I’m also a programmer with a personal development environment that I’ve spent…
How to turn off Apple Intelligence
Learn how to turn off Apple Intelligence on iPhone, iPad, or Mac. Asurion Experts show you step-by-step how to manage your Apple devices’ smart features.
MCP in LM Studio
New in LM Studio 0.3.17: Model Context Protocol (MCP) Host support. Connect MCP servers to the app and use them with local models.
TeX and Typst: Layout Models (2024)
An exploration of the layout models of TeX and Typst.
Pyrefly: A new type checker and IDE experience for Python
Today we are announcing an alpha version of Pyrefly, an open source Python type checker and IDE extension crafted in Rust. Pyrefly is a static type checker that analyzes Python code to ensure type …
Jujutsu VCS: Introduction and patterns
Jujutsu (jj), a new version control system written in Rust, has popped up on my radar a few times over the past year. Looked interesting based on a cursory look, but being actually pretty satisfied with Git, and not having major problems with it, I haven’t checked it out. That is, until last week, when I finally…
Toad is a unified experience for AI in the terminal
My startup for terminals wrapped up mid-2025 when the funding ran dry. So I don’t have money, but what I do have are a very particular set of skills. Skills I have acquired over a very long career convincing terminals they are actually GUIs.
My favourite computer ergonomics hack
In this post I will talk about my favourite computer ergonomics hack, a DIY device I call "The Beeper".
Build a link blog like Simon Willison
Achieving Data Freedom Through Open Source and Rust
Excalidraw+ Is Now SoC 2 Certified
Excalidraw+ is officially SOC 2 Type I certified! Here's how we got there — the tools, policies, infra changes, and what we learned along the way.
Emacs agent-shell (powered by ACP)
Not long ago, I introduced acp.el, an Emacs lisp implementation of ACP (Agent Client Protocol), the agent protocol developed between Zed and Google fo...