Sony Hates Users; PS3’s “Restore Default Settings” Eats Your Data

February 9th, 2010 (trackback)

To be completely blunt: The team responsible for the PS3 non-gaming user experience — the menus, data management, user interface, and everything else that doesn’t happen in game — are either incompetent buffoons or have a management chain and/or product marketing/design/definition demands that are ridiculous, stupid, and an insult to the customer. (Personally, I’m betting it is the latter — the PS3 is an impressive piece of engineering, both software and hardware).

It is unfortunate that the PS3 is the only vehicle via which one can enjoy such great titles as Ratchet&Clank, WipeOut HD/Fury, and Uncharted. It is insult to their greatness to require the user to have to experience but a moment of the steaming pile of crap that is the Playstation 3 user experience.


I did something incredibly stupid this evening.

I assumed that Sony remotely cares about user experience, that Sony understands that their users care about saved game data, and that Sony — after more than a decade in the game console business — might have a clue about how to implement a system.

Boy, that was a stupid assumption.

I wanted to move the PS3 from TV A to TV B. No video; TV B doesn’t do 1080p. No problem; a google search or two later reveals that holding down the power button will reset the video and give you a menu where you can reset the video.

Nope — the closest is restore default settings. An internet search indicated this was the right thing to do. Wrong. The internet was wrong. Very very wrong. Don’t do that. Don’t ever do that. If you want to switch the resolution of a PS3 without losing data, do so on a TV that works with the PS3 in the current display mode first. If you don’t have one, you are screwed. Sony? Why do you hate your users?

In fact, what it does is worse than restoring the system to factory default. The first sign of trouble is when the PS3 says something like “Hey, I discovered there was user data I didn’t know about, I restored it”.

It lies.

What it did was create disconnected, unsigned, unblessed, shell accounts that have your data in an unusable form. They will have an asterisk in front; bbum became *bbum.

Uh oh.

Upon logging into the faux-*bbum account, many things are now broken. The worst — the single biggest insult — is that the original save game data is still there, but many games can’t use it.

Assasin Creeds II? Apparently, that saved game data will still work. Peggle? Nope, not so much. Oooh.. joy… looks like all data related to games purchased from the playstation network is trashed. WipeOut HD? Won’t even launch — key file missing, redownload dumbass user! But, Sony, All I wanted to do was make it work again? Why are you throwing rocks at me?

Better yet! When you redownload, the PS3 downloads all the bytes and then says “Hey, man, you already got the same crap installed. Do you really want to install it again?” The stupid. It burns!

Now, logging back into the Playstation Network let me sync my trophies. But there was also some warning that said that I might not be able to earn any more trophies, implying that online play was broken in some fashion. Of course, there isn’t anything that I can find to verify current status.

At this point, I renamed the account and have restored Playstation Network connectivity. I may or may not have a mostly working account. I have lost data — all Peggle data gone and deities knows what else. Even getting back to this point was a bunch of effort that I wouldn’t wish upon a non-admin user any day.

Of course, that I failed to maintain a backup was definitely a fault of mine. Then again, I didn’t actually lose any data, Sony just went to great lengths to make my data unusable without actually modifying it.

Sadly, this abusive user experience is not unique to the PS3. I had a similar experience with the Wii, though — to be fair — Nintendo has apparently addressed that exact issue in the interim couple of years.


Posted in Industrial Design, Irritants, Rants | No Comments »

objc_msgSend() Tour Part 4: Method Lookup & Some Odds and Ends

February 4th, 2010 (trackback)

Table of Contents

  1. objc_msgSend() Tour Part 1: The Road Map
  2. objc_msgSend() Tour Part 2: Setting the Stage
  3. objc_msgSend() Tour Part 3: The Fast Path
  4. objc_msgSend() Tour Part 4: Method Lookup & Some Odds and Ends

In the first three parts, I gave an overview, explained a bit of the ABI used by Objective-C, and took a near instruction by instruction tour of what happens on the fast path of Objective-C method dispatch. By fast path, I mean what happens 99.9% of the time; a very fast, no overhead, no function call, no locking, set of instructions that grabs the method implementation from the cache and does a tail-call jump to that implementation.

The slow path is used rarely. As little as once per unique selector invoked per class with a goal of filling the cache such that the slow path is never used again for that selector/class combination. A handful of operations will cause a class’s cache to be flushed; method swizzling, category loading, and the like.

Note that during +initialize, methods won’t always be cached. Yet another reason to not do any real work during +initialize! Read the rest of this entry »


Posted in Mac OS X, Objective-C, Software | 3 Comments »

DE Razor Reviews Summary

January 30th, 2010 (trackback)

Many months ago, I went from a half inch or greater beard to clean shaven. After a few weeks of dealing with cartridge blades, my lovely wife Christine gave me a very nice double-edged safety razor set. A bit of research revealed that the choice of blade was critical to the experience.

Blades Scaled.png

Being who I am, the only logical conclusion was to buy a sampler pack covering the most popular blade and try a new blade each week to find one that I liked (and to actually determine whether or not the brand of blade even matters)!

Now that I’m done, I have encountered a few surprises and amassed a handful of questions along the way. So, in a summary:

Why bother?

If you are going to keep a clean shaven face, a double-edged safety razor strikes a nice balance of price optimization and performance.

First and foremost, the quality of shaved produced by a double-edged safety razor is way beyond that provided by a cartridge razor. Notably, my face stays clean shaven for far far longer. With a cartridge razor, an 8 a.m. shave would lead to a rough face by 4 p.m. With a decent double-edged blade, I still have a smooth face 11 p.m. Beyond that, my skin is a hell of a lot less irritated.

Conveniently, it is also comparatively cheap. Cartridge blades are stupid expensive — dollars — whereas a decent quality double-edged safety blade is all of about 6 cents per blade in bulk.

To achieve a decent shave with a DE safety razor requires paying a bit of attention and taking things a bit slow. After a few weeks, it becomes a bit of morning ritual… a bit of calm amongst the storm that is my life.

Which razor am I using and what cream?

The one at the left. It is a relatively plain Merkur straight safety razor. It is of medium weight and not that aggressive (i.e. the space between guide and blade isn’t that wide). Feels good in the hand and is easy to clean.

Before the shave, I use a bit of oil rubbed into my face. As for cream, I’m using the house brand from the art of shaving applied with a badger hair brush. Works well enough, but I’ll probably try some others as this runs out.



Read the rest of this entry »


Posted in Life | 3 Comments »

Solar Install Part 1: The Madness of Eichler Roofs

January 18th, 2010 (trackback)
One Row of Solar Panels

As a part of our ongoing home improvement adventure, we are installing solar panels. Between the state and federal rebates, the increasing cost of electricity, and the improvements in solar technology, it is an investment that will pay for itself in a decade or two. Maybe less, if California really starts paying for excess production.

And, of course, Solar scratches my techno-geek itch. In particular, the system we are installing uses per-panel micro-inverters that leverage IP-over-powerline to network with each other to synchronize phase and deliver power back to the grid. As well, it makes the system easily expandable in that we can drop new panels in without having to replace a costly single inverter.

Single Micro-Inverter

Apparently, when this is all said and done, I’ll have access to a web site with a set of schematics that show our panel layout along with individual and overall power generation statistics.

Of course, being that we live in an Eichler, the path between concept and final installation has to have at least one adventure.




Read the rest of this entry »


Posted in Hacks, Remodel | 8 Comments »

DE Razor Review: Sharp Stainless

January 10th, 2010 (trackback)
Sharp Scaled.jpg

I shouldn’t be surprised that the last blade from the sampler that was new to me would yield some unexpected results (I still have the Merkur to review, but that was the blade my razor came with and, thus, I’m saving it to the last. That and I’m likely going to be reviewing a different kind of Israeli Personna and updating that particular review, too).

The Sharp (stainless) come in just about the most unassuming packaging of any blade; a simple cardboard box. Yet, that simple cardboard box has a bit of hologram embedded in it! Most likely, this “seal of authenticity” is an attempt to stymy counterfeiters, which — apparently — are quite a problem for some manufacturers!

The blades, themselves, are wrapped in not one, but two, pieces of wax paper. One with the logo and one transparent. Held together without glue, even!

So, that unassuming package actually had one of the most competently wrapped blades of all I have tried.

The blade, itself, proved to be quite sharp. Not Feather sharp, but still quite a bit sharper than most other blades I tried.

The resulting shave is decent, but far from superb. It provides a perfectly competent shave without too many cuts or too much burning of the skin. Yet, still, there was some irritation and it did draw a bit of blood whereas a week old Dorco had not.

And after nearly a week of using the blade, it has held the edge competently, too.

The only real ding against the blade is that the little box doesn’t provide a means of disposing of the blades as do some other brands.

That word… competent… has come up often in describing this blade. Apt, too, as it really is a competent blade. Given the impression offered by the packaging, my surprise was the result of discovering a perfectly serviceable blade inside. The two other blades — Personnas and 7a.m. — in similar packaging were awful!

If Sharp Stainless were all I could find, I would have no complaints!


Posted in Life | 1 Comment »

Using malloc to Debug Memory Misuse in Cocoa

January 10th, 2010 (trackback)

Every few months, there is a discussion on cocoa-dev or a question on stackoverflow.com that basically boils down to “I have a leak or over-release and I can’t use Instruments to debug it. Help?”.

Quite often, the questioner can actually use Instruments just fine, but simply lacks the know-how or hasn’t tried in a while and doesn’t realize that Instruments has improved significantly with each release of the developer tools. No, really, Instruments is a fantastic tool and I use it whenever I can; what you see below is for the exceptional case, not the norm.

There are cases where using Instruments is either inconvenient or impractical. Namely, trying to track down an intermittent crasher or trying to gain insight into memory leaks over a long running session will create a prohibitively large dataset for Instruments to process (Instruments allows for much more detailed analysis of the object graph and this analysis loads a lot more data than the tools I’ll demonstrate below).

Thus, it is helpful to be familiar with the rather powerful set of tools available from the command line and within the debugger.

Almost always, you are going to want to enable a bit of additional data via the malloc infrastructure. Have a look at the malloc(3) man page. There is an entire section devoted to ENVIRONMENT variables and there are a handful of extremely useful variables!

First and foremost, you are almost always going to want to use MallocStackLoggingNoCompact. When enabled, malloc stack logging writes the stack trace of every allocation and free event to an efficiently compact binary file in /tmp/ (it used to be in memory and, thus, used to be a great way to exhaust heap. No longer!!). Unfortunately, it doesn’t record the retain and release events, but simply knowing where the object was allocated is generally quite useful (it is generally relatively easy to track down who retained an object once you know which object it is). Under GC, you can set the AUTO_REFERENCE_COUNT_LOGGING and CFRetain/CFRelease events will be logged to the malloc history.

You can then use the malloc_history command line tool to query for all events related to a particular address in memory.

While malloc_history requires that the process still exists, it doesn’t have to be running! If you run your app under gdb, you can still use malloc_history to query the application even when it is stopped in the debugger!

Speaking of gdb, you can use the info malloc command in gdb to query the same information. Under GC, the info gc-roots and info gc-referers commands can be used to interrogate the collector for information about the connectivity of the object graph in your running application.

If you enable zombies via setting the NSZombieEnabled environment variable to YES, the address spewed in the error message when messaging a zombie can be passed directly to malloc_history.

The leaks command line tool scans memory and detects leaks in the form of allocations of memory for which the address to that memory is not stored anywhere else within the application. The leaks tool has been vastly improved in the Snow Leopard release of the Xcode tools; it is much much faster and spits out false positives almost never. It is still possible to have a leak that leaks cannot detect, of course. And, remember, even if you can still reach memory, it is still a total waste if you never use that memory’s contents again!

So, that is a brief summary of the state of command line memory debugging on Mac OS X as of Snow Leopard. Of course, that’s just a bunch of words. How about an example?

Read the rest of this entry »


Posted in Cocoa, Mac OS X, Objective-C | 3 Comments »

DE Razor Review: 7 a.m.

December 25th, 2009 (trackback)
7am Platinum Stainless Scaled.jpeg

Can’t say I was expecting much from this particular blade. The name, the lettering, and — mostly — the packaging all scream “cheap blade” to me.

However, opening the little cardboard box revealed blades that were wrapped in two pieces of paper; the logo paper and an inner translucent wax paper. The fold is one of the tightest I have seen on a blade and, quite nicely, there was no glue on the blade!

Like the Dorco, I hadn’t shaved the day before trying the blade.

While the resulting shave is actually quite good in that it is quite smooth and the blade didn’t nick me at all, it pulled from the first stroke. The blade clearly isn’t dull — if it was, the quality of the shave would be sub-par — but it is as if the blade were catching and yanking on each hair before the cut.

Not surprisingly, this has left me skin with a bit of razor burn, especially under my chin.

Given the feel of this first shave, I doubt this blade is going to last the week.


Posted in Life | No Comments »

Feast of the Seven Fishes 2009

December 25th, 2009 (trackback)
Christmas Table

For Christmas Eve, our tradition is to serve the Feast of the Seven Fishes.

This year, my parents and one of my sisters are in town. We were joined by our neighbor Ron.

Christmas Table Detail

As the name implies, the meal is composed of at least seven seafood dishes. Thus, a great excuse to pull out the full china settings and go for fancy table supreme!

Since my father is allergic to soft shelled seafood, this year’s feast included oysters, squid salad, clams, mussels, scallops, sole, and freshwater bass.


Read the rest of this entry »


Posted in Entertainment, Food, Life | 3 Comments »

Wii Shutting Off After a Few Minutes? Check the Fan.

December 21st, 2009 (trackback)

Two years after the last time our Wii showed signs of death by thermal failure, the repaired Wii is once again succumbing from heat death.

Now, the Wii will play fine for about 5 to 10 minutes and then just turn off entirely — no lights, nothing.

