Packrat Parsers

Its a long weekend, so I wrote a packrat parser! (AKA Parsing Expression Grammar, or PEG.) I implemented the example grammar from the original paper. Here its parsing the string 2*(3+4): Holy cow thats a lot of steps for a 7 character string. No wonder modern compilers take…

Culture Push, Culture Pull

[Epistemic status: speculative, based off my interpretation of Kegan stage 3 -> 4 transition] Sometimes you want to absorb the culture around you (like the first day at a new job, or when you travel to a new city). Other times you want to explicitly take part in creating the…

Boilerplate performance improvements

I spent the last couple of days making some under-the-hood improvements to boilerplate. If I did my job right, you shouldn't notice the change at all. I rewrote part of the graphics engine to use OpenGL. Previously rendering time was evenly split between rendering the background cells, pressure shading and…

Kegan's Social Developmental Milestones

I recently read a book on Kegan's Social Developmental Milestones. It was excellent. For the last month or so I've been wearing Kegan tinted glasses while I look at the world. I'm bringing it up so much my friends have been teasing me about it. When I picked up the…

The tide of opensource

20 years ago it took a whole team to make games like Command & Conquer. Today I could get the gameplay for something like that working in a few weeks. The reason I'm more productive is that I have better tools. I imagine it as a rising tide of tools…

128 Bytes of RAM

This is oddly beautiful: Its a prototype for 128 bytes of RAM in boilerplate. I'd work if I add a redpower-style bundled wire block type.…