New Project: Tetxurejam

I have created a web app called Texturejam to host remixes of
Minecraft texture packs. The idea is to host Texturepacker in a form
palatable to people who might want to use it.

Motivation

My thinking was that there are many plaintive messages in
Minecraft Forums asking to someone with Photoshop skills to rearrange textures
to their desires, and if I could come up with a way to do this it might
be useful to these people.

Part of the motivation for me is to give me a web app project to work on
to keep my web dev skills fresh.

Approach

The basic platform should be no surprise to people who have read earlier
blog entries: Django with MySQL for the remix metadata.

I do not want to face creators of texture packs with yet another place
to upload their files to, so Texturejam obtains its data by downloading
the packs from where they are hosted already.

The download time is unpredictable (many of the storage services people
use have high latency) so the building and caching of remixed packs is
done as an external task, with queuing handled by Celery. This is
the first time I have used Celery and so far it has been simple and
quick to set up, both on my dev system (Mac OS X) and my server (Ubuntu).

I need to track who adds remixes so I can give them permission to edit
their work later; rather than roll my own (which Django makes fairly
straightforward) I am using the ‘log in with Twitter’ service via a
package called django-social-auth. (Possibly overkill, since I am
not using any of the other social networks it supports.) The
advantage of delegating user authentication is

they have to worry about most of the security stuff, not me;

most punters will have an ID already,

signing up is faster.

The advantage of Twitter over, say, Facebook is that there is no reason
for a new user to worry that I will have access to their Twitter profile
because Twitter does not store private or hidden data about them. To
make it even easier, I don’t ask for ‘write’ permission on their
account, so they know I won’t tweet on their behalf.

Status

I do not yet have a way for users to create recipes form scratch—I add
them through the admin app. For now users are limited to creating Beta
1.3 versions of old texture packs that have not been upgraded by their
creators. The form takes care of setting up a remix using the right recipe.