Pages

Wednesday, October 24, 2012

The Zen of Relationships

This will be a short one! Many times, I'll see a Forum post, usually from a young girl, who asks, "How do I find a boyfriend?"  Or a partner, or a husband.  Once in a while the question comes from a young man.

There's nothing different about finding a Special Someone in Second Life.  It works the same way it does in Real Life.  You meet a lot of people...be open and pleasant...and as you get to know someone better, a relationship may develop.

That sounds easy, doesn't it?  But it's not.  For one thing, the people who ask this question are often socially challenged, through youth or inexperience or through being saddled with a difficult personality.  And so many of them are desperately seeking that special relationship.

And therein is the difficulty.  If you are looking for a relationship, it will elude you.  The trick is to stop trying so hard.  Just sit back, chill out, calm down.  Stop thinking about how much you want to find someone.  Sigh...I know, it's not easy.  Keep working on it. 

You have to take it easy, because if you give off that desperation vibe, it will repel the very people you want to attract...and attract the sort of emotional predators you want, at all costs, to avoid.

Once you get to the point where you aren't thinking about it...when you are just going along, doing other things...that's when your Special Someone will show up.  It's amazing how this happens.

Stay away from dating and matchmaking sites, stop thinking about finding your soulmate.  Instead, work on being the best person YOU can be.  Once you're working on that, on the things you can affect...you'll be astounded at how everything else will work out.

Saturday, October 20, 2012

Scripts



Today I’m going to discuss a topic that I should not…because I know almost nothing about it. (When has that ever stopped you before, Linnie?  Oh, hush.)  That topic is…scripts.
Scripts are what bring life to the world of Second Life.  Scripts make doors open, planes fly, Animation Overriders work, and shoes change color at a touch.  Scripts make rivers flow, fish swim, birds sing, and dogs wag their tails.  They are the magic of Second Life, and the people who understand how to create them are wizards indeed.
A script is a computer program.  In SL, scripts are written in a unique software language called LSL – Linden Scripting Language.  LSL is, my programmer friends tell me, related to C, or C+, or C++…they seem to think the number of plus signs is important, anyway.  I wouldn’t know…the computer languages with which I have even a passing familiarity are now nearly obsolete…BASIC and FORTRAN.  So this article is not going to go into ANY of the details of LSL.  Instead, my intention is to give those of you who have no ambition to become scripting wizards a basic understanding of scripts, just enough so that you don’t tremble in fear when someone whispers the word. 
Well, a bit more than that...even if you can't write scripts, you should be able to open one and make some minor tweaks to its variables.
Here is an example of a script, the simplest possible.  You will see this if you right click in your inventory and select “New Script”.
default
{
    state_entry()
    {
        llSay(0, "Hello, Avatar!");
    }

    touch_start(integer total_number)
    {
        llSay(0, "Touched.");
    }
}
What does it do?  Nothing, yet.  Scripts don’t do anything until you put them into a prim.  So, rez a cube and select Edit.  Click on the Content tab of the Edit window.  Now drag your script to the edit window and drop it into the prim’s Content area.  Close the Edit window.  Or use the alternate method...just drop your script on the object itself.
Now touch the prim by left clicking it.  Wow!  Your prim spoke, didn’t it?  Isn’t that amazing?  A talking prim!  Let's make our prim just a little smarter.  Remove the first script from the prim and drop this one in...or edit the initial script and replace the text with this.


default
{
    state_entry()
    {
    }
   
    touch_start(integer a)
    {
            string sName = llKey2Name(llDetectedKey(0));
            llSay(0, "Hello, " + sName);
    }
}
Now touch the prim again.  Hey, it knows your name!
Here is a script that I used a lot, before LL made the transparency box in the texture window go all the way up to 100%.  If you drop this script into a prim, it will do two things…turn the prim completely transparent, and then delete itself.
default
{
    state_entry()
    {
        llSetAlpha(0.0, ALL_SIDES);
        llRemoveInventory(llGetScriptName());
    }
}
Now have a look at a more complex script.  This one is for a sliding door. 
key owner;
// Will be used to retrieve owner's key.

integer iChan = 1000;
// Channel door will listen on if other doors are touched;
// also the channel this door will broadcast on.

integer iSteps = 3;
// How many steps the door will open in, used to provide the
// illusion of sliding. Fewer steps means it opens faster,
// but more steps will make it "slide" smoother.

vector vOffset = <0.0, 2, 0.0>;
// Indicates how far the door will move with each step.
// Multiply by iSteps to calculate the total distance the
// door will move.

vector vBase;
// Used to "un-stick" the door if something blocks it.
// Not sure if this is needed since 0.5.1, objects don't
// seem to block the door any more. Leaving it in just
// in case, though. I think attempting to edit the door
// while it's moving may make it stick. This will solve
// that problem as well.

float fOpenTime = 25;
// How long the door stays open

string sSKeyword = "open1";
// Keyword door broadcasts when it's touched, to make
// other doors open. You can chain these to make multiple
// doors open when any one is touched.
// NEVER make sSKeyword and sRKeyword the same, or you may
// get some doors stuck in an infinite loop, continuously
// re-triggering each other.

string sRKeyword = "open2";
// Keyword door listens for from other doors. Will open
// when it "hears" this keyword.
// Again, NEVER make sSKeyword and sRKeyword the same.

integer bMove = FALSE;
// Is the door moving?

integer bLock = FALSE;
// Is the door locked?

integer bVerbose = FALSE;
// Confirm when owner locks/unlocks the door.

//*********************************************
// open() -- the meat and taters of the code,
// makes the door actually move.
//*********************************************
open()
{
bMove = TRUE;
integer i;
vector basepos = llGetPos();
for (i = 0; i < iSteps; i++)
{
llSetPos(basepos + i*vOffset);
}
vOffset *= -1;
llSleep(fOpenTime);
basepos = llGetPos();
for (i = 0; i < iSteps; i++)
{
llSetPos(basepos + i*vOffset);
}
vOffset *= -1;
if (llGetPos() != vBase) {
llSetTimerEvent(5);
} else {
bMove = FALSE;
}
}

default
{
//************************************************** *
// state_entry() -- set up our global variables and
// initialize the listen events.
//************************************************** *
state_entry()
{
vBase = llGetPos();
owner = llGetOwner();
llListen(0,"",owner,"");
llListen(iChan,"",NULL_KEY,sRKeyword);
}

//************************************************** *
// listen() -- listen for other doors opening, and
// if owner wants to lock/unlock doors.
//************************************************** *
listen(integer chan, string name, key id, string msg)
{
if (chan == iChan && msg == sRKeyword) {
if (!bMove && !bLock) open();
if (bLock && bVerbose) llSay(0,"Locked!");
}
if (chan == 0 && id == owner && msg == "lock") {
bLock = TRUE;
if (bVerbose) llWhisper(0,"Locked!");
}
if (chan == 0 && id == owner && msg == "unlock") {
bLock = FALSE;
if (bVerbose) llWhisper(0,"Unlocked!");
}
}

//********************************************
// touch_start() -- what to do when someone
// touches the door.
//********************************************
touch_start(integer count)
{
if (bLock) {
llSay(0,"Locked!");
} else {
if (!bMove) {
llWhisper(iChan,sSKeyword);
open();
}
}
}

//************************************************** **
// timer() -- this is only used to un-stick the door
// (see vBase definition above).
//************************************************** **
timer()
{
llSetPos(vBase);
if(llGetPos() == vBase) {
llSetTimerEvent(0);
bMove = FALSE;
}
}
}
(NOTE: The above script is courtesy of my friend Qie Niangao.  It may not be re-sold as a script, but may be included as a part of your builds for resale.  If you use it for any purpose, a donation to Qie would be courteous.)

