Monday 19 November 2007

LSL Free Software License?

If you haven't figured out already, I'm a pretty strong supporter of free software. I haven't really seen any LSL scripting being done under a free software license, and that got me thinking about whether existing licenses would be applicable to the SL platform, or if a new license should be written to address certain aspects specific to SL.

In Free Software Foundation's formal definition of free software, they state that all free software must have the following four freedoms (numbered starting from 0 because these people are computer scientists ;P):
-- Freedom 0: The freedom to run the program for any purpose.
-- Freedom 1: The freedom to study and modify the program.
-- Freedom 2: The freedom to copy the program so you can help your neighbor.
-- Freedom 3: The freedom to improve the program, and release your improvements to the public, so that the whole community benefits.

Freedoms 1 and 3 require the code to be "open source". In SL, this means the scripts must be modifiable. Here is the problem: Let's say you buy an object containing scripts with a free software license. In order for the license to be fulfilled, the scripts would need to be modifiable, which means the entire object needs to be modifiable, which shouldn't be necessary. SL currently doesn't allow the scripts inside an object to be modifiable but have the rest of the object (prims, textures, etc.) not be modifiable.

Another option is that the creator could make the object no modify and just package the script files with the object. I'm not sure if that fulfills the terms of the license, though. The scripts would be open and free to distribute, but the scripts inside the object could not be modified. With SL's current features, it seems like this is the only feasible way to do it, but it's unclear to me whether it is meeting the requirements of free software.

It seems like this might be a similar case as cell phones running open source software. The software in the phone should be modifiable and copyable, but the hardware of the phone isn't. Does anyone else have thoughts on this?

Wednesday 14 November 2007

More Windlight

Is that a sunset, a sunrise, or did someone just get nuked?


Also, we have found a pretty significant bug in windlight. For many, but not all, if you are in mouselook and you jump...you crash. Very weird. It happens right when you reach the top of the jump and start to fall. Unfortunately Jira is having issues and won't let me log in.

Impostors!

The Windlight First Look is back. An interesting new feature is what they are calling "Avatar Impostors" which claims to lower framerate in large crowds. I was wondering what this was, and when I saw what they meant my first reaction was to start laughing:

















It looks like Hibiki jumped right out of an original Playstation game and into Second Life. Apparently they just create a low-resolution sprite of the avatar and then paste that in instead of having to render the avatar.



















But does it actually work? My framerate was around 24 with it on when I was taking these screenshots. I turned it off and it dropped to about 17.

Tuesday 13 November 2007

Animal Groups

I thought this was fun. Here are the correct ways to refer to a group of certain animals:

1. A shrewdness of apes 12. An exaltation of larks
2. A battery of barracudas 13. A troop of monkeys
3. A kaleidoscope of butterflies 14. A parliament of owls
4. A quiver of cobras 15. An ostentation of peacocks
5. A murder of crows 16. A rookery of penguins
6. A convocation of eagles 17. A prickle of porcupines
7. A charm of finches 18. An unkindness of ravens
8. A skulk of foxes 19. A shiver of sharks
9. A troubling of goldfish 20. A pod of whales
10. A smack of jellyfish 21. A descent of woodpeckers
11. A mob of kangaroos 22. A zeal of zebras

Wow

This bug I posted back on May 31 was finally triaged!

Gmail's Spam Filter

I think this is the first spam email that has made it through Gmail's filter and into my inbox in at least a year. You can see some of the things it does to trick the filter. Overall, I think Gmail's spam filter is very good. I currently have 1632 messages in my spam folder, and they are automatically deleted after 30 days. So Gmail gets a score of 99.939% for this past month. I've also never found a message marked as spam that was actually a legitimate email.

------------------
Subject: Your baby-maker needs to be bigger in order to perform its functions well

market, particularly the Japanese bond market, where yields morepercent since October 8, suggesting that Soros had lost $100 million of
He was torn. Should he go back to Duquesne? Or take a chance and



Do you believe in miracles? We dare say you're likely to answer negatively.
We hadn't believed, either...until the moment MegaDick was introduced!

