Friday, August 31, 2007

Opensim HTML on the prim: the sneak-peek preview: technical commentary

If you came in here, probably you got thrilled by the pictures on the Vint's post. Before you all rush to download the opensim, cool down for the time being :)

The code is not *yet* in the codebase, this is a working copy on Michael's development host. However, it should be in SVN soon.

Also, there are a couple of implementation alternatives - windows-only, and gecko-based, crossplatform.

I have a strong vote for taking the time to implement it properly and crossplatform - such that we can continue enjoying the platform independence - being able to run both in mono, and in windows.

Also, even when the code is in there - don't expect it to be plug and play. It is still "early morning bird" arrangement for the brave hackers (in the original, good sense of this word, not meaning the miscreants).

Once it is in the codebase, I will play with it more and then publish some less-than-human tutorials about how it can be used (and of course, you can practice on Zion and other test opensims once they pick up the code).

Update: One thing to clarify. This photos do not mean you can start randomly clicking on links once the code is there :)

Due to the architecture, what is happening (which is similar to my vnc2sl thing), is that the module retrieves the web page, and renders it as a texture on the face of the prim.

So do not expect to post right away to your blogger pages while typing in the editor windows on the prim faces inworld - that won't happen, not unless the client code changes significantly to accomodate that (at which point the whole implementation would look very very very different).

But hey, I think it's still already quite a cool thing to have :)

Stay tuned for more updates.

wooden binary counting machine from RL

Geek mode: on.

This is hilarious.

Dalien's response to the nipplegate - policy compliant skin.

As the Nipplegate reaction develops, there are valid concerns from many residents that there is a need to protest against such a crying nonsense.

However, peaceful as I am, I offer you an "all-future-policy-compliant" skin instead.

Sorry, it might look not as exciting as your usual items in the inventory - however, I could not take any risk on you. Maybe the next item considered broadly offensive might be the facial expression or the thickness of the lips.

You can just right-click and save, the skin is here:

Policy compliant skin for secondlife

As you can see, this skin features a neutral light tanned look and feel. It is compatible with any bodily dimensions - since it is a uniformly coloured surface, it will look perfect - you will definitely not have the offensive nipples, as well as no excessive kinkyness on your face (ensure that you apply this texture to your face, upper and lower parts of the skin you create).

This skin will perfectly fit any clothing. For the neko variants, you can open it in any editor and turn into black and white. Both flavours are unisex - so they are good for both male and female avatars.

I believe you will enjoy this all-future-policy-compliant skin texture and will distribute it to your friends and neighbours who are surely also eager to join the legions of the quiet, all-future-policy-compliant SL citizens.

If you are one of those stubbon ones who still wants to have nipples and other details, please refer to the free nipplegate clothing set by Vint.

googlebot wants to play opensim too!

Just to neutralize the previous post, a little cute thing from yesterday.

When logging on to my opensim box, I did notice a bunch of connections from a particular address.

The name resolution showed it was noone other than googlebot :-)

Well, I hope he or she or it did have the fun.

However, wondering whether we need the robots.txt to be served by the login server, or not...

Thursday, August 30, 2007

Help save the nipples!

Or, "You have already initiated the downgrade process.".

As you know, I am pretty much male. To a large extent. Masculine, even. Whatever dandellion says about the meaning of nipples for women, I think for males they do matter even more. First of all, ours are nonfunctional. Then, theirs form a much more aesthetic view. I know I am biased, but nonetheless, I'd plead to not underestimate the importance of the female nipples in the male's life (well, besides all the Freudian things it's really literally thanks to them that we're actually here).

As my RL av keeps telling me - "you have to provide the business case to make things move". An I kinda agree with that. So, after reading yet another gem, I figure I'd provide a small business case, and decided I have a better use for the money that I spend paying for my "accounting" alt.

So, as of today, the "accounting" alt (which was not free account), has been downgraded to a free account. Great - means I get 25 bucks per month I could spare on something else - hosting, beers, what not.

However, still shows up as premium... And another attempt to try to do it gives a nice message.

"You have already initiated the downgrade process. Your account will downgrade to Basic Access on Tuesday, September 11, 2007"

"Next bill date: Tuesday, September 11, 2007"

Amusing. Although understandable as a straightforward way to prevent the "loopholes". But anyway, amusing. Since there are smarter ways to do this, I'd think.

How this will impact others ? Well, not much. I always was and will remain a free account, so unless there is further discrimination by whatever means, I might very probably appear inworld from time to time. Although the other ways to spend the time seem to be much more rewarding.

One somewhat noticeable impact that could happen is that the plot that I had used for primskirtbuilder, would disappear. Anyway I hope there are enough copies in-world to distribute it. Go grab a kit, and build your own (tip jar is at your discretion, but just dont resell :) - and send me the SLURL, I'm gonna put it here.

And just to add the spice, I'll mention what I got after a couple of weeks, after submitting the primskirtbuilder at the development portal, I did get a notice to resubmit the submission because the page that I was used was supposedly no longer active.

1) if it was no longer active, how in the world would one have known my email ? (I'd just expect it to fall into the void)
2) if it was "no longer active", and my submission *did* get there, why my dear friends would you not clean up *your* glitch and resubmit it yourself ? (or, as I'd assume the email notifications or whatever to be automatically generated, so they can be formally redone into the new 'interface'. c'mon. the whole thing could have been written by a computer science student who missed no more than 60% of the classes. Or do I misunderstand, and there is superflucious quantum physics involved ? Give me a break, please.

I'm patient when it comes to grid being down - being a "tekkie", and understanding a little bit the kitchen behind, I do realise there are some nontrivial things that the grid monkeys have to maintain. I'm patient when it comes to the client crashes - after all, Nicholaz did fix quite a few of them.

But, I am sorry, I do reserve the right to disagree when I face the clinical cases of extreme nonsense.

Oh, by the way, here's some indecent pictures made by Greeks: here, and here. Iridium, go visit Louvre, or the Hermitage, or any other museum other than Linden Village - they DO have nipples there! And moreover, sometimes they are even PAINTED!! IN PINK! :)

Uh-oh.

*still speechless*

p.s. Not sure if I can still sell the land, but if anyone wants 1x2048 (square-shaped), 1x1024 (square-shaped), 1x1024 (rectangle-shaped), and 1x512 (primskirtbuilder plot, PG) - IM me, we can arrange the transfer for a symbolic "buggy" fee of L$-1. Yes, I will pay you one linden for each piece of land that you grab from me. (If I can still sell it, that is, having requested the downgrade to the basic account).

Just one request - for the primskirtbuilder plot - keep the primskirtbuilder there, please :)

And thank you again Iridium...

p.p.s. While diagonally reading dandellion's post, I've forgotten to repost, what I consider to be quite appropriate for this case, and I repost from the blog:

[quote]
Laetizia asked for an apology:

I demand an official apology on the Second Life blog, containing the words overzealous, overstepped, clear and boundary. I demand that the statue be allowed to stand on the intended spot, in her full nude glory, with a notecard giver next to it to give out the full text of said blog.

In addition to this, I ask an apology for Iridium Linden's words.
[end quote]

Multiregion setup helper ruby script

Oh, and before I forgot - here's a sample ruby script for you to create the few regions and
few users.
Place it in your bin directory and it will help create a few files for you.


require 'digest/md5'

999.upto(1001) do |x|
999.upto(1001) do |y|
name = "sim x#{x} y#{y}"
port = 9000 + (x-1000)*100 + (y-1000)
uuid = Digest::MD5.hexdigest(name)
File.open("Regions/x#{x}-y#{y}.xml", "w") do |f|
f.print <<__EE__



__EE__
end
end
end

File.open("startup_commands.txt", "w") do |f|
f.print "terrain fill 21\n"
end

# to create users, use "command-script users.txt" when loading the first time.

File.open("users.txt", "w") do |f|
"a".upto("z") do |u|
f.print "create user Test#{u} User test 1000 1000\n"
end
end

What's the sim limit on the number of prims ?

I know. It's early. I'm running ahead of the train. But anyway. :) I wanted to see how we behave in the extreme conditions. created 5000 prim cubes, and looked how the things are.

Well, the things are not too bad, as soon as you do not try to edit those prims in bulk - then the things become quite bad. For many reasons.

So, just so that you did not have illusions :-) This part still needs further work. But let's get the basics done first. *returns back to the train*

As a side effect of all this, Zion is now a 3x3 terrain = 589824 square meters, filled with grass.

I think I need to get a few cows - it might become a profitable occupation to breed them on these pastures :)

Wednesday, August 29, 2007

First girl on OpenSim :-)

Today I showed Vint the Opensim server that I installed yesterday.

So, the place of the first female user on opensim is now officially taken :-) (there are still second and third, available till supplies last).

Indeed, no wearable prims, hence no primhair or shoes. So you have to be in a camping mood to try it out :)

Ow, also it was the first time someone was wearing a decent clothes there - as we did not care too much what is the color of the working suit that we put on while coding/testing. Having someone dressed in actual clothes with a texture has made it quite a nice experience.

Now it did feel almost like SL, except no lag :) (ok i know the comparison is silly, but anyways...)

How to connect to OpenSim ?

Update Nov 3 2007: Ruth/Zion will be offline for 2-3 weeks - I need all the CPU/memory for some other stuff. The nightly build indeed still works (or fails, in case it fails to compile :)

-----
Inspired by the previous post, I decided to make this one. This will be a semipermanent, updated post, which will hold the currently known "known to be working" places where you can play around with OpenSim.

There are two ways to run opensim - grid mode and standalone mode. As the focus of the 0.4 release is on the standalone mode, I will list the standalone sims first, and then the ones that are hooked up to the grids. The sims are mentioned here are usually up, if they are not - means someone managed to crash them (good! more bug reports!) - be patient and try the another one.

For each of the sims, a bit of a description of what it is, and the value of the "-loginuri" parameter. Update: if you do not know what "loginuri" is - Vint has a post which is readable by normal people - feel free to take a look :)

