Top Banner
Web 2.0 What is it? What does it mean to us?
154

Web 2.0

May 16, 2015

Download

Technology

tonyboyd

In-house presentation on Web2.0 to Capital Group IT development group.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Web 2.0

Web 2.0

What is it?

What does it mean to us?

Page 2: Web 2.0

Web 2.0 Presentation

Part 1

Conceptual View

Page 3: Web 2.0

Web 2.0 Presentation

Part 1

Conceptual View

Social View

Page 4: Web 2.0

Web 2.0 Presentation

Part 1

Conceptual View

Social View

Technical View

Page 5: Web 2.0

Web 2.0 Presentation

Part 1

Conceptual View

Social View

Technical View

Part 2

Ruby on Rails Demo

Page 6: Web 2.0

Web 2.0 Presentation

Part 1

Conceptual View

Social View

Technical View

Part 2

Ruby on Rails Demo

SmartClient Demo

Page 7: Web 2.0

Web 2.0 Presentation

Part 1

Conceptual View

Social View

Technical View

Part 2

Ruby on Rails Demo

SmartClient Demo

Possible Futures

Page 8: Web 2.0

Web 2.0 - Must Read

What is Web 2.0?Design Patterns and Business Models for the Next Generation of Software

by Tim O’Reilly

http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web20.html

Page 9: Web 2.0

Conceptual View

Marshall McLuhan

was right!

Page 10: Web 2.0

Marshall McLuhan

The Narcissus Myth

The Medium is the Message

The Global Village “We look at the present through a rear-view mirror. We march backwards into the future.”

Page 11: Web 2.0

The Narcissus Myth

Fell in love with his own image

Did not recognize reflection as himself

Narcissus = narcosis

Page 12: Web 2.0

The Narcissus Myth

Fell in love with his own image

Did not recognize reflection as himself

Narcissus = narcosis

Technology as extension of ourselves

Page 13: Web 2.0

The Narcissus Myth

Fell in love with his own image

Did not recognize reflection as himself

Narcissus = narcosis

Technology as extension of ourselves

We fail to recognize implications of the new technology

Page 14: Web 2.0

The Narcissus Myth

Fell in love with his own image

Did not recognize reflection as himself

Narcissus = narcosis

Technology as extension of ourselves

We fail to recognize implications of the new technology

We see the new in terms of the old

Page 15: Web 2.0

The Narcissus Myth

Fell in love with his own image

Did not recognize reflection as himself

Narcissus = narcosis

Book = Printed Manuscript

Page 16: Web 2.0

The Narcissus Myth

Fell in love with his own image

Did not recognize reflection as himself

Narcissus = narcosis

Book = Printed Manuscript

Light Bulb = Electric Candle

Page 17: Web 2.0

The Narcissus Myth

Fell in love with his own image

Did not recognize reflection as himself

Narcissus = narcosis

Book = Printed Manuscript

Light Bulb = Electric Candle

Car = Horseless Carriage

Page 18: Web 2.0

The Narcissus Myth

Fell in love with his own image

Did not recognize reflection as himself

Narcissus = narcosis

Book = Printed Manuscript

Light Bulb = Electric Candle

Car = Horseless Carriage

Radio = Wireless

Page 19: Web 2.0

The Narcissus Myth

Fell in love with his own image

Did not recognize reflection as himself

Narcissus = narcosis

Book = Printed Manuscript

Light Bulb = Electric Candle

Car = Horseless Carriage

Radio = Wireless

Film = Moving Pictures

Page 20: Web 2.0

The Narcissus Myth

Fell in love with his own image

Did not recognize reflection as himself

Narcissus = narcosis

Book = Printed Manuscript

Light Bulb = Electric Candle

Car = Horseless Carriage

Radio = Wireless

Film = Moving Pictures

TV = Visual Radio

Page 21: Web 2.0

The Narcissus Myth

Fell in love with his own image

Did not recognize reflection as himself

Narcissus = narcosis

Book = Printed Manuscript

Light Bulb = Electric Candle

Car = Horseless Carriage

Radio = Wireless

Film = Moving Pictures

TV = Visual Radio

Computer = Calculator

Page 22: Web 2.0

The Medium is the Message

Technologies change consciousness

Inventions reinvent us

The content is not the content

Page 23: Web 2.0

The Medium is the Message

Print technology is:

sequential

Page 24: Web 2.0

The Medium is the Message

Print technology is:

sequential

specializing

Page 25: Web 2.0

The Medium is the Message

Print technology is:

sequential

specializing

fragmenting

Page 26: Web 2.0
Page 27: Web 2.0
Page 28: Web 2.0
Page 29: Web 2.0
Page 30: Web 2.0

Web 1.0

Web as Book

Page 31: Web 2.0

Web 1.0

Web as Book

Primary metaphor is the Page

Page 32: Web 2.0

Web 1.0

Web as Book

Primary metaphor is the Page

Author as Authority

Page 33: Web 2.0

Web 1.0

Web as Book

Primary metaphor is the Page

Author as Authority

Reader as Individual

Page 34: Web 2.0

Web 2.0

Web as Community

Page 35: Web 2.0

Web 2.0

Web as Community

Primary metaphor is the Village

Page 36: Web 2.0

Web 2.0

Web as Community

Primary metaphor is the Village

Author as Contributor

Page 37: Web 2.0

Web 2.0

Web as Community

Primary metaphor is the Village

Author as Contributor

Reader as Neighbor

Page 38: Web 2.0

Web as Community

