In the long run, GPL code becomes irrelevant.

I wrote this in response to a comment thread on hackernews Defending GCC considered futile. There's been a megathread in the last week about whether Emacs should support LLVM, with Richard Stallman and now Eric Raymond joining the frey. Personally, I use a BSD license for all my code and…

Feminism needs more leadership, less nerd shaming

(Please consider avoiding this article if you acutely feel victimised because of your gender.) (Edit: I posted this to facebook and was misinterpretted. I am a feminist, and I'm posting this because we need to do feminism better. This isn't about hating on feminists - this is about certain individuals…

ALU in boilerplate

I've been taking a break from serious programming to spend some time messing around with boilerplate again. Its a hunk of boilerplate logic which can add or subtract (!!) any two numbers. The two numbers come in on the top left. They're represented in binary with the high bit at the…

Goodbye SF

Its nearly 2 am and I'm sitting up alone in some airbnb apartment in a shitty neighbourhood in SF. Work paid for a week long trip here - full of meetings that I'm mostly running, planning out a bunch of software I've been wanting to write for years. And will…

Bug hunting with American Fuzzy Lop

I read about American Fuzzy Lop (AFL) the other day, and wanted to try it. For the non-technical, fuzzers are testing tools for finding obscure bugs. They work by effectively sitting a million monkeys at keyboards pressing buttons in your program, to see if it crashes or hangs. AFL is…

A cleaner way to design an IDE

In part 1 I talked about how modern IDEs look like this: There are some serious problems with this model: The code needs to be parsed in several places. When the code changes, the binaries need to be recompiled. Triggering this recompilation requires either: Manual recompilation (at the worst possible…