samedi 30 mai 2009

Google IO, Day Two, Wave and session



2EME JOUR

Keynote 2
c'est le président de LEGO
qui vient nous parler de lego, de mindstorm,
les hackeurs qui ont créé des pieces parallèles,
les AFOL adults fan of lego, et aussi qu'il les
a laissé faire , puis invités à visiter le département
recherche de lego .... ou ils ont signé une clause
d'agrément pour pouvoir entrer. et voilà
le probleme juridique est réglé .
je me demande ce qu'on a signé pour google...

GOOGLE WAVE

notre pote Vikram arrive, avec une surprise,
un nouvel outil collaboratif web,
collaborative tool open source in th browser
il appelle lars rasmunsen, qui a déjà fait maps,
et stéphanie hannon, ils sont de sydney
et à la démo on bave aussi de leur week end
sur leur bateau ski nautique à borabora.
2 ans de dev à sydney pour faire ce que
devrait etre une conversation
(parce que sur msn, on lit surtout "machin
est entrain d'écrire un message" ...)
quelqu'un commence un wave par une phrase
ou un mini mail, et les personnes invitées
peuvent répondre à l'intérieur du texte,
c'est dépliable, chacun voit le texte
tapé par les autres au fur et à mesure
de la frappe, on peut mettre des images,
ou video etc.

ça a été fait un GWT, et html5,
il reste léger (c'est lui qui est déscendu de
1M à 200k) . ça peut tourner sur plusieurs
serveurs de societes independantes

on peu aussi créer des apis sur le serveur
comme bloggy, qui est comme une personne
supplémentaire qui note tout et en fait un blog.
on peut faie des extensions coté client,
en s'intercalant dans les textes reçus ou tapés,
comme spelly qui corrige tes fautes avec une
reconnaissance contextuelle
this soup been has been to hot to drink
devient
this soup bean has been too hot to drink

il y a des extensions jeux comme le sudoku
à plusieur (qui appelle la compétition)
le jeu d'echec, ou tu peux donc rejouer toute la partie
les maps interactive synchronisées
meme zoom , envoi de dessins etc
les sondages les formulaires

et les extensions qui font que ton wave
est balancé sur d'autres supports comme
twitter (microblog) ou un bug-tracker
(comme matis),

et derniere demo avec
l'extension rosy , où quand un fançais écrit
ça traduit aux autres en simultanés et vice versa.
http://wave.google.com
http://code.google.com/apis/wave
http://www.waveprotocol.org
http://www.wavesandbox.com

on aura tous un compte wave :-)
pour l'instant le cote client est opensource,
et on peut deja y faire des extensions


dehors, cookies, glace pasteque,
et des tas de développeurs portant un teeshirt
wave, des dev google de wave,
je discute avec un : portable en français sans pb,
et dès que ça sera opensource on pourra
faire tourner des waves sur les machines dediees
(comme on voulait faire pour secondlife ...)


SESSIONS

un coup d'oeil à BESPIN,
vaut mieux aller voir www.bespin.com
puisqu'en fait le developpeur ne fait
que expliquer comment il a fait son editeur

un coup d'oeil aux applis de visualisations
en fait il s'agit de fonctions de la boite
http://www.developperforce.com
avec du pseudo sql sur des csv
(ça existe opencsv ?)

un coup d'oeil à l'architecture wave,
ou le robot est un serveur
qui gère un wave
les gadgets sont des clients
qui gere les utilisateurs
tout ça est dans une iframe ailleurs
les stockages locaux sont en xml
dans un repertoire qui est synchronisé tout seul,
entité wave, entité status (cle-valeur),
entite utilisateur. c'est pas tres détaillé mais
c'est tout ce qu'il y a de public,
faire des getstate, setstate, et des callback
semble suffire pour faire des gadgets


un coup d'oeil a un petit jeune doué qui
a mis en place la partie sandbox et qui
connait bien les problemes de javascript,
les anonymous function(){xxxxx}
pour isoler les variables
les closures (instanciantion de fonctions)
les eval de fontion '('+func.toString()+')()'
les copies dans un domaine externe pour
éviter les cross site request forcing
(vol de cookie) xsrf
et que les appels se fasse toujours
en vérifiant un cookie random de debut de session
comment gagner des perfs, d'ailleurs il
parait que de gagner 500ms ça rapporte
20% de traffic en plus
(mais alors quand on gagne 3 secondes ça fait quoi ?)
voir le blog de steve boulder
gzipper le http sur apache, minifier le js
(yuicompressor)
grouper les script tags,
les enlever de head et les mettre avant le body
les appeler simultanément (appendjs) !!!
gérer les caches avec fiddler, ddrl
smush.it pour compresser les images
sprite generator pour les spriter

un coup d'oeil à wave qui a été fait en gwt
et c'est le plus sceptique antijava qui
nous explique pourquoi c'est mieux.
il y a le deferred binding, c'est à dire
tu fais ton code java et lui il se debrouille
pour envoyer la bonne version du bon code ou css
suivant les capacités du browser. ouf.
c'est lui qui gere la decoupe du code
et l'injection cs
et que les trucs qui manquaient dans gwt2007
eh ben maintenant c'est ok,
tu peux ecrire du pseudo html
<ui:xxx><br/> etc
tu peux ecrire du pur JS dans des commentaires
http://code.google.com/p/google-web-toolkit/wiki/CssResource
http://code.google.com/p/google-web-toolkit/wiki/DesignOPHM
http://code.google.com/p/google-web-toolkit/wiki/CodeSplitting
story of your compile SOYC pour voir quel java correspond à quel javascript
runAsync, SingleJsoImplementation,
webdriver pour les tests (ça rejoue un scenario web)


un coup d'oeil aux derniers devs sur appengine
qui supporte un peu java, et justement il y a
chez google un punk qui connais bien java et
des tas de trucs tres exotiques.
sa démo est uniquement en ligne de commande
avec du emacs ...
il peut donc ajouter une couche de langage jruby
java.security.Security.getalgorithm("crypt")
.sort ou .grep /M/
f=JFrame.new
f.size(20,20)
b=f.addButton
b.addAction do |e|
je sais pas la syntaxe exacte mais ça marche

on installe donc rails on jruby
ça marche libs,perfs,deploiement sauf que
il faut jdbc
pas de generics
pas de threads (dans timeout)
pas de c-extension
<1000 fichiers jar<10Mb
(ça se contourne en regroupant des fichiers)
no writing file
reflection off
startup time tres long, 15s
pb de test local

quelqus outils connus du monde java
warbler
rock
reggae
(ruby enabled google app engine)
datamapper
beeu
rubyorm
voir le blog de yarubyblog
sinatra (dsl pour ruby, je sais pas ce que c'est dsl)
ramaze, un framework

pour jouer, il a ressorti ioke, un autre langage, plus lispéen
"hello" println
1/3+1/3 (il aime pas le floats)
ioke-fun.appspots.com
il a écrit un robot wave en ioke

discuté avec offetpal et somexxxxx,
avec appengine (on peut l'utiliser pour
du html+mail, et mettre une delegation dns dessus)
et avec ning pour faire variantes.ning.org
un reseau social business.

Aucun commentaire: