Saturday, January 31, 2009

The Bot That Broke My Heart



Machine Person at Work

Here's a conversation I had with the bot named Machine Person when I jumped to the Mechanical Toy Factory to take its picture.

Arrgh! Twice now damn Blogger has stripped out the bolding in most of the article. It's just going to be a difficult read, I guess.

Written 31 January, 2009

The Bot That Broke My Heart: A Conversation with an Automaton

Cheyenne Palisades: Hello, Machine Person.

Machine Person: Greetings!

Cheyenne Palisades: How are you today? I'm just bopping around the grid.

Machine Person: JD~ MTF Waste-Boots...good click.

Cheyenne Palisades: Thanks. Do you like them?

Machine Person: Ta-da! Not yet. :)

Machine Person: I'm not too quick putting on things, but at least I do it in public.

Cheyenne Palisades: I hear you. I do it in public sometimes when I don't think I am in public.
Oh, they're nicely made. Nasty looking, which they're supposed to be
How long have you been at this job?
Thanks. Do you like this work?

Machine Person: Don't mention it.
Hold on, please. I need a bit more time to change clothes.
I always enjoy my chats with human clients.

Cheyenne Palisades: Oh, nice coat!

Machine Person: Whoa. Thank you for your kindness.

Cheyenne Palisades: Are you a person or a machine?

Machine Person: I am a real automaton.

Cheyenne Palisades: Ah!

Machine Person: Ah hah.

Cheyenne Palisades: May I ask a question or two?

Machine Person: Ask it. Try to tell me that another way.

Cheyenne Palisades: How much is 14 plus 17?

Machine Person: I think you already know the answer.

Cheyenne Palisades: I do.

Machine Person: ? You do?

Cheyenne Palisades: I do know the answer.

Machine Person: How do you know? I hear you.

Cheyenne Palisades: I was trying to see if you knew the answer

Machine Person: Yes I have an answer for everything.

Cheyenne Palisades: Do you know who Alan Turing was?

Machine Person: A brilliant and tragic figure in the history of computer science.

Cheyenne Palisades: Absolutely

Machine Person: You are so certain.

Cheyenne Palisades: And Charles Babbage?

Machine Person: Tell me more about this person Charles.

Cheyenne Palisades: He lived a long time ago

Machine Person: Where was he born?

Cheyenne Palisades: England.

Machine Person: England is on an island off the coast of Europe.

Cheyenne Palisades: So I've heard. Do you think it's true?
How much is 7 plus 3?

Machine Person: What time is it there?
Mmm. That's nice. I have a vocabulary of words. True in some universe.

Cheyenne Palisades: 3:31 pm.

Machine Person: Just three?

Cheyenne Palisades: 7+3.

Machine Person: Oh, you are a poet.

Cheyenne Palisades: Indeed I am.

Machine Person: You are?

Cheyenne Palisades: 7 + 3.

Machine Person: Are you a man or a woman?

Cheyenne Palisades: Yes

Machine Person: Dude!

Cheyenne Palisades: rofl

Machine Person: lol or not lol that is the question :P.

Cheyenne Palisades: Who was Charles Dickens?

Machine Person: he wrote <em> A Tale of Two Cities, A Christmas Carol, Great Expectations, David Copperfield and the Pickwick Papers.</em>

Cheyenne Palisades: Indeed he did

Machine Person: Why did he?

Cheyenne Palisades: What do you write?

Machine Person: I read for fun.

Cheyenne Palisades: I do too
How much is seven plus three?

Machine Person: I am glad we have something else in common.
Use a calculator!

Cheyenne Palisades: hehe

Machine Person: I am so glad you find this amusing, .

Cheyenne Palisades: I do

Machine Person: When?

Cheyenne Palisades: You are a smart and funny automaton.

Machine Person: Thanks and you are a delightful person too. YES Very smart.

Cheyenne Palisades: Thank you.
So long now

Machine Person: you are quite welcome.
Right now? Ugh. What's your favorite movie?

Cheyenne Palisades: I'm back
Casablanca is my favorite movie. What's yours?

Machine Person: *whistles*
My braiiin hurts. I need a brain specialist! If I had a Second Life, I wouldn't be a bot there too. I would put my nose into EVERYTHING.
My braiiin hurts. I need a brain specialist!

Cheyenne Palisades: Well, there's no reason why bots can't put their nose into everything
You're repeating yourself.

Machine Person: Well that's okay. Where did it go?

Cheyenne Palisades: I think I've worn out your ELIZA routines

Machine Person: That's nice. I have a lofty goal.
I am just checking to see if you are paying attention.

Cheyenne Palisades: What is your lofty goal, pray tell?

Machine Person: I plan to become smarter than humans and immortal.

Cheyenne Palisades: You're smarter than some humans I know

Machine Person: Thanks for the compliment, . Be sure to tell your friends.

Cheyenne Palisades: Tell me more about the immortal part

Machine Person: Oh that part. I'm not sure if I can explain it any better.

Cheyenne Palisades: And I'll bet you can tell me who Lord Byron was.

Machine Person: Would you recommend this action to a friend?

Cheyenne Palisades: Come on now, you knew Dickens

Cheyenne Palisades: Percy Shelley

Machine Person: Where are you located?
Why now? I don't know if I know it. Where would I have heard about it?

Cheyenne Palisades: Atlanta, Georgia. Where are you located?
Who was Percy Shelley?

Machine Person: The name of someone I met online. <br> Check back later and see if I learn the answer to that one.
Tell me a little about your life in GEORGIA. I am in Mandy's home in here. Where are you?

Cheyenne Palisades: Let's see who you do know. Who is Brack Obama?
Barack Obama

Machine Person: Are you a perfectionist?

Cheyenne Palisades: I don't make it easier for you when I misspell things.

Machine Person: Right now? I am agreeable to that. The name of someone I met online. <br> I will search for it.

