Compressing CS2 Demos
Explains techniques for compressing and analyzing CS2 game demo files using Protocol Buffers and custom data structures for performance analysis.
Andrew Healey writes about programming languages, compiler design, systems programming, and performance optimization. His blog covers building interpreters, compilers, sandboxes, games, and creative developer tooling, often with a focus on speed and efficiency.
123 articles from this blog
Explains techniques for compressing and analyzing CS2 game demo files using Protocol Buffers and custom data structures for performance analysis.
A developer details building a custom WebAssembly compiler and static type checker for their toy programming language, nodots, from scratch.
Explores the technical process of parsing and rendering Counter-Strike 2 gameplay demos in a web browser using JavaScript and pre-processed data.
A developer shares their experience porting the boolrule boolean expression engine from Python to Rust, discussing parsing challenges and performance gains.
A developer explores the challenges of sandboxing untrusted Python code in a side-project, using process isolation and seccomp.
A developer shares the journey of building and rewriting a personal family photo album website, moving from a manual process to an automated, cloud-based system.
A developer shares their experience building 'Jar', a minimal Python web framework from scratch, exploring framework APIs and deployment to Vercel.
A programmer's reflection on their six-week, self-directed learning experience at The Recurse Center, highlighting projects and community.
Explores JavaScript sandboxing for secure code execution, inspired by Val Town and discussing solutions like vm2, Deno, and V8 Isolates.
A developer details implementing text highlighting, search, and undo functionality in their personal text editor project, noter.
A developer details building a custom text editor in Go using the Ebitengine game engine, covering font rendering and text storage.
A developer profiles and optimizes a Python interpreter for a custom language, focusing on performance bottlenecks and benchmarking against a naive Fibonacci program.
A developer details the process of adding for loop functionality to a custom tree-walk interpreter for their language, nodots, built in Python.
A developer builds a personal CLI tool to quickly share files via a custom web server, bypassing platform upload restrictions.
A developer built CodeGuessr, a game where players guess which open-source project a random code snippet belongs to, using Next.js and the GitHub API.
A developer reflects on unfinished tech projects, including profiling JavaScript apps and analyzing fast HTTP router strategies.
An exploration of Langton's Ant, a cellular automaton that models emergent behavior, with code examples for simulation and rendering.
A developer's weekend project implementing Bitcask, a log-structured key/value database, in Go, detailing the design and challenges.
Explores building a Sokoban game and solver, comparing its algorithmic challenges to chess engines and detailing implementation.
A developer builds a faster, multithreaded file search tool in Go to outperform the classic grep command, detailing key optimizations.