As I said, I’m not going to go into details of commands and syntax.  But I am going to mention a few things that will, I hope, help you find your way around a bit.
First, all brackets and parentheses must have their proper counterpart.  Each { must have its corresponding }, or the script will give you an error message.
Second, any line preceded by a double slash, //, is a comment.  It’s intended to tell a human reader something about the script…what it does, who it belongs to, what parameters can be changed, and so on.  You can also use the // to turn off a line of code (by turning it into a comment), or enable a line of code by removing the slashes ("uncommenting".).
Third, every time you make a change to a script, no matter how small, the script will not run until it is saved.  When you hit the Save button, a “Compile Successful!” message will tell you that you have obeyed all the laws for writing a viable script.  It may not do what you want it to do, but at least it is not broken so badly that it won't run at all.
While you can write scripts directly in a Second Life script window, if you are doing anything that’s at all complex, it’s useful to write it in a script editor.  You can get a free LSL editor at Source Forge and several other places.
Note that our door script has places where you can tweak values to change the way it operates.  You can select the axis and direction and speed of the slide, just by changing a few numbers.
A lot of complex scripts use a separate notecard to set up their various properties, rather than have you mucking about inside their actual code.  In this case, your item will come with such a notecard, probably called “Configuration” or some such.  For example, the popular ZHAO II animation overrider comes with three parts:  The actual HUD object, the script, and a Configuration notecard.  Both the script and the notecard are dropped into the HUD’s Content tab.  You then add your own animations to the AO, again by dropping them into the HUD’s Content.  Finally, you edit the Configuration notecard to mention each animation by name and assign it to a category…walking, standing, sitting, and so on.
At the bottom of the script window is a button that allows you to compile the script “normally”, or in “Mono”.  Mono is an innovation that Linden Lab added about four years ago.  It increases the efficiency of how SL handles scripts, at least in certain ways.  This is getting close to the area of my ignorance, but as I understand it, go ahead and compile the script in Mono if it is going to be moving from place to place…in a vehicle, for example, or worn as part of an avatar attachment.  If it is going to be at a fixed location, compile it under the old method.  [EDIT:  This is bad advice from your ignorant hostess.  Please see Comments 5&6 below for better information.  Short answer:  Use Mono for everything, you'll be right more often than not.]
I’ve mentioned particles (see "Fireworks!") before in these spaces.  Particles are used to make lightning, fountains, rain, smoke, tall grass, fireworks, bling, and many other effects.  ALL particles are controlled by only ONE all-purpose particle script.  How you change the many parameters in this script determines what your particles will look like and how they will behave.  I’m not going to reproduce the script here, but you can get a copy of it, and a bunch of tutorials that show you how to obtain various effects from it, at The Particle Laboratory .
Sometimes a script will not operate.  If that happens to you, first look at your top menu bar to see if you are in a No Script area.  If you are, fly up about 50 meters or so.  The scripts will begin working again, and will remain working when you fly back down.  You can’t, however, change the way they are working with any HUD controls they may have.
If you are a land owner and have problems with griefers, you may want to (temporarily, we hope) disable script operation on your land.  This can be done in About Land/Options. 

 If you are in a script-enabled area and the script still isn’t working, you can sometimes correct the problem by selecting the scripted object, then go to the Build menu on your top bar and choose Scripts/Reset Scripts.
Somebody has probably written a script to do just about anything you want, and many of them are free.  You can find a number of collections of LSL scripts with a simple Google search.  Here are some links:
You can find a complete run-down on the various LSL commands and what they do in the Linden Lab LSL Portal But it’s mighty dry technical reading, and not always easy to understand.
You can also get help from fellow scripters on the Second Life website Scripting Forum.
If you want more detailed instruction, check out the College of Scripting Music and Science  If you want to become a true scripting wizard a few visits to this place will be worth it.
Most scripts except flat-out freebies are No Modify…because you have to see it to change it, and if you can see it, you could copy it into a new window, then give it away to all your friends.  This is another reason scripts use Configuration notecards to modify their parameters.  But there is one bit of good news:  scripts, even with full permissions, are not susceptible to theft via copybot software.
One parting bit of advice:  If you are not interested in learning the complexities of LSL yourself, make friends with a scripter or two.  Their talents can come in VERY handy!  But remember Gandalf’s advice:  “Meddle not in the affairs of wizards, for they are subtle and quick to anger.”

Wednesday, October 17, 2012

A Boater's Halloween

A very short piece this time...everyone is blogging about great Halloween spots.  I found one that's a little out of the ordinary.

It's a Halloween Boat Show at the Tradewinds Yacht Club.  Come on by and see some very...unusual...craft!

Here are a couple I saw in a very brief visit.

Pumpkin Sails and a paddlewheel barrelboat

Giant Squid Attacks Haunted Pirate Ship!




























...I think those sort of speak for themselves!

Saturday, October 13, 2012

Go the Extra Mentor Mile

Usually, when I mentor newcomers, I stand around the arrival point at Caledon Oxbridge University, or White Tiger Help Island and greet newcomers when they appear.  If the newcomer replies to me (about four out of five don't say anything!) we go on from there.  I tell them a bit about the location and how to use the tutorials, and then answer any specific questions they have.

A few times this last week, I've had an opportunity to do a bit more.  One friend is building her first house in SL, and I have given her some advice on various parts of the build, and even whipped together a little model to show her how her house design could be done in a minimum number of prims.  She told me today that she is helping another friend build HER house now...that gave me a very warm feeling, knowing that I'd helped her get to where she was comfortable helping others.

During my avatar safety class, a student asked a question about how voice and sound parcel limitations worked.  I was not entirely sure of the correct answer...so after class, we went back to my land and did some experiments.  Not only did this answer my student's question, but it solidified my own understanding of how land settings work.

Following my land class, one of the students stayed to talk.  I wound up showing her my home, and taking her sailing.  We went to Tradewinds Yacht Club where I showed her how to get the free Becky's Baby Sloop sailboat.

My last example involves a young man I met at Freebie Island.  He asked me if I would like to dance...and then proceeded to animate his avatar with one of the horrid default dance animations.  I took him to a club with a good dance ball, and patiently showed him how to use it.  It was not easy, he had some trouble figuring out how to accept the dance machine's animation offer.  As we were talking, he expressed an interest in learning SL photography.  By happy chance, the Oxbridge photography class was just beginning, so I took him there and dropped him off.

These are the sort of encounters that really make mentoring worth while.  Showing someone things that not only give them an immediate answer to a question, but open their eyes to some of the larger possibilities of Second Life.  Thank you Xali, pj, Emileen, and Bray.

Friday, October 12, 2012

On Being a Good Neighbor

Yesterday's post was on Home Security.  There are certainly times when you'd like a little privacy in Second Life, and so how to establish that (at least to some extent) is important.

But the avatar who walls herself away from all others, all the time, is not being a good neighbor.  A fortress mentality harms not only the people who live next door to you, but it harms you as well.  Second Life is all about community.  If you want total privacy, set up an OpenSim region on your own computer and go live in your own little world!

Here are some things that other residents do that strike me as Bad Neighbor stuff!

  • Ban Lines.  There I am, flying blissfully along and taking in the scenery.  Suddenly, BAM!  I run up against yellow stripes of police tape in the air.  Ick, ban lines.  Now I have to find a way over or around this annoying obstacle.  It's even worse if the ban line creator lives next door to me.  Depending how my house employs alpha textures, the ban lines can appear to be INSIDE my home (even when they are not, really.)  Vehicles can become mired in ban lines.  But the silliest situation of all is when you teleport to an empty parcel that is for sale, and find ban lines around it. 
  • Security Systems.  A properly set up security system is one thing.  But one that spreads out to cover supposedly public land like a canal or a river are totally annoying.  So are the ones that are set up to boot you ten seconds after issuing a warning.  If you're traveling in a slow vehicle like a sailboat, that's far too little time to notice the warning, figure out which way is "away", and get to a safe distance.
  • Privacy Borders.  OK, I get it.  You don't want to have to look at the neighbor's Really Ugly Castle, or their Midnight Black Cube of a club.  But if you MUST put up these tall "walls" around your parcel, just texture them on YOUR side.  Make the outside of them transparent, and be sure to make them Phantom as well.  You are not really hiding yourself behind a screen like this, you're just creating an eyesore.  A much better choice, if you have the prims for it, is to put landscaping around your parcel.
  • Ugly Builds.  Yes, I know.  Beauty is in the eye of the beholder.  But surely, we can all agree that some builds are just...ugly?  Amateurish, cobbled together.  Garish, clashing colors.  Buildings that are completely at odds with everything else surrounding them.  Go ahead, be creative!  But please do it up above a few hundred meters, OK?
  • Building Up To the Border.  On small parcels especially, the desire is to use every precious square meter.  But please...build a couple of meters back from the property line!
  • Low Skyboxes.  Draw distances are up these days, as video cards get more powerful.  I can see your ugly sky platform at 200 meters.  Put them up high, please, unless you can build something really visually pleasing.
  • Slash and Burn Terraforming.  Try to avoid those land transitions at parcel borders that look as if they were cut by a knife.  Talk to your neighbor and arrange a smooth transition between your parcels.  It's quite possible if there is a little compromise on both sides.
  • Encroachment.  Get your prims off my land! No, not even one centimeter over the border!
  • Abandoned vehicles.  This one I don't mind so much, because I know that most people don't abandon their vehicles on purpose.  They crash, and are unable to find where the vehicle embedded itself.  Still, please take your vehicles with you if you're able to do so.
  • Blocked water access.  It's your land, and you can do what you want with it.  But when what you do means that you block the passage of water vehicles for everyone else, you're being a Bad Neighbor.  Think about what you are building, and see if passage can't be incorporated into your design.
  • The Silent Treatment.  I don't insist you come over for tea every time both of us are on line.  Neither of us would get anything done!  But it's nice to meet and talk to your neighbors at LEAST once.  
See you around the neighborhood!

Thursday, October 11, 2012

Home Security

Way back, I wrote a post from the point of view of the housebreaker...the poor homeless noob who comes across a luxurious home standing vacant, just packed with toys to play with.  Today, I'm going to write from the opposite point of view...the home owner who is disturbed by a naked newbie popping in during a romantic interlude and insisting on joining in.  What can you do to prevent this unwanted intrusion?  (Some earlier thoughts on this can be found in my post, "Privacy")

There is NO real privacy in SL, and locks on doors are only for fun, not for real deterrence.  But there are some security features you can employ, and some actions you can take.

Ban lines.  In About Land/Access tab, if you uncheck the public access box, yellow "police tape" ban lines will surround your property and roof it over at 50 meters.  You and people on your Access List will not see them, and be able to enter your parcel.  I don't like ban lines.  They ugly up the landscape and prevent innocent people who just want to pass over or through your land from doing so.  But it is one option.

Security systems.  You can get many types of "security orbs" from the Marketplace, some of them free.  I don't like these either...they can be tricky to set up, and you have to make sure they are not affecting people OUTSIDE your parcel or you can be reported for abuse.  This is especially critical when neighbors are close together, as they are in the Linden Home areas.

Invisibility.  Ban lines and security orbs only prevent physical intrusion.  People can still move their cameras inside your house and look at you.  In About Land/Options tab, un-check the box "make avatars and chat visible to people outside my parcel".  People outside your parcel will still be able to see a blip from you on their radars, but cannot see you or hear your local text chat.  (And you cannot see or hear them either.)

You can also limit voice chat and gesture sounds to your parcel with the Sound tab of About Land.  And of course, IMs (text and voice) are always private.

Open access poseballs:  Many pieces of scripted furniture allow the owner to set them to "group access only".  You and your partner will have to wear the correct group tag to use them, but no one else can. (You may need to create a private little group to use this feature.  That's another topic!)

As I said, I don't like any of these methods much.  We are only in SL a few hours a day, and it seems uncharitable to block off a bit of it for all the hours we are not there.  Besides, people can't actually take or damage any of your stuff.  But there is a very effective method of dealing with intruders when you ARE home:  The eject and ban function.

Right click an intruder on your parcel.  Select Eject.  You will get a menu with choices to eject, ban, or eject AND ban.  I generally select the last one.  Poof!  They are tossed out of your home and can not get back in unless you remove them from the parcel ban list.

That's generally all that's needed.  If they were extremely rude or did some nasty griefing while they were there, you could Abuse Report them, but in the usual run of things, it's a case of overkill.
I teach a class on Avatar Safety on Saturdays at 12 noon SL time, at Caledon Oxbridge University.  We cover all this and many more Second Life hazards, and the class is free.  I hope to see you there!

(Thanks to RickerR Resident for providing the inspiration for this entry!)

Some Musings on an SL Halloween

It seems like just a few weeks ago I was doing this...decorating our sim for Halloween.  And here I am today, dusting off the ghosts, the Jack O' Lanterns, and the coffins.  Hanging spiderwebs and placing the Ghost Ship in our harbor, changing the sky and water to an eerie setting, building the Haunted Graveyard... Yes, another SL Halloween is just around the corner.

Halloween is a huge holiday in Second Life; the residents give it even more attention, perhaps, than Christmas.  It's a little puzzling to me...since EVERY day in SL is, in a sense, a vast costume party.

We change our bodies nearly as often as we change our clothes.  Many of us spend our virtual lives as fantasy characters...mermaids, faeries, or vampires.  And yet, for this one season, we go even further, pulling out all the stops.

I enjoy decorating the sim, but I never seem to be able to decorate myself nearly as well as some of my friends do.  I don't want to look gross or scary, and I'm already about as sexy as I can imagine myself (she said modestly)...it would be hard to find a costume that was an improvement.  The best I was able to accomplish in that vein was back about four years ago, when I dressed up as Marilyn Monroe. 

Simply finding a skimpy, revealing little outfit is not the answer that it is in Real Life...so many SL women dress in little nothings every day that it just doesn't have any impact.

Sigh...I guess I just don't have the imagination that it takes to compete in the SL Halloween lists.  But don't let that stop YOU...look around at some of the great Halloween builds, check out the SL Markeplace, and do something spooktacular this year!

Saturday, October 6, 2012

FLASH! Don't Buy $L from Strangers!

There was a post tonight on the SL Answers forum from an avatar who had purchased $L321,000 from another avatar.  She'd been told (I presume by that avatar) that he was "Risk API Positive", so she felt the transaction was approved by LL.

She was very upset when Linden Lab took those $L from her account, telling her they were fraudulent.

Here's the straight goods:  There are no "Risk API Positive" avatars.  The Linden Lab Exchange Risk API is a software tool furnished by LL to certain third party linden dollar exchange web sites.  The API is not something that applies to individuals.

A popular money laundering scheme involves stealing a credit card, then using it to buy $L.  Then these fraudulently-obtained $L are peddled on eBay or other venues.  If you buy these "hot $L", Linden Lab will take them back out of your account, and assess you a 50% penalty besides.

All $L come from LL.  The official exchange rate is always pretty close to $L250 = $1 USD.  Anyone who offers to sell you $L at a rate significantly better than this should raise an immediate red flag.

NEVER buy $L from an individual.  NEVER buy $L on eBay.  There are legitimate third party linden dollar exchanges out there.  Use them if you must...although LL will take no responsibility if you get taken, and the best price will nearly always be the official Linden Exchange on the SL web site.

Full Steam Ahead? I Wonder...

Hello, faithful readers!  Still out there?  If so, thank you...it's been way too long since my last update here.

Many of you have heard that Second Life will soon be available through Steam, the big game-distribution web site/service run by Valve.  You may see this as a good thing, or not...resident opinions have been mixed.  As for me, I'm taking a wait and see position on this one.

But one thing perplexes me.  Valve has a "no adult content" policy.  Oh sure, a lot of the games they distribute have blood, gore, criminal activities, and extreme violence.  But naked people?  Sex?  No way, says Valve.

A few weeks ago, a developer put up a new game on Steam.  It was a dating/flirting/hookup simulation.  If you were smooth and cool, you could talk a beautiful woman into going off somewhere with you...and you got rewarded with a racy "bedroom scene".  The game was up for a day, maybe even less, before Valve yanked it as being in violation of their no adult content rules.

Now, that's OK with me.  I think the policy is pretty stupid, but hey...it's their company, and they can make the rules.  What bothers me is that Second Life contains just a teeny leetle bit of adult content...

Well, OK.  More than a bit.  Well, considerable.  Oh heck, all right:  everyone knows that SL is all about Teh Secks. 

I wonder if the folks at the Lab have mentioned this to the folks over at Valve?  And if they have, how do the folks at Valve reconcile this with their current policy?  Just asking.