The Blog of James Long, a Mozilla webdev
My name is James. I hope you like to create things and read about technology. That's pretty much what I do here. Read my latest post:

Taming the Asynchronous Beast with CSP in JavaScript

Every piece of software deals with complex control flow mechanisms like callbacks, promises, events, and streams. It turns out using CSP which leverages channels for asynchronous communication vastly reduces the complexity of everything. This has drastic effects not only on server-side code, but also on user interfaces.


View All Posts


  • LLJS
    fork of LLJS that compiles to asm.js
  • nunjucks
    powerful templating system for javascript
  • outlet
    simple Lisp languange that compiles to javascript
  • dcpu-lisp
    static Lisp that compiles to DCPU-16 assembly code
  • shade
    terrible WebGL graphics engine
  • octoshot
    multiplayer WebGL 3d first person shooter
  • css-animations.js
    easily use CSS3 keyframe animations from javascript
  • dom3d
    3d objects with purely 2d CSS transforms