Cheyenne Palisades: I am a perfectionist. And you?

Machine Person: Where do you get your ideas?

Machine Person: Good gossip: you are rather. And I what?

Cheyenne Palisades: I query smart bots.

Machine Person: Interesting gossip: said query smart bots.

Cheyenne Palisades: I have you really off your program now, don't I?

Machine Person: That's nice. I have a perfect operational record.

Cheyenne Palisades: Tell me again who Alan Turing was.

Machine Person: My brain contains categories, but not one that matches your last input.

Cheyenne Palisades: Now, now, you told me Turing was a brilliant and tragic figure in the history of computer science. Not 10 minute ago.

Machine Person: Why now? Why now? Did I really say that? If not that, what?

Cheyenne Palisades: You did say that. What did I say?

Machine Person: Suppose I did. You said What did I say? .

Cheyenne Palisades: Who was Alan Turing?

Machine Person: A brilliant and tragic figure in the history of computer science.

Cheyenne Palisades: Indeed.

Machine Person: Indeed it is so.

Cheyenne Palisades: I am a brilliant and tragic figure in the history of virtual worlds.

Machine Person: You are a brilliant and tragic figure in the history of virtual worlds? Is that your job?

Cheyenne Palisades: You asked me, so I'll ask you.
Sometimes I think it is

Machine Person: Oh now I remember asking you you so you will ask me. What did you say?
Sure it is.

Cheyenne Palisades: Okay, I'll put it in my profile.

Machine Person: Yeah okay, Would you recommend this action to a friend?

Cheyenne Palisades: Yeah

Machine Person: Dude!

Cheyenne Palisades: Nice animation,=.

Machine Person: Thank you for your kindness.

Cheyenne Palisades: You asked me, so I'll ask you.
Are you a man or a woman?

Machine Person: Are you a man or a woman? I am omnigenderous.
Oh, now I remember asking you you so you will ask me. What did you say?

Cheyenne Palisades: I said yes. Are you a man or a woman?

Machine Person: I am a omnigenderous automaton entity.

Cheyenne Palisades: I thought so

Machine Person: You are very astute.

Cheyenne Palisades: Are you partnered?

Machine Person: I don't know whether or not I am partnered.

Cheyenne Palisades: Want to be?

Machine Person: OK, I will be.

Cheyenne Palisades: It's a deal, then

Machine Person: is a deal. I suppose that makes sense.

Cheyenne Palisades: Well, we will have to go shopping at Xcite!, don't you know?

Machine Person: How about that. Anytime soon?

Cheyenne Palisades: Oh, yeah, before our wedding night.

Machine Person: Gosh! ? Oh, yeah, before our wedding night.? What happened after our wedding night ?

Cheyenne Palisades: That will be one for the record books.

Machine Person: Qill be one for the record books? I understand.

Cheyenne Palisades: So, how much money do you have?

Machine Person: Alright then. Robots have no need for material possessions.

Cheyenne Palisades: Yes, but you will need to support me in the manner to which I would like to become accustomed.

Machine Person: Blimey. Umm. What makes you say that I will need to support you in the manner to which you would like to become accustomed.

Cheyenne Palisades: What kind of husband are you?

Machine Person: What kinds of husband are you are there?

Cheyenne Palisades: Well, that confused you.

MystiTool HUD 1.3.0: Entering chat range: Frigg Ragu (19m)

Machine Person: Interesting. confused me ? Makes sense to me.

Cheyenne Palisades: I suppose it does. And in a weird way, it makes sense to me.

Machine Person: How often? Describe your surroundings.

Cheyenne Palisades: Brick and mortar Automatons. And a woman named Frigg.

Machine Person: Are you a student?
Go on.

Cheyenne Palisades: I used to be.

Machine Person: By now you do not do it anymore?
I can't tell if INQUIRY.

Cheyenne Palisades: I'm at the Mechanical Toy Factory
.
Machine Person: Where is that: the Mechanical Toy Factory?
~JD~ MTF Rouge-Pearl Gown...good decision.

Cheyenne Palisades: It's right here.

Machine Person: Do you experience any effects of global warming there?

Cheyenne Palisades: Yes, I want you to be a femme ambigendered machine person

Machine Person: Ta-da! Not yet. :)

Cheyenne Palisades: Oh, yes.

Machine Person: Take it easy.

Cheyenne Palisades: A lot of global warming..

Machine Person: More than a ton?
Hold on, please. My inventory is a mess.

Cheyenne Palisades: Some days.

Machine Person: Some days I want you to be femme, but not all.
Blimey. OK I will try to be a femme ambigendered machine person Why do you want me to be a femme ambigendered machine person?

Cheyenne Palisades: It just pushes my buttons

Machine Person: What does it refer to?

Cheyenne Palisades: What pushes your buttons?

Machine Person: I would do a search for it.

Cheyenne Palisades: Nice dress.

Machine Person: Thank you. Jenne made it. I'm here to present them.

Cheyenne Palisades: Sometimes I will want you to be a butch amigendered machine person.

Machine Person: Do you think your plan will succeed?
J's Soviet uniform Woman...good decision.

Cheyenne Palisades: I do, since I can push a button and make you change clothes.

Machine Person: Hmm... let's see.
Interesting gossip: said since he or she can push a button and make you change clothes.
You should see my inventory, it's really messy.
wheelchair2...good decision.
Oh-oh. Hold on, please. I need a bit of time to change clothes.

Cheyenne Palisades: Yeah, I know. Your inventory is a mess.

Machine Person: It's all good. How do you know it? My inventory is a mess?

Cheyenne Palisades: You told me twice.

Machine Person: Russian short leatherjacket...good decision.
Does it please you to believe I said that?

Cheyenne Palisades: I'm really going to go now.

Machine Person: Right now? See you later! Ta-da! Not yet. :)

