I'm blogging about Emacs, Drupal, php and exciting subjects

tmux and Emacs: settling the keybinding war

Run Emacs inside tmux with the stock configuration and you hit the problem within about four seconds. tmux's prefix key is C-b. In Emacs, C-b is backward-char — one of the six or seven keys you press most in any editing session.

Writing a polite web crawler

Every other piece of a search engine operates on data you already have. The crawler is the one component that reaches out and spends somebody else's money — their bandwidth, their CPU, their database connections — without asking first.

Ranking search results with BM25

So far in this series we have crawled pages, broken them into tokens, and built an index that can tell us which documents contain a term. That leaves the question every search engine actually lives or dies by: in what order do we show them?

Email Self-Hosting in 2026: Is It Still Possible Without Getting Blacklisted?

Every year, on schedule, someone writes the obituary for self-hosted email. The argument is always the same shape: Gmail and Microsoft control the inbox, residential and small-VPS IP ranges are pre-blocked before you've sent a single message, and the only rational move is to hand your mail to a SaaS provider and get on with your life.

The SSH Trap: Why You Should Stop Logging Into Production Servers

Introduction

For decades, SSH has been the universal tool for managing Linux servers.

Need to restart a service?

SSH.

Need to update PHP?

SSH.

Need to fix a configuration file?

SSH.

Need to investigate a production problem at 2 a.m.?

SSH.

There is nothing inherently wrong with SSH.

The US Shutdown of AI Models and the Urgent Need for True Digital Sovereignty

Artificial Intelligence has rapidly become one of the most important technologies of the modern era. Governments, businesses, universities, journalists, software developers, and ordinary citizens increasingly depend on AI systems for research, content creation, software development, decision making, and communication.

The Self-Hosted Developer Stack: Building a SaaS-Free Development Environment

Introduction

Over the last decade, software development has become increasingly dependent on Software-as-a-Service (SaaS) platforms. Source code is stored on hosted Git providers, project management takes place in cloud applications, documentation lives in online knowledge bases, and monitoring data is collected by third-party observability services.

Subscribe to Linkhub