94
Sharing the Joy Building badges for distribution Christian Heilmann, Highland Fling, Edinburgh 2008

Building Badges for distribution

Embed Size (px)

DESCRIPTION

My talk at highland fling about the pending modularization of web interfaces and tips on how to build badges now.

Citation preview

Page 1: Building Badges for distribution

Sharing the JoyBuilding badges for

distribution

Christian Heilmann Highland Fling Edinburgh 2008

Web Development as we know it is changing

Old Model

Destination = Site

Data Container = Page

This is how our web standards work

We already ran into problems with this

Ajax apps need a lot of hacking to behave more

responsive yet stay true to old usage patterns

Interaction issues are one thing

Now we face the data revolution

Sites and page thinking limits the reach and success of the

web as a media

Facebook YouTube Flickr Google Maps Upcoming and

others work on a different model

Data wants to be free of restrictions

People want data not going to one site after the other

Personal homepages feed aggregators microblogging

and social profile sites are booming

Right now we build for each of them individually

This is changing too

(fe OpenSocial)

In the not too distant future modules will replace the

page and frameworks across platforms will consume them

This calls for new standards ndash after all it is about

collaboration

However today we can already play with ideas and

learn from similar implementations

Specifically badges

A lot of companies offer badges with their data to add

to your site

Why badges

You want your content to be out on the web

Distributing data has several benefits

Good search engine lovinrsquo

Lack of single point of failure

Better content

(more on that later)

Content distribution works in several ways

Anakin Yoda

Badge APIWidget

Obi Wan

All of these mean including content into a product

The first snag we hit presentation

Consider several use cases

Anakin wants nicely styled badges to copy and paste

Badges

Obi Wan probably wants a style sheet or parameters to

change

Widgets

Yoda needs clean semantic markup or other easy to

digest data formats

APIs

Badges are most of the time considered to show the

company branding

This means either iframes or a lot of dirty extra code

We need to change our approach

You cannot fully control the look and feel of web sites

It is next to impossible to control the look and feel of a

badge

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 2: Building Badges for distribution

Web Development as we know it is changing

Old Model

Destination = Site

Data Container = Page

This is how our web standards work

We already ran into problems with this

Ajax apps need a lot of hacking to behave more

responsive yet stay true to old usage patterns

Interaction issues are one thing

Now we face the data revolution

Sites and page thinking limits the reach and success of the

web as a media

Facebook YouTube Flickr Google Maps Upcoming and

others work on a different model

Data wants to be free of restrictions

People want data not going to one site after the other

Personal homepages feed aggregators microblogging

and social profile sites are booming

Right now we build for each of them individually

This is changing too

(fe OpenSocial)

In the not too distant future modules will replace the

page and frameworks across platforms will consume them

This calls for new standards ndash after all it is about

collaboration

However today we can already play with ideas and

learn from similar implementations

Specifically badges

A lot of companies offer badges with their data to add

to your site

Why badges

You want your content to be out on the web

Distributing data has several benefits

Good search engine lovinrsquo

Lack of single point of failure

Better content

(more on that later)

Content distribution works in several ways

Anakin Yoda

Badge APIWidget

Obi Wan

All of these mean including content into a product

The first snag we hit presentation

Consider several use cases

Anakin wants nicely styled badges to copy and paste

Badges

Obi Wan probably wants a style sheet or parameters to

change

Widgets

Yoda needs clean semantic markup or other easy to

digest data formats

APIs

Badges are most of the time considered to show the

company branding

This means either iframes or a lot of dirty extra code

We need to change our approach

You cannot fully control the look and feel of web sites

It is next to impossible to control the look and feel of a

badge

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 3: Building Badges for distribution

Old Model

Destination = Site

Data Container = Page

This is how our web standards work

We already ran into problems with this

Ajax apps need a lot of hacking to behave more

responsive yet stay true to old usage patterns

Interaction issues are one thing

Now we face the data revolution

Sites and page thinking limits the reach and success of the

web as a media

Facebook YouTube Flickr Google Maps Upcoming and

others work on a different model

Data wants to be free of restrictions

People want data not going to one site after the other

Personal homepages feed aggregators microblogging

and social profile sites are booming

Right now we build for each of them individually

This is changing too

(fe OpenSocial)

In the not too distant future modules will replace the

page and frameworks across platforms will consume them

This calls for new standards ndash after all it is about

collaboration

However today we can already play with ideas and

learn from similar implementations

Specifically badges

A lot of companies offer badges with their data to add

to your site

Why badges

You want your content to be out on the web

Distributing data has several benefits

Good search engine lovinrsquo

Lack of single point of failure

Better content

(more on that later)

Content distribution works in several ways

Anakin Yoda

Badge APIWidget

Obi Wan

All of these mean including content into a product

The first snag we hit presentation

Consider several use cases

Anakin wants nicely styled badges to copy and paste

Badges