What this wonder medicine does to a male dic'k cannot be called otherwise than a Miracle!
Just picture to yourself, that your meat stick suddenly becomes longer
and thicker and makes women tremble with desire!
It's fabulous!

So, don't miss it out, accomplish a miracle in your life with this wonder-medicine![was a link]


of Japan was tightening its monetary policy. Seeing the handwritingLike Soros, Druckenmiller, a Philadelphia native, had attracted virtually48.5 compared to 17.3 in England and 19.7 in the United States. Sorosto $10,432.75 a share. This was even larger than the 17 percent drop in
-----------------

Thursday 8 November 2007

This Fall

Every so often I will go to create a new SL account to see what names I can make from the new last names. Usually I'm disappointed because all the good ones are taken. I started out this time with more disappointment, as it told me that Paper Clip, Movie Clip, Charles Darwin and Steve Wozniak were all taken. Then I got to Fall and while "Next Fall", "Last Fall" and "Snow Fall" were taken, "This Fall" was not! So I am now the proud owner of an alt named This Fall. I have no idea what I'm going to do with him, though...

On another note, I was looking up "w/e" at urbandictionary.com and the second definition was hilarious (anyone can submit a definition):

2. w/e




A slang used by fucktards who don't want to take the bloody effort to type "whatever", mainly because it pisses off good people like me.

Do you like cheese?
w/e
Dammit, TYPE WHATEVER, YOU DUMBFUCK!

Building a Go Board

One thing I've wanted to do for a while in SL is make a Go board. The major design problem is that the game is played by placing stones on a 19x19 grid, so if I was just going to have a prim rezzed for each stone, that's theoretically 361 prims. I don't really want to make something that requires having that many prims available to use. Of course, stones aren't placed on every space in a normal game, but it's usually over 200 and games exceeding 300 moves aren't that rare. I've seen one Go board before in SL, and it just used this method.

The first idea I came up with was to have textures for each possible configuration of a small portion of the board, then repeat that to make the full board. I realized that this wasn't going to work when I started figuring out the details. First, how big do I make the sub-sections? I discovered that 2x2 is probably the biggest that is feasible, and even that requires a pretty big number of textures. Each space can be either empty, have a white stone, or have a black stone. So for 2x2 sections I'd need 3^4 textures, or 81. If I went 3x3, that becomes 19683. But I'd also need different textures for the edge and corner pieces, because the grid lines would need to end at the edges instead of sticking through. Finally, there's the problem that 2x2 sections don't fit evenly into a 19x19 board (in fact, 19 is a prime number, so no possible section would fit evenly). This means I'd also need to have some different shaped sections (like a 1x2 and 1x1) . So the final tally is:

- 81 textures for the middle 2x2 sections
- 81 textures for the side 2x2 sections
- 81 textures for the corner 2x2 sections
- 9 textures for side 1x2 sections
- 3 textures for the corner 1x1 section

So 255 textures, plus I wouldn't even be saving that many prims. I'd need a 9x9 grid of 2x2 sections to make the 18x18 board, that's 81 prims. Then another 19 for the edge to make it a 19x19 grid. And I haven't even mentioned that all these different sizes and types of sections would make for a coding nightmare.

So the solution I'm considering now is to have one prim for the whole board, and have the board send an HTTP request to a web server that would take the current board configuration and send back a texture for the entire board. The texture would need to be generated on the fly, as storing all possible textures is literally impossible (even if I could store a texture on a single atom, there aren't enough atoms in the universe to store them all).

This last option seems the most feasible, even though it involves some things I haven't done before, such as HTTP requests with LSL. And there's also the issue of the HTTP server. I can run it on my own computer when I'm building this, but unless I'm just going to use the Go board for personal use, I'd need a dedicated machine to run the server.

If anyone has any insights about this or other methods, please let me know.

Monday 5 November 2007

3D Desktop!

I've got to go see The Nightmare Before Christmas in 3D just so I can get the glasses and have a 3D desktop: