Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 2,307 posts.
JetBrains IDE Remote Code Execution and Local File Disclosure
TL;DR From at least 2013 until May 2016 JetBrains' IDEs were vulnerable to local file leakage, with the Windows (EDIT: and OS X) versions …
So You Want to Be a Hero?
Rule #1 is “The Player Must have Fun.” It’s trivially easy for a game designer to “defeat” players. We have all the tools and all the power. The trick is to play on the same side as the players, to tell the story together, and to make them the stars.
Welcoming Adrian Cockcroft to the AWS Team
Adrian Cockcroft will be joining AWS as VP of Cloud Architecture
How Hamming codes work
Detecting (and correcting) errors in digital signals.
Anatomy of a World War I Artillery Barrage
A lot has been said about the role of artillery in World War I, in both its intensity and ferocity. On the opening day of the Somme on July 1, 1916, British guns hurled 250,000 high explosive and s…
Learning from Ada
This is a cautionary tale. One of youth and a lesson I eventually learned but still often don’t heed. About how sometimes, the tool that is easiest to get started with isn’t the tool that will make your job the easiest.
Playing with Syntax
One of the things I love about Lisp is that it gives you the ability to change and mold the syntax of the language to what you need. In this post I want to look at the evolution of a little macro I've been playing around with for a while now.
The surprising cleverness of modern compilers
I wanted to know how a modern C compiler like clang would process the following C code: #include <stdint.h> int count(uint64_t x) { int v = 0; while(x != 0) { x &= x - 1; v++; } return v; } Can you guess? popcntq %rdi, %rax That is right. A fairly sophisticated C function, … Continue reading The surprising cleverness…
Justice-as-a-Service
There’s a new wave of customer empowerment coming. It’s called Justice-as-a-Service (JaaS), and you need to know about it because it benefits you – you just don’t know it yet. We’ve all...
Functional programming in C (2013)
0.1 Discriminated unions in C 0.2 Nested functions and lambda variables 0.3 Automatic cleanup of local variables 0.4 Data structures 0.5 Wrapping up This post/program (as I’m writing it in literate…
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.
Folding Paper with a Hydraulic Press
What happens when you ignore the math
Before You Get Too Excited About That GitHub Study
Another day, another study purporting to find that Tech Is Sexist. Since it’s showing up here, you probably already guessed how this is going to end. Most of this analysis is not original to …
I missed Nim (2014)
A year ago I wrote an article trying to round up new languages since year 2000 and what I think of them by just… glancing at them, or otherwise playing with them. I ended up sifting out the 4 m…
How Generalised Problems Kill Startups
It’s crazy how often I hear founders say ‘I think the problem we’re really solving is X’. Hang on a second… You ‘think’? The surprising…
SeaHash: Explained
I explain how SeaHash works.
My New Year’s Resolution – read a research paper every weekday
… and post a write-up on this blog. That sounds crazy of course – who has the time to read a paper every weekday? Let alone write it up! I’ve done it for each of the last two calendar y…
Is Apple Using Swift?
Apple has been actively evangelizing the use of Swift since it was announced at WWDC in 2014. In the Platforms State of the Union, Andreas…
Putting my VB6 Windows Apps in the Windows 10 Store
I noticed today that Evernote was in the Windows Store. I went to the store, ...
Let's Build a Simple Interpreter, Part 1 (2015)
“If you don’t know how compilers work, then you don’t know how computers work. If you’re not 100% sure whether you know how compilers work, then you don’t know how they work.” — Steve Yegge There you have it. Think about it. It doesn’t really matter …