This post originated from an RSS feed registered with Python Buzz
by Andrew Gross.
Original Post: Minnow
Feed Title: argv0.net
Feed URL: http://www.pycs.net/users/0000445/weblog/rss.xml
Feed Description: a python programming journal by Andrew R. Gross
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.