How to build desktop apps that help your web app succeed

  • View
    5.271

  • Download
    3

  • Category

    Sports

Preview:

DESCRIPTION

The Carsonified gang suggested a slightly different spin on a "Lessons from Last.fm" talk, focused around the desktop. Here are the slides that came out of it, along with an unveiling of the Last.fm Boffin tech demo.Presented at FOWA Dublin, 6 March 2009

Citation preview

How to build desktop apps that help your web app succeed

Matthew Ogle (matt@last.fm) FOWA Dublin, 6 March 2009

Wait, desktop?

Wait, desktop?

Web 2.0 has (arguably) eroded the importance of desktop apps

Wait, desktop?

Web 2.0 has (arguably) eroded the importance of desktop apps

How many of you use Gmail as a primary email client?

Desktop, really?

Desktop, really?

It’s a good, familiar pitch. Web apps…

Desktop, really?

It’s a good, familiar pitch. Web apps…

are cross-platform

Desktop, really?

It’s a good, familiar pitch. Web apps…

are cross-platform

no install process

Desktop, really?

It’s a good, familiar pitch. Web apps…

are cross-platform

no install process

available anywhere

Desktop, really?

It’s a good, familiar pitch. Web apps…

are cross-platform

no install process

available anywhere

taste like cloud

Yes, desktop.

Yes, desktop.

It’s 2009, no desktop is an island

Yes, desktop.

It’s 2009, no desktop is an island

At Last.fm, our desktop strategy was key to our crazy growth

Yes, desktop.

It’s 2009, no desktop is an island

At Last.fm, our desktop strategy was key to our crazy growth

Along the way, discovered some useful models for desktop-web interaction

Yes, desktop.

It’s 2009, no desktop is an island

At Last.fm, our desktop strategy was key to our crazy growth

Along the way, discovered some useful models for desktop-web interaction

Hints that desktop might be even more important in future

In the beginning…

In the beginning…

Last.fm began in 2002 as two separate projects

In the beginning…

Last.fm began in 2002 as two separate projects

: personal online radio that learns what you like and gets better over time

In the beginning…

Last.fm began in 2002 as two separate projects

: personal online radio that learns what you like and gets better over time

Fig. 1-a

In the beginning…

Last.fm began in 2002 as two separate projects

: personal online radio that learns what you like and gets better over time

Fig. 1-a

In the beginning…

Last.fm began in 2002 as two separate projects

: personal online radio that learns what you like and gets better over time

𝄞 ♬

♫Fig. 1-a

In the beginning…

Last.fm began in 2002 as two separate projects

: personal online radio that learns what you like and gets better over time

𝄞 ♬

♫Fig. 1-a

In the beginning…

Last.fm began in 2002 as two separate projects

: personal online radio that learns what you like and gets better over time

𝄞 ♬

♫Fig. 1-a

In the beginning…

In the beginning…

: desktop media player plugins that track (“scrobble”) what you listen to, build up detailed personal music profile

In the beginning…

: desktop media player plugins that track (“scrobble”) what you listen to, build up detailed personal music profile

Fig. 1-b

In the beginning…

: desktop media player plugins that track (“scrobble”) what you listen to, build up detailed personal music profile

Fig. 1-b

In the beginning…

: desktop media player plugins that track (“scrobble”) what you listen to, build up detailed personal music profile

Fig. 1-b

In the beginning…

: desktop media player plugins that track (“scrobble”) what you listen to, build up detailed personal music profile

om nom nom

Fig. 1-b

Last.fm in 2003

Audioscrobbler in 2003

Last.fm

Last.fmCombining the two = ideal feedback loop for crowdsourced music recommendation

Last.fmCombining the two = ideal feedback loop for crowdsourced music recommendation

Last.fm and Audioscrobbler gradually merged over 2004–2006

Last.fmCombining the two = ideal feedback loop for crowdsourced music recommendation

Last.fm and Audioscrobbler gradually merged over 2004–2006

Online radio and music recommendation have become primary user-facing services of Last.fm

Last.fmCombining the two = ideal feedback loop for crowdsourced music recommendation

Last.fm and Audioscrobbler gradually merged over 2004–2006

Online radio and music recommendation have become primary user-facing services of Last.fm

But the fuel comes from the desktop – via scrobbling

Last.fm

Last.fm

What’s in a scrobble?

Last.fm

What’s in a scrobble?

Made from very basic metadata: user nametrack nameartist nametimestamp

Last.fm

Last.fm

The API for sending this data to our servers has been public since our inception

Last.fm

The API for sending this data to our servers has been public since our inception

Last.fm only added an official scrobbling app in mid-2006

Last.fm

The API for sending this data to our servers has been public since our inception

Last.fm only added an official scrobbling app in mid-2006

More than 100 media players, devices, and platforms can scrobble, and we currently handle up to 800 / second at peak

World o’ scrobbles

World o’ scrobbles

World o’ scrobbles

World o’ scrobbles

World o’ scrobbles

World o’ scrobbles

World o’ scrobbles

World o’ scrobbles

Emacs

World o’ scrobbles

World o’ scrobbles

“My name’s Matt and I’ve just listened to ‘Edmonton’ by the Rural Alberta Advantage”…times 30 billion

World o’ scrobbles

“My name’s Matt and I’ve just listened to ‘Edmonton’ by the Rural Alberta Advantage”…times 30 billion

(That’s a lot of music taste data)

World o’ scrobbles

“My name’s Matt and I’ve just listened to ‘Edmonton’ by the Rural Alberta Advantage”…times 30 billion

(That’s a lot of music taste data)

But why all this scrobbling, especially with desktop barriers-to-entry? And how did it drive growth?

Scrobbling and growth

Scrobbling and growth

Scrobbling helps the scrobbler first: their profile pages show off their awesome music taste in real-time

Scrobbling and growth

Scrobbling helps the scrobbler first: their profile pages show off their awesome music taste in real-time

Scrobbling helps the network next: every time we don’t recognize an artist or track, we add it to our database

Desktop growth fuel(among other things, this creates a page for it)

Desktop growth fuel(among other things, this creates a page for it)

Desktop growth fuel

Desktop growth fuel

Ambient page creation via desktop app

Desktop growth fuel

Ambient page creation via desktop app

Tons of incoming links to personal music profiles + long tail of pages built by scrobbles = great free Google juice

Desktop growth fuel

Ambient page creation via desktop app

Tons of incoming links to personal music profiles + long tail of pages built by scrobbles = great free Google juice

12 million artist pages43 million track pages25+ million unique active users per month

Desktop growth fuel

Desktop growth fuel

Kept desktop app unobtrusive and simple during successive website updates

Desktop growth fuel

Kept desktop app unobtrusive and simple during successive website updates

Only a few major additions since 2006

Desktop growth fuel

Kept desktop app unobtrusive and simple during successive website updates

Only a few major additions since 2006

iTunes bootstrapping

Desktop growth fuel

Kept desktop app unobtrusive and simple during successive website updates

Only a few major additions since 2006

iTunes bootstrapping

Audio fingerprinting

Enough about music

Enough about music

We’re pretty lucky to be running a music service

Enough about music

We’re pretty lucky to be running a music service

Are the concepts behind scrobbling useful for anything else?

Scrobbles = attention data

Scrobbles = attention dataAttention data is a digital record that describes the time spent interacting with someone or something.- Jim Meyer, http://www.usingattention.com/2006/08/19/what-is-attention-data/

Scrobbles = attention dataAttention data is a digital record that describes the time spent interacting with someone or something.- Jim Meyer, http://www.usingattention.com/2006/08/19/what-is-attention-data/

Scrobbling doesn’t ask a user to change or develop new behaviours; it asks permission to record existing ones

Attention data

Attention dataTons of these interactions are happening every minute on the desktop

Attention dataTons of these interactions are happening every minute on the desktop

downloading / browsing photos from a camera

Attention dataTons of these interactions are happening every minute on the desktop

downloading / browsing photos from a camera

chatting to friends on IM

Attention dataTons of these interactions are happening every minute on the desktop

downloading / browsing photos from a camera

chatting to friends on IM

annotating a research paper

Attention dataTons of these interactions are happening every minute on the desktop

downloading / browsing photos from a camera

chatting to friends on IM

annotating a research paper

watching videos

Attention dataTons of these interactions are happening every minute on the desktop

downloading / browsing photos from a camera

chatting to friends on IM

annotating a research paper

watching videos

(your desktop interaction here)

Working with attention

Working with attentionYour service should seek to amplify + add value to attention data

Working with attentionYour service should seek to amplify + add value to attention data

In doing so, you ideally give it...

Working with attentionYour service should seek to amplify + add value to attention data

In doing so, you ideally give it...

more personal value (this comes first, don’t neglect it)

Working with attentionYour service should seek to amplify + add value to attention data

In doing so, you ideally give it...

more personal value (this comes first, don’t neglect it)

network value(this is where your service can really shine)

More desktop principles

More desktop principlesExpose a good API from the start (good != elaborate)

More desktop principlesExpose a good API from the start (good != elaborate)

Don’t force users to change habits; use desktop to give them an on-ramp

More desktop principlesExpose a good API from the start (good != elaborate)

Don’t force users to change habits; use desktop to give them an on-ramp

Works for more than just music or attention data (Tripit/Dopplr itinerary parsing, photo uploaders)

More desktop principlesExpose a good API from the start (good != elaborate)

Don’t force users to change habits; use desktop to give them an on-ramp

Works for more than just music or attention data (Tripit/Dopplr itinerary parsing, photo uploaders)

Desktop + privacy balance = hard but essential (being open source and offering data export helps)

So what about...

The Future?

The Future?Bernal Sphere, 1970s (Apologies to Matt Jones, Dopplr)

The Future?Bernal Sphere, 1970s (Apologies to Matt Jones, Dopplr)

The thinking here seems to be: “People like planned garden communities, and space is the future,

so let’s just put one in space! Yeah! That’s much better!”

Utopian desktop futures

Utopian desktop futuresAIR

Utopian desktop futuresAIR

Prism

Utopian desktop futuresAIR

Prism

Google Gears

Utopian desktop futuresAIR

Prism

Google Gears

Songbird

Utopian desktop futuresAIR

Prism

Google Gears

Songbird

These let us web developers build desktop apps, potentially for the first time, ZOMG

Utopian desktop futures

Utopian desktop futuresAll these projects are interesting and exciting and you should look them up

Utopian desktop futuresAll these projects are interesting and exciting and you should look them up

…cause I’m not going to talk about them.

Utopian desktop futuresAll these projects are interesting and exciting and you should look them up

…cause I’m not going to talk about them.

(I’m not yet convinced they significantly change the web OR the desktop. They just move it around a bit.)

An alternate visionfrom the Last.fm labs

Turn it inside out

Turn it inside outInstead of sending local content TO the web (the on-ramp) or putting the web inside a desktop experience (Songbird, AIR)...

Turn it inside outInstead of sending local content TO the web (the on-ramp) or putting the web inside a desktop experience (Songbird, AIR)...

...why can’t the web make local content better? And leave it there?

Turn it inside outInstead of sending local content TO the web (the on-ramp) or putting the web inside a desktop experience (Songbird, AIR)...

...why can’t the web make local content better? And leave it there?

…using proven desktop conventions and programming languages?

Introducing Boffin

Introducing Boffin

Last.fm’s crowdsourced music intelligence meets your local music collection

Introducing Boffin

Last.fm’s crowdsourced music intelligence meets your local music collection

[Demo]

Introducing Boffin

Last.fm’s crowdsourced music intelligence meets your local music collection

[Demo]

Download Mac, Windows, or source:http://is.gd/lDLG

Parting tips

Parting tipsMake it selfish

Parting tipsMake it selfish

Make it open

Parting tipsMake it selfish

Make it open

Amplify user attention

Parting tipsMake it selfish

Make it open

Amplify user attention

Create on-ramps to your web experience

Parting tipsMake it selfish

Make it open

Amplify user attention

Create on-ramps to your web experience

Be wary of uptopian futures that involve platform lock-in

Parting tipsMake it selfish

Make it open

Amplify user attention

Create on-ramps to your web experience

Be wary of uptopian futures that involve platform lock-in

Befriend local desktop developers, trade notes, learn from each other

Parting tipsMake it selfish

Make it open

Amplify user attention

Create on-ramps to your web experience

Be wary of uptopian futures that involve platform lock-in

Befriend local desktop developers, trade notes, learn from each other

Use your web smarts to make the desktop exciting again

Any questions?

See you online: www.last.fm/user/flaneurwww.twitter.com/flaneurirc.audioscrobbler.com

matt@last.fm

Recommended