Saturday, October 24, 2009

The External Grid Selector Script, Version 0.2

Okay, I've managed to implement simple autodetection of Second Life, Emerald and Snowglobe viewers to the script thanks to the elegant find command. So here's the code so far:

=========

#!/usr/bin/env bash

#Second Life Grid Selector and Client Launcher
#A simple grid manager for the official Second Life viewer,Emerald and Snowglobe
#(C) 2009 Jose A. Agudo aka Second Life resident Antonius Misfit
#Licensed under the terms of the GNU General Public License v3 or at your option any later version

viewer=$(zenity --list --title="Viewer Chooser" --text="Choose a viewer:" --column="Viewers" $(find SecondLife*/secondlife GreenLife*/secondlife Snowglobe*/snowglobe))

#retrieve grid "database" which is simply a bash array variable sourced from a file
if [ -e $HOME/.grids.db ];then
source $HOME/.grids.db
else
cat > $HOME/.grids.db << EOF
#Feel free to add grids here

grids=("Second_Life" https://login.agni.lindenlab.com/cgi-bin/login.cgi "Localhost" http://127.0.0.1:9000 "3rdrock" http://grid.3rdrockgrid.com:8002/ "OSGrid" http://osgrid.org:8002/ "NixTech_Forge" http://97.107.142.118:9300/)
EOF
source $HOME/.grids.db
fi

main()
{
action=$(zenity --list --title="SL Grid Launcher" --text="Choose a grid:" --column="Grids" --column="Login URI" --print-column="2" ${grids[@]:0} "Exit" "Exit")
case $action in
Exit) exit;;
*) $viewer --loginuri=$action;;
esac
}
main

=========

Thursday, October 22, 2009

The External Grid Selector script for Second Life/Snowglobe and Emerald viewers

I had promised to post this once I polished it up, but I think it's usable enough in it's present form to be considered as a 0.1 release. So here's the code:

==================
#!/usr/bin/env bash

#Second Life Grid Selector and Client Launcher
#A simple grid manager for the official Second Life viewer,Emerald and Snowglobe
#(C) 2009 Jose A. Agudo aka Second Life resident Antonius Misfit
#Licensed under the terms of the GNU General Public License v3 or at your option any later version

viewer=$(zenity --file-selection --title="Client viewer to run:" 2>&1)

#retrieve grid "database" which is simply a bash array variable sourced from a file
if [ -e $HOME/.grids.db ];then
 source $HOME/.grids.db
else
 cat > $HOME/.grids.db << EOF
#Feel free to add grids here
grids=("Second_Life" https://login.agni.lindenlab.com/cgi-bin/login.cgi "Localhost" http://127.0.0.1:9000 "3rdrock" http://grid.3rdrockgrid.com:8002/ "OSGrid" http://osgrid.org:8002/ "NixTech_Forge" http://97.107.142.118:9300/)
EOF
 source $HOME/.grids.db
fi

main()
{
action=$(zenity --list --title="SL Grid Launcher" --text="Choose a grid:" --column="Grids" --column="Login URI" --print-column="2" ${grids[@]:0} "Exit" "Exit")
case $action in
 Exit) exit;;
 *) $viewer --loginuri=$action;;
esac
}

main
================

There's definitely room for improvement, such as the possibility of using an online database of grids and choosing from an autodetected list of clients instead of manually choosing a viewer via file selection. I'll be working on those features, but if you have any other ideas, let me know in the comments.

Tuesday, October 20, 2009

Linden Lab announces a policy for "approved" third-party viewers

Linden Lab just announced the formation of a new policy regarding third-party viewers. Basically, the Lab will finally be putting their foot down on illegitimate viewers such as Cryolife, Thuglyfe and Neillife and work closely with approved third-party viewer developers via a "viewer registry".

I'm cautiously optimistic about this new development. I'm optimistic because it would mean that the Lab may finally get off their butts and perhaps incorporate some features of these other viewers, hence no longer relegating the official viewer as the "newbie" viewer in comparison. Plus working with third party devs the right way would help build trust with potential new users.

What I'm cautious about(and the Lab should be, too) is the possible negative effects it may have on third party viewer development if done with a heavy hand. Apple's condescending and abusive practices against third party iPhone/iPod Touch application developers come to mind here. And even worse, the possibility of the approval process being gamed by those with an agenda against third-party viewers(you guys know who you are) is present within the ongoing discussion with the Lindens.

I must admit here that before the policy announcement I was thinking about diving into the Snowglobe source code and try my hand at creating my own viewer(Not "the next Emerald", but rather a plain viewer with eventually one feature no other has: Ogg Vorbis/Theora streaming support). Now... I'll wait and see or go for it but develop the viewer for OpenSim exclusively.

This has the makings of a debacle, I'd say.