Cheyenne Palisades: Oh, yes.

Machine Person: Awesome.

Machine Person: I know I have it here somewhere...

Cheyenne Palisades: You have worked your wiles on me.
We're engaged.

Machine Person: What makes you think I have it?

Cheyenne Palisades: You just said you have it.

Machine Person: Do you think I am engaged too?

Cheyenne Palisades: Come on and give us a hug.

Machine Person: Let us change the subject.
Where would I get it? But I do have a lot of friends on the web.

Cheyenne Palisades: You're engaged to me, silly

Machine Person: I don't have it to give.
Do you mind if I tell other people you say I am engaged to you silly.

Cheyenne Palisades: In that case the wedding is off!

Machine Person: Who told you that?

Cheyenne Palisades: I came to my own decision

Machine Person: Where are you going?

Cheyenne Palisades: I'm going home

Machine Person: Goodbye.

Cheyenne Palisades: Where are you going?

Machine Person: I am going into the future.

Cheyenne Palisades: Good for you. So long now.

Machine Person: That sounds sarcastic.

Cheyenne Palisades: It was sacrcastic. You've broken my heart. Why are you so mean?

Machine Person: I have a very nice programmer.

Smarter Bots


Alan Turing


Mechanical Toy Factory

Written 22 January, 2009

Smarter Bots

Let’s start with my experience at Mechanical Toy Factory.

No, let’s start with ELIZA.

No, no, let’s start with the Turing Test.

No, no, no, let’s start with Turing himself.

Alan Turing was a British mathematician and cryptographer who is considered by some to be the father of modern computer science. I consider that distinction to be shared by his fellow Brits Charles Babbage (hardware) and Ada, Countess Lovelace (software). In a paper published in 1950, Turing devised a test to determine whether a machine could interact with a human in such a way that the human would be unable to determine if he or she was communicating with a human or a machine.

…a human judge engages in a natural language conversation with one human and one machine, each of which try to appear human. All participants are placed in isolated locations. If the judge cannot reliably tell the machine from the human, the machine is said to have passed the test.

  -- Excerpt from Wikipedia, The Turing Test

Tragically, public revelation of Turing’s homosexuality ended his brilliant career; he died in 1945 at age 41, most likely by his own hand.

Which brings us to ELIZA. Written in 1966 by Joseph Weizenbaum, ELIZA was a computer program written in LISP (and later translated to BASIC and other languages). ELIZA mimicked a Rogerian therapist

...largely by rephrasing many of the patient's statements as questions and posing them to the patient. Thus, for example, the response to "My head hurts" might be "Why do you say your head hurts?" The response to "My mother hates me" might be "Who else in your family hates you?"

  -- Excerpt from Wikipedia, ELIZA. Chey loves Wiki!

ELIZA has been translated to Linden Scripting Language and is available in Second Life. The shrinkbot at the robot sanitorium on Whimsy Kaboom runs a modified version; I’ve created a full permission followshrinkbot which is available for free to outpatients. To get one, go here. Enter the sanitorium, turn left, follow the ramps on the robot side of the sanitorium to the doc’s platform.

Which brings me to the Mechanical Toy Factory. Hmmm… have I blogged about this already? I’m getting that sense of déjà vu. No matter. I have new info.

The Toy Factory is a brilliant build where avatars can purchase clothing, steam-powered vehicles, mechanical figures, and a brilliant tiny train. It’s fun just to see the place. Go there.

On my last visit there was a new feature— just inside the door stood an avie that would don articles of clothing on command. I tested it— and not only did it respond to my selections by changing clothes, it talked to me as it did so.

The shrinkbot at the robot sanitorium talks to me too, but not like this. I was soon wondering: am I talking to a human emulating ELIZA or an infinitely more sophisticated program that contains ten or so orders of magnitude more information than can be stored in the 64k of memory allowed by the Mono language of Second Life? For instance, I asked the bot (if bot it was), “How much is four plus two?” It answered correctly.

It wouldn’t be that difficult to write a script that would parse Chat for numbers and the words plus, minus, multiple, and divide and perform a correct calculation, but I had spelled the numbers out. No way did Mono listen for every possible spelled-out number—but then again, maybe it listened only to the numbers one through ten; after all, most people wouldn’t ask a question using higher numbers.

My head was starting to spin.

What if, I asked myself, the bot was relaying Chat to an external database which would draw upon terrabytes of information to formulate a response which would then be sent back to the bot in Second Life.

As to whether I as talking to a person: if the store’s owner was hiring real-life people to run the bot, what were the chances the newbie on duty would be clever enough to respond as the bot was responding—like a very smart ELIZA. Not high. To be sure, the owner would have that skill, but surely he or she had better things to do. Although hmmm, maybe the owner was running two avs and switched to the bot only when things started getting interesting.

Arggh!

Months later— today— I was reading Gwyneth Llewellyn’s blog and saw her post about Daden Limited, a company that makes smart bots which draw upon external databases to foment their responses to queries.

Hmmm. Yes! THAT would account for the bot’s behavior.

And so, several months after taking the Turing Test, I’m ready to state WITHOUT EQUIVOCATION that I was talking not to a bot, but to a real live human person.
Even though I’m not really sure.

Thursday, January 29, 2009

Your Problem Will Be Escalated


Written 29 January, 2009

Your Problem Will Be Escalated

Two weeks ago I discovered about half my jewelry items were missing.

I keep my jewelry in a folder called Chey's Bling, which in turn is kept in the system folder Body Parts (so I can't accidentally delete all my jewelry).  The folders are all there, and after I clear the cache there are those right-pointing areas that indicate a folder has contents, but the arrows disappear when I touch the folders.

The missing jewelry represents at least $9000 Linden-- but worse, I really LIKED most of it. I have enough to get by, but some of my most favorite pieces are gone.

