StoJ Open-sourced

I’m pleased to announce the open-source release of StoJ. The code is being released under the MIT license, and can be downloaded from this github project. $ git clone git://github.com/tonyg/stoj.git Alternatively, you can download a snapshot.

The Web interface divide

Matthias and I were talking about website ‘templating’ — that is, making Web pages parameterised on the content. We weren’t discussing the technical rationale behind it — constructive laziness is axiomatic — but how best to accomplish a separation of concerns between contributors. For example, frequently we co-operate with companies or individuals that specialise in…

Browser-side XForms

At last there appears to be a working implementation of [XForms](http://www.w3.org/MarkUp/Forms/) that is written in Javascript and runs entirely inside a browser: [FormFaces](http://www.formfaces.com/main.html). The clear separation of content from presentation, and the declarative nature of XForms have always appealed to me, but the lack of a browser-side implementation has so far put me off from…

TiddlyWiki adaptation

I’ve started work on an adaption of TiddlyWiki. The things I want to improve: - TiddlyWiki has a degree of reflection — editing the node ‘MainTitle’ changes the displayed title, for example. It does these inconsistently though, with bits of privileged markup. I’d rather it kept them as nodes and simply styled those nodes specially…

Searching IMAP in Gnus

I spent a good few hours trying to convince [Gnus](http://www.gnus.org) to search my IMAP folders, under XEmacs. Googling turned up quite a lot of stuff, but most of it is wrong/irrelevant. In the end all I needed to do was: - stick `(require ‘nnir)` in my XEmacs init file - add `(nnir-search-engine imap)` to my…

RESTful AJAX Continuations

I saw Avi Bryant talk about Seaside yesterday. Seaside is quite a neat framework. TonyG and Andy have been playing with it for some time. Avi mentioned that Seaside’s continuation-based model of web application development is in some sense the [old link: http://rest.blueoxen.net/cgi-bin/wiki.pl?ShortSummaryOfRest] anti-RESTful – there is a lot of state kept on the server.…

Squeak Scheme

A few days ago, I mentioned the idea of building a Scheme machine atop the existing Squeak VM and image. I’ve started some work in that direction: I’ve built (yet another) S-expression reader for Squeak, with associated data types and a unit test suite, and I’ve started building an interpreter that I intend to use…

SuperCollider 3

A few months ago, I pulled SuperCollider 3 from CVS and built it. Just yesterday, while replacing the strings of my guitar, I needed a guitar tuner and so turned to SuperCollider to build one. Finding the help text somewhat skeletal, I updated my CVS checkout and rebuilt the application. The documentation has been significantly…

Nevow Jukebox

I am currently engaged in writing another shared jukebox. If you search Freshmeat for the word “jukebox”, you’ll find several distinct kinds of software. Mostly, you’ll find software like, say, XMMS, which provides an unnecessarily complex GUI for choosing and queuing up tracks for local play. Secondly, you’ll find packages like GNUMP3d which serve a…

The Design of a Pretty-printing Library

This paper is hard going, but very rewarding. The author concentrates on two ways of transforming a formal, algebraic specification into an implementation, starting with very simple examples and working up to a pretty-printing library. The reason this paper is worthwhile is that, by moving very slowly and by demonstrating the same theme over and…