Given an AppEngine talk today

Thursday, May 29th, 2008

So I’ll be giving a short talk during lunchtime at the Guardian today on AppEngine.

I’m somewhat nervous, I gave two talks on django last week (I forgot to advertise the first talk, so had to repeat it) so my audience is somehwat primed for what Django can do.

I haven’t yet updated my slides from Python London Meetup, so I’ll be giving the extended version of that talk, except instead of writing a blog application from scratch, I’ll be showing how I converted my Django GiftList application to AppEngine.

If I prepare more advanced slides, and it goes well, then details and slides will go up here as normal.

Uploaded the newest code

Tuesday, May 13th, 2008

I noticed today that my game was broken, I’d uploaded new code, but hadn’t re-initialised the database.

This appears to be an issue with Google App Engine, changing the database is not trivial.  While at the Guardian we not only wrote a cool system for managing database changes, we open-sourced it (or some of our contractors did).  But Googles Bigtable implementation would be difficult to adapt to dbdeploy.

Anyway, I fixed a few bugs in the code, and re-uploaded, so all of your accounts are gone, but I’ve recreated everything, so you can go and create a new account and play again
Features added include

  • Hunting now searches for a critter and starts a fight.  Your health is not saved, and you can’t die, but it shows the initial fighting implementation.
  • Moving now costs a movement point, and you can run out of action points, which are regenerated at a rate of 1 every 30 minutes
  • Map is rewritten again, you now have a list of visited areas, so you only see areas you’ve previously explored

Hints about what to do next would be nice, I think the basic things include:

  • Better fighting, with saved health etc.
  • Searching for interesting items / looting bodies
  • Inventory
  • Dungeons / Areas of interest
  • A Town or Village for trading, resting etc.
  • Travel between zones

Google App Engine lightning talk notes

Thursday, May 8th, 2008

I’ve attached a tar.gz of my lightning talk notes. AppEngine lightning talk

There is a copy of the presentation, which is probably not worth the time it takes to open.  then there are three copies of the blog application.

Blog_step1 is just the basic django application, that does nothing.

Blog_step2 is where I’ve added a basic model of a blog post, I’ve added a basic view so you could see a post if any existed.  Creating a post is difficult at this point, you could do it with the Google App Engine dataviewer if you could manage it.

Blog_step3 is where I’ve added the facility to create a post.  Of note is that to create the form we only have to create an object that has a Meta class referencing the model.

I’ve also included diff’s of step1 to step2, and step2 to step3, so you don’t ahve to manually see what changed between versions.

Hope you like it.

I think that went well

Tuesday, May 6th, 2008

I went to the London Python meeting tonight, and listened to Jacob Kaplan-Moss of Django talk about where django came from and why it’s so damn cool.

I also gave a lightning talk about Google App Engine, for which I was very nervous.  For some reason I assumed that everyone in the room would have already downloaded and tried it, and would know more about it than me.  Actually It loked like most people knew of it but hadn’t played with it yet.

I’ll upload the slides and source code from the lightning talk tomorrow.

Things to remember next time:

  • 5 minutes isn’t very long, only 300 seconds in fact…
  • Google App Engine is big!
  • Showing people code in diff files in Vim is probably not the best demonstration!

There was a suggestion that I should put together a talk for Pycon UK about AppEngine, which I feel very underqualified to do, but would be a lot of fun so I’ll think about it.

WebMMO - Some critters added

Wednesday, April 16th, 2008

Just a couple of updates to WebMMO

  • I’ve made the map bigger.  Not for any good reason, just it just suddenly felt too small.
  • I’ve added a Hunt facility on the left.  It simply looks up in the database an appropriate monster to fight you.  In zone 1, there is a big dog, and a yappy dog that are found in sand and grass.  But the sand lizard and grass lizard are only found on their respective tiles.
  • I’ve added some admin pages to allow the initialisation of the creature database.

My todo list is longer than ever.  I’m thinking combat or action points is definately the next thing to attempt. Code is uploaded as always, please feel free to criticise, I’d love to get some opinions of a better way of defining the monsters / items and stuff rather than the dictionary in data.py and then turning that into actual dbObjects and putting them.

I’ve tried using the data import tool, but it’s quite complicated as to how you do so, and the documentation sucks, so for the moment I’ve given up.  Maybe I’ll create an admin view that lets you upload a CSV or something and then it wont be hard coded in the application.

Efficiency is not the primary target right now, just getting to having something working is target number 1, but I think the model I’ve got seems to work.