135
Bastelstunde mit dem Web und freien Daten. Chris&an Heilmann WebTechCon, Mainz, Oktober 2010

Bastelstunde mit dem web und freien-daten-webtechcon2010

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Bastelstunde mit dem web und freien-daten-webtechcon2010

Bastelstunde mit dem Web und freien Daten.

Chris&an HeilmannWebTechCon, Mainz, Oktober 2010

Page 2: Bastelstunde mit dem web und freien-daten-webtechcon2010

Wer?Wie?Was?

Page 3: Bastelstunde mit dem web und freien-daten-webtechcon2010

DerDie

Das Web und warum es rockt

Freude am Entdecken

Chris (@codepo8)

Page 4: Bastelstunde mit dem web und freien-daten-webtechcon2010

Wieso?Weshalb?Warum?

Page 5: Bastelstunde mit dem web und freien-daten-webtechcon2010

Weil ihr hier seit und ich gern tolle Sachen weitergebe.

Page 6: Bastelstunde mit dem web und freien-daten-webtechcon2010

Ist die Stimme dann im Eimer, keine Kippen, warme Suppen...

Page 7: Bastelstunde mit dem web und freien-daten-webtechcon2010

Letzes Jahr war ich tuechtig.

Page 11: Bastelstunde mit dem web und freien-daten-webtechcon2010

http://isithackday.com/geoplanet-explorer/geodrilldown.php

Page 16: Bastelstunde mit dem web und freien-daten-webtechcon2010

http://icant.co.uk/goohoobi/index.php?research

Page 19: Bastelstunde mit dem web und freien-daten-webtechcon2010

Ich liebe es im Web zu arbeiten.

Page 20: Bastelstunde mit dem web und freien-daten-webtechcon2010

Dinge werden ziemlich einfach wenn man sich etwas vor Augen fuehrt.

Page 21: Bastelstunde mit dem web und freien-daten-webtechcon2010

Was ist das Web?

Page 22: Bastelstunde mit dem web und freien-daten-webtechcon2010

Was ist das Web?

Daten + Darstellung

Page 23: Bastelstunde mit dem web und freien-daten-webtechcon2010

Am Anfang stehen die Daten.

Page 24: Bastelstunde mit dem web und freien-daten-webtechcon2010

Daten kommen in allen moeglichen Formaten.

Page 25: Bastelstunde mit dem web und freien-daten-webtechcon2010

Fuers Web machen nicht alle Sinn.

Page 26: Bastelstunde mit dem web und freien-daten-webtechcon2010

In den letzten Jahren stellten sich ein paar Formate als am Einfachsten fuers Web heraus...

Page 27: Bastelstunde mit dem web und freien-daten-webtechcon2010

RESTJSONJSON-PXML (wenns denn sein muss)

Page 28: Bastelstunde mit dem web und freien-daten-webtechcon2010

REST bedeutet im Grunde das die URL die Daten beschreibt die man haben moechte.

Page 33: Bastelstunde mit dem web und freien-daten-webtechcon2010

Das gilt auch fuer Web Services und andere Formate.

Page 34: Bastelstunde mit dem web und freien-daten-webtechcon2010

Wasn JSON?

Page 35: Bastelstunde mit dem web und freien-daten-webtechcon2010

JSON ist die JavaScript Object Notation.

Page 36: Bastelstunde mit dem web und freien-daten-webtechcon2010

Wollen wir zum Beispiel einen genialen Film definieren, kann man das mit XML machen.

Page 37: Bastelstunde mit dem web und freien-daten-webtechcon2010
Page 38: Bastelstunde mit dem web und freien-daten-webtechcon2010
Page 39: Bastelstunde mit dem web und freien-daten-webtechcon2010

XML

Page 40: Bastelstunde mit dem web und freien-daten-webtechcon2010

XML

Page 41: Bastelstunde mit dem web und freien-daten-webtechcon2010

XML JSON

Page 42: Bastelstunde mit dem web und freien-daten-webtechcon2010
Page 43: Bastelstunde mit dem web und freien-daten-webtechcon2010
Page 44: Bastelstunde mit dem web und freien-daten-webtechcon2010

JSON hat ein paar Fehler, aber kann mehr fuers Web.

Page 45: Bastelstunde mit dem web und freien-daten-webtechcon2010

JSON ist kuerzer, mit weniger Wiederholungen und vor allem isses auch gleich JavaScript!

Page 46: Bastelstunde mit dem web und freien-daten-webtechcon2010

JSON-P ist das gleiche, nur ist da noch ein Funktionsaufruf drumrum.

Page 47: Bastelstunde mit dem web und freien-daten-webtechcon2010

Daher kann man JSON-P gleich in JavaScript in <script> verwenden!

Page 49: Bastelstunde mit dem web und freien-daten-webtechcon2010
Page 50: Bastelstunde mit dem web und freien-daten-webtechcon2010

Also, alles ziemlich einfach!

Page 51: Bastelstunde mit dem web und freien-daten-webtechcon2010
Page 52: Bastelstunde mit dem web und freien-daten-webtechcon2010

Nur verwendet man das halt nicht so oft.

Page 53: Bastelstunde mit dem web und freien-daten-webtechcon2010

Das Problem mit APIs ist das man sich ne Menge merken muss.

Page 54: Bastelstunde mit dem web und freien-daten-webtechcon2010

Ausserdem muss man sich auch noch ueberall einschreiben.

Page 55: Bastelstunde mit dem web und freien-daten-webtechcon2010

Daher benutze ich YQL.

Page 56: Bastelstunde mit dem web und freien-daten-webtechcon2010
Page 57: Bastelstunde mit dem web und freien-daten-webtechcon2010

select {was} von {wo} where {wie}

Page 58: Bastelstunde mit dem web und freien-daten-webtechcon2010

http://query.yahooapis.com/v1/public/yql?q=

select%20was%20von%20wo%20where%20wie

&format=json&diagnostics=true&callback=gibsmir

Page 59: Bastelstunde mit dem web und freien-daten-webtechcon2010

Anstatt eines Services gibt es nun alle!

Page 60: Bastelstunde mit dem web und freien-daten-webtechcon2010

Einfachste Anwendung: Scraping.

http://www.flickr.com/photos/fdtate/4426760544/

Page 61: Bastelstunde mit dem web und freien-daten-webtechcon2010

Scraping ist problematisch - HTML runterzuholen ist einfach, doch die Daten drin zu finden ist schwierig.

Page 62: Bastelstunde mit dem web und freien-daten-webtechcon2010

HTML scraping mit YQL macht es einfach, seine eigenen und die Daten anderer zu verwenden.

Page 63: Bastelstunde mit dem web und freien-daten-webtechcon2010

SEITENSEITEN

Page 64: Bastelstunde mit dem web und freien-daten-webtechcon2010

Mit YQL werden die Seiten durch Tidy gejagt und sind per XPath zu erreichen.

Page 65: Bastelstunde mit dem web und freien-daten-webtechcon2010

Das kann man verwenden um interessante Sachen zu machen...

Page 66: Bastelstunde mit dem web und freien-daten-webtechcon2010

Also...

Page 68: Bastelstunde mit dem web und freien-daten-webtechcon2010
Page 70: Bastelstunde mit dem web und freien-daten-webtechcon2010

http://y.ahoo.it/r/ENSPGm

Page 71: Bastelstunde mit dem web und freien-daten-webtechcon2010

Oder noch lustigere Sachen...

Page 73: Bastelstunde mit dem web und freien-daten-webtechcon2010
Page 74: Bastelstunde mit dem web und freien-daten-webtechcon2010
Page 75: Bastelstunde mit dem web und freien-daten-webtechcon2010

$.ajax({ url: url, dataType: 'jsonp', jsonp: 'callback', jsonpCallback: 'gibsmir'});function gibsmir(daten){}

JSON-P in jQuery:

Page 76: Bastelstunde mit dem web und freien-daten-webtechcon2010

$.getJSON(url+'&callback=?', function(data){});

JSON-P in jQuery (kuerzer):

Page 78: Bastelstunde mit dem web und freien-daten-webtechcon2010

getJSON() macht dem Cache des Webservices Aua...

Page 79: Bastelstunde mit dem web und freien-daten-webtechcon2010

...da jede Anfrage eine individuelle URL ist, obwohl man die gleichen Daten haben will...

Page 80: Bastelstunde mit dem web und freien-daten-webtechcon2010

... und da kann es dann schnell passieren, das man rausgeschmissen wird.

Page 81: Bastelstunde mit dem web und freien-daten-webtechcon2010

Lokales caching bedeutet das der Webservice nicht meckert.

Page 82: Bastelstunde mit dem web und freien-daten-webtechcon2010

Aufm Server ist das einfach, daher sag ich dazu nix.

Page 83: Bastelstunde mit dem web und freien-daten-webtechcon2010

Aufm Client sieht das anders aus, da Cookies einfach schlecht sind.

Page 84: Bastelstunde mit dem web und freien-daten-webtechcon2010

Aber da gibbet jetzt was Neues...

Page 85: Bastelstunde mit dem web und freien-daten-webtechcon2010

localStorage

HTML5

Page 86: Bastelstunde mit dem web und freien-daten-webtechcon2010

Anstatt Kekse auf dem Server zu stellen die nur 4k sein koennen und den HTTP Verkehr verstopfen...

Page 87: Bastelstunde mit dem web und freien-daten-webtechcon2010

Haben wir nun mehrere MB um Daten als key/value store abzulegen!

Page 88: Bastelstunde mit dem web und freien-daten-webtechcon2010

Die Daten sind per Domain abgelegt.

Page 89: Bastelstunde mit dem web und freien-daten-webtechcon2010

So tut das:

if(('localStorage' in window) && window['localStorage'] !== null){

localStorage.setItem( 'Kuchen', 'besser als Kekse')

}

