Tag Archives: opensim

Reuters Article on OpenSim

There is an article on OpenSim up at the Reuters Second Life booth. On balance, the article isn’t that bad, though it has that standard mainstream need to create some sort of conflict in a story, so be it.

What I do find quite interesting is how fast the development of OpenSim has been going (emphasis is mine).

SECOND LIFE, Sept. 6 (Reuters) – Adam Frisby opened his Second Life client and logged into the virtual world, but right away things were subtly different.

In the world in which he found himself — one that closely resembled Second Life but was in fact a universe of his own making — there was no ability to customize an avatar’s appearance, for instance. So Frisby’s look was locked into the default, not Second Life’s white T-shirt and jeans but a light blue shirt and red pants. And Frisby’s walk and flight were a little awkward — the world’s physics engine was turned off to speed performance….

Inventory and appearance altering started working a week ago. The front page screenshot on the OpenSim web page shows me in my first attempt of this. We are moving fast now. I think the 2 month target in the article is a bit too optimistic, but the project is evolving quite nicely on a daily basis.

C# moment of clarity

The good thing about changing technical focus is all the new exciting things to learn. The bad things is… all those new exciting things to learn mean your development output drops to the floor for some period of time. It’s always a frustrating window of time, be it a month or two, where you feel like an idiot. Having done these changes enough times in the past, I know this too will pass. That doesn’t change the fact that while you may have read 200 pages of developer documentation on a given day, your emacs buffer looks eerily similar at the end of the day as when the day kicked off.

Inevitably, you hit a break through, and now all that example test code that didn’t compile, and you didn’t know why, starts working, and patterns fall into place. Yesterday I had such a moment of clarity around C# and ADO.NET (which is MS’s db interface layer). It turns out that in the function “SqlConnection(string)”, Sql doesn’t mean “generic sql engine”. Sql actually means “MSSQL vendor extension”. Some set of compile errors yesterday got me to on a lark change that to SqliteConnection, and stuff worked. A lot of stuff worked, all at once.

I had to step back from the computer and make sure no evil spirits had come or gone in the process. Leave it to microsoft to very clearly muddle the difference between “something generic”, and “something only we have”, as to them the whole world looks like something only they have. Boo microsoft!

With that set of filters back in hand, the O’Reilly books around C# are now falling into place much more quickly. The persistence engine for OpenSim should have a good first pass by the end of the day, and I’m not feeling so stupid any more.

I also have to give MS some credit on ADO.NET. While C# looks a lot like Java, the patterns and objects they created for database interfacing looks way more like a dynamic language (be it php, perl, or ruby), especially on the read side. Read site, what will take 50 lines of code in C#, would probably be 200 lines in Java. So not boo to microsoft there.

Time to get back to that emacs buffer.

Fun with visualization

In an effort to wrap my head around some of the code for OpenSim, I took a detour and started adding C# support to autodia. Autodia was originally written as something to create dia UML diagrams from perl code, but extended from there to support many languages, and many output formats. Unfortunately, C# is not yet one of those, yet.

Right now I’ve got class and attribute parsing pretty well under control (except for generics). Autodia definitely evolved on less object oriented languages than C#, as one of the things I’m most interested in knowing is the contains relationships in the codebase, which isn’t supported in the current version (though I know know how to add it, just need a couple of hours). One of the things I’m trying to expose is one of the gotchas of object design: the inbreeding that can come from having parents and members all be the same base class. I’m sure there is some good banjo joke in there, but I’m a cup of coffee short of finding it.

The results, are quite pretty:

Once the work is in a more finished state, I’ll be pushing it back upstream, so others can benefit as well.