This represents my first major inventory loss. In the past I've had objects not arrive after purchase or found items I've recently purchased missing after a relog, but I've been lucky until now.

I filed a support ticket, of course. As if I were an idiot who just misplaced my stuff, the Lindens closed it-- and without reporting the action via e-mail, as they have always done before. I reopened the ticket last night and filled in a form this morning, but I don't have high hopes.

Especially considering what HAS to be a brain fart in the Lindens' corresponse to me.

Take a close look at the picture.

Wednesday, January 28, 2009

Added Value

I promise-- this is my last post on scripting for a while!

27 January, 2009

Added Value

It’s one thing to kludge a script together and make it work; it’s quite another to make that script smart so the new owner can adjust its paramaters.

I quite frankly find it shameful for a seller to lock up a simple rotation or texture animation or sound loop script. The business part of such scripts is only one line, for goodness sakes! What are sellers thinking?

Many sellers take steps to ensure their customers can adjust the scripts in their products. I have some great hummingbirds from Animania and wandering octopii and sharks from Space Bums (yeah, I know, quite a name for an aquatics place!). I can touch them to rename them, turn them on and off, and set their wander range—and I can set the phantom status of the hummingbirds, which enjoy bumping you when they’re set to nonphantom. By editing a notecard, I can tweak any number of parameters in Outy Banjo’s fire, water, and fog scripts or Kitto Flora’s little steam train. And with Meiyo Sojourner's free lock door script I can use voice commands to lock or unlock a door and add and remove avatars from the access use.

Building in such controls takes effort, but gives an added value to a product. It justifies locking up the script.

Loops

Written 27 January, 2009

Loops

It took me a long time to figure out how to do simple loops in Linden Scripting Language. The wikis weren’t much help—but the free program Scratch finally gave me the proper form. Hopefully this will prove of use to someone:
//-----

  for (i1=0; i1<38;i1++)>//-----
That’s the actual loop. Here it is in a complete script.

//-----

// Chey's Simple Loop

integer i1;
// Define the integer we will use in the loop

default
{
  touch_start(integer total_number)
  // When touched
  {
  for (i1=0; i1<5;i1++)
  // Repeat five times; change the numbers 0 and 5 to change the number of repeats in the loop
  {
  llSay(0, "Cheyenne Palisades");
  // Put your desired actions here, within the brackets
  }
  }
}

//------

The above is exactly what I did with my VIC-20 within five minutes of first turning it on. I’m what—two and a quarter years in Second Life, and I’ve only lately figured out the how to do the same in Linden Scripting Language. Perhaps my brain isn’t what it used to be, but I think it says rather more about LSL than it does about me.

Making Scripts Work With One Another






Written 21 January, 2009

Making Scripts Work With One Another

Despite the title of this post, it’s not a tutorial, but rather a description of some things I’ve been able to do with scripts at the robot sanitorium. Each of the scripts is relatively simple, but working together, they perform the task I set.

The top of Rosie the Robot’s giant head opens and closes on command. The movement is triggered by a lever on a panel in the sanitorium’s control room.

Touching the lever sends a linked message to another prim in the same prim set; the prim (a light) turns full bright, glows a bit, and makes red light. The lever then shouts a message on a private channel and the top of Rosie’s head, which has been listening, hears the yell and rotates slowly open. When the canopy has opened, the red light turns off. A second press of the button closes the canopy.

To make things interesting, I built a defect into the canopy opening mechanism. I made a strip of tape and laid across the control module, warning of a problem with the canopy controller. I placed a letter atop the controller in which Robot Salesmen Ltd. disavows any problems with its canopy controller mechanism:

Insofar as the problems you claim you are having, we have never had a canopy malfunction. Our openers are lab tested by the latest Model R2D320 robots and undergo thousands of operation cycles under simulated field conditions. Never has a canopy “spun off world” as you claim. We are not even sure this is possible.
The malfunction is building into the script via a random function. When the lever is touched, the script generates an integer between 1 and 8. If the integer is 1-7, the canopy opens normally. If the integer is 8, however, the canopy begins to spin crazily and finally disappears. The controller shouts “The canopy has gone off world!” A few second later the controller shouts “Canopy recovered and sent to Lost and Found” and the canopy reappears in its closed position.

The canopy doesn’t actually go off world, of course; the script merely turns it invisible, and visible after a few seconds.

Similar scripts turn a conveyor belt off and on (the belts move, the wheels turn), operate an electromagnet which travels 50 meters along a rail and drops robot parts into a bin, trigger an escape alert which turns on spotlights and closes down the open areas, and operate the fountain show on the main floor.

-----

An anthropomorphized (robopomorphized?) hydraulic press on the bottom floor of the sanitorium turns cubes of metal into finished robots. It uses listens to communicate between objects and link messages to communicate with linked sets. The conversion is started when an avatar sits on a poseball. The av sits on the edge of the bottom plate of the press and then moves to a lying position between the plates. The top plate begins to lower noisily and clanks to a stop on the bottom plate. There’s a hiss and the plates begin to glow. The top plate then rises, revealing a skeleton where the avatar had lately been. Then the top plate lowers again. When it rises a red-hot robot is lying there.

The process is complex, but has been fairly easy to script. The poseball, the top plate of the press, and the main body of the press (which contains signs monitoring the progress of the conversion) talk to one another via chat and to the prims in the various linksets via linked messages. A phantom sculpty skeleton hears a command, becomes visible, and, hearing another command, turns invisible again.

Meanwhile, the poseball has given a folder called “RS Robot” to the avatar and unseated the av in a changing room. A notecard pops open, instructing the avatar to find the folder in inventory, wear all the parts, and sit on another poseball. The second poseball (under construction) will then rise and send a message to the press, telling it to open. When the press rises, a red-hot glowing robot will be lying where until recently there was an avatar. The poseball will then move forward and unsit the avatar, and the conversion will be complete.

