The Elusive Project

 What is this project all about?

So, I have eluded to a particular project I am working on.  This is actually not new, I started on this many years ago when I was more active on SL.  Then it got dropped during the hiatus, and now that I'm back and motivated again, I've pulled it out of the ashes.

If you've done any type of development, you're probably familiar with the feeling of  "how the heck does this work again?"  Well, I've had a few of those moments in the past week, as I'm getting reacquainted with not only the code I wrote, but how some of the things changed over the years, making some of that code unusable.  So I'm still in the "fix the code" mode until I can make more progress.

All that being said, here's what it does in a nutshell: I have a controllable avi (sometimes referred to as a bot) that wanders around in the SL world, and gathers some information.  That's it, that's all it does. Exciting is it not?

More details please?

Alright, let's elaborate a little.  Before we get into the "how it works", let's answer the more often asked question: "Why?"

And we have a few answers to that question:

  • Because I can;
  • Because I like data;
  • Because it makes my SL life more pleasurable, by giving me  a different method of looking for locations;
  • Because it gives me an opportunity to explore a new (from a coding perspective) environment. 

 What is the process involved?

Well, to start with, it looks just like a regular avatar. Because it is. I can sign in with that avatar manually and be just like any other regular visitor.  Then, there's an application I use, called Corrade which main purpose is to send commands and receive data to/from the SL world, via the avatar.  That particular one, once configured properly, just runs. It logs in your avatar and it waits for something to do. 

And then, the heart of this process, I have anther application I wrote which basically dictates where the Avi is going, and what it will do once on location.  In a very simplified way, that's how it works. If you're more visual, here's a quickly thrown together flowchart:



And for further breakdown of the steps:

Process Avatars in Range: So basically, for any avatar in range, it will extract the user UUID, and name of the avatar and store it in a database. 

We have to act quick on this, because some of the information can only be extracted while the avatar is still in range. If they teleport away while you're working, then you won't be able to process them until you meet them again

Process Avatars from Database: Once we've grabbed all we can from the avatars in range and stored that in the database, we can now start going through those and pull the remaining information that does not require avatars to be in the same region.   It will retrieve information such as display name, pictures, About, etc... and most importantly, the Avatar's picks.  This is what will allow continuity, as this is what allows to find more avatars, and therefore, more picks.  Once it has that information, it

Process Picks from Database: And finally, we process the picks we've been gathering. We store not only the Picks information (name, location) but also the text that goes along with it. This is a bit tricky however, as a lot of people (me included) use the Picks to store additional information unrelated to SL locations.  We are basically using the Picks as an extension to our "About" info.  This means the location attached to this pick will either not exist, or is not related to the pick data. So there's some verification and cleanup going on in that step.

And once it runs out of things to do, it will teleport to one of the Picks it has not visited yet and repeat the whole process.

Accessing the data

All of that information is stored in a SQL database, which makes it great because we can now use any medium we're comfortable with to go and view the information.  I typically will do quick searches manually if I am looking for something, or if I just want to browse, the data is available in a webpage format, from which I can scroll to any avatar that has been viewed, and look at their info, including their picks.  Or I can skip the avatar completely, and look only at the picks in the database, which makes them more anonymous, because then I won't know who it came from.

Data public availability

After I've explained this project to a few select people, one of the most recurring question was: "Will anyone ever have access to all that data?" And the short answer is no.   First of all, this information is already available via a variety of SL tools.  I am just putting my personal twist on it, and only retaining the information I'm actually interested in.  Furthermore, providing data to the general public, especially in a project like this, tends to bring more work than it resolves.  Everybody has their own idea of what information they're after. And I can't fulfill everybody's needs and wants.  And another reason is that my data will ALWAYS be incomplete.  There will always be Avatars or Picks that were not processed or visited, or whatever. Therefore, if I was to share that data, I would probably be flooded with complains that the data is incomplete, which we already know.  How about providing data with the clear explanation that there is no guarantee of any kind on the validity of completeness of the data, and so on.. I could. But there will always be more needs than I can provide.  Could I be convinced to share the data? Absolutely.  You just need to keep on reading.  

I need help.

This, like most project I ever work on, was a victim of feature creep.  If you're not familiar with this, basically, it started with a very simple and small idea, and I've just been adding more features to it.  The  problem is, a lot of those are only partly implemented, or I can't figure out how to make some of the stuff work yet. So, should you wish to provide assistance, you would need any/all of the following skills:
  • a decent understanding of how the data is stored in SL
  • have a look at the Corrade website, it will give you some idea of what I'm working with.  It might even give you the idea of starting your own thing instead of joining me, which is great! Maybe we'll share data with each other :)
  • you would need a fairly solid working knowledge of the following: MySQL, VB.Net, LSL, PHP, HTML. 
  • A fair bit of free time, as we would need to converse on a regular basis. I'm in SLT+1 time zone. You would need to be somewhat awake at the same time I am. so if you're SLT+12, that might be more of a challenge, but not impossible.

Does this sound exciting to you? It's exciting to me.  If you want to discuss more, please contact me in-world.  (realm174 uggla click the gear icon, click IM) 

Until next time... 

Comments

Popular posts from this blog

The first post is always awkward

A bit more on addictions...