Monday, November 23, 2009

An Explanation of metaLIFE's Fee Structure

Since this issue confuses a lot of people, I'll take the time to explain it for everyone.

Primary Affiliate: This is ignored when you are selling your own items from a vendor. However, when you are selling someone else's items through your vendor, this is the percentage of the profits that you keep.

Secondary Affiliate: If you are selling someone else's items from a branded metaVENDOR, then this percentage goes to the brand owner. If you are selling someone else's items from a metaVENDOR that is not branded, then this percentage is kept by you. If an item of yours is sold from the web site or from the metaHUD, then it goes to the person who referred you.

Just as some examples, I set Primary to 20%, and Secondary is left at the default value: 5%.

  • If someone sells one of my L$500 phones through a branded metaVENDOR, I keep a total of 70%, or L$350. 10% goes to metaLIFE, 20% goes to the seller, 5% is kept by me, and then the remainder is kept by me.
  • If someone sells one of my phones through a metaVENDOR set to sell "All Content", I keep a total of 65%, or L$325. 10% goes to metaLIFE, 20% goes to the seller, 5% goes to the owner again, and then the rest goes to me.
  • If someone buys one of my phones though the website or the metaHUD, 10% goes to metaLIFE, 5% goes to the person who referred the buyer, and the rest is kept by me.
  • If I'm selling my phones through my own metaVENDORs... I keep 100%

UPDATE (11/26/2009):
The Fee Structure has been changed today! Now, there are NO commission fees on sales from the website or the metaHUD. The only fee associated with them is the 5% referral fee. If you have no referrer, then it's no fees, period!

Thursday, November 19, 2009

metaLIFE's Single Object Vendor

Today, I told Pauly Richez of metaLIFE about a feature I wanted: single-prim vendors networked through metaLIFE. I prefer selling items through single prims on a wall, rather than through a multi-panel vendor. It lets multiple people browse my shop without waiting for someone to stop using a vendor. But, when you update your products, updating multiple single prim vendors is a hassle, especially when you have multiple shops. So, I suggested this to Pauly Richez.

metaLIFE already has it. It's a single prim vendor. First, you rez it and grant debit permissions. Then, you select "My Content" from the menu. Then, you click navigate, and use the menu there to find your item. Or, if you're selling a lot of items, you press "Search" and enter your product's name into the vendor. Then, you're done!

Using this system, one can quickly set up shops that are easy for shoppers to browse, instead of waiting for one user to finish up with a multi-panel vendor. I intend to use this feature extensively. It is MUCH nicer to look at than a multipanel vendor, more eye-catching to shoppers, and I get more sales too!

Way to go, metaLIFE team!

XStreetSL and Linden Lab's Epic Failure

I remember when I started a year ago in the SL Exchange, or SLX. It was a great concept for me: amazon+ebay for second life. I started using it, and I was making plenty of sales. Then, it's name changed to XStreetSL. Sorta interesting. I also started using the alternative marketplace, OnRez.

That was before 2009. Starting in January, XStreetSL and OnRez were both bought out by Linden Lab. XStreetSL became a Linden Lab product, and OnRez was shut down. Several merchants backed out when this happened, expecting Linden Lab to ruin it despite their promises for increased sales. How did that turn out for me? A huge drop in sales. Now, any time I get a sale in xstreet, I'm genuinly surprised.

In August, I was introduced to metaLIFE, an alternative to XStreetSL that had many features which reminded me of OnRez, such as in-world vendors. It also features an affiliate program, which is something I had been looking for after a long time. Since I've started, my metaLIFE sales have been at least twice what I earned in xstreet.

So, we come to today, with two announcements from Linden Lab. First, they're shutting down the mentors group. And second, they are adding listing fees to XStreetSL. Both decisions are too stupid to be real for me, and it took a while for it to sink in. L99 a month for freebies, L10 a month for non-free items, and a minimum L3 comission.

Just another scheme to line their pockets at the expense of consumers and consumer confidence. Smaller merchants are now leaving XStreetSL, as well as any merchants who cannot afford the listing fees for their products. I myself would be paying well over L$1000 for it, which just isn't viable for me. I've made a bit over L$4000 in xstreet since June 1st. So, 4k spread over 6 months just isn't viable. I make at least twice that in metaLIFE, but with the increased costs of operating in XStreetSL, it's just not worth it.

I've abandoned the xstreet platform. I'll be doing all my sales from now on in metaLIFE and through in-world vending. And if Linden Lab decides to make ecommerce sites like metaLIFE illegal (and they somehow evade antitrust prosecution from the US Justice Department), then I'll just switch to affiliate vending instead of online vending.

So, for now, goodbye, XStreetSL. I've tossed my xstreet magic box into the garbage disposal.

PS: A token of my esteem (or lack therof) for XStreetSL:

Tuesday, November 17, 2009

California's Proposed Ban on Divorce

Short blog post, but posting it here because it's too long for twitter. Okay, this morning I read about some California politicians who want to ban divorces on the grounds of "protecting the sanctity of marriage". All I have to say to that is this: If a couple is divorcing their marriage, then there is a *VERY* good chance that their marriage did not have any sanctity in it.

Where's the sanctity in a marriage where there one spouse is cheating? Where's the sanctity when husband and wife are swingers? Where's the sanctity if there's no loyalty? Where's the sanctity if there's no love? Where's the sancity when one spouse is abusing the other, or their children? Can anybody answer that?

Thursday, November 12, 2009

Reducing Your Lag!!!

Here are the contents of a notecard I received in Second Life on how to reduce lag. Credit goes to Dave Carmichael for collectingt his information!


Find yourself jittering around when you walk? Or walking through walls and finding yourself in a whole other place, only to snap back where you were before? It's frustrating, very common, and we all hate it.


Could be any number of things. People sometimes complain of lag in bigger stores like Damage, and the biggest reason for it is the number of textures we have to use to show all the great products. We keep scripts minimal here, with few of the features known to take a great burden on the servers (a big cause of a laggy experience). All our textures are 512 pixels or less, and we are constantly looking for ways to reduce the burden on you (for example the walls of the entire store are completely untextured.)


Actually more than you think. One obvious reason for lag is having your draw distance too high. Most of the stuff I'm going to talk about has to do with your graphics settings which you'll find under "preferences" after you click the "custom" checkbox. Let's start there. To make it easy I'll number the things you can do under this graphics tab, assuming you've clicked "custom" for more options.

1. BUMP MAPPING AND SHINY: I have not found much difference with this being set either way.
2. BASIC SHADERS: This CAN cause slower response because it adds features like being able to see things "glow". Still, I would leave this on.
3. ATMOSPHERIC SHADERS: I haven't seen a lot of difference with this, and it has to do with the way light affects your SL experience. I would turn this off only as a last resort.
4. WATER REFLECTIONS: A beautiful effect, but if you can live without it, turn it off. It is a bit of a burden on your graphics card.
5. AVATAR IMPOSTORS: This is actually a lag reliever. It causes avatars to draw more simply when there are a lot of them and they are at a distance. Turn this ON.
6. DRAW DISTANCE: I know it's cool to see things that are farther away, but having this too high IS THE SINGLE BIGGEST CAUSE OF LAG. Turn it way down. I have mine at 64m.
7. MAX. PARTICLE COUNT: Again, particles are a huge part of the SL experience, but if you want a big speed boost, turn this way down, or right off if you can bear not seeing poofers and flames and things. (Make sure you go down under our dock and see the cool fish before you do this though ;)
8. POST PROCESS QUALITY: I have mine on high without much detriment to my experience. Experiment with this one, I honestly don't really have a good grip on how it affects things.
9: MESH DETAIL - This is a set of six different sliders that change how detailed things are in SL. Make them all as low as you can stand. Adjust them and look around then decide how low you can stand it without hurting your experience.
10: LIGHTING DETAIL: I can't stand having this one set to sun and moon only, but if you can, click it. I don't notice much difference myself.

There are other options on this screen but mine are grayed out, like hardware skinning and avatar cloth. Chances are if you can see these options you have a better processor or graphics card than me.

11. HARDWARE OPTIONS: This is a button most people don't notice. Click it and it brings up a new window. Here's what I have mine set at:
*Anisotropic Filtering: off
*Antialiasing: Turn it off, but if you want to take awesome photos, try turning it on only then. (it makes edges less jaggy)
*Gamma: Doesn't matter and mine's greyed out anyway.
*Enable VBO (vertex buffer objects): I leave mine on without any apparent performance hit, but try it off and see what happens. Could be that makes it worse depending on your graphics card.
*Texture Memory -** a big one**. If you have this set too high it is going to slow your experience down BIG time. I have mine set at 96.
*Fog distance ratio: Doesn't matter.

Okay hit OK and let's move on to "NETWORK"

The network tab is just two above the Graphics Tab where we've been doing all this. Click it and we'll mess with these settings.

MAXIMUM BANDWIDTH: From what I understand this tells how big the chunks of data can be that your computer is asking for from the server. The instinct is to have this maxed out. Right? Wrong. Put it below 500 and you'll see a huge performace boost.

DISK CACHE SIZE: I would set this at 500 MB, and just clear it evey once in a while. This is what I do now and i think it's the right choice. A huge Cache just seems to slow things down.

OK let's move to the AUDIO and VIDEO tab.

None of these settings matter except the "play streaming media". Click this off and your machine won't always be trying to play movies when you enter a sim. If you're like me, however, you'll want to keep "play streaming music" on. I like the toonz.

NEXT: let's hit the INPUT AND CAMERA tab.

Not much here, but there are a couple things that bring me a snappier experience. "Camera Transition Time" and "Camera Smoothing". If you have this at anything other than zero, your viewer will put a cinematic damper on your view as you pan around. This is just adding more burden on the system, and I just have it off, even though it can look cool. Put em at zero.

The only other thing to change is under the VOICE CHAT tab. Unless you actually do any chatting in voice, turn this off. It loads a whole other program that takes up both system resources and internet bandwidth.

Next let's talk about a few things you can do with your avatar.


If you want to do not only yourself a favour, but all others around you, remove anything that has a script from your avatar. The reason I say this is there are quite a few scripts that have special instructions to pull information from the server. Everytime a function like this is called it lags the whole sim, not just you. Like what?

RADAR: this is a big cause of lag. Take it off or just sleep it.
BLING: If you are wearing jewelery, make sure it's no-bling. Shoes also. Why? Two reasons. The particles it uses to make the bling use up resources, AND most bling scripts have a voice command to turn them on and off. This is called a "Listen" command, and it is a huge burden on the servers. Take off the bling.
FLEXI: Do you love flexi? Me too. However it causes lag. If you are wearing a big ol 1000 prim flexi hairdo, with a robe and flowing wings with particles, please reconsider your wardrobe. It lags not just you but the whole sim. If you're curious about how much your avatar is a burden on the system go to the Advanced menu (CTRL-ALT-D to make it show up) and go to ADVANCED--> INFO DISPLAYS --> AVATAR RENDERING COST. You will then see a little number above your head. Note its color. A green color is good. The redder it is the more of a terrible citizen you are ;). For example just try taking off your hair and see how that affects this number.
GESTURES: Every time you do a gesture with a sound, it forces everybody around you to download your sounds and animations whether they can hear it or not. Do everybody a favour and go easy on the gestures.

I hope these changes improve your experience in Second Life and that you enjoy your shop at Damage.

Very sincerely,
Dave Carmichael
Creator of Damage

In addition to the above, there's two additional things you can do in the advanced menu:
* Advanced->Rendering->Run Multiple Threads, which yeilds better performance on multicore systems
* Advanced->Rendering->Fast Alpha, which reduces the transparency of distant alpha textures from 256 levels of transparency to 2 levels of transparency, which can yield a noticeable performance increase on older systems. One of my friends got lagged whenever she tried to type out a message. Enabling this option removed that lag.

Thursday, November 5, 2009

Hints & Tips for New SL Merchants - Part One

I've been in business for over a year now within Second Life, and lately I've been doing more work to improve and promote my business. I've learned a number of things from both strangers and friends that have help to improve sales, and some things to watch out for. I'm recording this information here in a series of blog posts to aid new merchants trying to get their business off the ground.

Part One: Product Signs
This is one of the first ones you need to get under wraps when you start your business. When a potential customer comes to your shop, mall space, or is browsing on xstreet, the first thing they see is the image you put on your item or product listing. Take, for example, the image below:

It's just a snapshot of a bomb resting on sculpted rock with a low-resolution rock texture. When a person is browsing in a shop, they just think "oh, a bomb". Would they guess that this is a tip jar which self-destructs when tipped? No, not unless they have a clue as to what it is. So, you may be tempted to use hovertext scripts. This, however, is not recommended, because it forces you to use up more space in your store, and the text shows through walls, which makes things look ugly and may make your neighbors angry. Some malls forbid you from using hovertext, so that makes things more difficult.

Which leads us to the right way to do it: take a snapshot of your product against a solid background, save the image to your hard drive, and open it up in GIMP, Photoshop, or whatever your preferred image manipulation program is, and work on it. Put a label on it, list the price, set the perms, and quickly state or list the products features. Make sure the arrangement is nice, and pick out a good font. So, you'll go from the vague snapshot above to the sign below:

This is a good example of a product sign. Customers will know what it is and what they're getting. The font I used is thematically appropriate to what is being sold. The permissions are listed as well. The product allows copying and modifying, and this is shown by displaying those words in medium green. However, it does not allow you transfer copies to other users, so it is marked "No-Transfer". The text is in a slightly dark red, and the text size is reduced. As well, the text is large enough to be readable when reduced in size:

Making the sign readable at smaller sizes is a good idea for a number of things. When the image texture is rezzing slowly in-world, it helps that it can be readable before being fully loaded. And believe me, this will come up quite frequently, especially on weekends or lagged sims. As well, readability at small sizes improves the sign's readability from distances, or when it's on a small prim used in a scripted vendor. Lastly, it's good for when you use the sign for product listings on xstreet, as they are reduced in size in lists of products and for the product pages as well.

Notice that I did not use "Lime Green", or RGB 0, 255, 0. It is lazy and easily spotted. That, and lime green can be difficult to read against bright backgrounds. As well, I did not use "Red", or RGB 255,0,0. Using it isn't as bad as lime green, as it is readable against bright backgrounds, but darkening it slightly improves readability, and improves the overall appearance.

Tuesday, October 27, 2009

Oblivion on Wine 1.1.32

Well, it's been a while since my last report, so I'm gettings things underway with my report on Wine 1.1.32. As usual, here's my test system's specifications:

Processor: 2.6ghz AMD Athlon X2 5000+ Brisbane
Memory: 4gb of DDR2-800 SDRAM
Video Card: BFG Tech GeForce 9800 GT, 1gb of video RAM, overclocked out of the box
Operating System: Arch Linux 2009.02, x86_64 architecture
Linux Kernel:
Video Driver:
Wine: Version 1.1.32, compiled with the standard i686 flags for Arch Linux: "-march=i686 -mtune=generic -O2 -pipe"

So, what's different in this version?

Performance: A bit better from what I can see, but I don't know if this is from a newer nVidia display driver or improvements to wine itself. It could be both, as Wine has had a number of direct3D improvements in the past few versions.

Stability: Major improvements here! No crashes during startup or when loading a saved game. The crash when opening the local map still exists, however, but it isn't as common. It seems to originate from opening the local map too soon after an indoors-to-outdoors area transition. So, in this case, the crash is one that can be prevented. As well, the Magic of Midas mod is still unusable, due to the crash that occurs when casting a touch spell on the aurum reactor.

OBSE: I have not tested it yet, but I will be doing a follow-up report on 1.1.32 in the next day or so, where I will include testing data. I've seen a couple of reports on Wine's bug tracker that OBSE is starting to work at random, but I haven't seen any direct evidence myself, so I will be looking into it as well, and see if I can grab any useful debugging data so that the problem can be fixed. For more info on OBSE and WINE, go here for the bug report:

As well, I'd advise anyone wanting this bug fixed to vote on it. You will need to register if you haven't already.

Construction Kit: In the follow-up report on Wine 1.1.32 and all reports following it, I will also be doing reports on the stability of the TES Construction Kit. As memory reminds me, it was very unstable under WINE, so hopefully the stability improvements made between versions 1.1.24 and 1.1.32 of WINE will also improve the construction kit.

nVidia Display Driver: The new 1.90 series of nVidia's display driver has made it onto Arch Linux's testing repositories

Monday, October 26, 2009

A Day of Hard Work

Today I just finished my work on setting up a chroot environment on my system. The result? Instead of relying on 32bit compatability packages to get 32-bit software to run in a 64bit environment, I can just instead run it within a self-contained 32bit environment. No compatability packages, and it's almost like running the software in native 32bit.

The biggest benefit I've seen so far is working audio and video streaming in second life. To get that, I had to run native 64bit versions of omvviewer or meerkat, which had problems with random freezing that didn't exist in the 32bit versions.

The other big benefit I see is being able to run Wine without issues, as it doesn't work as well when run inside of a 64bit environment. In the past, I had done biweekly testing with Elder Scrolls IV, Oblivion, with each new release of Wine. Due to bugs from running 32bit Wine under a 64bit system, I couldn't do any testing. Now that I have a chroot environment, I can run Wine without problems and can continue testing.

EDIT: Well, wine is unusable in the chroot environment. On the other hand, after clearing my .wine directory and starting from scratch, Oblivion has stopped crashing after the opening movie, so I should be able to resume testing now.

Another Failed Hard Drive

Well, after a long period of being unable to play or test Oblivion, I have had a 3rd hard drive failure. Since then, I've been stuck on Arch Linux x86_64, which is installed on my backup hard drive. Today, I had an opportunity to try out Oblivion on Wine 1.1.31. The results? Disappointing. I've been completely unable to get Oblivion to run past the opening movie shown when you start a new game. Soon as it tries to do anything 3D, it crashes. Right now, I'm assuming it is because I'm running Wine on a 64bit system.

So, at this point, I have to get a replacement for my 3rd failed hard drive. The last one they sent me was a refurbished drive. That means that it is one that had already failed and was fixed. So, in all likelihood, they sent me back a refurbished drive for the other replacement. This would explain my bad luck with hard drives.

Tuesday, September 15, 2009

Get Greater Building Precision, Ala Greenlife Emerald Viewer

For those of you who have tried Emerald Viewer, you've noticed that it allows you to edit objects and textures with greater precision. Namely, instead of being able to edit values out to three decimal places, you can edit out to four. But, not all trust Emerald Viewer, so how do you get this feature enabled on your favorite viewer? Easily.

To do it, first open up the folder second life is installed to*, and then navigate to the folder skins/default/xui/en-us/, and then open the file floater_tools.xml. From there, find all instances of decimal_digits="3", and then replace it with decimal_digits="4". After that, you can get further precision with other build tools by replacing all instances of decimal_digits="1" and decimal_digits="2" with a higher number. Aside from being useful for working on very detailed builds (such as jewelry), it also helps a lot when you're trying to correct prim drift.

*Second Life is usually installed to the following folders
Windows: C:\Program Files\SecondLife
Mac OS X: /Applications/Second
Linux: Usually /home/username/SecondLife or /home/username/Desktop/SecondLife

Tuesday, September 8, 2009

Zauber's Browned Coffee

I never drink coffee plain, and usually put in hazelnut creamer. However, I'm out of coffee creamer and money is tight. A while back, my brother got me plain powdered coffee creamer. Why? He only saw "Coffee Creamer" on the list, and got it plain rather than hazelnut. Since then he hasn't repeated it, but the coffee creamer has been sitting unused for a few months. So I put it to use in making my own recipe for coffee.

You take a cup of coffee, and mix in a teaspoon of cinnamon, a tablespoon of brown sugar, and half a teaspoon each of coffee creamer and honey. Stir it well.

Wednesday, August 12, 2009

The Zim Desktop Wiki as a Storywriting Tool

There's plenty of programs available for anyone who wishes to write stories. Most often, the program used is a word processor such as Writer or M$ Word. Those programs are good choices, but are heavyweights. What if you need something simpler, and yet more capable? Then, let me introduce you to the Zim Desktop Wiki. It is a free and open source desktop notetaking application, similar to the Tomboy application. You can write note pages with simple markup in it, and hook up the pages with wiki links. However, Zim is much more suited to the task of writing a story, while Tomboy is too simple and too minimalist to be of practical use. So, we'll continue on with Zim.

(PS: for the anti-Mono folks out there, you will be pleased to know that Zim is written in Perl)

Let's get started. First, install zim with your distribution's package manager. Arch Linux, Fedora, Debian, and Ubuntu all have it on their repos. If it's not on your distro's repositories, or if you're on Windows, you can download it or its sources
here. Once installed, fire it up, and you'll see the launch window. Click on the "Add" button or press ALT-A to create a new notebook. These "notebooks" are a collection of related pages. Choose a directory (or folder) for the notebook to be stored in, and then name it. The other things are optional, and can be modified later from the launch window with the "Change" button. Press "OK" and you'll be taken back to the launch window. Double click on the entry for the notebook you just created, and then the main editing window will be brought up.

Now, at this point familiarize yourself with the interface some. At the top, you'll see some buttons (index, home, back, forward) for browsing and for formatting (link, bold, italic, underline, strike). You'll see a sidebar on the left, which will list your notebook's pages. If you don't see it, press F9 to show it, and press F9 again to hide it. And then you have a blank page. This is the "Home" page, which will usually serve as the table of contents. At the top is the header or title of the page, and below that is the date of creation.

To get started, type in "\diams" and space. You'll get a bullet-point to start things off with. Type out "Chapter One". From there, highlight the words you just typed and then press CTRL-L. The words will become a hyperlink. Click on the hyperlink or press ALT-Enter while the typing cursor is over it. You will be taken to a new page, titled Chapter one. Fill out a small little story, doesn't have to be good or anything, since we're just testing waters. Have a couple names of people and places included.

So, now what? What's the advantage over a full-fledged word processor, aside from having multiple documents? The advantage is the hyperlinking, which we will soon see. Highlight each name you have entered. Then, press CTRL-L like you had done on the first page. Each name is now a hyperlink. From here, you can create a page for each character in your story, giving background information on them, along with personal notes about their history, personality, likes and dislikes, all of that. Then, you can do the same for places, giving as much information or as little as you want about the places and their history. What about events or objects unique or relevant to the story? You can make pages for them as well.

So, what does this give you? An organized way to keep notes about your story, so that they can quickly be looked up at the click of a mouse. Many of the greatest novel writers, such as JRR Tolkien and Frank Herbert have kept extensive notes about their stories. They help greatly with keeping your storyline consistent. I've just touched on only a few of Zim's capabilities. There's many more to be discovered. There is plenty of documentation for it
here. And, to wrap things up, I will indicate one additional use for Zim. You can use it to create web pages, by exporting it all to html. Zim's own website was created this way. So, after your story is published, you can take the notes and use them to put together a website for your fans.

And, of course, there are many other uses for Zim as a note-taking application. You can also use it for research papers, documentation, custom content or rules for Dungeons & Dragons, or for creating simple web sites. For me, though, I use it for story writing, and I can say that it helps a ton. One of these days, though, I need to get around to publishing the aforementioned content for Dungeons and Dragons.

Tuesday, August 11, 2009

The Other Cause of Security Problems

Well, like clockwork we see blog posts and news articles about some new virus, some new kind of malware, a brand new security exploit. I use Linux to avoid this sort of thing, because it's secure by design. But also, I'm a smart person, so I'm not likely to be fooled by the tricks malware authors use to compromise systems. I read this article by Katherine Noyes on Linux Insider just a few minutes ago, which touched on one of the biggest reasons that there are so many computer problems these days. Yes, the 85+ percent market share held by Windows is the main contributor, but it shouldn't hog all the infamy for that.

What's the other reason? There are too many idiots using computers. Yes, that's right. Most people aren't smart enough to use their computers properly. Sure, they can use the mouse, keyboard, and know how to do word processing, email, browsing, play music and watch videos. But beyond that, most users don't give a second thought to keeping their computer secure, keeping it up to date, or maintaining it. Not convinced about users not being smart enough for computer use? Read these quotes from the article linked above:

"the Velma problem, which I named after a customer who you could actually send an email to that said, 'turn off your antivirus and look at these puppy pictures!' -- with a file attached called 'happy_puppy.jpg.exe' -- and she would run it, every single time,"

The worst case I had was a guy that would run ANYTHING that had the word 'lesbians' in it," he added. "The antivirus could scream, the antispyware would do everything but throw itself in front of the guy trying to stop him, and he would ignore or even turn off all his defenses to run 'hot_lesbians.mpg.exe'.

You think that's bad? I have a friend who has to fight his family on computer security issues. He once told off his little sister that she shouldn't be downloading screensavers and eye candy programs from the massive file download websites because they're usually ridden with viruses. She dismissed her brother's well-meaning criticism, saying that the risk is worth it. It is THAT kind of attitude, deliberate ignorance, that makes all of the security problems in the world far, far worse.

So, what can we do to improve security? I say we should add more to the computer classes in our K-12 public education, and make computer security practices mandatory for graduation. Give presentations to classes, so when the kids go home they repeat what they learned to their parents.

That, and require ISP's to take more responsibility for the system security of their customers, by setting up their routers to automatically detect suspicious activity, such as botnet-instigated spam and Denial of Service attacks. That, and requiring all customers to maintain at least basic security.

Many others feel the same way about this problem and the possible solutions. Unfortunately, we come to the thorny issues of time, money, and politics. To get security into public education, and to put more requirements onto ISP's, the government must be persuaded to implement these solutions and write the necessary laws. To any readers out there, start by contacting your local government. That's where it starts. And if any politicians are reading this, you know what to do!

Monday, August 10, 2009

Comcast And The 250 Gigabyte Bandwidth Limit

Well, as many of you are probably aware, Comcast limits the monthly bandwidth of residential customers to 250 gigabytes per month. This is equivalent to downloading 28,500 minutes worth of CD music or 53 full-length DVD movies. Certainly sounds like a lot, but how much exactly is this limit? I did a bit of math to figure out how much continuous bandwidth usage you would need to use in order to break the bandwidth limit.

First of all, since connection speeds are typically rated in bits per second, we will use that as a metric. So, to start off, we figure out how many bits are in 250 gigabytes. One gigabyte is 1024 megabytes, 1 megabyte is 1024 kilobytes, and 1 kilobyte is 1024 bytes. After that, 1 byte is equal to 8 bits. So, we have:

250 gigabytes * 1024 = 256,000 megabytes,
256,000 megabytes * 1024 = 262,144,000 kilobytes,
262,144,000 kilobytes * 1024 = 26,843,546,000 bytes,
26,843,546,000 bytes * 8 = 2,147,483,648,000 bits

As you can see, we're dealing with some very large numbers. 250 gigabytes is just slightly over 2.1 trillion bits of data. That is a lot of data. If you tried to write out every bit, and take one second to write out each bit, it would take you over 68,000 years to finish the task. And an ordinary SATA-3.0 hard drive's interface could theoretically transmit all that data in just a little over 11 minutes.

Back to the main topic of discussion. How much bandwidth would you need to be using in order to go over that amount? Let's find out. There are anywhere between 28 to 31 days in a month, but for these calculations, we'll assume 30.4375 days, which is the average length of a month (including. So, we start as follows: 30.4375 days in a month, 24 hours in a day, 60 minutes in an hour, and 60 seconds in a minute (all figures rounded up into whole numbers):

2,147,483,648,000 bits / 30.5 = 70,553,8777,553 bits per day,
70,553,877,553 bits / 24 = 2,939,744,899 bits per hour,
2,939,744,899 bits / 60 = 48,995,749 bits per minute,
48,995,748 / 60 = 816,596 bits per second,
816,596 / 1024 = 798 kilobits per second

So, there you have it. In order to go over the bandwidth limit, you would need to be using 798 kilobits per second of bandwidth nonstop. If you have some program that is using bandwidth constantly when running, it's a good idea to limit its bandwidth to that amount. If you have another ISP, here's a good rule of thumb to follow: set the bandwidth limit (in kilobits) to three times what the montly bandwidth limit in gigabytes is. So if your ISP limits you to 250 gigabits per month, set it to 750 kilobits. If it's 150 gigabits per month, set it to 450 kilobits.

Sunday, July 26, 2009

How To Make Your Computer 100% Secure

Want to keep hackers from getting into your computer and its data? Follow these simple steps:

1) Open your computer's case
2) Wire up some dynamite, place inside of case and as close as you can to the hard drive(s)
3) Hook detonation wire up to detonator.
4) Place yourself a safe distance from the computer.
5) Activate the detonator, and watch.

Well, I didn't say this was PRACTICAL.

EDIT: I just want to comment that you cannot have perfect security, though. If you want to secure your system, you need to keep your virus protection and firewall up to date. Either that, or just ditch Windows, because it is one of the least secure operating systems. You're probably better off running Linux, Mac OS, Solaris, or FreeBSD. Even with those operating systems, however, you cannot have perfect security, but at least your out-of-the-box security will be better than a Windows system with an up-to-date firewall and antivirus.

Hard Drive on It's Way

Well, my bricked hard drive has been received by the manufacturer, and a replacement will be shipped out soon, most likely tomorrow. If all goes well, I'll have it within a week, and then I'll review how well it runs on versions 1.25, 1.26, and 1.27 of Wine, and then create individual reports after playing on them for about a day or so.

Hopefully, 3rd time will be the charm, as the bricked hard drive was a replacement for another hard drive that failed. I just wish this one had failed in the time frame of the first one. That one I could at least tell was dying, and it took a month to do so. This one? Failed as soon as I rebooted the computer

Monday, July 6, 2009

Oblivion on Wine - 1.1.25 Report Delayed

Some real life issues have prevented me from testing Wine 1.1.25, unfortunately. A few days after writing my report for 1.1.24, my cheap BIOSTAR motherboard's SATA controller failed. The SATA controller is what lets your computer use hard drives and optical drives that use the SATA interface. So, my hard drive and my combo CD/DVD burner were useless. Last thursday or friday I got a PCI-E x1 expansion card with two SATA ports on it, so that I could use the cards again. Guess what? When the SATA controller failed, it also bricked both the hard drive and the burner. The burner is no longer available it seems, so I doubt LG will replace it. As for the hard drive, western digital does free replacements, so for now I'll be waiting for the replacement to arrive.

At present, I'm running on an old PATA hard drive, but the linux installation is 64bit, which I've tried to get Oblivion running on, but keep running into crashes at startup. I think that may be a mod I installed, however.

Saturday, June 27, 2009

My Theories On The 25 Groups Limit

I had been chatting with another Second Life resident earlier today, and offered him an invite to the 4Freedom group. He declined the offer, because he was at his limit on groups. After being told that, I started thinking "Why did they choose that limit?" Then, a pair of theories dawned on me. Either by flawed testing or a flawed chat system (or both) they felt that their servers could not handle the lag from users having more than 25 groups.

We all know that the system is flawed, because it frequently drops messages, and lately group chat sessions have been crashing a lot, the Free Scripting Library especially. And as for flawed testing? I think the Lindens must have been testing the group chat lag with a "worst case scenario". Perhaps this would be done by having all of the testing groups sending and receiving chat messages continuously. A valid test for seeing worse-case load, but not a valid test for everyday load.

For me, the only groups I get a lot of chat from are Free Script Library and Isle of Wyrms Citizens.

Sunday, June 21, 2009

Oblivion on Wine 1.1.24

Well, last friday version 1.1.24 of Wine was released, and after visiting family over the weekend I came back and built the new version. I know I could just install the stock version, but I like the small but noticeable framerate increase I gain from my custom compiling flags. And believe me, I will notice. I notice lag in games more than other people do, because of my higher visual standards. Anyways, once again here is my test machine:

Processor: AMD Athlon X2 5000+ Brisbane
Memory: DDR2-800 SDRAM
Video Card: BFG Tech GeForce 9800 GT, 1gb of video RAM, overclocked out of the box
Operating System: Arch Linux 2009.02, i686 architecture
Linux Kernel:
Video Driver:
Wine: Version 1.1.24, compiled with these flags for a small boost to performance: "-march=athlon64 -mmmx -msse -msse2 -msse3 -m3dnow -02 -fomit-frame-pointer"

This version has a slightly improved framerate, as I was not noticing as much lag.

This is the most noticeable change in Oblivion. Crashes are occuring much less frequently in this version. So far, I have had no crashes on startup, one or two on exiting, and the crashes on game loading still occur, however. Crashing when enabling or disabling mods does not occur for me anymore, perhaps because I am using OMOD in order to do so. And I haven't seen the crash while waiting reoccur in either 1.1.23 or 1.1.24, so I am wondering if that one was just a fluke.

The Oblivion script extender still doesn't work, throwing the same errors on the command line. I have sent an email to one of OBSE's developers, but so far have received no response. Anyone who is interested in seeing this fixed should vote for it here:

You'll need to register for the site, which shouldn't take very long at all.

Monday, June 15, 2009

Oblivion on Wine 1.1.23

Greetings all. I have decided to begin reporting how well Oblivion runs under each version of Wine, a compatability layer for running Windows games and applications under Unix and Unix-like systems such as Linux, Mac OS X, etc. Here is my test system:

Processor: AMD Athlon X2 5000+ Brisbane
Memory: DDR2-800 SDRAM
Video Card: BFG Tech GeForce 9800 GT, 1gb of video RAM, overclocked out of the box
Operating System: Arch Linux 2009.02, i686 architecture
Linux Kernel:
Video Driver:
Wine: Version 1.1.23, compiled with these flags for a small boost to performance: "-march=athlon64 -mmmx -msse -msse2 -msse3 -m3dnow -02 -fomit-frame-pointer"

To start things off, I installed Oblivion and configured Wine as per the instructions detailed on the Unofficial Elder Scrolls Pages. I would recommend installing the directX headers even though it isn't required past version 1.1.20, as there is an annoying error window about dxdllreg.dll that pops up if you don't.

My Impressions on 1.1.23: Oblivion runs with far less lag than it did in previous versions, thanks to the improvements to Wine's direct3D code. I can play on High graphics settings (HDR disabled) with no problem, without installing any of the mods used to reduce lag (operation optimization, qarl's reduced normals, etc.) The castles and the cities which previously lagged for me at single-digit frame rates (Cheydinhal, Bravil) now run much much better. As well, shaders work much better, pbuffer has none of the problems I had with it in the past (crash or screen flipping upside down when entering outdoor areas). And all of this is running "fullscreen", in Wine's virtual desktop. I would normally run it native fullscreen, but I do so due to some crashes (frequent in both Windows and Wine), and my tendency to multitask.

Also, the Oblivion Mod Manager now works under Wine, allowing you to change mod loading orders and install mods that are distributed in the omod format. However, to use it you will first need to install winetricks. On arch, you run "yaourt -S winetricks", and on Ubuntu/Debian you run "sudo apt-get install winetricks". Then, when winetricks is installed, you run "winetricks dotnet20" to install .Net 2.0. The only notable problem is some minor interface bug, which can be mildly annoying. (kudos to Timeslip for releasing OBMM under the GPL)

What Doesn't Work:
  • HDR (High Dynamic Range) doesn't work. You'll be greeted by a blank screen if you have it enabled. If you do want HDR, give the Fake HDR mod a try, though I haven't tested it yet.
  • Antialiasing doesn't work, at least for me. It might work for some people, though.
  • The Oblivion Script Extender mod still doesn't work, so you can't run mods that use it, such as the keyring or deadly reflexes.

Minor Problems:
  • Sometimes when the loading screen comes up when changing areas or fast travelling, the loading screen will rotate 180 degrees.

This version has several issues with crashes, but some of them are easy to work around. It is recommended that you keep a terminal window open, so you can enter the command "wineserver -k" if Oblivion freezes on a crash.
  • Crashing on Startup: This happens on occasion, when Oblivion switches to fullscreen mode. If this occurs repeatedly, what I do is I run "wineserver -k" on a terminal, and then I restart Oblivion from its launcher, wait a few seconds, then close it. Then I restart the launcher again, wait a few seconds, and then start Oblivion. If I get another crash, do the "restart and then close" part twice.
  • Crashing after Enabling/Disabling Mods: Oblivion sometimes crashes after changing the mods list. What you do when enabling or disabling is you exit the launcher after changing the mods you're using. Then, you restart Oblivion normally.
  • Crash When Loading a Saved Game: Oblivion frequently crashes when loading or continuing a saved game from the main menu. What you do is you start a new game (press space to skip opening movie), and then you load your saved game.
  • Crash When Using Local Map Outdoors: This one is nasty. For now, I just recommend to avoid using the minimap when outdoors. However, it sometimes does work, so the problem may be occuring at random. Though, it seems to me like it repeatedly occurs in certain areas.
  • Crash While Waiting: This has occured at random, and only seems to occur when I am waiting for a long period of time, such as when doing Glarthir's quest.
Oblivion Script Extender: The problem that caused OBSE to fail previously is gone, but a new problem has come up. I've placed the terminal output from it below, in case anyone knows what is going on. If you do, please tell me in the comments section:

wine: Unhandled illegal instruction at address 0x7ee347b0 (thread 0019), starting debugger...
Unhandled exception: illegal instruction in 32-bit code (0x7ee347b0).
Register dump:
CS:0073 SS:007b DS:007b ES:007b FS:0033 GS:003b
EIP:7ee347b0 ESP:00efea0c EBP:00efea18 EFLAGS:00210206( R- -- I - -P- )
EAX:00340000 EBX:7efe4448 ECX:7efecaa8 EDX:00000000
ESI:00340000 EDI:00340005
Stack dump:
0x00efea0c: 7efc3a9e 00340005 7efe4448 00eff498
0x00efea1c: 7efc583b 00340000 00340005 0d7cb338
0x00efea2c: 01c9ed22 00000000 00000182 00000001
0x00efea3c: 00000000 00000000 00000000 00000000
0x00efea4c: 00000000 00000000 00000000 00000000
0x00efea5c: 7efe4448 7ffd4000 7ffd41d4 00eff498
=>0 0x7ee347b0 GetTempFileNameW+0x220() in kernel32 (0x00efea18)
1 0x7efc583b call_thread_func+0x4b() in ntdll (0x00eff498)

Wednesday, May 27, 2009

Linden Lab & OpenSpaces - No Shame, No Brain

Well, we all remember the stupidity spawned by Linden Lab's openspace bait-and-switch scheme, where they announced a 67% price increase because users were "abusing" sims, when in reality the server software running second life is not up to the task. In addition to these price increases, they decided to eliminate the educational discounts and grandfathered tiers. As well, they split up the price increase into two stages: increase it from $75 to $95 in January, and from $95 to $125 in June.

Now, they're trying to make amends by allowing grandfathered tiers for openspace sims at the current monthly fee of $95 USD, and giving an offer to reinstate sims abandoned after January at no setup fee. The catch? The grandfathered tiers will be eliminated in June 2010, and when a sim is reinstated none of the builds that were present will be restored. The new sim will just simply be empty.

Linden Lab was hoping users would love to hear this news. What happened? It blew up in their face as they took a well-deserved dose of verbal abuse from the customers they ripped off. Just read though the discussion page of the blog to see the angry reactions of the wronged users:

At this rate, Linden Lab & Second Life won't stand a chance against LiteSim, OpenSimulator, Sirikata, and the other emerging virtual worlds.

Monday, May 25, 2009

Linden Lab Customer Support - Helping Without Being Helpful

Well, yesterday I had attempted to pay someone through their tip jar, and after some confusion we thought the money hadn't been received (although it had). So, thinking that it hadn't gone through, I filed a support ticket to customer service, asking them to find out what happened to the money. Their response?

Hello Zauber:

Thanks for contacting us regarding to your issue.

To view a history of all debits and credits going back up to 45 days for your account you may review your transaction history:

* Go to
* Click the Transaction History link on the right-side of the My Account page
* Set an appropiate time range in the drop-down menues
* You can download the transactions history, or you can watch it online. Please keep in mind that only the last 30 days will be stored, so if you're interested in a longer overview, please download at least once a month.

Please note that as transaction histories are only retained for thirty days, we encourage residents to regularly review and download their history for future reference.

Was Jia Ontyne, the responder, actually trying to be helpful or just giving me a random generic canned response? That, and Jia immediately closed the support ticket after offering his/her own brand of "help." Anyone have other stories about the blunders of Linden Lag's customer support?

Thursday, May 21, 2009

Windows Geniuine Advantage Strikes Again!

Well, my mother's in a bit of a fix. Several of her programs on Windows XP refuse to run because she doesn't have Service Pack 3 installed. So, she tried installing it. Several times. Each time it failed she gets an "access denied" message. I blame the faulty Windows Genuine Advantage system that M$ hacked together.

So anyways, she'll want me to talk to M$ customer oppression because she can't hear on the phone. My brother once had to deal with M$ customer service to get the activation key for his copy of Windows XP. You know how if you call customer service and get an automated machine that does more to frustrate you than help? Well, my brother's experience was with M$ customer service was a new level above that!

Building Limits: Are Some of Them Sane?

We all know that you can't build above 4096m in Second Life, but this building limit has some valid reasoning behind it. Why? Floating point accuracy. Floating Point numbers are, in computer terms, non-whole numbers such as 1.5, 2.625, or 3.14159. Computers are unable to represent them with full accuracy, and a few different systems are used to do so. Each of these systems has numbers that they cannot represent. This results in odd little bugs from time to time, such as prim drift.

These errors are hardly noticeable at ground level, but as you go up in height, they begin to become more apparent. At 5,000m, they become even more noticeable. At 1,000,000 meters up, things are just insane, as you can see below:

Saturday, May 16, 2009

Make SecondLife Use a Ramdisk Cache

Here's some simple instructions and information on how to make SecondLife store it's cached files on a RAM Disk.

1) What's a RAM Disk?
A RAM Disk is a segment of RAM that is used in a fashion similar to a hard drive. Files and directories can be created in it, and it functions in all respects like the normal file system of a computer, and can be accessed by your applications.

2) Advantages
RAM has historically been much faster than hard drives. For example, DDR2-800 RAM has a maximum data transfer rate of 6.4 gigabytes/s, while a Sata3 hard drive has a maximum data transfer rate of 3 gigabytes/s. However, this is the maximum speed of the Sata3 interface. In reality, the data transfer rate of the hard drive itself is somewhat slower. As well, the faster speed of RAM allows for faster indexing operations and loading, making Second Life run more efficiently in this respect. Also, if you are worried about stressing your hard drive, using a RAM Disk cache helps a lot.

3) Disadvantage
RAM is volatile memory, meaning all of the data stored is lost when the computer is shut down. As a result, shutting down or rebooting your computer causes Second Life's cache to be lost, and it is recreated the next time Second Life is run. If you are using Linux, this is not as much of a problem as rebooting and shutting down frequently is not usually necesary. Also, If you have an ISP such as Comcast or AT&T (especially AT&T) that caps your monthly bandwidth, I would not advise using this method if you shutdown frequently, as it increases your risk of going over your bandwidth limit.


Instructions (Linux)

First, you fire up your favorite text editor as root, and open the /etc/fstab file. Add the following line to the file, replacing all instances of /path/to/ramdisk below with the desired mounting point for the RAM Disk:

none /path/to/ramdisk tmpfs defaults,size=1G 0 0

After you've added the entry to /etc/fstab, you (while still in root) create the directory that the RAM Disk will be mounted to by running the command "mkdir /path/to/ramdisk". After that, check to see if the ramdisk's directory is set with the proper permissions (allow any user or any group to view and modify contents). If it doesn't have the correct permissions, set them or set yourself as the directory's owner. Note that if the directory has the improper permissions, you'll have to set them each time you reboot. Once the above done, you mount the directory with "mount /path/to/ramdisk".

After this, you fire up Second Life and open the Network tab in the Preferences menu. Click the button that says "Set" and set it to /path/to/ramdisk. After that, apply the changes, and close the preferences menu. You'll need to restart Second Life in order to take advantage of the RAM Disk. When Second Life next starts up, it'll clear the old cache and begin using the RAM Disk.


Instructions (Mac OS)

To do this under Mac, you open up a terminal, and run these commands (excluding the "$" and the space following it). The instructions assume the cache size is 500mb. Replace the 524,288,000 with 1,048,576,000 for a 1000mb cache. Be warned, however, that larger caches produce lag.

Also, the hdid command may produce a disk with a different name, such as /dev/disk4. If that happens, you replace all instances of /dev/disk1 below with whatever name it gives the disk.

$ hdid -nomount ram://524288000
$ newfs_hfs /dev/disk1
$ mkdir /tmp/ramdisk1
$ mount -t hfs /dev/disk1 /tmp/ramdisk1

After you've mounted the RAM Disk, follow the steps of the last paragraph for the Linux instructions.


Instructions (Windows)
I don't have a windows machine to test this on, though the instructions are easy to find through Google, though you'll need to install drivers in order to create the RAM Disk. Once the RAM Disk is created, you follow the steps in the last paragraph of the instructions for Linux.

This page seems to be a good resource for learning how to create a RAM Disk:


Procedural Content Generation: The Future of Virtual Worlds?

Late last year, shortly before the openspace shangri-lala started, me and a friend of mine were talking of ways to implement an alternative to SecondLife. We spoke about using a few engines as a base, such as Sauerbraten and Irrlicht. The thoughts were eventually dropped. However, one idea that I came up with during the discussion was the use of procedural content generation.

What is it? It's a system of algorithms designed for dynamically generating content for a game on the fly, either by random number generation or specific algorithms. For example, it could be used to generate random levels. Elder Scrolls II, Diablo I & II, Dark Cloud I & II (and III, but that's vaporware) all use it. Angband, ADOM, Lost Labyrinth, and virtually every roguelike game ever made use procedural generation to create levels.

In addition, procedural synthesis can be used to generate textures, animations, sounds, objects, etc. Games such as Spore and .kkrieger both use it extensively. The game .kkrieger can be considered "overkill" with procedural generation: everything in the game is generated dynamically. Because of this, the game takes up only 96 kilobytes, while a conventional game equivalent to .kkrieger would use upwards of two or three hundred megabytes. On a 2.6ghz dual core, all of the game content is generated in the space of 10-20 seconds. This screenshot from .kkrieger demonstrates the results. As well, the image itself is more than half the size of the game at 58 kilobytes.

As you can see, the use of procedural generation can be invaluable with saving disk space in a game. With the increasing demand for higher-quality textures in modern games, procedural generation is seeing greatly increased usage. As well, there are a number of tools that have been created to allow game developers to take advantage of procedural generation such as SpeedTree, Terragen, Genetica, and GML. As well, the open source 3d modeller Art of Illusion contains a built-in node-based texture generator (yes Wayfinder, it is GPL ;-).

Use In Virtual Worlds
So, what if Virtual Worlds were to take advantage of procedural generation? The most immediate benefits are the obvious ones: massive reduction in bandwidth and far less data to store. There are other benefits too. A user that doesn't have the know-how to use photoshop or gimp could use tools built in to the viewer (or external to it) in order to generate their own procedural textures.

Different tools could be used to generate different kinds of specialty textures, such as skins, clothing, hairs, eyes, etc. Art of Illusion and Genetica both use a node-based system to generate textures. As well, this approach could be used to generate both sounds and animations. As well, sounds and animations could be generated in a similar manner.

As well, sculpties / meshes could be generated by a set of tools, such as a "pottery wheel" system where you create a line that generates a symetrical sculpt/mesh much like a pot or vase, converting linked objects into a sculpt/mesh, or manually editing the vertices of a mesh (perhaps an undesireable method for some).

Another possibility is generating textures from scripts. An example of this would be signs that can change the texture, or perhaps it could be used to dynamically generate an interface for HUDs.

I'll try to simplify this for the non-techie SL users. Procedural generation is a kind of computer program that can produce images, sounds, animations, and objects by following a set of rules, set both by the developer of the program and the program's user. For example, by choosing a brick pattern, colors, and a noise filter, you could create a brick texture.

As for the space savings, the data for generating the texture would be stored on the asset servers as "bytecode", or a script which has been reduced from something human-readable (text file) to something computer-readable. Each one of these files will take up less than 1 kilobyte (1024 bytes), while a typical 512x512 texture will be 20-30 kilobytes. That is, of course, if the image is a jpeg. Other formats such as png, tga, and bmp will use far more memory.

In any case, the use of procedural texture generation would not eliminate the need for storing traditional textures, as in the case of snapshots or textures produced by other means.

I would personally like to see this technology implemented in virtual worlds such as OpenSimulator, LiteSim, or Sirikata. OpenSimulator already has a very basic level of this started with some OSSL functions that can edit textures.
Yes, I have a blog now. I'll put stuff up here when I feel like it :P