Before trying to fix it myself, I checked Nintendo’s customer support sight. Gone is any sense of personal account and, instead, I was told that’d cost $75 + s/h + tax to repair the now-out-of-warranty Wii; about $95 or, in other words, just about 1/2 the cost of a new Wii.


To be absolutely fair, Nintendo’s customer service has been absolutely top notch. $75 (+shipping & taxes for CA residents — $95) for a fix-any-problem service with a solid turnaround time of about 10 days (though it generally takes less) is actually very good.

A replacement optical drive — another component that oft goes flaky due to dust, dirt, or abuse — cost about $50 to $60 and are quite time consuming to replace. Thus, for some fixes, $75 is beyond fair.


Of course, there is no [non-hacky] way of moving all data and purchased content from an “old” Wii to a “new” Wii, thus replacing the unit with a new — hopefully better built — Wii isn’t viable. Not that letting Nintendo fix a Wii is that much better; they have a tendency to screw up your data in the process.

Fine. $95 and no options. Let me do some basic triage…

As it turns out, the Wii’s fan was jammed. Probably with pet hair or, hell, with one of my über-long bits of hair from my long haired days. And it was dusty, too. That could certainly be a problem!

After the fix described below was applied, the unit played quite stably for more than an hour, something that was impossible before.

So, if you are suffering from the same symptoms — spontaneous power down during play — you might want to give this a try before paying the vigNintendo to fix what is, otherwise, about $1.50 in parts (assuming they don’t do the same as below!).

  • Disconnect everything from the Wii and take it to a decent bright light (a flashlight will do).
  • Take a micro-screwdriver, toothpick, or something similar and very gently try and move the fan blades visible inside the vent on the rear of the unit. If there is any resistance, you have a stuck fan!
  • Spin the blade a few times with your poky-stick thing. If you can’t, you have an über-stuck fan and your choices are to replace it yourself or pay Nintendo ~$90 to do it for you.
  • Grab a vacuum cleaner that has a hose attachment.
  • Turn on the vacuum and place the end of the hose over the vent for a few seconds. You’ll likely hear that spinny-whistly-noise of a fan spinning up in a fast rush of air. Hopefully.
  • Put the Wii back and reconnect everything.
  • Fire up a game, turn down the audio volume, and listen for the whir of the Wii’s fan. Or have a look.

The end result might be a working Wii. If not, nothing lost as none of this procedure leaves any kind of a mark (if done right — you go sticking a metal bar into the fan and breaking off a blade is your own damned fault).

Looking more closely at the Wii, it appears that there are one of numerous design flaws in play here.

First, given the number of thermal problems reported by various folk, it is quite clear that Nintendo shoved too much crap into too small of a box without properly accounting for the thermal envelope required.

Secondly, the old-school GameCube memory card slots create quite a vent that leads directly to the fan below and behind the slots. Feeling the airflow when applying The Suck, it feels like those slots will quite happily draw anything in and dump it right on the fan! It makes me wonder if there is a correlation between fan breakage and folks that enjoy GameCube games and, more pertinently GameCube saves on GameCube memory cards?

In any case, our Wii is working again. Even if it is only makes it through the next week or so, it is going to make Christmas morning considerably happier (as it would suck to be all like “Here, son, awesome new game… you can only play it for ten minutes at a time and you’ll lose your saves. Have fun!”.


Posted in Design Rants, Industrial Design | 7 Comments »

Excellent Coffee Thermos

December 20th, 2009 (trackback)

One of the problems with the Chemex coffee maker is that it is utterly useless for making more coffee than you plan on consuming in one sitting simply because it does nothing to keep the coffee warm! We have guests coming in over the holiday break and I want to be able to make a pot of chemex, pour it into a thermos, pour some more hot water over the grounds (if you use enough grounds, this works great!!) and then our that into the thermos, too.

On the recommendation of one with a clear caffeine addiction, I picked up the Thermos Nissan 51 Ounce Stainless Steel Carafe pictured at left.

It does a brilliant job! I made coffee at about 10AM this morning and it was still hot — not burning hot, but hot enough — after 5pm in the afternoon! Better yet, the coffee maintained its flavor just about as well as one could expect! The caffeine addict that recommended the carafe indicated that pretty much all of Thermos’s Nissan line are top notch, too.

I tried putting the Chemex on a Bunn Warmer — was enticed by the name, obviously — but the combination of a hot bottom plus sides that shed heat rapidly meant that the coffee quickly turned ultra-nasty flavored. Yuck. The Bunn will prove useful; it turns out it heats water to pretty much the perfect temperature for brewing certain kinds of green tea that don’t tolerate boiling water without yielding bitter flavors!



Posted in Food | 4 Comments »