Hatching Snakes

Thanks to unison and some pretty nasty weather, I've been making slow, but steady progress with Snakelets even when slithering around from the couch to my desktop and back again.

In case you haven't noticed Snakelets yet, I mentioned it a while back, and I'm pretty set on using it to implement some of my NewWikiMigration ideas.

Amongst other things, I've been fiddling with:

  • Templating. Snakelets precompiles templates, which is good, but I've yet to figure out the best way to generate a page from a snakelet using a template (passing parameters and such).
  • Application contexts. One of my design goals is to port across to my new Wiki all the HTTP caching goodness I've implemented in PhpWiki, and the fact that I can hang all sorts of things on the web app and re-use them as I handle a request is nice - for instance, keeping the last 15 posts in RAM isn't all that much data (128KB, at most) and makes building a targeted (If-Modified-Since-aware) RSS feed a piece of cake - and lightning fast, too.
  • Snakelets Internals. To get a better feeling for it, I'm hacking away at the built-in management tool until it is fully CSS-oriented and looks the way I want it to. I've had to figure out quite a bit about how it worked in the process, and it is now almost permanently broken.
  • Migration tools. It's pretty damn obvious that I'll have to migrate all my pages to Markdown, and so far initial tests with BeautifulSoup and html2text were satisfactory (although html2text barfs on some UTF-8 content). It might be as simple as building a custom crawler and letting it loose on a plaintext version of the site.
  • Generic screen scraping. With BeautifulSoup at hand, I was finally able to build an RSS feed from a crummy (but very high-profile) local news site, whose programmers can't even be bothered to close HTML tags. They are probably the first people I've seen using Vignette so poorly, and after looking at portions of the site's JavaScript, I'm positive they tried very hard to do it this badly.
  • SVGs. I've been trying to find a way to have Graphviz and generic SVG diagrams as part of my new Wiki content without too much hassle for both myself and my visitors (99.999% of which don't have an SVG plugin on their browser).
  • Pillows. Nothing like a rainy vacation to make you an expert on pillows. And nice, fluffy blankets.