Standalone sims




  • Zion - run by me. Should be not too laggy (well, minus bugs, if they are there) - good server not doing much more than just opensim, and fast connectivity. At the moment no physics to keep it more stable. Loginuri: http://ruth.petitbe.be:9000/; usernames: "Testa User" through "Testz User", password "test"

  • CannonFodder - run by Charles Krinke (ckrinke@ #opensim). basicphysics (i.e. no physics beyond walking on the ground), ran on the DSL connection - good for checking how it works with lower bandwidth - the race conditions should be more readily seen. Loginuri: http://67.120.11.68:9900/, usernames: "Testa User" through "Testz User", password "test"



Grid sims


OSGrid



  • Yang - ODE physics, run by Charles Krinke


DeepGrid



  • Bao - basicphysics, run by Charles Krinke



If you would like to be listed here - leave the trace in the comments...

Tuesday, August 28, 2007

And here we go with some servers to play on....

First, the lower-bandwidth server (courtesy of Charles Krinke, DSL speed):

login-uri: http://67.120.11.68:9900/

the logins: Testa User ... Testb User ... Testp User
password: test

And here's a snapshot:

opensim


The second is my new server, the loginuri is http://ruth.petitbe.be:9000/ (and thanks to Vint for the idea of the hostname :-)

It's a rather zippy machine on a reasonably good connection, so should be fun...

Credentials - Testa User .. Testz User, password test.

Here are the three of us, finally enjoying some kind of manly looks :)

opensim3

Ow, yes - my sim does have some muzic on :)

Compiling opensim on gentoo

I had installed a Gentoo server from scratch today, so here is a quick summary of what you need to do to compile opensim on gentoo:

1) install the necessary packages

emerge subversion
emerge mono
emerge nant
emerge gdiplus

2) check out the source from the SVN and compile:

svn co svn://svn.opensimulator.org/opensim/trunk
cd trunk
sh runprebuild.sh
nant

3) go to bin and launch:

cd bin
mono OpenSim.exe

4) answer the questions.

5) have fun! :)

Sunday, August 26, 2007

Brushing up my opensim building skills - wanna try too ?

Compared to the first experiment with primwalking, I made some more enhancements to my testbench. And I think i start to like the little world. One thing definitely missing is poseballs. But all in time...

Here're a couple of pictures:

My Opensim at daytime

And in the night time (the one I like):

My Opensim at night

Now that you are all excited to see... I made a build off the yesterday's version from SVN, which you can download here and run - just start OpenSim.exe

Many things are already preset... you can login with e.g. "test user" password "test", or "Dalien Talbot" password "test", or create your own user by doing "create user" in the sim console.

Once you launch it - use "-loginuri http://localhost:9000/" parameter to login to it.

Be aware this is full of bleeding edge features - ODE physics, for one :-)

One thing: do not attempt to clone objects by shift-drag. this almost surely will bail things.

If you happen to try it out, post your impressions here in the comments, please :)

Linux version of the client

Thanks Vint for the news - which I missed - There's a Nicholaz client for linux too now! More details here. I'm gonna see how it runs and will post the comments here.

UPD: Hmm. Apparently it is not able to login to opensim... ok, will investigate sometime later :)

Tedd stress-testing the OpenSim scripting...

A small stresstest made by Tedd on the scripting side. Interesting, and has some pictures!

Saturday, August 25, 2007

More than one av on opensim!

quick post with texture resend bug hunting party on opensim. We had as many as 5 avatars!! :))

Texture resend bug party 2

Texture resend bug party

I walk, build and script - therefore, I exist

Thanks to sdague for putting my flags mod - now in the default checkout of the trunk the objects are editable in my mono build, i.e. I can use the opensim right away! As well - the objectflags are now persistent in the SQLite database - so both the prims, and their permissions survive the restart of the opensim! Woot! :)

Then, physics engine is in - so I can walk on prims now! (well, it is still quirky - but it does work somewhat)

Here's newruthed yours truly, standing on the prim, looking at the sun:

Standing on the prim

And here I am, having put the script with the touch event which says "hello", and quickly opening up the prim inventory box after that (capturing that screen was a bit tricky - I had to do it rather quickly so that the text does not disappear):

Script in the prim

On the same exhibit you can see a funny quirk - when I was standing atop the 45-degree prims, and was editing the small prim underneath, some highly forces have started to move my avie around.

I think this must be the neurokinetics, but I would need to check with danx0r :)

Indeed all of the above is just the initial raving, the things are currently *very* rough on the edges, e.g. at this time the scripts disappear after a few minutes (the fix is being worked on), but Tedd did test 50 scripts running at the same time. We should scale more - as the scripts without the events seem to not consume CPU almost at all. We will try things out as we go...

Thursday, August 23, 2007

Banging my head on the virtual wall...

Ok, apparently the flags not being saved was an oversight. So, refreshed - and the storage stopped working. Well, apparently there is some weird stuff going on there... The last working revision is r1742 - it broke with the commit in r1743.

Better yet, while updating, I accidentally did "!svn" in the empty directory... which, in *nix, recalls the last command... curiously it was the command i was using to generate the diffs for my primflags patch. Argh.

Luckily, thanks to hard work of danx0r, ckrinke & babblefro I was able to try out the not-yet-committed patch of ODE physics and bang my head over the virtual prim wall to my heart's content. I am not going to post a picture - it was too much blood all over the place to show it.

Once I cleaned up, I still decided to post a teaser here with me standing on a prim:

Opensim ODE physics spoiler

Ignore the psycho colouring - this is a usual mess with the textures on the linux client.

Wednesday, August 22, 2007

Multiple regions within a single opensim.exe

I long wanted to try out running multiple regions. Dead simple - RTFM. Copy the configuration within the bin/Regions/ into a new one, and adjust the X and Y coordinates. I created three additional regions with coordinates 1001,1000; 1000,1001; and 1001,1001 respectively. So, together with the default region at 1000,1000 this forms a nice square.

And indeed:

Multiple regions within the single opensim.exe

Flying between the regions is working, even though you see a visible "shock" in the camera when crossing the borders. I can't wait to get the server on the internet to test out how would this feel with the "real" network conditions.

I did not try walking between the regions yet - will probably do it once I have a "real" server.

The mystery of object flags.

XML import/export thing will probably eventually changed from the low-effort hack that I did, into something more proper. Awaiting to chat with Sean tomorrow about ADO.NET.

Meanwhile today I took a small detour into objects. Enabling prim storage in sqlite database worked like a charm, but (since I did a new checkout again), whatever I was building, was not modifiable. So, instead of slamming in my usual hack with setting all the flags, I decided to go and implement the things "properly".
Thanks to libsecondlife folks, we already have symbolic constants for the flags, so setting the (seemingly) correct ones was easy.

However, when restarting the sim, I noticed the objects become unmodifiable. Further digging showed that we do not save the object flags in the database at all! I presume there must be some explanation to this, even though my head is a bit too sleepy at the moment to come up with feasible scenarios. Well, tomorrow we'll find out :-)

Why would you rotfl, and what is an IRC ?

As I talk with the less geeky (or, geeky for a less time) people, sometimes they my jargonisms like ROTFL, OTOH, FWIW, etc. are met with the questioned looks. "And what's that ?" - "Well, that's an abbreviation from IRC" - "So, what is the IRC?"

In short: IRC is like SL but you can not build/script/sell stuff and you have to have to cyber (the abbreviation from cybersex, or SL-specific - SLex) with more imagination - since there is no convenient Xcite or sexgen to beef up the imagination in case it lags a bit.

Longer: IRC stands for Internet Relay Chat, the protocol is described in RFC1459, if you are looking for an even more details.
I would say IRC can easily be called a "proto-metaverse" (remember: it was readily available back in 1990s).

You did have the "channels" (chatrooms), in which there were different social statuses (operator, or "op" for short - who could change the various properties of the channel, and also could control the behaviour of the participants to some extent. Ok, call them the SIM owners, there is no difference. :)

And then there was the same unique "social glue" that we are chanting about these days.
There were stories of love and hate, peace and war, friendship and betrayal.

It was a unique tool to mix the different cultures together. And at the time when just not so long ago a letter from Russia to the USA would take a month to be delivered, realtime communication with someone across the globe did look like a magic.

It is interesting to observe the parallels.

Oh, you do expect me to write what the "ROTFL" is ? You seriously think I would do that ? I was just looking for an excuse to bring up some nostalgic reminiscences. :) If you really wanna look up those acronyms, there are sites that do that much better, for example netlingo - I won't try outdo them. Besides being just plain silly, it's a lot of work... And as you all know, I am a terribly lazy neko.

Tuesday, August 21, 2007

Hunting for downloadable skin freebies...

Ok, inbetween the geeky stuff with coding up the opensim, I wanted to see if I can finally do
something to get the male population in OpenSim (Currently there is just a NewRuth avatar - it is better than the default in SL, but I'd still like to have a male one.

As one could figure out, there are not so many places on the web that might have the secondlife skins (and textures too :)

Nonetheless, I did find a couple of interesting places:

http://www.slworld.info/freetextures/ - many textures, but given that the head texture does not seem to fit, even though it is marked as "SL texture", wonder where did it come from...

http://ca.geocities.com/tabbotts2016/ - a few skins. ooops. they are female. Well, means more variety for the ladies :) But maybe we could tweak them to look more male too...

a few "regular" textures - just a samples of a result of work of the commercial texture making program. The program looks interesting... I wonder if Gimp can do textures too - maybe...

http://arianeb.com/secondlife.htm - actually the complete noob's guide to SL. Has upper/lower skins, and, despite being female skins, they seem to fit on male as well :) (well, somewhat :)

Up to you to judge on the latter:

female skin used as a male skin

(and yes, the lower part will need some rework in certain areas :)

Sunday, August 19, 2007

LSL in opensim: where are we now

Tedd on where are we now with LSL.

Delicious geek read.

The impact of blog content on the OS ?

Blogging about blogging is bad, but the past post about browsers caused quite a lot of interest, so some more data in case you are interested to debate...

The OS distribution in the month of june:

Windows: 80%
Mac: 12%
Linux: 8%

The last two weeks (when I started intensively writing about opensim).

Windows: 68%
Linux: 21%
Mac: 11%

So, somehow I see the correlation.

Geek humor

While doing the diff, noticed this line of code:


this.AddToUIConfig("allow_first_life", this.allowFirstLife);


Would be a very useful feature if we implement it thoroughly.

opensim XML save/load spoiler

First a little rant: I officially dislike A-320 airplane. 8 hour flight with the feet in strange position such that the knees are almost hitting my ears does hurt. Also, if you pull the seat back, this further takes away from the person behind you. And to add to that, the headphones given out are borken, so even no way to get the consolation in music. pfff. Adding to that, the internet in the hotel "does not work". The latter was easy though. DHCP server went dead. a couple of manual tweaks - and I am online :-)

Anyway, enough noise - to the meat of the post...

Apparently the code to save/load the prims to/from XML is already there. So, I made a small hack to save the prims into XML file and load from there. Obviously besides the mere backup, it also gives the possibility for some funny experiments - e.g. fully algorithmically generated content, which can be imported.

The speed of import is not so great, and I think we will need to heavily optimize the routines later, but at least it works! :)

opensim-manyprims2

This is supposed to be 2500-prim-figure, with the function Z=sqrt(X*X+Y*Y). For some reason I thought it might be a sphere, but I think I forgot something somewhere - it obviously does not look like sphere.

opensim-manyprims

This one I like even more - 10000 prims :) Although, as you can see on both - apparently not all the prims "get through". There are also fancy errors on the console while importing the generated XML (not related to XML content), so maybe some stuff simply does not get imported.

I'll cleanup the code later on and then submit the patch.

UPD: Looks like even though there are errors, it still does get imported, here's a beautifum 2500-prim version, which sometimes loads fully into client, sometimes not:

opensim-manyprims3

And the patch itself is in the bug#294 (I did not thorougly test the code yet - only on standalone prims, the CLI is very very experimental and has to change).

UPD2: My half-assed patch went in, available in r1707. There are two CLI commands (not shown in the help as of now): "save-xml [filename]" and "load-xml [filename]". By default they save/load to/from "test.xml".

I will need to revamp the code to move it away from kind of "backup/restore" as it is now to "export/import" - backup/restore will need to be handled using the datastore infra which we already have.

Saturday, August 18, 2007

First LSL experiments.

Ok, this one is not ready for general users, but nonetheless, why not share :)

Right now, with Tedd's excellent work, we have a compiler LSL->C#.

The way it works is kinda hacky. But helps to slowly wade through three hundred plus functions of LSL.

There is a script bin/ScriptEngines/Default.lsl - which is indeed an LSL script.

Right now only touch_event works, and this script automagically gets executed for every prim that is rezzed.

So, it is a natural (and the only :) place to put the stuff in. Right now the 'test script' looks like this:

integer touch_count = 0;

to_integer(float num)
{
llSay(0, num + " floor: " + llFloor(num));
llSay(0, num + " ceiling: " + llCeil(num));
llSay(0, num + " round: " + llRound(num));
}

default {
state_entry()
{
llSay(0, "Hello, Avatar!");
}

touch_start(integer total_number)
{
float angle45 = PI/4.0; // 45 degrees
float angle30 = PI/6.0; // 30 degrees
float sqrt2 = llSqrt(2.0);
float deltaCos = llCos(angle45) - sqrt2/2.0;
float deltaSin = llSin(angle30) - 0.5;
float deltaAtan = llAtan2(1, 1)*4 - PI;
float deltaTan = llTan(PI);
llSay(0, "deltaSin: " + deltaSin);
llShout(0, "deltaCos: " + deltaCos);
llWhisper(0, "deltaTan: " + deltaTan);
llWhisper(0, "deltaAtan: " + deltaAtan);
llSay(0, "Fabs(power(2^16)): " + llFabs(0-llPow(2, 16)));
llSay(0, "Abs(-1): " + llAbs(-1));
llSay(0, "One random(100): " + llFrand(100));
llSay(0, "Two random(100): " + llFrand(100));
llSay(0, "Three random(100): " + llFrand(100));
llSay(0, "Four random(100.0): " + llFrand(100.0));
llWhisper(0, "The unix time is: " + llGetUnixTime());
to_integer(2.4);
to_integer(2.5);
to_integer(2.6);
to_integer(3.51);
llSay(0, "Should be 112abd47ceaae1c05a826828650434a6: " + llMD5String("Hello, Avatar!", 0));
llSay(0, "Should be 9: " +llModPow(2, 16, 37));
llSay(0, "Region corner: " + (string)llGetRegionCorner());
llSetText("This is a text", <1,0,0>, 1);

touch_count++;
llSay(0, "Object was touched. Touch count: " + touch_count);
}
}

some of the functions above are still thunks (like 'saying' - even though Tedd already has the code in his pocket, but it is not in SVN yet.

So... just 300-something left :-)

Friday, August 17, 2007

Opensim for non-techies

I'm a superstar now. Well, not really at all. But still it is fun to feel like one :-) A couple of days ago we did have a long chat with Dandellion and so the post about the opensim is now there :) Thanks :)

Ow, another thing. Looks like accidentally yesterday night I've rented a real server on a real internet for a year :) So, in a few words, should be possible to do some more fun experiments than I could do till now due to resource constraints.

*can't wait to try it out* :)

How to do a persistent flat terrain in opensim ?

Very easy. :)

when you boot it up first - it will complain that it could not load the default terrain file. The file is called "default.r32". So - we need to create an appropriate file.

1) Generate the flat land at 21m height:

terrain fill 21

2) Save this as defailt terrain

terrain save F32 default.r32

Voila! Next time, opensim will find the file and will load the flatlands. Or any other landscape that you have made and saved.

UPDATE: well, the only side effect of this is a terrain multiplier. It is currently set to 60, so when loaded, the terrain ends up at 1260 meters. Good if you are used to living in the mountains, otherwise one would need to tweak it :-) I forgot where was it changeable, once I find it, I will update this post.

Get a taste of opensim yourself...

For those who want to just "try it out real quick" and see what is possible and what is not, here's the procedure:

1) go to http://osgrid.org/ and create an account. Set your home sim to be "Yang".
2) Launch the client with pointer to the osgrid:

Windows: invoke the Windows client from a dos command window in the "Program Files\SecondLife" directory as 'SecondLife.exe -loginuri http://osgrid.org:8002/' and use the password you setup with osgrid. (Or copy the shortcut for the secondlife client, and add the "-loginuri http://osgrid.org:8002/" parameter.

Linux: './secondlife -loginuri http://osgrid.org:8002/'

3) Do whatever you want :)
One request: if you manage to crash the sim, please tell here how you did it.

Few important comments:

1) ***** DO NOT USE THE SAME PASSWORD AS FOR SECOND LIFE *****

The login with opensim happens (at least as of now) over the unencrypted channel. Do not, I repeat - do *not* use the same password as any of your usual ones.

2) Everything gets wiped out now and then entirely.do not assume anything is saved, as of now.

Tuesday, August 14, 2007

opensim for more visual types

To compensate for the long run of garbage on the previous post, for the more visual types, here's a snapshot from my test run with opensim - slightly with inter-metaverse twist again :)

opensim_build_jpg

For the techies who want to repeat the experiment:

* check out the revision 1641
* find the file OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
* On line 221, just before "ScheduleFullUpdate()" call, insert: "m_flags = (LLObject.ObjectFlags)0xFFFFFFFF;"
* build

Now you can edit the objects you rez. Well, everyone can edit your objects, but you should be able to have some fun building extremely quickly.

NB: don't spend too much time on this - since the results are not persistent! (maybe a bug, maybe still the restructuring - I will need to check).

Compiling opensim on ubuntu/debian: what is needed

Ok, this is going to be a slamdunk pile of unsorted noise, but hopefully you will find it helpful at least to some extent, if you plan to build the opensim on debian/ubuntu. If not, you do not need to read the rest of this post - will be rather useless.

When/if anyone gets something more edible - please put it on the OpenSim wiki.

Here we go. First the IRC chat log with the rough instructions on what minimum to install.

Disclaimer: YMMV.

(03:06:10) danx0r: for the record: kubuntu 7.04
(03:06:17) danx0r: install mono
(03:06:32) danx0r: install everything that has "mono" and "microsoft" (3 libs I think)
(03:06:38) danx0r: install gmcs of course
(03:07:18) danx0r: and system2.0
(03:07:31) dalien: then it builds ?
(03:07:35) danx0r: yup
(03:08:03) dalien: hm ok. want to put it on wiki ? or i can just slamdunk the irclog onto my blog
(03:08:18) dalien: and then when someone comes up with a prettier doc - then we can have it on wiki
(03:08:28) dalien: since this is still a "hacker version" :)
(03:08:37) danx0r: it's even running
(03:08:42) danx0r: yes
(03:08:52) danx0r: it's particular to my version of ubuntu and adept
(03:08:57) danx0r: but it's likely to be useful
(03:09:02) dalien: yeah. i will post all the disclaimers.


Now, goes the wholesale list of the packages installed on my system, where I've just successfully built the r1641 (warning: there is a lot of useless irrelevant unnecessary stuff in there, this is provided for your reference *only*):


