the a to z of developing for the web

107
Developing for the web from Ajax to the Zen Garden

Upload: matt-wood

Post on 02-Jul-2015

4.778 views

Category:

Technology


0 download

DESCRIPTION

An introduction to modern web application development techniques: from Ajax to the Zen Garden

TRANSCRIPT

Page 1: The A to Z of developing for the web

Developing for the webfrom Ajax to the Zen Garden

Page 2: The A to Z of developing for the web

A is for AJAX

Page 3: The A to Z of developing for the web

Refresh without reloading

Page 4: The A to Z of developing for the web

Web apps rather than web pages

Page 5: The A to Z of developing for the web

AJAX is disruptive

Page 6: The A to Z of developing for the web

B is for Browsers

Page 7: The A to Z of developing for the web

Know thy browser

Page 8: The A to Z of developing for the web

Opera1%Netscape

13%

IE22%

Safari23%

Firefox41%

Page 9: The A to Z of developing for the web

Opera1%Netscape

13%

IE22%

Safari23%

Firefox41%

2.0 = 90%

Page 10: The A to Z of developing for the web

Opera1%Netscape

13%

IE22%

Safari23%

Firefox41%

IE6 = 66%

IE7 = 33%

Page 11: The A to Z of developing for the web

Code to standards

Page 12: The A to Z of developing for the web

Test[even on Opera]

Page 13: The A to Z of developing for the web

C is for CSS

Page 14: The A to Z of developing for the web

Separate data from design

Page 15: The A to Z of developing for the web

<div></div>

Page 16: The A to Z of developing for the web

Tables for data

Page 17: The A to Z of developing for the web

D is for the DOM

Page 18: The A to Z of developing for the web

Document Object Model

Page 19: The A to Z of developing for the web

Manipulate via JS

Page 20: The A to Z of developing for the web

E is for 404 errors

Page 21: The A to Z of developing for the web

Make them count

Defensive Design for the Web,Linderman and Fried

Page 22: The A to Z of developing for the web

F is for Firebug

Page 23: The A to Z of developing for the web

Page metrics

Page 24: The A to Z of developing for the web
Page 25: The A to Z of developing for the web

Javascript debugger

Page 26: The A to Z of developing for the web
Page 27: The A to Z of developing for the web

getfirebug.com

Page 28: The A to Z of developing for the web

G is for Gigabytes

Page 29: The A to Z of developing for the web

Keep pages small!

Page 30: The A to Z of developing for the web

Keep pages small!

Don’t obfuscate!

Page 32: The A to Z of developing for the web

Minimise connections

[Firebug can help]

Page 33: The A to Z of developing for the web

Compressing Javascript is harder than it seems

Page 34: The A to Z of developing for the web

H is for HTML 5.0

Page 35: The A to Z of developing for the web

HTML extensions

Page 36: The A to Z of developing for the web

DOM extensions

Page 37: The A to Z of developing for the web

Pain relief[Long time coming]

Page 38: The A to Z of developing for the web

twitter.com/WHATWG

Page 39: The A to Z of developing for the web

I is for Internet Explorer

Page 40: The A to Z of developing for the web

IE 7 will quickly dominate

Page 41: The A to Z of developing for the web

Test against it!

Page 42: The A to Z of developing for the web

J is for Javascript

Page 43: The A to Z of developing for the web

var req;

function loadXMLDoc(url) { req = false; // branch for native XMLHttpRequest object if(window.XMLHttpRequest) { try { req = new XMLHttpRequest(); } catch(e) { req = false; } // branch for IE/Windows ActiveX version } else if(window.ActiveXObject) { try { req = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { req = false; } } } if(req) { req.onreadystatechange = processReqChange; req.open("GET", url, true); req.send(""); }}

Page 44: The A to Z of developing for the web

Prototype

prototypejs.org

Page 45: The A to Z of developing for the web

function update_bookmarks() { var url = “common/bookmarks”; var data = “user=13&start=1000”; var request = new Ajax.Request(url, { method: ‘get’, parameters: data, onComplete: request_complete, });}

function request_complete(response) { $(‘view’).innerHTML = response.responseText;}

Page 46: The A to Z of developing for the web

Scriptaculous for visual effects

script.aculo.us

Page 47: The A to Z of developing for the web

Other libraries are available

developer.yahoo.com/yuijquery.com

dojotoolkit.org

Page 48: The A to Z of developing for the web

jMaki

ajax.dev.java.net

Page 49: The A to Z of developing for the web

Selenium forautomated testing

openqa.org/selenium

Page 50: The A to Z of developing for the web

K is for keywords

Page 51: The A to Z of developing for the web

L is for links

Page 52: The A to Z of developing for the web

M is for Microformats

Page 53: The A to Z of developing for the web

Documents vs Data

Page 54: The A to Z of developing for the web

Add value

Page 55: The A to Z of developing for the web

<tr><th class="two-column">Gene</th><td class="two-column"><table width="100%" cellpadding="4"><tr><td><strong><a href="http://www.gene.ucl.ac.uk/cgi-bin/nomenclature/get_data.pl?hgnc_id=1101">BRCA2</a></div></strong> (HGNC Symbol)</td><td><span class="small"> To view all Ensembl genes linked to the name <a href="/Homo_sapiens/featureview?type=Gene;id=BRCA2">click here</a>.</span></td></tr></table><p>This gene is a member of the Human CCDS set: <a href="http://www.ncbi.nlm.nih.gov/CCDS/CcdsBrowse.cgi?REQUEST=CCDS&amp;DATA=CCDS9344">CCDS9344</a> </p></td></tr>

Page 56: The A to Z of developing for the web

<tr class="hgene"><th class="two-column">Gene</th><td class="two-column"><table width="100%" cellpadding="4"><tr><td><strong><a href="http://www.gene.ucl.ac.uk/cgi-bin/nomenclature/get_data.pl?hgnc_id=1101" rel="hgnc_name">BRCA2</a></div></strong> (HGNC Symbol)</td><td><span class="small"> To view all Ensembl genes linked to the name <a href="/Homo_sapiens/featureview?type=Gene;id=BRCA2" rel="gene_list" >click here</a>.</span></td></tr></table><p>This gene is a member of the Human CCDS set: <a href="http://www.ncbi.nlm.nih.gov/CCDS/CcdsBrowse.cgi?REQUEST=CCDS&amp;DATA=CCDS9344" rel="ccds">CCDS9344</a> </p></td></tr>

Page 57: The A to Z of developing for the web

Styling. Parsing.

Page 58: The A to Z of developing for the web

microformats.org

Page 59: The A to Z of developing for the web

bioformats.org

Page 60: The A to Z of developing for the web

N is for New Era

Page 61: The A to Z of developing for the web

Read / write web

Push button publishing

Page 62: The A to Z of developing for the web

Can our web site be our API?

domain.com/events/list?all

Page 63: The A to Z of developing for the web

Mashups

twittervision.com

Page 64: The A to Z of developing for the web

Yahoo! Pipes for Biology?

pipes.yahoo.com

Page 65: The A to Z of developing for the web

O is for OPML

Page 66: The A to Z of developing for the web

Outline Processor ML

Hierarchical structure

Page 67: The A to Z of developing for the web

P is for PHP

Page 69: The A to Z of developing for the web

CakePHP

cakephp.org

Page 70: The A to Z of developing for the web

Q is for quirks mode

Page 72: The A to Z of developing for the web

XHTML

Page 73: The A to Z of developing for the web

R is for RDF

Page 74: The A to Z of developing for the web

Add meaning to data in documents

Page 75: The A to Z of developing for the web

<Gene rdf:about="#1110002A21Rik"> <chr>chr1</chr> <hasVariant rdf:parseType="Resource"> <representedBy rdf:resource="#gi13385627"/> </hasVariant> <hasVariant rdf:parseType="Resource"> <representedBy rdf:resource="#gi18043402"/> </hasVariant> <strand>+</strand> </Gene>

Page 76: The A to Z of developing for the web

RDF Schema, SPARQL

Page 77: The A to Z of developing for the web

S is for the Semantic Web

Page 78: The A to Z of developing for the web

The Semantic Web is not a separate Web but an extension of the current one, in which information is

given well-defined meaning, better enabling computers and people to work in cooperation

“”Sir Tim, 2002

Page 79: The A to Z of developing for the web

too ambitious?

Page 82: The A to Z of developing for the web

T is for Tagging

Page 83: The A to Z of developing for the web
Page 84: The A to Z of developing for the web

U is for friendly URLs

Page 85: The A to Z of developing for the web

www.friendly.net/archives/2007/09

Page 86: The A to Z of developing for the web

V is for Validation

Page 87: The A to Z of developing for the web

HTMLvalidator.w3.org

Page 88: The A to Z of developing for the web

CSSjigsaw.w3.org/css-validator

Page 89: The A to Z of developing for the web

W is for WSDL

Page 90: The A to Z of developing for the web

Automatic web service discovery and definition

Page 91: The A to Z of developing for the web

X is for XHTML

Page 92: The A to Z of developing for the web

HTML implemented as valid XML

Page 93: The A to Z of developing for the web

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/ xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

<title>untitled</title> </head>

<body>:</body></html>

Page 94: The A to Z of developing for the web

Close tags

<li></li><br />

Page 95: The A to Z of developing for the web

Cross browser

Page 96: The A to Z of developing for the web

Easy to parse

Page 97: The A to Z of developing for the web

Y is for YouTube

Page 98: The A to Z of developing for the web

YouTube andbioinformatics

Page 99: The A to Z of developing for the web

YouTube andbioinformatics( )

Page 100: The A to Z of developing for the web

Z is for the Zen Garden

Page 101: The A to Z of developing for the web

csszengarden.com

Page 102: The A to Z of developing for the web

1 HTML pageMany designs

Page 103: The A to Z of developing for the web
Page 104: The A to Z of developing for the web
Page 105: The A to Z of developing for the web
Page 106: The A to Z of developing for the web

Photos: Dave GormanGraffiti: Eine

flickr.com/photos/dgbalancesrocksartofthestate.co.uk

Page 107: The A to Z of developing for the web

Thank you