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…

The Unix way in an IDE, Part 1

I love the unix philosophy. I want everything I make to be a lot of small tools which compose together to form programs more powerful than any piece on its own. Shell scripting is the epitome of this. Its a form of programming in a sense - every script does…

Gangnam Stats

At time of writing, Gangnam style has 2,082,054,675 views. About 2 billion, for a 4 minute long video. That seems really big, but I can't really understand that number. In total, 4 minutes * 2 billion is 133 million hours or 15,220 years. If people live about…

In defense of sillyness

A few weeks ago I was reading some XKCD comic about ninja turtles: I won't embed the comic itself the content isn't terribly important - he presented some wikipedia pages which could be sung to the tune of the teenage mutant ninja turtles theme song. Ok, cute. Sure.. But it…

Boilerplate Compiler

I want to finish my boilerplate CPU, but the simulator and editing environment are way too slow to handle big machines. The simulator currently floodfills from every engine every tick, and I'm currently rendering using canvas. Both are fine answers for trivial machines, but my little macbook air gets about…