web as a platform

135
Web as a Platform May 09, 2008 by Evgeny Morozov

Upload: evgenymorozov

Post on 15-May-2015

2.116 views

Category:

Economy & Finance


1 download

DESCRIPTION

Web as a Platform presentation given by Evgeny Morozov at a Transitions Online training in Prague, May 09/2008

TRANSCRIPT

Page 1: Web As A Platform

Web as a Platform

May 09, 2008

by Evgeny Morozov

Page 2: Web As A Platform

Why do we need Why do we need platforms?platforms?

Page 3: Web As A Platform

THEY HELP US BUILD STUFF

They help us build stuffThey help us build stuff

Page 4: Web As A Platform

Windows OS is a platformWindows OS is a platform

Page 5: Web As A Platform

It helped to build this man's fortuneIt helped to build this man's fortune

Page 6: Web As A Platform

But it also helped to build millions of software applications for

Windows

Page 7: Web As A Platform

How do you become a Bill Gates (i.e. How do you become a Bill Gates (i.e. build a successful platform)?build a successful platform)?

IMPORTANT TAKE-AWAY!IMPORTANT TAKE-AWAY!

Page 8: Web As A Platform

Caution: do you really want it?

Page 9: Web As A Platform

Answer: Develop a good API

Page 10: Web As A Platform

Do we need another API? :-)

Academic Programs InternationalAmerican Petroleum InstituteAustralian Property Institute

Australian Pharmaceuticals IndustriesAmerican Press Institute

Aerospace Products InternationalAnimal Protection Institute

Asia Paranormal InvestigatorsAttachment Parenting International

American Poster Institute

Page 11: Web As A Platform

API crash-course

API, or Application Programming Interface, is a set of functions that one computer program makes available

to other programs so they can talk to it directly.

Page 12: Web As A Platform

Programs talk to each other all the time ( programmers not so much;-)

Page 13: Web As A Platform

How does one create software that draws?

Page 14: Web As A Platform

Program: "I need to draw a line"Program: "I need to draw a line"

Windows: "To draw a line, use Function 1”Windows: "To draw a line, use Function 1”

COMMAND: "...if a program asks for Function COMMAND: "...if a program asks for Function 1, execute Activity 1”1, execute Activity 1”

Page 15: Web As A Platform

Result: Photoshop

Page 16: Web As A Platform

Program: I need to input & edit textProgram: I need to input & edit text

OS: “To delete, use Function 1, to start a new OS: “To delete, use Function 1, to start a new line use Function 2”line use Function 2”

COMMAND: “If program requests Function 1, COMMAND: “If program requests Function 1, execute Activity 1; if program requests execute Activity 1; if program requests

Function 2, execute Activity 2”Function 2, execute Activity 2”

Page 17: Web As A Platform

Result: MS Office

Page 18: Web As A Platform
Page 19: Web As A Platform

+ millions of other commands

Page 20: Web As A Platform

=Microsoft Vista (400 USD and 20 GB of space)

Page 21: Web As A Platform

How Not to Become a Bill Gates

Build a poorly structured and undocumented platform

Page 22: Web As A Platform

Internet was born in chaos, more a Internet was born in chaos, more a data dump than a platformdata dump than a platform

Page 23: Web As A Platform

Internet before Web2.0 was great for displaying and viewing data, not for building data applications

Page 24: Web As A Platform

Teaser: Web2.0 changed some of that

Page 25: Web As A Platform

...but first

Crash course on “Data Crash course on “Data studies”studies”

Page 26: Web As A Platform

1. Content2. Structure

3. Presentation

1. Content1. Content2. Structure2. Structure3. Presentation3. Presentation

Web data: 3 key features

Page 27: Web As A Platform

:CONTENT::CONTENT:

Page 28: Web As A Platform

Content

“Free for all” area that contains just the words (or numbers)

The words could be about:

* A story * Instruction * Definitions * Or what have you

Page 29: Web As A Platform

text

Page 30: Web As A Platform

:STRUCTURE::STRUCTURE:

Page 31: Web As A Platform

II. Structure

This is the document type and the organization ofits elements. For example:

* Memo * Contract

* Newspaper article * Glossary

* Index

Page 32: Web As A Platform
Page 33: Web As A Platform
Page 34: Web As A Platform
Page 35: Web As A Platform

:PRESENTATION::PRESENTATION:

Page 36: Web As A Platform

III. Presentation

This is where the information presented to the client is organized and formatted

Presentation would control elements such as font types and sizes, etc

Page 37: Web As A Platform
Page 38: Web As A Platform

Time for inappropriate analogy!

Page 39: Web As A Platform

Is music data? Is music data?

Page 40: Web As A Platform

Anatomy of a tune

1.1. Content (the actual sounds)Content (the actual sounds)2. Structure (length, volume)2. Structure (length, volume)

3. Presentation (tempo, mood)3. Presentation (tempo, mood)

Anatomy of a tuneAnatomy of a tune

Page 41: Web As A Platform

Same tune; two methods

Page 42: Web As A Platform

The intuitive wayThe intuitive way

Page 43: Web As A Platform