Obi Wan probably wants a style sheet or parameters to

change

Widgets

Yoda needs clean semantic markup or other easy to

digest data formats

APIs

Badges are most of the time considered to show the

company branding

This means either iframes or a lot of dirty extra code

We need to change our approach

You cannot fully control the look and feel of web sites

It is next to impossible to control the look and feel of a

badge

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 4: Building Badges for distribution

This is how our web standards work

We already ran into problems with this

Ajax apps need a lot of hacking to behave more

responsive yet stay true to old usage patterns

Interaction issues are one thing

Now we face the data revolution

Sites and page thinking limits the reach and success of the

web as a media

Facebook YouTube Flickr Google Maps Upcoming and

others work on a different model

Data wants to be free of restrictions

People want data not going to one site after the other

Personal homepages feed aggregators microblogging

and social profile sites are booming

Right now we build for each of them individually

This is changing too

(fe OpenSocial)

In the not too distant future modules will replace the

page and frameworks across platforms will consume them

This calls for new standards ndash after all it is about

collaboration

However today we can already play with ideas and

learn from similar implementations

Specifically badges

A lot of companies offer badges with their data to add

to your site

Why badges

You want your content to be out on the web

Distributing data has several benefits

Good search engine lovinrsquo

Lack of single point of failure

Better content

(more on that later)

Content distribution works in several ways

Anakin Yoda

Badge APIWidget

Obi Wan

All of these mean including content into a product

The first snag we hit presentation

Consider several use cases

Anakin wants nicely styled badges to copy and paste

Badges

Obi Wan probably wants a style sheet or parameters to

change

Widgets

Yoda needs clean semantic markup or other easy to

digest data formats

APIs

Badges are most of the time considered to show the

company branding

This means either iframes or a lot of dirty extra code

We need to change our approach

You cannot fully control the look and feel of web sites

It is next to impossible to control the look and feel of a

badge

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 5: Building Badges for distribution

We already ran into problems with this

Ajax apps need a lot of hacking to behave more

responsive yet stay true to old usage patterns

Interaction issues are one thing

Now we face the data revolution

Sites and page thinking limits the reach and success of the

web as a media

Facebook YouTube Flickr Google Maps Upcoming and

others work on a different model

Data wants to be free of restrictions

People want data not going to one site after the other

Personal homepages feed aggregators microblogging

and social profile sites are booming

Right now we build for each of them individually

This is changing too

(fe OpenSocial)

In the not too distant future modules will replace the

page and frameworks across platforms will consume them

This calls for new standards ndash after all it is about

collaboration

However today we can already play with ideas and

learn from similar implementations

Specifically badges

A lot of companies offer badges with their data to add

to your site

Why badges

You want your content to be out on the web

Distributing data has several benefits

Good search engine lovinrsquo

Lack of single point of failure

Better content

(more on that later)

Content distribution works in several ways

Anakin Yoda

Badge APIWidget

Obi Wan

All of these mean including content into a product

The first snag we hit presentation

Consider several use cases

Anakin wants nicely styled badges to copy and paste

Badges

Obi Wan probably wants a style sheet or parameters to

change

Widgets

Yoda needs clean semantic markup or other easy to

digest data formats

APIs

Badges are most of the time considered to show the

company branding

This means either iframes or a lot of dirty extra code

We need to change our approach

You cannot fully control the look and feel of web sites

It is next to impossible to control the look and feel of a

badge

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 6: Building Badges for distribution

Ajax apps need a lot of hacking to behave more

responsive yet stay true to old usage patterns

Interaction issues are one thing

Now we face the data revolution

Sites and page thinking limits the reach and success of the

web as a media

Facebook YouTube Flickr Google Maps Upcoming and

others work on a different model

Data wants to be free of restrictions

People want data not going to one site after the other

Personal homepages feed aggregators microblogging

and social profile sites are booming

Right now we build for each of them individually

This is changing too

(fe OpenSocial)

In the not too distant future modules will replace the

page and frameworks across platforms will consume them

This calls for new standards ndash after all it is about

collaboration

However today we can already play with ideas and

learn from similar implementations

Specifically badges

A lot of companies offer badges with their data to add

to your site

Why badges

You want your content to be out on the web

Distributing data has several benefits

Good search engine lovinrsquo

Lack of single point of failure

Better content

(more on that later)

Content distribution works in several ways

Anakin Yoda

Badge APIWidget

Obi Wan

All of these mean including content into a product

The first snag we hit presentation

Consider several use cases

Anakin wants nicely styled badges to copy and paste

Badges

Obi Wan probably wants a style sheet or parameters to

change

Widgets

Yoda needs clean semantic markup or other easy to

digest data formats

APIs

Badges are most of the time considered to show the

company branding

This means either iframes or a lot of dirty extra code

We need to change our approach

You cannot fully control the look and feel of web sites

It is next to impossible to control the look and feel of a

