Claude Code Unleashed
ymichael's personal site
The History of Windows XP
NT Vincit Omnia
Making C and Python Talk to Each Other
How to Use Python in C
Covers as a way of learning music and code
When you're just getting started with music, you have so many skills to learn. You have to be able to play your instrument and express yourself through it. You need to know the style you're playing, and its idioms and conventions. You may want to record your music, and need all the skills that come along with it.
Reflecting on WikiTok
Civil Engineer and Software Developer
Now open for building: Introducing Gemini CLI extensions
Make Gemini CLI uniquely yours by connecting it to your everyday workflows and the tools you use most.
League of Legends data scraping the hard and tedious way for fun
Personal website for some random tidbits I work on
What's New in Emacs 30.1?
What is new in Emacs 30.1? I go through every change in the NEWS file and talk about the most interesting and useful changes.
PythonBPF – Writing eBPF Programs in Pure Python
I brag about my newest obsession.
Python 3, Pygame, and Debian Bookworm on the Miyoo A30
What if I told you you can get a full Linux computer with WiFi and a GPU in a small, pocket form factor for about $30 USD on AliExpress ? You might say “but what about the new tariffs?” and I’d say “oof, oh right, okay who knows, but it’s probably still pretty cheap!” (Edit: looks like you can get one for about $40…
Stacked Diffs with git rebase —onto
Using git `rebase --onto` workflow to work with stacked diffs
Why I'm not rushing to take sides in the RubyGems fiasco
We are in the midst of a Ruby drama for the ages. I'm sure a bunch of people figured we were all too old for this shit, but apparently we are not. This debate…
Emacs: The macOS Bug
The Context I have been recently roaming. Doing some Zig, doing some Go, some Janet. Some C integration. Should have focused on my project but life threw more at me than I could handle, so I sought… happy distractions. My experience with those technologies taught me new tricks and one day, when I needed some more…
Static sites with Python, uv, Caddy, and Docker
My preferred deployment stack for Python-built static sites.
Dynamically patch a Python function's source code at runtime
written by Eric J. Ma on 2025-08-23 | tags: python runtime llm security namespace compilation execution functions toolbot monkeypatching
When Fine-Tuning Makes Sense: A Developer's Guide
Most teams are curious about fine-tuning and how it might help their AI products, but they don't know what to expect from the process, how to measure success, or where to start.
How to slow down a program and why it can be useful
Making programs slower can be useful to find...
Zig Error Patterns
Although I try to make good use of the debugger, I am quite used to print-based debugging, especially for unit tests. I wanted to explore some tricks to improve print-based debugging, and also incorporate the debugger more.
Discovering a JDK Race Condition, and Debugging It in 30 Minutes with Fray
Discovering a JDK Race Condition, and Debugging it in 30 Minutes with Fray I’ve been adding more integration tests for Fray recently. To ensure Fray can handle different scenarios, I wrote many creative test cases. Many of them passed as expected, while some failures led to epic fixes in Fray. Then something…
Running GPT-2 in WebGL: Rediscovering the Lost Art of GPU Shader Programming
A few weeks back, I implemented GPT-2 using WebGL and shaders (Github Repo) which made the front page of Hacker News. Here is a short write-up over what I …
What does “Undecidable” mean, anyway
An explainer for people who don't know computer science and are mildly curious
Curate your shell history
You can make your shell history more useful by removing the typos and false starts.
Crates.io phishing attempt
Earlier this week, an npm supply chain attack. It’s turn for crates.io, the main public repository for Rust crates (packages). The phishing e-mail looks like this: And it leads to a GitHub login pa...
LLM codegen go brrr – Parallelization with Git worktrees and tmux
If you're underwhelmed with AI coding agents or simply want to get more out of them, give parallelization a try. After seeing the results firsthand over the past month, I'm ready to call myself an evangelist. The throughput improvements are incredible, and I don't feel like I'm losing control of the codebase.
A first look at Django's new background tasks
Django 6.0 introduces a built-in background tasks framework in `django.tasks`. But don't expect to phase out Celery, Huey or other preferred solutions just yet.
Coding Isn't Programming
Join us for a captivating closing keynote with the legendary Leslie Lamport, Turing Award winner and pioneer in the field of distributed computing. We'll discuss computing history, open source and distributed systems.
Go is portable, until it isn't
An exploration of Go's portability limits when integrating with system-specific C libraries like libsystemd and dealing with glibc vs. musl systems.
0+0 > 0: C++ thread-local storage performance
We discuss how to make sure that your access to TLS (thread-local storage) is fast, and how the presence of constructors and shared libraries affects the access time.