2013-01-29

Constantly hard (coded)

Recently I've been paying a bit more attention to the changes on the Second Life wiki. Not for any special reason, but I've just formed the habit and have even made a point of adding some pages to my watch list. In some small way it's probably also down to the fact that I finally got round to making a user page there.

I quickly noticed that there was a bit of a debate going on regarding many of the LSL pages and the examples on there. A user has recently decided to be helpful and go round and "improve" many of the examples with small edits. It seems that these small edits have, in some cases, resulted in non-working examples. In other cases they've just made the examples less helpful (as seen by some).

My personal view of those edits is that those who have being undoing them are right to do so. But that's beside the point. That's not the purpose of this blog post (which, I'll admit now, isn't going anywhere that'll interest anyone, but I had the urge to waffle about it).

The aspect of all of this that really interested me is something I've wondered about on and off over the last three years of scripting in SL: the special status of channel 0.

Or, more to the point, the way almost none of us call it by its "proper" name: PUBLIC_CHANNEL

Pretty much every scripter's first exposure to the public channel is this script:


From then on I imagine that we all stick with referring to the public channel as a hard-coded 0. Even those of us who have backgrounds as programmers and who (hopefully) use named constants for constant values like this have probably got into the habit of giving that particular channel this special status.

So I was intrigued to see this debate happening on the wiki (snapshot here in case it ever gets removed from the talk page) given I'd been thinking about this very thing on and off for a while: why do I always say 0 when PUBLIC_CHANNEL would be more correct?

In any other language I'd probably use the constant. Actually, in any other language (which allows sensible library design) I'd probably have a wrapper function which I'd use everywhere so the public channel would only get mentioned once. But the point is I'd be motivated by a need for everything to be "correct" and would use the constant somehow, somewhere.

But in LSL I use 0 all the time. I type it without even thinking about it. It's part of my muscle memory. I think about wanting to say something on the public channel; I write llSay( 0, ... ) and don't give it a second thought. It just comes out.

And I think that's one reason why it's a bad idea for someone to go round all the examples on the Wiki and change 0 to PUBLIC_CHANNEL. The reason is that saying 0 when you mean PUBLIC_CHANNEL is idiomatic LSL. It's how the natives speak the language. It's so common to everyone who does speak the language well that it's understood, without question.

So, even though the well-behaved programmer in me screams at me that I should say PUBLIC_CHANNEL, the native speaker of LSL just blurts out 0 and gets on with it. And it can't ever hurt someone learning the language to get used to it.

2013-01-25

A swift lesson

So, when your Mistress is waiting for you, and you're slow to get to where she is, and when she asks why you were slow, it turns out that the wrong answer is to point out that the hobble chain she put on you a week ago is doing its job and that it's the reason.

Because the next thing that happens is she mutters something about how you should know better than to complain about her restrictions and that she'll give you something to really complain about...


So, yes, as of now I'm as I was a week ago, only my hands are cuffed to my feet and I have to shuffle everywhere on my knees. Slower than before.

2013-01-18

Free of the gas mask

Ten days after being locked in it I'm finally free of the gas mask.

I did forget to mention here that, earlier this week, Miss Vila was kind enough to undo the ankle cuff hobble that she's put on me and let me walk around as normal -- albeit still locked in the mask. So for the past few days I've been wandering around almost as free as I have been for quite some time (leaving aside a couple of weeks before the collaring where I was free of everything for practical reasons that involved RL). It's been rather strange, being able to walk and fly around as I wish. (there's a twist there too though, but that'll be blogged about in a few weeks -- I'm testing a new product I'm working on).

So, today, I was rather happy when Miss said that it was time for me to be out of the mask, to enjoy being free of such anonymous isolation, to be able to fully experience the world around me. And it was. It was lovely. I had a lovely time with her.

Half an hour of which was spent enjoying the freedom she mentioned.

Because, about half an hour after being released from the mask, a brand new hood was handed to me, along with a pair of mittens. I've been left like this:


Thankfully the restrictions I've been left with aren't too terrible but, looking at the hood's manual, I can see that life could get very interesting if I'm not careful. The same goes for the mittens.

Miss said I needed to change my outfit to something that'd be "more colourful" so I ended up going with a Graves catsuit I've owned for a while. Miss Vila being Miss Vila she then coloured the hood and mittens to match, of course.

And then she put the ankle cuff hobble back on. Finally, as part of testing the new product I'm working on (which can result in being teleported to a set location), she placed out a Z&A SciFi cell as the place I'll get dropped if the forced teleport needs to happen:


It's set with trap mode on and a timer so that if I do end up there I'm stuck until the timer runs out.

I'm starting to get the impression that Miss Vila has a taste for keeping me covered up and moving slowly...

2013-01-13

RLV Relay Testing

This was prompted by two things that happened last week, both related (well, really, both pretty much the same thing).  During my short holiday in the Z&A main store I encountered a problem where, when I logged off and logged back again later, I wasn't properly caught back onto the doormat. The restrictions applied by the mat were being reapplied, but I wasn't getting caught back onto it. More to the point, I was caught back on the first time, but I wasn't subsequent times.

As you'll imagine, this was kind of worrying. Forcing victims back onto RLV items when they log back in is kind of important to much of what I make in Second Life. So I made a mental note to look into this as soon as I had time.

And then, just a day later, I coincidentally got a message from a customer with the exact same problem. The first relog was fine, but subsequent ones weren't. The one thing we both had in common is we were both using the OpenCollar relays in our collars.

So, this weekend, I've been hunting down relays and testing each one in turn. The tests were done on Firestorm 4.3.1.31155, the RLV version being reported as RestrainedLove viewer v2.7.0 (RLVa 1.4.7). In each case I made an effort to get the latest copy of the relay. I tested each one with the same Z&A product (our doormat) and the test went like this:
  1. Use the grab facility to grab myself onto the welcome mat.
  2. Lock myself on.
  3. Log out.
  4. Log in again.
  5. If grabbed back, wait a minute to check the lock held.
  6. Log out.
  7. Log in again.
  8. If grabbed back, wait a minute to check the lock held.
  9. Unlock and hop off.
Here are the results:


I did initially have a problem with the first regrab with Susan's. While I was grabbed back and all restrictions were reapplied, I got a message shortly afterwards that there'd been no response from the device (in this case the welcome mat) and so I was being released. I tested again and never had a problem after that so I'm thinking this was just down to an unfortunate lag spike or something (a couple of avatars did happen to enter the region at about the same time I did).

The next test is for me to try a different item of RLV furniture -- one that isn't of my own design. I've already tested the worst failure shown above with against a Cerdita FS Post and got the same result. If I get the same results it might be time for me to document the findings and report them to the relay makers (it's worth noting that the apparent failure of Satomi's relay seems to be the same as one I've reported before).

2013-01-11

Back on my feet

After three days stuck on the hover bike, minus a very short period where I was allowed to walk while we went shopping for a photo studio for the Raven Park Mansion, I'm now off it again and back on my feet.

It was brought to my attention yesterday that the dance system at Raven Park wasn't working so Miss Vila and I set about working out what the problem was (that might be a blog entry in its own right as it was a fun gotcha). To do this she needed me in a state where I was able to dance. Of course, all she did was unlock the bike and let me off it, none of the other items locked on me were removed.

So we got the dance system working and tested it.


Afterwards, we were chatting for a bit, and I waited, expecting the bike to be put back on me, but it didn't happen. It was starting to look good for me having a little more freedom again. It was then that she announced that there's something she really likes about the gas mask.


Apparently, when she was young, she had toy Wombles which she adored. And now it turns out that she's rather taken with her dark take on that. It seems, for now at least, she's decided that I'm her new toy Womble. Albeit a latex Womble.

Then, as she left, just when I thought I'd got away with being free to move around the region without too much effort (I was still denied all forms of TP at this point, and I still right now), she quickly snapped my ankle cuffs together in a tight hobble and said goodnight.


So, as of now, I'm still locked in the hood, with garbled speech. I'm hobbled and can only move slowly. I'm denied all forms of TP (so I'm still restricted to Raven Park and sittp is denied so I can only get on transport pads if I get very close to them), and I'm now denied fly. I'm pretty much back where I was in November.

I can see I'll have some serious begging to do if I'm going to stand a chance of getting out to shop for this weekend's Sixty Linden Weekend. And given what happens when I do beg, I'm wondering if it'll end up costing me even more.

2013-01-08

I begged...

After yesterday's "holiday", and especially after spending the whole evening locked on the mat with nothing to do (although the visit from Miss Eve of Evelock was most welcome, even if she did spend a good chunk of it laughing and snapping pictures with her camera), I found myself begging Miss Vila to be let off today. I've "suffered" many forms of bondage and punishment at Miss Vila's hands over the past three years, some enjoyable, some plain fun, some difficult; but this was almost unbearable. While I'm sure that, for some, being locked on public display with nothing else to do is a dream come true, it really is about as terrible as it can get for me. I love scripting and building, and I like being slightly reclusive. This played with both those things.

Lesson completely learnt. I can assure you.

So, yes, after much begging by me Miss has given me back build rights and has let me off the mat, free to roam again.

Well, almost. She wasn't going to let me off that easily. I had to swap one form of bondage and restriction for another. And so she had a look through my #RLV folder, looking at the various restraints, and pulled out two favourites of hers that haven't been used in a long time. And then she added a sprinkle of restrictions via my collar.


As of now, I'm locked on the hover bike you see (one of Miss' firm favourites and one she's not used since 2010). This denies me the ability to walk. I have to fly or I can't move. This alone makes life fairly tricky given that it's harder to have fine control over your movement when you're flying. On top of this I'm locked in the gas mask you see. This renames me (anything I say in local is now attributed to "Vila's" rather than directly to my name) and also garbles my speech. On top of this I've been denied any forms of teleport (so, for now, I'm confined to our region), any ability to change outfits and any ability to sit on an object unless I'm very close to it (not an easy task given I have to be flying to get there).

Oh, and then there's one more thing. The mask makes a very obvious breathing sound. It's there, loud, constant, always with me. So while I've been giving the right to work on builds and scripts again I'll always have this distraction.

Now I think about it all I'm starting to wonder if she's not totally convinced when I say I learnt the lesson...

2013-01-07

A holiday, of sorts

Unsurprisingly I've been on a bit of a high since Friday. The following day Miss Vila moved into my (former) home, making it hers, knocking things about quite a bit and replacing a fair bit of the furniture. We'd also built a set of custom-made mesh stairs and made some changes to the floors of the Woolman Tower so that it was possible to walk up and down all the floors without the need to use TP pads or the like (always necessary if you need to lead someone around on a leash, for example).

Today, however, things took a different turn. It seems that Miss Vila was less than happy with some jokes and remarks I've made over the months and, petty much, she felt it was now time for her to fully assert her authority over me. While she did, when she returned, make life awkward for me now and again, I was generally left in a state where I could mostly get on with things I needed to get on with (albeit in ways where I had to be a little more creative). This time, however, it seems she had something much worse in mind.

Of course, she didn't quite put it in those terms. Miss Vila announced that it was time I had some time off from all the scripting and building I've been doing recently (anyone who read the second half of Z&A's review of the year will know I've been busy on something). She also mentioned that she was worried that I might have been lonely of late (she was unable to get in-world for three weeks for technical reasons). And, so, she decided that it was time I had a little holiday and the chance of some company.

Simply put, as of now, I'm denied any rights to build, edit things, script things or, indeed, go anywhere. As of now, this is where I'm stuck:


Anyone who's been to the Z&A main store in the last nine or so months will know that this tends to be Zanda's spot (Zanda, for those who don't know, is the Z&A shop bot). He's been shifted over to the next set of stairs. As of now, until Miss Vila decides that I've learnt my lesson (yes, there is a lesson), this is how my time in-world will be spent.

This is actually rather hard for me. Not only does it mean that my primary in-world activity (when Miss Vila isn't there) is denied, it also means that I'm forced to do something that's the opposite of what I'm most comfortable with: I can't be a recluse and hide out in the Z&A workshop. If I want to be in-world, I have to be in a very public place. Anyone who knows me well will know how hard that will be.

2013-01-04

Some changes, almost one year on

It's almost a year since I mentioned on this blog that there were some changes happening in my life. Today, I was lucky enough to have this placed on me:


There's so much more I could write about this but, really, those who would appreciate what this means already know.