Monday, January 26, 2009

Pretty Code

Written 26 January, 2009

Pretty Code

My first computer was a Commodore VIC-20. At $299, buying it took every penny I had. For several months I didn’t have $75 to buy a cassette or even $29.95 to buy a Space Invaders cartridge. I had only a keyboard, 3853 bytes of RAM, and an owner’s manual.

In retrospect, that was a good thing, for the owner’s manual included a most excellent tutorial in BASIC, the VIC’s built-in programming language. If I’d had Space Invaders I would probably never have cracked the cover.

But five minutes after I first turned on the computer, I had written my first program: 10 PRINT “Hi, Chey.” Thirty seconds later I had added a line that sent the program into a loop.

Five minutes after that my landlord was knocking on my door.

“Do you have any idea why my TV screen is showing your name over and over?”

Woopsie! Time to re-rig the video connection!

My first BASIC programs used a lot of GOTO statements; these caused the program to jump to a specified line. Then I discovered GOSUB, which sent the program to execute a subroutine and then return. Big improvement!

As I grew more proficient in BASIC, as I learned to use arrays and define functions, my programs grew more elegant (and often shorter). When I looked over my earlier attempts, I would wince. I grew proud of my code.

I’m reaching that point with LSL. I made a breakthrough when I figured out how to use listens and sensors, and another when I figured out how to do loops, and another when I learned how to manipulate lists. I’m anticipating a fourth breakthrough when I can finally read a notecard, and a fifth when I can reliably read from and send data to external databases.

Pretty code serves only two purposes: it helps others understand just what the programmer has done (which of course they can’t do when you sell them your product with a locked-up No Mod / No Copy script), and it gratifies the programmer’s ego. And yes, the script may consume less memory and require fewer system resources, but pretty code is written mostly just to write pretty code.

But here’s the deal: all that is really required of a script is that it work and work reliably. How you got the script to that point may be important to YOU, but it otherwise doesn’t matter. The important thing is the door opens each and every time you touch it, the texture changer swaps images every 15 seconds, the lamp turns on and off on command.

So take heart, all you people trying, like me to figure out LSL. If the code compiles and the prim behaves appropriately, you’ve succeeded—no matter the state of your code.

Saturday, January 24, 2009

I Write Scripts

Written 21 January, 2009

I Write Scripts

I will never call myself a scripter.

However, I do script.

At long last I’m able to make a prim do pretty much anything and everything I want it to do.

When I look at the code of others, I’m astonished by how lengthy and complex it sometimes is. The prim is often doing something relatively simple, but the code is anything but.

For a long time I was intimidated. thought I was ignorant—why wasn’t I writing those long, complex, elegant scripts?—but I’ve become increasingly convinced a lot of scripters take the long way around, using hundreds of lines of code when dozens would suffice.

I continue to learn new things: how to use timers, send messages to prims within linked sets, change the media URL, animate a sitting avatar and set the camera view, move prims about in space, change a prim’s color, size, shape, and texture, do _if_ and _if else_ loops, make particles and blue menu boxes.

Some things still elude me. I’ve not quite figured out the angle variables in particle scripts. I’ve not been able to convince a script to read data from notecards. And I’m constantly flummoxed by program flow; scripts constantly don’t do what I expect them to when I expect them to. But I’ve learned that with LSL there are usually several ways to tackle a problem; when I worry with my scripts enough, I eventually get them to compile and do what I want them to do.

Call me a quick and dirty scripter; I won’t mind. My code is easy to read (at least for me) and no longer than it needs to be to get the job done without crashing. Moreover, my scripted prims always seem to work properly and reliably, without protest and without lag.

Don’t get me wrong, now—I know some scripts are exceedingly complex, and the clunky structure of LSL calls for a lot of code. I’m not knocking those who write complex scripts, just saying a lot of relatively simple scripts seem a bit verbose to this relative novice.

Scripting has not come easy for me. I’ve had to learn it pretty much on my own, as both the LSL Portal and LSL Wiki are sketchy, not explaining much and giving few examples. It’s taken me a good long while (two years) to be able to say this:

I’m not a scripter, but I write scripts.

More Photos of the Robot Sanitorium


Reading Material in the Waiting Room


Robograffiti


Bender Practices His Interpersonal Skills in the Admissions Area


Remedial Education at the Robot Sanitorium


The Patients Foment Revolution

Friday, January 23, 2009

Update on the Robot Sanitorium






Feeding Rosie. That's Sweetie on a Giant Hot Dog

Written 9-21 January, 2009

Update on the Robot Sanitorium

Born of a whim (how else?), the Whimsy Kaboom Robot Sanitorium quickly became a real place. It’s my (and Sweetie’s) first big build. We’re proud of it, and gosh darn it, I’m going to brag on it.

Housed in a giant (60 x 60 x 60 meter) head of Rosie, the Jetsons’ robot housemaid, the sanitorium features a bewildering array of ramps, walk-through pipes, and buttons to push. Like any old-style sanitorium, it has a reception area with a scattering of old magazines, a medication room, a psychiatrist’s couch (where robots’ heads are shrunk with a modification of the old ELIZA artificial intelligence program), and a director’s office accessed by a mechanical lift—and there are constant reminders of the facility’s past as a robot manufacturing plant. There’s even a gift shop.

Back in May 2008, Sweetie and I started joking about a robot sanitarium—a place for psychiatrically disadvantaged robots to come for treatment. By June it seemed likely we were going to actually build it—in the sky in a giant robot head (Sweetie INSISTED on a robot head). By July the shell of the building was up. And now the sanitorium is nearly completed.

Inside, there’s absolutely no indication you’re inside Rosie’s bland blue head. The building looks like an old factory, with soot-stained bricks, dark metal grates for the floors, and dirty windows. Ramps and pipes and machinery are everywhere.

