Stuff I've made
I make way, way too many things. Here's a list of some of the ones that are particularly interesting or notable, though there are many other smaller ones. Not all of these projects are finished, and some have been since shut down.
Various PHP RFCs and patches
2013–2016 · C89, Automake · Not dead · Website · RepositoryI've contributed various bug fixes, new features and other changes to PHP, specifically its interpreter (written in C) and language specification. The larger changes have involved going through the PHP RFC process.
The most notable of these changes has been PHP 7's Scalar Type Hints, whose RFC and implementation I wrote the initial versions of.
Other RFCs I created include Closure::call, ZPP Failure on Overflow, Integer Semantics, Null Coalesce Operator, Unicode Codepoint Escape Syntax, Void Return Type, Allow specifying keys in list(), and Warn about invalid strings in arithmetic.
pico8bot.php
2016 · PHP 7 · Not dead · RepositoryA PHP program generating images from expressions, inspired by a Twitter bot that does the same. It contains a small parser for an infix mathematical expression language, an evaluator, and a PHP-targeting compiler.
Warring floodfill cellular automata
2015 · JavaScript, HTML5 canvas · Not dead · WebsiteColours that live.
pet tha focks
2015 · Haskell, animated GIF · Not dead · Website · RepositoryA tiny Tamagotchi-esque game about petting a fox, written in Haskell using the Haste Haskell-to-JavaScript compiler. The pixel art is my own.
ElePHPants Love Coffee
2015 · PHP 7, JavaScript, Zend Engine · Not dead · RepositoryA PHP-to-JavaScript compiler written in PHP 7, which takes the naïve approach of taking Zend Engine opcodes as input and replacing them with their corresponding JavaScript with limited analysis. It is not in a very usable state, but it is a fun project.
win95.ajf.me
2015 · C++ (emscripten), Batch · Not dead · WebsiteWindows 95 emulated in the browser, thanks to the wonderful work of Emscripten, DOSBox, Em-DOSBox and browser engine contributors. I only put up the site.
Crockford Facts.org
2015 · JavaScript (node.js), HTML, CSS · Defunct · Website · RepositoryA recreation of everyone's favourite Douglas Crockford biographical source.
Firth
2015 · JavaScript · Not dead · RepositoryA work-in-progress functional, strongly dynamically-typed, concatenative stack-oriented programming language.
DevPerc.c
2015 · C99 · Not dead · RepositoryAn incomplete C99 interpreter in C for my esoteric programming language, DevPerc. The original 2011 interpreter was written in Python.
PictoSwap
2013 · JavaScript, HTML5 Canvas, PHP, HTML, CSS · Not dead · Website · RepositoryA Nintendo 3DS single-page messaging web app made as a homage to the now-defunct Nintendo Letter Box (aka Swapnote). It allows users to draw notes on the touchscreen in multiple colours, send them to other users, and watch the drawing of those notes be replayed. The server-side portion is written in PHP 7 with SQLite. An interesting challenge of this project is that the 3DS is a very limited hardware platform with an old (2009) web browser rendering engine, so the application has to be quite lightweight, and message preview images have to be rendered server-side.
Various Gang Garrison 2 contributions
2011–2015 · Game Maker Language, C, PHP, HTML, CSS · Not dead · Website · RepositoryMostly behind-the-scenes stuff, including implementing a centralised game plugin distribution system, so players can automatically download plugins needed to play on particular game servers. As part of these contributions, I also wrote Faucet HTTP, a Game Maker Language HTTP/1.1 implementation!
manic.js
2014 · JavaScript, THREE.js, WebSocket · Not dead · RepositoryA Minecraft Classic client written in JavaScript using WebSocket and THREE.js.
lunasync
2013 · JavaScript, node.js, WebSocket, HTML, CSS · Defunct · Website · RepositoryA YouTube playlist-synchronising chatroom service written in JavaScript using node.js and WebSocket.
schnitzelVerse
2013 · JavaScript, node.js, WebSocket, HTML, CSS · Defunct · Website · RepositoryA multi-user visual chatroom formed as an offshoot of ponyplace, with user-uploadable 2D avatars, a world made up of infinitely-sized rooms decorated with user-generated content, having its own (non-turing-complete) scripting language. Written in JavaScript using node.js and WebSocket.
ponyplace
2012 · JavaScript, node.js, WebSocket, HTML, CSS · Defunct · Website · RepositoryA multi-user visual chatroom with animated 2D avatars, shopping system, accounts, multiple rooms, customisation, etc. Written in JavaScript using node.js and WebSocket.
DevPerc
2011 · Python · Not dead · Website · RepositoryAn esoteric programming language.
SchnitzelCraft/0
2010 · C, WinSock · Defunct · RepositoryA very poorly written (I was inexperienced) Minecraft Classic server written in C using WinSock and zlib.