The Ballad of TIGIT
2.8k words, 12 minute reading time
2.8k words, 12 minute reading time
In game development, it’s common to use spritesheets for animation, but this technique isn’t as widely used on the web these days. Which is a shame, because we can do some pretty cool stuff with sprites! In this post, we’ll share the niche CSS function you can use to leverage this technique, and explore some of the…
In 1978, Intel introduced the 8086 processor, a revolutionary chip that led to the modern x86 architecture. Unlike modern 64-bit processors,...
Today, it’s my great pleasure to announce the first public release of Hardwood, a new parser for the Apache Parquet file format, optimized for minimal dependencies and great performance. Hardwood is …
A visual description of the CIE 1931 colour spaces.
Mathematical research traditionally involves a small number of professional mathematicians working closely on difficult problems. However, I have long believed that there is a complementary way to …
AI is now able to decompile games and software in a matter of days. That's scary... but kind of exciting.
Executives love AI while ICs stay skeptical. The divide comes down to non-determinism: who is evaluated on judgment versus deterministic execution.
Thriving in a world of agents
We have significantly improved how code reviews work in Lubeno. We think code review should do more than catch bugs, it should also help teams reduce comprehension debt. In this post, I want to explain how that idea shaped our recent work on code review in Lubeno.
Igor's programming blog
Investing in Startups and Pushing the Boundaries
tldr: I uncovered Y Combinator was scoring 100k+ founders around the world through Paxel, I broke it (possible easter egg) + found a vulnerability that let anyone forge and push any score to their ranking database, courtesy of an unvalidated hmac
I am not a lawyer. This is provided solely for the purposes of general information and does not constitute legal advice, guidance, or counsel. No attorney-client relationship is established by the provision of this information, and no reliance should be placed on this information in lieu of seeking professional legal…
David's notes.
We locate web content using special addresses called URLs. We are all familiar with addresses like https://google.com. Sometimes, URLs can get long and they can become difficult to read. Thus, we might be tempted to format them like so in HTML using newline and tab characters, like so: <a…
LittleJS just got the biggest update since it launched! It is still the small, fast, dependency-free HTML5 game engine it always was. Now it also has a full 3D renderer sharing the canvas with your…
I have come to appreciate coding agents to be valuable tools for working with computer program code in any capacity, such as learning about any program’s architecture, diagnosing bugs or developing proofs of concept. Depending on the use-case, reviewing each command the agent wants to run can get tedious and…
The personal blog of Pig Fang.
Adventures in programming, hardware, DSP, and chiptune
At the moment only SST1 (Voodoo1) is supported on IP32 (O2). Only tested on IRIX 6.5.30 with RM7000C CPU. -driver sources (SST1 and CVG support on IP32) https://github.com/sdz-mods/tdfx_irix -glide2x IRIX port (SST1 on IP32) https://github.com/sdz-mods/glide_irix -hinv wrapper with 3dfx support…
This isn’t a joke, and it’s becoming a big problem
Update (28th of September 2026) Max Desiatov told me that the @c swift attribute should work, instead of declaring the functions using @_cdecl. The @c attribute marks a global function as a C function implemented in Swift, which formalizes the @_cdecl attribute. A link to the proposal is available here. I did update…
What in the world is Explorative Modeling?
You may already be aware of John Baez’s “Crackpot Index” , which provides a simple tongue-in-cheek scoring system for assessing whether a research contribution to physics is likely “revolutionary.” The list contain such gems as “40 points for comparing yourself to Galileo, suggesting that a modern-day Inquisition is…
ABSTRACT In May 2003, the University of Wisconsin - Madison found that it was the recipient of a continuous large scale flood of inbound Internet traffic destined for one of the campus' public Network Time Protocol (NTP) servers. The flood traffic rate was hundreds-of-thousands of packets-per-second, and hundreds of…
My GPU is the integrated Radeon Vega 8 that comes with my AMD Ryzen 7 5700G CPU. I tell you this so you know that my workstation is not a graphical computing powerhouse. It is, in fact, quite weak. To its credit my integrated GPU shows up as 48% faster on UserBenchmark than the GPU in my low end hardware target; a…