Sparse Ranges
Implementing sparse_range : From a Python Discuss Idea to a Sieve Stress Test I found an interesting thread over on the Python Discuss forum titled " Possibility to exclude ranges from range " . The…
RP2040+W5500 = Ethernet Swindle
I was not really happy with the CH32V307 Ethernet Version. It is a all-included & cheap version. But it's only 10 Mbps and there is not enough flash/sram to comfortably host swindle. The ESP32S3 wifi…
Social Media Site For Vinyl Record Collectors: Wax Spinner
As you may know about me, I like to make things in what little free time I have. Often that is music, but lately it’s been apps. Since I also like collecting vinyl records, I have been making…
Priveil: pseudonymisation for Australian financial data
Photo by boris misevic on Unsplash GitHub — mitchelllisle/priveil ↗ · pip install priveil · Python · FastAPI · MIT Before I talk about what Priveil does, I want to be honest about what it doesn’t do…
Yak shaving using slot machine
I try to use the slot machines to solve code-related issues. For some tasks, these machines work well, for some tasks we get a long line of “wiggle until it works” but the wiggling does not produce…
Using a MacBook Neo for web development
I've been in the market for a portable computer for a while, ever since moving my main PC to the attic where it's too out of the way to use for quick tasks. I originally tried reviving my old ~2012…
C++26 Pack Indexing
C++26 pack indexing lets you select types and values from parameter packs directly with pack…[I], which removes a lot of tuple and index_sequence ceremony from metaprogramming utilities.
How to support multiple Slack workspaces on MCP for Claude Code
Claude Code talks to Slack over MCP, but out of the box you only get 1 workspace. Here’s how to run 2 or more at once. The trick: every workspace beyond the first runs as its own token-based stdio…
A knowledge base is a graph, not a folder
Turning a manual into an agent's knowledge base isn't converting it to text — that flattens the thing that mattered. The power comes from the graph: the criteria that condition each other. How we…
something i made up in a few minutes
nah ur wrong becuz to gave a good windowing systwm on windows you gotta havw access to function call 0x08FFB5F0000A6D00 in winapi.h using the C:/Windows/System32/winwm.dll dynamic library that only…
This Week in Package Management: 27 June 2026
Releases, advisories, and articles from across the package management world
How to read and update URL query params without regex
URLSearchParams reads, sets, and removes query string values with a clean API. No string splitting, no manual parsing.
How to remap keyboard buttons in Linux
How to remap a broken or missing key on Linux using Keyd. This post walks through installing Keyd from source on Pop_OS and configuring it to reassign any key
Gorilla Newsletter 102
Learning Creative Coding - HTML in Canvas - Plottimation Tool - Intro to Shader Programming - New Shader Playground - CVPR 2026 Art Gallery - Pretext - Hyperblam - AI and the Erosion of Programming…
The Scarce Thing
This week I'm in Switzerland, at a retreat on the future of software development , in a room full of people who have thought about that future longer and harder than I have. I haven't come to…
Pedit COW Turns a Normal Linux User Into Root While the Disk Stays Clean
A flaw in the Linux kernel called pedit COW lets a regular, unprivileged user rewrite /bin/su in memory and become root, while the copy on disk never changes and a file integrity check comes back…
Devlog Entry - 27 June 2026
Development log entry for the week ending 27 June 2026. Improvements to libakerror logging, libakstdlib gets linked list and binary tree implementations, and I'm banging my head against libakgl to…
ESP32 Clock using 8×32 LED panel
Items used: Connector mapping: ESP32 MAX7219 VIN VCC GND GND D23 DIN D18 CS D19 CLK platformio.ini: main.cpp: The post ESP32 Clock using 8×32 LED panel appeared first on Praveen Nair's CTO…
Constrained Generation
Turning MetaHumans into Character Sheets with Gen-AI
Why Local LLMs Are Necessary
Currently it is not feasible (for most people) to run frontier, state-of-the-art models (LLMs) locally. Data centers are needed to run these large models. However, I remain convinced that local LLMs…
A deep dive into SmallVector::push_back
tl;dr This blog post describes a recent SmallVector::push_back optimization for approximately trivially copyable element types. SmallVector is LLVM's most-used container, and push_back its hot…
XDG Desktop Portal Location API for KDE applications
In my last post on Android platform integration I had suggested increasing the focus on Linux on mobile phones, due to Google’s ongoing attempts to close down Android for us. I have to follow that…
Quickly Find Undefined or Null YAML Keys with YQ
Use this solution to quickly find a YAML (YAML Ain't Markup Language) key within front matter that is undefined or has a value of null using yq.
Clean Architecture protects the happy zone
Clean Architecture is not only about drawing onions or creating folders. It is about protecting pure application logic from the messy outside world.
Isolating GitHub Copilot With Docker Sandboxes
Give GitHub Copilot its own microVM with a firewall and monitoring so that you can worry less about what your AI is doing.
Running Coding Agents in a Secure MicroVM on Windows with sbx
Docker Sandboxes (sbx) runs your coding agent inside a microVM instead scoped to a single project directory, behind a network policy you control. Here's how to set it up on Windows, step by step.
Wiggle wiggle
I saw a fun post on Hacker News about creating wigglegrams, and decided to try it for myself. Since I live in the Google ecosystem, I had Claude rewrite the code for Google Photos support. However,…
Why I built verachi.io
In a 900 person organization, we still could not answer a simple release question: what exactly are we shipping to the customer? We had one binary to release. My manager thought all features should…
greatgramps: a static site generator for Gramps family trees
Last year I came across a few paper family trees from different sections of my family my Gran had collected, and I decided to look for a way to digitise them and bring them all together. Firstly I…
Googling the Un-Googleable and the Hoofbeats of Zebras
This is a guest post by my wife, Holly. In the software industry, some problems don't have Google-able solutions. Just like I can't Google where I left my keys, when I last got an oil change, or why…
I stopped building dashboards and started asking my database questions. SaaS is about to do the same.
I ask AI to investigate my game's database instead of building dashboards. It changed how I think the end of SaaS plays out.
How to Set Up CI/CD for a React App
A practical, step-by-step walkthrough of CI/CD for React: from a git push to GitHub Actions, quality gates, preview deployments, production releases, monitoring, and rollback - with interactive demos…
Unrequired Reading, 003
Tools over problems I've been thinking this week about how addictive it is with these new tools to be able to build things without so much of the friction. The danger of that is falling in love with…
Request coalescing with Go singleflight
A hot cache key expires and a hundred requests issue the same query at once, saturating the database. Go's singleflight package coalesces those duplicate calls into one. How to wire it up, how to…
Status update 2026-06
Pimsync v0.5.11 is out, with the following set of improvements. Incremental sync[permalink] When watching a storage (e.g.: watching a filesystem for real-time changes), instead of executing a full…
Having no problems is a problem
For a while now, work hasn't felt meaningful. I used to love software engineering, but a lot has changed in the last few years, and somewhere in there the joy went out of it. Maybe I've changed too.…
On failing at my first Kaggle competition (3/n)
In the second part we talked about transformer heads and features. In this part, we will dive into credit assignment and reward hacking problems that I faced. Giving +1 reward when you win a game and…
Evolving Memory Systems: An Eval-First Approach
AI memory systems are often designed as architectural bets: vector stores, profiles, summaries, graphs, etc. This post argues for a different starting point: build longitudinal eval environments…
Profiling Myself, But Locally
Building a personal data profiler locally, a system that collects parts of my digital footprint and helps me make sense of them.
Getting Started With NATS JetStream in .NET
NATS almost never comes up when .NET developers talk about message queues, and that's a shame. It's a tiny, fast, single-binary broker, and JetStream adds durable, at-least-once delivery on top.…
Over-engineering our vacation in 2026
I am of two brains. I need structure, but I hate planning. We had decided to stay in Iceland for a few weeks while visiting family and attending family gatherings. But, that left a lot of empty…
Keep Your Skills Sharp the Hard Way
TL;DR Staying sharp in the LLM era isn’t nostalgia and it isn’t prompt-craft. The “agentic loop / context engineering” genre is largely a marketing story told by the parties…
Previewing SpecCat.com - Compare CPU, APU, GPU Specifications Instantly
SpecCat.com is a web site I’ve made, mainly for myself trying out LLMs, for easily comparing detailed specifications of different silicon chips; CPUs, APUS, GPUs etc. as shown in screenshots of…
Reordering Beyond List - SwiftUI iOS 27
For years, was the only SwiftUI container that offered a polished built-in item reordering experience. If you wanted users to rearrange…
Eagle EX airborne
(This post is part of a series on the subject of my hobby project, which is recreating the C source code for the 1989 game F-15 Strike Eagle II by reverse engineering the original binaries.)