“The character of a third place is determined most

of all by its regular clientele and is marked by a

playful mood...They are the heart of a

community’s social vitality, the grassroots of

democracy, but sadly, they constitute a

diminishing aspect of the American social

landscape.”

Ray Oldenburg’s “Third Place”

Page 39: Web 2.0

Web as Community

“Life without community has produced...a life

style consisting mainly of a home-to-work-

and-back-again shuttle. Social well-being

and psychological health depend upon

community.”

Ray Oldenburg’s “Third Place”

Page 40: Web 2.0

Web 2.0

“…reach out to the entire web, the edges and not just the center, to

the long tail and not just the head.” - Tim O’Reilly

“The edge dissolves the center” - Stowe Boyd, /Message

Page 41: Web 2.0

The Social View

Meet Me @ MySpace

Page 42: Web 2.0

Social Networks

Characterized by:

friends contacts user-generated voting ranking folksonomy

reviews comments profile interests connections meeting

blogs wiki tagging opinions network people participation

play community creative reputation groups swarmth rating me

personal taste serendipity social identity culture perspective interaction

sharing productivity belonging collaboration passions recommendations

self-discovery reward blog video music photos education discussion tags

Page 43: Web 2.0

Social Networks

Characterized by:

friends contacts user-generated voting ranking folksonomy

reviews comments profile interests connections meeting

blogs wiki tagging opinions network people participation

play community creative reputation groups swarmth rating me

personal taste serendipity social identity culture perspective interaction

sharing productivity belonging collaboration passions recommendations

self-discovery reward blog video music photos education discussion tags

Page 44: Web 2.0

Social Networks

Characterized by:

friends contacts user-generated voting ranking folksonomy

reviews comments profile interests connections meeting

blogs wiki tagging opinions network people participation

play community creative reputation groups swarmth rating me

personal taste serendipity social identity culture perspective interaction

sharing productivity belonging collaboration passions recommendations

self-discovery reward blog video music photos education discussion tags

Page 45: Web 2.0

Social Networks

Characterized by:

friends contacts user-generated voting ranking folksonomy

reviews comments profile interests connections meeting

blogs wiki tagging opinions network people participation

play community creative reputation groups swarmth rating me

personal taste serendipity social identity culture perspective interaction

sharing productivity belonging collaboration passions recommendations

self-discovery reward blog video music photos education discussion tags

Page 46: Web 2.0

Social Networks

Characterized by:

friends contacts user-generated voting ranking folksonomy

reviews comments profile interests connections meeting

blogs wiki tagging opinions network people participation

play community creative reputation groups swarmth rating me

personal taste serendipity social identity culture perspective interaction

sharing productivity belonging collaboration passions recommendations

self-discovery reward blog video music photos education discussion tags

Page 47: Web 2.0

Social Networks

Characterized by:

friends contacts user-generated voting ranking folksonomy

reviews comments profile interests connections meeting

blogs wiki tagging opinions network people participation

play community creative reputation groups swarmth rating me

personal taste serendipity social identity culture perspective interaction

sharing productivity belonging collaboration passions recommendations

self-discovery reward blog video music photos education discussion tags

Page 48: Web 2.0

The Technical View

Traveling Light

Page 49: Web 2.0

Technical View

Characterized by:javascript ajax json script.aculo.us prototype soa microformats ruby on rails scripting perpetual beta agile development mashups aggregation webservices animation popups sliders s3 google open source

hCard hCal hAtom maps frameworks sourceforge.net apache rss hyperlink permalink creative commons python flex

apollo perl hybrid css lightweight podcast xhtml BitTorrent

Page 50: Web 2.0

Rich Interface

Breaking down the “page barrier”

Page 51: Web 2.0

Rich Interface

Breaking down the “page barrier” Eliminating “speed bumps”

Page 52: Web 2.0

Rich Interface

Breaking down the “page barrier” Eliminating “speed bumps” Interactivity

Page 53: Web 2.0

Rich Interface

Breaking down the “page barrier” Eliminating “speed bumps” Interactivity

AJAX

Page 54: Web 2.0

Rich Interface

Breaking down the “page barrier” Eliminating “speed bumps” Interactivity

AJAX

JavaScript

XMLJSON

XMLJSON

CSS2XHTML

CSS2XHTML

Page 55: Web 2.0

Rich Interface

Breaking down the “page barrier” Eliminating “speed bumps” Interactivity

AJAX

JavaScript

XMLJSON

XMLJSON

CSS2XHTML

CSS2XHTML

PrototypeScript.aculo.us

PrototypeScript.aculo.us

DojoDojo

jQueryjQuery

Yahoo!Developer

Yahoo!Developer

GoogleToolkitGoogleToolkit

Page 56: Web 2.0

Rich Interface

Breaking down the “page barrier” Eliminating “speed bumps” Interactivity

AJAX

JavaScript

XMLJSON

XMLJSON

CSS2XHTML

CSS2XHTML

sliderssliders

autocomplete

autocomplete

inlineeditinginline

editing

grid cellediting

grid celleditingdrag

&drop

drag &

drop

opacityfade

opacityfade

hoverdetailhoverdetail

dynamicfilters

dynamicfilters

inlinesortinginline

sorting

Page 57: Web 2.0

Social Software

Breaking down the “site barrier”

Page 58: Web 2.0

Social Software

Breaking down the “site barrier” Community of Code

Page 59: Web 2.0

Social Software

Breaking down the “site barrier” Community of Code Mashups and Aggregation

Page 60: Web 2.0

Social Software

Breaking down the site barrier Community of Code Mashups and Aggregation

microformats

Page 61: Web 2.0

Social Software

Breaking down the site barrier Community of Code Mashups and Aggregation

microformats

HTMLSimple Tags

HTMLSimple Tags

StandardData

Formats

StandardData

Formats

Page 62: Web 2.0

Social Software

Breaking down the site barrier Community of Code Mashups and Aggregation

microformats

HTMLSimple Tags

HTMLSimple Tags

StandardData

Formats

StandardData

Formats

AddressAddress

MapsMaps CalendarEvents

CalendarEvents

ReviewsReviews

ResumésResumés

ClassifiedsClassifieds

SocialNetworks

SocialNetworks

BlogsBookmarksBlogs

Bookmarks

Page 63: Web 2.0

Social Software

Breaking down the site barrier Community of Code Mashups and Aggregation

microformats

HTMLSimple Tags

HTMLSimple Tags

StandardData

Formats

StandardData

Formats

AddressAddress

MapsMaps CalendarEvents

CalendarEvents

ReviewsReviews

ResumésResumés

ClassifiedsClassifieds

SocialNetworks

SocialNetworks

BlogsBookmarksBlogs

Bookmarks

RSSRSS

PermalinkPermalink

SOAWeb Services

SOAWeb Services

Page 64: Web 2.0

Speed & Agility

Agile Development

Page 65: Web 2.0

Speed & Agility

Agile Development Lightweight Languages

Page 66: Web 2.0

Speed & Agility

Agile Development Lightweight Languages Perpetual Beta

Page 67: Web 2.0

Speed & Agility

Agile Development Lightweight Languages Perpetual Beta The Hybrid Developer

Page 68: Web 2.0

Speed & Agility

Agile Development Lightweight Languages Perpetual Beta The Hybrid Developer

Ruby

on Rails

Page 69: Web 2.0

Agile Development Lightweight Languages Perpetual Beta The Hybrid Developer

PythonPython

PHPPHP

CatalystCatalyst

FlexFlex

ApolloApollo

DjangoDjango

JRubyJRuby

MVCMVC

Speed & Agility

Ruby

on Rails

Page 70: Web 2.0

Collective Intelligence

Massive Collaboration

Page 71: Web 2.0

Collective Intelligence

Massive Collaboration Open Source

Page 72: Web 2.0

Collective Intelligence

Massive Collaboration Open Source Creative Commons

Page 73: Web 2.0

Collective Intelligence

Massive Collaboration Open Source Creative Commons

SOURCEFORGE

Page 74: Web 2.0

Massive Collaboration Open Source Creative Commons

Collective Intelligence

SOURCEFORGE

mozilla.org

Page 75: Web 2.0

Data Management

Data is the “Intel Inside”

Page 76: Web 2.0

Data Management

Data is the “Intel Inside” Amazon’s S3 Data Storage

Page 77: Web 2.0

AJAXAsynchronous Javascript and XML

“Ajax isn’t a technology. It’s really several technologies, each flourishing in its own right, coming together in powerful new ways.”

Jesse James Garrett, Adaptive Pathhttp://www.adaptivepath.com/publications/essays/archives/000385.php

Page 78: Web 2.0

AJAXAsynchronous Javascript and XML

Standards-based presentation using XHTML and CSS

Page 79: Web 2.0

AJAXAsynchronous Javascript and XML

Standards-based presentation using XHTML and CSS

Dynamic display and interaction using the Document Object Model (DOM)

Page 80: Web 2.0

AJAXAsynchronous Javascript and XML

Standards-based presentation using XHTML and CSS

Dynamic display and interaction using the Document Object Model (DOM)

Data interchange and manipulation using XML and XSLT

Page 81: Web 2.0

AJAXAsynchronous Javascript and XML

Standards-based presentation using XHTML and CSS

Dynamic display and interaction using the Document Object Model (DOM)

Data interchange and manipulation using XML and XSLT

Asynchronous data retrieval using XMLHttpRequest

Page 82: Web 2.0

AJAXAsynchronous Javascript and XML

Standards-based presentation using XHTML and CSS

Dynamic display and interaction using the Document Object Model (DOM)

Data interchange and manipulation using XML and XSLT

Asynchronous data retrieval using XMLHttpRequest

Javascript binding everything together

Page 83: Web 2.0

AJA

X

Eve

nt S

eque

nce

Page 84: Web 2.0

AJAX - XMLHttpRequest

function searchWordKeyPressed(event) {/** cross-browser event check **/

if (!event) var event = window.event; // test for up/downarrow or enter key (will be handled by a different event)

if (event.keyCode == 38 || event.keyCode == 40 || event.keyCode == 13) return; // move focus out of autosuggest table fRow = -1;// set the text the user typed as a global var suggestString = document.getElementById('searchWord').value;

// make the AJAX call if (suggestString != '') {

var req = newXMLHttpRequest();req.onreadystatechange = getReadyStateHandler(req, updateSuggestions);

req.open("POST", "LookupServlet", true);req.setRequestHeader("Content-Type", "application/x-www-form-

urlencoded");req.send("hint=" + suggestString);

} else {document.getElementById('hints').style.display = 'none';

} }

Page 85: Web 2.0

AJAX - XMLHttpRequest

function searchWordKeyPressed(event) {/** cross-browser event check **/

if (!event) var event = window.event; // test for up/downarrow or enter key (will be handled by a different event)

if (event.keyCode == 38 || event.keyCode == 40 || event.keyCode == 13) return; // move focus out of autosuggest table fRow = -1;// set the text the user typed as a global var suggestString = document.getElementById('searchWord').value;

// make the AJAX call if (suggestString != '') {

var req = newXMLHttpRequest();req.onreadystatechange = getReadyStateHandler(req, updateSuggestions);

req.open("POST", "LookupServlet", true);req.setRequestHeader("Content-Type", "application/x-www-form-

urlencoded");req.send("hint=" + suggestString);

} else {document.getElementById('hints').style.display = 'none';

} }

Page 86: Web 2.0

AJAX - XMLHttpRequest

function newXMLHttpRequest() { var xmlreq = false; // Create XMLHttpRequest object in non-Microsoft browsers if (window.XMLHttpRequest) { xmlreq = new XMLHttpRequest(); } else if (window.ActiveXObject) { try { // Try to create XMLHttpRequest in later versions of Internet Explorer xmlreq = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e1) { // Failed to create required ActiveXObject try { // Try version supported by older versions of Internet Explorer xmlreq = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e2) { // Unable to create an XMLHttpRequest by any means xmlreq = false; } } }return xmlreq;}

Page 87: Web 2.0

AJAX - XMLHttpRequest

function newXMLHttpRequest() { var xmlreq = false; // Create XMLHttpRequest object in non-Microsoft browsers if (window.XMLHttpRequest) { xmlreq = new XMLHttpRequest(); } else if (window.ActiveXObject) { try { // Try to create XMLHttpRequest in later versions of Internet Explorer xmlreq = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e1) { // Failed to create required ActiveXObject try { // Try version supported by older versions of Internet Explorer xmlreq = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e2) { // Unable to create an XMLHttpRequest by any means xmlreq = false; } } }return xmlreq;}

Page 88: Web 2.0

AJAX - XMLHttpRequest

function newXMLHttpRequest() { var xmlreq = false; // Create XMLHttpRequest object in non-Microsoft browsers if (window.XMLHttpRequest) { xmlreq = new XMLHttpRequest(); } else if (window.ActiveXObject) { try { // Try to create XMLHttpRequest in later versions of Internet Explorer xmlreq = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e1) { // Failed to create required ActiveXObject try { // Try version supported by older versions of Internet Explorer xmlreq = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e2) { // Unable to create an XMLHttpRequest by any means xmlreq = false; } } }return xmlreq;}

Page 89: Web 2.0

AJAX - XMLHttpRequest

function searchWordKeyPressed(event) {/** cross-browser event check **/

if (!event) var event = window.event; // test for up/downarrow or enter key (will be handled by a different event)

if (event.keyCode == 38 || event.keyCode == 40 || event.keyCode == 13) return; // move focus out of autosuggest table fRow = -1;// set the text the user typed as a global var suggestString = document.getElementById('searchWord').value;

// make the AJAX call if (suggestString != '') {

var req = newXMLHttpRequest();req.onreadystatechange = getReadyStateHandler(req, updateSuggestions);

req.open("POST", "LookupServlet", true);req.setRequestHeader("Content-Type", "application/x-www-form-

urlencoded");req.send("hint=" + suggestString);

} else {document.getElementById('hints').style.display = 'none';

} }

Page 90: Web 2.0

AJAX - XMLHttpRequest

function getReadyStateHandler(req, responseXmlHandler) {// Returns a function that waits for the specified XMLHttpRequest// to complete, then passes the XML response to the given handler function.

// req - The XMLHttpRequest whose state is changing // responseXmlHandler - Function to pass the XML response to

return function () { // If the request's status is "complete" if (req.readyState == 4) { // Check that we received a successful response from the server if (req.status == 200) { // Pass the XML payload of the response to the handler function. responseXmlHandler(req.responseXML); } else { // An HTTP problem has occurred alert("HTTP error "+req.status+": "+req.statusText); } } } }

Page 91: Web 2.0

AJAX - XMLHttpRequest

function searchWordKeyPressed(event) {/** cross-browser event check **/

if (!event) var event = window.event; // test for up/downarrow or enter key (will be handled by a different event)

if (event.keyCode == 38 || event.keyCode == 40 || event.keyCode == 13) return; // move focus out of autosuggest table fRow = -1;// set the text the user typed as a global var suggestString = document.getElementById('searchWord').value;

// make the AJAX call if (suggestString != '') {

var req = newXMLHttpRequest();req.onreadystatechange = getReadyStateHandler(req, updateSuggestions);

//open HTTP POST connection to servlet, ‘true’ specifies asynchronousreq.open("POST", "LookupServlet", true);req.setRequestHeader("Content-Type", "application/x-www-form-

urlencoded");req.send("hint=" + suggestString);

} else {document.getElementById('hints').style.display = 'none';

} }

Page 92: Web 2.0

AJAX

Two formats for data serialization: XML JSON (JavaScript Object Notation)

Page 93: Web 2.0

AJAX - JSON

Construct a JSON representation of an object on the server:

{ "firstName": "John", "lastName": "Smith", "address": { "streetAddress": "21 2nd Street", "city": "New York", "state": "NY", "postalCode": 10021 }, "phoneNumbers": [ "212 732-1234", "646 123-4567" ]}

Page 94: Web 2.0

AJAX - JSON

If the preceding text is contained in the JavaScript string variable JSON_text, you can recreate the object on the client with a simple eval() statement:

var p = eval(“(“ + JSON_text + “)”);

and the fields p.firstName, p.address.city, p.phoneNumbers[0], and so on are then accessible

Page 95: Web 2.0

Microformats

microformats.orgDan Cederholm, Tantek Çelik, Brian Suda

blog.mozilla.com/faaborgAlex Faaborg

microformatique.comJohn Allsop

Page 96: Web 2.0

Microformats

A way of sharing data between websites

Page 97: Web 2.0

Microformats

A way of sharing data between websites Uses simple, open data formats

Page 98: Web 2.0

Microformats

A way of sharing data between websites Uses simple, open data formats Built on existing standards

Page 99: Web 2.0

Microformats

A way of sharing data between websites Uses simple, open data formats Built on existing standards Readable by humans and machines

Page 100: Web 2.0

Microformats

A way of sharing data between websites Uses simple, open data formats Built on existing standards Readable by humans and machines Based on current developer practice

Page 101: Web 2.0

Microformats

A way of sharing data between websites Uses simple, open data formats Built on existing standards Readable by humans and machines Based on current developer practice Decentralized content and services

Page 102: Web 2.0

Microformats

People and Organizations (hCard)

Page 103: Web 2.0

Microformats

People and Organizations (hCard) Calendars and Events (hCalendar)

Page 104: Web 2.0

Microformats

People and Organizations (hCard) Calendars and Events (hCalendar) Locations (geo)

Page 105: Web 2.0

Microformats

People and Organizations (hCard) Calendars and Events (hCalendar) Locations (geo) Opinions and Reviews (hReview)

Page 106: Web 2.0

Microformats

People and Organizations (hCard) Calendars and Events (hCalendar) Locations (geo) Opinions and Reviews (hReview) Social Networks (XFN)

Page 107: Web 2.0

Microformats

People and Organizations (hCard) Calendars and Events (hCalendar) Locations (geo) Opinions and Reviews (hReview) Social Networks (XFN) Resumés (hResume)

Page 108: Web 2.0

Microformats

People and Organizations (hCard) Calendars and Events (hCalendar) Locations (geo) Opinions and Reviews (hReview) Social Networks (XFN) Resumés (hResume) Blogs, Bookmarks, etc. (hAtom)

Page 109: Web 2.0

Microformats

People and Organizations (hCard) Calendars and Events (hCalendar) Locations (geo) Opinions and Reviews (hReview) Social Networks (XFN) Resumés (hResume) Blogs, Bookmarks, etc. (hAtom) Classifieds (hListing)

Page 110: Web 2.0

Microformats

People and Organizations (hCard) Calendars and Events (hCalendar) Locations (geo) Opinions and Reviews (hReview) Social Networks (XFN) Resumés (hResume) Blogs, Bookmarks, etc. (hAtom) Classifieds (hListing)

Mozilla is focusing on these three

Mozilla is focusing on these three

Page 111: Web 2.0

Microformats

People and Organizations (hCard) Calendars and Events (hCalendar) Locations (geo)

hCard geo hCalendar

Page 112: Web 2.0

Microformats

People and Organizations (hCard) Calendars and Events (hCalendar) Locations (geo)

Page 113: Web 2.0

Microformats

People and Organizations (hCard) Calendars and Events (hCalendar) Locations (geo)

Space and Time also map to common representations of information

Page 114: Web 2.0

Microformats - hCard

<div><img src=“img/twb.jpg” /><h2>

<a href=http://www.homeboyd.com><span>Tony</span><span>Boyd</span></a>

</h2><h3>address</h3><div>

<div>1923 N. Gramercy Place</div><span>Los Angeles</span><span>CA</span><span>90068</span>

</div><h3>phone</h3><div>323-877-3054</div><h3>email</h3><a href=“mailto...”>[email protected]</a>

</div>

Page 115: Web 2.0

Microformats - hCard

<div><img src=“img/twb.jpg” /><h2>

<a href=http://www.homeboyd.com><span>Tony</span><span>Boyd</span></a>

</h2><h3>address</h3><div>

<div>1923 N. Gramercy Place</div><span>Los Angeles</span><span>CA</span><span>90068</span>

</div><h3>phone</h3><div>323-877-3054</div><h3>email</h3><a href=“mailto...”>[email protected]</a>

</div>

Microformats have a root element.

hCard root elements have theclass value=“vcard”.

Microformats have a root element.

hCard root elements have theclass value=“vcard”.

Page 116: Web 2.0

Microformats - hCard

<div class=“vcard”><img src=“img/twb.jpg” /><h2>

<a href=http://www.homeboyd.com><span>Tony</span><span>Boyd</span></a>

</h2><h3>address</h3><div>

<div>1923 N. Gramercy Place</div><span>Los Angeles</span><span>CA</span><span>90068</span>

</div><h3>phone</h3><div>323-877-3054</div><h3>email</h3><a href=“mailto...”>[email protected]</a>

</div>

Page 117: Web 2.0

Microformats - hCard

<div class=“vcard”><img src=“img/twb.jpg” /><h2>

<a href=http://www.homeboyd.com><span>Tony</span><span>Boyd</span></a>

</h2><h3>address</h3><div>

<div>1923 N. Gramercy Place</div><span>Los Angeles</span><span>CA</span><span>90068</span>

</div><h3>phone</h3><div>323-877-3054</div><h3>email</h3><a href=“mailto...”>[email protected]</a>

</div>

Formatted Names:

class=“fn” (root)class=“given-name”class=“family-name”

Formatted Names:

class=“fn” (root)class=“given-name”class=“family-name”

Page 118: Web 2.0

Microformats - hCard

<div class=“vcard”><img src=“img/twb.jpg” /><h2>

<a class=“fn” href=http://www.homeboyd.com><span class=“given-name”>Tony</span><span class=“family-name”>Boyd</span></a>

</h2><h3>address</h3><div>

<div>1923 N. Gramercy Place</div><span>Los Angeles</span><span>CA</span><span>90068</span>

</div><h3>phone</h3><div>323-877-3054</div><h3>email</h3><a href=“mailto...”>[email protected]</a>

</div>

Page 119: Web 2.0

Microformats - hCard

<div class=“vcard”><img src=“img/twb.jpg” /><h2>

<a class=“fn” href=http://www.homeboyd.com><span class=“given-name”>Tony</span><span class=“family-name”>Boyd</span></a>

</h2><h3>address</h3><div>

<div>1923 N. Gramercy Place</div><span>Los Angeles</span><span>CA</span><span>90068</span>

</div><h3>phone</h3><div>323-877-3054</div><h3>email</h3><a href=“mailto...”>[email protected]</a>

</div>

URLs and Photos:

class=“photo”class=“url”

URLs and Photos:

class=“photo”class=“url”

Page 120: Web 2.0

Microformats - hCard

<div class=“vcard”><img src=“img/twb.jpg” class=“photo” /><h2>

<a class=“fn url” href=http://www.homeboyd.com><span class=“given-name”>Tony</span><span class=“family-name”>Boyd</span></a>

</h2><h3>address</h3><div>

<div>1923 N. Gramercy Place</div><span>Los Angeles</span><span>CA</span><span>90068</span>

</div><h3>phone</h3><div>323-877-3054</div><h3>email</h3><a href=“mailto...”>[email protected]</a>

</div>

Page 121: Web 2.0

Microformats - hCard

<div class=“vcard”><img src=“img/twb.jpg” class=“photo” /><h2>

<a class=“fn url” href=http://www.homeboyd.com><span class=“given-name”>Tony</span><span class=“family-name”>Boyd</span></a>

</h2><h3>address</h3><div>

<div>1923 N. Gramercy Place</div><span>Los Angeles</span><span>CA</span><span>90068</span>

</div><h3>phone</h3><div>323-877-3054</div><h3>email</h3><a href=“mailto...”>[email protected]</a>

</div>

Addresses:

class=“adr” (root)class=“street-address”class=“locality”class=“region”class=“postal-code”class=“country-name”

Addresses:

class=“adr” (root)class=“street-address”class=“locality”class=“region”class=“postal-code”class=“country-name”

Page 122: Web 2.0

Microformats - hCard

<div class=“vcard”><img src=“img/twb.jpg” class=“photo” /><h2>

<a class=“fn url” href=http://www.homeboyd.com><span class=“given-name”>Tony</span><span class=“family-name”>Boyd</span></a>

</h2><h3>address</h3><div class=“adr”>

<div class=“street-address”>1923 N. Gramercy Place</div><span class=“locality”>Los Angeles</span><span class=“region”>CA</span><span class=“postal-code”>90068</span>

</div><h3>phone</h3><div>323-877-3054</div><h3>email</h3><a href=“mailto...”>[email protected]</a>

</div>

Page 123: Web 2.0

Microformats - hCard

<div class=“vcard”><img src=“img/twb.jpg” class=“photo” /><h2>

<a class=“fn url” href=http://www.homeboyd.com><span class=“given-name”>Tony</span><span class=“family-name”>Boyd</span></a>

</h2><h3>address</h3><div class=“adr”>

<div class=“street-address”>1923 N. Gramercy Place</div><span class=“locality”>Los Angeles</span><span class=“region”>CA</span><span class=“postal-code”>90068</span>

</div><h3>phone</h3><div>323-877-3054</div><h3>email</h3><a href=“mailto...”>[email protected]</a>

</div>

email and phone:

class=“email”class=“tel”

email and phone:

class=“email”class=“tel”

Page 124: Web 2.0

Microformats - hCard

<div class=“vcard”><img src=“img/twb.jpg” class=“photo” /><h2>

<a class=“fn url” href=http://www.homeboyd.com><span class=“given-name”>Tony</span><span class=“family-name”>Boyd</span></a>

</h2><h3>address</h3><div class=“adr”>

<div class=“street-address”>1923 N. Gramercy Place</div><span class=“locality”>Los Angeles</span><span class=“region”>CA</span><span class=“postal-code”>90068</span>

</div><h3>phone</h3><div class=“phone”>323-877-3054</div><h3>email</h3><a class=“email” href=“mailto...”>[email protected]</a>

</div>

Page 125: Web 2.0

Web 2.0 Meme Map

Strategic Positioning: The Web as Platform

User Positioning: You control your own data

Core Competencies: Services not packaged sofware Architecture of Participation Cost-effective scalability Remixable data source and data transformations Software above the level of a single device Harnessing collective intelligence

Flickr, de.licio.usTagging,

not taxonomy

PageRank, eBay reputation,

user as contributor

Blogs:Participation, not publishing

BitTorrent:Radical

Decentralization

Google AdSense:customer self-service,

the long tail

Wikipedia:Radical Trust

“An Attitude, nota technology”

The Long Tail

Data as the‘Intel Inside”

Trustyour users

Small PiecesLoosely Joined(microformats)

Rich UserExperience

The Right to Remix“Some rights reserved”

Software that gets better the more people

user itPlay

Emergent:User behavior not

predetermined

Granular Addressability

of Content

The PerpetualBeta

Gmail, Google Mapsand AJAX: Rich

user experiences

Page 126: Web 2.0

Web 2.0 Meme Map

Strategic Positioning: The Web as Platform

User Positioning: You control your own data

Core Competencies: Services not packaged sofware Architecture of Participation Cost-effective scalability Remixable data source and data transformations Software above the level of a single device Harnessing collective intelligence

Flickr, de.licio.usTagging,

not taxonomy

PageRank, eBay reputation,

user as contributor

Blogs:Participation, not publishing

BitTorrent:Radical

Decentralization

Google AdSense:customer self-service,

the long tail

Wikipedia:Radical Trust

“An Attitude, nota technology”

The Long Tail

Data as the‘Intel Inside”

Trustyour users

Small PiecesLoosely Joined(microformats)

Rich UserExperience

The Right to Remix“Some rights reserved”

Play

Emergent:User behavior not

predetermined

Granular Addressability

of Content

The PerpetualBeta

Gmail, Google Mapsand AJAX: Rich

user experiences

Software that getsbetter the more people

use it

Page 127: Web 2.0

Web 2.0 Meme Map

Strategic Positioning: The Web as Platform

User Positioning: You control your own data

Core Competencies: Services not packaged sofware Architecture of Participation Cost-effective scalability Remixable data source and data transformations Software above the level of a single device Harnessing collective intelligence

Flickr, de.licio.usTagging,

not taxonomy

PageRank, eBay reputation,

user as contributor

Blogs:Participation, not publishing

BitTorrent:Radical

Decentralization

Google AdSense:customer self-service,

the long tail

Wikipedia:Radical Trust

“An Attitude, nota technology”

The Long Tail

Data as the‘Intel Inside”

Small PiecesLoosely Joined(microformats)

Rich UserExperience

The Right to Remix“Some rights reserved”

Software that gets better the more people

user itPlay

Emergent:User behavior not

predetermined

Granular Addressability

of Content

The PerpetualBeta

Gmail, Google Mapsand AJAX: Rich

user experiences

Trustyour users

Page 128: Web 2.0

Web 2.0 Meme Map

Strategic Positioning: The Web as Platform

User Positioning: You control your own data

Core Competencies: Services not packaged sofware Architecture of Participation Cost-effective scalability Remixable data source and data transformations Software above the level of a single device Harnessing collective intelligence

Flickr, de.licio.usTagging,

not taxonomy

PageRank, eBay reputation,

user as contributor

Blogs:Participation, not publishing

BitTorrent:Radical

Decentralization

Google AdSense:customer self-service,

the long tail

Wikipedia:Radical Trust

“An Attitude, nota technology”

Data as the‘Intel Inside”

Trustyour users

Small PiecesLoosely Joined(microformats)

Rich UserExperience

The Right to Remix“Some rights reserved”

Software that gets better the more people

user itPlay

Emergent:User behavior not

predetermined

Granular Addressability

of Content

The PerpetualBeta

Gmail, Google Mapsand AJAX: Rich

user experiences

The Long Tail

Page 129: Web 2.0

Web 2.0 Meme Map

Strategic Positioning: The Web as Platform

User Positioning: You control your own data

Core Competencies: Services not packaged sofware Architecture of Participation Cost-effective scalability Remixable data source and data transformations Software above the level of a single device Harnessing collective intelligence

Flickr, de.licio.usTagging,

not taxonomy

PageRank, eBay reputation,

user as contributor

Blogs:Participation, not publishing

BitTorrent:Radical

Decentralization

Google AdSense:customer self-service,

the long tail

Wikipedia:Radical Trust

“An Attitude, nota technology”

The Long Tail

Trustyour users

Small PiecesLoosely Joined(microformats)

Rich UserExperience

The Right to Remix“Some rights reserved”

Software that gets better the more people

user itPlay

Emergent:User behavior not

predetermined

Granular Addressability

of Content

The PerpetualBeta

Gmail, Google Mapsand AJAX: Rich

user experiences

Data as the‘Intel Inside’

Page 130: Web 2.0

Web 2.0 Meme Map

Strategic Positioning: The Web as Platform

User Positioning: You control your own data

Core Competencies: Services not packaged sofware Architecture of Participation Cost-effective scalability Remixable data source and data transformations Software above the level of a single device Harnessing collective intelligence

Flickr, de.licio.usTagging,

not taxonomy

PageRank, eBay reputation,

user as contributor

Blogs:Participation, not publishing

BitTorrent:Radical

Decentralization

Google AdSense:customer self-service,

the long tail

Wikipedia:Radical Trust

“An Attitude, nota technology”

The Long Tail

Data as the‘Intel Inside”

Trustyour users

Rich UserExperience

The Right to Remix“Some rights reserved”

Software that gets better the more people

user itPlay

Emergent:User behavior not

predetermined

Granular Addressability

of Content

The PerpetualBeta

Gmail, Google Mapsand AJAX: Rich

user experiences

Small PiecesLoosely Joined(microformats)

Page 131: Web 2.0

Web 2.0 Meme Map

Strategic Positioning: The Web as Platform

User Positioning: You control your own data

Core Competencies: Services not packaged sofware Architecture of Participation Cost-effective scalability Remixable data source and data transformations Software above the level of a single device Harnessing collective intelligence

Flickr, de.licio.usTagging,

not taxonomy

PageRank, eBay reputation,

user as contributor

Blogs:Participation, not publishing

BitTorrent:Radical

Decentralization

Google AdSense:customer self-service,

the long tail

Wikipedia:Radical Trust

“An Attitude, nota technology”

The Long Tail

Data as the‘Intel Inside”

Trustyour users

Small PiecesLoosely Joined(microformats)

Rich UserExperience

The Right to Remix“Some rights reserved”

Software that gets better the more people

user itPlay

Emergent:User behavior not

predetermined

Granular Addressability

of Content

Gmail, Google Mapsand AJAX: Rich

user experiences

The PerpetualBeta

Page 132: Web 2.0

Web 2.0 Meme Map

Strategic Positioning: The Web as Platform

User Positioning: You control your own data

Core Competencies: Services not packaged sofware Architecture of Participation Cost-effective scalability Remixable data source and data transformations Software above the level of a single device Harnessing collective intelligence

Flickr, de.licio.usTagging,

not taxonomy

PageRank, eBay reputation,

user as contributor

Blogs:Participation, not publishing

BitTorrent:Radical

Decentralization

Google AdSense:customer self-service,

the long tail

Wikipedia:Radical Trust

“An Attitude, nota technology”

The Long Tail

Data as the‘Intel Inside”

Trustyour users

Small PiecesLoosely Joined(microformats)

The Right to Remix“Some rights reserved”

Software that gets better the more people

user itPlay

Emergent:User behavior not

predetermined

Granular Addressability

of Content

The PerpetualBeta

Gmail, Google Mapsand AJAX: Rich

user experiences

Rich UserExperience

Page 133: Web 2.0

Enterprise 2.0

What’s in it for us?

Page 134: Web 2.0

Enterprise 2.0

User participation thru wikis, blogs, etc.

Page 135: Web 2.0

Enterprise 2.0

User participation thru wikis, blogs, etc.

Focus on user choice

Page 136: Web 2.0

Enterprise 2.0

User participation thru wikis, blogs, etc.

Focus on user choice

Facilitate collaboration

Page 137: Web 2.0

Enterprise 2.0

User participation thru wikis, blogs, etc.

Focus on user choice

Facilitate collaboration

Move from individual performance to group

performance

Page 138: Web 2.0

Enterprise 2.0

User participation thru wikis, blogs, etc.

Focus on user choice

Facilitate collaboration

Move from individual performance to group

performance

User feedback and interactivity

Page 139: Web 2.0

Enterprise 2.0

User participation thru wikis, blogs, etc.

Focus on user choice

Facilitate collaboration

Move from individual performance to group

performance

User feedback and interactivity

Google Enterprise

Page 140: Web 2.0

Ruby

I am trying to make Ruby natural, not simple...Ruby is simple in appearance, but is very complex inside, just like our human body.

Yukihiro Matsumoto Architect of Ruby

Page 141: Web 2.0

Ruby on Rails

Rails is the most well thought-out web development framework I’ve ever used...I’ve build my own frameworks, helped develop the Servlet API, and have created more than a few web servers from scratch. Nobody has done it like this before.

James Duncan Davidson Creator of Tomcat and Ant

Page 142: Web 2.0

Ruby

Pure Object-oriented language

See: www.ruby-lang.org

Page 143: Web 2.0

Ruby

Pure Object-oriented language Everything’s an object

See: www.ruby-lang.org

Page 144: Web 2.0

Ruby

Pure Object-oriented language Everything’s an object Interpretive, reflexive

See: www.ruby-lang.org

Page 145: Web 2.0

Ruby

Pure Object-oriented language Everything’s an object Interpretive, reflexive Java-like exception handling

See: www.ruby-lang.org

Page 146: Web 2.0

Ruby

Pure Object-oriented language Everything’s an object Interpretive, reflexive Java-like exception handling True mark-and-sweep garbage collection

See: www.ruby-lang.org

Page 147: Web 2.0

Ruby

Pure Object-oriented language Everything’s an object Interpretive, reflexive Java-like exception handling True mark-and-sweep garbage collection OS independent threading

See: www.ruby-lang.org

Page 148: Web 2.0

Rails

Full-stack web framework

See: www.rubyonrails.org

Page 149: Web 2.0

Rails

Full-stack web framework True MVC

See: www.rubyonrails.org

Page 150: Web 2.0

Rails

Full-stack web framework True MVC Convention over Configuration

See: www.rubyonrails.org

Page 151: Web 2.0

Rails

Full-stack web framework True MVC Convention over Configuration Connects to Oracle, MySQL, etc.

See: www.rubyonrails.org

Page 152: Web 2.0

Rails

Full-stack web framework True MVC Convention over Configuration Connects to Oracle, MySQL, etc. Runs on Apache, lighttpd, WebBrick

See: www.rubyonrails.org

Page 153: Web 2.0

Rails

Full-stack web framework True MVC Convention over Configuration Connects to Oracle, MySQL, etc. Runs on Apache, lighttpd, WebBrick Extensive AJAX libraries

See: www.rubyonrails.org

Page 154: Web 2.0

Ruby on Rails“Powerful web applications that formerly might have taken weeks or months to develop can be produced in a matter of days.”

Tim O’Reilly

“Rails has become a standard to which even well-established tools are comparing themselves to.”

Martin Fowler, Author of Refactoring, PoEAA, XP Explained

“Ruby on Rails is astounding. Using it is like watching a kung-fu movie, where a dozen bad-ass frameworks prepare to beat up the little newcomer only to be handed their asses in a variety of imaginative ways.”

Nathing Torkington, O’Reilly Media