Announcing aftnn.org version 2.0

Version 2.0 of aftnn.org is here!

The new site is powered by the Byteflow with a few some custom bits. Byteflow runs on top of Django.

Some of the features I’m happiest about:

  • My FriendFeed collects all the stuff I’ve been doing on the web and I re-use that feed here.
  • The vast majority of old urls still work. My nginx config contains a rewrite line for each blog post. Not pretty, but fast.
  • The Content and Photos sections are dynamically generated, making them easier to maintain.
  • I can finally write blog posts in Markdown, not raw HTML. Byteflow actually allows me to select a text renderer per-post, so I can write one post in Markdown, the next in MediaWiki markup.
  • Comments are hosted locally again, not by Intense Debate, and are protected by CAPTCHA. Alternatively, you can log in with your OpenID to comment.
  • nginx serves up static content very quickly and gzips everything too.

There are always some down-sides though.

  • Blanket is gone. It was a resource hog and I didn’t want to port it to Python. Sorry.
  • Byteflow and Django don’t play as nicely with caches as I would like. Byteflow doesn’t provide Last-Modified, Expires or ETag headers for it’s pages. Django sets cookies immediately, instead of when a session is actually used, so it’s page are effectively uncacheable. Also, Django does not provide Content-Length headers for responses. All this degrades the performance of my site.
  • The Intense Debate comment import process lost the threading. I’ll try to fix the relevant posts by hand some time.

I hope you like the new site. Please post a comment if you find a bug or have any other feedback.