New
The latest blog posts to take off on Hacker News. 2,470 posts.
Towards a JavaScript Binary AST
In this blog post, I would like to introduce the JavaScript Binary AST, an ongoing project that we hope will help make webpages load faster, along with a number of other benefits. A little background Over the years, JavaScript has grown from one of the slowest scripting languages available to a high-performance…
Security Keys
Security Keys are (generally) USB-connected hardware fobs that are capable of key generation and oracle signing. Websites can “enroll” a security key by asking it to generate a public key bound to an “appId” (which is limited by the browser based on the site's origin). Later, when a user wants to log in, the website…
John Scalzi: Being Poor (2005)
Visit the post for more.
Why Elixir (2014)
It’s been about a year since I’ve started using Elixir. Originally, I intended to use the language only for blogging purposes, thinking it could help me better illustrate benefits of Erlang Virtual Machine (EVM). However, I was immediately fascinated with what the language brings to the table, and very quickly…
Assume positive intent
Chris could have become my worst nightmare.
Elixir in Depth – Reading and personal notes
Elixir is a hot and trendy topic nowadays. Of the newer languages that show up periodically on Hacker News, I found t...
Home computing for $5/month
As a programming father you need to be concerned about your budget. This means resisting the temptation to buy the most amazing hardware, an...
X: The First Fully Modular Software Disaster
X-Windows is the Iran-Contra of graphical user interfaces: a tragedy of political compromises, entangled alliances, marketing hype, and just plain greed. X-Windows is to memory as Ronald Reagan was to money. Years of "Voodoo Ergonomics" have resulted in an unprecedented memory deficit of gargantuan proportions…
A programming language from scratch: 3 steps to an interpreter
A little while ago I wrote about 16bitjs, a 16 bit virtual machine written in javascript. It implemented a custom CPU architecture and assembly language, assembler, and debugger. I had the thought …
Casually removing root files
You’re walking at $HOME, minding your own business. $ whoami > user $ pwd > /home/user But something is bothering your feet. It’s like if a little rock has fallen into your shoe. You take it off, to see what’s going on. $ ls -lah ./left-shoe ---------- 1 root root 4 May 30 13:20 little-rock That’s odd. It’s there, but…
How to Pick Your Next Gig: Evaluating Startups
Samvit Jain writes on startups, the tech industry, machine learning, and what he has learned along the way.
How Postgres Makes Transactions Atomic
A dive into the mechanics that allow Postgres to provide strong atomic guarantees despite the chaotic entropy of production.
The Problem with F# Evangelism
There seems to be a constant struggle to convince seasoned C# developers to give F# a try. Which is a pity because language and concepts deserve better.
On Norbert Blum’s claimed proof that P does not equal NP
Edited 8/16 to correct attributions to Alon and Boppana and to Tardos, thanks to an anonymous commenter for the correction Yesterday, Norbert Blum posted a preprint with a claimed proof that $latex…
Understanding the math behind 0x5f3759df and the fast inverse square root (2012)
This post is about the magic constant 0x5f3759df and an extremely neat hack, fast inverse square root, which is where the constant comes from.
Migrating 1200 databases from MySQL to Postgres
Once Upon a Time there was a company called Base7Booking that by the beginning of 2016 it was supporting around 1200 databases on MySQL 5...
On Melissa O’Neill’s PCG random number generator
Computers often need random numbers. Most times, random numbers are not actually random... in the sense that they are the output of a mathematical function that is purely deterministic. And it is not even entirely clear what "really random" would mean. It is not clear that we live in a randomized universe... it seems…
Teaching an AI to play a simple game using Q-learning
In this post I will walk you through how to teach a computer to master a simple video game using the q-learning reinforcement learning algorithm. We will implement the algorithm from scratch in Ruby without the use of external gems. To enable us to illustrate the inner workings of the algorithm we will be teaching […]
Rustgo: Calling Rust from Go with near-zero overhead
Go has good support for calling into assembly, and a lot of the fast cryptographic code in the stdlib is carefully optimized assembly, bringing speedups of over 20 times.
What I believe II
Unrelated Update: To everyone who keeps asking me about the “new” P≠NP proof: I’d again bet $200,000 that the paper won’t stand, except that the last time I tried that, it d…
Writing parsers like it is 2017
Writing parsers like it is 2017 Chifflier & Couprie, SPW’17 With thanks to Glyn Normington for pointing this paper out to me. Earlier this year we looked at ‘System programming in R…
Plans for partitioning in PostgreSQL v11
The reaction to the new table partitioning feature in PostgreSQL 10 has been overwhelmingly positive, but a number of people have already as...