The academic wayThe academic way

Page 44: Web As A Platform

Web1.0: Era of HTML

With HTML your Content, Structure, andPresentation are all integrated.

Page 45: Web As A Platform

In short, the HTML code

a) makes your page look like it doesb) contains the actual data displayed on the page

c) controls fonts, text size, etc

Page 46: Web As A Platform

HTML PROVIDES FOR DISPLAY, HTML PROVIDES FOR DISPLAY, NOTNOT DOCUMENT DOCUMENT STRUCTURE, SEMANTICS, OR CONTENTSTRUCTURE, SEMANTICS, OR CONTENT

Page 47: Web As A Platform

HTML=The Intuitive Way

You play the tune even though you have no idea about sheet music

Page 48: Web As A Platform

Web2.0: Era of XML

Content, Structure, Presentation are separate

Page 49: Web As A Platform

XML provides a standard approach for

*Describing information * Capturing information

* Processing information * Publishing information

Page 50: Web As A Platform

XML allows you to describe the XML allows you to describe the abstract structure of your data using abstract structure of your data using

your own vocabularyyour own vocabulary

Page 51: Web As A Platform

XML=The Academic Way

You know how to read musicYou know how to read music

Page 52: Web As A Platform
Page 53: Web As A Platform

Cooking Rhubarb CobblerEvgeny Morozov

May,09 2008Rhubarb Cobbler made with bananas as the main

sweetener. It was delicious. Basically it was2 1/2 cups diced rhubarb

2 tablespoons sugar2 fairly ripe bananas

1/4 teaspoon cinnamondash of nutmeg

Combine all and use as cobbler, pie, or crisp. Related recipes: Garden Quiche

Page 54: Web As A Platform

What is “rhubarb”?

Page 55: Web As A Platform

HTML<h1>Cooking Rhubarb Cobbler</h1>

<h2>Evgeny Morozov</h2><h3>May,09 2008</h3>

Rhubarb Cobbler made with bananas as the main sweetener. It was delicious. Basically it was

<table> <tr><td> 2 1/2 cups <td> diced rhubarb

<tr><td> 2 tablespoons <td> sugar <tr><td> 2 <td> fairly ripe bananas

<tr><td> 1/4 teaspoon <td> cinnamon <tr><td> dash of <td> nutmeg

</table>

Combine all and use as cobbler, pie, or crisp.

Related recipes: <a href="#GardenQuiche">Garden Quiche</a>

Page 56: Web As A Platform

XML<recipe id="117" category="dessert">

<title>Rhubarb Cobbler</title> <author>Evgeny Morozov></author>

<date>May 09, 2008</date>

<description> Rhubarb Cobbler made with bananas as the main sweetener.

It was delicious. </description>

<ingredients> <item><amount>2 1/2 cups</amount><type>diced rhubarb</type></item>

<item><amount>2 tablespoons</amount><type>sugar</type></item> <item><amount>2</amount><type>fairly ripe bananas</type></item>

<item><amount>1/4 teaspoon</amount><type>cinnamon</type></item>

<item><amount>dash of</amount><type>nutmeg</type></item> </ingredients>

<preparation> Combine all and use as cobbler, pie, or crisp.

</preparation>

<related url="#GardenQuiche">Garden Quiche</related></recipe>

Page 57: Web As A Platform

Building an APIBuilding an API

Super-cool cooking site: “How do I display Super-cool cooking site: “How do I display how many spoons of sugar to use to cook how many spoons of sugar to use to cook

Rhubarb Cobbler?”Rhubarb Cobbler?”

XML site: “Query for <amount> of the <type> XML site: “Query for <amount> of the <type> “sugar”“sugar”

HTML site: I beg your pardon? (eventually HTML site: I beg your pardon? (eventually crashes ;-)crashes ;-)

Page 58: Web As A Platform

From rhubarb to YouTube

Page 59: Web As A Platform

YouTube's API

Your blogYour blog: "I need to display all videos from your site : "I need to display all videos from your site tagged as "FUNNY" tagged as "FUNNY"

YouTubeYouTube: "Please access videos at : "Please access videos at youtube.com/tag/word, where "word" should be youtube.com/tag/word, where "word" should be replaced with "FUNNY" replaced with "FUNNY"

COMMAND:COMMAND: "...to display video tagged with a "...to display video tagged with a particular tag, the query should be of the form particular tag, the query should be of the form youtube.com/word/tag/"youtube.com/word/tag/"

Page 60: Web As A Platform

AMAZON's API:

Online retailer: "I need to display price for all Amazon items I am selling”

Amazon: "Please ask for parameter PRICE to get price information"

COMMAND: "...if a third-party site asks for PRICE, display PRICE value"

Online retailer: "I need to display price for all Online retailer: "I need to display price for all Amazon items I am selling” Amazon items I am selling”

Amazon: "Please ask for parameter PRICE to Amazon: "Please ask for parameter PRICE to get price information" get price information"

COMMAND: "...if a third-party site asks for COMMAND: "...if a third-party site asks for PRICE, display PRICE value"PRICE, display PRICE value"

Page 61: Web As A Platform

XML allows to EASILY move data between different platforms

XML allows to EASILY move XML allows to EASILY move data between different data between different

platformsplatforms

Page 62: Web As A Platform

How do you play the guitar part on the piano?

Academic: “just look at the Academic: “just look at the sheets, stupid”sheets, stupid”

““Intuitive”: “this keyboard Intuitive”: “this keyboard looks...ummm...weird..”looks...ummm...weird..”

Page 63: Web As A Platform

Web2.0 explained in one line

XML liberated data from its “carriers”

Page 64: Web As A Platform
Page 65: Web As A Platform

RSS: a way to distribute XML contentRSS: a way to distribute XML content

Page 66: Web As A Platform

RSS is content neutral: it could deliver text,RSS is content neutral: it could deliver text, could be photos, could be videoscould be photos, could be videos

It's just a pipeline carrying content to the end-It's just a pipeline carrying content to the end-useruser

Page 67: Web As A Platform

Push versus Pull

Page 68: Web As A Platform
Page 69: Web As A Platform
Page 70: Web As A Platform
Page 71: Web As A Platform
Page 72: Web As A Platform
Page 73: Web As A Platform
Page 74: Web As A Platform
Page 75: Web As A Platform
Page 76: Web As A Platform

““Digital Footprints”Digital Footprints”

Page 77: Web As A Platform
Page 78: Web As A Platform
Page 79: Web As A Platform
Page 80: Web As A Platform

Why remix?

Most data sets are imperfect and incomplete; Most data sets are imperfect and incomplete; mixing it with other sets of data often helps make mixing it with other sets of data often helps make

a better/informed decisiona better/informed decision

Page 81: Web As A Platform

Leg Room Information

Page 82: Web As A Platform

+Flights

Page 83: Web As A Platform

= Flights with more Leg Room!

Page 84: Web As A Platform

Remixing the data was extremely Remixing the data was extremely difficult in the age of Web1.0difficult in the age of Web1.0

Page 85: Web As A Platform

Remixing in the age of Web1.0

Page 86: Web As A Platform

Remixing in the age of Web2.0

Page 87: Web As A Platform

Spot the difference

WEB1.0

WEB1.0WEB1.0 WEB2.0

Page 88: Web As A Platform

Web2.0: the Age of the Conductor

Page 89: Web As A Platform

Yahoo Pipes: The Conductor

Page 90: Web As A Platform
Page 91: Web As A Platform

It's not oil, it's data!

Page 92: Web As A Platform

A web mashup is a web page or application that combines data from two or more external online sources

Page 93: Web As A Platform
Page 94: Web As A Platform

Mash-ups: The Lego Model

Page 95: Web As A Platform

3 Lego blocks

PicturesMapsText

Page 96: Web As A Platform

Pictures

Pictures

Page 97: Web As A Platform

Maps

Maps

Page 98: Web As A Platform

Text (news)

Text (news?)

Page 99: Web As A Platform

Mash-up Matrix (basic)

Pictures Text MapsPictures - Mash-up Mash-up

Text Mash-up - Mash-upMaps Mash-up Mash-up -

Page 100: Web As A Platform

Pictures+Text

Page 101: Web As A Platform

Pictures+Maps

Page 102: Web As A Platform

Pictures+Maps

Page 103: Web As A Platform

Maps+Text

Page 104: Web As A Platform

Mash-up Matrix Advanced

Pictures News Maps Tags Weather Stock prices Wikipedia Biographies MusicPictures X ? ?

News XMaps XTags X

Weather XStock prices XWikipedia X

Biographies XMusic X

Page 105: Web As A Platform

Programmable Web Mashup Matrix

Page 106: Web As A Platform

#Most mash-ups are developed by third-parties

#Just let them know how to use your functions (=provide an API) or give out as much raw data as

possible (=provide XML feeds)

Page 107: Web As A Platform

Good APIs

GOOGLE MAPS: 1412 mash-upsFLICKR: 336 mash-ups

YOUTUBE: 239 mash-ups

Source: Programmable Web, May 2008

Page 108: Web As A Platform

Maps Mash-ups: case-study

Page 109: Web As A Platform
Page 110: Web As A Platform
Page 111: Web As A Platform
Page 112: Web As A Platform
Page 113: Web As A Platform
Page 114: Web As A Platform
Page 115: Web As A Platform
Page 116: Web As A Platform
Page 117: Web As A Platform
Page 118: Web As A Platform
Page 119: Web As A Platform
Page 120: Web As A Platform

Working with textual data can Working with textual data can often be EVEN more rewarding often be EVEN more rewarding

than working with mapsthan working with maps

Page 121: Web As A Platform
Page 122: Web As A Platform
Page 123: Web As A Platform
Page 124: Web As A Platform
Page 125: Web As A Platform
Page 126: Web As A Platform
Page 127: Web As A Platform
Page 128: Web As A Platform
Page 129: Web As A Platform
Page 130: Web As A Platform
Page 131: Web As A Platform
Page 132: Web As A Platform

COMMUNITY

Page 133: Web As A Platform
Page 134: Web As A Platform
Page 135: Web As A Platform