It was — and still is — quite important to me to clarify the relationship between the picture of the whale, the name the community gave it, the personality projected by the community on it, and the @failwhale account created by @seanosteen.

I had assumed Twitter was using designs it had paid for for its Fail page, but apparently not. Courtesy of John Wilson’s comment on my last blog about Twitter, a couple of hours ago, came news the famous whale is a stock shot from here.

Yiying Lu is the fantastic designer behind the image we all see, and love, so much. Frankly I think Twitter should use more of their work to give us some variety, and also give Yiying a lot more credit. How about a service sleeping owl?

Thanks to James’ detective work and Kapanka’s edit, the Wikipedia article already linked to Yiying, but it lacked a lot of detail.

So, I sent Yiying a tweet and an SMS, and we ended up talking on Skype. I wish I’d recorded it, as she’s great interview talent. All I can do here is report the story:

Yiying was studying at UTS when she drew “Lifting a Dreamer”. To help support her studies, Yiying put it up on iStockPhoto not realising that the site was more for generic images — say, a mobile phone on a white background — than for personal works of art.

Yiying isn’t sure exactly when Twitter downloaded the picture, and so can’t nail down exactly what they paid for the license to use it, but estimates it was around USD$5-10.

Eventually, someone let Yiying know: “your whale is getting bigger! people see it every hour…”, she saw it on Twitter, and @tlimongello contacted Yiying from the USA to get her permission to put the Fail Whale on some T-shirts. @seanosteen had already registered failwhale.com for fan blog. After some discussion, Yiying set up the online store to meet community demand for Fail Whale memorabilia. She also deactivated the image on iStockPhoto to prevent further commercial use of the image.

To this date, nobody at Twitter has yet contacted Yiying. As of the last sightings of the Fail Whale — soon to be rare, about which I’ve got mixed feelings — the image remains unattributed. So, I’m delighted to spread the word about the true origins of the Fail Whale.

Back to that delightful mix of image, name, personality, and tribute persona, though: I think Yiying nailed it during our call when she said:

“This is a social object — it’s not only my thing. It’s my graphic, but how this graphic got famous… it’s the social power, the Twitter power.”

That Twitter power is now engaging with the artist, not just her image.

I’m glad I stumbled across Patrick Altman’s tweet about a “default bug in Django“. I’d never have guessed you can pass a callable to a field’s default= argument, otherwise. That’s quite a powerful idiom, and I think I’ll use it a lot.

To balance the karma, I’d like to post a quick reminder to everyone else that expressions in default arguments are calculated when the function is defined, not when it’s called. In Patrick’s code, for example, all objects created in the same running session got the same timestamp. Try this in the Python interactive prompt:

I’d love to wade into this kind of problem domain, perhaps using Google App Engine for hosting so I didn’t have to worry about usage spikes. Feed backup is a brilliant start. We also need to helping our followers find the feeds, and I’m sure more thought will yield more areas for funimprovement.

I’m seeing a lot of this disturbing little error message: “The wireless network appears to have been compromised and will be disabled for about a minute.”

A poke around the Internet doesn’t show much other than other people complaining about the same problem. Some find the only way to solve the problem is to disable WPA. I’m not so sure that’s a smart idea. I hope there’s a fix for this in 10.5.2.

[If you’re getting this on what you think is a Django-only feed, it’s because the community feed administrators haven’t yet updated their subscription to point to my Django posts only. Sorry about that.]