Demozoo is back!

After years of delays and unfulfilled promises, Demozoo is finally out there again! It was once out there already, but got pulled back I-don’t-know-why, until now. Yay!

Wait—you may not understand my excitement. Demozoo is meant to be the catalog of catalogs, without comments or trolls. Just a catalog. Just the facts, i.e. the demoscene productions.

I evidently looked for my own profile, and I must admit I got really impressed by the amount of demoscene stuff I have made. Some things I didn’t even remember being involved with! And some are missing. I might add them, since it’s a wiki-style website 🙂

Funny fact 1: I found that demozoo had been released because I saw gasman opensourcing the project in my GitHub timeline. You should follow him too, if you’re into mental code such as Spectrum emulators or MIDI players in JavaScript. See, it will be insanely good.

Funny fact 2: The site is built with Django now. It used to be built with Ruby on Rails, and if I remember correctly Gasman went as far as writing (and proposing to core) new ActiveRecord features that he needed for Demozoo. Not sure if they ever made it to upstream, though! Gasman, please comment on this! 😀

2 Replies to “Demozoo is back!”

  1. Thanks for the kind words – it’s good to be back!

    Yep, the original Demozoo (which was actually my first Rails project – I fancied the idea of setting myself a really steep learning curve, for some reason 🙂 ) ended up requiring some extensions to ActiveRecord, to cope with deep SQL joins. The party results page is a good example of that: you have to retrieve all competitions with party_id X, joined to the competition placings, joined to the productions, joined to their authors. In the end, hacking on core was what turned me off Rails completely… more and more I found myself fighting against the framework to make it do what I wanted, and trying to improve it from ‘the inside’ was going to be 10% coding, 90% arguing with rockstars who went by the default assumption of ‘if Rails doesn’t do what you need, you’re using it wrong’.

    I believe some of it did make it into core in the end (in a very altered fashion), but only because my patches caught the attention of Jon Leighton, who was prepared to put in the work to become one of those rockstars (in the good way), and is now a Rails core committer 🙂

    As it turns out, I had to do similar levels of SQL trickery for the Django rewrite (which became the unjoinify library – spot the thinly-disguised description of demo parties in the readme!), and I suspect that if I’d had to patch Django core to do that, I’d probably find the Django community just as frustrating. Thankfully, I’ve never had to – probably because Django does a better job of keeping things modular, and letting you swap out the bits that don’t fit your application.

  2. Yay! Thanks for the reply, really interesting explanation. I love that you tackled the challenge with your first ever Rails project 😀

Comments are closed.