A place for ideas which aren't quite fully baked. Mostly computer-related but not necessarily so. may or may not have some amount of work these sitting on hard drives.

A make-like tool

I think the idea of make is quite cool. A lot of people think of it as just an old build system for C but what it's actually is a framework for running a job DAG as-needed, possibly even in parallel. The problem is that it's just so full of warts. In theory you could say that it has the benefit of being a standard, but it's not even that. The POSIX definition of makefiles is woefully inadequate for any real work, so there are two mutually-incompatible dialects, BSD and GNU. As a result it's almost impossible to express anything interesting in a "compatible" makefile. Even tools which generate makefiles almost inevitably just pick the GNU dialect because all the preprocessing in the world can't even reduce problems to something a POSIX makefile can do. Many "build systems" have come and built on top of make, none have tried to do what make did (the only exceptions of which I'm aware are mk, the plan9 relative of make, and tup.) tup however is less expressive than I'd like as a language, plus it does a lot of strange, complex things to improve its speed.


An anti-social social network

A p2p social network with no readable accounts, no profiles, and no direct interaction. It uses a metaphor around desert islands: all you can do is post, which will send a message to a random user on the network, and read any bottles which happen to wash up on your shore. After you've read a bottle you can choose to throw it back out for others to see.

A trivial distributed source control

Git exposes a lot of really advanced features that aren't too well suited to small scale development. Fundamentally I want something more basic in the vein of cvs, but not tied to a central server.

But this page is ugly!