Monday, March 16, 2009

Adhoc Party NOW? How about now? Now?

I'm a new PSP owner.  I've been enjoying the plethora of titles, but always look wistfully at titles like the Monster Hunter series or any of the great fighting games on the PSP, and wishing I knew about 10 more people that owned a PSP so I could use the adhoc multiplayer on it.

I was poking around one of the PSP news sites, when I noticed a very old article discussing "adhoc party" for the Japanese PSP going into beta last November.

Apparently, it's a service that uses your PS3's internet connection to connect an Internet server and create adhoc networks.  A third party solution for this has been out for a while, but it's hackish and not free.  A few other grumblings around the net have asked the question currently running through my head.

Why hasn't Sony brought this to the US, yet?  It's a very odd decision, among a list of odd decisions that has plagued Sony's game products in the last few years.  It often seems like the various divisons of Sony have almost no interdepertment communication.  With new US titles coming out like Killzone 2, Resistance, Little Big Planet having portable versions for the PSP, and with all of these titles being fairly dependant on multiplayer, it would shock me if this wasn't something that has come up in discussion at Sony.

And yet, considering all the other decisions Sony has made in the last three years, it's not unrealistic to expect them to drop this ball as well.  I still think Sony makes the best gaming hardware out there, and provide the most value for their products.  But honestly, if they ever look at the Wii and wonder why a glorified nightlight with a tennis controller is #1 on the console sales charts, they have only to ask:  how many of our products work together, and how easy is it for our customers to get together and play?

Monday, March 9, 2009

Cloning a Windows lab with Linux and Steadystate

You want a lab for teaching or training that cannot easily be destroyed or
degraded by having so many users come and go on each machine. You have
less than 48 hours to set up the lab, each machine identical.First:
all the machines must have identical hardware. With disparate
hardware, this process will cause you some problems as the drivers
copied and loaded will not always be correct or usable on different
configurations for say, hard drive controllers.

Software you will need:

  • Windows Steadystate - Downloadable here.

  • A Linux System Rescue CD. Always use the newest version for support with newest hardware. Download here. You will need software (such as Totally Free Burner ) capable of burning an ISO image to a disk.

  • Newsid - tool for
    changing the SID on a machine so that it does not collide with the
    security credentials from another machine. Necessary because the
    cloning process copies identical SIDs. Download here.

For best results always download the newest versions.First, set up your ideal lab computer. Be sure to install all the software you need, since this can save you a lot of time.

After your software is installed and configured as you like, thoroughly
defrag the computer. You can use the built in Windows defragger, but I
prefer IOBit's SmartDefrag.

Now, copy the Newsid executable to the C: drive of your "master" machine you have finished installing software onto.

Install Windows SteadyState. There are a lot of options here for various
functions and restrictions, but the one we are MOST interested in is
called "Disk Protection". If the machine fails to enable Disk
Protection, it may require you to reboot, and try again (the Disk
Protection drivers sometimes need a reboot to start working - or
sometimes just close SteadyState and reopen it).

Once Disk Protection is enabled, and you have chosen "Remove all changes at
restart" you will need to set up the Updates portion.

In the Steady State Admin console there is an option titled "Scheduled Software Updates". Click it, and configure Windows Updates on the left side to "Use
Windows SteadyState to automatically...". Select any security updates you may need (dependant on your AV solution, etc).

Now, SteadyState will download updates and reboot, retaining all
changes daily at the time you specifiy. This is important, because
without this feature, your computers would lose their domain status,
and could not apply Windows updates.

Reboot. Verify your changes. Once you have confirmed for yourself that SteadyState is working - by changing settings or files and rebooting to behold them
still in place and unchanged - you should set Steady State's Disk
Protection to "Retain All Changes Permanently". We will re enable the
protection after our work is done - as a final step.

Now we're ready to start cloning!

Put the System Rescuecd in the drive, and reboot the computer. If there is
a "boot menu" on the computer, activate it and choose to boot into the
USB/Removable CD/whatever looks like the CD to you. If you do not have
a boot menu, and the computer does not boot into the System Rescue CD
you may need to alter the BIOS on the computer to put booting into CD
before the hard drive in the boot order.

Once you get the boot prompt for the disk, you will need to boot the disk using the memory cache and DHCP options. The function keys (F2, F3, etc) will tell you
which options they are. For the current version of the system rescuecd
the boot options are:
rescuecd docache dodhcp
and ENTER.

You will see a command line, and some text when the machine finally boots into Linux.

Now it can get a little tricky. There are several options here. I will give you the best case and worst case scenarios:

Best case:
You have two hard drives on the computer, with Windows installed on the first one, and nothing installed on the second.

Worst case:
You have one hard drive, partitioned in one giant partition, running Windows (This is the typical configuration).

I will address the Worst case, and leave the best case as an exercise for the reader.

Because we have already enabled SteadyState we cannot split the partition of
the drive and store our image on the second partition. Therefore, the
entire copy has to be streamed to all the lab computers at once, and
they must be ready to capture and write the packets as they come.

This is definitely achievable.



  1. Boot every lab computer using the system rescuecd.
  2. At the boot prompt for the CD type:
  3. rescuecd docache dodhcp
  4. (this will boot the machine, copy the CD contents into memory, and
    intitialize the network card with an IP address from the server)
  5. After each lab computer run this command after it boots:
udp-receiver --pipe "cat" | gzip -dc | dd of=/dev/sda

It will prompt you to "Push any key to begin receiving." Be careful not to do this until we are ready!
Once all of your clone targets are running, and waiting for your keypress, run this command on your "Master" machine;
dd if=/dev/sda|gzip -c | udp-sender --pipe "cat" 

And then press a key to start the transfer.

Note that in both these cases I am assuming you have a SATA hard drive or PATA drive attached to a SATA controller. An older IDE hard drive might require you replace "/dev/sda" with "/dev/hda"
This could take a very long time. Depending one the speed of your network hardware and hard drives, as long as 12-13 hours or as little as 1.5 hours.

Once all the consoles tell you that the transfer has finished, you may reboot the computers. They should boot directly into Windows. Log in as a local Administrator account.
Start>Run>Newsid.exe
Answer Newsid's questions, telling it that you want a random SID and to change the name of the computer to (something appropriate for the lab computer) and that you would like it to automatically reboot when done.

Do this on all the clone targets. It will take a long time.

Once they have all rebooted, log in as a local Administrator account. Join the computer to a WORKGROUP called "NONE" or "BOGUS" or whatever you like. Then, without rebooting, join to the domain, enter domain admin's credentials when needed. Reboot as instrcuted after joining the Domain. Log in as a Domain Administrator. Set SteadyState's Disk Protection to "Remove all changes at Restart". Reboot, telling SteadyState to Save All Changes Then Reboot.

You're done!


Autologin is Stupid

Just you know.... FYI.  In case you were wondering.  Yeah, sure, enable it for Grandma.  Don't worry about the grandkids tottling into the computer chair and accidentally surfing porn on that web site full of pretty pictures (you know, MSN Live?).  I'm sure it will be easy to explain later.

There's a particular product, written by a particular company, that does our Student Management.  I don't want to attract undue attention here, but let's call it "Flowershmool" and point out that it was originally written to run on Mac hardware.

Anyway, at some point they ported it over to good ol' Windows (/gag) but failed to... pay any attention to how server services work in Windows.

You see, the product is not designed, out of the box, to run as a service, but rather as an autorun item on login.

I'll let you absorb that for a moment.

Pretty dumb, right?

With that in mind, the only way I could think of to keep this service up is to have an account autologin, and then lock the workstation on boot.

In case you ever need to do this stupid, stupid, stupid thing, here's the KB article:

http://support.microsoft.com/kb/315231

And in case the article disappears, here's the gist:
  1. Locate the following registry key:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
  2. Using your account name and password, double-click the DefaultUserName entry, type your user name, and then click OK.
  3. Double-click the DefaultPassword entry, type your password under the value data box, and then click OK.

    If there is no DefaultPassword value, create the value. To do this, follow these steps:
    1. In Registry Editor, click Edit, click New, and then click String Value.
    2. Type DefaultPassword as the value name, and then press ENTER.
    3. Double-click the newly created key, and then type your password in the Value Data box.
    If no DefaultPassword string is specified, Windows XP automatically changes the value of the AutoAdminLogon registry key from 1 (true) to 0 (false) to turn off the AutoAdminLogon feature.
  4. Double-click the AutoAdminLogon entry, type 1 in the Value Data box, and then click OK.

    If there is no AutoAdminLogon entry, create the entry. To do this, follow these steps:
    1. In Registry Editor, click Edit, click New, and then click String Value.
    2. Type AutoAdminLogon as the value name, and then press ENTER.
    3. Double-click the newly created key, and then type 1 in the Value Data box.

Before you every do this to any computer, please ask yourself why.  Then go have a beer.  Then  come back and ask yourself why again.  If you still think you need it, god help you.


Sunday, March 8, 2009

How To Keep Your Game From Being Traded In

With Best Buy, Toys R Us, Gamefly, lots of Mom and Pop small town video stores and even Amazon getting into the used game market, game developers have to been getting nervous these days.

In these troubled times (drink), it's going to be hard to keep afloat if you make games for a living. Or, at least, it's going to be hard to beat your competition.

I'm not a game marketing expert. I'm not a game developer. I don't even work in the industry as a mail handler. I'm just a lifelong gamer with some observations to share with game makers in the wild.

When a game is bought retail, and then traded in to a store that deals in used games, there is a slight (but real) chance that a retail sale has just been eliminated from the market. Someone who wants to buy that game will be happy to pay a few less dollars and buy it used.

If you want to keep your games from being traded in, you're going to either need to provide increased value, or skip the brick and mortar sales altogether, a la Steam, the PSN, or Xbox Live markets.

As a consumer I will be much less likely to put down dollars on a PSN title than a hard copy of a game. I can't return it, and for some reason I lose my right of first sale with digital goods (no idea, but this isn't the post that discusses that). So I wait. I hem, I haw, I hesitate and procrastinate, because I'm nervous that my money will not be well spent. The harder things get economically, the less likely I will be to spend that money. If the digital copy costs the same as the hard copy, or as a hard copy, I am psychologically locked out of spending that cash. Yes, it's handy to get a direct download. But since I'm losing right of first sale, and I can't return the goods if I despise them, you're asking me to take MORE risk, for the same money. Forget it.

So if you still want to release your goods on plastic and foil, how do you keep your game from being resold?

There's no need to reinvent the wheel. Take a look around and you can see which games are never sold used, or are sold for nearly same cost as they were new (thereby mitigating your loss of sales).

MMO's are a great example of this. Partly because they contain terms in their agreements that prevent the "account" linked to the game from being sold, and partly because by the time the user is done with the game, there's no market for the used disk. So, if you ignore the weird TOS that prevents you from selling your digital goods, there's a lot of added value for the user there. When they buy the game (and usually pay a monthly fee on top of that) they are satisfied to keep it around for a good part of the lifetime of the product. There are examples of this kind of thing that don't point to an MMO, per se. Look at Little Big Planet or Diablo II. Both of these products had an online/social component that kept the user playing the game long after the initial content was exhausted, and encouraged the user to keep the hard copy around. In Diablo's case, you can currently get a used copy for around $6 sans shipping. However, Blizzard (the game maker) has re-released this game with value added (expansions and so on) so many times, I can't imagine they've lost money here.

Another strategy to keeping your games off the used shelf is to provide so much content or replay value in the game that the user cannot are to part with it. I bought my PS2 copy of Disgaea used for $35 years after it was released and before it was reprinted. It still occupies a place of honor on my shelf, and very rarely I will still pull it out and mess around. Grand Theft Auto IV is one of the highest selling (in terms of cost) used games out there. It's over a year old on the PS3, and yet it still commands a used price close to the current retail price. Why is that? Replayability. The sandbox geniuses at Rockstar made a game that is hard to put down, and hard to give up.

Want to know what the cheapest used games are? Sports games and linear action games. And games full of bugs, of course. Fallout 3 on the PS3 is pretty cheap these days, and bound to get cheaper. The game has enough replay value, you'd think it would be rocking the same price as Oblivion was for years. Too bad the damn thing crashes, freezes, and frustrates you too much to keep playing it for long (on the PS3, anyway - Bethesda, get it together, please?).

Sports games and linear action games have this weird formula that makes them seem as easy to knock off as one more season of Threes Company. Anyone that buys one of these games knows they're going to burn through it in a few hours and then trade it in. These kinds of games that I don't even buy any more. I'd rather rent than spend even $5 on a crappy action title.

I'm not going to pain the whole action genre with that brush, but those and sports titles seem to be the most easily 'knocked out' these days. Couple that with the fact that %90 of video games based on movies (a highly reviled genre, for other reasons) are action and platformer titles, and you have your explanation.

Make deep, engaging, content filled games. Throw in some social networking or co-op multiplayer goodness for good measure.

Or you know. Make causal games and charge $5 for the digital download. But don't keep selling us piece of crap, 10 hour mindless games for $45 and then wonder why we don't want to pay for them brand new.

Friday, March 6, 2009

Startup Master makes Firefox Stop Puking on Master Password

So, I have a Tab problem.  While websurfing I am kleptonomaniacal about the site that I'm, on and only want to open windows in new tabs.  I refuse to close the old tab until I am permenantly convinced that I no longer need the contents of that tab.  I obsess over it.  I often have the same 30ish tabs open for an entire week before restarting my browser.

BUT, when I do, or when the odd Flash site crashes Firefox, I get these annoy 19 popups for my Master Password (The "Security Device" prompts), and then our site's proxy auth prompts directly after that.  If I'm not careful, and I somehow break the Feng Shui of my windowing system and the FF UI, the prompts mislayer and the invisble under-prompt refuses to give up the focus, causing me to often do 'killall -9 firefox;echo "WTF FF, DIAF"|cowsay'.

Enter this awesome addon.

https://addons.mozilla.org/en-US/firefox/addon/9808

This addon creates a single prompt before Firefox opens all your tabs, avoiding most of the mess.  Huzzah!  I had to create an addons.mozilla.org account to install this "experimental" addon, and I've only tested it once so, YMMV.  For all I know, it's a trojan stealing all my passwords and important information.... OH crap....

<runs wireshark and watches traffic>

OK, so if it's a trojan, it's a damns sneaky one.  Give it a shot.  I'm sure the open source gurus out there have already looked at the totally exposed code, and would have pulled it if this was malware, right?

Right?.........

Thursday, March 5, 2009

This blog is incredibly boring

I was just going to pop out and look for a new and exciting theme for the blog.  That's when it hit me.  No amount of eye candy is going to make this a riveting read.

I'll look anyway.  But don't expect it to be amazing.  A fancy skin isn't going to make me an interesting person.


OR IS IT?!

Spring has Sprung

I know that officially it's still not spring in New Mexico, but it sure feels like it is.  With that in mind, I'm going to give the social network thing a try once again in 2009.  I got my friendfeed all set up, Twitter wrangled, and my blog(s) in order.

It's been an interesting journey.  I must have tried every social networking doodad and thingamajig out there over the last few years.  But the thing is.... I hate people.  OK, maybe hate isn't the right word.  I...... eschew people.  Machines are my friends.

I know, that makes me sound like a member of the Borg.  But ask anyone off the very short list of people who get to know me and they'll tell you I'm not all Mr. Spock.  It's just a lot of effort for me to connect to another human.  I often wonder why.  I wasn't isolated growing up, I have no obvious brain chemistry issues, there's no history of abuse or trama - I suppose I'm just misanthropic by nature.

Well, no more!  I'm not re-activating my Facebook account, but I will play with all these other things and make some more cyberfriends.  If nothing else, it will keep me entertained to try.