rustquty 0.4.3: Trustworthy Quality Gates Need Trustworthy Metrics

The first public versions of rustquty shipped with a nice idea: local-first quality gates for Rust projects. Run one command. Collect metrics. Compare against a baseline or absolute thresholds. Fail if quality regressed. That model still feels right to me. But this week I hit the part every tool author eventually hits: the moment where the tool says something so obviously wrong that you stop trusting the entire report. For rustquty, that happened in two collectors: duplicates and loc. ...

June 28, 2026 · 5 min read · enrell

rustquty: The Local Quality Scanner Rust Projects Deserve

I was in the middle of a refactor in animedb, one of my Rust projects. Ran cargo fmt --check, ran cargo clippy, ran cargo test. All green. Pushed the PR. A few days later, looking at the diff, I noticed one function had ballooned to over 100 lines. Another had 8 levels of nesting. Nobody commented. CI passed. Because CI doesn’t look at that. I’d seen this happen before. Quality doesn’t disappear overnight. It degrades slowly, one function at a time, until one day you look at a module and think “how did this turn into such a mess?” ...

June 2, 2026 · 6 min read · enrell

I Added Voice-to-Text to Noctalia Shell So I Can Stop Typing

It was a Wednesday afternoon. I was writing documentation for one of my projects and my hands were getting tired. Not from the code — from the prose. Paragraph after paragraph of explaining things in plain English while my fingers begged for mercy. I thought: why am I still typing all of this? I have a microphone. I have a Wayland compositor. I have a shell that I built myself. And yet, every time I wanted to dictate text, I’d have to open a browser, go to some cloud service, copy the text, paste it back. Or install some Electron app that eats 400 MB of RAM just to sit in the background and do nothing. ...

May 29, 2026 · 10 min read · enrell

Port: A TUI + CLI for Managing Open Network Ports on Linux

You run a server, the terminal crashes, and suddenly localhost:3000 is still occupied. You have no idea which process owns it. Sound familiar? Port solves this. Two ways to use it: $ port # TUI mode — interactive table $ port 3000 # CLI mode — kill port 3000 directly $ port --list # List ports as text (scriptable) The Problem It happens all the time. You start a Node.js server, a Python Flask app, or a Rust backend. Then: ...

April 14, 2026 · 4 min read · enrell

Psyche: The Media Server That Keeps Your Data Yours

It was 2 AM. I was digging through my local anime folder trying to figure out why my media server hadn’t picked up a new episode. I opened the SQLite database file out of curiosity — just to see what was in there. I could read it. All of it. Every title. Every rating. Every entry in my watch history. Plain UTF-8 text, sitting unprotected on my disk. I closed the terminal and stared at the ceiling for a while. ...

April 4, 2026 · 12 min read · enrell