argv0.net 8.3.2005

2005-03-08

Minnow

Naming software is one of the hardest parts of my job. I think it's hard for everyone (at least in Python-land, judging from the amount of Python software named PySomethingOrOther). So I'm naming my yet-to-be-written blogging package Minnow, after my cat. Now we can move on.

I'm really thankful for all the feedback I've received regarding features. It will certainly help guide me as I design this thing. I'd love to hear more ideas.

Here is a rough list of features/design goals I've adopted so far

  • REST-based HTTP api: A tag search should be possible using something like http://myblogaddress.org/tags/tag1+tag2 (Shawn Wheatley)
  • The other ReST: Minnow should parse ReStructuredText, including easy highlighting of Python code snippets.
  • Multiple posting interfaces: Minnow should accept posts from editors like MarsEdit, from the commandline, the web, or email.
  • Easy deployment: I like the flexibility of the Roundup issue tracker in this regard. Robust commandline tools for creating and managing blog "instances".
  • Standard features: RSS, tags, search, archives, trackbacks, comments, etc.
  • Nifty features: Maybe a built-in moblog, integration with del.icio.us, who knows.

There's still some open ends. How much effort, if any, should be spent on different storage backends? I think I'm willing to accept whatever SQLObject offers, which is most open-source RDBMS's. I could add another thin layer above SQLObject and support things like a textfile backend, but that can always be done later.

How important is the ability to generate static HTML, or can the whole thing be dynamic?

What about presentation? Right now, I'm prototyping using Kid, which I'm really liking so far. I suppose as long as theres a nice API for the data model, replacing the templating system will be trivial for those who want something else. For the first version, users will have to be comfortable with seeing some exposed wires, as there probably won't be any higher-level 'skinning' facilities than the page templates themselves.

I realize that the number of dependencies is quite large (Twisted, SQLite, PySQLite, SQLObject, Kid... whew.. that is a lot), but it's not completely unreasonable, and a lot of people have these things installed already.

Obviously, there's still a bit to figure out. I need to take a look at some of the current blogging systems to get an idea of the state of the art, and kick around this prototype some more. In the next few days, I'll set up a Wiki as a place to brainstorm. Again, your suggestions, advice, flames, etc. are encouraged.

posted at 22:41:52    #    comment []    trackback []
 

Blogging Software Redux

Thanks for all the suggestions about Python blogging software, people. However, no single package I've seen so far has all the features I'd need - only a couple implemented Trackbacks - and I have a couple of good reasons to write my own. One is a work project, an app with a beautiful backend and middle layer, but horrible presentation. I'd like to become proficient with a good templating system (Kid looks nice) to spice up this and future work projects where I have to write any user interface code. The other reason is that most of my day is spent writing UI-less code, and I could use some practice. Plus, a project like this provides near-immediate postive feedback, so chances are it won't end up in the dustbin.

To re-familiarize myself with the various XML-RPC APIs, I whipped together a quick prototype with Twisted, using SQLObject with Sqlite for storage. SQLObject was a breeze to use, with a nice declarative class structure for defining tables (similar, but less powerful and complex than using peak.storage and peak.model). Twisted is always a joy, and this project will let me check out the new features in 2.0 (paging Radix). As I noted before, Kid looks like the front-runner for a templating system, being simple and Pythonic, without disallowing one from doing more fancy XSLT-ish things.

So that's it. What features would you include in a new blogging tool?

posted at 00:28:32    #    comment []    trackback []
March
MoTuWeThFrSaSu
  1 2 3 4 5 6
7 8 910111213
14151617181920
21222324252627
28293031   
Feb Apr

a python programming journal by Andrew R. Gross

XML-Image Letterimage

© 2005, Andrew R. Gross