<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<?xml-stylesheet type="text/css" href="http://tonyagudo.net/styles/feed.css"?>
<title type="html">Second Life</title>
<link rel="alternate" type="text/html" href="http://tonyagudo.net" />
<link rel="self" type="application/atom+xml" href="http://tonyagudo.net/archives/second_life/index-atom.xml" />
<updated>2008-08-03T12:08:56-04:00</updated>
<author>
<name>Tony Agudo</name>
<uri>http://tonyagudo.net</uri>
</author>
<id>http://tonyagudo.net/</id>
<generator uri="http://nanoblogger.sourceforge.net" version="3.3">NanoBlogger</generator>
<entry>
<title type="html">Web-on-a-prim headaches</title>
<author>
<name>Tony Agudo</name>
</author>
<link rel="alternate" type="text/html" href="http://tonyagudo.net/archives/2008/06/26/index.html#e2008-06-26T00_27_35.txt" />
<id>http://tonyagudo.net/archives/2008/06/26/index.html#e2008-06-26T00_27_35.txt</id>
<published>2008-06-26T00:27:35-04:00</published>
<updated>2008-06-26T00:27:35-04:00</updated>
<category term="Second Life" />
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<![CDATA[<p>
Today I had finally decided to put the finshing touches on a HUD version 
of my <a 
href="http://www.slexchange.com/modules.php?name=Marketplace&file=item&itemID=733602">Parcel 
Web Browser</a>, with the ability to set the HUD's texture to the 
current parcel's media texture, so you can see webpages anywhere a media 
URL is set. That little piece of magic is accomplished with the use of 
the LSL function <a 
href="http://wiki.secondlife.com/wiki/LlParcelMediaQuery"> 
llParcelMediaQuery</a>. Guess what the wiki page didn't tell me? It 
<b>only</b> works on parcels you own or land owned by a group you belong 
to.
</p>
<p>Minutes before I figured out the wiki's big error, I had already put 
up the HUD for sale at both SLX and OnRez. Luckily no one bought the 
HUD, so no damage was done. But I'm a bit angry at the fact that the 
primary reference on LSL omitted a critical caveat on a function's 
description.
</p>
<p>
What I could do at least is prevent someone else from getting caught up 
like I did. I'm going to edit the wiki page for llParcelMediaQuery and 
note that it has the same caveats as it's sister function 
llParcelMediaCommandList. But as for the HUD, I guess I'll have to put 
it on hold until I figure out how to get around the underlying technical 
limitations.
</p>
<a href="javascript:HaloScan('webonprimheadaches');" target="_self"><script type="text/javascript">postCount('webonprimheadaches');</script></a> | <a href="javascript:HaloScanTB('webonprimheadaches');" target="_self"><script type="text/javascript">postCountTB('webonprimheadaches'); </script></a>]]>
</div>
</content>
</entry>
<entry>
<title type="html">OpenGate: Not so "Open" at all</title>
<author>
<name>Tony Agudo</name>
</author>
<link rel="alternate" type="text/html" href="http://tonyagudo.net/archives/2008/05/26/index.html#e2008-05-26T21_34_57.txt" />
<id>http://tonyagudo.net/archives/2008/05/26/index.html#e2008-05-26T21_34_57.txt</id>
<published>2008-05-26T21:34:57-04:00</published>
<updated>2008-05-26T21:34:57-04:00</updated>
<category term="Open Source" />
<category term="Second Life" />
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<![CDATA[<p>
If you've been around Second Life long enough, chances are you've come 
across a"Stargate(TM)". Based on the TV show of the same name, they are 
networked teleportation devices that take you to any other place where 
another stargate is. In my early days of SL, I was even friends with the 
creator of a Stargate network. The other day, I had gotten a copy of 
Doran Zemlja's "<a 
href="http://www.slexchange.com/modules.php?name=Marketplace&file=item&ItemID=308348&allReviews=1#reviews">OpenGate</a>", 
which is an open source Stargate network licensed under the GNU GPL. I 
had put up an OpenGate right at my store's front door, hopefully to help 
bring in more customers. Today I had an interesting idea: Why not make a 
triangular Stargate? It shouldn't be too hard to do.
</p>
<p>
Boy, was I wrong. I did make a simple prototype, no problem. But when I 
moved all the appropriate objects, textures and scripts over, the shape 
reverted to a regular gate. WTF? "Ok, no problem, just find the script 
the function call that reverts the shape, and comment it out". The only 
problem? ALL the scripts are virtually unreadable to a mortal's 
eyeballs. I complained about it on the OpenGate network group, and I was 
told to look on the OpenGate website for why Doran did this. What i 
found made absolutely no sense at all:
</p>
<p>
<i>People who've looked at the source code in-world have noticed that is pretty much unreadable. The first question I'm asked is "why the obfuscated code?"
<br/
I'm trying to kill several birds with one stone here.
<br/>
During development of the first gate network, I would often succumb to the temptation of modifying the code in world to fix bugs. The result was that the online tarball would become out of sync with what was actually in use, and I lost much time scratching my head over which version was correct.
<b>
Obfuscating the in world code forces me to do development out of world.
<br>
There is a fair amount of shared code between the different scripts. On several occasions I found that I had different versions of key algorithms in different scripts, and this caused many headaches. To avoid this, I wanted to use C/C++ style #includes and #define macros, and that necessitated moving to a development platform with real development tools.
<br>
To some degree, obfuscated code is a natural result of using #include and #define macros.
<br/>
Often people would make changes on their objects and submit them back to me for inclusion in the project. Such code had often gone through several iterations of copying and pasting in different tools, and it was often difficult to get a clean diff to figure out what had changed.
<br/>
Obfuscating the in world code should help reduce this problem. I will no longer accept contributions that do not diff cleanly against the code in the distribution.
<br/>
<b>Many well meaning people who used the objects in world took them apart, picked a single script, and found their favorite nit to pick in the name of readability, efficiency, reduced memory, or reduced lag, and "fixed" them</b>. They often did this without understanding the complete design, especially without understanding how the different scripts interoperated with each other, how the different objects interacted within a single gate, or how the individual gates interacted with each other in the gate network as a whole. On a few occasions this led to disruptions of the gate network. Now that the distributed chord algorithm is in use, these problems are magnified.
<br/>
Obfuscating the in world code increases the level of effort required to make changes, and should reduce the number of frivilous unconsidered changes.</i>
</p>
<p>
That last sentence and paragraph burned me up. She's 
obfuscating the code to actively discourage other people from making 
changes. While this doesn't technically violate the GPL's terms, it's 
actually a way of trying to be cute with it. Whenever I make a project, 
I always try to keep the code as neat and easily readable as possible, 
not just for me, but for anybody who wants to study it, modify it, and 
even sell their own modifications. That's the nature of the GPL at work. 
If Doran doesn't want other people to make changes and submit them for 
inclusion, she should have chosen a different license.
</p>
<p>
Yes, you read that last sentence right. It seems to me that Doran 
doesn't totally grok the GPL. A good GPL project doesn't put up 
obstacles to code changes, it removes as many as possible. So what can 
be done about a poor GPL project like this one?
</p>
<p>
Answer: <strong>Fork it and do it better!</strong>
</p>
<a href="javascript:HaloScan('opengate');" target="_self"><script type="text/javascript">postCount('opengate');</script></a> | <a href="javascript:HaloScanTB('opengate');" target="_self"><script type="text/javascript">postCountTB('opengate'); </script></a>]]>
</div>
</content>
</entry>
<entry>
<title type="html">Meeting Kermit(not the Frog)</title>
<author>
<name>Tony Agudo</name>
</author>
<link rel="alternate" type="text/html" href="http://tonyagudo.net/archives/2008/05/24/index.html#e2008-05-24T01_26_47.txt" />
<id>http://tonyagudo.net/archives/2008/05/24/index.html#e2008-05-24T01_26_47.txt</id>
<published>2008-05-24T01:26:47-04:00</published>
<updated>2008-05-24T01:26:47-04:00</updated>
<category term="Second Life" />
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<![CDATA[<p>
I had just added a listing enhancement to one of my items on SL Exchange 
when a new customer teleported in. His name is <a 
href="http://tonyagudo.net/images/Kermit.bmp">Kermit</a>(I can't 
remember 
his last name) and he found my shop through my listings. It turns out 
he's trying to figure out how he can start creating stuff in SL and he 
can't decide what to specialize in. I told him building is the easiest 
skill for most people to pick up. We chatted for a while, eventually 
talking about having original sports leagues in SL, particularly 
football and soccer. It turns out that faithfully recreating such a game 
would require a really big undertaking, with a lot of scripts, 
animations, HUDs for the players, coaches, referees, and of course 
scripts for the field too.
</p>
<p>
After we were done talking, I gave him a free copy of my Green Android 
Warrior avatar as something to cut his teeth with avatar creating, on 
the condition that if he makes an interesting mod of it he lets me know 
about it.
</p>]]>
</div>
</content>
</entry>
<entry>
<title type="html">That virtual world over There...</title>
<author>
<name>Tony Agudo</name>
</author>
<link rel="alternate" type="text/html" href="http://tonyagudo.net/archives/2008/05/22/index.html#e2008-05-22T02_11_30.txt" />
<id>http://tonyagudo.net/archives/2008/05/22/index.html#e2008-05-22T02_11_30.txt</id>
<published>2008-05-22T02:11:30-04:00</published>
<updated>2008-05-22T02:11:30-04:00</updated>
<category term="Second Life" />
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<![CDATA[<p>
Yesterday I got curious about a virtual world competitor to Second 
Life(R), known simply as "<a href="http://www.there.com">There</a>". 
After perusing the FAQ and Developer FAQ, I'm convinced that I chose the 
right virtual world. Here's why:
</p>
<p>
First off, it's Windows-only. No Mac or Linux client at all, so you know 
it's already a small world. Secondly, by default you can't build 
anything at all. You need to join a "developer's program", where your 
creation is subject to approval by a staff. Also, many 
features that you get in Second Life such as Voice Chat, landmarks and 
others that you get for free, aren't available to basic members. But the 
biggest dealbreaker for me(and certainly a lot of other people), is that 
There charges money for creating stuff, and you won't turn a profit 
until you sell the item at least ten times.
</p>
<p>
It's not all bad for There, though. They have a fixed offline schedule, 
so no unexpected outages. Plus you can join up to fifty groups, twice as 
many as in SL. And for teens, they're not relegated to a "teen grid". 
However the inclusion of teens is a big reason why There has such 
rigorous restrictions, which actually makes me glad SL did make the teen 
grid. Heck, the teen grid is actually better than There.
</p>
<p>
So in conclusion, I can't recommend There as a good virtual world for 
anybody. It's a Second Life look-alike on the surface, but it's too 
PG-13 to be a Second Life competitor. Perhaps I'll start searching 
around for other virtual worlds and see what's good and what's not. 
Don't get me wrong, I still love SL but I think it would be a good idea 
to see what else is out there. Maybe I'll make my search into a blog 
category.
</p>]]>
</div>
</content>
</entry>
<entry>
<title type="html">Fun at Greenies</title>
<author>
<name>Tony Agudo</name>
</author>
<link rel="alternate" type="text/html" href="http://tonyagudo.net/archives/2008/03/18/index.html#e2008-03-18T23_07_47.txt" />
<id>http://tonyagudo.net/archives/2008/03/18/index.html#e2008-03-18T23_07_47.txt</id>
<published>2008-03-18T23:07:47-04:00</published>
<updated>2008-03-18T23:07:47-04:00</updated>
<category term="Second Life" />
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<![CDATA[<p>
Yesterday I came across a <a href="http://dedricmauriac.wordpress.com/2008/03/16/greenies-home/">blog post</a> by Dedric Mauriac, a Second Life resident whom I recently met. The post talked about a sim called "Greenies Home Rezzable". Greenies is without a doubt the most creative sim I've seen since Robbie Dingo's "<a href="http://youtube.com/watch?v=LxVDVggLqsA">Watch the Worlds</a>" endeavour. You arrive at what appears to be a cave. When you get through the cave, you see an entrance to a big house. The real surprise is when you get out of the house. The entire sim is a like a giant apartment house. It's as if you got transported into the movie "Toy Story", but with little greenies instead of toys roaming around.
</p>
<p>
Coincidentally, it was St. Patrick's Day, and the people there were <a href="images/Greenies.png">celebrating</a> in style, complete with a giant green cake. There's even a store past the giant bookcase where you can get a themed greenie avatar(I got the Jedi greenie, but now I wish I got Darth Vader instead). Greenies Home Rezzable is a great place to explore, play around, and just have a lot of fun. I'll definitely be going back there soon.
</p>]]>
</div>
</content>
</entry>
<entry>
<title type="html">Second Life and the Web Finally Meet</title>
<author>
<name>Tony Agudo</name>
</author>
<link rel="alternate" type="text/html" href="http://tonyagudo.net/archives/2008/03/13/index.html#e2008-03-13T01_03_56.txt" />
<id>http://tonyagudo.net/archives/2008/03/13/index.html#e2008-03-13T01_03_56.txt</id>
<published>2008-03-13T01:03:56-04:00</published>
<updated>2008-03-13T01:03:56-04:00</updated>
<category term="Second Life" />
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<![CDATA[<p>
As of the Second Life 1.19.1.0 RC client, a couple of new, yet very useful features has emerged. First, there's a new in-world web browser that pops up when you clck a link from chat history, IM or even from a llLoadURL function call. While that in itself would make things like my in-world scripted laptops much better, Linden Labs actually manages to top that with enabling parcel owners to now be able to set webpages as parcel media on prims with an owner-specified texture applied. They were careful with this as to make it so that only static pages can be rendered(no clickable links or multimedia), which is a reasonable restraint. However I believe with a little script-fu it is possible for parcel owners to overcome the limitations and implement a crude, yet fully functional in-world web surfing device.</p>
<p>
In fact, I will soon start coding up a sample GPL implementation of such a device. My implementation will use the "<a href="images/web_on_prim.png">webprim</a>" feature as a safe page preview function, and offer the user the choice to load the page with the in-world browser.
</p>
<p>
However, making an in-world web device isn't my only project as of late. I've also released a script that allows prim manipulation via chat commands. I'll talk more about that in my next post.
</p>]]>
</div>
</content>
</entry>
<entry>
<title type="html">New Projects</title>
<author>
<name>Tony Agudo</name>
</author>
<link rel="alternate" type="text/html" href="http://tonyagudo.net/archives/2007/12/22/index.html#e2007-12-22T01_51_21.txt" />
<id>http://tonyagudo.net/archives/2007/12/22/index.html#e2007-12-22T01_51_21.txt</id>
<published>2007-12-22T01:51:21-04:00</published>
<updated>2007-12-22T01:51:21-04:00</updated>
<category term="Second Life" />
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<![CDATA[<p>
A few days ago, I started out on a new, ambitious SL project: Creation of a free software object server with a networked vendor. As of this writing, I have completed the first iteration of the project, which is a barebones server and matching "giver" object. And today I just implemented inventory checking and communications between the server and client. While still certainly a work in progress, I have put it up for sale both at <a href="http://shop.onrez.com/item/450137">OnRez</a> and <a href="http://www.slexchange.com/modules.php?name=Marketplace&file=item&ItemID=475572">SLEX</a>. As per the GPL though, I will gladly provide the source code to anyone who asks, free of charge.
</p>
<p>
Development right now is happening with the LAN version(server can only be placed in the same sim as the client object). Once I complete the expected features for the server and client, I will port them to the email and "status light" versions of the server set. So if anybody wants to contribute code, ideas, or suggestions, IM my SL avatar "Antonius Misfit" and let's make it a truly open source project!
</p>]]>
</div>
</content>
</entry>
</feed>
