New
The latest blog posts to take off on Hacker News. 21,837 posts.
Reducing the maximum latency of a bound buffer in Erlang
Recently I came across two great articles on the Pusher blog: Low latency, large working set, and GHC’s garbage collector: pick two of three and Golang’s Real-time GC in Theory and Practice . The articles tell the story of how Pusher engineers reimplemented their message bus. The first take was done in Haskell. During…
So you want to expose Go on the Internet
Back when crypto/tls was slow and net/http young, the general wisdom was to always put Go servers behind a reverse proxy like NGINX. That’s not necessary anymore!
CHIP-8 in Common Lisp: The CPU
A while back I decided to try to write a Game Boy emulator in Common Lisp based on this series of articles . I made some good progress but eventually got bogged down because I was trying to learn a bunch of complex new things at once:
Skip Lists Done Right
Skip lists are a wonderful data structure, but it is hard to get\ right. This blog post presents various techniques to optimize and\ improve the implementation of skip lists.
Beware of Developers Who Do Negative Work
Not all developers make positive contributions. Some create more work for others than they do themselves.
The Next Five Years of ClojureScript
I delivered a talk at the well attended ClojuTRE conference in Tampere, Finland this past September titled "The Next Five Years of ClojureScript". The Clojur...
Why is .NET reflection slow?
It’s common knowledge that reflection in .NET is slow, but why is that the case? This post aims to figure that out by looking at what reflection does under-the-hood.
The Idea of Lisp
How a programming language can be an idea.
Reversing Go Binaries Like a Pro
GO binaries are weird, or at least, that is where this all started out. While delving into some Linux malware named Rex, I came to the realization that I might need to understand more than I wanted to
Recent efforts in V8 and DevTools for Node.js
This blog post highlights some of the recent efforts to make Node.js better supported in V8 and Chrome DevTools.
A Visual and Interactive Guide to the Basics of Neural Networks
Discussions: Hacker News (63 points, 8 comments), Reddit r/programming (312 points, 37 comments) Translations: Arabic, French, Spanish Update: Part 2 is now live: A Visual And Interactive Look at Basic Neural Network Math Motivation I’m not a machine learning expert. I’m a software engineer by training and I’ve had…
The Signal protocol for Node and browsers
Signal is a protocol for encrypted chat. Developed by Moxie Marlinspike and Trevor Perrin, the Signal protocol backs the excellent Signal Messenger , and has since been incorporated into WhatsApp, Facebook Messenger and Google Allo.
Webpack 2.2 – Release Candidate
The talks of webpack 2 started back in January of 2015. Since then we have published multiple versions from 2.0 to 2.1-beta.28.
LLVM's New Versioning Scheme
Historically, LLVM's major releases always added "0.1" to the version number, producing major versions like 3.8, 3.9, and 4.0 (expected by March 2017). With our next release though, we're changing this.
I've been writing ring buffers wrong all these years
So there I was, implementing a one element ring buffer. Which, I'm sure you'll agree, is a perfectly reasonable data structure.
Version SAT
The package version selection problem is to find a set of dependencies that can be used to build a top-level package P that is complete (all dependencies satisfied) and compatible (no two incompatible packages are selected). There may be no such set, because of the diamond dependency problem: perhaps A needs B and C…
Why Kakoune – The quest for a better code editor
While discussing with fellow developers, I was asked the following question a few times: We spend most of our time as developers thinking, not editing code; so, why invest time into mastering a complicated code editor, and why lose some cognitive resources on thinking about text editing instead of about the real…
How Discord handles over a million requests per minute with Elixir’s GenStage
This is the story of how we assessed and refactored two video players into one, cut the player code each product maintained by up to 94%, and swapped to the new player without disruption to any users.
What Makes a Senior Software Developer?
The notion of a "senior" developer is extremely subjective. How can we define it better?
Some Tools for Go Lang That You Might Not Know Yet
Year’s end is coming closer. Time to clean up repositories and polishing up the toolset. All the well-known tools have been installed already–is there anything else to add to the toolbox?