New
The latest blog posts to take off on Hacker News. 2,851 posts.
Visual Cryptography
How to create perfect secret messages that can be decoded using just your eyes.
Modelling a Basic Income with Python and Monte Carlo Simulation
Basic Income is a popular policy floating around the internet lately. The idea consists of declaring that the government will pay each living adult a fixed amount of money every month - an amount comparable to a minimum wage job. This policy would then replace all current welfare programs - welfare, unemployment …
High-Resolution Mandelbrot in Obfuscated Python
Here’s a followup to last month’s post about Penrose Tiling in Obfuscated Python. The Mandelbrot set is a traditional favorite among authors of obfuscated code. You …
Wounded QR Codes
How do QR codes work? How much is it possible to distort one and still have it readable?
An Intuitive (and Short) Explanation of Bayes’ Theorem
Bayes’ theorem was the subject of a detailed article. The essay is good, but over 15,000 words long — here’s the condensed version for Bayesian newcomers like…
How to build an Anti Aircraft Missile: Bayes’ Theorem and the Kalman Filter
Ever wondered how an Anti Aircraft Missile works? A plane can move at different speeds and altitudes, so how do you know when to fire your missile? Well you need to know two things: where the aircr…
Principal Component Analysis for Dummies
(I recently wrote a new post that you may also find interesting called Principal Component Analysis 4 Philosophers) Having been in the social sciences for a couple of weeks it seems like a large am…
The Median-of-Medians Algorithm
In this post, we consider the problem of selecting the \(i\)-th smallest element from an unsorted list of \(n\) elements. Somewhat surprisingly, there is an algorithm that solves this problem in linea
Bloom Filters by example
A Bloom filter is a data structure designed to tell you, rapidly and memory-efficiently, whether an element is present in a set.
The keys to the keydom
Your security and privacy on the Internet (to the extent that such quaint notions still have meaning) depend on the difficulty of factoring certain large numbers. For example, take this 1,024-bit integer:
Exact numeric nth derivatives
Automatic differentiation is a well-studied technique for computing exact numeric derivatives. Dan Piponi has a great introduction on the subject , but to give you an overview, the idea is that you introduce an algebraic symbol such that but . Formulas involving are called dual numbers (e.g., , ) in much the same way…
How to escape a monster (using calculus)
You are sitting in a rowing boat in the middle of a circular lake. How do you escape from a smart monster on the shore who can run four times faster than you can row?
Ethiopian Binary Math
Today, a witch doctor practices computer arithmetic. The University of Houston's College of Engineering presents this series about the machines that make our civilization run, and the people whose ingenuity created them. The scene is a remote Ethiopian village in 1940. A Farmer offers his herd of 34 goats for sale…
The Existential Risk of Mathematical Error
Mathematical mistake/error-rates limit our understanding of rare risks and ability to defend against them.
How traffic actually works
Every so often this article makes the rounds and it annoys me. That isn’t how traffic works and the proposed solutions won’t fix anything. Maybe you can eliminate the annoying stop-and-go, but no one gets home any faster. In fact you can prove that you and everyone behind you get home strictly later than if you had…
Deciphering the Business Card Raytracer
I recently came across Paul Heckbert's business card raytracer. For those that have never heard of it: It is a very famous challenge in the Computer Graphics field that started on May 4th, 1984 via a post on comp.graphics by Paul Heckbert ( More about this in his article " A Minimal Ray Tracer " from the book Graphics…
How Advanced Is the NSA's Cryptanalysis, and Can We Resist It?
The latest Snowden document is the US intelligence ‘black budget.’ There’s a lot of information in the few pages the Washington Post decided to publish, including an introduction by Director of National Intelligence James Clapper. In it, he drops a tantalizing hint: ‘Also, we are investing in groundbreaking…
Understanding the FFT Algorithm
The Fast Fourier Transform (FFT) is one of the most important algorithms in signal processing and data analysis. I've used it for years, but having no formal computer science background, It occurred to me this week that I've never thought to ask how the FFT computes the discrete Fourier transform so quickly. I dusted…
What is algebra?
NOVEMBER 20, 2011. We hear a lot about the importance that all children master algebra before they graduate from high school. But what exactly is algebra, and is it really as important as everyone …
I hate the Pumping Lemma
I hate the Pumping Lemma for regular languages. It’s a complicated way to express an idea that is fundamentally very simple, and it isn’t even a very good way to prove that a language is not regula…
Rotating Images
How to rotate an image, and a need trick to rotate a bitmap an arbitrary amount in a simple paint package.
The Factoring Cryptopocalypse
The key detail to understand about the work in the Joux papers is that it is limited to solving discrete logarithm problems over fields of small characteristic . As interesting as the work is, mathematically, it should not be a great surprise to cryptographers: We've known for over a decade that small-characteristic…
Gödel, Turing and Cantor: The Math
This is mathematical section of the parent essay Gödel Incompleteness for Startups Gödel Numbering A formal system is just a collection of axioms and rules. Just like we did before we can record ax…
Computer scientists develop 'mathematical jigsaw puzzles' to encrypt software
The "software obfuscation" system encrypts software so that it only allows someone to use a program as intended while preventing any deciphering of the code behind it.
A back-projection algorithm to extract 3D volume from shadows
If you'd rather read python than english you can go straight to the code on github: https://github.com/jminardi/volume-from-shadow