OpenSim Campfire
Monday, March 3rd, 2008Dale Innis provided me with a nice little animated campfire in my test OpenSim instance. I figured a screen shot was worth a thousand words here:

Popularity: 13% [?]
Dale Innis provided me with a nice little animated campfire in my test OpenSim instance. I figured a screen shot was worth a thousand words here:

Popularity: 13% [?]
Xplanet is this great program on Linux that does projections of the earth (including all kinds of possible overlays to include things like real time clouds, earthquake activity, and major storms.) For years I’ve used it as the background image on my Linux desktop. On the way home last night, while chatting with my friend Trey, it occured to me that through creative use of OpenSim, we could easily do this this in world with dramatic effect.
Below is a couple of screen shots of my 10m globe. I had to modify the code paths for osSetDynamicTextureURL to get 1024×1024 textures into the pipe, as 512×512 doesn’t actually look good wrapped on a 10m globe. There is still a bit of work to make this really good (like completing osSetDynamicTextureURL so we don’t need another timing loop in LSL to do refresh), but the initial results are quite nice.

The circles with numbers are earthquakes in the last 24 hours plus magnitudes (this information comes from the TotalMarker project).

Here you can see the storm track of the named storm Ivan (also from TotalMarker).
Popularity: 21% [?]
Another day, another set of ADO.NET code gutted. I love mondays!
Today the SQLite Assets for OpenSim were liberated from their cruel ADO.NET oppressor, saving memory and CPU time in the process. I did manage to break things for an hour or two as I had misunderstood the semantics of IDataReader. Thanks to Grumly57 on #opensim-dev for sorting out what I did that was really dumb.
Popularity: 9% [?]
I’ve been working on the OpenSim project for the past 3 months, so it’s quite exciting to see us put out the 0.4 release of OpenSim as a stake in the ground for future progress. Physics and scripting aren’t there yet, but are getting close.
The project continues to evolve faster than I could have imagined, I can’t wait for what the next 3 months brings.
Popularity: 7% [?]
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.
Popularity: 6% [?]
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.
Popularity: 9% [?]
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.
Popularity: 8% [?]