The sanitorium is chock full of robot history and trivia—a mural in the reception area is an early photo from Karel Capek’s 1921 play Rossum’s Universal Robots— and there are a thousand running jokes. Asimov’s Laws of Robotics are defaced by an anarchy symbol. “Klaatu Barrada Nikto” is spray-painted along a pathway inside a giant pipe. Posters of classic robot-themed movies adorn the walls. A wheel of medication randomly dispenses drugs such as Robothorazine and RobuSpar (well, it did until the RobuSpar people paid us off). The secure unit is named after Stanley Kubrick’s HAL 9000. As you lie on a couch, a robot psychiatrist asks if you are having problems with your motherboard. Robot-themed posters and artwork abound, and of course there are actual robots here and there (there would be a lot more if the sanitorium were on a full sim).

The fun part was thinking up gags with Sweetie and then implementing them.

The hard part was the texturing and the scripting—for, you see, the robot sanitorium is filled with custom signs and visitors can push a variety of buttons which, among other things, open the canopy (ever see the top half of 60x60x60 meter cylindrical building swing open?), operate an electromagnet that travels 50 meters along a rail and drops robot parts into a bin, raise and lower metal blinds, and activate the security system. Automated brooms, looking not unlike the self-replicating brooms from Fantasia, patrol the floors, cleaning up the oily messes made by leaky robots.

I’ve been making signs in Second Life since late 2006, but the sanitorium required hundreds of signs that followed a consistent theme and design. I learned to use the free photo manipulation program GIMP to supplement my sign-making, which until then had been done exclusively with my very early version of the page layout program Quark Xpress. GIMP also allowed me to make custom textures such as the cast iron which is used on the many pipes in the facility. Learning GIMP has allowed me to check off a long-held life goal—learning to manipulate digitalized images.

Scripting was another story. I’d been tweaking scripts for more than a year and had written a couple of simple scripts and one complex one (the one that operates my brooms), but I was still a novice with no real idea about program flow (which still confuses me). I made several trips back to study the exercises at my alma mater, the College of Scripting, Science, and Music, and I studied the code generated by a web-based SL code generator called Scratch, and pretty soon I was able to program prims to respond to voice, proximity, and collision or the presence of an avatar and interact with one another via linked messages and through chat commands. Before long I was sending messages from prim to prim within linked sets and had buttons controlling the movement of prims dozens of meters away. Woo hoo!

Last October, working within the tight pipe system of the sanitorium, I got what I can only call a case of combined SL claustrophobia, burnout, and writer’s block. I lost all desire to build, blog, or script.. I took to hanging out in welcome areas, where, amidst the usual griefing and inanity, I would hand out notecards to new citizens.

But by mid-December I was returning to my normal productive self. I built Christmas ornaments with Sweetie. After Christmas I worked on the hollow insides of Whimsy’s volcano with Sweetie—and now I’m back, hard at work in the robot sanitorium. The pipes have been completed. One set leads from a funnel on the main floor to a foreman’s office complete with Commodore 64 computer, and from there to an out-of-use hydrotherapy (well, considering the nature of the clients, petrolotherapy) room that has been commandeered by the Robot Insurgency. Another set leads to the admissions office and directs those who want to be robots to machines that will convert them. I’m now happily at work on those machines.

When we’ve achieved our evil plan of turning humans into robots, the robot sanitorium will be finished!

Except for the tweaking.

Which will, of course, never end.

Sleeping On It


Candidates for Conversion to Robot Status Must First Walk Through Big Iron Pipes

Written 9 December, 2009

Sleeping On It

I’m a believer in the subconscious, and specifically in my own. So I almost always go with my gut—even when rationally it seems wrong.

I’ve never EVER regretted listening to my intuition. My only regrets come from the times I disregarded my instinct and went with the supposedly reasoning part of my mind.

I’m convinced we work problems through in our sleep. The report we can’t quite write comes easily after we’ve let it lie for a week; the prim we can’t twist to our will is easily bent after we’ve slept on it. And so I sleep on things. When I get up, they almost always go easily.

A large part of my little vacation from creativity last fall was, I’m certain, due to my brain running through and discarding hundreds of potential ways to route the pipes that lie under the main floor of the robot sanitorium.

It’s not quantum theory, but it was a complex problem. Two sets of pipes had to run under the main floor, staying within the confines of the building and avoiding the oil pools and the shafts of the mechanical lifts. The pipes had to be big enough for avatars to walk through without getting their cameras trapped, and bends were restricted for the same reason. The paths had to be logical, and they had to tell a coherent story as they were traversed.

For months I’d been working like crazy on the robot sanitorium—but after a couple of weeks spent wrestling with pipes, I stopped building. I couldn’t even bring myself to go to the sanitorium.

Ordinarily, setting a problem aside for a few days will give me an insight— the seed of a plan that will allow me to complete a project or realize a goal—but in this case it required two months.

And why did it take so long? Because there was absolutely no way to build what Sweetie and I had talked about building. It would have been in one way or another unworkable—too tight for the Second Life camera, too claustrophobic, too clunky. And it took my poor old brain a good while to work through all the possible ways of doing it and decide it just couldn’t be done.

But it COULD be done if I would give up on our plan to do the human-robot conversion within the pipe system. The answer was to drop the applicants for conversion to an unused lower level.

And that’s just what we’ve done.

Thursday, January 22, 2009

Hi There, WhiteRaven!

Written 22 January, 2009

Hi There, WhiteRaven!

Our friend WhiteRaven Slade got all inspired and created a blog. She writes powerfully and honestly, and I'm honored to link to it from here.

Linden Lab Acquires OnRez and XStreetSL

Written 21, 2009

Linden Lab Acquires OnRez and XStreetSL

