Catena: SQL on a blockchain

A blockchain allows different entities share a database without having to entrust that database to a single entity. Catena provides an SQL database on top of a blockchain, providing all the benefits of blockchains (resiliency, distributed operation, openness) while providing a familiar interface to its users.

Rethink.swift – A Swift driver for RethinkDB

RethinkDB is the first open-source, scalable JSON database built from the ground up for the realtime web. Rethink.swift is a work-in-progress framework that allows interfacing with RethinkDB from the Swift programming language. Connecting and querying RethinkDB from Swift is straightforward and is frictionless because of¬†all the syntactic sugar Swift provides …

Chartly: build data visualisations in the browsers using puzzle pieces

Chartly.js is a web component that allows end users to create (‘program’) a chart using the Blockly visual programming environment. Charts are ‘compiled’ to a JSON specification for the chart. At run time, Chartly interprets the JSON and draws the chart using d3.js. Chartly is open-source under the MIT license. …

Prevent form spam using in-browser proof-of-work

Automated bots abuse comment forms to put advertisements on websites.¬†Traditional CAPTCHAs prevent spam by exploiting the fact that computers cannot solve a particular problem easily, and that humans that can solve them are scarce/expensive/slow (but available in the regular use case). Proof of work, by contrast, exploits the fact that …

A recursive descent parser generator in JS

Ll.js provides a simple way of parsing about anything using a recursive-descent algorithm. The grammar to be parsed is written in a friendly DSL (domain specific language) in JavaScript itself that resembles EBNF. Each parser term can be annotated with a function; when the final parse tree includes the term, …

TJShow: an interactive show controller

TJShow is show controller software to create highly interactive and highly integrated shows. With the easy-to-use interface, you can create rich multimedia timelines and interaction, and control a plethora of devices and media using industry standard protocols. TJShow is the result of a research project I performed in 2006 together …

Cactus: the 3D engine I wrote when I was 15

Cactus is a software 3D rendering library written in clean C/C++ and is a port of Peter Walser’s idx3dIII engine in Java (currently nowhere to be found on the internet… luckily, the Internet Archive still has a copy; original source code is available here). Although it is outperformed by 3D …