Binge Learning, Task Wranglin’, and More!

Man.  It’s been three months since I posted anything of any significance in this blog.  I don’t really aim to change that trend with this post, but just sort of consolidate some thoughts.

First of all, I have been on a crusade to populate my brain with new things! In the past three months I’ve learned PHP PDO, how to normalize database design, build my own compact LSL protocol for off-grid communications, researched and built a self redundant system for inworld http LSL communications, and this month I am polishing off a secret masterpiece of inworld scripting.  Unfortunately, right now most of what I have been learning can only be seen with inworld projects like The Traders or the Doktor in the Wastelands.  They certainly don’t take advantage of everything I’ve learned, but they use some components of the things I’ve developed.  For the moment, I’m sort of wading my feet in the water to get a feel for it all.  If anything it makes me paranoid that things are just going so well.

I am actually very happy with all the Wastelands projects I’ve been working on this year.  For as complex as the things I have been working on are, they’re relatively bug free! The bugs that do pop up are always from when the sl grid is being uncooperative. On the other hand they’ve got crazy OCD levels of error catching and reporting; so they essentially ‘turn off’ for a while if there’s problems.

I was going to take a stab at coding a libOMV bot, but after some research and consulting their IRC channel — libOMV doesn’t support setting Estate Windlight settings, yet.  The exact reason I wanted to learn it was to make “real time”, realistic weather for my estate.  I guess I’ll just keep watch for when and if they add that, then revisit the idea.

The Crimson ThroneIt took a little over two years to run my Curse of the Crimson Throne game inside Second Life, but we finally finished it a week ago. Gameplay is much slower in SL than tabletop. I am a little bit disappointed in my skills as a GM, I had hoped the players would be interested in certain things, and less interested in other things. Then again it was my first game I’ve GMed since probably junior high; and I had to convert things from DnD 3.5 to Pathfinder all too often.  None the less, MOST of the players had fun.  So much so that we’re going to be playing Savage Worlds Deadlands in the coming weeks.  It’s a simpler system that doesn’t seem to have a great power imbalance in the later levels. I like Pathfinder LOTS, but those high levels are pretty brutal on both players and GMs.

In not-second-life, I’ve been on and off sick.  Possibly due to stress, possibly due to the heat, possibly due to not eating like I should. In reality, possibly all of the above. Everything combined with the normal migraines has kept me down for some portions of last week.  Usually I can work when I am sick or when I have a migraine, but I get to learn the hard way not both.  A lesson I never remember.

A big thorn in my side has been my hosting provider Dreamhost.  There’s been a TON of downtime in the past month, that I’m actually considering moving some of the more important processing to the cloud.  It’s going to be a bit more expensive, so I will have to try to offset that cost somehow. I guess I could always look into Dreamhost VPS, which is just about as expensive, if not more.

Everything considered, I’m very excited for the upcoming months!  I have all these projects with sub-projects coming to maturity. All that’s left is more testing (on The Wastelands), and bug fixes as they come.

Second Life: Region Idling, Where’s the Trade Off?

Soon Second Life will introduce region idling, a new “feature” intended to make SL servers run more efficiently. The intended way it’s supposed to work is if that there is no one on the region, and no one is looking into the region, that the region would go into a sort of “low power” mode. Before even I get to see it in operation, I already have several problems with this.

In the past Linden Lab has vehemently sworn up and down that regions on some piece of  hardware do not affect other regions utilizing that same hardware. So obviously this must be a power related cost saving measure, and not the fact that regions actually do impact other regions performance. For the record I’ve filed several JIRAs reporting poor performance, for no discernible reason other than sharing hardware with a resource hog of a region. But for now, let’s pretend that’s not the case.  Let’s pretend LL is doing this to save money on their power bills.

Here’s the part where I get extra irate.  Rather than investing money Region Idling, you should be investing money in some VERY SERIOUS JIRAs that eat up a TON of your customer support resources.  At this point having people on customer support must cost more than a region being online does because you’ve shed thousands of regions in the past year. That’s how you’re going to save a ton of money.  Make estates easy and manageable to the point where estate owners don’t need to contact support.

As a customer who pays SEVERAL THOUSANDS of dollars to Linden Lab PER MONTH for the service, and as an estate owner I should be able to decide what I do with my regions. As it stands now, this isn’t what I signed up for. I sure don’t have things running full time, but if I want my region to be full automation even while people aren’t on it, that’s what I signed up for. I should be allowed to script up a fully automated eco-system and check in on it’s progress when I feel like it. Not to only see that it’s gone only 1/10th of it’s intended pace. As it stands now the price for a full region isn’t worth it anymore. I’ve seen nothing but value of service decline over the past 5 years. Currently homesteads are limited to 20 avs per region, live support only asks you questions until the problem goes away on it’s own or you leave in utter frustration, and concierge phone support isn’t even 24-7 anymore.  On top of all that we’re getting the performance equivalent of a virtual host that is more costly than dedicated host pricing.  Chew on that.

So now that region idling is here, what’s the trade off for us?  Do estate owners who pay the bulk of supporting the grid get to have their regions on full time? Are all regions capable of holding more avatars now? What kind of added features are we going to see out of this? Is this just a crap trade off for pathfinding? Are our tier rates going to finally be lowered? Time will only tell. There’s one thing I can say to any Linden reading this.  I am really fed up with the platforms recent choices — make a favorable change soon.

Important SL JIRA issues for May

What an intense month for the Second Life grid!  Marketplace, search, hardware failure, and general asset server issues made a lot of people upset. However we’ve seemed to pull up out of that nose dive only in the last few days of April. Things seem stable (as they get) for now. Here’s this months list of important things!

Important Server Fixes

  • [WEB-4678] Regions not showing in inworld search.  This JIRA is just the tip of the iceburg for many search related problems. I myself, historically, don’t use search that often.  But this month I’ve been using search to see how my available parcels show up. Most times they do, but sometimes they don’t. For now there seems to be no rhyme or reason as to why search intermittently fails.
  • [SVC-7837] Filtering by object name or owner name in top scripts/top colliders no longer works. Estates are already hard enough to manage when “estate wide” functions don’t work. Now the most very basic functions are broken. Rather than try to fidget with broken inworld tools, I’ll just call Concierge to do it for me. :P
  • [SCR-312] llSetRegionPos() does not return false when trying to move into nonexistent region. This one is a bit close to my heart, as I had hoped the llSetRegionPos() function would be smart enough to return a FALSE rather than try to cross into a non-existent region during a rolling restart. Getting a dozen or so IMs every time a region restarts because objects being returned is not cool.

Important Client Fixes

  • [VWR-15729] and [MAINT-720] Unknown failure mode causes uncontrolled network flooding. These issues are closed, but they shouldn’t be. Essentially the problem is if that you use the voice feature in Second Life, after you log out or quit the provider (Vivox) can keep sending you data for over an hour. But get this, the issue was closed as “Won’t Fix”, with no reasoning added to the issue, but a comment is later added to the issue where Mercille Linden says that it’s a Vivox issue that they have no control over. Tateru Nino makes an excellent comment about how they don’t have direct control over the issue, but LL can at the very least talk to Vivox about it, and help to fix the issue. The only known fix is to DELETE SLVoice.exe, and with that lose your SL voice features. But SL voice has historically been filled with problems, perhaps it’s time for LL to find a different voice provider?
  • [VWR-248] Inexplicable folding of Avatars such that they are walking around with their heads up their arses. Even though this JIRA was filed in 2007, this bug has been in SL since I started way back in 2005.  This bug doesn’t happen very often, but it’s plenty humorous when it does happen.  It’s just one of those annoying, but silly things in SL.
  • [ALL THE JIRAS] Alpha Flicker Issues Please Linden Lab. Dedicate someone to fixing the alpha sorting issues that have been around since SL BEGAN. SL would be a much better place if my client wasn’t going to give me an epileptic fit from staring at some sculpt trees.

My Wish List

  • Asset and LSL function versioning. More often than not any feature that we’d like to upgrade gets rebuffed by the lab with their catch phrase “It’ll break existing content”. I think it’s time to start versioning the assets.  Mesh2, and llSensor2() are just examples.  For instance Mesh2 could have all the qualities of a mesh in SL as of now, plus future upgrades, or llSensor2() could be a more fine grained control of sensing things around us, by owner, on land, etc.

Tip of the Hat

  • We can finally fly to 4000+ meters in the sky without a flight assist.  This is another one of those long desired, but simple user experience features that have been years in the making.

Driving Tiffany

Scary Hitchhiker

This is a true story about when Apo and I picked up a hitchhiker. Before we begin, we had just finished eating dinner at Chipolte, then we stopped to pick up some Vodka.  She got in the car, and we started driving home.

As we were leaving the parking lot, a heavyset black woman flagged down our car. I rolled down the passenger side window to see what the problem was. “I need a ride home, can you give me a ride home?”

Being the overly helpful boyscout I am I agreed to help, and told her to hop in the back. In 2003 I used to drive a taxi for Suburban Green and White in Minnesota, and since I drive a Crown Victoria Police Interceptor now, I was feeling pretty nostalgic. Being a cab driver is essentially being paid to pick up hitchhikers. I asked her where we were going, and then she started to ramble.

“Doubleyou-shawdae-druh! At the HEB. No, you can drop me off at the walmart. My mom is looking for me for ten minutes now. Lets go to the HEB I live around the corner from there.” She went on like this for a little while, much more than I can actually remember. In all honesty, this should have probably been my first warning sign.

I was trying to concentrate on where she was really trying to go, because I really couldn’t understand what she was saying. I did know there’s there’s a Walmart down the road, and I know of about 5 HEB stores nearby. So I asked her again to see if she could clarify, I got the same unintelligible answer. Instead I switched tactics and asked which direction I should be going. To which she said take I-35 north, and that’s where I started to go. HEB and Walmart, can’t be that far right?

So as we’re driving to I-35, she asks about three times if we’re on 35 yet.  I-35 was no more than 3 minutes away from our current location. Given the previous dialog with her, and her current unawareness of what’s going on, the red lights are starting to light up in my head. Maybe she’s high. She can’t be drunk, because she doesn’t smell drunk. This was possibly a bad idea. So I dug out the GPS and plugged it in. I knew it would take about 5 minutes to charge up to a point where it could be turned on, and then load it’s maps…

Apo had been silent since I picked the person up, and with good reason because anything she said seemed to be pretty surreal. Then suddenly the hitchhiker started talking again without anyone asking a thing.

The Rock is Professor Oak“My name is Tiffany (I forgot her last name). I’m female. I am 27. I am black. I am 100% black.  I used to be blacker, but I spent time in the sun and it made me lighter. Like a tan you know? The sun does that to me. I’m 100% black. I’m a female.” I am paraphrasing to a degree, but not by much.  If anything I’m making her sound way better than what she actually said. So in my head, I was thinking perhaps she’s having a panic attack, or a bad drug trip. Either way that’s more of a reason to get her home, and I’m a little weirded out by now. Perhaps this wasn’t such a great idea.

While the GPS was charging we had driven quite a while on I-35, so I decided to ask how she got stranded down here. “A person stranded me down here.”  I asked if she knew them, but she kept going on about how it was “just a person”. To try to ease the tension between us all, I told her I used to drive a cab, and that this car is the same car they use for cabs. I only got a chuckle out of it. Apo told her some cab stories as well, but she was still very silent.

The GPS finally turned on, and as with any potentially high or crazy person, it’s very important to dictate your actions. So I told her we were going to pull over so I could type her address into the GPS. What I didn’t tell her is that I wanted to know where exactly we were going, and that if she got any crazier I’d leave here there.  She then told me it was Poague street in Killeen Texas, and that it was just 30 minutes away. I know the Austin area kind of okay, but I haven’t committed to memory all the nearby cities. I know Killeen is nearby, but not in my head exactly where. Already 10 minutes into this adventure, the GPS is telling me we’re an hour away from our destination. I’ve committed myself to this, so there’s no turning back. It’s not like I DIDN’T have time either, and I DO like to drive.

We drove for about another five minutes and the fuel light was on. I hadn’t filled up in a few weeks, so I told her we’d have to stop and get some gas. I threw $20 in the tank, sat back down and looked back at her to ask if she was ready. More importantly I wanted to read her body language.  She seemed delighted and relaxed. Which put my mind at ease.

Nicholas Cage RagefaceWe drove for about 20 more minutes, everything is cool, everything is mellow, when suddenly out of no where: “I am female.  I am small.  I am small because I am female.” That “at ease-ness” I had…  Totally gone. With her evasiveness about why she was stranded down here, how apparently high she was, and her repeated assertiveness about how she was female. I drew up a mental image of an overweight but passable transsexual homicidal prostitute crackhead who kills drivers as she hitchhikes across the nation. I started to make a mental list of all the potential weapons in my car. I silently cursed myself for not keeping my half-hammer half-hatchet in my drivers side door as I always used to. I am not a very paranoid person, but I wanted to be prepared. I put on her favorite radio station — If anything to keep her silent, mellow, and pre-occupied.

If things went extremely south I was ready with:

  • My drink would make an excellent opener to any sort of brawl. Cold, wet, shock.
  • That bottle of vodka would make a great club, or painful shiv.
  • I have a steak knife in the glovebox.
  • The dome light (as seen in the Rock Driving Meme picture above) is actually pretty blinding when turned on in a totally dark car.
  • Car keys make superb punching augmentation devices.
  • I don’t think she put on her seatbelt, and if worse comes to worse, I could wreck the car.

Satisfied with my defense plan and music playing, we kept driving forward into the night. Eventually we arrive in Killeen, and she asked me if this is where all the clubs were.  I didn’t fuckin’ know, but her recognizing the place made me feel a bit better. From there on she started giving directions towards home. One thing I noticed is that Killeen is a dump. There are pawn shops and same day check cashing places on EVERY block. It was only as we were leaving that we found out there was a military base nearby.

We finally pulled up to her place, where she told me to drive forward more, so I pulled up 20 feet and stopped.  Then she told me to go backwards, so I rolled 10 feet back and stopped. She wanted me to go back some more, so I did. Seriously lady, I drove you 60 miles, you can walk those extra ten feet. When she did finally get out, she thanked me several times and walked away into the night. I was just glad it was over.

In the end, she was just trying to get home; but probably higher than a kite. I like to think we’ve all been stranded someplace at some point. I feel sort of good helping someone, even if it was pretty risky. She didn’t really do anything to assure me that she was just wanting to get home. It’s a shame she wasn’t more forthcoming in what was really going on, because I can only speculate as to what was really happening.

On the way home though, my Lighting Control Module glitched out and my headlights went off. It’s a notoriously known problem with Crown Victorias from my era. It happens when LCM overheats, which means it’s more prone to doing while running the lights in the summer.  Swiftly pulling over in the dark, and going over those very noisy “WAKE UP YOU SLEEPING ASSHOLE” road groves caused my engine to stall. While I am very familiar with the LCM issue, this was totally new.

I pulled over and tried to start the car. It was cranking, but it wasn’t starting. So I began pulling and testing every fuse with car manual in hand. Interesting thing is that I found a few fuses that were in there but underrated. Such as a 5a fuse in place of a 10a slot, and a 10a fuse in place if a 15a slot. What I didn’t find was any blown fuses. So I started flipping through the manual, and saw something that says if you’re in an accident your fuel pump switch may turn off.  Turns out that’s what happened, and all I needed to do was open the trunk and press the switch.

We finished driving home talking about how crazy it was, with the AC on max to keep the car cabin chilly for the headlights.

Important SL JIRA issues for April

I decided to skip this report for the month of March because I started this regular article at the middle of February. I have every intention of keeping this going on a regular basis — if only to just keep Linden Lab on their toes.

Important Server Fixes

  • [SVC-114] Meta-Issue: Inventory Loss: issues, fixes, development. Inventory loss has been a long standing problem in Second Life. This JIRA in particular has been open since 2007, but inventory loss has been in existence since longer than I’ve been in SL. It’s less of a problem for me because I try to keep my inventory around 15k items, but I know lots of people with 45k+ who regularly lose things.
  • [Many, many JIRAs] The Second Life Marketplace is a disaster of a rollout. With the introduction of the new Direct Delivery features, many people are upset not only at the rocky transition, but that the Marketplace is very slow — or fails to work at all. Then there’s the problem with the whole rollout schedule, in that many people feel it’s too fast and forced to make changes right away. Right now I think the marketplace database is being hammered so hard because so many vendors are having to update their listings. Still other people report that sales have effectively stopped, while others report that they’re not reviving the money from LL for their sales. A lot of people are having trouble transitioning as well, because of unicode characters in their products.
  • [SVC-7125] Bring Back Last Name Options! A staggering amount of votes have been put on this JIRA.  I remember when last names were removed, and at the time I though that it wasn’t a great idea — but it didn’t affect me so I didn’t care. Display names weren’t adopted as well as LL thought they’d be, because people still rely on actual account names. I can imaging having the last name “Resident”, is a pretty big bummer.  It has been proven in the past that LL can change an account name — perhaps LL should monetize this feature, and give anyone with the last name “Resident” a free use.

Important Client Fixes

  • [VWR-14674] Object Return Function of Region/Estate Menu does not work. A long time ago, these estate tools used to work.  The way they worked is that when you selected a name you could return ALL of the objects across an estate. This function was broken at one point, worked for what seemed a week, then broken again. Linden Lab should fix this post haste because of all the time they’ll save on support if estate managers can take care of their own estate without calling concierge for help. Griefing will be a thing of the past.
  • [VWR-28606] Viewer UI rendering slows to a crawl after extended viewer use, or teleporting. This JIRA is my own filing, and I bring attention to it because I know a lot of people suffer from viewer lag.  I’ve got a pretty beefy machine, and I’ve found out how to reproduce lag that ONLY comes from the UI interface. Ever since Viewer 2/3 came out the FPS in SL has been terrible in comparison to V1.  I think a lot of things can be done to the viewer UI code to improve it, so it may warrant the same treatement as the SHINING fixes for rendering.
  • [VWR-2950] Group Notices and Group IMs Constantly Malfunctioning. This is kind of a repeat of last Februarys. I like to imagine this issue is server side, but client side may also be part of the problem, hence sticking it in viewer issues. Group chat and notices are key to keeping SL great.  The poor performances of these services directly impact user experience.

Important Feature Developments

  • Pathfinding is still being beta’d and worked on.  In The Wastelands we’ve got one region Kronbelt, that is on the pathfinding beta.  A lot of bugs have been filed, and it seems like a good amount of feature development requests are in there too. Given LLs track history of releasing things, I’m pretty skeptical if any of the feature requests get worked on after the initial release. On top of that there’s some pretty serious bugs, such as dynamic objects (things that change shape, or size) can bring a whole regions’ FPS down to two.
  • There’s very little word on the Advanced Experience Tools, things like llTeleportAgent() or forcing attachments on people.  Wish there were an update on that front.

My Wish List

  • I wish that LL would just start over on the rendering engine of SL. It really is pretty terrible and only uses a fraction of my GPU, most everything that’s done for SL is on the CPU nowadays. I understand it’s hard to build a platform that is supposed to support as much hardware as possible, and to a degree you can’t control the viewer lag generated by people, because some people make 2048 resolution mesh eyes. I’m glad for the improvements that have been made, but the majority of everything done is on the CPU anymore.  Even with my Core2Duo overclocked to 3.6ghz, SL rendering seems lacking, and lagging.
  • I was recently forced to try a 3rd party viewer because a work deadline was coming up and the regular SL viewer was on the fritz. I really liked the UI of Nirans viewer, it was just more intuitive. What I really liked is the automatic graphics setting. Having said that I think upon setup LL should test for whatever openGL features are supported by the graphic card a user has, then automate what options are enabled by default.  Currently a list of features is used.  Develop an algorithm guys.

Tip of the Hat

It’d be unfair to critique LL without giving credit when they deserve it, so this new section is for when LL makes changes that are favorable to the operation of Second Life.

  • I previously blogged about llGiveInventory throttles, and while I still disagree with the enforcement of throttles, the throttles have been loosened with a recent server rollout. This may or may not be enough for large businesses.
  • A long standing feature request has been fulfilled. With the addition of llGetAgentList(), you can now get all the keys of all the avatars in a region. This isn’t live yet, but will come to a rollout soon!
  • [SVC-680] is one of those older JIRAs that is finally getting some attention in a future rollout. It increases the http response size from 2k to 16k in mono scripts. I will happily use up every KB in my newer Wastelands game.  No more chain-stitching HTTP responses together!
  • It looks as if llCastRay() may have it’s throttles removed.  HOORAY!

(Editors Note: This article is all just personal opinion of the importance of what JIRAs need to be fixed most. I may not know of other JIRAs that have a bigger impact. If you have suggestions for next month, please leave a comment about them with a link.)

Busy week, but still trucking forward!

The past week has been really hectic, however the beginning of the month was oddly calm. Although it’s been busy, it’s nothing I couldn’t handle, and everything’s comin’ up Milhouse! They only sort of odd side effect is that it’s kept me out of Second Life, moreso than usual.  I’ve noticed a trend for the past few months in that the end of the month has a lot for me to do.

Skyrim Butterfly RagecomicThe free time I did have earlier in the month was spent playing Skyrim and working on The Wastelands. I didn’t think I’d like Skyrim because it was a high fantasy first person clobberer. What really got me into it though was the sheer amount of information and questing. I did a half dozen book fetching quests, before I found out about Skyrims dynamic quest generating thing.  If I hadn’t found out about it, I would have fetched ALL the books, simply because I like libraries. From a technical standpoint, Skyrim is really impressive, although the NPCs can be a little DERP at times. One thing I really like to do in these open-world sandbox games is hoard things. Gathering reagents for alchemy was strangely satisfying, the comic on the right is the EXACT set of expressions I made. I neatly organize things into specific containers!  WOOO  OCD! I am proud Skyrim lived up to the hype, as I have a tendency to play games six months to a two years after they’ve been released.

Looking for work? Learn to build and fix machines.

I remember staring at the closet while I was talking to my father through the bathroom door. “If you don’t get a good education, you’ll end up pumping gas at a gas station. What you should think about is fixing robots, that’s where all the jobs are going to be”, he said. This was way back in 1989. As I get older it’s harder to remember the small conversations we had, but certain things really stick in my head. Prophetically he was right — though since we were already very industrialized he had quite a lot of clues. 1989 was still before computers became a household staple, so he couldn’t imagine how exactly right he was.

In the late 1800s and early 1900s industrialization of our planet made taking raw resources and crafting them into a consumer product.  As early as then we’ve been making obtaining the raw materials easier.  Most modern day resource gathering is done on an industrial scale. Now that robots are here to stay, most manufacture operations are done by robots to ensure perfect products. If you think about it, in the last 100 years we’ve obsoleted a lot of manpower for manufacturing and crafting things. Since the year 2000, computers have been taking over what’s left. Nothing is safe anymore, even imaginative jobs are at risk. The fact of the matter is, automation took our jobs through the pursuit of being cost effective.

“Job Creators” as they’ve been coined are usually classified as the people in charge of companies; they have the power to create jobs. But unless the company cares about the welfare of the people they employ, beyond their competition and cost effectiveness — they’re going to be against you. Why would you chose a person over a machine that doesn’t get sick, have disabilities, drama, or need health insurance?

… and I hate phone automation systems.