~/opensim# apt-show-versions
groff-base/unstable uptodate 1.18.1.1-12
libx11-data/unstable uptodate 2:1.0.3-7
sysv-rc/unstable upgradeable from 2.86.ds1-38 to 2.86.ds1-38.1
libsdl1.2debian-alsa/unstable uptodate 1.2.11-9
libmysqlclient15off/unstable upgradeable from 5.0.41a-1 to 5.0.45-1
iputils-ping/unstable upgradeable from 3:20070202-1 to 3:20070202-2
x11-common/unstable uptodate 1:7.2-5
libstdc++5/unstable uptodate 1:3.3.6-15
libvorbis0a/unstable upgradeable from 1.1.2.dfsg-2 to 1.2.0.dfsg-1
libident/unstable uptodate 0.22-3
libdb3 3.2.9+dfsg-1 installed: No available version in archive
gcc-4.2-base/unstable upgradeable from 4.2-20070707-1 to 4.2.1-2
libvorbisenc2/unstable uptodate 1.2.0.dfsg-1
libreadline4 4.3-17 installed: No available version in archive
liblzo2-2/unstable uptodate 2.02-3
login/unstable uptodate 1:4.0.18.1-11
libpam-modules/unstable uptodate 0.79-4
libmono2.0-cil/unstable upgradeable from 1.2.4-4 to 1.2.4-5
libmono0/unstable upgradeable from 1.2.4-4 to 1.2.4-5
libwrap0/unstable upgradeable from 7.6.dbs-13 to 7.6.dbs-14
libsdl1.2debian/unstable uptodate 1.2.11-9
libraw1394-8/unstable uptodate 1.2.1-3.1
libpam0g/unstable uptodate 0.79-4
debian-archive-keyring/unstable upgradeable from 2007.02.19-0.1 to 2007.07.31
libnunit2.2.6-cil/unstable uptodate 2.2.8-1
libmono-sharpzip2.84-cil/unstable upgradeable from 1.2.4-4 to 1.2.4-5
sysvinit/unstable upgradeable from 2.86.ds1-38 to 2.86.ds1-38.1
base-files/unstable uptodate 4.0.0
xfsdump/unstable uptodate 2.2.45-1
libx11-6/unstable uptodate 2:1.0.3-7
libkrb53/unstable upgradeable from 1.6.dfsg.1-5 to 1.6.dfsg.1-6
libavcodec1d/unstable uptodate 0.cvs20070307-6
libmono-winforms2.0-cil/unstable upgradeable from 1.2.4-4 to 1.2.4-5
libcomerr2/unstable upgradeable from 1.40.1-1 to 1.40.2-1
libmono-corlib1.0-cil/unstable upgradeable from 1.2.4-4 to 1.2.4-5
libsasl2-2/unstable upgradeable from 2.1.22.dfsg1-12 to 2.1.22.dfsg1-14
liblzo1/unstable uptodate 1.08-3
grep/unstable uptodate 2.5.1.ds2-6
libgsm1/unstable uptodate 1.0.10-13
libtasn1-3/unstable uptodate 0.3.9-1
libmono-system-runtime1.0-cil/unstable upgradeable from 1.2.4-4 to 1.2.4-5
libmono-accessibility2.0-cil/unstable upgradeable from 1.2.4-4 to 1.2.4-5
svgalibg1/unstable uptodate 1:1.4.3-24
libconfig-inifiles-perl/unstable uptodate 2.39-2
sysvinit-utils/unstable upgradeable from 2.86.ds1-38 to 2.86.ds1-38.1
dselect/unstable uptodate 1.14.5
rails/unstable uptodate 1.2.3-2
libglib2.0-dev/unstable upgradeable from 2.12.12-1 to 2.12.13-1
libdevmapper1.02.1/unstable uptodate 2:1.02.20-2
libdc1394-13/unstable uptodate 1.1.0-3+b1
libgems-ruby1.8/unstable upgradeable from 0.9.4-1 to 0.9.4-3
gpgv/unstable uptodate 1.4.6-2
pkg-config/unstable uptodate 0.22-1
libmono-microsoft-build2.0-cil/unstable upgradeable from 1.2.4-4 to 1.2.4-5
diff/unstable uptodate 2.8.1-12
libmono-relaxng1.0-cil/unstable upgradeable from 1.2.4-4 to 1.2.4-5
gnupg/unstable uptodate 1.4.6-2
tar/unstable uptodate 1.16.1-1
ipchains 1.3.10-16 installed: No available version in archive
libxrender1/unstable uptodate 1:0.9.2-1
libmono-system2.0-cil/unstable upgradeable from 1.2.4-4 to 1.2.4-5
libplrpc-perl/unstable uptodate 0.2017-1.1
libuuid1/unstable upgradeable from 1.40.1-1 to 1.40.2-1
nant/unstable uptodate 0.85-2
logrotate/unstable uptodate 3.7.1-3
libreadline5/unstable uptodate 5.2-3
ffmpeg/unstable uptodate 0.cvs20070307-6
libselinux1/unstable upgradeable from 2.0.15-2 to 2.0.15-2+b1
rake/unstable uptodate 0.7.3-1
libxext6/unstable uptodate 1:1.0.3-2
libsysfs2/unstable uptodate 2.1.0-2+b1
libasound2/unstable uptodate 1.0.14a-2
libsqlite3-0/unstable upgradeable from 3.3.17-1 to 3.4.1-1
bzip2/unstable uptodate 1.0.3-7
libpcre3/unstable upgradeable from 6.7-1 to 7.2-1
libdb4.3/unstable upgradeable from 4.3.29-8 to 4.3.29-8.1
libncursesw5/unstable upgradeable from 5.6-3 to 5.6+20070716-1
rubygems/unstable upgradeable from 0.9.4-1 to 0.9.4-3
defoma/unstable uptodate 0.11.10-0.1
mono-jit/unstable upgradeable from 1.2.4-4 to 1.2.4-5
libmono-system-runtime2.0-cil/unstable upgradeable from 1.2.4-4 to 1.2.4-5
hostname/unstable uptodate 2.93
libavformat1d/unstable uptodate 0.cvs20070307-6
libssl0.9.6/sarge uptodate 0.9.6m-1sarge4
aptitude/unstable upgradeable from 0.4.5.4-1 to 0.4.6.1-1
libexif12/unstable upgradeable from 0.6.16-1 to 0.6.16-2
libtext-iconv-perl/unstable uptodate 1.4-3
libmono-sharpzip0.84-cil/unstable upgradeable from 1.2.4-4 to 1.2.4-5
apt/unstable upgradeable from 0.7.3 to 0.7.6
debconf-i18n/unstable upgradeable from 1.5.13 to 1.5.14
libopenssl-ruby1.8/unstable upgradeable from 1.8.6-2 to 1.8.6.36-1
mono-gac/unstable upgradeable from 1.2.4-4 to 1.2.4-5
reiserfsprogs/unstable upgradeable from 1:3.6.19-5 to 1:3.6.19-6
net-tools/unstable uptodate 1.60-17
mysql-server-5.0/unstable upgradeable from 5.0.41a-1 to 5.0.45-1
libnet-daemon-perl/unstable uptodate 0.38-1.1
perl-modules/unstable uptodate 5.8.8-7
libfreetype6/unstable upgradeable from 2.3.5-1 to 2.3.5-1+b1
libmono-security2.0-cil/unstable upgradeable from 1.2.4-4 to 1.2.4-5
libpq5/unstable upgradeable from 8.2.4-2 to 8.2.4-3
libmono1.0-cil/unstable upgradeable from 1.2.4-4 to 1.2.4-5
jfsutils/unstable uptodate 1.1.11-1
dmidecode/unstable uptodate 2.9-1
console-data/unstable uptodate 2:1.02-2
sed/unstable uptodate 4.1.5-2
libaprutil1/unstable uptodate 1.2.7+dfsg-2+b1
libgcrypt11/unstable uptodate 1.2.4-2
dvhtool/unstable uptodate 1.0.1-5
nvi/unstable upgradeable from 1.79-25 to 1.79-26
info/unstable uptodate 4.8.dfsg.1-6
libxslt1.1/unstable upgradeable from 1.1.21-1 to 1.1.21-2
libsigc++-1.2-5c2/unstable uptodate 1.2.7-2
libavutil1d/unstable uptodate 0.cvs20070307-6
libmagic1/unstable upgradeable from 4.21-1 to 4.21-2
libsvn1/unstable uptodate 1.4.4dfsg1-1
libtiff4/unstable uptodate 3.8.2-7
mono-runtime/unstable upgradeable from 1.2.4-4 to 1.2.4-5
libexpat1/unstable upgradeable from 1.95.8-3.4 to 1.95.8-4
gcc-4.0-base 4.0.2-3 installed: No available version in archive
libxau6/unstable uptodate 1:1.0.3-2
screen/unstable upgradeable from 4.0.3-0.3+b1 to 4.0.3-2
mono-mcs/unstable upgradeable from 1.2.4-4 to 1.2.4-5
libslang2/unstable upgradeable from 2.0.7-2 to 2.0.7-3
mono-gmcs/unstable upgradeable from 1.2.4-4 to 1.2.4-5
mysql-common/unstable upgradeable from 5.0.41a-1 to 5.0.45-1
util-linux/unstable upgradeable from 2.12r-19 to 2.13~rc2-7
adduser/unstable upgradeable from 3.103 to 3.104
libcap1/unstable uptodate 1:1.10-14
mime-support/unstable uptodate 3.39-1
libmono-dev/unstable upgradeable from 1.2.4-4 to 1.2.4-5
libimlib2/unstable uptodate 1.3.0.0debian1-4
klogd/unstable upgradeable from 1.4.1-21 to 1.5-1
libapt-pkg-perl/unstable upgradeable from 0.1.21 to 0.1.21+b1
libneon26/unstable upgradeable from 0.26.3-1 to 0.26.4-1
mysql-server/unstable upgradeable from 5.0.41a-1 to 5.0.45-1
libgdbmg1/unstable uptodate 1.7.3-28
gzip/unstable uptodate 1.3.12-3
libpci2/unstable uptodate 2:2.1.11-3
ifupdown/unstable uptodate 0.6.8
libmono-system-data1.0-cil/unstable upgradeable from 1.2.4-4 to 1.2.4-5
iptables/unstable upgradeable from 1.3.6.0debian1-5 to 1.3.8.0debian1-1
libedit2/unstable upgradeable from 2.9.cvs.20050518-3 to 2.9.cvs.20050518-4
netbase/unstable upgradeable from 4.29 to 4.30
libreadline-ruby1.8/unstable upgradeable from 1.8.6-2 to 1.8.6.36-1
ed/unstable upgradeable from 0.2-20 to 0.7-1
mono-common/unstable upgradeable from 1.2.4-4 to 1.2.4-5
base-passwd/unstable uptodate 3.5.11
laptop-detect/unstable upgradeable from 0.13.1 to 0.13.2
libgnutls11 1.0.16-14 newer than version in archive
mktemp/unstable uptodate 1.5-3
libpth20/unstable uptodate 2.0.7-8
gettext-base/unstable uptodate 0.16.1-2
libstdc++6/unstable upgradeable from 4.2-20070707-1 to 4.2.1-2
libc6/unstable uptodate 2.6.1-1
libpcap0.7/unstable uptodate 0.7.2-7
libmono-security1.0-cil/unstable upgradeable from 1.2.4-4 to 1.2.4-5
openssh-client/unstable upgradeable from 1:4.6p1-3 to 1:4.6p1-5
libmono-corlib2.0-cil/unstable upgradeable from 1.2.4-4 to 1.2.4-5
lsb-base/unstable upgradeable from 3.1-23.1 to 3.1-24
exim 3.36-17 installed: No available version in archive
pciutils/unstable uptodate 1:2.2.4-1
iproute/unstable uptodate 20070313-1
fontconfig-config/unstable uptodate 2.4.2-1.2
file/unstable upgradeable from 4.21-1 to 4.21-2
gcc-3.3-base/unstable uptodate 1:3.3.6-15
libmono-peapi2.0-cil/unstable upgradeable from 1.2.4-4 to 1.2.4-5
xfsprogs/unstable uptodate 2.9.0-1
ttf-dejavu/unstable upgradeable from 2.18-1 to 2.19-1
less/unstable uptodate 406-0
zlib1g/unstable upgradeable from 1:1.2.3.3.dfsg-3 to 1:1.2.3.3.dfsg-5
libungif4g/unstable uptodate 4.1.4-5
libconsole/unstable uptodate 1:0.2.3dbs-65
libgdiplus/unstable uptodate 1.2.4-1
libmono-accessibility1.0-cil/unstable upgradeable from 1.2.4-4 to 1.2.4-5
libdbd-mysql-perl/unstable upgradeable from 4.004-2 to 4.005-1
findutils/unstable uptodate 4.2.31-1
libspeex1/unstable uptodate 1.1.12-3
libjpeg62/unstable uptodate 6b-13
coreutils/unstable uptodate 5.97-5.3
update-inetd/unstable uptodate 4.27-0.5
libss2/unstable upgradeable from 1.40.1-1 to 1.40.2-1
libsvga1/unstable uptodate 1:1.4.3-24
tasksel/unstable uptodate 2.68
libusb-0.1-4/unstable uptodate 2:0.1.12-7
subversion/unstable uptodate 1.4.4dfsg1-1
libdb4.4/unstable upgradeable from 4.4.20-8 to 4.4.20-8.1
lsof/unstable uptodate 4.78.dfsg.1-2
libmono-system-web1.0-cil/unstable upgradeable from 1.2.4-4 to 1.2.4-5
libncurses5/unstable upgradeable from 5.6-3 to 5.6+20070716-1
libfontconfig1/unstable uptodate 2.4.2-1.2
libidn11/unstable upgradeable from 0.6.5-1 to 1.0-0
libgdbm3/unstable uptodate 1.8.3-3
nano/unstable uptodate 2.0.6-2
libsepol1/unstable upgradeable from 2.0.3-1 to 2.0.3-1+b1
perl/unstable uptodate 5.8.8-7
libldap2/unstable uptodate 2.1.30-13.4
initscripts/unstable upgradeable from 2.86.ds1-38 to 2.86.ds1-38.1
procps/unstable uptodate 1:3.2.7-3
console-common/unstable upgradeable from 0.7.69 to 0.7.70
libtheora0/unstable uptodate 0.0.0.alpha7.dfsg-2
psmisc/unstable uptodate 22.5-1
libglib2.0-0/unstable upgradeable from 2.12.12-1 to 2.12.13-1
manpages/unstable upgradeable from 2.57-1 to 2.62-1
libnewt0.52/unstable uptodate 0.52.2-10
tasksel-data/unstable uptodate 2.68
netkit-ping/unstable upgradeable from 3:20070202-1 to 3:20070202-2
bash/unstable uptodate 3.1dfsg-8
liblocale-gettext-perl/unstable uptodate 1.05-1
libpcap0 0.6.2-2 installed: No available version in archive
libdbi-perl/unstable uptodate 1.57-1
libacl1/unstable uptodate 2.2.42-1
libblkid1/unstable upgradeable from 1.40.1-1 to 1.40.2-1
libpth-dev/unstable uptodate 2.0.7-8
libruby1.8/unstable upgradeable from 1.8.6-2 to 1.8.6.36-1
mawk/unstable uptodate 1.3.3-11
libmono-winforms1.0-cil/unstable upgradeable from 1.2.4-4 to 1.2.4-5
ncurses-base/unstable upgradeable from 5.6-3 to 5.6+20070716-1
debianutils/unstable upgradeable from 2.22.1 to 2.23.1
libxml2/unstable uptodate 2.6.29.dfsg-1
libtext-charwidth-perl/unstable uptodate 0.04-4
libdevmapper1.00 2:1.00.20-1 installed: No available version in archive
tzdata/unstable upgradeable from 2007f-9 to 2007f-10
quota/unstable upgradeable from 3.14-8 to 3.15-2
apt-show-versions/unstable uptodate 0.10
libattr1/unstable upgradeable from 1:2.4.32-1.1 to 1:2.4.32-1.2
libmono-microsoft7.0-cil/unstable upgradeable from 1.2.4-4 to 1.2.4-5
libmono-system-data2.0-cil/unstable upgradeable from 1.2.4-4 to 1.2.4-5
tcpd/unstable upgradeable from 7.6.dbs-13 to 7.6.dbs-14
libdevmapper1.01 2:1.01.05-1 installed: No available version in archive
libssl0.9.7 0.9.7g-5 newer than version in archive
libgpg-error0/unstable uptodate 1.4-2
libmono-system-web2.0-cil/unstable upgradeable from 1.2.4-4 to 1.2.4-5
perl-base/unstable uptodate 5.8.8-7
libmono-microsoft8.0-cil/unstable upgradeable from 1.2.4-4 to 1.2.4-5
libswscale1d/unstable uptodate 0.cvs20070307-6
libdirectfb-0.9-25/unstable uptodate 0.9.25.1-6
libgnutls13/unstable uptodate 1.6.3-1
libbz2-1.0/unstable uptodate 1.0.3-7
openbsd-inetd/unstable uptodate 0.20050402-6
icecast2/unstable uptodate 2.3.1-5.1+b1
telnet/unstable uptodate 0.17-35
mailx/unstable uptodate 1:8.1.2-0.20070424cvs-1
dpkg/unstable uptodate 1.14.5
liblockfile1/unstable uptodate 1.06.2
bsdutils/unstable upgradeable from 1:2.12r-19 to 1:2.13~rc2-7
libpam-runtime/unstable uptodate 0.79-4
readline-common/unstable uptodate 5.2-3
mysql-client-5.0/unstable upgradeable from 5.0.41a-1 to 5.0.45-1
makedev/unstable uptodate 2.3.1-83
libdb2 2:2.7.7.0-10 installed: No available version in archive
rdoc1.8/unstable upgradeable from 1.8.6-2 to 1.8.6.36-1
lighttpd/unstable upgradeable from 1.4.15-1 to 1.4.16-1
mono-mjs/unstable upgradeable from 1.2.4-4 to 1.2.4-5
libdb1-compat/unstable uptodate 2.1.3-9
libsigc++-2.0-0c2a/unstable uptodate 2.0.17-2
libsasl7 1.5.28-6.4 installed: No available version in archive
libatm1/unstable upgradeable from 2.4.1-17 to 2.4.1-17.1
mount/unstable upgradeable from 2.12r-19 to 2.13~rc2-7
libpopt0/unstable uptodate 1.10-3
wget/unstable uptodate 1.10.2-3
libssl0.9.8/unstable uptodate 0.9.8e-5
e2fslibs/unstable upgradeable from 1.40.1-1 to 1.40.2-1
attr/unstable upgradeable from 1:2.4.32-1.1 to 1:2.4.32-1.2
liba52-0.7.4/unstable uptodate 0.7.4-11
libmono-data-tds2.0-cil/unstable upgradeable from 1.2.4-4 to 1.2.4-5
libdb3-util 3.2.9+dfsg-1 installed: No available version in archive
libkeyutils1/unstable uptodate 1.2-3
libmono-data-tds1.0-cil/unstable upgradeable from 1.2.4-4 to 1.2.4-5
passwd/unstable uptodate 1:4.0.18.1-11
ruby1.8/unstable upgradeable from 1.8.6-2 to 1.8.6.36-1
bsdmainutils/unstable uptodate 6.1.6
libpgsql-ruby1.8/unstable uptodate 0.7.1-10+b1
cron/unstable uptodate 3.0pl1-100
liberb-ruby/unstable uptodate 2.0.4+ruby1.8.2-1
modconf/unstable uptodate 0.3.3
libdb4.2/unstable upgradeable from 4.2.52+dfsg-2 to 4.2.52+dfsg-2.1
slang1a-utf8 1.4.9dbs-8 installed: No available version in archive
libid3tag0/unstable uptodate 0.15.1b-10
whiptail/unstable uptodate 0.52.2-10
ssh/unstable upgradeable from 1:4.6p1-4 to 1:4.6p1-5
libdm0/unstable uptodate 2.2.8-1
libogg0/unstable uptodate 1.1.3-2
libmono-peapi1.0-cil/unstable upgradeable from 1.2.4-4 to 1.2.4-5
openssh-server/unstable upgradeable from 1:4.6p1-3 to 1:4.6p1-5
libstdc++2.10-glibc2.2/unstable uptodate 1:2.95.4-27
libgnutls12 1.2.8-1 installed: No available version in archive
libxdmcp6/unstable uptodate 1:1.0.2-2
debconf/unstable upgradeable from 1.5.13 to 1.5.14
libmono-system1.0-cil/unstable upgradeable from 1.2.4-4 to 1.2.4-5
mono/unstable upgradeable from 1.2.4-4 to 1.2.4-5
libredcloth-ruby1.8/unstable uptodate 3.0.99.0.svn.20060519-1
libapr1/unstable uptodate 1.2.7-8.2
libcurl3-gnutls/unstable upgradeable from 7.16.2-6 to 7.16.4-2
libgcc1/unstable upgradeable from 1:4.2-20070707-1 to 1:4.2.1-2
libtext-wrapi18n-perl/unstable uptodate 0.06-5
libpng12-0/unstable uptodate 1.2.15~beta5-2
console-tools/unstable uptodate 1:0.2.3dbs-65
man-db/unstable uptodate 2.4.4-3
rdoc/unstable uptodate 1.8.2-1
irb1.8/unstable upgradeable from 1.8.6-2 to 1.8.6.36-1
libtasn1-2 0.2.13-1 newer than version in archive
e2fsprogs/unstable upgradeable from 1.40.1-1 to 1.40.2-1
ucf/unstable uptodate 3.001
at/unstable uptodate 3.1.10
libopencdk8/unstable uptodate 0.5.13-2
libsasl2 2.1.19-1.6 newer than version in archive
ruby/unstable uptodate 1.8.2-1
libnewt0 0.50.17-9.6 installed: No available version in archive
ncurses-bin/unstable upgradeable from 5.6-3 to 5.6+20070716-1
slang1 1.4.9dbs-8 installed: No available version in archive
apt-utils/unstable upgradeable from 0.7.3 to 0.7.6
sysklogd/unstable upgradeable from 1.4.1-21 to 1.5-1
module-init-tools/unstable uptodate 3.3-pre11-4
cpio/unstable uptodate 2.9-2
~/opensim#

