Hoisin Knife

Comments Off

Way back in 2005, Wen and I were living in Toronto and we stumbled onto the now-defunct Toba for brunch. There I discovered a dish that I have not seen since: the duck and hoisin crepe (a.k.a. Moo Shu Duck).

Peking duck.

Hoisin sauce.

In a fresh crepe.

What more could you want?

I’ve been mourning and missing it ever since (and yes, I’m aware that I probably could have googled either a recipe or a restaurant that serves it at any time during the past six years, but I’ve got a complicated relationship with food).

So imagine my surprise when I found myself making it on Saturday afternoon.

Why?

Knife skills.

Wen signed us up for a knife skills class at The Dirty Apron. She told me that we were going to make clam chowder in addition to learning about how to chop, dice and julienne.

The class is highly recommended. I now know how to properly cut an onion plus I got to spend a few hours in the Dirty Apron’s awesome test kitchen (12 mind-blowing Wolf ranges plus the demo area below):

IMG_0733

Imagine my surprise when it turned out that in addition to the clam chowder, we were also going to make my beloved Moo Shu Duck that I’ve been pining for for half a decade.

I figured I’d burn the living hell out of the crepes, but all turned out okay:

IMG_0736

Here’s what the delicious Hoisin-soaked, stir-fried interior looks like:

IMG_0741

I can’t wait to cook this at home; it won’t be five years until I try it again.

Here’s the recipe for those who are interested:

BBQ Duck and Fine Vegetable Stir-Fry

Ingredients:

  • 250g BBQ duck meat (shredded)
    • They get all their duck from Lee Loy. It’s about $18 a duck, but if you bargain like mad you can get it for $13
  • 20g Cashew nuts
  • 2 Cloves garlic
  • 4 Shitake mushrooms (julienne)
  • 1/4 Carrot (julienne)
  • 1/2 Small onion (julienne); can use 1/4 red onion
  • 30 ml Oyster sauce
  • 50 ml Hoisin sauce
  • 1 tsp Toasted sesame seeds
  • Salt & pepper

Directions:

  • Heat oil in a saute pan, allowing the pan to get very hot. Add the small onion, mushrooms, and garlic to the pan. Stir-fry on high heat for about 2 minutes.
  • Add the hoisin sauce, oyster sauce to the ingredients and stir-fry for another minute. Next, add the carrot, cashew nuts and sesame seeds and then cook for 1 more minute.
  • Add the BBQ duck meat at the very end and remove from the heat.

Star Anise Crepes

Ingredients:

  • 2 Eggs
  • 220 ml Milk
  • 20 ml Melted unsalted butter
  • 1/2 cup Flour
  • 1 tsp Star Anise (finely ground)
  • 2 sprigs Italian parsley (finely chopped)
  • 1 tbsp Butter (room temp for cooking)

Directions:

  • Combine the eggs, milk, butter, and flour then whisk together until mixture is smooth and free of lumps. Add the parsley, star anise, and salt and pepper to the batter. The batter should be the consistency of cold cream.
  • Heat a non-stick pan over medium heat. When the pan is hot, brush it with a little butter.
  • Use a ladle (about 3 tbsp) to put the batter into the center of the pan. Tilt the pan from left to right to cover the entire surface. Cook the crepe until the edges begin to brown and then flip the crepe over to cook the other side. Remove from the pan

It’s not stated above, but you fold the stir-fry into the crepe just like it was a burrito and serve.

Best Metaphor Ever?

Comments Off

Wendy is currently reading Bill Bryson‘s A Short History of Nearly Everything . From it comes the following passage, with possibly the best metaphor ever for the slow pace of geological time:

…If you imagine the 4.5 billion odd years of Earth’s history compressed into a normal earthly day, then life begins very early, about 4 a.m., with the rise of the first simple, single-celled organisms, but then advances no further for the next sixteen hours. Not until almost 8:30 in the evening, with the day five-sixth over, has Earth anything to show the universe but a restless skin of microbes. Then, finally, the first sea plants appear, followed twenty minutes later by the first jellyfish and the enigmatic Ediacaran fauna first seen by Reginald Sprigg in Australia. At 9:04 p.m. trilobites swim onto the scene, followed more or less immediately by the shapely creatures of the Burgess Shale. Just before 10 p.m. plants begin to pop up on the land. Soon after, with less than two hours left in the day, the first land creatures follow.

Thanks to ten minutes or so of balmy weather, by 10:24 the Earth is covered in the great carboniferous forests whose residues give us all our coal, and the first winged insects are evident. Dinosaurs plod onto the scene just before 11 p.m. and hold sway for about three-quarters of an hour. At twenty-one minutes to midnight they vanish and the age of mammals begins. Humans emerge one minute and seventeen seconds before midnight. The whole of our recorded history, on this scale, would be no more than a few seconds, a single human lifetime barely an instant. Throughoutt this greatly speeded-up day continents slide about and bang together at a clip that seems positively reckless. Mountains rise and melt away, ocean basins come and go, ice sheets advance and withdraw. And throughout the whole, about three times every minutes, somewhere on the planet this a flashbulb pop of light marking the impact of a Manson-sized meteor or one even larger. It’s a wonder that anything at all can survive in such a pummelled and unsettled environment. In fact, not many things do for long.

Food Walking East Van

Comments Off

Vancouver has an awesome food scene: great chefs, great restaurants and great food shops. Since we’ve arrived here, Wen and I have wanted to check out the stores that exist beyond the downtown/Granville/Kits core. On Satruday we finally got the chance, with a long walk from our place through East Van.

Here’s my attempt to take you on the ride.

The first place we went – and yes, I know that it’s not technically in East Van – was Benny’s Market. Benny’s has been around since 1917 and is worth a visit. At first glance, you might be dismayed: from outside it looks like a neighbourhood bodega, not a temple of Italian food. But when you go inside and venture into the bowels of the store you’ll find their broad selection of Italian delicacies: coffee, pasta, antipastos, meat, etc.

  Coffee at Benny's Market

Benny's Market

We left with a bag laden with pasta (including the elusive lazy man’s gourmet meal: Ripienissimi stuffed pasta), sauces and pancetta. The orecchiette ended up becoming our dinner:

Orecchiette

We weren’t hungry enough for a sandwich, but we’ll be going back; they’ve been making sandwiches there since 1917.

Next stop was the East Van outlet of Les Amis du Fromage. Walking inside, we fell in love with the deep, competing smells of the different cheeses. We were tempted by the goat cheese below, but we settled on an Austrian Karotten Kase instead (it’s a hard orange cheese; hence “Karotten”).

They were sampling rose, orange and lemon-flavoured olive oils; if you ever stumble across these, be sure to try them. You wouldn’t want them every day, but they’re delicious.

We’re also going to have to go back to their wine bar, Au Petit Chavignol, which is right next door (one of the few places in Vancouver where you can get raclette).

Goat Cheese at Les Amis de Fromage

At this point in began to rain and we did what any self-respecting Vancouverite would do: we went for coffee. Our chosen stop was Latin Organics. This tiny little cafe really is a ray of sunshine on a cloudy day: it’s all white walls with orange highlights and the most tasteful use of bamboo I’ve ever seen.

The spirit of the store is Colombian, so I had a coffee con leche and a corn arepa; Wendy had a delicious London Fog (Earl Grey tea, shot of vanilla and steamed milk).

Counter at Latin Organices

Food at Latin Organics

Coffee con Leche at Latin Organics

Latin Organics is right next to the Gourmet Warehouse, which lives up to its name and stocks everything you could ever need to cook anything. Looking for 15 variants of cast iron griddles? Your choice of 80 different cooking knives? The Vosges bacon chocolate bar? Duck? It’s all there.

If you were to look at these last few stops, you’d notice that they’re all on East Hastings. This is the same one that’s home to the poorest postal code in Canada just a few kilometres away; oddly it’s a food paradise if you keep following it and know where to look.

In fact, our next stop was also on it: the East Village Bakery. We were tempted by their cheddar fougasses, but they were way too big to carry with us on our tour; we opted for a cheddar and kalamata olive loaf instead.

East Village Bakery

East Village Bakery

Our last stop on East Hastings was Moccia. I had been hankering to go here for a while: many of Gastown’s restaurants and many of the food stores we’d already visited sell Moccia’s meats.

When you step in the spare interior of the store, you notice immediately that they take their meat seriously. The stamps behind the butcher’s stand are a solid clue:

Meat Stamps at Moccia

It was really tough to choose from amongst the many types of sausages, bacon and various cuts; we settled on some porchetta and breakfast sausages.

Moccia

Moccia

Thus ended the East Hastings portion of our tour. We backtracked a bit and went up Victoria Drive to the South China Seas Trading Co’s store.

This store might just pack the most cooking punch per square foot anywhere in the world. In the tiny store you can get an incredible array of spices sourced from over 10 global suppliers. We picked up some szechwan peppercorns; I’ve never seen them for sale anywhere else. They also were selling kasuri methi (dried Fenugreek), which I’ve never seen outside of India.

Incredibly, not only is this a store, it’s also a cooking lab; I’ll likely be coming back in April to learn how to make four types of noodles.

South Seas Trading Company

South Seas Trading Company

Spices at South Seas Trading Company

This was followed by a walk over to The Drive and a trifecta of Italian stores in quick succession.

First, JN&Z Deli. Meat lovers heaven; I couldn’t count all the hocks hung high from the ceiling; one of the most beautiful-smelling places on earth.

Hanging Meat at JN&Z Deli

Hanging Meat at JN&Z Deli

A hundred feet or so away was La Grotto Del Formaggio, where the sky-theme ceilings stare down on all things Italian: not just cheese. Much like Benny’s, we’ll be going back for a sandwich sometime.

La Grotto Del Formaggio

Pasta at La Grotto Del Formaggio

Pasta at La Grotto Del Formaggio

Right next door is the Fratelli Bakery, where you can get your cannoli on.

Baked Goods at Fratelli's

By this point we were bushed, so we headed over to Prado for another coffee injection.

This place is one of Vancouver’s cutest cafes: lots of light, brushed aluminum navy chairs, whitewashed walls, wooden floor and – rare for Vancouver – brick. And the coffee’s great too.

Cafe Prado

Coffee Machine at Cafe Prado

Latte at Cafe Prado

It was a great day. Here’s what the haul looked like; call me if you want to eat well this week:

East Van Food Walk Purchases

Great Stories From Hip-Hop

Comments Off

I recently finished Can’t Stop Won’t Stop , Jeff Chang‘s history of hip-hop music. The writing is of variable quality, but the book’s a phenomenal read because the stories are just so damn strong.

I’m not going to review the book here (Amazon does a great job) – and hey, you should read it yourself – rather, I thought I’d share two of the many great anecdotes from the book.

The first regards The Clash and their NYC tour of 1981 (NYC was good to them; the legendary cover of London Calling came from the ’79 tour). The Clash always sought influences outside of rock ‘n roll (half their hits are reggae covers) and here’s what they did on that tour:

[The Clash] were set to play eight nights in June 1981 at an aging Times Square disco, the Bonds International, and they announced their stand with a dramatic unfurling of a magnificent banner painted by FUTURA. But on the eve of their opening, the fire department threatened to shut down the club for overselling the shows, and the fans finally had their white riot when mounted police stormed down Broadway to meet the punks in the street.

The Clash compromised by agreeing to perform eleven additional gigs, and hurried to find opening acts. In yet another naive act of solidarity, they booked Grandmaster Flash and the Furious Five. But, as Michael Hill wrote in The Village Voice, “Rather than achieve a cultural crossover, it threatened to widen the gap.”

When Flash and the Furious Five stepped onstage on The Clash’s opening night, the white punks stood bewildered as Flash began his “Adventures on the Wheels of Steel” routine on three turntables. Then the Furious Five, dressed in fly leather suits, jumped onstage and started rapping and dancing. Some in the crowd began shouting in disgust. They hadn’t come to see no disco. When Flash paused so that the Five could try to regain the crowd, the crew found themselves ducking a hail of beer cups and spit. The next night, dressed down this time in street clothes, they suffered the same reception. They left the stage angrily with Melle Mel admonishing, “Some of you-not all of you, but some of you-are stupid”, never to return.

Most music fans I know would give their eye teeth to see The Clash and Grandmaster Flash on the same bill, but the world wasn’t ready for it in ’81. Some things are just ahead of their time.

The other great story regards why hip-hop was able to become an unstoppable cultural force. It started out as a NYC local sound and was actually competing against other regional sounds – notably Washington D.C.’s go-go. Go-go is basically party music and so was a lot of early hip-hop (Rapper’s Delight and The Breaks anyone?) so why was hip-hop able to pop while you’ve never heard of go-go?

Despite the best efforts of Chuck [Brown], E.U., Trouble Funk and Rare Essence, go-go never crossed over. When the ’90s came, New York execs rushed to sign hip-hop acts and stopped returning D.C. artists’ phone calls. Go-go survived as one of the last independent, indigenous Black youth cultures.

It was an industrial-era music for a postindustrial era. Just as it was when Chuck Brown walked out of Lorton, bands’ fierce competition to remain atop the club scene remained the primary engine of go-go music. Making records with three-minute hit singles, the thing the music industry was most concerned with, was an afterthought. Economics partly explains why, after the 1980s, hip-hop went global and go-go remained local.

But there was also something else, something which Reo Edwards put like this: “I was talking to a go-go songwriter one time. I said, ‘Man, you need a verse here.’ The guy said, ‘The rototom‘s talking! Hear the rototom?’ there, the rototom telling the story.’ Okay. Alright. You know what the rototom is saying. Maybe the people in the audience know what the rototom saying. But the people in Baltimore don’t know what the hell that dang rototom is saying!”

He shakes his head. “Go-go’s got the same problem today as it did back then. You don’t have no good storylines. Hip-hop,” he pauses for emphasis, “tells stories.”

I’ve always loved the stories told by great hip-hop song (I’m thinking The Message, C.R.E.A.M., One Love, Hate It or Love It) and think they’re some of the most powerful narratives ever in song. Hip-hop’s domination is, in part, due to the power of storytelling.

Articulating Your Idea

Comments Off

I gave a talk today at ProductCamp Vancouver (well done organizers!) called Articulating Your Idea. It’s a 12 step process for taking your thoughts/visions and turning them into one or two concrete sentences that people can understand.

Here’s a link to the slides:

Articulating Your Idea

On a different note, the event was in the SFU Business School, whose building is the old BMO building at Granville & Pender. It’s a beautiful place and I highly recommend going in it if you’re in the area (and check out the old vault doors in the basement).

SFU Business School

Vault at SFU Business School

How To Update Arrays of Javascript Objects

Comments Off

I’ve been doing some front-end web development and a common situation has come up again and again:

  • You’ve request a set of objects from a server (json or xml)
  • You store them in an array
  • The user does something
  • You need to request a changed set of objects and update that array

You’ve got two options here:

  1. Destroy the original array (and create all new objects)
  2. Loop through the original array to remove objects that aren’t in the new set and then add objects from the new set that aren’t in the original

Frequently option 1 isn’t really an option because destroying the original object would cause a negative experience for the end user. For instance, the screen might flash as everything they had chosen to see was temporarily destroyed and re-created.

As a result, you’ve got to take option 2. As a Javascript noob, it took me a bit of time and reading a lot of tutorials to figure out the best way to do it.

To help you avoid suffering my fate, I’ve created a quick demo of how to do it. Simply save the code below as an html file and you’ll get walked through a demo on how to do it.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en">
<head>
    <title>A Javascript Test</title>
    <script type="text/javascript">
        function DisplayPropertyNamesAndValues(obj) {
            var names = "";
            for(var name in obj) names += name + " :: " + obj[name] + "\n";
            alert(names);
        }
 
        function DisplayArrayPropertyNamesAndValues(arr) {
            var results = "";
            for (var i=0; i<arr.length; i++) {
                for(var name in arr[i]) results += name + " :: " + arr[i][name] + ", "; 
                results += "\n";
            }
            alert(results);
        }
 
        // Two array full of same type of objects
        var locations = [{'location':'Granville Island','id':1}, {'location':'Home','id':3}, {'location':'49th Parallel','id':6}, {'location':'Cafe Mei Mei','id':10}, {'location':'Siegel\'s Bagels','id':2}, {'location':'The Diamond','id':22}];
        var places = [{'location':'Shiftyville','id':4}, {'location':'Cafe Mei Mei','id':10}, {'location':'Cooperstown','id':32}, {'location':'Black Jack\'s','id':7}, {'location':'Siegel\'s Bagels','id':2}, {'location':'Starbucks','id':8}, {'location':'One More Place','id':9}];
 
        // Create new arrays that are just the ids within each array. Index of id corresponds to same location in original array
        // Create a new object to store the location ids
        // Each id is a property of the object. The value of the property is the corresponding index in the array
        var locations_id = {};
        var id_holder = 0;
        for (var i=0; i<locations.length; i++) {
            id_holder = locations[i]['id'];
            locations_id[id_holder] = i;
        }
        // Enumerate object and alert
        DisplayPropertyNamesAndValues(locations_id);
 
        var places_id = {};
        for (var i=0; i<places.length; i++) {
            id_holder = places[i]['id'];
            places_id[id_holder] = i;
        }
 
        // Enumerate object and alert
        DisplayPropertyNamesAndValues(places_id);
 
        // Now loop through locations_id and find all the locations that don't exist in places_id
        // Create an array storing the index of each place that doesn't exist
        // We'll come back and delete these
        var locations_to_remove = []
        for (var name in locations_id) {
            if (places_id[name] === undefined) {
                locations_to_remove.push(locations_id[name]);
            }
        }
        // Sort the array just in case there's a chance it's out of order
        // Important as we're going to go backwards through the array to later remove items
        locations_to_remove.sort();
        alert("Need to remove the following from locations_id: " + locations_to_remove);
 
        // Do the similar for places_id and locations_id
        // Difference this time is that we want to remove any pre-existing locations from places_id
        // Note that change in the equality operator
        var places_to_remove = []
        for (var name in places_id) {
            if (locations_id[name] !== undefined) {
                places_to_remove.push(places_id[name]);
            }
        }
        places_to_remove.sort();
        alert("Need to remove the following from places_id: " + places_to_remove);
 
        // Now splice out the elements from their respective arrays
        for (var i=locations_to_remove.length-1; i>=0; i--) {
            locations.splice(locations_to_remove[i],1);
        }
        DisplayArrayPropertyNamesAndValues(locations);
 
        for (var i=places_to_remove.length-1; i>=0; i--) {
            places.splice(places_to_remove[i],1);
        }
        DisplayArrayPropertyNamesAndValues(places);
 
        // Now add the remaining elements in places to locations
        for (var i=0; i<places.length; i++) {
            locations.push(places[i]);
        }
        DisplayArrayPropertyNamesAndValues(locations);
    </script>
</head>
<body>
</body>
</html>

The Google is Doomed Meme (or How to Beat Facebook)

Comments Off

There’s a popular meme going around right now on the Internet about how Google is in trouble.

Much has been written (read the links within that last link) about how Google’s search quality is declining and it’s launched a slew of unsuccessful products (Wave, Buzz, TV). They’ve also got a new CEO and seem to be investing shareholder money in some weird things. And the future belongs to the two-headed social/mobile beast that is Facebook and Apple.

The “doom” meme usually extrapolates this to predict the end of the company. The story is that search quality declines, people start to go to other search engines and then advertising dollars follow. This becomes a positive feedback loop (the dreaded doom loop ) and the company now doesn’t have any excess cash to fund new products and can’t find that next billion dollar market.

Great story – and we’re humans so we need stories to make sense of our world – but is it true or is this just a narrative fallacy?

Like all great stories, I’d argue that there’s some truth and some fiction – with enough of both that we can’t resist talking about it endlessly.

So where to start?

Let’s begin with the new product development story. Google Wave and Google Buzz were complete and utter flops – and that’s perfectly fine.

People who complain about Google launching failed products are missing two points:

First, great engineering companies need to have a “ship it” culture. Products need to launch or you end up building Xerox PARC (and everyone knows how that ended). Google is going to ship new products and get them in front of users for feedback.

Secondly, Google’s a large company adopting a portfolio strategy for finding the next great market. Venture capitalists have done this for years; they build a portfolio of companies; a few return an integer multiple of the investment but most break even or lose money. A few winners make up for all the losers.

Most companies aspire to do this. They dream of being able to launch many different products, invest in the winners and cull the losers. It’s business doctrine that you should do this.

But the reality is that most companies simply can’t marshal the resources and build a culture to do so. Google is doing exactly that and, because they’re in one of the most over-analyzed industries on earth, there’s a lot of attention paid to their failures without considering the context.

In fact, if you were a senior manager at Google, you would probably be looking at your product portfolio and thinking it’s okay.

Search continues to throw off cash. You’ve found a few new billion dollar businesses in video (via YouTube) and display ads (via DoubleClick). People increasingly use you for all things map-related. And you’ve launched one of the most successful products ever in Android (it’s worth remembering that a few years ago people said that Europe and Japan were going to own mobile; Google and Apple have single-handedly undone that).

