Alieniloquent


Erlang Project: Stories

September 8th, 2008

In my previous post, I discussed the goals and priorities for blogerl. This time I am going to brainstorm some stories and prioritize them. Then I’ll select the first few from the prioritized list to be my first iteration. The goal is to have something I can deploy so I can get the blog started as soon as possible.

My philosophy for stories is to give them titles that are short. The story names are simply mnemonics to assist with recalling conversations and other details. Since I’m a team of one, the only conversations will be those I have here with you. But after this post, I’ll probably just refer to the stories by their title.

Here are the stories in priority order:

Storage
I need some way to store my posts. I’m not very choosy about how this is done. But, because I am in an experimental mood, I’m going to opt for using Git. I’m probably going to end up using Grit via erlectricity. There’s already been a wiki built on top of Git, why not a blog?
RESTful interface
Like I said before, I don’t want to compose my posts in a <textarea> but I do need to be able to get content into my application somehow. So, I’m going to design a RESTful interface to my data store. This is going to have to include an authentication mechanism, since I don’t want just anybody to be able to update or edit my blog.
Emacs mode
My preferred program for editing anything is Emacs. So it seems only natural that I’d choose to write my first REST client as an emacs mode.
Index
A front page that shows the posts in reverse chronological order. Should be paginated with 10 posts to a page.
Single
Permalinked pages for each individual post.
RSS
Add an RSS feed for the main index.
Atom
Add an Atom feed for the main index.
Archives
Provide archives based on year and month.
Templates
Templates for each of the views. Not YAWS pages. This will involve creating my own template language. I don’t like ErlTL for this as it is too programmery.
Caching
Keep rendered content in a cache with a TTL. Expire the cache for the index page if a post is added, edited or deleted. Expire the cache for a single post if it is edited or deleted.
Tags
Be able to specify an arbitrary number of tags to associate with a post. Provide archive pages for each tag.
Comments
Provide comments. They do not need to be threaded. Plain, flat comments are sufficient.
Trackbacks
Provide the ability for other blogs to post trackbacks.
Post-dating
Give the ability to submit a post that will be published at a later date.
Markdown
Add support for formatting a post in the Markdown formatting language.
Textile
Add support for formatting a post in the textile formatting language.
Formatting default
Add a configuration option specifying the default formatting (which starts out as plain HTML).

The first six are going to be what I aim to complete before I tag an 0.1 and deploy to my webserver. That’ll give me a means to share my blog posts with people as a stream or individually via their browsers or via RSS feeds.

  1. « Previous
  2. Next »

4 Responses to “Erlang Project: Stories”

  1. Ben Says:
  2. Eduard Says:
  3. filippo Says:
  4. Alieniloquent: Blog Says:

Leave a Reply

Layout, design, graphics, photography and text all © 2005-2007 Samuel Tesla unless otherwise noted.

Portions of the site layout use Yahoo! YUI Reset, Fonts & Grids.