Building an FPGA 3dfx Voodoo with Modern RTL Tools
This frame of Screamer 2 was rendered not by an original 3dfx card and not by an emulator, but by an FPGA reimplementation of the Voodoo 1 that I wrote in SpinalHDL. Available on GitHub .
The latest blog posts to take off on Hacker News. 21,817 posts.
This frame of Screamer 2 was rendered not by an original 3dfx card and not by an emulator, but by an FPGA reimplementation of the Voodoo 1 that I wrote in SpinalHDL. Available on GitHub .
Curried functions are probably one of the first new things you come across if you go from an imperative language to a functional language. In purely functional languages, the convention is to define an n-parameter function inductively by staggering the parameters: applying the function to argument #1 returns a…
There is a profound tension here: english specifications intuitively feel precise until you learn better from bitter experience. (It's all in that facial expression of the last frame.)
I tried to build a Windows native app using Microsoft's latest technologies. Now I understand why everyone builds Electron apps.
A brief look at the three main causes of bloat in our JavaScript dependency trees, and how we can start to address them.
I had seen many talks about coroutines but it never really clicked where I could use them outisde of async IO. Until I looked at how Unity uses them in C#.
A beginner's exploration of the many layers of Common Lisp development environments.
I really dislike Apple’s choice to clutter macOS Tahoe’s menus with icons. It makes menus hard to scan, and a bunch of the icons Apple has chosen make no sense and are inconsistent between system applications. Steve Troughton-Smith is my hero for finding a Terminal command to disable them: Here’s one for the…
We rewrote our Rust WASM Parser in TypeScript - and it got 3x Faster
A bespoke software revolution? I don't buy it. It'll exist. It already exists. Small consultants and big consulting firms have made custom software for years. It almost always sucks. It’s bloated, confusing, and because the client pays, it’s built in all the wrong ways. Who’s excited about bespoke software? Software…
Fixing common Java anti-patterns took an app from 1,198ms to 239ms. Eight patterns that compile fine and pass code review but silently drain CPU and balloon heap, with benchmarks and code fixes for each
There are a few different reasons to hit the brakes on a Postgres query. Maybe it’s taking too long to finish. Maybe you realised you forgot to create an index that will make it orders of magnitude quicker. Maybe there’s some reason the results are no longer needed. Or maybe you, or your LLM buddy, […]
every regex engine that promises linear time breaks that promise the moment you ask for all matches. the problem has been there since the 70s, hiding in the iteration loop.
Introducing noq: n0's QUIC implementation
…symmetry isn’t just a preference for “pretty” shapes. Contents Introduction The HM-GM-AM-QM Inequality The two circles The Semicircle The Container The 3D container The Sum of Squares Inequality Nesbitt’s Inequality Conclusion Introduction While I was randomly browsing the web, I came across this nice picture: Roland…
Specifications do not address the limitations of agentic coding
Tony Hoare at the LASER summer school, September 2007 (All photographs in this article are by the author) Had they included just one of Tony Hoare’s major achievements, many scientific careers would be considered prestigious enough. His had a long list, which I am going to try to summarize, not pretending to get…
A system freeze led us deep into Linux spinlock internals, where we helped find not one but three bugs in the kernel's resilient locking code used by eBPF.
What is now known as the Slug Algorithm for rendering fonts directly from Bézier curves on the GPU was developed in the Fall of 2016, so this year marks a full decade since its inception. I published a paper in JCGT about the technique in the middle of 2017, and my company sold the first license for version 1.0 of the…
Java 26 is here, and its main purpose seems to be to provide a solid foundation for future things to come. It comes with a few new features, some performance improvements and multiple enhancements that mention Project Valhalla as the inspiration for their existence. This post has all the info!
Python 3.15’s JIT is now back on track
Today we are incredibly excited to open source [Edge\.js](<https://edgejs.org/>), a JavaScript runtime specifically designed to safely run Node.js workl...
AI coding tools are optimising the wrong thing and nobody wants to hear it. Writing code was already fast. The bottleneck is everything else: unclear requirements, review queues, terrified deploy…
Node.js now has a virtual filesystem. Learn why VFS matters for testing, sandboxing, Single Executable Apps, and running generated code directly in me
Building a minimal VisiCalc clone from scratch in C to understand how spreadsheets work.
I built a tiny shell in C to learn what fork, execvp, and dup2 are doing under the hood.
Software engineer, Warsaw.
In this blog we explore how FFmpeg uses Vulkan Compute to seamlessly accelerate encoding and decoding of even professional-grade video on consumer GPUs — unlocking GPU compute parallelism at scale, without specialized hardware. This approach complements Vulkan Video's fixed-function codec support, extending…
The most powerful AI platform for enterprises. Customize, fine-tune, and deploy AI assistants, autonomous agents, and multimodal AI with open models.