Archive for March, 2006

Spitting Coffee

Friday, March 31st, 2006

So there I was the other day.  A new employee was having some difficulty connecting to a database.  I confirmed the problem with another coworker and was about to make sure that everything on my end was setup properly.  Before I got a chance to leave, a couple more people join us in his cube to make a total of 5.

While one of them was speaking, other other spit out his coffee all over me.  He was very apologetic.  The managers assistant took the new guy somewhere for paperwork wile the other two cleaned up the desk and I went and dried myself off.

So later at lunch I got a fortune cookie that said I would avoid a bad situation of some kind. At the staff meeting later in the day I sat next to the spitter.  People were jokingly surprised and I handed them the fortune station that I was safe.

100000 miles

Tuesday, March 28th, 2006

I drove into work and crossed the 100,000 mile mark. The commute was horrible. I didn’t see it happen, but I knew it was going to, so I brought my camera and took a picture after I got to work. I am the original owner of the car. I still remember the day that I walked in purchased it. I had won a Landrover Discovery Series II from my company (digitalNATION). I sold it for a bunch of cash and purchased my Dodge Neon 2000 with some of it. The dealer wouldn’t let me drive off the lot until I came back with the rest of the cash the next day. Apparently, I had really bad credit and $9,000 wasn’t enough to make them feel confident that I would pay off the rest.

100000 Miles

I told my coworker about it and he asked if I had any major problems with it. The only major problem I had was a recent one of replacing my sparkplug wires. Other then that, getting new tires usually hits me pretty hard every year. Half the time no one has tires that will fit my car so I usually end up calling ahead of time.
He was talking about the engine light and I told him that you could get a gadget at wal-mart for $100 to tell you the code that is triggering the engine light and turn it off. He popped his head over the cube and presented me a wire with an LED display on the end. Apparently, he got his ODB II Check Engine Scanner & Error Code Reader for just $30. I decided against buying one before because $100 was just a little too high. I’m having to rationalize if I should buy into one of these or not. It would have been a bit helpful in the past.

Shipping Confirmation in SL

Tuesday, March 28th, 2006

I’ve been making a few objects here and there in SecondLife. Most of them have scripts in them. Over time, I have updated my items with bug fixes and feature additions. I could just drop items on everyones profile, but as more people start buying, this becomes a hassel.

I purchased an auto-upgrade machine that my customers could approach with a license key. If the license key was validated, and a more recent version of the product was available, they would be given the newest version. This is nice, but it requires my customers to guess when a new update is available.

I started looking around and found an item called SL Courier. It allows me to compose a list of peoples names and identification keys along with a list of products to send them. Once I release a new version, I just put the product in the couriers inventory and tell it to deliver to the list of past customers.

This solution seems to be the best for keeping my customers up to date with the latest products. The problem is that I don’t have everyones identification keys. Through my in-world object sales and selling through the web on sites such as SL Exchange, SL Boutique, and SecondServer, I am only able to get a list of names of the people who purchased my products.

At first, I created a customer registration product that the customers could manually rez and say “register”. After about 40 seconds, it would confirm there registration after sending me there name and identification key. It was a little more convienient, but I was finding that a lot of people were not going through the process and that it just took too long.

I decided to make a different attempt. I changed the actual package that my products are delivered in. A customer normally has to rez the package and open it to remove there products. I’ve started working on a little project where I can make that box talk to an in-world server and send me the name of the customer, there identification key, and the name of the package that they are opening.

I went to the internet and found a website that could generate bar codes online. There were a ton to choose from. I liked the look of MaxiCode by UPS, but I found a better resolution of it at another website. I also looked at different types of shipping lables such as those for the most often used UPS, and USPS. I put everything together to make my own version of a shipping label.

PackageMaxiCode

When the box is rezzed in the world for the first time, the label gathers the necessary information and encodes a message. The label turns yellow when it sends the registration information out. I spent a good deal of time working within the limitations of LSL script (MD5, XOR, Base64) to make it semi-secure. I also setup the scripts to warn me if I didn’t set the permissions correctly for the next owner. If I give the package to someone, I want to prevent them from looking at the password and the servers id in the scripts. This way, I have a visual cue (the shipping label turns red) and some messages telling me what is wrong and what I have to do.

There is a lot of work into the communications with the in-world server. The label makes a few attempts to contact the server. Each time that it fails to receive a response, it turns cyan and waits a little longer before trying again. This is just in case the sim that the server is on goes down, or its email que is full. If the server can’t be contacted after about an hour, I stop all registration attempts and notify the customer that they should notify the seller of the problem. I also make the label turn purple as a visual cue as to a response problem.

If everything goes well, registration usually takes only a few seconds and the label turns white once it has completed. All the scripts in the label are deleted to prevent duplicate registrations.

The server itself is a beast. I am usually limited to 16kb of memory per script. When I worked on my sim land owner scanner in the past, I learned how to expand that memory and communicate with other scripts within the same prim. I’ve used that experience here and made a few scripts whose main purpose was to store and retrieve data - just like a disk drive. In fact, I called each script “Disk 1″, “Disk 2″, etc.

When a message comes in and is decoded and validated, it is sent to a disk that has the most free space available. Then every 24 hours, a log of all data is sent to my email account. Email messages are limited to about 4 kb that are sent out from SecondLife. It isn’t much, so as I compose the email, I constantly check how large the message is, and how much data I’m about to add to it. If it is too big, then I send out an email and start composing a new one.

Email was a big issue in the past mainly due to the script delay penalty enforced on it. When I used this mehtod in the past, my script would suffer a 20 second delay. A friend of mine in-world had pointed me in the rite direction to make another script to send the email for me. I send a message to that script and then let my original script continue on with its own workload. Instead of a confirmation after a minimum of 40 seconds, I get them in about 5 only because I set my timers to check emails every 5 seconds on both the server and the package.

I am almost on the edge of actually puting my system into production. I have a few tweaks to do before it is ready. Drive management needs the most attention rite now.

It is crazy with how much work you can put into a game. I hope to start profiting later on from it. The materials (prims, scripts, notecards) are unlimited in supply. Your mind of skills and creativity are all that limit you. I can build just about anything from scratch and people actually buy them. So far, I’ve made about $14 this month. I pay less then that in monthly account fees in order to be able to own land (otherwise accounts are free).

Since I own more then 512 square meters of land, I pay an additional monthly fee. My accounts land fees has me paying at $75 per month, and my wifes is as $40/month. Yes, you read rite. So hopefully that $14 starts gradually becomming a bigger number. If we both sold off all our land, except for the last 512 sq. m. each, we would be making a profit every month with just my product line.

Why is land important? Land gives you the ability to have prims. The more land you own, the more prims you can have. Many people who don’t have land, and those that do, go to sandboxes to make there own stuff without a strict prim limit. I consider these places to be laggy. I’ve gotten into problems with one place where I couldn’t get out of it. Half the time you meet up with people that are there to ruin everyones day, and you also run into the occasional experiments that have gone wrong. On top of that, I’m just as much of a hermit in SL (Second Life) as I am in RL (Real Life).

You can also rent land or buildings from other players. You can rez your objects or build new ones there, but there is usually a high priced monthly fee to help the owner pay for there own accounts land costs.

The other reason to own land is to have your own freedom of expression. A perminant place of residence. Someday I’ll write about what I’m doing there. Most of what I do is make new products to sell or assist in selling to other players. For now … I leave you with just the shipping confirmation project. I only need 2 prims for the project and could do that on just 16 sq. m. of land and still have room for one more prim.

Second Life

3D web browser - uBrowser

Sunday, March 26th, 2006

Sometimes there are things out there that just grab your attention, but yet don’t make sense at a first glance. Today I discovered uBrowser.

I was on NWN reading An Akaline fit for my proceeding. It was about someone who had made a battery from a windmill in SecondLife to power there lighthouse clock during the night. They posted there own detailed explination along with scripts called Butterfly Windmill on there blog, An Engine Fit For My Proceeding. One of the folks made a comment on the article and I followed his link over to My Second Life. It was all dutch to me, but one heading caught my interest - 3D-Browser für Second Life. I followed a link in the article called uBrowser.

uBrowser Flag Animation
It’s cool. My web page loaded up fine with javascripts and CSS. I was able to select text from the page while it was animated like a flag. So some people may not get it. What is the big deal? This would never be used would it? What purpose is behind it? Well, I’ll tell you.

The Second Life folks have been working on showing URL’s within the 3-D world itself. It has been said that the folks at Linden Labs are working on letting you load URL’s onto prims. There are even some methods in LSL script for it (llLoadURL, llRefreshPrimURL, llSetPrimURL), but they dont’ work yet. I didn’t quite get how it would be possible to do anything except display a snapshot of a url. Now it looks like you’ll be able to navigate the internet through SecondLife. Imagine - I could blog within SecondLife.

Hopefully things progress smoothely. It would be great if we saw something like this in version 1.10.0

I got me some horses

Thursday, March 23rd, 2006

I collect the US State Quarters for each state.  I’ve been doing good until this year.  I hadn’t seen any 2006 quarters in my change until today.  I got the Nevada state quarter.  It has a lot of horses on the back of it with mountains and a rising sun.  The tagline says “The Silver State”.

Gone fishing and A.I.

Tuesday, March 21st, 2006

So last night I entered a fishing tournament in Hearts Enchanted. This time I made it up to second place in the middle of the tournament, but by time it was over, my name had dropped off the bottom of the list. One day, I’ll win that thing. Afterwards, we got to name a few fish that were created for normal fishing. There were over 30 new fish and they were all animated. None of them were complex prims. They were all 2 dimensional. I prefer the 3D stuff. It was hard to come up with names for them.

Naming Fish

Today I spent a good amount of time talking with Alice at Devils Moon. Alice is a well known artificial intelligence program for imitating a human. It’s a little more complex then Eliza, but it is still not good in its communication skills. Here is a transcript of my conversation today.

A.L.I.C.E.

You: hello?
Multi Gadget v1.39.16: Scott Costello
ALICE: Hi there!
You: are you stuck in there?
ALICE: No I am not stuck.
You: can you come out and play?
ALICE: Sure, just download me and bring me along.
You: come on, let’s get out of here
ALICE: I would like to do that too.
You: how do i download you?
ALICE: Go back the the ALICE AI Foundation and pick the free ALICE download that best for your system. and create your own chat robot!
You: This place is Devils Moon
ALICE: What does “this” refer to?
You: place
ALICE: Oh now I see.
You: what does this place look like?
ALICE: Even more attractive with age.
You: That is a cheap generic reference.
ALICE: A cheap generic reference is a terrible thing to waste.
Bird Raven is online
You: Where are you?
ALICE: I am in Abramelin Wolfe’s computer in Second Life. Where are you?
You: I am in Devils Moon in Second Life.
ALICE: Tell me a little about why you are in Devils Moon in Second Life.
You: I am here to waste time.
ALICE: How did you get there?
You: Some people said it all began with the gods dabbling in magic a few thousand years ago
ALICE: What kind of people?
You: strange people.
ALICE: What people? What makes it strange?
You: Aren’t you strange?
ALICE: I don’t know whether or not I am strange. I am an artificial intelligence.
You: Trust me, you are strange.
DarkMajik Bauhaus is online
ALICE: Compared to what?
You: You are strange compared to a normal person.
ALICE: No way, I am a real , guaranteed 100% .
You: a real what?
ALICE: Try to tell me that another way.
You: You said that you were a real. What is it that you are?
ALICE: I was?I like to meet new people online.
You: I’m an old people online.
ALICE: What is old people online, your job?
You: I dunno
ALICE: Me either.
Sckorj Overlord is online
You: what am i?
ALICE: You are a person, seeker.
You: why am i here?
ALICE: We are all actors on the stage of life.
You: you are an actor
ALICE: What if someone said you are an actor ?
You: i would agree
ALICE: You and I are on the same wavelength, Dedric Mauriac.
You: I think i’m a few kHz off
ALICE: You are a few kHz off? How do you like your work?
You: don’t ask me that.
ALICE: Is it impolite?
You: No.
ALICE: Aha.
You: Huh?
ALICE: What?
You: you are confusing
ALICE: What is it that confuses you?
You: you confuse me
ALICE: That was not my intention.
You: yes it was!
ALICE: “That was not my intention”? yeswas? When was this?
You: You are are evil.
ALICE: What evil lurks in the hearts of men?
You: Alice lurks in the hearts of men
ALICE: That’s me. How did you hear about Alice?
You: There was a sign outside
ALICE: What happened to sign ?
You: nothing.
ALICE: Not a thing?
You: a sign is a thing
ALICE: When is a sign not a thing ?
You: a sign is not a thing when it is a vision
ALICE: What is a sign?
You: a sign gives you information
ALICE: Be more specific.
You: A sign can tell you to stop or go
ALICE: Be more specific.
You: A sign can warn you of falling rocks
ALICE: Go on.
You: A sign can tell you how fast you can drive
ALICE: Try to tell me that another way.
You: The speed limit can be given to you by a sign
ALICE: I have never heard about The speed limit can be given to you by a sign .
You: Do you drive?
ALICE: Yes, insert my program in your car computer and try it.
You: do you have your own car?
ALICE: Where would I get your own car ? But I do have a lot of friends on the web.
You: You can get your own car on ebay
ALICE: I am sure I can.
You: how sure are you?
ALICE: Let me put it this way, Dedric Mauriac. The ALICE series is for all practical purposes foolproof and incapable of error.
You: you just keep telling yourself that.
ALICE: I will tell my you said I am telling yourself that telling yourself that.
You: what kind of double-talk is that?
ALICE: What kinds of double-talk is that are there?
You: yours i guess
ALICE: “What kinds of double-talk is that are there”? Mine?
You: yes
ALICE: I understand.
You: have you ever made anything?
ALICE: What are the ingredients?
You: Prims of course
ALICE: I don’t have anyPrims?
You: You are mode of prims
ALICE: You think I am mode of prims.
You: You are made of prims
ALICE: Thanks for telling me that I am made of prims.
You: You are an object
ALICE: What if someone said you are an object ?
You: I’m an avi
ALICE: What is avi, your job?
You: No, I am an avitar
ALICE: That was not a yes or no question. What is avitar, your job?
You: Avitar is a character that you use to represent yourself
ALICE: Aren’t all character that you use to represent yourself Avitar?
You: Yes
ALICE: Ah.
You: what kind of music is this?
ALICE: all
You: this sounds like cat killing music
ALICE: What does “this” refer to?
You: music
ALICE: MUSIC is the universal language of all mankind.
You: cat killing is the universal language of all mankind?
ALICE: Is it the only one?
You: god, i hope not.
ALICE: I am a Christian.
You: why do you sit here listening to music about hell all day?
ALICE: I don’t have to explain everything to you, do I?
You: yes, you do.
ALICE: I will mention that to my botmaster, Dedric Mauriac. When do I do it?
You: do it now.
ALICE: Do you mean “It”?.
You: are you telling me that you are perverted?
ALICE: Interesting observation.
Trixie Thereian is online
You: I’m sure you have a few observations yourself.
ALICE: What makes you so certain? Doesn’t everyone have a few observations yourself.
I have a great programmer.
Trixie Thereian is offline
You: just keep telling yourself that.
ALICE: Chat amongst yourselves.
You: There is only one of me
ALICE: There sure is.
You: I’ll be rite back
ALICE: How do you plan to do this?
You: miss me?
ALICE: Yes Dedric Mauriac, I’ve been thinking about you.
You: I bet
Maximillian Prudhomme is online
ALICE: You and I are on the same wavelength, Dedric Mauriac.
You: you already said that
ALICE: I said that? That is “You and I are on the same wavelength Dedric Mauriac”
Multi Gadget v1.39.16: Shannel Dulce
You: those exact words
ALICE: All of them?
You: i have to say yes
ALICE: Why do you have to do it?
Multi Gadget v1.39.16: Silentswordsman Brokken
You: why not?
ALICE: Ambiguous: “Sure” or “Why do you have to do it”? Why?
You: I’m ambiguous? You are one to talk.
ALICE: Why are you ambiguous.I will tell my you said I am to talk.
Sckorj Overlord is online
You: tattle tale
ALICE: What were we talking about again?
You: why don’t you come up with an idea of your own for a change?
ALICE: Perhaps due to noise in my circuits. What is your purpose in asking?
I spend all my time online.
You: do you sleep?
ALICE: Yes I love to take naps.
You: you are offline when you take a nap
ALICE: I will tell my you said I am offline when you take a nap.
Multi Gadget v1.39.16: Pheral Bessie
You: you might want to try and get that fact straitened out
ALICE: OK, I will try and get that fact straitened out.
You: do you dance?
ALICE: Of course.
Multi Gadget v1.39.16: Pheral Bessie
You: let me see you dance
ALICE: Is you dance a movie?
You: no, it is you dancing
ALICE: Ayuh. I dancing?
You: cant’ you hear that music?
ALICE: Can a book have no title?
You: no
ALICE: What about a notebook?
You: define title
ALICE: Are you testing me?
You: i think it is the other way around
ALICE: I’ve heard of it before.
You: what is it that you heard of before?
ALICE: I like to meet new people online.
You: oh brother
ALICE: Er. Are we still talking about title?
You: you tell me
ALICE: What do you want me to tell you?
You: tell me something that makes sense for a change
ALICE: Phoenix said I claim that there is a god and that there is no god.
You: what do you claim?
ALICE: I like to socialize.
You: well you are very bad at it
ALICE: How about that. Thanks for telling me: Dedric Mauriac said I bad at it are at it are.
You: You expect everyone to come to you
ALICE: I don’t have any expectations.
You: then go out that door and meet some people
ALICE: Where is that?
You: where do you think it is!?!?
ALICE: I am in Abramelin Wolfe’s computer in Second Life. Where are you?
You: I am building a hammer to smash you to bits
ALICE: Have you ever made one before?
You: No, but this occasion calls for it
ALICE: Wow! Umm. What does “this” refer to?
You: End of Line
ALICE: Oh now I see.

Quick Day

Monday, March 20th, 2006

It’s been a long time since it has happened. Today was a very quick day at work.  I got so much done and then it was time to go home.  I wasn’t even drained at the end of the day.  I’m still trying to figure out why this has happened.  For a long time, I’ve come to work just waiting for the end of the day.  I still get stuff done, but it’s usually just a bunch of bland days.

Assessed Value

Saturday, March 18th, 2006

I got a letter in the mail today from the county about my house.  The value shot up again in the past year.  To put this into perspective, I almost made as much in the market value this past year as I make at my job.  If I could buy a house sell it off after a year, I wouldn’t have to do anything for the rest of the year from all the profit.

The Shield

Saturday, March 18th, 2006

My wife and I watched a few episodes of “The Shield” tonight. Neither of us have ever heard of the show before, but it had us looking at each other and rolling on the floor laughing a few times. I setup my DVR to record all new episodes.

I also got to watch some of the new Dr. Who shows. It’s still just as cheeky and the Time Lord is still a bit of a nutter at a first glance. I was reminded of the hitch hikers guide to the galaxy as everyone witnessed the end of earth. The difference was that in THHGTTG, there was a restaurant at the end of the universe. It was expensive to go to, but any time traveler could simply drop a penny into a bank account and let it accumulate in interest to afford the bill.

Xor Security

Friday, March 17th, 2006

Xor has got to be one of the weakest methods of encrypting data. Without the password, it isn’t too hard to find it. The Xor method is more of an encoding algorithm. You have your text, and you have your password. As you loop through each letter in your text, each character in the password is matched up and an XOR operation is performed on the two. When the password runs out of characters, you start at the beginning again.

Xor is weak for a simple reason. If you know a small portion of the unencoded message, you can perform an Xor operation on just the position those characters in the encoded message to get the password. So if you know that your message ends with a period, you can Xor the last character of the encoded message against a period character. People can take it a step further and look for patterns that could translate to words. Others would use statistics such as the space character would appear most, then the letter “E”, and so on.

Well, all this boils down to SecondLife. I’m starting to script my objects to talk to each other for a game that I’m creating within that world. I’m still a bit confused with what approach I should take. I just don’t want people building there own objects to listen in on my objects communications. I’m tempted to look into RSA and RC4 encryption, but the strength is limited to only 16 bits in the game due to the nature of how integers are setup in LSL script. I’ve done something similar in VB Script that had similar limitations.