Page 90: Bastelstunde mit dem web und freien-daten-webtechcon2010

So tut das:

if(('localStorage' in window) && window['localStorage'] !== null){

localStorage.getItem( 'Kuchen')// -> 'besser als Kekse'

}

Page 91: Bastelstunde mit dem web und freien-daten-webtechcon2010

localStorage kann nur Strings, keine Objekte!

Page 92: Bastelstunde mit dem web und freien-daten-webtechcon2010

Daher, JSON.

Page 93: Bastelstunde mit dem web und freien-daten-webtechcon2010

if(('localStorage' in window) && window['localStorage'] !== null){

localStorage.setItem( 'Kuchen', JSON.stringify( {lecker:‘stimmt’,kerzen:5} ));

}

Page 94: Bastelstunde mit dem web und freien-daten-webtechcon2010

if(('localStorage' in window) && window['localStorage'] !== null){

JSON.parse( localStorage.getItem('Kuchen'));// -> Object{...} anstatt [Object object]

}

Page 95: Bastelstunde mit dem web und freien-daten-webtechcon2010

YQL mit localStorage?

Page 96: Bastelstunde mit dem web und freien-daten-webtechcon2010

OK, dann machen wir das halt..

Page 97: Bastelstunde mit dem web und freien-daten-webtechcon2010

yql - die Anfrageid - der Speicherkeycacheage - wie langcallback - deine Funktion

Page 98: Bastelstunde mit dem web und freien-daten-webtechcon2010

Neue Browser holen die Daten einmal pro Stunde pro User.

Page 99: Bastelstunde mit dem web und freien-daten-webtechcon2010

Alle anderen machen immer noch YQL Aua, aber funktionieren auch.

Page 100: Bastelstunde mit dem web und freien-daten-webtechcon2010

Wie gehtn des?

Page 101: Bastelstunde mit dem web und freien-daten-webtechcon2010

OK, dann machen wir das halt..

Page 102: Bastelstunde mit dem web und freien-daten-webtechcon2010

OK, dann machen wir das halt..

Page 103: Bastelstunde mit dem web und freien-daten-webtechcon2010

OK, dann machen wir das halt..

Page 104: Bastelstunde mit dem web und freien-daten-webtechcon2010
Page 105: Bastelstunde mit dem web und freien-daten-webtechcon2010
Page 106: Bastelstunde mit dem web und freien-daten-webtechcon2010
Page 107: Bastelstunde mit dem web und freien-daten-webtechcon2010
Page 108: Bastelstunde mit dem web und freien-daten-webtechcon2010
Page 109: Bastelstunde mit dem web und freien-daten-webtechcon2010
Page 110: Bastelstunde mit dem web und freien-daten-webtechcon2010
Page 111: Bastelstunde mit dem web und freien-daten-webtechcon2010

= schnellere Applikation ohne YQL Meckerei.

Page 112: Bastelstunde mit dem web und freien-daten-webtechcon2010

Das kommt dann bald auf GitHub dann kann man da auch ein jQuery Plugin bauen.

Page 113: Bastelstunde mit dem web und freien-daten-webtechcon2010

Scraping ist ja nett, aber interessant wird es wenn man APIs verwendet.

Page 115: Bastelstunde mit dem web und freien-daten-webtechcon2010

http://icant.co.uk/goohoobi/index.php?research

Page 116: Bastelstunde mit dem web und freien-daten-webtechcon2010

select * from query.multi where queries=' select Title,Description,Url,DisplayUrl from microsoft.bing.web(20) where query="cat"; select title,clickurl,abstract,dispurl from search.web(20) where query="cat"; select titleNoFormatting,url,content,visibleUrl from google.search(20) where q="cat"'

Page 117: Bastelstunde mit dem web und freien-daten-webtechcon2010

http://vimeo.com/8075850

Page 120: Bastelstunde mit dem web und freien-daten-webtechcon2010
Page 121: Bastelstunde mit dem web und freien-daten-webtechcon2010
Page 123: Bastelstunde mit dem web und freien-daten-webtechcon2010

Bausteine gibts ueberall.

Page 125: Bastelstunde mit dem web und freien-daten-webtechcon2010

(...)

Page 127: Bastelstunde mit dem web und freien-daten-webtechcon2010
Page 131: Bastelstunde mit dem web und freien-daten-webtechcon2010

Ihr habt die Daten, ihr habt die Bausteine.

Page 132: Bastelstunde mit dem web und freien-daten-webtechcon2010

Alles was noch fehlt, sind die Ideen.

Page 133: Bastelstunde mit dem web und freien-daten-webtechcon2010

Also, schaut euch um anstatt euch zu verstecken

Page 134: Bastelstunde mit dem web und freien-daten-webtechcon2010

Und wer nicht fragt, bleibt dumm!

Page 135: Bastelstunde mit dem web und freien-daten-webtechcon2010

Christian Heilmann http://wait-till-i.com http://developer-evangelism.com http://twitter.com/codepo8

Danke!