At the OSCON Django meetup last Tuesday I asked some vim aficionados how they managed to keep their .vimrcs synchronized between different hosts. I myself prefer to use a network-aware editor like jEdit and KDE’s kate to avoid platform quirks. For Jacob Kaplan Moss, this was a welcome diversion from the boredom of OSCON, and he began to describe how he tracks changes to his various home directories using per-machine branches in a Git repo (he started doing this back in the day, with RCS). I’ve been wanting to practice this discipline for awhile now, and this was the nudge I needed.
Yesterday I found Danny O’Brien’s series of posts on moving data to the “edge” of the network, again by using an RCS to track your home directories. I find the idea of keeping all of my data in a repository rather than scattered about various online services and personal sites enormously appealing, and would like to undertake migrating my blog, various Documents directories, del.icio.us links (too extreme?), etc into one collection of flat files.
One issue is how to represent structured information such as the post date of a blog entry or a category-to-item relationship using flat files. An interesting practice would be to embed RDF triples in the flat (XHTML) files. The relations can then be leveraged in various ways :
- By a view, to display relations between items as links
- By an indexer, to build a global graph for the store.
- By some intelligent future consumers of the content, since the triples remain in the output XHTML.
As a first step, I’d like to migrate my blog (currently Drupal on MySQL) to flat Textile after which easily experiment with using different frameworks like Django to provide a read-only view on the content. I like the idea of editing using a plain old text editor, but a web-based interface for working with text files and performing Git operations would be possible.
Other bits:
- URLs don’t change. Paths are simply filesystem paths and the framework is simply a filter that processes the content on it’s way out. This is critical for RDF, which identifies entities using their URLs.