Opensim: LSL infrastructure is there!

#opensim channel log:

(23:11:02) Tedd_: I got dynamic script engine loading, LSL script compile, script loading, touch_start event and llSay() output to console working a few minutes ago
(23:11:19) Tedd_: basically... LSL script support :)
(23:11:29) dalien: whoa!! :)
(23:11:37) dalien: committed ?
(23:11:45) nixnerd: wow Tedd :)
(23:12:03) Tedd_: only we are missing -all- commands, almost all events, one common script for all objects, and don't support a few things like states just yet
(23:12:08) dalien: well,
(23:12:11) Tedd_: but that will come, now it works...
(23:12:18) dalien: those are small chunks of work but many, right ?
(23:12:25) Tedd_: commited yeah
(23:12:29) dalien: cool.
(23:12:34) dalien: and how do you make the scripts there ?
(23:12:36) Tedd_: yup, around 350+ small chunks of work
(23:12:42) dalien: given that the default object flags do not allow editing ?
(23:13:05) Tedd_: right now you can not make script because we don't have inventory
(23:13:13) dalien: right.
(23:13:14) Tedd_: so we are still waiting for a few things...

As we can see - it is a bit early right now to jump on those 350 small chunks of work :)

But it is a very good news - thanks to great work of Tedd there's a foundation for LSL in opensim.

