Saturday, February 25, 2006

A new version of Pretendpaper

After a couple of months of part time playing with the pretend paper code base I have put up a new version of this arts community site I work on for a hobby.

The most visible change is the modified css design. Which gets rid of black lines, and makes it look more minimal. These changes were done by Dane with help from Aaron.

A lot of the changes are not visible, as I rewrote things so that searching and editing are more doable. To make searching and editing how I wanted them to be I needed to be able to have multiple event listing tabs on screen at once. Which meant that I needed to change around the way it used ids to encode a tab id into each of the ids.

Also the code for creating new tabs stopped using function callbacks so much, and instead used objects. By using objects I am more easily able to change, and query their behaviour. I cleaned up the javascript code a little, but it still needs a lot of work. However a lot of it is still prototype code, so I'm not finished experimenting with it. Once the code is working nicely then I refactor it to work more cleanly.

Not that searching, and editing are finished yet. This version of pretendpaper was put up early so that we could more easily cover the adelaid fringe festival and have stuff for people to see before we finish the updates. The basics of one edit screen is finished. However it is more of a prototype edit screen. The edit screens need searching finished before they will be useful. As the edit screens require quite a lot of changes before they are done, and I'm still not sure how it will all look, or work out I am going to wait until the event edit screen is done before doing the other ones.

I think combining search in the edit screens will allow a more accurate and comprehensive set of data for the people looking at things.

It is interesting what things you do for a release that you don't do whilst not releasing stuff. So I think I'll continue with more releases

I spent quite a while debugging the session module I use so that it will work nicely with multiple threads, and multiple requests happening at the same time. I also made an in memory version of the cache that periodically saves its results to disk. It also saves its results to disk before the server is shut down. This is a nice compromise for me. The speed of memory sessions, with being able to save state, and be fairly resilient to power failures. The sessions are written to a temporary file first, and then moved over the other session file. Of course these memory sessions are not usable by multiple processes. For that I would need to use something like memcache. Or use the disk based sessions.

Some blog sumaries of artists are now going to be shown in the news sections. Only one blog is in there at the moment(Casionova), with more going to be added later next week. People still can not edit their own profiles, but when they can adding their blog feed will be the thing to do. Hopefully putting the blog sumaries here will make it easier for people to spread their message from their blogs to our site. Eventually it would be good to offer feeds of pretendpaper as well, but that will have to wait until the lofi static version of pp is done, and a million other things.

Because of a hard drive crash I needed to reinstall lots of software. All of the python dependencies that crept into pretendpaper made this difficult. I mostly use apt-getable python libraries, but because of various bugs I needed to install from source for many of them. This is the problem with using rapidly changing modules. I was a bit scared when I heard about SQLObject 2. However the changes will be welcomed, and api compatibility is planned. So I'm happy.

No comments: