Thursday, 12 July 2007

SLashup Space registration system

The SLashup Space on Eduserv Island is a semi-public sandbox where people can experiment with building SLashups - Second Life mashups. The space is divided into 45 10m square areas.

To manage access to these areas I've built a simple registration system. Each square has a black cube in it. Clicking on the cube either:
  • gives you the option to reserve the square for your own use, or
  • tells you who has already got it reserved.
The system uses a combination of an LSL script running in the in-world cubes and several Perl scripts running on to manage the back-end database. The system uses the object identifier of each cube as a unique key into the back-end database. A minimal set of information is gathered for each used square - avatar name, organisation, email address and description of the activity being carried out in the area.

As an experiment to prevent spamming (yes, I know this wasn't really needed but I wanted to try it anyway), each cube generates a one-time key (a random number) which is sent directly to the back-end database before being encoded into the URL to which the end-user is sent to fill-in or update their details. This makes it pretty much impossible to guess the URLs needed to update the information about each square.

There's one minor hitch, which is that building rights in the SLashup Space are limited to avatars in the 'Eduserv SLashers' group. There's no automated way of adding someone to a group (as far as I can tell). Instead, the scripted cube sends me an IM each time a new avatar reserves a square - reminding me that I need to add them to the group.


Peter Miller said...

Thanks for setting this up. However, it doesn't seem to work for me at the moment: the webpage says "Sorry, something has gone wrong. Please go back to the SLashup Space on Eduserv Island and try clicking again on the RegistrationBot for the plot you'd like to use". Again and again...

Art Fossett said...

Sorry. I took some short cuts putting the server-side script together - using a DBM file rather than a proper back-end database. Now fixed and everything is working I think/hope.

Peter Miller said...

As your self-appointed beta-tester, I'm getting:
[8:21] SLashup RegistrationBot: 499
[8:21] SLashup RegistrationBot: Sorry, the status of this plot cannot be retrieved right now. Try later.

Peter Miller said...

Works fine now.