Meanwhile, you can read Tedd's blog for the gory details and if you have some friends who are "cynical, arrogant, and non-accountable coders" (c)Prok, they might be interested.

Monday, August 13, 2007

My evil plans to become an SL billionaire

Ok, after reading Bella's lesson in economics, I have a confession to make, my friends.

Like any human, I am infected with a bacteria of Greed. Although I think overtime I learned to feel when there is an upcoming strike of the disease - and take the measures - appeal to my common sense, to morals, to the principles, donate to charities (even though I have little trust that those actual in need will get a bit of what I gave, at least I offloaded the burden of my chest).

But nonetheless, the ghost of the bubble burst of the 90s is haunting me. I want to come up with something that will be liked by all others, and that will generate me an sky-high amounts of lindens without any involvement from my side.

And I think I have come up with this idea. The only quirk is whether it does comply with the new gambling policy or not. I think it does comply with the policy - but not sure. To doublecheck, I've IMed a few lindens with the question. Hopefully they reply. Well, if not, I guess in a couple of weeks' timeframe we will have to test out whether it complies or not :D

The game looks like a remote relative of a sploder, but is much more brutal, honest, open, and deterministic. Everything depends on your strategy and the amount of lindens you have. It's fully predictable, my friends. Except the mystery of others' minds...

And with this we depart into the next RL week, thanks for staying with us.

Weekend on 18xd - good! :) and a little bit of prok-laugh.

Only one crash while trying to tip the DJ in CCC, otherwise works like a charm - thanks Nicholaz!

Did not try the voice on it yet. But at least having still the friends list is enough.

----

Stumbled on an as usual emotional post of the Prok here.
Post is as usual noisy and biased, but parts of the discussion is amusing, especially where they beat the hell out of each other on whether Ginko is Ponzi or not. I think I will hold neutral in the argument. If it was a Ponzi - the guilty will get their judgement in time. If not... well, then not.

Quote of the day:

`Democracy doesn't work by having everybody vote "yes" on polls rigged by cynical, arrogant, and non-accountable coders.`

Second quote of the day:

`This jury-rigged, ridiculously complex and stupid JIRA system is for the birds, and everyone knows it, even those tekkies who use it.`

ROTFL. Bravo. This is even better than the one with the coderz. Hmm second time in the weekend I say "*lulz*" :-) This is just too hilarious. The cynical, arrogant and non-accountable coders that by chance might read this blog will understand.

Sunday, August 12, 2007

Curiosity spike: where we are with opensim.

The curiosity spike was not about going and checking out the rich varieties of dom-sub interactions. Since I did have the pending wish to check out how the things went on the opensim front (and since I shamefully disappeared due to increase of RL things to be taken care of), of course I picked the opensim :)

So. Apparently I was lucky to get the code *just* after the start of a large refactoring, aimed to make the code easier to read for the new developers and put the structure more logical, so a lot of stuff was borken.

But!

opensim

First pleasant thing, is that by default, the NewRuth is now wearing something, and have a decent skin. You can see there are things in the library.

There are not so many, so the question goes to the primskirtbuilder users and others who do make the clothes - anyone interested to immortalize his/her creation by making it part of the default library ? If yes - leave a trace in the comments of this post, on how to reach you :) There are no deadlines nor anything, so it is entirely up to you if you want to participate, or have something that you had created and you want to donate.

The second - there is now possible to specify the parcel music URL!!! But this will be a topic for another post one day.

CCC Camp 2007 in secondlife

Today Madteaparty has invited me to visit the CCC party in SL - the sim was sponsored by Anshe Chung.

CCC Camp poster

They did have a nice plan of the RL CCC Camp:

CCC Camp plan

There were also some tents in SL, I suppose for those who could not come:

CCC camp view

I think I met one of those guys, but he was not very talkative:

CCC: talking to a stranger

And then Vint came over, and we went to the party which was held in one of the tents.

Vint at CCC camp party

She was bit concerned about the penguin, but I assured her that the penguin is harmless.

Vint at CCC camp party

The music is good, and then... hmm I think I already posted enough snapshots :-)

Some interesting news from RL....

Well, since the sexgen story apparently tops everything else, I'd like to bring to your attention a couple of other articles, that in my opinion are by far more important, just in case you missed them :)

1. Novell, not SCO, owns the copyright on Unix

2. Universal makes an experiment in selling the songs without the copy protection

The comments are not needed, I suppose.

The wonders of omonyms...

With all the insane traffic that Vint is getting on "sexgen", I just can't stop laughing when thinking what the admins/webmasters of a SexGen York Committee Web Project must be observing. Apparently they pop up as the top result for "sexgen" in the google search.

I can only say: *lulz* :)

Saturday, August 11, 2007

Ajaxlife 3d - maybe with javascript ? :-)

Now, after all these touchy posts, something bit more geeky.

When I first heard about AjaxLife, I thought "hmm. got to be a phishing". Well, it did sound too good to be true. (And looking at the picture, it seemed like a full-blown 3D-rendered landscape, which according to my knowledge was impossible. And still is :-)

So, I'd like to use this post to publicly apologize to Katharine for my scepticism, as I mistook a static picture for a dynamically rendered one :) I tried the ajaxlife since, and indeed it works great, very nifty.

However, I'm still haunted by that "3D in the browser" thing, and today googled for a few interesting items - some of them might be well-known to you, some are not - they're not a bloody-edge, but do provide some food for thought.


The demo of the <canvas> tag, which is almost a classic now. The textured version gives around 3-5fps on my laptop with the "high res textures". Which is almost comparable to SL performance that I get (although indeed with much more graphics in it)

realtime 3D rendering demo - a very neat hack with using the <div> elements to create right triangles, some math to render arbitrary triangles by a reduced number of divs. well, and once you can render any 2d triangle of an arbitrary color.. all the rest is a boring mechanics :)

Full-functional raytracer entirely in javascript Useless for dynamic graphics, a total CPU hog (and I don't want to see the DOM that the image of 128x128 creates :), but maybe useful for experiments with in-browser rendering of sculpties, if coupled with pnglets for saving the resulting works ?

Since I obviously definitely will not ever have time to mess around with it - just coining the idea in the hope that someone with enough time and passion for SL might look at this - representing at least the relative positions of avatars in 3D in the browser might be quite a fun.

(And in case there are any teachers out there - I'd think it might make a good topic for a project in a coming school year - a mix of 3D rendering, some HTML, Javascript coding, and server-side coding looks like quite a fun of a task to me).

Not-a-meme #20: TCODDG, or - What kind of metaverse would you build ?

With the recent sexgen mysteries, and food for thought about Ginko, I think this might be quite a good time for it.

The challenge: you've got a platform, with all the sensory interface perfectly the same as in RL. You can enjoy all the 360 degrees of the incredible simulated reality. You can smell all the simulated flowers and choke due to simulated exhaust from the simulated vehicles. You can have more than three dimensions. It is better than in the real world. The huge amount of the data about each of the avatars can be taken and given at any given point of time, allowing you to have sex which is not in any way different than your RL, allowing you to see all the tiniest nuances on the face of your loved one, allowing you to instantly share your most complex and innovative idea with those that would like to know about it. There are no bounds. You are the architect of The Matrix. You have infinite storage resources and computing power. The RL does not exist to interfere - because there is no RL at this point - those unplugged are simply hanging in vacuum. What would you do with all this to build a better place and fix the plagues that haunt the poor humans for so long ?


And here goes my try at this experiment.

I'd have everything happening in the world to be stored. Complete snapshot of the world's state and actions of its inhabitants at any single point of time. And all this information available to everyone. Consequently, any accesses to this information gets stored as well, so there is no such thing as "sneak peek" - and everyone can have automated agents monitoring the others' accesses to their information and giving the results - again, all completely visible to the whole world.

With this, we'd not have to wonder whether Ginko is a ponzi or not, and whether the sexgen bed was copied or recreated from scratch - the investigation in a lawsuit would become simply a matter of unwinding the events back to their origin. Well, knowing that, would we have to go as far as a lawsuit itself ?

Now, there'd still need to be some way to judge whether a given action is good or evil. This would require some sort of participation from the inhabitants of the world. How ? By selecting the sufficient number of the random individuals in order to judge "on a case". Indeed, all of their decisions and the subsequent events are recorded and publicly visible - so they better be coherent. This will avoid any bias in their judgements.

Once the decisions have been taken, the resulting findings are formalized into a form of automatic agents, which will be there in order to scale the decision-making process for the subsequent occasions of the similar kind. The decision of the automatic agent can still be appealed, to avoid the mistakes of the "automated judgement" and improve the behaviour of the agent for the future cases.

Now, you ask me - where is my privacy gone ? Yeah, it's gone. But, I'll ask you - why do you need it ? The privacy is a useful concept in the imperfect RL, where there are always many more out-of-band ways to transfer the information than one can imagine, and where some animals are always more equal than the others - your local grocery store knows much more about you than you know about your local grocery store. This is where the privacy starts from - since they already know more about me than I'd like, I would prefer to keep at least *something* from them. But in a theoretical environment where nothing is hidden - I would think there is no need to do that.

Ow, indeed, there might be the things we do we would not like the others about. For example, how many of the SL escorts would be excited to tell their RL identity ? This is another aspect of privacy - it exists due to the difference of the public morale ("what it should be"), and the actual behaviour ("what it is"). This looks like a little bit of a problem - either the morale is wrong, or the individuals would need some improvements :) How to define what is what ? Right now it just drifts by itself, little by little. The total transparency would fix that.

Intellectual property and rights ? Very easy - since everything is tracked, it is always obvious who came up with the idea first, more over - it is immediately accessible for all for further development and reuse. How to tackle the commercial / non-commercial aspects of it ? (suppose the two branches of ideas give a birth to the commercial and noncommercial product) - very easy. The consumers will take care of it. Since every their action is recorded and transparent, they would be exposing their own behaviour to work against them, when they face the precisely same situation in their own professional area of expertise - if you think you're more important, this will be noted, and if the others do not think so, you'd better think twice before acting like that.

Hmmm... what else do we have ? Personal relationships ? Again, since there is no secrets - there's no opportunities for large regrets and no reason for the lies - everything is transparent, so there's no need to hide anything.

Ah, indeed you will ask - but what about those who will maintain the guts of this system - they definitely have to be more equal than the others ? No. Since the exercise is of a pure theoretical nature, the infrastructure will be sufficiently sophisticated such that the code will take care of its own bugs, so no human involvement would be required.

Re-reading this - I think parts of it do strangely echo with some of the statements from the various religions.. Maybe I should start one ?

"The church of open distributed digital Gods", or TCODDG, for short ?

-----
Disclaimer: the above is vastly inapplicable to RL, due to its stated imperfections. And, according to the most popular religions, it is pretty much already done anyway, except the humans do not have the read access onto the information, and they get the copy of data only in the post-cycle stage of their earthly existence. So, do not try to do that at home :)

Friday, August 10, 2007

Voice viewer with a good ol' UI

Nicholaz has released his patched experimental version of viewer with the voice features, but with the UI adjustments that make it more user-friendly.

He has fixed a few quirks that have popped up in the first experimental release, so, if you are adventurous to try out this experimental version, go and read his post, and give the patched version a whirl! And don't forget to thank him for this excellent work!

Update: there is now 18xd version out, with a few more crashes fixed. Great job, Nicholaz!

The role of financial instruments in the success of the SLex endeavours

Tiana mentions with regards to cookies, that for successful SLex there need to be bonds. So, bonds, bonds... ok google. wikipedia. Let's see what we have:

Issuing bonds



Bonds are issued by public authorities, credit institutions, companies and supranational institutions in the primary markets. The most common process of issuing bonds is through underwriting. In underwriting, one or more securities firms or banks, forming a syndicate, buy an entire issue of bonds from an issuer and re-sell them to investors.

Ahhah. Now I understand why Veyron is so persistent about branding - since it is an essential part of getting the bonds. Ok. Point noted. We'll need to talk with Vint about that.

Now, lets see what kind of dishes do we have on the menu...

Types of bond



Fixed rate bonds have a coupon that remains constant throughout the life of the bond. Nah, that won't fit. I think both me and Vint would prefer the things to develop. Standing still is not for us.

Floating rate notes (FRN's) have a coupon that is linked to a money market index. With the latest news in the SL economy this is definitely something we want to avoid.

High yield bonds are bonds that are rated below investment grade by the credit rating agencies. As these bonds are relatively risky, investors expect to earn a higher yield. These bonds are also called junk bonds. I like the high yield part, but severely dislike the naming - don't think Vint will like us to have junk bonds, and me neither.

Zero coupon bonds do not pay any interest. Ok, then it is not interesting.

Inflation linked bonds, in which the principal amount is indexed to inflation. The interest rate is lower than for fixed rate bonds with a comparable maturity. However, as the principal amount grows, the payments increase with inflation. Ahha. Ok, I take it that the bigger Xcite thing I'd have, the better they are. Ok, let's put this on the candidate list, I'll see what I can arrange with the Xcite. Maybe custom build or something. Or if the quantity helps as well, maybe should script it to be self-replicating... Need to be careful so as not to get into the griefers list.

Asset-backed securities are bonds whose interest and principal payments are backed by underlying cash flows from other assets. Ok, this does suggest some kind of extreme polygamy. *strikes over, off the list*

Subordinated bonds are those that have a lower priority than other bonds of the issuer in case of liquidation. No, not the BDSM. /me thinks the freedom is one of the very precious values.

Perpetual bonds are also often called perpetuities. They have no maturity date. Argh. "And they lived happily ever after. But since no maturity date was reached, no SLex". So these won't work for sure. Sounded quite rosy at first though.

Bearer bond is an official certificate issued without a named holder. This does sound like it would be perfect for the random SLex with the strangers, hence would not work.

Registered bond is a bond whose ownership (and any subsequent purchaser) is recorded by the issuer, or by a transfer agent. As Looker has previously noted, this is not a profitable exercise. L$15 is not much, but with our modest incomes, it is still a visible sum of money.

Municipal bond is a bond issued by a state, U.S. Territory, city, local government, or their agencies. This one sounds a bit like the previous one, but if possible, I think I will avoid the governmental involvement.

Book-entry bond is a bond that does not have a paper certificate. Hence, I figure it would be stored somewhere online. Interesting concept. Let's leave it on the list.

Lottery bond is a bond issued by a state, usually a European state. Again - probably means more taxes or such. *writes off the list*

War bond is a bond issued by a country to fund a war. Well, Vint does have guns, so we could probably find a use for this one if we go to shoot, for whatever reason.

So, what are we left with, after the pre-evaluation ?

- Inflation linked bonds
- Book-entry bond
- War bond

Ok, so I think I will opt for the Inflation linked book-entry bond, with an option to be supplemented by the war bond. Hopefully Vint is ok with that choice.

*writes down: visit Xcite and check with them about the sizes*

Should I have smashed the cookies ?

Should I have been not a gentleman and just ignored the cookies... hmm.

Dalien and Vint: Flower-mode

Vint: <- should dive into bed
Dalien: yes :)
Dalien: *squeezes her goodnight tenderly*
Vint: hmmm. tenderly? *sobs* *kisses enthousiastly and drags along to the bed* ;)
Dalien: *while kissing*
Dalien: *jumps together with her*
Dalien: :)
Vint: :?)
Dalien: jumps into the bed :)
Dalien: *lies on his back, and drags her along, so she is on top, while continuing to kiss her*
Vint: *hears loud noice of wood dying¨*
Vint: euhm.. hun.. you just murdered the bed… :p
Vint: ;)
Dalien: whoops. :)
Dalien: did i fall on the floor at least ? :D
Vint: yez, landed on the cookies next to the bed and killed those too :(
Dalien: or got stuck in the hole i made in the bed ? :D
Vint: *grins*
Dalien Talbot: awwww :)
Dalien Talbot: *shows the cookies - i did notice i was falling on them, so here they are - i pushed them out* :)
Vint: oooow…cookies!!!
Vint does not care about the bed anyore and hugs the saved cookies.
Vint: great, now i can kill them :d
Dalien pulls the mattress off the bed so they can comfortably settle on the floor, and we take care of the bed tomorrow morning :)

Curiosity spike...

Today I did have yet another spike of curiosity. For some odd reason.

The report will pe posted in the nearest days, when I figure out which snapshot to post.

(As, unlike Vint I do not have the talent for snapshotting, the posting of the picture is a long and painful process for me.)

Maybe I should try myself in ASCII art.

Rezzday googlebombing :-)

hmmm. out of curiosity was doing some googling, and somehow, this bloghud post from Veyron shows up as the second result, and I am only fourth, after Looker's nice coverage :)

Curious. :)

