Category: Misc

Building a session retrospective skill for Claude Code

A Claude Code skill that reads the session JSONL history and generates a human-readable markdown retrospective covering problems, decisions, and key takeaways.

Classifying More With Less: New VGL4NT Update

How I doubled VGL4NT's malware packer classification capacity without extra GPU by using task decomposition to run multiple specialized models in parallel.

Classifying Malware Packers Using Machine Learning

How I built VGL4NT, a machine learning classifier that identifies malware packers like UPX, Themida, and MPRESS with 94% accuracy using image-based ML models.

Malware sandbox evasion in x64 assembly by checking ram size - Part 2

Implementing sandbox evasion via GlobalMemoryStatusEx in x64 assembly, including how to manually calculate C struct sizes and pass pointers on the stack.

Malware sandbox evasion in x64 assembly by checking ram size - Part 1

Implementing the malware sandbox evasion technique of checking RAM size using GetPhysicallyInstalledSystemMemory, converted from C to x64 Windows assembly.

String anti-virus evasion in x64 assembly (Part 2)

How to hide API call strings from antivirus detection using LoadLibrary and GetProcAddress for runtime DLL loading, with a full x64 assembly implementation.

String anti-virus evasion in x64 assembly (Part 1)

How to hide strings from antivirus detection by placing them on the stack instead of the .data segment, demonstrated in C and x64 Windows assembly.

Converting a malware dropper to x64 assembly

Practical lessons from converting a C malware dropper to x64 Windows assembly, covering shadow spaces, calling conventions, and memory segments.

My experience with manufacturing printed circuit boards

First-time experience ordering custom PCBs from PCBWay using the ESPBoy gerber files — the process, quality, and what comes next for future board designs.

Study notes: MAC Spoofing

Study notes on MAC spoofing — what it is, legitimate versus illegitimate uses, and how to change your MAC address using ifconfig or macchanger on Linux.

Chicken-Scheme FFI Examples

Practical Chicken Scheme FFI examples covering foreign-lambda, struct accessors, inline C code, memory management, and enum bindings for C interop.

#5 - Switching from C/C++ to C

Dropping C++ from my custom game engine in favor of pure C, and the cross-platform bugs that surfaced when C++ features I didn't notice were being used.

#4 - Following Lispy conventions

Applying Scheme naming conventions (?, !, %, *) to a game engine's scripting API and how it improved code readability with minimal effort.

#3 - Rebel Game Engine now works on different platforms

Getting a custom C game engine to build on Linux, Windows, and macOS with one Makefile — lessons from cross-platform debugging and using Msys2 on Windows.

#2 - Implemented basic Scheme scripting for Rebel Game Engine

Adding Chicken Scheme scripting to a C game engine — switching to a functional design, wiring up the FFI, and navigating garbage collector memory management.

#1 - Thinking of adding Lisp to my custom game engine

Exploring Chibi-Scheme as a scripting layer for a custom C game engine, and why adding Lisp scripting means rethinking the object-oriented architecture.

Making Unity beep after scripts finish reloading

A Unity editor script that plays an audible beep when script reloading finishes, so you can look away from the screen instead of watching the progress spinner.

Opening Unity Script Files in Emacs

How to open Unity script files in Emacs with correct line numbers using the OnOpenAssetAttribute callback and emacsclient.

Chef Wars Postmortem -- What Went Right: Risk Adjusted Technical Estimates

A risk-adjusted estimation system that pairs time estimates with confidence levels to produce reliable schedules — used to ship Chef Wars on time.

Chef Wars Postmortem -- What went wrong: Optimizing too early and too late

Lessons from Chef Wars on premature optimization: why asking WHAT and HOW to optimize matters more than asking WHEN, after making both mistakes in production.

Chef Wars Postmortem -- What went right: Having a Universe File

How keeping all Chef Wars game data in a single "Universe" spreadsheet made prototyping, iteration, and live patching faster across two years of development.

Temp Solution For When Text Copying Does Not Work in Emacs Under Windows Subsytem for Linux

A quick Emacs Lisp fix for clipboard copy not working from WSL to Windows applications, using clip.exe as a workaround via the simpleclip package.

Converting org-journal entry to org-page post

An Emacs Lisp function that converts an org-journal entry at point into a new org-page blog post, avoiding manual copy-paste between buffers.

Converting org-journal entry to org-page post

A short Emacs Lisp function to minify buffer contents by stripping all whitespace and newlines, useful for compacting JSON files.