Changes to Gatekrash

  • By John
  • October 13th, 2010
  • Updated on November 30th, 2010

Details of upcoming changes to the way Gatekrash works, as well as several new features.

I've completely rewritten this blog post to better reflect the updates which I'll be making to Gatekrash

In this blog post I hope to give you an idea of the new features I'll be adding to Gatekrash over the coming weeks and months. These features will be rolled out gradually (i.e. not all in one go) due to my other commitments. If you want to keep up to date with these updates, you can fan Gatekrash on Facebook. Some of these feature updates depend on other features being updated or implemented.

Stuff in the background

The new features 'stuff in the background' mainly relate to the way that event information is collected by Gatekrash, but not always. Here we go...

Moving from Apache to Nginx [done]

I'll be moving all of my websites from Apache to Nginx in the very near future. This is mainly to take advantage of Nginx's much more efficient memory footprint, and it's ability to handle more requests per second than Apache. I'm also doing it to allow for better caching of pages - all this means that the site should be speedier in the future.

Capturing RSS/XML-based, JSON and vCal event feeds

This is relatively simple to do, and will allow me to retrieve much more accurate event information (due to the information in RSS and JSON feeds being structured as opposed to unstructured like when extracting text from a page). It will also theoretically allow Gatekrash to retrieve event listings from many more different sources rather than the limited set of sites which it currently uses.

Event meta information

This just means attaching more information to events, such as type of event (music, club night, comedy, car boot sale, etc.), performers, and so on. This is much more difficult to achieve without some sort of proper information extraction process to recognise entities. However, this information will allow events to be more easily filtered, so you'll be able to see only events that interest you at that moment.

Splitting venues and places from events

Currently, each event listing stores it's venue in a string field, rather than simply linking to another Venue table (the same goes for Place information). This was a fairly good design decision at the time as it allowed for fewer requests to the database to get venue information. However, I've decided that I should split this data into three tables; the Event table (which lists all event information), the Venue table (which stores all relevant information about a venue, including it's website, name, latitude/longitude, etc.), and the Place table (which stores all relevant information about a place). Splitting these tables will allow for more useful features, including normalising place and venue names (i.e. grouping similar but misspelled names of venues or places), and more accurate map information.

More sites being crawled

As was mentioned above, I'll be making Gatekrash crawl more sites to retrieve more information. Gatekrash is an automated events aggregator, meaning that events shouldn't be manually added. This means that it needs to extract event listings from other websites autonomously and accurately. I'll be trying to make improvements to the crawler function of Gatekrash to make this happen.

Stuff you'll see

These new features are the ones you'll notice on the site, visibly.

Event posters (where available)

Many events have imagery which is associated with them, be it a picture of the venue, or a poster for a gig. I'll be including some of these things in the listings (where available and possible).

Improved venue and place pages

Including more information about venues and places, and better filters for finding events in those venues and places (based on the event meta information mentioned above).

Improved UI

This is highly subjective. The current user interface is quite plain and bare, and very utilitarian. It's also arguably very boring and dull. I'll be making improvements to the UI gradually, adding new filters to event listings, improving specific pages (such as venue pages, place pages, event pages and so on), and in general making it more appealing and attractive. I'll be utilising HTML5 and CSS3 to make this happen.

Better source website creditation

I'll be giving source websites much more prominent links across the site, most notably on event listings pages. I'll also be adding more information about when an event listing was last updated to make it easier for you to infer if a listing might be inaccurate or is probably accurate.

JSON hooks

I'll be adding JSON feeds to pages where it's appropriate. These mainly mean 'stream' pages, where events are listed. For example, a venue page could contain a JSON feed of upcoming events, or in-progress events.

I hope you like the sound of these changes. They'll be coming gradually (I have other sites to worry about too!)