Conceptual Restructuring of My Personal Information Space

While working on a rather fun project to turn riak_pipe into the basis for a prototype of a new video transcoding farm, it struck me that:

  • there are few good tutorials on building complicated Erlang projects using rebar
  • I promised a set of tutorials on using CouchDB for my new blog software
  • somewhere along the line, I totally forgot to follow up on the style applied at a distance concept

    So I'm going to start reworking the blog code to do a few different things to address all three of these issues stated above:

  • I'm going to redo the interface to match www.dloh.org, in terms of a large flat 2D space of nigh infinite extent
  • All of the styles on the pages are going to be applied out of band, and will be fungible via code updates
  • I'm going to move the www.dloh.org code into CouchDB bit by bit and reuse it across the blog
  • When I do each piece I'm going to write a small tutorial (or put up a screen cast) describing what I've done
  • Onomatic will also receive some love in a series of posts as I bring online a few new VMs
  • All of my code is going to be written in the blog
  • I am going to release my new compilation tools that are based on the ideas I've bandied about behind the Self build server
  • Eventually, I'll write a build tool that creates a github release of specific tagged sets of code

    This all sounds much more ambitious than it is. In reality, this blog already runs a minified version of the Phos code base without any of the fancy canvas and device support. Nearly all of the style is applied via javascript, I'm just going to use my new favorite CSS via JSON trick to break out all of the style elements into separate documents. I'm also going to write a view in CouchDB that maps timestamp (and document size) to a 2D coordinate, so I'll start laying out my articles on one big wall, instead of tucked behind little links. Finally, I need to finish Onomatic so that I can release another piece of software anyways, and that will mean cleaning up that code base, and fixing the rebar bits. Finally, since I'm going to move my code into the cloud, I might as well produce a highly literate version of it, so I'm going to be borrowing from my NewScript demo heavily, and producing a new kind of code editor.

    Eventually the topology of the site will be 2D but the backend is going to have a load balancer and 2 VMs, which will be running couchdb (for indexed documents), riak (for bucketing builds), onomatic (for application routing), ConnServer (because I want intelligent agents running the site), and either nodejs or jawas2 (which are very similar in concept, just jawas2 will be written in Self). Basically, over the next couple months, I'd like to have my environment working on the iPad, iPhone, & most Android tablets. I'd like it to be accessible anywhere. And I'd like it to be manageable through direct manipulation. I'm probably going to even use the NewScript app's Plan9-esque block creation method for writing new stories. The idea of also being able to draw lines between related stories really appeals to me.