Most cited
Posts that commenters keep linking to, ranked by how many different people have cited them in Hacker News comments. 92 posts.
The largest Git repo
It’s been 3 months since I first wrote about our efforts to scale Git to extremely large projects and teams with an effort we called “Git Virtual File System”. As a reminder, GVFS, together with a set of enhancements to Git, enables Git to scale to VERY large repos by virtualizing both the .git folder […]
Ubershaders: A Ridiculous Solution to an Impossible Problem
When you're playing your favorite game on Dolphin with a powerful computer, things should run fairly well. The game is running full speed, there are no graphical glitches, and you can use your favorite controller if you want. Yet, every time you go to a new area, or load a new effect, there's a very slight but…
Notes on Programming in C – Rob Pike (1989)
What follows is a set of short essays that collectively encourage a philosophy of clarity in programming rather than giving hard rules. I don't expect you to agree with all of them, because they are opinion and opinions change with the times. But they've been accumulating in my head, if not on paper until now, for a…
Why Constant-Time Crypto?
In 1996, Paul Kocher published a novel attack on RSA, specifically on RSA implementations , that extracted information on the private key by simply measuring the time taken by the private key operation on various inputs. It took a few years for people to accept the idea that such attacks were practical and could be…
Tom Duff on Duff's device (1988)
I normally do not read comp.lang.c, but Jim McKie told me that `` Duff's device '' had come up in comp.lang.c again. I have lost the version that was sent to netnews in May 1984, but I have reproduced below the note in which I originally proposed the device. (If anybody has a copy of the netnews version, I would…
The Implementation of Functional Programming Languages
“The Implementation of Functional Languages” is a book about implementing functional programming languages using lazy graph reduction, and it divides into three parts. The first part describes how to translate a high-level functional language into an intermediate language, called the lambda calculus, incuding detailed…
PEP 557 – Data Classes
This PEP describes an addition to the standard library called Data Classes. Although they use a very different mechanism, Data Classes can be thought of as “mutable namedtuples with defaults”. Because Data Classes use normal class definition syntax, y...
Welcome to Gitea
Gitea is a community fork of the popular self hosted Git service Gogs. We're a growing group of former Gogs users and contributors who found the single maintainer management model of Gogs frustrating and thus decided to make an effort to build a more open and faster development m
How Discord Scaled Elixir to 5M Concurrent Users
Discover the latest news and app updates, stories, company insights, and plenty more about Discord, all in one place.
Helping a Million Developers Exit Vim
You're not alone, jclancy. In the five years since this question was asked, there have been over a million other developers who got stuck in Vim and couldn't escape without a bit of help. Indeed, the difficulty of quitting the Vim editor is a common joke among developers.
Toward Go 2
How we will all work together toward Go 2.
Ways to paginate in Postgres (2016)
Pagination, pervasive as it is in web applications, is easy to implement inefficiently. This post examines different methods of server-side pagination and their tradeoffs in PostgreSQL. Methods explored include limit-offset, cursors, keyset pagination, as well as more exotic techniques.
Friday Facts #176 - Belts optimization for 0.15
Hi everyone. About half a year ago whenever I was sitting deeply in Factorio and when I needed to spend time in my phone, I was reading FFF or Factorio forum. Later when I decided to move - I suddenly realized that Wube is the most logical target to apply my crazy mind. All thanks to those FFF and you guys. Now I am…
Introduction to ARM Assembly Basics
Welcome to this tutorial series on ARM assembly basics. This is the preparation for the followup tutorial series on ARM exploit development . Before we can dive into creating ARM shellcode and build ROP chains, we need to cover some ARM Assembly basics first.
Hey Siri: An On-Device DNN-Powered Voice Trigger for Apple’s Personal Assistant
The “Hey Siri” feature allows users to invoke Siri hands-free. A very small speech recognizer runs all the time and listens for just those…
A million-dollar engineering problem
Explore technical topics, solutions, and resources for building with Twilio – and beyond.
Developers who use spaces make more money than those who use tabs
This is a bit of a "holy war" among software developers; one that's been the subject of many debates and in-jokes. I use spaces, but I never thought it was particularly important. But today we're releasing the raw data behind the Stack Overflow 2017 Developer Survey , and some analysis suggests this choice matters…
APIs, robustness, and idempotency
Online payment processing for internet businesses. Stripe is a suite of payment APIs that powers commerce for businesses of all sizes.
A cartoon intro to WebAssembly
WebAssembly is a way of taking code written in programming languages other than JavaScript and running that code in the browser. So when people say that WebAssembly is fast, what ...
Verified cryptography for Firefox 57
Traditionally, software is produced in this way: write some code, maybe do some code review, run unit-tests, and then hope it is correct. Hard experience shows that it is very ...
What makes WebAssembly fast?
Programming with WebAssembly or JavaScript is not an either/or choice. So developers don’t need to choose between WebAssembly and JavaScript. However, we do expect that developers will swap out parts ...
Why WebAssembly Is Faster Than Asm.js
Performance is tricky to measure, and has many aspects. Also, in a new technology there are always going to be not-yet-optimized cases. So not every single benchmark will be fast ...