In this context, a few failed products are fine – in fact they’re expected and reinforce that you’re doing the right thing.

So let’s talk about the second complaint: the decline in search quality, errors in maps, AdSense, AppEngine, etc.

There’s definitely a nugget of truth here as a few issues come together at once.

The first issue is simply company scale.

Google’s got 25,000+ employees now and running a company that large requires a different approach than what was required to run the company 10 years ago. Most companies that size lose their way via a lack of focus. Management spreads themselves too thin trying to find the next sexy market while driving more cash out of existing ones.

A lot of the complaints about Google today suggest that there’s a distinct lack of focus going on. The little mistakes: things like places appearing incorrectly on maps or services working intermittently are characteristic of a company that lacks focus and grew too fast.

There’s nothing sexy to fixing this; it requires discipline and people who are willing to do the grunt work required to build out the right set of processes. This isn’t fun, but doing it builds the bedrock of the company and gives engineers more time to work on building the next billion dollar product.

So what about spam?

Google rose to power on the back of the PageRank algorithm which gave us better search results and initially punished spammers. However, whole industries and companies have grown around reverse engineering it to better promote their own agendas. Given 10 years, I’d say that people have done a pretty good job and three years ago was probably the point where the algorithm reached peak effectiveness.

The other trend is that we’ve gotten much more confident asking Google questions we wouldn’t before. When you’re thinking of buying something (“best iPhone case”) or doing something (“good restaurants in Chinatown”) you have probably typed that question into Google once or twice.

And you probably got spammed with results.

The reason isn’t so much that Google’s algorithm was wrong as they lacked the right context.

The reality is that we now routinely search for things that require context for an answer yet we don’t provide any context.

When you are looking for a good restaurant, you have a set of hidden assumptions that only you know.

For instance, that you don’t like pork, that you think the New York Times’ reviews are garbage, whatever.

Google doesn’t know this and so instead it provides you with some sort of context-free, lowest common denominator result. (in food, likely a link to a few ‘trusted’ local newspapers and reviews from spammers/people you’ve never met on Yelp).

The “search quality” here is impossible for someone at Google to objectively measure. Only you can know if the result is “good” or “bad” because only you know what you were looking for.

The geniuses at Google’ are highly aware of this problem and are working on tools to get you to give them context.

The most thinly-veiled attempt at this is HotPot (you literally rate restaurants; they find other people who rate like you and you get recommendations). More subtle examples were  Searchwiki and now Google Stars:

google_stars.png

When you star something, Google remembers what keyword you entered and what links you liked. They can use this to boost the type of results you receive in the future.

However, all of these attempts at generating context feel a lot like rearranging the deck chairs on the Titanic. They require a huge change in consumer behaviour in order to get a good result. In a world with too little time, its highly unlikely that most people are going to take the time to hand-annotate their search results.

Instead, people are going to expect that Google learn the right context for a search.

We are context creating machines and 500 million of us do it regularly at Facebook. All that friending, sharing, liking and commenting is nothing more than giving Facebook context: who we are, what we like, who are people who are like us.

We’re all scared they’re going to use it to send us freakishly tempting ads, but it could just as easily be used to give us freakishly accurate searches. (The jargon for this is “social search”.)

Zuckerberg et al. know that and they also know that they’re weak in the blood and guts of traditional search (things like indexing, crawling, etc.). Hence they’re jealously guarding the data and working with Microsoft’s Bing to try and come up with a solution. I have no doubt that dozens of Bing and Facebook engineers are currently building a search engine.

And that would be a real threat to Google.

No one has dethroned them as the king of search – spam and all – because their search satisfices. No search engine does a materially better job so users don’t switch and the world is littered with the detritus of search engines that were marginally better than Google (think Cuil). All had great technology but weren’t good enough to get users to change behaviour.

But a contextual search engine could be good enough to get people to switch.

And that could kick off the doom loop.

So how, short of buying Facebook (and they’re not for sale), could Google avoid this?

If I were Google, I’d do the opposite of Facebook.

Facebook is a classic walled garden where you can put data in but you can’t get it out and can’t share it with anyone. Moreover, rather than open up, they simply try to build whatever service they think consumers want.

Want to send a message to Facebook friend? You’ve got to use Facebook’s messaging platform. Share photos? Facebook’s photo app.

It’s the digital equivalent of Henry Ford‘s “Any customer can have a car painted any color as long as it’s black.

Contrast this with the Open Web. It’s full of lots of little sites that are good at one thing and generate lots of context about us. We review restaurants on Yelp. We mark things as worth reading at Instapaper. We listen to music on Last.fm. We write notes on SimpleNote.

Moreover, we frequently do this with other people, building out a graph of interesting people for each of these different services. One interpretation of Twitter is that who we follow is nothing more than a pure expression of our interests.

But to date, no one has been able to open up the value that’s locked inside both the data and networks of each of these services. This is partly because it’s a search problem and search is really hard.

It’s also partly because each of these services is small and can’t capitalize on their graphs/data.

Enter Google.

Imagine that Google decided to create a framework that allowed any third party service to dump your data and your graph into Google’s search results – if you chose to allow them.

When you performed a search in Google, they would mine your choice of services and friends to get you a contextual answer that was right for you.

Ask a question about Italian restaurants? Those starred recommendations from Yelp come along as do the opinions of your friends.

Looking for a good iPhone case? The tweets from that designer you follow suddenly come back.

Information on collaborative filtering? The search results also include information from the notes you made in SimpleNote.

Sounds interesting, but how to get this data from each of these small-ish companies?

1) Create the framework and open source it. Google’s part way there with Open Social (tech geeks: remember that?).

2) Align the incentives. Offer participating sites a cut of ad revenue from Google searches that reference their data/graph. And then turn around and offer them better ads on their sites because only you can aggregate people’s interests across multiple services.

The big fear of sites here would be disintermediation: that people go to Google instead of their site. However, this is unlikely to be the case. Mobile phones are showing us that people like to use best-of-breed apps for single tasks (like reading, note taking, reviewing, etc.); we don’t use one general-purpose app. This is also reinforced by the decline of the dashboard cum widget products like NetVibes or iGoogle.

Moreover, Google would only handle the ‘search’ part of the equation: all the content creation and browsing and checking updates, etc. would occur on the respective sites. And sites would get more money from better ads and searches on Google.

I for one hope this happens. As a consumer I love the thought that I’m free to choose the best services in the world and can harness the power that they each offer to create a sum that is great than the value of its parts. And then the doom meme can finally die.

NOTES:

This blog post is based in part on a lot of interesting thinking from several different people. I recommend reading each of their posts in their entirety.

Vancouver: Almost a Week In

Comments Off

Wen and I have been in Vancouver for almost a week now. We’ve met great people, eaten phenomenal ramen, drank unreal coffee (everywhere) and even found a place (although we can’t move in until Feb 1). We’re gradually coming to terms with the fact that cars actually stop for you when you want to cross the street, that people’s earnestness here is sincere and that no one understands sarcasm.

We’re also noticing three trends.

1. There is a distinct Vancouver style

The “City of Glass” is evolving it’s own style and its creeping into its built spaces. Every now and then you turn a corner and it feels like you’ve stepped into the future. An elegant future of glass and steel and right angles that don’t feel harsh.

I’m looking forward to see how this turns out.

Condo

Building Downtown

New Fairmont

New Fairmont

Shangri-La

2. There’s Public Art Everywhere

The knock against Vancouver used to be that it was a provincial town. That no longer holds (see entry 1). Moreover, we’ve been amazed at the public art that litters the city.

Art Exhibit Besides Shangri-La

Biennale Art

Biennale Art

3. The Views Really Are Spectacular

This is a city surrounded by mountains and ocean, but even then, you can’t really imagine what that means until you spend some quality time outdoors over the course of a few days.

View from Jericho Beach

Vancouver Skyline

Rainbow over harbour

Harbour at Sunset

Oh yeah, and, on a good day, you can see a totem pole framed by a rainbow in front of a snowy mountain. You know, like most places.
Rainbow and totem pole

My Dad Is A Waterfall

Comments Off

I finally upgraded my iPhoto software and it now recognizes photos. My OCD nature has required me to go through all my photos and start labelling the names of people, with the assistance of the software.

It tends to do a great job (as seen below by Wen’s gran, who is now on the internet!):

Anne Bennett, welcome to the Internet

However, it has failed miserably with my dad, identifying him – amongst other things – as a thicket of snow-covered trees, waterfalls, a stilt house, Japanese masking tape and Damian Hirst’s crystal skull.

Dad's various misidentifications by iPhoto

Don’t worry dad; we know you when we see you.

Out With 2010 And In With 2011

Comments Off

So.

It’s 2011.

Being lazy and using that as an excuse to pretend I’m bucking a trend, I’m going to take this first day of the new year to reflect on the year gone by and look forward.

1.

Let’s start with some not quite arbitrarily chosen numbers for last year.

90 blog posts

318 tweets

5,260 photos kept (and I delete about 2 photos for every one I keep)

66 Kindle books (can’t say I read them all)

12 countries

48 cities

38 people followed on Twitter

99 blog subscriptions (OPML if you know what that means)

2.

Travel was the biggest theme for 2010 as the numbers above attest. The year started in the snow of Whistler mountain and spring saw trips to Montreal and D.C.

Then, for a variety of reasons, we decided to leave NYC and the real travel began. Our first foray was upcountry to Yale/New Haven to sell Wendy’s car and then Toronto/Algonquin for a wedding.

The success of this led us on our world tour which has been been heavily documented.

3.

The numbers above illustrate a few more themes in my life:

  • Digital narcissism. If, in the future, an anthropologist tries to understand my life, the period from about age 27 onward will be extremely well documented. Without realizing it, I’m leaving breadcrumbs to my personality-opinions, experiences, thoughts, musings-all across the web on an increasingly rapid basis. Perhaps in a few years time someone will write a computer program that will simulate my thoughts so well that it will be able to pass the Turing Test (however, I suspect this is highly unlikely)
  • Attention is the biggest constraint in my digital life. It’s amazing that I can get the opinions and thoughts of over 100 people and organizations on a daily basis but I don’t have the right set of tools to digest it all. There are great tools for streaming it to me, but there is a distinct lack of tools to help me make sense of it all and coalesce the views and opinions of all these people. I need something that helps me filter their opinions for what I’m most interested in and then pulls out the main themes. Maybe this will finally arrive in 2011.
  • Storage is the second biggest constraint in my digital life. When I was a kid we had a 20 Mb hard drive on our Mac Plus and I remember that it was hard to fill up. I just filled up my 250 GB hard drive. Where did all this come from? The 15,000 photos I’ve taken (1/3 in the last year), the 7,459 songs in my iTunes and the increasing number of digital books I’m reading. The easy solution would be to transfer all of this to the cloud. And I’ll probably have to unless I can keep doubling the size of my hard drive every three years (which could be possible). But I’m not sure I’m ready to trust the cloud with every last detail of my life. (And yes, there’s an irony that I’m saying this in a blog post)

4.

Here are some things that I enjoyed in 2010:

5.

It took a while, but I found my resolutions from last year.

It’s a mixed bag of results: since we ended up leaving NYC and traveling, a lot of them – like cook more, meet more people in the neighbourhood, learn how to program an Arduino, take a class at 3rd Ward, etc. – became moot.

I did learn how to be a better Django programmer and created a very early prototype of some location-based software (more will be coming this year!). I also wanted to expose myself to a lot of new ideas; the twitter and blog feeds above did that.

I utterly failed in my efforts to redo this website, dress better at work or do a better job of staying in touch with my friends (damnit, why don’t you all read this blog and get on twitter?).

6.

So, what will 2011 bring? This year I’m limiting myself to four resolutions:

  • Launch my own company. This one’s going to happen. More details to follow
  • Meet a lot of interesting people in Vancouver. New year, new city, new set of friends. I’ve lived mainly in cities like Toronto and NYC where the fun comes to you. Vancouver is going to be different: I’m going to have to seek out similar-minded people. I’m thinking a lot of yoga, rock climbing, trail running, hackspacing and tech meetups to try and meet interesting folks.
  • Run a 3:10 marathon. I really want to qualify for Boston and, while it’s a step change in improvement from my personal best, I’m going to give it a try. I also lost 15 pounds traveling, so I feel like this could be the year
  • Do less, better. Life is too interesting and there’s too much to do. So I’m going to try and do fewer things with more focus. I don’t know how this will play out, but we’ll see.

And with that, happy new year!

Older Entries Newer Entries

Switch to our mobile site