4Barrel is open

August 21st, 2008

I hear 4Barrel is open. Congrats to Jeremy and the crew!

This photo is from a morning when MSG, Blaine, and I wandered over to find the back door closed, and so peaked our head. Jeremy took a break from painting and sanding to pull some shots, and show us around the bones of the store. Excited to see the finished product, but I think I’ll be nostalgic for how it looked that morning.

Facebook on “Scaling Out”

August 21st, 2008

Jason Sobel has an interesting post, “Scaling Out” on Facebook’s BCP work and the move to being multi-colo.

Interesting to me was noting that:

  • they just got around to this 8 months ago, and they’re fscking Facebook (which means you can wait)
  • they’re still doing all writes to a single datacenter
  • they’re hacking an object-level mark/sweep into the MySQL replication stream suggesting a certain parable of a hammer and nails.

via PaulH

Tagged: , , ,

Space for a *real* website around iTunes app store

August 11th, 2008

Empty Hall

I haven’t poured hours into it, but I have looked around a bit trying to find good iPhone apps, and I find the conversation frustrating and fractured — echoing and empty. And I think Apple’s its-a-webiste-but-not-really iTunes store is the problem. It is definitely a 2nd class web citizen, and one that has rather aggressively not learned the lessons of Web 2.0.

I’d love to see someone do a full on iPhone-apps-as-social-objects site as a translation layer on top of the iTunes store. It would be easy, and it would be awesome. And if Apple weren’t Apple (say if they were Amazon) you could earn a nice affiliate income stream. As it is you’d probably wake up every morning and check your inbox for a C&D, but still it would be great. You should build it.

Photo from Paul Hammond

On Talks

July 31st, 2008

The feedback on the Beyond REST talk has been immensely gratifying, the overwhelming positive response, and the engaged critiques. I’ve wanted to take some more time to participate in the conversation this week, but it’s one of my limited weeks actually in the office face-to-face with my lovely co-workers, and the blogosphere will have to wait.

It has, however, been fodder for some ideas on the nature of conference talks I’ve been mulling.

The conference presentation is an interesting format — a highly ritualized performance art. Distinguished largely by the “talking over a slide deck” style, the slides it turns out are largely sleight of hand with good slides conveying nearly nothing, mere visual hints of a concept.

Damien Conway gave a talk on the Monday night of the conference week on how to give better talks. It was unsurprisingly excellent. He also confirmed a few of my own deep held suspicions about the best way to approach talks.

1.) You are not the primary source of data.

Your audience not only has the InterWebs, they can be cross checking your ass on the InterWebs as you speak. Your job is to intrigue, and inspire, and to shade the subtleties that the written word misses or can not be written down.

2.) Given a choice between being educational and entertaining, be entertaining.

Humans crave intimacy. And they respond to story telling. Your job is to give it to them.

3.) Limit your talk to 5 concepts. Thats all your audience can learn.

You’ve got about 45 minutes, with introductions and questions that gives you about 6-7 minutes to cover each of your 5 concepts. But you should be able to talk for 2-3 hours about each and every concept.

4.) Be passionate and energetic.

5.) Be an expert, even if your expertise is being an outsider, or not knowing the technology presented down pat.

A presentation is performance piece, where in you excite an audience about your topic by sharing your own excitement through a trust rapport based on a largely illusory experience of “learning from an expert.”

Confusing the slides for the presentation is like confusing the scenery for the play.

Tagged:

Ahab Failed

July 29th, 2008

RFC 4791, or CalDAV to its friends

July 29th, 2008

CalDAV is now available from Google Calendar and Zimbra.

At times I’ve been CalDAV’s biggest fan. A calendaring protocol which finally stopped actively pretending the Web didn’t exist (I’m looking at you IETF CalSch WG)! But it does seem like its been a hard slog to implement. Keeping my fingers crossed for the future.

(pointed out to me that merely because I found out about Zimbra’s CalDAV support last week at OSCON, doesn’t mean it hasn’t been available since January, mea culpa)

Perfect Villager Play, and Werewolf Variants

July 20th, 2008

It was about a year ago I sat down and did the math and figured out that Werewolf is essentially a solved problem. It made me sad. Jane has a long great blog post up on the same topic. Which for some reason doesn’t make her as sad.

Interestingly enough their experiment this year with their zero werewolves variant was run as con game. I’ve seen (and/or heard) about this run differently.

Shuffled role decks is one way, nobody knows who is in play, but everybody knows no one knows. (this rather nicely scotches Optimal Villager Strategy)

Another variant that evolved in the rapidly mutating (under pressure presumably) game that my brother plays every Friday is werewolves choosing targets in turn, and the villager only dies if a majority of remaining werewolves managed to pick the same target. (”Werewolf 1 wake up”, “Werewolf 1 go back to sleep”, “Rover wake up”, etc) This makes for several meta games, where werewolves are under pressure to share information, villagers are confused, and there are valid strategic reasons for killing off your fellow wolves. (they were too hard to communicate with) No seer needed.

A Couple of Caveats on Queuing

July 7th, 2008

Les’ “Delight Everyone” post is latest greatest addition to the 17th letter of the alphabet for savior conversation.

And believe me I’m a huge fan, and am busy carving out a night sometime this week to play with the RabbitMQ/XMPP bridge (/waves hi Alexis).

But …. there are a couple of caveats:

1) Some writes need to be real time.

Les notes this as well, but I just wanted to emphasize because really, they do.

If you can’t see your changes take effect in a system your understanding of cause and effect breaks down. It doesn’t matter that your understanding is wrong, you still need one to function. Ideally a physical analogy too. There are no real world effects that get queued for later application. Violate the principle of (falsely) seeming to respect real world cause and effect and your users will remain forever confused.

del.icio.us showing you the wrong state when you use the inline editing tool, and Flickr taking a handful of seconds to index a newly tagged photo are both good examples of subtly broken interfaces that can really throw people.

My data, now real time. Everyone else can wait (how long depends on how social your users are).

2) You’ve got to process that queue eventually.

Ideally you can add processing boxes in parallel forever but if your dequeuing rate falls below your queuing rate you are, in technical terms, screwed.

Think about it, if you’re falling behind 1 event per second, processing 1,000,000 events a second, but adding 1,000,001 for example, at the end of the day your 86,400 events in debt and counting. It’s likes losing money on individual sales, but trying to make it up in volume.

Good news: Traffic is spiky and most sites see daily cycles with quiet times.

Bad news: Many highly tuned systems exhibit slow down properties as their backlogs increase. Like a credit card, processing debt can get exponentially unmanageable.

In practice this means that most of the time your queue consumers should be sitting around bored. (see Allspaw’s Capacity Planning slides for more on that theme.)

If you can’t guarantee those real time writes for thems that cares, and mostly bored queue consumers the rest of the time then your queues might not delight you after all.

See also: Twitter, or Architecture Will Not Save You