Architecture
Posted at 9:34pm on Monday, February 20th, 2006So. I think I’m decided on the architecture for the new incarnations of offmessage… Rather than go barrelling in with another half arsed solution (this may look beautiful on the outside - natch - but it’s vile and unmaintainable on the inside) I thought I’d do a little research this time and try and treat it like a proper project.
So, given my new found love of python it had to be one of the python frameworks. I’d been thinking about Django and CherryPy for a while, but then TurboGears came along, and that seems to a) have ludicrous traction, and b) be supported by some very good developers so those bits that are missing and broken are getting filled in and fixed very quickly. Turbogears then kind of makes the main choices easy, as on top of CherryPy it brings with it MochiKit (for Javascript, which includes some lovely code), Kid (for templating) and SQLObject (as an object to rdbms mapper).
Then there’s the database, for which I’m going with sqlite until I absolutely have to use something else. Doug’s been doing some performance testing and found that even with 200 simultaneous users in a turbogears application sqlite gives PostgreSQL a run for it’s money, so i see little point in over complicating things this time around.
Finally, I’ve been looking at WYSIWYG editors. One of the things that I’ve come to feel is absolutely necessary recently is an editor. I have to type all the HTML in by hand at the moment and for something as basic as this it’s fine, but the minute your content becomes less structured and more varied or, God forbid, your users become less technical, a plain textarea just isn’t enough…
There are 3 out there at the moment that all seem to have some mindshare: Kupu, FCKeditor and TinyMCE. While I see Kupu every day (it ships with Plone) I’m actually not that fond of it’s implementation, and the integration seems unecessarily complex. FCKeditor started out more promisingly, until I tried to actually implement it in a framework that they hadn’t already and it rapidly started to prove very hard. So. TinyMCE it is. It took me all of 10 minutes to get it working, and the rest of my time has been spent improving my implementation, rather than struggling with integration with my own code.
So:
- Tubogears
- CherryPy
- MochiKit
- Kid
- SQLObject
- sqlite
- TinyMCE
Please feel free to treat this like a book club and learn along with me