I’m back from Assembly Summer 2007, where I launched my long-promised demoscene database site Demozoo to not very much fanfare at all. It’s been in development on and off for at least two years – I ambitiously chose it as my ‘hello world’ project to learn Ruby On Rails with, subsequently aborted and restarted it about seven times over as I learned more and more Right Ways To Do Things, and eventually reached the stage of hacking on Rails internals to make it do what I wanted (most significantly the Nested has_many_through patch/plugin, which lets you achieve simple and yet bizarrely normally-impossible relationships like ‘all productions made by members of this group’).

The initial reception of the site has been mixed; there have been excited noises from people who have immediately seen its potential, and it’s already been useful for filling in those ‘dammit, what group is he in again’ memory lapses at the pub (as well as a cunning way to startle Smash on AssemblyTV, by introducing him as “Smash of jecoute” rather than his rather more well-known role in Fairlight). It’s also attracted some (not entirely unfair) comments that it’s basically a very unfinished clone of Pouët, to which I have three replies:

  • Yes. Deadlines, party coding etc, mumble mumble, not enough time to add much data at all besides Pouët / add whizzy features other than the minimum necessary to make it work. *shuffles feet*
  • Yes. But the massively important and really subtle difference is that it can handle individual people’s nicknames properly, even where they’re duplicated all over the place. (And that’s what’s taken two years to get right, pretty much.) For example, there are at least three people on the scene who go by the name of Simon and at least two groups called CPU, but if you enter a production by “Simon / CPU” then it knows exactly who you mean. And once you’ve got individual authors in the database, you can start indexing graphics and music. And if you don’t have to pick authors from a dropdown every single time, it becomes viable to enter a whole heap of complete party results in one sitting. Which will happen, soon.
  • Yes. How about I stop trying to justify its existence right now, and work on it some more until it speaks for itself?

I like answer number 3 best.

4 Responses to “Demozoo”

  1. makc / lps says:

    fair. good job and looking at it to improve :)
    i think there’s still space to fill near pouet, and demozoo could do so and improve a lot on it. keep it up!

    ps: “normally-impossible relationships like ‘all productions made by members of this group’” are perfectly possible with serious databases, and in relational algebra ;)

  2. matt says:

    Heh, there is a serious database under the hood really (well, MySQL… serious enough). When I say ‘impossible’, what I really mean to say is “only possible with hand-coded SQL, which means that you lose the nice object-relation mapping stuff that’s the whole reason for coding in Rails rather than hacking it together in PHP”…

  3. Steve says:

    What happened to this project? It’s sorely needed.

  4. matt says:

    It’s currently in redevelopment (and that’s not just a euphemism for ‘sitting around gathering dust’ – I was working on it literally 10 minutes ago). I’m rebuilding it using better technology, learning from the mistakes of the old site (especially, not launching it before it’s ready) and being ably assisted by A Certain Mystery Collaborator. It will be 10 times better than the old site, and it will be worth the wait.

    I’ve previously said it should be up by the end of this year, but that may be somewhat optimistic. As I say, it’ll be launched when it’s ready…

Leave a Reply