badge

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 7: Building Badges for distribution

Interaction issues are one thing

Now we face the data revolution

Sites and page thinking limits the reach and success of the

web as a media

Facebook YouTube Flickr Google Maps Upcoming and

others work on a different model

Data wants to be free of restrictions

People want data not going to one site after the other

Personal homepages feed aggregators microblogging

and social profile sites are booming

Right now we build for each of them individually

This is changing too

(fe OpenSocial)

In the not too distant future modules will replace the

page and frameworks across platforms will consume them

This calls for new standards ndash after all it is about

collaboration

However today we can already play with ideas and

learn from similar implementations

Specifically badges

A lot of companies offer badges with their data to add

to your site

Why badges

You want your content to be out on the web

Distributing data has several benefits

Good search engine lovinrsquo

Lack of single point of failure

Better content

(more on that later)

Content distribution works in several ways

Anakin Yoda

Badge APIWidget

Obi Wan

All of these mean including content into a product

The first snag we hit presentation

Consider several use cases

Anakin wants nicely styled badges to copy and paste

Badges

Obi Wan probably wants a style sheet or parameters to

change

Widgets

Yoda needs clean semantic markup or other easy to

digest data formats

APIs

Badges are most of the time considered to show the

company branding

This means either iframes or a lot of dirty extra code

We need to change our approach

You cannot fully control the look and feel of web sites

It is next to impossible to control the look and feel of a

badge

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 8: Building Badges for distribution

Now we face the data revolution

Sites and page thinking limits the reach and success of the

web as a media

Facebook YouTube Flickr Google Maps Upcoming and

others work on a different model

Data wants to be free of restrictions

People want data not going to one site after the other

Personal homepages feed aggregators microblogging

and social profile sites are booming

Right now we build for each of them individually

This is changing too

(fe OpenSocial)

In the not too distant future modules will replace the

page and frameworks across platforms will consume them

This calls for new standards ndash after all it is about

collaboration

However today we can already play with ideas and

learn from similar implementations

Specifically badges

A lot of companies offer badges with their data to add

to your site

Why badges

You want your content to be out on the web

Distributing data has several benefits

Good search engine lovinrsquo

Lack of single point of failure

Better content

(more on that later)

Content distribution works in several ways

Anakin Yoda

Badge APIWidget

Obi Wan

All of these mean including content into a product

The first snag we hit presentation

Consider several use cases

Anakin wants nicely styled badges to copy and paste

Badges

Obi Wan probably wants a style sheet or parameters to

change

Widgets

Yoda needs clean semantic markup or other easy to

digest data formats

APIs

Badges are most of the time considered to show the

company branding

This means either iframes or a lot of dirty extra code

We need to change our approach

You cannot fully control the look and feel of web sites

It is next to impossible to control the look and feel of a

badge

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 9: Building Badges for distribution

Sites and page thinking limits the reach and success of the

web as a media

Facebook YouTube Flickr Google Maps Upcoming and

others work on a different model

Data wants to be free of restrictions

People want data not going to one site after the other

Personal homepages feed aggregators microblogging

and social profile sites are booming

Right now we build for each of them individually

This is changing too

(fe OpenSocial)

In the not too distant future modules will replace the

page and frameworks across platforms will consume them

This calls for new standards ndash after all it is about

collaboration

However today we can already play with ideas and

learn from similar implementations

Specifically badges

A lot of companies offer badges with their data to add

to your site

Why badges

You want your content to be out on the web

Distributing data has several benefits

Good search engine lovinrsquo

Lack of single point of failure

Better content

(more on that later)

Content distribution works in several ways

Anakin Yoda

Badge APIWidget

Obi Wan

All of these mean including content into a product

The first snag we hit presentation

Consider several use cases

Anakin wants nicely styled badges to copy and paste

Badges

Obi Wan probably wants a style sheet or parameters to

change

Widgets

Yoda needs clean semantic markup or other easy to

digest data formats

APIs

Badges are most of the time considered to show the

company branding

This means either iframes or a lot of dirty extra code

We need to change our approach

You cannot fully control the look and feel of web sites

It is next to impossible to control the look and feel of a

badge

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 10: Building Badges for distribution

Facebook YouTube Flickr Google Maps Upcoming and

others work on a different model

Data wants to be free of restrictions

People want data not going to one site after the other

Personal homepages feed aggregators microblogging

and social profile sites are booming

Right now we build for each of them individually

This is changing too

(fe OpenSocial)

In the not too distant future modules will replace the

page and frameworks across platforms will consume them

This calls for new standards ndash after all it is about

collaboration

However today we can already play with ideas and

learn from similar implementations

Specifically badges

A lot of companies offer badges with their data to add

to your site

Why badges

You want your content to be out on the web

Distributing data has several benefits

Good search engine lovinrsquo

Lack of single point of failure

Better content

(more on that later)

Content distribution works in several ways

