Category Archives: New World

iPhoto 09 face recognition

Apple just shipped their new iLife package last week, which came with a new shiny upgrade to iPhoto, their photo management application. I haven’t used the app for a long time, but it now has something no other photo management application does – face recognition. I’ve played around with it for a couple hours and while the feature is very cool, it’s glaringly obvious this is their first iteration at the feature.

Good stuff first: Flagging people in photos is faster with the feature in place. Even the current iteration is useful, and fun. Adding metadata to my shots was never this enjoyable.

The the bad stuff: The interfaces to teach the classifier are slow to use and sorely lack features.

  • Faces preprocesses the images to find people in your library, but with no progress indicator telling how long it’ll continue the processing. And it takes a long time to do it. Classifying people while Faces is working processed crashes iPhoto. And if you add a face manually to a shot before iPhoto has automatically processed the shot, it destroys the manual classification.
  • If a face is pretty small or very large, iPhoto just doesn’t find it. I suspect this is done to speed up the detection, but is annoying, and I can’t configure the tolerance. There’s no button anywhere that says, “Really, there are faces in here, search for them goddammit!”
  • I can ask for a list of photos iPhoto thinks has someone I’ve taught it, but in this mode I can only confirm if that one person is/isn’t the person iPhoto thinks it is and not tell the app who is really in the photo.
  • There is no view for seeing all faces that haven’t yet been classified, you have to browse the whole library and search for photos that might contain people you haven’t taught the app before.
  • When telling iPhoto who is in a photo, you’re forced to use the keyboard, even if there’s only a couple people configured in the whole system.
  • When you start typing for a name and get a list of name suggestions based on people you’ve taught, you can’t use the keyboard to choose from the list, you have to click the suggestion with the mouse, which again slows down the interfaces considerably.
  • The user interface that shows people who’ve been classified seems to have been designed for users who only teach the app maybe five people or so. Listed people can’t be grouped, and they’re forcefully alphabetically ordered.
  • For whatever reason, Apple seems to have ignored using other metadata to help the Faces classifier. For example, in a burst of ten shots one second apart from each other, of the same people in the same location over the burst, Faces seems to ignore the fact that I’ve already taught it the people in the previous shots. Combining the time series data of the shots to the face recognition should help, but it doesn’t appear to be there.
  • Last up, for some reason Faces has trouble recognizing me. I dunno if it’s the eyeglasses, but I’ve gone through sets of shots of myself which are essentially the same, and teaching the app with five shots that are essentially identical doesn’t seem to make it understand I’m the guy in the sixth shot, that’s also essentially the same shot.

Feedburner Google account migration bugs

If you’re using Feedburner, you’ve maybe noticed they now prompt you to migrate to using a Google account. I did it last night and found the migration has a couple issues.

1) Feedburner re-scrapes any external feed data sources after the merge. You might have noticed my feed suddenly re-posted a couple photos from Flickr – this was FB crapping out.

2) Some of the feed settings are lost, and need to be re-enabled. Like, my feed suddenly stopped tracking individual item statistics. After re-enabling the setting, I noticed all historic data was lost for the item stats.

3) Site stats have disappeared, probably in favor of Google Analytics integration. However, the GA integration isn’t live yet (or at least I can’t find it).

So, the old wisdom of holding account migration until you’re forced to do it would have served me better. Sigh.

Edward Castronova committing social suicide in public

Writing about Seriosity seems to be all the rage right now.

I bumped onto this on Matt’s blog, and then noticed this long thread on Terra Nova. The thread is quite a hilarious read – I think Ted has committed a social suicide and will never stop being Mr Serio no matter whether Serios pick up or not. Makes me wonder if this can get any worse…

Update: Edward now retracted. Good move. I predict the Serio jokes will stop in about a year.

Lessig, remixing and Songsmith

Ok, so Joi Ito blogged about Lawrence Lessig appearing in Colbert show, resulting in a ton of remixes of the show, some of which are funny.

Unfortunately Lawrence didn’t have that good of a example about remixing in the show.

Microsoft to the rescue! Songsmith seems like a perfect tool for, well, something. At least for remixes. So someone took this, put it in Songsmith, resulting in what could be called the remix of all time.

The Songsmith ad had me in emotionally fragile state, so I certainly wasn’t prepared for this remix.

MobileMe observations

Given that I think my iPhone is the best thing after the invention of sliced bread, MobileMe sounded fantastic. Push email, calendar synch from the cloud, yay!

I ended up disabling the free trial after a couple days. The service is utterly broken.

The calendar synchronization doesn’t actually synchronize the calendars. In addition to not supporting subscribed ics calendars, it actually went and deleted about half of the events I created on my iPhone.

The email push only works for the address and I’m not going to swap to email addresses. And it seemed the push actually only works about 50% of the time.

AIM using account is useless since I don’t have any of my contacts on that account. And I don’t want to start using the account either, since I won’t want to lose the contacts if I later stop using MobileMe.

The iDisk is too small for anything big, and too slow for anything quick.

Having said all that, I hope Apple fixes the service, and lets me on another free trial so I can verify it really is fixed. Until that, so long!

In unrelated news, I think Apple fucked up badly with the feature set of the new MacBooks. I would have been seriously tempted to get one, but the lack of a Firewire port is a deal breaker for me. I’ve tried using USB for hard drives and the performance just doesn’t cut it (in my own “real world copy lots of stuff around and time how long it takes” tests, same drive over FW400 is about twice as fast as the same drive over USB 2.0). And I’m about to shell for 16 GB memory cards for the new cameras, and I’m seriously considering getting a Firewire reader for those, since the USB reader is painfully slow.

Squirrelfish Extreme pwns Chrome

The Webkit team went and put out a new version of their next-gen Javascript engine called Squirrelfish Extreme. The performance is pretty awesome – it’s twice as fast as the previous iteration. While their new engine still can’t match Chrome in Google’s V8 tuning benchmark (see this earlier post on the subject), the SunSpider and Dromaeo scores have improved a lot.

Here’s a chart with the relative performance of the browsers from the previous story with extreme squirrels added:

I guess we have a winner.

Drobo – home storage on steroids

I’ve been worrying over my home storage for some time and I think I’ve maybe found an answer. Drobo manufactures a cool looking drive enclosure that completely automates RAID 5 -style storage, but makes it better. The product allows putting in one to four disks of any size and it’ll store data on the disks in a redundant manner even if the disks are of different size. And of course you can hot swap the disks.

The reason I’m interested in this is simply due to the fact that I have some 50,000 or so digital photographs and slowly but surely accumulating set of HD video files from my videocap. I thought I’d never say it but I’m finding I have more than one and a half terabytes of data on my drives, and it’s driving me insane. Backing up this amount of data is a royal pain, and I’ve learned adding yet another external drive to my collection of external drives becomes more and more painful every time. A starter three or four drive setup plus the box would cost something like 600 euros, but I think it’d be worth it, especially since I could maybe salvage a couple hundred euros from the old drives.

The combination of cool looks and “no worries, it’ll manage itself” zero configuration support is very, very tempting.

More on Chrome performance and success metrics in general

Given that I found Chrome, Webkit Squirrelfish and Firefox 3.1 performance to be on par, I started to wonder why so many sources are claiming Chrome is the fastest engine out there.

The reason seems to be this benchmark. Instead of using Sunspider or some other existing benchmark, the V8 guys have created their own benchmark and tuned V8 to perform well with that particular benchmark in mind. And of course, all the excited bloggers are using these numbers.

This has paid off on that benchmark, of course. Webkit scores 391 points, Firefox 3.1 gets 162 points and V8 goes all the way to 1927.

So what’s wrong with this picture? The problem is, looking at the description of the benchmark, nothing in the V8 benchmark is meaningful for a web browser. I’m sure getting big numbers is a cool thing to present at work and gets you the Nerd Bonus, but that just means the team has forgotten the goal they should have had when implementing the engine – high quality web surfing experience. This is in stark contrast with the goals of Sunspider, which aims to benchmark real world use cases, so good score in Sunspider should translate to more comfort when actually using the browser.

In my opinion, the V8 team has defined their success metrics based on something they shouldn’t have. They should have aimed for best possible browsing experience and hence used benchmarks like Sunspider and Dromaeo to tune the engine.

Setting wrong goals seems to be quite general issue with any industry, given that setting the right metrics to measure success requires a deep understanding of the problem at hand and objective approach to solving the issues. At worst, you define the goals to please someone in your organization through numbers. Someone I know was working as a networking system developer and switched jobs after being forced to optimize for throughput benchmarks (to please the boss of his boss), rather than optimizing for real world use cases.

Coming up soon, what questions I iterate to understand the problem.