New
The latest blog posts to take off on Hacker News. 2,470 posts.
Select(2) is fundamentally broken
In a previous blog post we discussed a brief history of the select(2) syscall . The article concludes that some I/O multiplexing was necessary to do console emulation, games and non-trivial TCP/IP applications.
Lessons learned as a React contractor
I didn’t know I was looking for it, but when I found it something clicked.
Goroutines, Nonblocking I/O, and Memory Usage
I am generally a fan of Go's approach to concurrency: writing code with goroutines is a lot easier than writing traditional nonblocking network servers in a language like C or C++. However, while working on a highly concurrent network proxy I came across an interesting realization about how the Go concurrency model…
The Reality of Developer Burnout
Burnout is, unfortunately, a very real phenomenon in software development — especially when creating and maintaining open source projects with large numbers...
I've removed all ad network code from my blog
I don't mind ads on websites as a concept, that is I don't mind the idea of a message appearing somewhere that helps the producer of said content earn a crust. However, there are other things about ads that I do mind enormously and most of them are
Working remotely with 150+ people
Work asynchronously, keep a single source of truth, avoid management overhead and communicate.
The resolution of the Bitcoin experiment
I’ve spent more than 5 years being a Bitcoin developer. The software I’ve written has been used by millions of users, hundreds of…
Compiling Rust to Web Assembly
So you are intrigued what WebAssembly is and want to try it? Since December 22 it’s possible to compile Rust to WASM. If you don’t know…
I’m Joining LinkedIn
I'm very excited to share that I've joined LinkedIn as a full-time employee.
Alexa: Amazon's Operating System
Money is made at chokepoints, and the most valuable chokepoints are operating systems; Amazon is building exactly that with Alexa.
TensorKart: self-driving MarioKart with TensorFlow
Kevin Hughes' blog
Lock-Free Bugs
[ I wrote this post in mid-2014 for debuggers.co, which seems to have gone at least partly defunct, so I am reproducing it here. That site collected answers from programmers to the prompt “What’s the most interesting bug you’ve encountered?” ]
Dear Obama, from Infosec
Dear President Obama: We are more than willing to believe Russia was responsible for the hacked emails/records that influenced our electio...
P vs. NP
For those who just want the survey itself, not the backstory, it’s here. (Note: Partly because of the feedback I’ve gotten on this blog, it’s now expanded to 121 pages!) Upda…
The ad tech renaissance
We simply must fix the monetization and distribution challenges that publishers face.
Why isn't memset() async-signal-safe?
Really, POSIX? Really? memset() isn't async-signal-safe? How is it not safe? … oh … that's why
Class Breaks
There’s a concept from computer security known as a class break. It’s a particular security vulnerability that breaks not just one system, but an entire class of systems. Examples might be a vulnerability in a particular operating system that allows an attacker to take remote control of every computer that runs on…
Writing a Faster Sorting Algorithm
These days it’s a pretty bold claim if you say that you invented a sorting algorithm that’s 30% faster than state of the art. Unfortunately I have to make a far bolder claim: I wrote a …
Basic Economy Fares Don't Lower Ticket Prices, They Increase Ticket Prices
When Delta started testing 'Basic Economy' fares in 2012 the idea was to compete with the ultra low cost carriers -- they already had to match price, so they wanted to be able to offer a product that was closer to the limited service Spirit provided, in hopes that customers would buy up to more expensive fares for…
Finding an Alternative to Mac OS X
This is the first in a series on finding a replacement for Mac OS X.
Why recursive data structures?
In this essay, we are going to look at recursive algorithms, and how sometimes, we can organize an algorithm so that it resembles the data structure it manipulates, and organize a data structure so that it resembles the algorithms that manipulate it.