Anakin Yoda

Badge APIWidget

Obi Wan

All of these mean including content into a product

The first snag we hit presentation

Consider several use cases

Anakin wants nicely styled badges to copy and paste

Badges

Obi Wan probably wants a style sheet or parameters to

change

Widgets

Yoda needs clean semantic markup or other easy to

digest data formats

APIs

Badges are most of the time considered to show the

company branding

This means either iframes or a lot of dirty extra code

We need to change our approach

You cannot fully control the look and feel of web sites

It is next to impossible to control the look and feel of a

badge

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 11: Building Badges for distribution

Data wants to be free of restrictions

People want data not going to one site after the other

Personal homepages feed aggregators microblogging

and social profile sites are booming

Right now we build for each of them individually

This is changing too

(fe OpenSocial)

In the not too distant future modules will replace the

page and frameworks across platforms will consume them

This calls for new standards ndash after all it is about

collaboration

However today we can already play with ideas and

learn from similar implementations

Specifically badges

A lot of companies offer badges with their data to add

to your site

Why badges

You want your content to be out on the web

Distributing data has several benefits

Good search engine lovinrsquo

Lack of single point of failure

Better content

(more on that later)

Content distribution works in several ways

Anakin Yoda

Badge APIWidget

Obi Wan

All of these mean including content into a product

The first snag we hit presentation

Consider several use cases

Anakin wants nicely styled badges to copy and paste

Badges

Obi Wan probably wants a style sheet or parameters to

change

Widgets

Yoda needs clean semantic markup or other easy to

digest data formats

APIs

Badges are most of the time considered to show the

company branding

This means either iframes or a lot of dirty extra code

We need to change our approach

You cannot fully control the look and feel of web sites

It is next to impossible to control the look and feel of a

badge

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 12: Building Badges for distribution

People want data not going to one site after the other

Personal homepages feed aggregators microblogging

and social profile sites are booming

Right now we build for each of them individually

This is changing too

(fe OpenSocial)

In the not too distant future modules will replace the

page and frameworks across platforms will consume them

This calls for new standards ndash after all it is about

collaboration

However today we can already play with ideas and

learn from similar implementations

Specifically badges

A lot of companies offer badges with their data to add

to your site

Why badges

You want your content to be out on the web

Distributing data has several benefits

Good search engine lovinrsquo

Lack of single point of failure

Better content

(more on that later)

Content distribution works in several ways

Anakin Yoda

Badge APIWidget

Obi Wan

All of these mean including content into a product

The first snag we hit presentation

Consider several use cases

Anakin wants nicely styled badges to copy and paste

Badges

Obi Wan probably wants a style sheet or parameters to

change

Widgets

Yoda needs clean semantic markup or other easy to

digest data formats

APIs

Badges are most of the time considered to show the

company branding

This means either iframes or a lot of dirty extra code

We need to change our approach

You cannot fully control the look and feel of web sites

It is next to impossible to control the look and feel of a

badge

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 13: Building Badges for distribution

Personal homepages feed aggregators microblogging

and social profile sites are booming

Right now we build for each of them individually

This is changing too

(fe OpenSocial)

In the not too distant future modules will replace the

page and frameworks across platforms will consume them

This calls for new standards ndash after all it is about

collaboration

However today we can already play with ideas and

learn from similar implementations

Specifically badges

A lot of companies offer badges with their data to add

to your site

Why badges

You want your content to be out on the web

Distributing data has several benefits

Good search engine lovinrsquo

Lack of single point of failure

Better content

(more on that later)

Content distribution works in several ways

Anakin Yoda

Badge APIWidget

Obi Wan

All of these mean including content into a product

The first snag we hit presentation

Consider several use cases

Anakin wants nicely styled badges to copy and paste

Badges

Obi Wan probably wants a style sheet or parameters to

change

Widgets

Yoda needs clean semantic markup or other easy to

digest data formats

APIs

Badges are most of the time considered to show the

company branding

This means either iframes or a lot of dirty extra code

We need to change our approach

You cannot fully control the look and feel of web sites

It is next to impossible to control the look and feel of a

badge

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 14: Building Badges for distribution

Right now we build for each of them individually

This is changing too

(fe OpenSocial)

In the not too distant future modules will replace the

page and frameworks across platforms will consume them

This calls for new standards ndash after all it is about

collaboration

However today we can already play with ideas and

learn from similar implementations

Specifically badges

A lot of companies offer badges with their data to add

to your site

Why badges

You want your content to be out on the web

Distributing data has several benefits

Good search engine lovinrsquo

Lack of single point of failure

Better content

(more on that later)

Content distribution works in several ways

Anakin Yoda

Badge APIWidget

Obi Wan

All of these mean including content into a product

The first snag we hit presentation

Consider several use cases

Anakin wants nicely styled badges to copy and paste

Badges

Obi Wan probably wants a style sheet or parameters to

change

Widgets

Yoda needs clean semantic markup or other easy to

digest data formats

APIs

Badges are most of the time considered to show the

company branding

This means either iframes or a lot of dirty extra code

We need to change our approach

You cannot fully control the look and feel of web sites

It is next to impossible to control the look and feel of a

badge

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 15: Building Badges for distribution

This is changing too

(fe OpenSocial)

In the not too distant future modules will replace the

page and frameworks across platforms will consume them

This calls for new standards ndash after all it is about

collaboration

However today we can already play with ideas and

learn from similar implementations

Specifically badges

A lot of companies offer badges with their data to add

to your site

Why badges

You want your content to be out on the web

Distributing data has several benefits

Good search engine lovinrsquo

Lack of single point of failure

Better content

(more on that later)

Content distribution works in several ways

Anakin Yoda

Badge APIWidget

Obi Wan

All of these mean including content into a product

The first snag we hit presentation

Consider several use cases

Anakin wants nicely styled badges to copy and paste

Badges

Obi Wan probably wants a style sheet or parameters to

change

Widgets

Yoda needs clean semantic markup or other easy to

digest data formats

APIs

Badges are most of the time considered to show the

company branding

This means either iframes or a lot of dirty extra code

We need to change our approach

You cannot fully control the look and feel of web sites

It is next to impossible to control the look and feel of a

badge

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 16: Building Badges for distribution

In the not too distant future modules will replace the

page and frameworks across platforms will consume them

This calls for new standards ndash after all it is about

collaboration

However today we can already play with ideas and

learn from similar implementations

Specifically badges

A lot of companies offer badges with their data to add

to your site

Why badges

You want your content to be out on the web

Distributing data has several benefits

Good search engine lovinrsquo

Lack of single point of failure

Better content

(more on that later)

Content distribution works in several ways

Anakin Yoda

Badge APIWidget

Obi Wan

All of these mean including content into a product

The first snag we hit presentation

Consider several use cases

Anakin wants nicely styled badges to copy and paste

Badges

Obi Wan probably wants a style sheet or parameters to

change

Widgets

Yoda needs clean semantic markup or other easy to

digest data formats

APIs

Badges are most of the time considered to show the

company branding

This means either iframes or a lot of dirty extra code

We need to change our approach

You cannot fully control the look and feel of web sites

It is next to impossible to control the look and feel of a

badge

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 17: Building Badges for distribution

This calls for new standards ndash after all it is about

collaboration

However today we can already play with ideas and

learn from similar implementations

Specifically badges

A lot of companies offer badges with their data to add

to your site

Why badges

You want your content to be out on the web

Distributing data has several benefits

Good search engine lovinrsquo

Lack of single point of failure

Better content

(more on that later)

Content distribution works in several ways

Anakin Yoda

Badge APIWidget

Obi Wan

All of these mean including content into a product

The first snag we hit presentation

Consider several use cases

Anakin wants nicely styled badges to copy and paste

Badges

Obi Wan probably wants a style sheet or parameters to

change

Widgets

Yoda needs clean semantic markup or other easy to

digest data formats

APIs

Badges are most of the time considered to show the

company branding

This means either iframes or a lot of dirty extra code

We need to change our approach

You cannot fully control the look and feel of web sites

It is next to impossible to control the look and feel of a

badge

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 18: Building Badges for distribution

However today we can already play with ideas and

learn from similar implementations

Specifically badges

A lot of companies offer badges with their data to add

to your site

Why badges

You want your content to be out on the web

Distributing data has several benefits

Good search engine lovinrsquo

Lack of single point of failure

Better content

(more on that later)

Content distribution works in several ways

Anakin Yoda

Badge APIWidget

Obi Wan

All of these mean including content into a product

The first snag we hit presentation

Consider several use cases

Anakin wants nicely styled badges to copy and paste

Badges

Obi Wan probably wants a style sheet or parameters to

change

Widgets

Yoda needs clean semantic markup or other easy to

digest data formats

APIs

Badges are most of the time considered to show the

company branding

This means either iframes or a lot of dirty extra code

We need to change our approach

You cannot fully control the look and feel of web sites

It is next to impossible to control the look and feel of a

badge

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 19: Building Badges for distribution

Specifically badges

A lot of companies offer badges with their data to add

to your site

Why badges

You want your content to be out on the web

Distributing data has several benefits

Good search engine lovinrsquo

Lack of single point of failure

Better content

(more on that later)

Content distribution works in several ways

Anakin Yoda

Badge APIWidget

Obi Wan

All of these mean including content into a product

The first snag we hit presentation

Consider several use cases

Anakin wants nicely styled badges to copy and paste

Badges

Obi Wan probably wants a style sheet or parameters to

change

Widgets

Yoda needs clean semantic markup or other easy to

digest data formats

APIs

Badges are most of the time considered to show the

company branding

This means either iframes or a lot of dirty extra code

We need to change our approach

You cannot fully control the look and feel of web sites

It is next to impossible to control the look and feel of a

badge

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 20: Building Badges for distribution

A lot of companies offer badges with their data to add

to your site

Why badges

You want your content to be out on the web

Distributing data has several benefits

Good search engine lovinrsquo

Lack of single point of failure

Better content

(more on that later)

Content distribution works in several ways

Anakin Yoda

Badge APIWidget

Obi Wan

All of these mean including content into a product

The first snag we hit presentation

Consider several use cases

Anakin wants nicely styled badges to copy and paste

Badges

Obi Wan probably wants a style sheet or parameters to

change

Widgets

Yoda needs clean semantic markup or other easy to

digest data formats

APIs

Badges are most of the time considered to show the

company branding

This means either iframes or a lot of dirty extra code

We need to change our approach

You cannot fully control the look and feel of web sites

It is next to impossible to control the look and feel of a

badge

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 21: Building Badges for distribution

Why badges

You want your content to be out on the web

Distributing data has several benefits

Good search engine lovinrsquo

Lack of single point of failure

Better content

(more on that later)

Content distribution works in several ways

Anakin Yoda

Badge APIWidget

Obi Wan

All of these mean including content into a product

The first snag we hit presentation

Consider several use cases

Anakin wants nicely styled badges to copy and paste

Badges

Obi Wan probably wants a style sheet or parameters to

change

Widgets

Yoda needs clean semantic markup or other easy to

digest data formats

APIs

Badges are most of the time considered to show the

company branding

This means either iframes or a lot of dirty extra code

We need to change our approach

You cannot fully control the look and feel of web sites

It is next to impossible to control the look and feel of a

badge

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 22: Building Badges for distribution

You want your content to be out on the web

Distributing data has several benefits

Good search engine lovinrsquo

Lack of single point of failure

Better content

(more on that later)

Content distribution works in several ways

Anakin Yoda

Badge APIWidget

Obi Wan

All of these mean including content into a product

The first snag we hit presentation

Consider several use cases

Anakin wants nicely styled badges to copy and paste

Badges

Obi Wan probably wants a style sheet or parameters to

change

Widgets

Yoda needs clean semantic markup or other easy to

digest data formats

APIs

Badges are most of the time considered to show the

company branding

This means either iframes or a lot of dirty extra code

We need to change our approach

You cannot fully control the look and feel of web sites

It is next to impossible to control the look and feel of a

badge

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 23: Building Badges for distribution

Distributing data has several benefits

Good search engine lovinrsquo

Lack of single point of failure

Better content

(more on that later)

Content distribution works in several ways

Anakin Yoda

Badge APIWidget

Obi Wan

All of these mean including content into a product

The first snag we hit presentation

Consider several use cases

Anakin wants nicely styled badges to copy and paste

Badges

Obi Wan probably wants a style sheet or parameters to

change

Widgets

Yoda needs clean semantic markup or other easy to

digest data formats

APIs

Badges are most of the time considered to show the

company branding

This means either iframes or a lot of dirty extra code

We need to change our approach

You cannot fully control the look and feel of web sites

It is next to impossible to control the look and feel of a

badge

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 24: Building Badges for distribution

Good search engine lovinrsquo

Lack of single point of failure

Better content

(more on that later)

Content distribution works in several ways

Anakin Yoda

Badge APIWidget

Obi Wan

All of these mean including content into a product

The first snag we hit presentation

Consider several use cases

Anakin wants nicely styled badges to copy and paste

Badges

Obi Wan probably wants a style sheet or parameters to

change

Widgets

Yoda needs clean semantic markup or other easy to

digest data formats

APIs

Badges are most of the time considered to show the

company branding

This means either iframes or a lot of dirty extra code

We need to change our approach

You cannot fully control the look and feel of web sites

It is next to impossible to control the look and feel of a

badge

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 25: Building Badges for distribution

Lack of single point of failure

Better content

(more on that later)

Content distribution works in several ways

Anakin Yoda

Badge APIWidget

Obi Wan

All of these mean including content into a product

The first snag we hit presentation

Consider several use cases

Anakin wants nicely styled badges to copy and paste

Badges

Obi Wan probably wants a style sheet or parameters to

change

Widgets

Yoda needs clean semantic markup or other easy to

digest data formats

APIs

Badges are most of the time considered to show the

company branding

This means either iframes or a lot of dirty extra code

We need to change our approach

You cannot fully control the look and feel of web sites

It is next to impossible to control the look and feel of a

badge

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 26: Building Badges for distribution

Better content

(more on that later)

Content distribution works in several ways

Anakin Yoda

Badge APIWidget

Obi Wan

All of these mean including content into a product

The first snag we hit presentation

Consider several use cases

Anakin wants nicely styled badges to copy and paste

Badges

Obi Wan probably wants a style sheet or parameters to

change

Widgets

Yoda needs clean semantic markup or other easy to

digest data formats

APIs

Badges are most of the time considered to show the

company branding

This means either iframes or a lot of dirty extra code

We need to change our approach

You cannot fully control the look and feel of web sites

It is next to impossible to control the look and feel of a

badge

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 27: Building Badges for distribution

Content distribution works in several ways

Anakin Yoda

Badge APIWidget

Obi Wan

All of these mean including content into a product

The first snag we hit presentation

Consider several use cases

Anakin wants nicely styled badges to copy and paste

Badges

Obi Wan probably wants a style sheet or parameters to

change

Widgets

Yoda needs clean semantic markup or other easy to

digest data formats

APIs

Badges are most of the time considered to show the

company branding

This means either iframes or a lot of dirty extra code

We need to change our approach

You cannot fully control the look and feel of web sites

It is next to impossible to control the look and feel of a

badge

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 28: Building Badges for distribution

Anakin Yoda

Badge APIWidget

Obi Wan

All of these mean including content into a product

The first snag we hit presentation

Consider several use cases

Anakin wants nicely styled badges to copy and paste

Badges

Obi Wan probably wants a style sheet or parameters to

change

Widgets

Yoda needs clean semantic markup or other easy to

digest data formats

APIs

Badges are most of the time considered to show the

company branding

This means either iframes or a lot of dirty extra code

We need to change our approach

You cannot fully control the look and feel of web sites

It is next to impossible to control the look and feel of a

badge

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 29: Building Badges for distribution

All of these mean including content into a product

The first snag we hit presentation

Consider several use cases

Anakin wants nicely styled badges to copy and paste

Badges

Obi Wan probably wants a style sheet or parameters to

change

Widgets

Yoda needs clean semantic markup or other easy to

digest data formats

APIs

Badges are most of the time considered to show the

company branding

This means either iframes or a lot of dirty extra code

We need to change our approach

You cannot fully control the look and feel of web sites

It is next to impossible to control the look and feel of a

badge

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 30: Building Badges for distribution

The first snag we hit presentation

Consider several use cases

Anakin wants nicely styled badges to copy and paste

Badges

Obi Wan probably wants a style sheet or parameters to

change

Widgets

Yoda needs clean semantic markup or other easy to

digest data formats

APIs

Badges are most of the time considered to show the

company branding

This means either iframes or a lot of dirty extra code

We need to change our approach

You cannot fully control the look and feel of web sites

It is next to impossible to control the look and feel of a

badge

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 31: Building Badges for distribution

Consider several use cases

Anakin wants nicely styled badges to copy and paste

Badges

Obi Wan probably wants a style sheet or parameters to

change

Widgets

Yoda needs clean semantic markup or other easy to

digest data formats

APIs

Badges are most of the time considered to show the

company branding

This means either iframes or a lot of dirty extra code

We need to change our approach

You cannot fully control the look and feel of web sites

It is next to impossible to control the look and feel of a

badge

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 32: Building Badges for distribution

Anakin wants nicely styled badges to copy and paste

Badges

Obi Wan probably wants a style sheet or parameters to

change

Widgets

Yoda needs clean semantic markup or other easy to

digest data formats

APIs

Badges are most of the time considered to show the

company branding

This means either iframes or a lot of dirty extra code

We need to change our approach

You cannot fully control the look and feel of web sites

It is next to impossible to control the look and feel of a

badge

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 33: Building Badges for distribution

Obi Wan probably wants a style sheet or parameters to

change

Widgets

Yoda needs clean semantic markup or other easy to

digest data formats

APIs

Badges are most of the time considered to show the

company branding

This means either iframes or a lot of dirty extra code

We need to change our approach

You cannot fully control the look and feel of web sites

It is next to impossible to control the look and feel of a

badge

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 34: Building Badges for distribution

Yoda needs clean semantic markup or other easy to

digest data formats

APIs

Badges are most of the time considered to show the

company branding

This means either iframes or a lot of dirty extra code

We need to change our approach

You cannot fully control the look and feel of web sites

It is next to impossible to control the look and feel of a

badge

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 35: Building Badges for distribution

Badges are most of the time considered to show the

company branding

This means either iframes or a lot of dirty extra code

We need to change our approach

You cannot fully control the look and feel of web sites

It is next to impossible to control the look and feel of a

badge

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 36: Building Badges for distribution

This means either iframes or a lot of dirty extra code

We need to change our approach

You cannot fully control the look and feel of web sites

It is next to impossible to control the look and feel of a

badge

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 37: Building Badges for distribution

We need to change our approach

You cannot fully control the look and feel of web sites

It is next to impossible to control the look and feel of a

badge

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 38: Building Badges for distribution

You cannot fully control the look and feel of web sites

It is next to impossible to control the look and feel of a

badge

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 39: Building Badges for distribution

It is next to impossible to control the look and feel of a

badge

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 40: Building Badges for distribution

Web standards were build to cascade to enable you to

write small code

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 41: Building Badges for distribution

If you chunk the document the cascade becomes useless

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 42: Building Badges for distribution

Next issue performance

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 43: Building Badges for distribution

Ideally yoursquod like the site to be available immediately

not load bit by bit

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 44: Building Badges for distribution

Talking to a lot of different servers to build the interface

is slow

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 45: Building Badges for distribution

The reasons

HTTP requests name lookups and the speed and load of the

third party server

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 46: Building Badges for distribution

There are several solutions to that

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 47: Building Badges for distribution

The most stable is local caching

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 48: Building Badges for distribution

Local caching makes sense for API lookups but doesnrsquot

work with badges

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 49: Building Badges for distribution

The next best thing is progressive enhancement

and lazy loading

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 50: Building Badges for distribution

Progressive enhancement

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 51: Building Badges for distribution

ltscript type=rdquotextjavascriptrdquo

src=rdquohttpwwwexamplecombadgebadgejsrdquogt

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 52: Building Badges for distribution

No search engine love

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 53: Building Badges for distribution

Possibly slow to render (unless you use dirty tricks)

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 54: Building Badges for distribution

Hard to identify the element to replace

(script nodes canrsquot have an ID)

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 55: Building Badges for distribution

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 56: Building Badges for distribution

Good search engine lovinrsquo

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 57: Building Badges for distribution

Works for everybody

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 58: Building Badges for distribution

Lazy loading

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 59: Building Badges for distribution

Lazy loading is a special kind of progressive enhancement

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 60: Building Badges for distribution

You load a very small script up front that pulls in the larger dependencies on

demand

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 61: Building Badges for distribution

You can control the dependencies by classes on

the source element

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 62: Building Badges for distribution

ltdiv class=rdquobadgerdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 63: Building Badges for distribution

ltdiv class=rdquobadge animated silverrdquogt

lta href=rdquohttpwwwexamplecombadgedatardquogt

My data on third party

ltagt

ltdivgt

[]

ltscript src=rdquohttpwwwexamplecombadgejsrdquogt

ltscriptgt

badgejs create link to pull in

silvercss create script node for

animationjs get all elements with

class ldquobadgerdquo load the content via API and replace with badge

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 64: Building Badges for distribution

Use libraries to help you with that

OK YUI get() -)

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 65: Building Badges for distribution

Really clever lazy load of content

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 66: Building Badges for distribution

Browsers tell you several things

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 67: Building Badges for distribution

The dimensions of the viewport

(which is not the same as the resolution)

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 68: Building Badges for distribution

The dimension of the document and the scroll

position

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 69: Building Badges for distribution

The dimension and location of the badge

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 70: Building Badges for distribution

Remember a lot of HTTP requests make browsers sad

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 71: Building Badges for distribution

Use placeholders for images and replace them when you are sure users can see them

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 72: Building Badges for distribution

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 73: Building Badges for distribution

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 74: Building Badges for distribution

ltimg src=rdquousergifhttpavatarexamplecomuser1212121largejpgrdquo alt=rdquoJohn Doerdquogt

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 75: Building Badges for distribution

BrowserViewport

DocumentBadge with placeholders

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 76: Building Badges for distribution

BrowserViewport

Document

Badge with real images

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 77: Building Badges for distribution

Again use libraries to help you with that

OK YUI DomgetRegion() or Image Loader

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 78: Building Badges for distribution

Want to create an amazing experience

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 79: Building Badges for distribution

Create a readwrite API

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 80: Building Badges for distribution

Imagine the web as your entry point ndash not your site

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 81: Building Badges for distribution

People can get data from your system and display it

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 82: Building Badges for distribution

They then can ask their visitors to comment or add more data without leaving

their site

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 83: Building Badges for distribution

More implementers are likely to add your badges if you leave their site in peace

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 84: Building Badges for distribution

You get more focused and higher quality content as you

can piggy-back on their authority

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 85: Building Badges for distribution

Canrsquot or donrsquot want to do that

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 86: Building Badges for distribution

Offer revenue sharing

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 87: Building Badges for distribution

Whatever you do Badge Widget or API

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 88: Building Badges for distribution

Expect changes and listen to your customers

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 89: Building Badges for distribution

Your customers are

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 90: Building Badges for distribution

Badge implementersMake it easy and as unobtrusive as possible to add your badge Allow for override

Third party site visitorsDonrsquot make them wait

YouMake sure you get data or at least links back

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 91: Building Badges for distribution

The most important points are availability and

backwards compatibility

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 92: Building Badges for distribution

People trust you to offer data and never break their site

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 93: Building Badges for distribution

Offering data for distribution is for life not just for the next

press release

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk

Page 94: Building Badges for distribution

Badgers for distribution

Thanks Photo by The Weirfield Wildlife Hospital httpweirfeildcouk