Current projects:
lightweight ajax toolkit: cantools
This is the application-neutral backbone of CivilActionNetwork.org. It provides basic functions for interacting with the DOM, fixes for common browser inconsistencies, and a simple model for communication with a Python backend.
event notification system: rel
Application developers have grown increasingly reliant on pyevent, which in turn depends on certain C modules. rel emulates pyevent using the fastest methods available, and works completely cross-platform without making Python programmers install a C compiler.
The project initially was intended for prototyping and rapid application deployment on an arbitrary system. Since then, rel has corrected certain problems with pyevent 0.3, including the deadly trap presented by recursive dispatching. Significantly, rel provides full GIL integration, without which pyevent is virtually impossible to use with WSGI, and with threaded applications in general.
fast asynchronous network stack: dez
An asynchronous architecture is essential for any scalable application. The dez stack supports several levels of HTTP request handling, uniquely providing enough control to run Comet applications.
The dez library includes an asynchronous server benchmarking toolset; advanced, inotify-based static caching; XML and JSON stream parsing; Stomp, OP, HTTP, and WebSocket servers; and WebSocketProxy, which enables web application deployment on existing, unmodified TCP servers without straying from the HTML5 spec. In addition, dez offers a highly sophisticated API for implementing custom protocols, as well as a controller class that simplifies the creation of applications that require multiple servers to run in the same process.
socket protocols for the web: js.io
js.io is the only javascript library of its kind. It provides the developer with APIs for common open protocols, as well as tools for protocol implementation.
Uniquely, js.io supports the HTML5 WebSocket. Used in conjunction with dez.network.WebSocketDaemon, it enables a new generation of applications.
chess engine & AI framework: chesstools
A library of tools for writing chess AI's, as well as servers, clients, and any other software that requires a chess engine. Speaks proper FEN, SAN, and long algebraic notation. Supports standard chess and chess960 (Fischer-random). Handles move validation and checkmate/ stalemate/ repetition/ 50-move-rule checking. Features server-side timekeeping with optional latency compensation.
The compact minimax AI framework utilizes alpha-beta pruning and transposition tables under the hood. This enables the developer to produce a modern custom bot by simply overriding AI.evaluate. Additionally, chesstools.book provides an intuitive interface for building opening book databases for use in conjunction with an ai.
For sample code, see MICS and MICC. Tutorials here.
scalable comet server: orbited
I am a core developer of the Orbited project. Orbited is fast, asynchronous, and built on the rock-solid foundation of Twisted. It is protocol-, language-, and platform-agnostic, and allows a client in the browser to communicate with any server ever written.
Orbited is the Kingpin of Comet, the Titan of TCPSocket, the foundation of any real-time web platform. It boasts an in-browser socket API that is already being implemented by numerous unrelated AJAX libraries; simple application framework integration that allows drop-in deployment against existing projects; minimal configuration and a negligible resource footprint; and viral adoption across the gamut of web presences.