Friday, August 12, 2005

Pretendpaper. Making pretend webs.

Pretend Paper is an arts/music, not for profit website meant to be a place where people can see what is on, and what people are doing. Pretend paper is also a place where you can tell people what creative things you are doing. As well as a place where people can post articles, and reviews of creative things.

Pretend paper is a site that has been made with two other people, and I. With contributions from many others. All of us have been taking a break from it since our launch party in July. Which means that it has been a month and a half since my last major code update.

What makes pretendpaper interesting from a web development point of view, is the new interface ideas. There are two sides of the site. A tab area on the left, and a tab area on the right. When you are viewing stuff on the left you can click to see something related on the right side of the screen. All without reloading the page.

One good use for the tabs is when you are reading the details for an event you will be able to click on a band, or artist listed in the event, and have it pop up the artists profile on the right side of the page.

Interface experiments, and standard controls.

Apart from the tabs, there are a bunch of other interface things in pretend paper too. Some more successful than the others, and some more developed than others. When making new interfaces you need to be able to have people be able to use them right away. So if you are going to include advanced things in your user interface then they need to act how things normally would act.

Standard behaviour is why for the events listing we made it click to change which event you are viewing. People are used to clicking to change things. So having mouseover change the event being viewed can really confuse some people. However, some of the people who used it really prefer viewing things that way. To view 30 different event descriptions with clicking requires 30 clicks. To view them with mouse over requires none. So we made a compomise. The default behaviour is clicking. However if you click on the same event that is highlighted, then it goes into mouse over mode. Give the event listing interface a try.

The scrollbars for example were done with javascript. The reason why they were done with javascript is for consistency accross browsers, and to avoid bugs with iframes in different browsers. Unfortunately the scrollbars are not quite up to par with the standard scrollbars. Standard scrollbars have so many features built in. For example mouse scrolling, variable width thumb controllers, variable speeds depending on the speed of the computer, and keyboard navigation. I have mouse scrolling in there, for those browsers that support it. IE, and Safari 2 support getting events from the mouse scroller. However firefox doesn't. Which annoys me the most as firefox is my current favourite browser.

What has been happening with pretendpaper?

There are still posts going up, and reviews being written. However each bit of content has a manual review process where I put stuff into the database. The interesting thing is that almost every time something is added I make the code a little more tolerant of errors. So that slowly it is getting better at doing what it does.

During this time I have been thinking of what things need to be done to fix up pretendpaper. I have spoken with the others breifly about it. The list of things to fix I have is a mile long, but there are two main things that need to be fixed.

Pretend paper needs to be faster, and it needs to work better at showing people what is going on.

Pretend paper needs to be Better at showing people what is on.

More events, and linking events to profiles are what is needed. As well as searching, and sorting.

Linking to profiles. There needs to be better links to profiles from the events. So people can find out who the people are that are playing. Being able to pop the band profiles up in the right hand tab set whilst skiming through the events would be great. Want to know if a band is uk pop influenced, a noise band, or a death metal band?

For more events to be in the database a few things can be done. The event adding interface needs to be *very* streamlined. So it is as easy as possible for people to add events. Including the site admins. Typing the band names/artist names, and venue into the description box should automatically fill in the fields for you. It should do a search for the venue, and finding any matches show you a list of them, with the most likely ones at the top. It should search through the profiles listed in the site, and

When more people start using the site, there should also be more people adding events to it. However it is the old chicken and egg thing.

Pretend paper needs to be Faster.

Pretendpaper loads slow. With only a couple of sections loading the method I used worked fast enough. However after all five sections were added it started to slow down. If another five sections were added, things would really start to crawl.

How it works is this; at the moment the website makes separate requests for each of the sections. Pretendpaper uses xmlrpc to do the separate requests. Xmlrpc takes quite a bit of cpu power to decode using javascript. So the slowdown is not on the server side of things, it is on the client side.

It should be able to load the whole default front page with one request. So I need to grab everything in one big request. Which is a batching/pipelining optimization. You can often do several things at once faster than doing them one at a time.

Also the front sections should be populated first. So the events tab, and the latest tab should be populated, and then the rest should be.

A work in progress continues.

Lots and lots of work left to do. The site itself is a work of art, one which is not nearly finished. There are so many planned features that have not been implemented, and so many little things that need to be improved.

No comments: