May 29, 2005

ZipFileSystem Class

I uploaded my first pass at a ZipFileSystem class to the RSEngine page. This does require use of SharpZipLib 0.8.3a or higher.

It's pretty easy to use, and it allows "pure" vs. "impure" file loads as well.

        ZipFileSystem.AddDirToFileSystem("C:\DOOM3\BASE", ".PK4", True)
Dim sr As New System.IO.StreamReader(ZipFileSystem.OpenFile("maps/game/mp/"))
The first parameter is that of the directory you want added to the file system. You can stack multiple directories, and duplicated names will be overriden by later files.

The second parameter is that of the archive extension you wish to use. Doom 3 uses .PK4 for their extension, hence the .PK4 in the parameter.

The final parameter should be set to False if you want to allow non-packed files in that directory to override files in the archives. If you set it to False and there is a non-packed file in that directory, the IsTrue() shared function in the class will return False.

If you call OpenFile for a file that doesn't exist, OpenFile returns Nothing/Null.

You can also reset the file system should you want to go back to pure or allow impure files. A later version will return a pure CRC64 that can be used for matchmaking purposes.

May 28, 2005

You Know You're A Software Tester When...

10) ...the words "It works on my machine" trigger a near-homicidal rage.

9) reinstall Windows so often, you have the Windows XP Activation Hotline on speed-dial.

8) feel that spending 3 hours setting up for a 10-minute test is worthwhile.

7) spend four hours coming up with consistent repro steps when you find a bug in a product you aren't working on.

6) ...the words "pointer arithmetic" leave you in a cold sweat.

5) ...your MP3 playlists are based off of how long it takes for the latest build to install.

4) ...if you stacked all of the burned CD's in your office/cubicle on top of each other, the stack would be larger than you.

3) ...non-reproducible bugs keep you up at night.

2) ...the image of your defect tracking software is burned into your monitor.

...and the number one sign that you're a software tester...

1) realize you'll never get respect, so you decide to settle for fear.

May 26, 2005

QA Staffing Plan Redux

After a lot of thought and some time spent examining staffing on games I would consider "stable" vs. games that I would consider "unstable fecal matter," I've decided to revise my personal set of staffing guidelines for projects.

All major projects will most likely require a minimum of one experienced test lead and one full-time experienced tester.

Add one inexperienced/contingent tester or one-half of an experienced tester (either locally or at the publisher) for each hour it will take the average gamer to complete all levels and all required and optional objectives/goals.

If the game is multiplayer, add one experienced full-time tester.

If the game's multiplayer mode includes AI, add one experienced full-time tester.

If the game's multiplayer mode involves cooperative play, add four experienced full-time testers.

If the game is shipping on multiple platforms, but sharing a code base, add one experienced full-time tester per platform to focus on certification requirements.

If the game is shipping using a 3D engine that has not been used in a shipping title before, add one experienced full-time tester.

If the team has never shipped a title before, double the testing estimate.

Microsoft Component Installer SDK

Microsoft Component Installer SDK Download - via "The Z-Buffer" Managed DirectX site

Oh, thank you, thank you, thank you, thank you, thank you! Can you make sure this thing ships with VS 2005, is potentially skinnable, and will just run the post-build step if everything is already installed?

May 25, 2005

Managed DirectX Google Juice

Zman has a post on his main page about his efforts to increase his PageRank for Managed DirectX.

If you read my blog, and want to help, put a link in your blog to The Z-Buffer and include Managed DirectX in the link text.

The Z-Buffer is an invaluable Managed DirectX resource, and we should give him all the Google Juice we can.

You clever bastard...

When I wrote the Doom 3 polysoup maker, one thing that surprised me was how much geometry was actually outside the worldspawn and had to be translated back into place. It just didn't make any sense to me.

While showering this morning, I figured it out, and all I could think was, "Carmack, you are a clever bastard..."

Doom 3 uses a combination portal/PVS engine to determine what to render. Lots of information gets precalculated, but all of it can be regenerated from the .map file.

Doom 3 seems to use a BSP to speed generation of the PVS. The more geometry that is located inside the worldspawn, the longer it takes to generate the BSP and the more PVS nodes that will end up being created. Once the PVS has been determined, the rest of the geometry seems to get shifted back and associated with the PVS nodes.

So it seems that for optimal map generation speed and PVS generation speed, the worldspawn should only contain the base geometry for the world, any static brushes that are going to be used to block vis, and the portals.

As for brushes that aren't going to move that are going to have non-moving lights strike them and cast shadows, I'm not sure if they should be in the worldspawn or not. That's going to require some additional testing to determine...but still, Carmack, you are a clever bastard.

May 24, 2005

Doom 3 Polygon Soup

Thumbnail of topdown of D3DM1Well, I felt guilty about not updating my homepage since March, so I decided to put up a small update.

On the RSEngine page, I put up my first pass at a Visual Basic .NET version of a Doom 3 level compiler. Right now, it only converts the brushDef3 brushes to polygon soup because I haven't figured out how to polysoup patches yet, but it's a step in the right direction.

This version does use the C# library Exocortex.Geometry3D for plane equations, but the final version will be VB.NET only.

Please don't judge the code's a work in progress, although to be honest, at least it works.

May 20, 2005

Marketing No-No's

This is a plea to anyone out there currently involved in video game marketing...for the love of all that is holy, never Photoshop a screenshot. Never render out something ahead of time from Maya or 3D Studio MAX and pass it off as real-time. If it's from the game, don't touch it up.

You may think you are just showing a composite image. You may think you're making the game look like what it will look like when it ships. You may think you are helping your product out. You aren't. In fact, you're hurting your product more than anything else possibly could do.

Allow me to give an example from history. Back when "Amped: Freestyle Snowboarding" was announced, a few screenshots were given to marketing to release. The shots, while accurate, were bland. The content was still months away from really being "showable." So, some schmuck in marketing added a lens flare to the screenshots using Photoshop. They released those screenshots in March 2001 during GameStock.

The community picked up on the "enhancement" fairly quickly and were quickly pounding not only the game, but the studio and the Xbox as a result of it. It got to the point where Microsoft had to put the following on the official Xbox web site on March 16, 2001:
Some of the images for Amped released during Gamestock were enhanced to illustrate some features that will be in the final product. While this is a common practice for games so early in development, we apologize for the confusion. No one intended to be deceptive. Everyone was so busy prepping for Gamestock, that we just missed the fact that these were labeled "concept art". Frankly, we're impressed with the skillz of those digital sleuths! Nice work!
It wasn't concept art. It was a touched-up screenshot. Now, there were two months left until E3, and it took a couple of man-weeks of time in there that could have been spent doing more productive work to implement a real-time version of the Photoshop lens flare effect so that when people actually played the game for the first time at E3, they'd see that the game looked like the screenshots, and forget the controversy. Morale was shot on the team because they were hearing nothing but bad things about the game because of the controversy. Morale didn't improve until E3, unfortunately.

Now I want to make one thing clear: if your game looks great, but the frame rate isn't quite up there, go ahead and do an in-engine render out for your video while you fix the frame rate. Performance problems can be fixed. Things like what's going on with "Killzone 2" at E3, however, cannot be fixed as easily. When people saw this video, they truly believed that this is what "Killzone 2" was going to look like. If "Killzone 2" doesn't look like this, meaning that the explosions, smoke, carnage, model animations, etc., don't look this good or better, then you're going to be in trouble.

May 19, 2005

"The Elements"

I'm wrapping up some work tasks right now so I can leave to meet my wife to see "Star Wars Episode III: Revenge of the Sith" in a couple of hours, but I found this and thought I'd share it.

"The Elements" is a song written and performed by Tom Lehrer during the mid-fifties, and is essentially a musical recitation of the periodic table as known at the time. This Flash animation set to the song is cute and subdued...the exact opposite of Tom Lehrer.

A boxset was released called "The Remains of Tom Lehrer," and it sits right on my entertainment center at home so that anyone who cares to look can know exactly how warped I am. Other great songs by Tom Lehrer include "The Hunting Song," ("I went and shot the maximum the game laws would allow...two game wardens, seven hunters and a cow.") "Poisoning Pigeons in the Park," ("We'll slaughter them all among laughter and merriment...except for the few we take home to experiment...") and my absolute favorite, "I Hold Your Hand In Mine." Full lyrics below.

I Hold Your Hand In Mine

I hold your hand in mine, dear;
I press it to my lips.
I take a healthy bite
From your dainty fingertips.

My joy would be complete, dear,
If you were only here;
But still I keep your hand
As a precious souvenier.

The night you died, I cut it off;
I really don't know why;
For now each time I kiss it,
I get bloodstains on my tie.

I'm sorry now I killed you,
For our love was so divine!
Until they come to get me,
I shall hold your hand in mine.

There are three scary things here. One, I remember that song word for word without having to listen to it. Second, I actually sing that song to my wife from time to time. Third, she's still with me. Go figure.

May 18, 2005

Not Dead Yet

I got a concerned E-mail today from a previous co-worker who was worried about me.

Evidently, he was so used to me posting here at least once a day that when my output dropped, he thought I was being worked to death.

Nothing could be further from the truth. I'm not being worked to death. I'm being worked to thinness. (Yeah, that's it...that's the ticket.)

No, things have been really busy at work and it's only going to get busier. On the upside, I'll likely be up in Bellevue, Washington for at least two days in June and I'll be back in Utah sometime in October/November for a few days.

I'll still post when I can, and when I can actually think of something. Unfortunately, the two do not often correlate, but I'm glad to see that my blog is used as a means of gauging whether or not I'm alive...

Derek Smart's baaaaack...

Derek Smart, developer of one of only two games I have ever returned to the store (the second being "Shrek" for the Xbox), is back in the news. It seems there is yet another publisher he can't get along with.

I'm going to posit a few potential hangups that 3000AD may have had with DreamCatcher. I may be right, I may be wrong, who knows?

1) DreamCatcher signed off on the gold master for UC:AWA back on 4/15, but decided to hold the product for a better launch window. It sucks when it happens, but it does happen in this industry. I've seen it several times where a product is finished and just sitting in the wings waiting for the proper launch window. Simulation games generally sell best in late August through early October when parents pick up games for themselves after sending their kids to school.

2) 3000AD signed off on the gold master, but DreamCatcher didn't. This also happens quite often. It's very possible that DC found a metric shit-ton of bugs that they didn't want to have to support. Technical support is expensive. A single support call back at Microsoft Game Studios on Golf 2001 would completely wipe out the profit of two sales. That's why publisher QA has to be a bunch of hard-asses...if they weren't, support costs would eat everyone's lunch.

3) The gold master may have been approved, but contractual issues stopped production and distribution of the title. These issues probably ranged from royalty payment levels to payment periods to marketing commitments. Marketing probably played the biggest part in this, as I wasn't aware that another 3000AD title was coming out. DC was probably doing the smart thing and waiting for Smart & Co. to finish the product before starting to market it so that they wouldn't have three years of "Derek Smart will make you his bitch" ads before the release of the add-on pack.

Well, I'm glad I don't work for the man.

Mass Exodus at Keenspot?

Keenspot, the webcomic giant, seems to be losing a ton of their staple comics lately.

Checkerboard Nightmare, It's Walky!/Roomies/Shortpacked, Greystone Inn are leaving, all claiming "business reasons." From what I understand, artists that have left Keenspot and just ran Google text ads on their sites have been getting anywhere from equivalent earnings to five times what they made under the Keenspot umbrella.

Now I know that Keenspot has been acting like an 800 pound gorilla for awhile now, and that competitors like Modern Tales haven't really put a dent in them, but mass defections like this, especially if more and more comic artists come out and say they were better off after the move, are going to really hurt the service.

For Keenspot to survive what's coming, they're going to have to shift from a percentage-earned system to a decent CPM model for their artists. Otherwise, there won't be any earnings to share...

May 16, 2005

Managed DirectX Tutorials

Busy day today...trying to finish milestone tasks to see if I have any home whatsoever of making the Geek Gathering tonight.

While I toil away, here is a link to some Managed Direct3D tutorials by Craig Andera.

Milestone work...grumble grumble...

May 14, 2005

Live Aware = Viral Marketing

You know, the marketing machine at Microsoft is a force to be reckoned with, but Xbox Live is something that even Robert Scoble has to be proud of...even if it doesn't have an RSS feed.

For the last couple of years, more and more Xbox single-player games have been becoming Xbox Live! Aware. What that means is that even if you are playing a single player game, you can still receive multiplayer game invites and the like while you are playing your single player games. You can also associate your GamerTag with your Microsoft Passport to unlock web functionality for your title, such as the added stats stuff for Halo 2. So what are the marketing benefits of this? Simple. You get immediate viral marketing on any Xbox Live or Live Aware title.

Someone is playing 'Halo 2'"Huh?" you may ask. Well, when I'm at my computer, I am one click away from seeing if one of my Xbox friends pops in a copy of a Xbox Live/Live Aware game. For example, one of my friend's is playing "Halo 2" right now while I'm at work on a milestone crunch. (Bastard.) I also get MSN Alerts whenever one of my friend's start playing. I also see what games they are playing in my Friends list on the Xbox, and with the Xbox 360, I'll have access to that information in every single game, online or single player.

So what does that mean? Well, I'll be playing "Quake IV" on my Xbox 360, and I'll get a little alert in the corner showing that one of my friend's is online. I'll pop it in, and see he's playing "Eggplant Farmer VIII: The Fertilizing," and immediately know that a) my friend has strange taste in video games, and b) that the game is available. As more of my friend's pop in their latest copy of "Eggplant Farmer VIII," I'm going to get curious about this game. Is eggplant farming really the rage nowadays? At that point, I'm very likely to go out and pick up a copy of "Eggplant Farmer VIII" because my friend's have picked it up.

Think of it as word of mouth without any action required by the people who are making the inadvertant recommendation.

May 13, 2005

Copyright Wars

I don't blog politically very often, but I guess it's time for one of my patented Blinding Flashes of the Obvious™.

As many people are aware, copyright law has become more and more stringent and restrictive over the last two decades as content creators worked hard to protect their previously produced paying properties. Laws have been passed specifically to protect Mickey Mouse from the horrid experience of having his face plastered on the top of a condom, and the rights of those who view or use copyrighted materials have dwindled into near nothingness.

Recently, the court system found that an even more onerous restriction being placed on digital television was illegal because the FCC did not have the authority to implement that restriction. So the MPAA is trying to end-run the ruling by working on giving the FCC the rights to implement the restriction.

Now the MPAA and RIAA have pretty much rubbed everyone the wrong way on a lot of things, including this. I'm not saying that the prevalence of file-sharing networks didn't deserve a response like this, but I'm going to set the P2P networks aside for a moment and come back to it later.

There are two issues that are very prevalent in minds of most people who are involved in digital media: the "First Sale" doctrine, and "Fair Use."

The "First Sale" doctrine states that if I sell you something, you can then do whatever you want with that something for your own use. You can destroy it, rip it apart, set it on fire, sell it, whatever.

"Fair Use" means that there are certain derivitave uses that are "freely allowed." For example, ripping a CD so that I can play it on my portable media center is considered "fair use." Distributing copies of those files is not considered "fair use" because it's not for my personal use. Distributing brief snippets of those files as a part of something else that is new is considered "fair use" sometimes, but it isn't spelled out exactly how.

Now, I'm all for media companies taking steps to ensure that they get paid for their work. I really am. I'm all for throwing the book at commercial pirates, those people who illegally copy works and sell them unmodified or nearly unmodified for money.

However, the media companies' steps so far have been to further restrict the abilities of the common man to extract "fair use" or exercise their "first sale" doctrine rights. Thanks to CSS, it is not easy for me to rip my DVD's to a format that can be read by my portable media center without violating the DMCA. Thanks to the prevalence of locking CD keys to computers, it is nearly impossible for me to sell versions of operating systems I am no longer using, or sell obsoleted copies of several pieces of utility software that I own.

The copyright system is built on a system of balances. In exchange for a temporary monopoly on distribution and manufacture of a work, the public receives some "fair use" rights to the work in question and receives the work in full after the expiration of the copyright period.

Over the last twenty years, more and more restrictions have been placed on the ablities of the public and more and more rights and longer terms have been granted to those who own the copyrights. As a result, people are feeling shafted. The system has never been excessively balanced, and laws such as the Sonny Bono Copyright Extension and the DMCA have caused the rights of the end user to be even further eroded.

Now for the Blinding Flash of the Obvious™: Digital theft as it is currently occuring is a direct result of these additional restrictions being placed without a similar expansion of our end user rights being implemented. Or to be vulgar, we've started stealing money out of Media's wallet on the nightstand because when Media is screwing us up the ass, Media doesn't even have the common courtesy to give us a reacharound.

Unfortunately, we don't currently have any effective advocates for our cause as end users. The EFF is willing to help, but they have to come across as full idealists in order to get any funding from the Slashdot crowd, and that hurts them in the long run. Microsoft and Intel are having to play both sides in order to stop themselves from becoming targets. Even the artists who defend the actions of end users aren't effective advocates because most of them who are coming to the end user's defense are people who don't own the rights to their own work to begin with.

Up to this point, Big Media has been able to waive off criticisms by saying that users will still be able to have their "fair use" rights with one hand while pummeling those rights down to nothingness with the other. Whenever something comes along (ala iTunes) that gives people more control over the system, Big Media tries to either destroy it with unsettlingly high royalty rates, legal challenges, and the standard "this will destroy our business" FUD that has been screamed for the last hundred years.

So I've got an idea for a long-term solution that won't be popular on any side, but let's discuss it.

Step 1: Freeze the current set of laws in it's place. Don't backdoor the system any further than it currently is to give other entities the ability to create new restrictions.

Step 2: Allow Big Media to bring to the plate new laws and restrictions. However, any new laws and restrictions that are proposed will have to come with true concessions.

For example, Big Media wants it so that if a backdoor is found in a next-generation DVD player, that all of those DVD players should be disabled. Okay, what if I say, "You can have that, but in exchange, I want to be able to rip a next-gen DVD to a portable device *and* I want to be able to use up to 5% of any footage on any next-gen disc at no cost for non-profit works"?

E-book publisher's want to restrict the number of devices an E-book can reside on. Okay, what if I say, "You can have that, but in exchange, I want your products to be able to freely parse the E-book into accessible formats such as Text-To-Speech, and I want the ability to print them with non-intrusive watermarks"?

Big Media is going to balk at anything like this. They aren't use to having to give up something for something else. Consumers are going to balk at this. Millions will find that their investments suddenly don't work.

Fact of the matter is that we're in for a hell of a decade of battles on these fronts. With the amount of P2P IP theft occuring, Big Media is able to effectively play the victim even while we bleed from below. But if we don't take a stand now, the next century will have us hamstrung with more media we can't use, whether it be music we can't listen to, movies we can't watch, or books we can't read to our children. Not because we didn't pay for it, but because we didn't pay for the right version of it for what we wanted.

May 12, 2005

VSTS, Round 2

Three weeks after my last post on the VSTS pricing fiasco, Sanjay Parthasarthy has released a new message from the Visual Studio team.
We announced our product line and pricing in March, significantly ahead of product availability. What we heard from customers time and again was that they wanted Microsoft to provide as much advance notice as possible regarding product changes. Since the March announcement, we have received quite a bit of feedback about the SKU strategy, pricing and licensing.

We will place a limited version of Team Foundation Server in each edition of the Visual Studio Team System family (Architects, Developers and Testers). This version will be restricted to a maximum of five users and should serve the needs of smaller organizations. Teams that have a need for more users should still find that Team Foundation Server is significantly more cost effective than current source code control solutions and offers tremendous value through its role as the core of integration across all of the Team System.

To address the broader feedback on pricing, we have also finalized promotional pricing around Team Suite to enable current subscribers to more easily upgrade to the full Visual Studio product line. Going forward into 2005, MSDN Universal customers will have three choices:

Universal subscribers that want all of the client functionality of Team System will be able to upgrade to Team Suite by paying just the incremental software assurance or renewal price for the duration of their agreement. In retail, this amounts to around $2,300 and for most customers this represents a 75% or more discount on the full price of Team Suite. Volume customers will, of course, pay less.
Universal subscribers who want Team Edition for Software Architects, Team Edition for Software Developers, or Team Edition for Software Testers will be able to upgrade at no additional cost. Each of these “role Editions” includes the MSDN Premium Subscription.
Universal subscribers who want the 2005 equivalent of MSDN Universal can simply choose Visual Studio 2005 Professional Edition with MSDN Premium Subscription and get the functional equivalent of MSDN Universal for about 15% less than what they paid today.

The product team has also updated the information on the entire Visual Studio 2005 line at Pricing details are at

We will continue to improve the site based on your feedback and our customers’ feedback, so please keep the input coming.

(Quoted from David Boschmans' blog.)

So, let's start with the good. Microsoft made the right decision including a limited version of TFS inside each copy of a Team Edition. Team Foundation is leaps and bounds above SourceSafe, and the five-user limit is reasonable. Given that they're highballing the CAL's, it might be more reasonable to give the server away for free, and make all their money off of the CAL's for Professional and the insane pricing for VSTS, but this is a step in the right direction.

The upgrade pricing to Team Suite ($2,300) from MSDN Universal is also reasonable.

Microsoft corrected their original FUBAR where they had Visual Studio 2005 Tools for the Microsoft Office System (say that 3 times fast) at Team Edition prices and they put it at the same price as the Professional Edition.

Now for the bad...we still don't have Team Edition SKU's untethered from MSDN Premium for individuals and smaller development houses. Larger development houses using Open Licensing that are renewing will pay more per seat for their Team Edition SKU's than smaller houses renewing (Larger houses: $6,382 for 2 years per seat; Smaller houses: $4,598 for 2 years per seat).

(Before I continue, I want to make a small point. Let's say I have two pieces of wood that are the same size. One was sold to me last year, was called "Wood," and was sold to me for $5. The other was sold to me this year, was water-treated, was called "Construction Materials," and was sold to me for $50. Just because the name changes and a couple of features are added doesn't mean the product is just means that marketing got ahold of it.)

Microsoft still has to prove that Team Suite and the Team Editions are an excellent value if they want to win the market. Right now, they can prove they are an okay value in that what you get in the box is priced comparably to products from established industry players who have been doing this for years. However, this has two issues.

First, Microsoft still has the version 1 curse over its head. You know the curse..."Nothing from the House that Bill built will be worth anything until it hits the third major version..." Developers know the curse better than anyone, as we've been bitten by it many a time. DOS was miserable to code for until v3.3... Windows 16-bit was miserable until v3.1... Windows 32-bit was miserable until Windows 98 (Win32->Win95->Win98)... NT was miserable until Windows XP (NT->2000->XP)... "The Rule of Three" rules Microsoft, and I don't see this product being any different.

Second, Microsoft seems to actively be trying not to win. They went and spoke to who they were going to be competing with prior to announcing(SourceGear, etc.) and priced themselves so that they wouldn't be a threat. Microsoft has never won a market by playing "nice." They've always played hardball and in the end, either owned the market outright (Office, Windows), held a major presence which they used to advance the market (Money, SQL Server, Windows Mobile), or realized they were losing and dropped the market (UltimateTV).

So Microsoft, get back to me when you have an untethered individual SKU for Team Developer at a price resembling Enterprise Architect/Enterprise Developer, and we'll try "Round 3."


If you sent me an E-mail during the last 24 hours, could you please resend it? My MSN E-mail address capacity went from 2Gb to 2Mb overnight, and it wasn't fixed until this morning.

May 9, 2005

Portable Media Pain-In-The-Ass

Well, I received my Creative Zen Portable Media Center today. I got all of five minutes of playback out of it before it crapped out with error screen after error screen. Now, my 20Gb PMC, when it is sporadically recognized by Windows, is being seen as a 4Gb ZEN Flash Player with no video support.


I've contacted Creative's Customer Care Department, and will soon see if they've improved at all since the last time I had to deal with them...I'll update this post with any changes.

Update 10:31am: Fixed, but in a funky way. Evidently, I had to find a computer that was compatible with the firmware launcher (my Media Center PC wasn't, and neither was my wife's laptop), install the driver CD that came with it, install the firmware update, manually reset the device when the firmware flasher said "Rebooting the device," and then letting it finish.

If you do follow those instructions, do so at your own risk.

Portable Media Center First Impressions

I just got my Portable Media Center this morning, and here are two quick first impressions.

1) It is light. Very light. It feels slightly heavier than a pack of cards with the battery in, and about as heavy as two packs of cards with the easel protective case on it.

2) Preloading webcasts is not a very good way to show it off, as webcasts have shitty video and audio.

When I get it home, I'm going to sync over stuff from my Media Center PC and we'll see how it looks after that.

May 6, 2005

Shredding CD's

As geeks, there are very few socially acceptable ways for us to take out our frustration on physical objects, but there is at least one that can have great value to your psyche as well as make good business sense...destroying and mangling outdated CD's.

I'm sure we've all taken box knives to CD's with outmoded, bad or proprietary data to destroy them. Some of us have risked our lives cracking them in two with our hands over a trash can. Even others have built high-speed rotating CD mounts to cause the CD's to lose structural integrity and explode. However, all of those require a certain amount of physical risk to a person. Box knives cut hands much easier than CD's; cracking them in two risks eyes, skin and hands to the whims of fate; and just look at the results of the ballistic gel dummy to see the end result of the structural integrity of a CD failing.

So you need to get yourself a CD shredder. I've used two types: a CD perforator, and a strip-cut CD shredder.

For the CD perforator, I recommend Alera Technologies' DVD/CD Shredder. This is a newer version of what we used back at Microsoft Game Studios. What happens is you push your CD in the front of the machine, and it comes out the other side with thousands of holes punched through it.

For real fun with the Alera shredder, after you pass the disk through, flip it over and run it through again, flip, repeat, flip, repeat, flip and repeat. Then just let it sit in your hand. Each time you pass it through, you weaken the adhesive that keeps the two plasic disc halves together. Eventually, the disk itself will seperate with a satisfying "pop." NOTE: This may invalidate the warrantee on your CD shredder, so please do it at your own risk.

For the strip cut shredder, any that have a CD slot will do. I'm not sure what brand the one we have is, but the model number is DS240P. Most simply slide through with a calming "crunch", but on occasion, you'll get a defiant disc, a disc that doesn't believe that its time has come. He'll sit there on top of the slot, bouncing on the blades, praying for salvation while small CD chips fly out of the paper slot. A slight tap on the top causes it to slide into oblivion.

I was recently reminded of this mode of therapy when I had to destroy a stack of nearly 100 CD's and DVD's that I burned for...unannounced projects. So when it comes to relieving stress levels on a product, do what I do...burn it to a disk and destroy it!

Ritual Healthy? Also, Why I Mix Tech and Personal...

When I started working at Ritual Entertainment back on January 3, 2005, I weighed in at 235 pounds, a 38-inch hip line and a 44-inch waistline.

It is now May 6, 2005, and as of last night, I weighed in at 206 pounds clothed, a 36-inch hip line and a 38-inch waistline.

Maybe it's diet, maybe it's the walk to and from work, maybe it's just that I feel good about myself, maybe it's any or none of the above. All I know is that aside from my usual twice-yearly ear infection and the fact that I'm going bald from the chin back, I feel wonderful. I'm feeling healthier. I don't look any better because the fat isn't leaving my body evenly, but every step counts.

Now I've thinking lately about whether or not I should shift this blog to being purely tech oriented instead of mixing in my personal life with it, and I've decided not to change. My blog serves three purposes for me. First, it lets me share what I learn with the world. Second, it gives me a venue to vent about issues that I find frustrating, unfair, or otherwise off. Finally, it gives me a more public face.

You see, when you read my blog, you are not just learning what I have learned. You're learning about me. While I could do what some have done and made their blogs "tips only" or "code only," when I read those blogs, I feel like I've learned something, but I feel very distant to the writers. I go there to learn something, not to meet someone, and as such, the personal aspect of blogging is lost. Plus, the more people know about you, the more people feel they can trust you.

So I am going to continue to be the ranting, bitter and occasionally misguided testing and coding schmuck that got me to where I am today. I hope you will continue to learn with me and about me, and if you don't like what you see, well, I'm sorry, but I am who I am.

May 5, 2005

200 Posts! ...Somewhere else...

It took me less than two years to get to the 200 blog post milestone, but it took me four and a half years to reach the 200 post milestone in the forums over at On the upside, I have yet to be rated negatively by a forum reader, so I must be saying something right.

Anyway, if you want to drop by and check out the community over at, I hang out in the Managed DirectX/.NET forum mostly, although I'll occasionally chime in on other threads if I think I know what the hell I'm talking about.

Dangers of Copy/Paste

Microsoft Game Studios has teamed up with GameSpy to have a multiplayer beta for Dungeon Siege II. They're also holding a sweepstakes. Unfortunately, someone was copy/pasting stuff in their legal agreement. See for yourself in the Official Rules.

In case they nuke it, here is the section they goobered (emphasis mine):

7. General Rules: By entering, you agree to be bound by these Official Rules. The Sweepstakes is offered by IGN and prizes are supplied by Microsoft Games Studio, Gas Powered Games, and ATI none of which are responsible for late, lost, delayed, damaged, postage-due, incomplete, illegible, or misdirected entries, responses, or other correspondence, whether by e-mail or postal mail or otherwise, or for theft, destruction, unauthorized access, or alterations of entry materials; or for phone, electrical, network, computer, hardware, software program, or transmission malfunctions, failures, or difficulties. By participating and winning or accepting a prize, Winner releases Sony Online Entertainment and IGN, their respective parents, affiliates, subsidiaries, directors, officers, employees, sponsors, and agents, including dealers, advertising and promotion agencies, independent judging organization, from any and all liability with respect to the Sweepstakes or the acceptance, possession or use of any prize, including without limitation (i) any condition caused by events beyond IGN's, Microsoft Games Studio or Gas Powered Games control that may cause the Sweepstakes to be disrupted or corrupted; (ii) any injuries, losses, or damages (compensatory, direct, incidental, consequential or otherwise) of any kind arising in connection with or as a result of the prize, or acceptance, possession, or use of the prize, or from participation in the Sweepstakes; and (iii) any printing, computer or typographical errors in any materials associated with the Sweepstakes. Microsoft Games Studio, Gas Powered Games and IGN’s decisions in all respects relative to the Sweepstakes are final. Microsoft Games Studio, Gas Powered Games and IGN reserve the right, in their sole discretion, to cancel, modify or suspend the Sweepstakes in whole or in part, for any reason, but in particular in the event of fraud, technical or other difficulties or if the integrity of the Sweepstakes is compromised, without liability to the entrant. Microsoft Games Studio, Gas Powered Games and IGN reserve the right to disqualify any winner, as determined by Microsoft Games Studio, Gas Powered Games or IGN in their sole discretion. The winner is responsible for paying all applicable taxes, including income taxes, on the value of the prize received. Void where prohibited or restricted by law. All federal, state and local regulations apply.
Anyone care to tell me why I'm indemnifying Sony Online Entertainment for a Microsoft Game Studios sweepstakes?

ScanJet Troubles

In the tech world, there is nothing quite as troubling as having lights blinking on hardware where the lights aren't supposed to be blinking.

For example, I've got a HP ScanJet 5300C, and the light bar inside has started blinking on me. I don't know why.

So I follow their instructions. I shut down. I unplug it for a minute. I plug it back in. I turn the computer back on. I turn the computer off again. Unplug the scanner. Wait 30 minutes. Toggle the light bar lock several dozen times. Plug the scanner back in. Turn the computer back on. Shut down again. Sacrifice live chicken. Drain the blood of the chicken into the servos while chanting my serial number in binary backwards six times. Since the scanner is over a year old, I also swear allegiance to Carly Fiorina's true name (Carleton is such a masculine name...). Wait for the grinding of the servo motor to signify that my dark lord Ba'al is pleased. Turn computer back on. You know, the normal stuff.

Finally, I get to the point in their documentation where they talk about blinking lights, and all they say is that I must contact support. No explanation of the error code. No clue as to what could be causing it. Nothing to indicate that I'll get reimbursed for the chicken. Just that I have to contact support.

So, I used their wonderfully impersonal "Contact Support" form, and I've been told that usually people get answers within an we wait. I submitted my issue at 8:35pm.

The only thing worse than trying to troubleshoot crap like this is doing when you've got an inner ear infection and a cold...

UPDATE 9:46pm: Well, I just got my response back from HP Technical Support, pointing me back to the same frickin' page above. I just love the quality of service that outsourced technical support provides. No wonder the house that Carly built had termites... Anyway, I sent the follow-up E-mail off. Let's see what they come back with this time.

UPDATE 8:14am, Thursday: I got back the "Oh, shit, we got someone with half a brain, better make him call voice support instead" E-mail. I'll try to take care of that after my doctor's appointment this afternoon. Oh, well. At least my Portable Media Center is shipping today...

May 3, 2005

I Guess I Won...

I just heard back from Microsoft. Evidently, I won a Creative Zen Portable Media Center because I attended some of their online training.

Now if I can just become a member of Team 99, my plans for world domination will be complete. BWAHAHAHAHAHAHAHAHA!

May 2, 2005

"Team 99"

Robert Scoble is taking nominations for a small group of people to give focused feedback on Longhorn called "Team 99."

Personally, I think this is a good idea. Microsoft has a long history of doing private beta tests. Assuming that the NDA's on beta features are lifted once those features are discussed in public or a public build with those features is released, I think this would be a wonderful enhancement to that testing process.

While I'd love to participate, I don't think I'm as widely read as they'd like. Right now, I'm averaging about 150 readers a day according to my web stats, which seems fairly dinky compared to others who are being nominated.

So, I'm not going to nominate myself. If you are a reader of mine and you think that I'd give valid feedback on Longhorn and would properly defend your interests, go ahead and nominate me. If you don't, then don't.

Now for complete disclosure. First, I work for a video game developer that usually stays on the cutting edge, and while it is very possible that I may be seeing Longhorn through work, I doubt I'll be able to spend the time on it that I'd like. Second, I used to work for Microsoft. I've filed bugs against Windows, Office, Visual Studio, the .NET Framework, etc. Usually, those bugs have been ignored. Finally, I've been a fairly unpopular thorn in Microsoft's side lately, with my unpopular stances on Visual Studio 2005's pricing model.

So even if you nominate me, the likelihood of me being chosen is not as high as if you picked someone who would be a shill. So make your decision, but make sure it's a decision you feel comfortable with.