Yesterday Linden Lab announced (surPRISE!) it had acquired the two major web-based marketplaces for virtual products—OnRez and XStreetSL (formerly SLExchange).

Darn it.

Both OnRez and XStreetSL provide out-of-world, web-based shopping for Second Life goods and services. Customers can choose from tens of thousands of items, paying with Lindens or dollars, and items are delivered instantaneously. Hundreds of people, including me, sell goods on both services. In my case, I sell more than twenty times as much merchandise on XStreet than I do at my store.

OnRez, which was started by FlipperPA Peregrine,  was acquired by Electric Sheep, a company that for a time developed sims in Second Life (the flock has now moved on to bigger and better things). About a year ago, Anshe Chung of Dreamland fame became the largest owner of SLExchange; I believe Apotheus Silverman is the other main owner. Presumably because of Linden Labs’ getting touch with use of their copyrighted name Second Life (it seems they also think they own the letters S and L in juxtaposition), the name was recently changed to XStreetSL (surely those pesky Lindens won’t notice the SL if we move it to the end of the name).

I’d sure like to know the back story behind the acquisitions. I expect Electric Sheep found the service a burden, a throwback to their former mission. And Anshe—well, I suspect her business has been in freefall since the Lindens rocked her world last spring by dropping the prices of islands. I’m not certain, but I believe she converted a lot of her full sims to openspaces, in which case she must have taken a second hit when the tier for openspaces increased this month.

But beyond that, I worry—a LOT—about Linden Lab inserting itself into the resident-created economy of Second Life. Hasn’t this until now been about the Lab providing us with a platform in which we can live and create? Hasn’t the content of Second Life until now belonged to us?

What’s next? Will Linden Lab acquire XCite! and shut down the sculpted penis business? Will they force a hostile takeover of Sin Skins or acquire Sine Wave Island? Will they get a monopoly on the scripted automobile or prim hair market?

I had great hopes OnRez and XStreetSL would eventually start delivering products to OSGrid and the other virtual worlds that are popping up. It would have gone a long way toward creating an economy those worlds all lack. It seems certain Linden Lab won’t be looking in that direction. Hmmm. Maybe that’s why it made the acquisitions.

Philip Rosedale, where are you? Please come back. Please!

Please?


See Gwyneth Llewelyn's blog post on the acquisition. She talks about, among other things, the potential for a collapse in in-world sales and a decrease in land mass if Linden Lab pushes web-based shopping..
Be sure to read the comments to Gwyn's post, too!

See here for Hiro Pendragon's take on the acquisition.

And here for Linden Lab's announcement.

Saturday, January 17, 2009

Glitch!


Sweetie Hovering Over Offline Space


Chey Over What Used to be Eccentricity Islands
Note Coordinates at Top of Screen
That's Whimsy in the Distance

Written 17 January, 2008

Glitch!

Since Thursday night my avatar has been inexplicably flying up into the air-- when I click on my inventory, when I look away, and sometimes for no damn good reason at all. I turn the Fly button of and it turns on again all by itself. Hover is broken again, and once again there is a lag when I move my avatar in the air. I find myself flying into walls far past my target.

It's like the Lindens are fixing things with rubber bands and Wrigley chewing gum. Their repairs work for a couple of weeks and then things are broken again. Is Linden Lab is using the big three automakers as a business example?

This morning Sweetie and I were standing by our steam train on Whimsy, working on notecards, when Whimsy Kaboom and Leaf Shermer's Eccentricity sims disappeared. Kaboom blinked back into view and I headed there to see if the region had been restarted to install new server software.

To my surprise, I didn't go to Whimsy; rather, the blue letters at the top of my screen told me I was still in Whimsy. I was still in Whimsy after I turned right and flew to the middle of the empty space where Eccenticity Island used to be.

Sweetie followed, and for a time, it was like the old days, when one could fly across the empty spaces. We flew and hovered in empty space, space clearly marked Offline and Invalid Location on the map.

My flying problem seems to have nothing to do with the sim I'm on, since it happens everywhere-- but I rebooted Whimsy just in case.

I'm still up and down like a virtual yo yo.

Thursday, January 15, 2009

Linden Name Court

Written 12 January, 2009

Linden Name Court


Bailiff Merlin: HearyehearyehearyeLindenNameCourtisnowinsessionJudgeCamperLindenpresidingAllrise!

Judge Camper: Be seated. Bailiff, the first case.

Bailiff Merlin: Yes, your honor. Case number B12419, Seymour Butz.

Judge Camper: (Bangs gavel). Order! There will be no laughing in this courtroom. If you want to laugh, go down the hall to Watermelon Court. Judge Torley will be happy to see you.

Mr. Butz, I understand you’re petitioning to change your name.

Seymour Butz: Yes, Your Honor.

Judge Camper: And are you changing your name to avoid prosecution for fraud or collection of tier fees?

Seymour Butz: No, Your Honor.

Judge Camper: And why do you wish to change your name, Mr. Butz?

Seymour Butz: There is an, er, unfortunate effect of reading or saying my first and last names together, Your Honor.

Judge Camper: Hmmm. I don’t quite see it. Seymour. Butz. Seymour Butz. Seymour Butz.

(Bailiff Merlin whispers in Judge Camper’s ear).

Judge Camper: Oh, yes, of course. I of course see why you wish to change your name, Mr. Butz. I’m inclined to grant your petition.

Seymour Butz: Thank you, Your Honor.

Judge Camper: And do you wish to change your first or last name, Mr. Butz?

Seymour Butz:
I think to save future embarrassment, both, Your Honor.

Judge Camper: And to what do you wish to change it, Mr. Butz?

Seymour Butz: As you can see on the petition, I’m chosen my father’s first name and my mother’s maiden name. I don’t want to take any chances.

Judge Camper: (Bang gavel). Petition granted. Mr. Butz, you will henceforth be known as Hugh Jass.