Anyway, I like the snapshot so much (well, as much as the captured process:-) that I figured I'd post it here :-)




Background thought in the back of the neko-mind: well, maybe if I post this pic here, besides of getting the pleasure of watching the scene, maybe I also manage to get onto the second place in google too, for my own avie name :-) ?

p.s. Wikiality, they say ? Hm, how about "Google definition" ?

Thursday, August 9, 2007

If you spend too much time in SL...

...you maybe should exercise to ensure you stay in shape and can still move yourself in the meatworld. But you could also do both at the same time, and tease your friends who have to exercise while staring at the wall in the fitness:




Via: O'Reilly Radar, there's more fun links in the original blogpost, check it out.

spot me back!

Maybe you've noticed little sliders that appeared under the blogposts.

I've discovered a nice way to get more in touch with you - in case you prefer not to leave the comment, but just wave a hand or something :)

This nice little thing is called spotback.com.

So now you can tell me when you do like or do not like what I write.

I do not promise the feedback will be acted upon, but will be certainly thankfully
noticed and considered :)

Wednesday, August 8, 2007

Virtual identity as a form of immortality

I came to a conclusion today that a small collection of random scratches on the napkins, grouped under a common name of "Dalien", is a pretty stable and powerful formation on itself, without me or RL av, already.

Here're the couple of reasons:

- If the SL av would cease to exist in SL for whatever reason (be it the disappearance of the av, or the disappearance of the SL), this blog, and hence the existence of the identity would continue.

- If the RL av would cease to exist for whatever odd reason, then the identity would not disappear still - captured in a finite, but more or less long "forever" blog.

Pretty surely I am not the first one to come up with such an obvious thought, but the sensation that with a little bit of stretch this entity might be called an approximation (weak and incomplete, but..) of soul was so odd, that I decided I'd write it down.

Tuesday, August 7, 2007

Happy rezzday me :-)

I forgot about my own rezz date. Totally. Not even a slight suspicion when Vint TPs me to a Paradise Lost. I start to get a first clue when the people start to shout "Happy rezzday!".

What can I say - this was a very very pleasant surprise. Thanks Vint and Veyron! :)

Monday, August 6, 2007

HOWTO: live concert performance in SL

Thanks to Pocket Pfeffer for the idea of this blogpost.

So, you do music IRL, and would like to give it a shot in SL ?

Here's some background on how the whole thing works, and a few links to the tools that you might find useful.

First, how it works. Not any different from any internet radio - except that the URL to get the music from is not typed into the browser, but is provided by the parcel media URL in the parcel settings.

Now, how does the internet radio work ? Very simple. The source of the audio uses a special client to upload the stream in real time to the streaming server ("the stream" in SL terminology). The latter then is referenced in the media URL, and takes care of resending the stream to all the clients that request it (in the SL case - to all the users that are hitting "play" on the music control while being on the parcel.

Usually (that is, in my experience), the venue owners have the stream anyway, so you only have to supply the talent and have the client to help them distribute it :)

So, I assume the talent you already got... now we have to solve one small remaining issue - to get the client to upload your performance to the stream server.

If you are a happy user of a Mac, then I'd recommend nicecast. It does cost $40, but in my experience is well worth it - well done, with plugins, etc, allows to do some interesting effect (when using Mac, I was generally adding a *little* reverb - but be careful with effects, not to sound like you are singing in a swimming pool :)

If you use windows - there my experience is a bit smaller. Since I am a lazy person, and since I play mainly acoustic - I simply went ahead and downloaded Oddcast. Take the "standalone" version. It's totally free, but you get just a pipe from your sound source to the stream, nothing more. I tackled it simply by taking two Shure PG58 mics, and connecting them to the two sound inputs of my USB E-MU 0404 sound card. The result was reasonable, even though initially I did get some 50hz noise - a punishment for not using the supplied mic cable. After fixing that, the acoustic of the room did seem to make it sound acceptable.

If you use linux - well, then you will use again oddcast, connect it to JACK, and if you are doing the music on linux, I do not need to tell you about JACK and the wealth of the various tools that come with it.

There's certainly other tools which can do better - especially I feel Windows is not so well covered - feel free to put in the comments which of them you personally use.

Once you got your client up and running, you will need some data about the stream - typically just address/port and the password. Pay attention to the server type - you will need the correct one (shoutcast or oddcast) in order for everything to work.



The next step - is to get the place to perform. There are certain events where the club owners get to catch the new performers for their venues. Typically they would be called something like "Open mic" in the events - take a look and then talk to their organizers.

How the cash part works - well, as far as I know, quite a few musicians both take some fee for their appearance, and also take the tips from the listeners. I personally take only tips - and the venue owners are welcome to be present and tip too. I feel the more freedom I give - the better.

This, I think, pretty much sums up all the small rocket science needed to start your musician career in SL.

Good luck!

Computers are made of silicon. So, are prim breasts inherently silicon ?

Reading the post Melissa Yeuxdoux I found another hazard that awaits one-who-wants-to-be-a-girl in SL - siliconprim breasts.

Ow my. Gents, be appreciative of what they have to go through to impress us (or is it impress themselves, and I'm just being arrogant by assuming they even want the male attention - maybe it is just a quest for a self-perfection).

So, in case anyone can help with my curiosity, a couple of questions - one for guys and one for ladies:

1) What really makes (or would make) you to go through all the hassles of wearing the prim breasts ?

2) Would you like your lady to wear the prim breasts, and why ?

Saturday, August 4, 2007

Immersives and Augmentists: any other choice ?

Alidar Moxie wrote an interesting post dissecting the whole virtual community into two parts, augmentists - who view the VR as a tool to extend their real self, and immersives - the ones that "live separately there".

I think I like the idea, it does have merit, even though there are probably bit more facets to it.

I'd probably belong to neither of the two groups. Call me immersive augmentist, please :-)

I do not make illusions about the privacy - instead putting the administrative border (like the one on this blog), that whatever is written on behalf of this SL avatar, is not to be considered as written on behalf of the RL avatar driving the SL avatar :) - this allows me to at least make an illusion of decoupling the two things. On the other hand, on my blog you can more frequently than not see various things leaking in from RL - those are not really the area of my professional specialization, but merely some other hobbies, which I think would not hurt to bring into the mix - after all, maybe it is useful for someone :-)

I do view SL on one hand indeed as a possible tool - if a bit tweaked, it could be an interesting collaboration platform, on the other hand the very reason for this platform to be good is its increased "immersiveness" compared to the "classical" ones.

I don't do SLex just because I don't feel like it, nonetheless, I do not deny that the images and words do have their effect on any human, so I do not judge those who find it fun.

I enjoy the feeling of getting rid of some of the burdens that my real AV has to bear - yet, I think I like it far too much to abandon it all together. It's just too much of accumulated experience to throw away.

And for being someone totally different - I did try being a girl in SL.

Not for long.

Being a girl is too difficult for a lazy me. Gentlemen, try it out - and you will appreciate your other halves much more :-) Besides, there is a huge overhead of maintaining more than one persona's state - this is just too much.

The next post will talk about some of the *new* difficulties in girl's life that I've just learned about...

crossbrowser HTTP requests with document.domain make ExtJS grid garbled and unhappy

Not much of SL this week. Why ? because most of my time is dedicated at the moment to playing with the ExtJS. They've just released the 1.1 version (which I am to try out yet).

Even 1.0.1 looked very promising - all the standard UI elements, crossbrowser and without much pain.

Although one thing I spent a lot of time on, was a very cute bug. In my little experiment, I need to make cross-domain XMLHTTPRequests, so I obviously needed to set the document.domain to be able to do that. Unfortunately, this caused the grid element to become garbled in FF-derived browsers - it looked as if the columns did not have width (no padding). Took a while to figure out.

Eventually I solved it by a following hack (which is known also as an iframe bridge hack):


main window (server X) loads an iframe from server Y. This is my "main window", so I clean up the DOM in the main window, and make sure the iframe sits in the whole screen. this iframe then loads another iframe, also from server Y.

Within the child iframe there are a bunch of functions that call the functions in the main window.

Now, the trouble is that either the main iframe can call these functions, or these functions can call the main window - because of the different document.domain properties.

So, the trick is to initialize the variables in the main iframe with "pointers" to functions in the child iframe, and then call the initializer in the child iframe to set the document.domain.

This way the main iframe still "remembers" about the functions.

Now, there is another trouble. When making XMLHTTPRequest, you supply the callback. And javascript does really wonders there. But... the problem is that it does not work all that well - I was getting an error in mozilla.

So, the trick is to treat the callback as an "opaque blob" inside the child frame, and perform the same trick with the functions in the other direction - in the main iframe, create a function that takes a callback as an argument and calls it.

So, overall it looks something like it:


[ main window ]

document.domain = "example.com";

function parentFunc(url, cb) {
makeAjax(url, cb);
}

[ main iframe -> its html loads the child iframe ]

function CallIt(cb, result) {
cb(result);
}

var bridgeFunc;

function init() {

bridgeFunc = document.frames[0].childFunc;
// that one also sets the document.domain
document.frames[0].init(CallIt);
}

function myMakeAjax(url, cb) {
bridgeFunc(url, cb);
}


[ child iframe ]

var parentCall;

function init(bridgeFunc) {
parentCall = bridgeFunc;
// now we would not be able to talk directly except via bridge variables.
document.domain = "example.com";
}

function childFunc(url, cb) {
window.top.parentFunc(url, function(result) {
parentCall(cb, result)
});
}

----
With this code (indeed in real world it looks bit more complex than this ), the document.domain in my main iframe window never changes, and as such, I can enjoy the beauty of the ExtJS's controls. So, firefox also has its annoying bugs :) (or is it a security feature ?)

Wednesday, August 1, 2007

FF used more than IE ?

Interesting stats from google analytics for my blog. Firefox is the most-used browser, with 45.59% share, and the MSIE is 44.61%.

I wonder, do I have a geek audience, or FF has gained a significant bigger chunk lately ?

If you have a blog, would be curious to know your shares of FF/IE.