Why Philosophers Should Care About Computational Complexity
Update (August 11, 2011): Thanks to everyone who offered useful feedback! I uploaded a slightly-revised version, adding a “note of humility” to the introduction, correcting the footnot…
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 21,835 posts.
Update (August 11, 2011): Thanks to everyone who offered useful feedback! I uploaded a slightly-revised version, adding a “note of humility” to the introduction, correcting the footnot…
Customize Shell Environment and Appearance
What Ruby’s top-level methods actually are, who they belong to and how they are namespaced
Exploring the math behind hash collisions.
It's that time of year again apparently. Rather than fill in the template for you this time, I'll just give you the general outline of what...
Why two identical VMs on the same host can perform 20% differently — and what NUMA topology in Xen-based virtualization actually costs you.
count(*) is often quite slow in PostgreSQL. This article explores how to count rows faster using approximations and other tricks.
When I wrote the introductory article for libjit , I aimed it at programmers who know what JITs are, at least to some extent. I did mention what a JIT is, but only very briefly. The purpose of this article is to provide a better introductory overview of JITing, with code samples that don't rely on any libraries.
Tony Hoare at the LASER summer school, September 2007 (All photographs in this article are by the author) Had they included just one of Tony Hoare’s major achievements, many scientific careers would be considered prestigious enough. His had a long list, which I am going to try to summarize, not pretending to get…
“An obvious way to deal with embedded interpreters — which someone must have thought of and tried, but I don’t have any pointers — would be to have an API for teaching the fuzzer how to see coverage of the language being interpreted.”
First of a two-part series on the best strategies for hiring humans in the 21st century. Fueled by both personal experience and the experience of countless mentors (and recruiters), this gigantic post is bursting at the seams with knowledge. Though specifically written by a CTO-type, the strategies are useful for…
In a recent pentesting assignment, there was a service which converted uploaded files to PDF/A format, to make them safer for handling. Afte...
I was recently encouraged to watch A Practical Guide to Applying Data Oriented Design (DoD) by Andrew Kelley, the creator of Zig1. Just 10 minutes into the talk, I was confronted with a skill I had never formally learned… the arithmetic behind memory layout of types. Zig is a modern, C-like programming language which…
Update: This is a re-post of an older blog post of mine. Originally it was posted on my personal blog where it has >30 comments and >20’000 views over the last years. I’m deprecating my personal blog in favor of this 200OK blog.
The tokens #t and #f are the True and False literals, respectively. The single quote mark serves to quote the following expression. The syntax ' exp is completely equivalent to (quote exp ) . The backquote character ` is called quasiquote in Scheme; it is similar to ' except that within a quasiquoted expression, the…
Mercurial 3.5 was released today (following Mercurial's time-based schedule of releasing a new version every 3 months).
Clang is a marvelous compiler; it’s a compiler’s compiler! But it isn’t a toolsmith’s compiler. As a toolsmith, my ideal compiler would be an open book, allowing me to get to everywhere from anywhere. The data on which my ideal compiler would operate (files, macros, tokens), their eventual interpretation…
While he was over in the UK for a book tour and lecture series, Professor Donald Knuth made time to talk to BCS editor Justin Richards about his life.
Tap, Click, Launch
I often want to program something just for fun without any expectations. But why? Well, a recent scientific paper investigated this idea of programming as play.
23114, 584, 46931, these three numbers were used to create the entire universe for Elite .
In Linux, system calls (syscalls) are at the heart of everything. They are the primary interface through which an application interacts with the kernel.
Raft is a consensus protocol for managing a replicated log across a cluster of nodes. Its key goals are: (1) maintain a consistent replicated log of state transitions, (2) tolerate node failures, and (3) ensure a single leader coordinates all changes while multiple followers replicate. Raft is designed to be…
Chrome is always looking for ways to speed up the web. Starting in Chrome 53, Chrome has started using Microsoft’s Profile Guided Optimizat...
Access to this page requires authorization. You can try signing in or changing directories .
(UPDATED: updated to the PR are now reflected in the post) Something exciting is coming. Everyone is talking about WebSockets and their older cousin EventSource / Server Sent Events (SSE). Faye and…
One of the most surprising aspects of the Nix language is that it is lazy, especially if you have never used a lazy language before. This laziness is what makes much of Nixpkgs possible, and its complexity.