Posts in category 'Everything'
A look at the way the representation of numbers evolved in first few years of Lisp across different implementations (LISP I, LISP 1.5, Basic PDP-1 LISP, M-460 LISP, PDP-6 LISP, BBN LISP). Start with the worst number representation this side of church numerals, end with something surprisingly modern.
PS4 downloads have a reputation of being very slow. I did some digging to find out the root cause, and was surprised.
Large downloads work from all other servers, but fail from S3. Must be a problem on their end, right?
A horrible language feature used badly, spooky action at a distance, and platform-dependent shim libraries. What could go wrong?
In which I go digging into source archives from 40-50 years ago, to figure out why we use XXX to mark dodgy code.
A hash function implementation specialized for generating multiple keys of the same length at the same time, using AVX2 SIMD instructions.
So there I was, implementing a one element ring buffer. Which, I'm sure you'll agree, is a perfectly reasonable data structure.
Some new proposed protocols will encrypt the transport layer headers. Encryption is good, so more encryption must be better, right? Unfortunately there's going to be a huge hidden cost that'll be paid by anyone troubleshooting networking problems.
Why I wrote yet another timer wheel implementation.
Digging into the history and current state of RST handling, which shows surprising amounts of variability.
Is this a post really just about a trivial data conversion tool? Or is it actually an excuse to start talking about different ways to configure programs?
A look at a rating system I wrote for an asymmetric multiplayer game a while back. How does it work, why does it work like that? Are there any easy tweaks that would make it better? What does 'better' mean anyway, and how should rating system quality be evaluated? How far behind the state of the art is it?
Some background information on flow disruptor, a network simulation tool I wrote. Why write yet another one of those, and did I learn anything while doing it?
A trip deep into a retrocomputing jungle.
Annotated slides of my presentation at the SIGCOMM 2015 HotMiddleBox workshop, talking about the work we've been doing on TCP optimization in mobile networks over the last few years.
Why would you ever use CHANGE-CLASS in Common Lisp?
Some tools and data analysis for detecting players using multiple user accounts in an asynchronous online game.
Thoughts on how to write automated tests for a TCP implementation.
Updated results for the zlib benchmarks from last year, including a new fork zlib-ng as well as a new version of the Cloudflare code.
The filtering language of libpcap is one part wonderful, one part infuriating. This post looks at the infuriating part.
The time I built an "OkCupid for elections" for the ex-communists.
Red7 is a clever little card game. This post uses a Monte Carlo simulation written in Common Lisp to explore the statistical properties of the game.
Some thoughts on why we have never released very much of our code as open source, despite always intending to.
I was a guest on the Software Gone Wild podcast talking about things we've done at Teclo, and about radio networks.
The implications of one design decision in Online Terra Mystica: a command language as the canonical data presentation for the backend and the UI.
I had a partial email outage lasting a few weeks. The ultimate root cause was pretty surprising to me.
The 'worse is better' history of my online Terra Mystica implementation.
HTTPS/SSL traffic share in mobile networks has doubled in 2014, and is now over 35% of traffic in some networks.
It's easy to write a TCP stack that works with most traffic. It's harder to write one that interoperates properly with every strange or buggy device that's out there.
A small benchmark suite for zlib, and testing the two current high performance zlib forks with it.
A review of addictive web serial novel Worm, by Wildbow.
A review of using laptop form-factor Android 3.x, after using it as my main computing device for a couple of weeks.