Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 2,330 posts.
Lossy GIF compressor
This is an encoder (based on gifsicle ) which implements lossy LZW compression. It can reduce animgif file sizes by 30%—50% at a cost of some dithering/noise.
A Call of Duty exploit
A few years ago, I became aware of a security issue in most Call of Duty games. Although I did not discover it myself, I thought it might be interesting to see what it could be used for. Without going into detail, this security issue allows users playing a Call of Duty match to cause a buffer overflow on the host’s…
Kottke.org is 20 years old today
kottke.org is 20 years old today. Holy shit! On March 14, 1998, I launched a new episode of 0sil8 called “Notes”. 0sil8 was a previous website of mine, started
Generalized data structure synthesis
Generalized data structure synthesis Loncaric et al., ICSE’18 Many systems have a few key data structures at their heart. Finding correct and efficient implementations for these data structur…
How to build an NPM worm
npm is a registry and package manager for JavaScript that ships as part of Node.js . It's used by tens of millions of people to install hundreds of thousands of packages billions of times every week.
Using Countdown Clock Data to Understand the New York City Subway
Ranking the lines by reliability, the anatomy of a delay, and a case for the $19 billion subway plan
The Source History of Cat
A tour of the many historical implementations of the Unix cat utility.
Docker for data scientists: Introduction and use cases
Data scientists looking to learn Docker can get a brief intro and a look at how to improve your workflow
CloudFlair: Bypassing CloudFlare using Internet-wide scan data
Cloudflare is a service that acts as a middleman between a website and its end users, protecting it from various attacks. Unfortunately, those websites are often poorly configured, allowing an attacker to entirely bypass Cloudflare and run DDoS attacks or exploit web-based vulnerabilities that would otherwise be…
Examples of Parallel Algorithms from C++17
MSVC (VS 2017 15.7, end of June 2018) is as far as I know the only major compiler/STL implementation that has parallel algorithms. Not everything is done, but you can use a lot of algorithms and apply std::execution::par on them! Have a look at few examples I managed to run.
Inside the 76477 Space Invaders sound effect chip
The 76477 Complex Sound Generation chip (1978) provided sound effects for Space Invaders 1 and many other video games . It was also a pop...
The mysterious heart of the Roland TR-808 drum machine
The strange story of a rejected batch of transistors at the heart of the world's most iconic drum machine - The Roland TR-808.
Create a simple cross-platform desktop game with Go
A few months ago I fiddled around with writing Space Invaders using Go. I had a lot of fun writing it but the output only worked on iTerm2 because it used a specific feature of that terminal. In order to play the game you’d really have to download iTerm2 and run it on the command line. I thought it’d be fun to muck…
Visualizing SQL Plan Execution Time with FlameGraphs
Update: I wrote a follow-up article about adding Loop Counters and Row Counts to SQL Plan FlameGraphs. I also show some old examples of “Bookshelf Graph” visualizations there. Check it out after reading this post first. Introduction Brendan Gregg invented and popularized a way to profile & visualize program response…
Linus Torvalds on aliasing
See also Dennis Ritchie on aliasing, PLOS article , pointer alias in C and remarks on the purpose of C.
Fear the reaper: characterization and fast detection of card skimmers
Fear the reaper: characterization and fast detection of card skimmers Scaife et al., USENIX Security 2018 Until I can get my hands on a Skim Reaper I’m not sure I’ll ever trust an ATM or other expo…
A todo list for new ASP.NET Core projects
Here are a few things you can do to make your life easier when starting a new ASP.NET Core project, or reducing duplicate code without using boilerplate. Validate model state automatically The usual way would be to have this in almost every action in all controllers: if (!ModelState.IsValid) { // return bad request…
More Things I Wish I’d Known About Bash
My previous post took off far more than I expected, so I thought I’d write another piece on less well-known bash features.
Little Languages
Buy maxhallinan.com: Moz DA 15 and 223 referring domains. Listed at $195 via Afternic / GoDaddy — full ownership, fast registrar transfer.
Vert.x native: how to run a JVM app in 10Mb of RAM
I’ve been working with GraalVM for a while now mostly on the Polyglot aspect, but some work has been done in the native image support. Today I’d like to shar...
Yann LeCun vs. Christopher Manning on Need for Priors in Deep Learning
Earlier this month, I had the exciting opportunity to moderate a discussion between Professors Yann LeCun and Christopher Manning, ti...
Symbolic Execution: Intuition and Implementation
In this article I give a brief tour of a program analysis technique called symbolic execution. As the title indicates, I aim to explain both the intuition behind the technique, and also the details of a simple implementation. My intended audience is professional programmers who have no background in program analysis.