USB for Software Developers: An introduction to writing userspace USB drivers
A basic introduction to USB for people that don't need to know what happens on the wire
The latest blog posts to take off on Hacker News. 4,387 posts.
A basic introduction to USB for people that don't need to know what happens on the wire
Mac OS X 10.0 (Cheetah) running natively on the Nintendo Wii
Andy Warfield writes about the hard-won lessons dealing with data friction that lead to S3 Files
I never understood how traceroute discovers each hop. Turns out it's a clever TTL trick, and about 80 lines of Rust.
Karpathy recently posted about using LLMs to build personal knowledge bases — collecting raw sources into a directory, having an LLM “compile” them into a wiki of interlinked markdown …
Claude Code has gotten extremely good at finding security vulnerabilities, and this is only the beginning.
A tale about misconfiguring nginx, from adventures in production
In computing, the terms big endian and little endian refer to the order in which a value's bytes are stored in memory: with the most significant (big) or least significant (little) part first.
I think it is incredibly cool that we can change a Linux system into a networking device. But have you ever wondered:
The morning of April 12, 1981, 20 years to the day after Yuri Gagarin became the first person in space, the Space Shuttle thundered into the...
And why you would want to exec a cpio
Before we explore FreeBSD jails, it is worth refreshing our understanding of how Linux solved the same problem with LXC (Linux Containers).
Many people know, or have heard of, the Motorola 68000 architecture. These processors have been used in many machines: in the first generations of Apple Macintosh computers, in the ever-rivals Amiga and Atari ST home computers, in many workstations built by Sun , HP and NeXT (to name only a few), but also in many…
After learning Apple killed off FireWire (IEEE 1394) support in macOS 26 Tahoe, I started looking at alternatives for old FireWire equipment like hard drives, DV cameras, and A/V gear. I own an old Canon GL1 camera, with a 'DV' port. I could plug that into an old Mac (like the dual G4 MDD above) with FireWire—or even…
David Schütz's bug bounty writeups
A while ago I wrote a small file watcher in Go for my own use with an accompanying blog post . I needed a tool that I could just plop in front of the command I was running as part of my iteration loop. I use it for recompiling C files when I modify them,
A single-producer single-consumer (SPSC) queue is a great example of how far constraints can take a design. In this post, you will learn how to implement a ring …
zswap and zram are fundamentally different approaches with different philosophies. If in doubt, use zswap.
How I made a Linux distro that runs `wget | dd`
i wanted to have a deeper grasp of how compression works, so i wrote a gzip decompressor from scratch. the result is about 250 lines of rust that can decompress gzip from a file or stdin.
In this article I will introduce a new command line search tool, ripgrep , that combines the usability of The Silver Searcher (an ack clone) with the raw performance of GNU grep. ripgrep is fast, cross platform (with binaries available for Linux, Mac and Windows) and written in Rust .
At this point in history, AI sociopaths have purchased all the world's RAM in order to run their copyright infringement factories at full bl...
Due to some lucky circumstances, I recently had the chance to appear in one of the biggest German gaming podcasts, Stay Forever, to talk about the technology of RollerCoaster Tycoon (1999). It was …
I started a reading group in 2021, a few months after joining Microsoft as a new grad on the Azure Databases team. The group was initially focused on database internals, which was my favorite subject at UW. Databases touch so many areas of CS: compiler construction in the query engine, memory management with the…
If you want to program a graphical application for linux, your primary choices are using either X11 or Wayland. According to Wikipedia, X11 had its first release in 1984. X11 follows a client-server-model. I assume it's because the whole computational environment, was very different back then. If you have a central…
BIO is the I/O co-processor in the Baochip-1x, a mostly open source 22nm SoC I helped design. You can read more about the Baochip-1x’s background here , or pick up an evaluation board at Crowd Supply .
A blog about software craft and quality
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