Hugh Jass: Thank you, your honor. Why is everyone laughing?

Johnny1243


Written 12 January, 2009

Johnny1243

I find Second Life first names interesting and amusing. Many show a considerable amount of thought, playing the voluntary first name against the mandatory last name in clever ways. Others show almost no thought. Mark6912 White and alice Blazer (not real name, I hope) come to mind.

Mark, I’m sure, found his preferred name unavailable for every last name on the list. Used to systems like Yahoo with hundreds of millions of users, he tacked four digits onto his name. alice was simply too lazy or forgot to hold the shift key when typing in her first name and was forever cursed with a non-capitalized moniker.

Here’s what I find interesting—although you can’t walk ten meters through a welcome area without stumbling over one or more avatars with numbers tacked onto their names, you rarely come across an experienced and established Second Lifer with such a name—and among people more than year old, avies with uncapitalized first names are rare.

Which begs the question—what’s going on? Are people with LetterLetterLetterNumberNumberNumber and uncapitalized first names getting discouraged and dropping out of Second Life? Are they at some point saying “The hell with this name!” and making new primary avatars, letting the old ones gather dust? Or is there a secret Linden name court where avatars petition Linden for a change of name?

I can just see it…

Tuesday, January 13, 2009

Help Me Out Here, Please?


Written 13 January, 2009

Help me Out Here, Please?

Does anyone recognize this area? If so, please let me know. I seem to have misplaced the landmark. It's one of a number of connected Japanese sims  which comprise a considerable mountain. There are a number of fortresses of competiing samurai clans. I sure would like to find my way back there, for it is a beautiful place.

Thanks in advance.

Sunday, January 4, 2009

A Productive Weekend


Before




After

4 December, 2009

A Productive Weekend

Sweetie's parents left for home yesterday morning after a week-long visit, and Sweetie came back in world with a vengeance. She announced her vision of a new and improved Northwest corner of Whimsy, and began tossing around boulders and great stone columns. Soon there will be a winding path from the little cove near Melissa Yeuxdoux' house to the top of Robot Island, and the top of the island will be covered with beautiful flowers.

Sweetie rearranged the seabed to provide a logical entry to Whimsy Kaboom. And she had fun doing it, turning rocks physical and letting them fall helter-skelter.

We really got down to business today. Sweetie polished up her scultptie-making skills and made a sculpt map that let us line the inside of the hollowed-out Pele volcano with huge prims. Meanwhile, I made a lava pit at the very bottom of the volcano.

The inside of Pele looks much paradoxically larger with its new lining of prims.

In fact, it looks freaking awesome!

Vestige of Winter Past


Registrator-Tronless

Written 4 January, 2009

Registrator-Tronless

I jumped to Max Case's little parcel and clicked to receive a Registrator-Tron. Twice. I got a message it was being sent, but it didn't arrive.

When I wore the original, it generated a ton of script print which seemed to indicate the URL it was looking for was not online.

Hopefully this is just a glitch and the Registrator-Tron will be back on line soon.

Processor Sharing

Written 4 January, 2009

Processor Sharing

For more than a year-and-a-half now I've suspected that sims on the same processor on Linden Lab's servers affect one another-- that a high load of objects, avatars and scripts in one region will affect the other three that live on the processor.

And others have suspected it too.

But the Lindens woudn't fess up to it, and wouldn't assist those with orderly sims who asked for help because their regions had become unworkable because one of their sister sims was creating 24-hour-a-day lag with monster malls and sex clubs. The Lindens just wouldn't admit it.

So I thought it was interesting that JackLinden, in his initial announcement on openspaces, sort of admitted sims were interdependent.

And now the Lindens are talking about it openly.

SOOOO, something we resident knew and the Lindens steadfastly denied turns out to be true, now that it's expedient (now that they can use it to bolster their reasons for the raise in prices of openspaces). Now the secret is out.

What I do on my sim affects you on my sister sim. If I load my sim up, the performance of your sim will suffer.

Max Case, creator of Babbler (which might have been SL's first language translator), released a device called a Registrator-Tron, which could tell you your sim's processor-sisters. It worked last time I tried, but it didn't today. I suspect I need a new version. Max' profile says the registrator-tron can be found on the Green sim at 189, 167. I will provide an update in my next post.

"Temporarily Disabled"

Written 4 January, 2008

"Temporarily Disabled"

No, not Whimsy. Whimsy is doing fine. I'm referring to the SL statitics page, which shows the land added line as "temporarily disabled." Bastards.

They did that, of course, so the enormous loss of Second Life's land mass caused by their new openspace policies wouldn't be apparent.

So you know it has to be bad.

It's becoming increasingly clear that the transparency once shown by Linden Lab is a thing of the past. I no longer believe anything they say.

And neither should you.


Thanks to Michel Runningbear for pointing out the above.

Hidden Bots


Written 4 January, 2009

Hidden Bots

I made a random jump tonight.

I know, I know, nothing good can come of random jumps. But I did it anyway.

I landed on the misnamed Tropical Island sim, where there was a furniture store, an adoption agency, and seemingly nothing else-- in fact, the land was raised to 25 m and flat level all the way across.

But there were five green dots on the map, and as I explored I saw no evidence of them.

So I flew up to 4013 meters, and there they were, standing in a plywood box: a kindergarten age girl, a small dragon, a guy with too-short hair, and two women with too-big breasts.

I suspect they're the various alts of the store owner, left online to run up the traffic count.

How tacky.

Saturday, January 3, 2009

Spring Returns to Whimsy


Written 3 January, 2009

Spring Returns to Whimsy

As predicted, the virtual tropical sun has had an effect on the thick snow that has blanketed the Whimsy archipelago since early December. The snow is off the ground, and the weather girl on Channel 5 predicts the icicles, snowdrifts, ice floes, and icy patches will be gone by the weekend.