Wednesday, June 24, 2009

Big ooops

While working on the dev server, i pulled up the wrong console and deleted all production scoreboards.... :-D Suddenly, all the scores of the 100k games over the last month were all gone.

But we've got backups of all the games, players, etc, so I hacked together a script that would regenerate the scoreboards (it takes a while, with 100k games that need to be processed, approximately 5 minutes).

Lesson learned: nothing better to test your backups than a freak accident :)

Tuesday, June 16, 2009

Github

We've been hosting our SVN and TRAC on Dreamhost. However, Dreamhost has been extremely unreliable and slow lately, to the point where productivity was severely impaired. Hence, we looked for something new and better, and we found it: Github! It's awesome! I've eyed with trying out git over the past few month, finally did it, and it was a good move. Github provides a superb platform for git-based projects. Check it out!

Wednesday, June 10, 2009

Twitter on a mobile device...

...is quite annoying sometimes. Let me explain:

On a desktop machine, you can set a twitter status by using this url: http://twitter.com/home?status=... and it works great! Users enter their credentials on twitter.com, so all you have to do is include that link somewhere.

Now, if you try to do that on a mobile device, twitter will redirect you to m.twitter.com. On that mobile version, the ?status=... line is ignored (see Twitter google group). That sucks pretty hard. Also, there seems to be no way to circumvent that easily.

What we've been doing for TowerMadness now is create a small proxy page, where the users enter their user credentials, and then use python's urllib to POST the status using the Twitter REST API. This works, too, but it's a lot more work on the developers side, and less trustworthy on the client side.

This is especially annoying since the mobile version of safari is pretty much as powerful as the desktop version (except for flash, maybe). My conclusion is that Twitter is not quite ready for mobile devices yet, when it comes to social bookmarking, at least. Luckily, our workaround seems to work well.

Tuesday, June 9, 2009

Updates to TowerMadness Appengine

I've made some pretty cool updates to the TowerMadness server today:

I've not translated the stuff yet, so German speaking folks will have to wait -- or set the device language to english.

Exposing those features is quite some work with the appengine, due to it's nature and scalability. For example, generating a random unique ID per user can be very expensive if done wrong, because it's a global quantity... and those commonly don't scale well. We're using a random 12 hexdigit id now, that is randomly sampled up to 10 times on collision.

Also, Twitter's mobile version has some problems, it seems to not support query strings like the standard version does, which sux. Probably have to use a form+button instead of a link to make it work.

On a side note, Star defense got pushed heavily at the WWDC Keynote yesterday. Interestingly, this seems to impact our sales, too. To the good, that is.

Saturday, June 6, 2009

I *heart* Japan...

...and Japan *heart* TowerMadness. 'Nuff said:



Thursday, June 4, 2009

Appstore frontpage


TowerMadness is featured on the front page of the US appstore!

*drool*

EDIT: added screenshots, by popular request: