Why the HTML5 ‘Video’ Element Is Effectively Unusable
Web browsers should only buffer HTML5 media content when the `autobuffer` attribute has been explicitly turned on in the markup.
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 14,544 posts.
Web browsers should only buffer HTML5 media content when the `autobuffer` attribute has been explicitly turned on in the markup.
Let's revisit some programming myths and see how harmful they have been to our industry.
Software Engineer in New York specializing in Apple platforms
I spend a fair amount of time wandering around in the terminal. The chances are that you are too since you dared to open this story. My daily activities led me …
In this post we are going to go through the best practices while building an AWS Lambda function. In order to go through this blog you should know what is it and you should ideally have built at le…
Personal Musings and Transcripts
In the previous part of the Build A Basic AI Agent From Scratch series, we added the essential tools to our agent to allow it to work…
Open Source Freelancer
If you’re a regular reader, you might have noticed that I’ve been on a quest for the perfect backup program , and ended up writing my own encryption layer over bup.
The plainly wrong behavior of a ubiquitous Python library echoes a British astronomical report from 1884.
TLA+ Workshop Last Call The TLA+ workshop is next week! Oct 20-22, register here, use the code COMPUTRONSTUFF for $500 off. Learn how a few hours of...
Failure in computer systems is inevitable. Adopting Erlang's philosophy of "Let it crash" at the many layers of abstractions in software can have a huge positive impact on resiliency.
rr is the debugger for Rust (et al.) that is is almost too good to be true.
~4 lines of Go to produce succinct, stable, URL-friendly slugs from timestamps.
The 2025 TLA⁺ Community Event was held last week on May 4th at McMaster University in Hamilton, Ontario, Canada. It was a satellite event to ETAPS 2025, which I also attended, and plan to write about in the near future. I gave a talk somewhat-hucksterishly titled It’s never been easier to write TLA⁺ tooling! which I…
Years ago, OpenBSD gained two new security system calls, pledge(2) (originally tame(2) ) and unveil . In both, an application surrenders capabilities at run-time. The idea is to perform initialization like usual, then drop capabilities before handling untrusted input, limiting unwanted side effects. This feature is…
As the popular saying goes, there are only two hard problems in computer science: caching, off-by-one errors, and getting a Rust job that isn’t cryptocurrency-related. Today, we’ll discuss caching!...
A year ago today I put up the original blog post for Light Table . It was just a simple video of a prototype I made in less than a week while I was visiting my grandparents without internet - at the time we had no idea what it would become. To be honest, I thought some would think it was neat, but then it would fade…
Intro, overview
A Better Model for Day to Day Threading Tasks
Haskell vs. Erlang Since I wrote a bittorrent client in both Erlang and Haskell, etorrent and combinatorrent respectively, I decided to put ...
An aggregation is some kind of summary of a set of data. This can be the sum, length, minimum, etc. It is quite common to want to calculate such a summary repeatedly, e.g. “the maximum noise level in dB for the past 30 seconds” for a nuisance detector. In such a case we say there is a sliding window over our data, and…
The critical rules to keep in mind when designing an event-driven architecture
This article is a starting article in a series that is going to briefly skim through a good engineering textbook on linear algebra, making notes that help yo...
A hundred things I learned writing my first technical book “Data-Oriented Programming”
Trinity is a fully chained exploit for the PS Vita™ consisting of six unique vulnerabilities. It is based on a decade of knowledge and research. The source code of Trinity can be found here.
A journey in building an ARM CPU from scratch in a digital circuit simulator, and running Rust on it to interpret Scheme and serve Web pages.
Lately I’ve been acting as the unofficial Git consultant for Skribit , usually in response to @Stammy saying something on Twitter along the lines of “Hey, git just did something totally nonintuitive and now I can’t figure out what to do next.” I’ve been using Git long enough to know the answer, usually, or at least to…