Tous les articles par Pierre

Tanzanie

Hello,

Vous trouverez des photos de notre récent voyage en Tanzanie (partie Zanzibar, Kilimandjaro) si vous suivez ce lien .

La partie Safari Photo (parc du Tarangire, Lac Manyara, Cratère du Ngorongoro) arrivera prochainement.

Au passage, nous avons pu gouter au plaisir du Kitesurf durant 3 jours sur la superbe plage de Paje et au snorkling sur les récifs de l’ile de Pemba. Je vous le dis car ce n’est pas sur les photos.

Pierre

Le retour du revenant

Hello tout le monde,

M’apprêtant à rédiger mon rapport hebdomadaire au coach, je me suis dit que ce serait sans doute plus sympa de le rendre accessible à une plus grande audience. N’étant point sur facebook (ni mon coach d’ailleurs, enfin je crois), je me suis souvenu de l’existence de ce bon vieux blog (2eme ou 3eme génération). Donc plutôt que de payer un hébergement pour rien, autant l’utiliser pour quelque chose qui n’intéressera pas grand monde (à part mon coach… peut être) :)

Alors pour ceux qui ne sont pas au courant, mon prochain gros objectif (sportif) aura lieu le 19 mai prochain. Je me vois donc contraint de reprendre un entretien sportif un peu plus régulier.

Hier soir, c’était l’anniversaire d’une copine au bar du comptoir général. Et pour me punir de ma trop grande consommation de jus aromatisés à la vodka, je me termine avec une bonne sortie d’1h 20 de cap ce dimanche.

Ce qui donne pour cette semaine:

  • Mardi : 1H CAP – Endurance
  • Jeudi : 40′ Natation – Reprise (difficile)
  • Samedi : 2h20 VTT – Forêt de Meudon (jambes toujours lourdes suite à la rando vtt de dimanche dernier)
  • Dimanche : 1h 20 CAP – Endurance
  • Total: 5h20 (40′ / 2h20 / 2h20)

2eme semaine consécutive à 5h. C’est dur :)

Sinon, hier soir c’était l’Ironman d’Hawaii que j’ai regardé en compagnie virtuelle d’Antoine. Victoire de Craig Alexander qui bat par la même le record de l’épreuve. Chez les dames, victoire de Chrissie Wellington.

Note pour Antoine, finalement j’ai choisi l’option révision du Specialized plutôt qu’achat d’un nouveau spad. J’économise pour remettre en état le Kestrel.

En esperant que je sois autant régulier sur ce blog qu’à l’entrainement, salut!

Frameworks à suivre…

Hier soir, je suis allé à la présentation de GAElyk, un toolkit Groovy pour le Google App Engine. La présentation a été effectuée par Guillaume Laforge himself dans le cadre du Paris Groovy/Grails User Group.

Ce combo (GAE+Groovy) être vraiment hyper prometteur. Je recommande pour les personnes qui sont prêt à se restreindre à la plateforme de google. J’imagine avec à disposition tous les services disponibles sur l’app engine (messagerie, memcache, etc…) mais sur d’autres plateformes (Amazon, etc…) de façon aussi transparente (sous forme de plugin ?) et intégrée à Grails.

Pour la persistance sur le data store d’App Engine, l’API Objectify semble être la plus recommandable. De mon expérience récente sur grails et le plugin app engine, je déconseille la sur-couche JPA / JDO.

Autre framework tendance du coté scala: Lift framework web qui est utilisé sur Linkedin. Scala ayant remplacé Ruby chez twitter.

Je suis parti sur Groovy/Grails pour mon projet et j’en suis très satisfait malgrès les (très) mauvaises expériences avec certains plugins (appengine/oauth).

Pour le moment, je me dirige donc vers un hébergement sur Amazon EC2 via Cloud Foundry.

Opening up to OpenID with Spring Security

Article sur Spring Security et Open Id:

http://www.packtpub.com/article/opening-up-to-openid-with-spring-security

La plupart des sites sociaux (Google, Twitter, linkedin, Yahoo, facebook) permettent d’utiliser openid (http://openid.net) pour s’authentifier et OAuth pour l’habilitation (http://oauth.net).

http://code.google.com/intl/fr/apis/gdata/articles/oauth.html

http://googlecodesamples.com/oauth_playground/

Le tutorial qui m’a le plus aidé à le mettre en oeuvre:
http://code.google.com/intl/fr/apis/gdata/docs/auth/oauth.html

C’est loin d’être trivial…

Gmail: Import emails and contact

J’imagine que c’est une réponse à Facebook Messages mais google offre « enfin » la possibilité d’intégrer un compte email externe directement dans gmail. Et là c’est bonheur! La superbe interface gmail disponible pour mes autres comptes de messagerie, avec les tags, l’antispam et tout.Trop bon!

Le top c’est que ca me permet d’utiliser l application WP7 gmail pour tous mes mails. :) :) :)

Choix du framework (part 2)

Bon hier soir (la nuit dernière) j’ai un peu dérivé de mon objectif qui était de choisir le framework de développement.

Je voulais avoir une big picture de ce qui se fait actuellement sur les sites communautaires / réseaux sociaux / smartphone en terme d’API de communication. C’est sur qu’après 4 ans dans la finance, je n’avais pas trop suivi les grosses tendances de développement distribué (ca ne se fait plus le RMI, xml schema, le SOAP ou le XML/RPC ? :) Les grosses tendances semblent être REST / JSON / Atom / HttpRequest, OAuth, etc… Bon bref c’est pas très important tout ca mais ca m’a permis de voir ce qui se passer et modeler un peu mes besoins.

Retour aux frameworks de développement ce matin donc. Pour résumer pour l’instant j’ai Java et comme hébergement Google App Engine. J’ai passé pas mal d’années sur les framework web (struts, spring mvc, JSP, taglibs, freemarker + de la veille techno:  wicket, JSF, tapestry ) et persistance (jdbc / procedure, ibatis, hibernate, jdo) avec spring pour lier tout ca. Sur le dernier projet, j’ai mis en place une configuration basé sur les annotations (hibernate/spring) et c’était assez convaincant je dois dire (partie présentation avec swing).

Bon maintenant l’objectif est de pondre un truc super rapidement (prototype/crud) mais suffisamment sérieusement pour ne pas avoir à tout refaire quand l’application marchera (si jamais elle marche).

Il y a pas mal de nouvelles technos intéressantes dans le monde java (scala, clojure, groovy) sans parler de ce qui se fait niveau web2 (jQuery, GWT), JRebel (développement à chaud) et la tendance No SQL.

Fred qui bosse dans le monde des jeux vidéos online est un big fan de scala. Par contre ca me semble être un peu un univers a part entière et j’ai un peu peur de la learning curve pour mon projet. A priori, Scala est supporté sur GAE. Bon c’est tentant mais on essaiera ca plus tard.

Pour le no sql, c’est un passage obligé puisque la persistance sur GAE se fait à travers BigTable. Le seul choix est donc JDO ou JPA coté persistance. Pour ceux qui ne savent pas, BigTable est une base de donnée hiérarchique. C’est sans trop de regret que je quitte le SQL ayant passé trop de temps dans les procédures stockées ces dernières années. Et puis j’ai un autre projet en tête que je verrais bien sur une base de données orientées colonnes.

Coté spring, j’ai vu des solutions intéressantes pour mobile (voir post précédent). Mon soucis est plutôt le cout en temps de la mise en place (note: j’aurais pu utiliser spring roo mais voir note en bas du post). Et puis c’est un framework que je connais trop bien, j’ai envie de passer à autre chose notamment tester un framework a la ruby on rails (convention plutôt que configuration)  et des langages dynamiques.

Le candidat est donc tout choisi (la recherche est terminée on pourrait dire): Grails. Réponse Java à RoR avec du Groovy inside. Ca semble pas mal. Initialement conçu pour tourner avec hibernate (qui lui ne tourne que sur des bases SQL), une couche d’abstraction a été ajoutée pour faire du JDO/JPA (GORM). J’ai fait quelques recherche, ca semble pas trop mal tourner sur Google App Engine (GAE) et même sur Amazon Web Services (AWS). Et ca s’est faire du REST et du GWT. Bonheur

Bon on va partir la dessus, on verra bien. Ci dessous quelques guides qui pourront m’être utile.

Next step installation de l’environnement de développement.

En écrivant la liste de site, je me suis dit et pourquoi pas spring roo ? Grosso modo roo est un générateur d’application spring. Il y a tout ce qui faut pour faire une application dans le cloud. Les grosses différences étant java vs groovy et configuration vs convention. Je reste donc sur grails…

Je suis tombé également sur quelques articles parlant de problème de performance avec GAE sur java. A priori, cela semble du à l’instanciation de nouvelle jvm ou le démarrage (warmup d’une application). Google vient de sortir la version 1.4 de GAE qui semble offrir des solutions à ses problèmes de performances.

Server side / Framework choice (part 1)

Comme vu dans le post précédent, le choix coté serveur s’est fait sur java avec comme contrainte un hébergement « In the Cloud ».

Je dis contrainte car pour plein de bonnes raison, Google App Engine limite ce qu’on peut faire dans l’application. Amazon Web Services semble plus ouvert puisqu’il nous donne accès à une machine complète (IaaS vs Paas). Par contre leur solution me semble un peu plus heavy weigh et le cout d’entrée un peu plus élevé. Je me donne comme première contrainte le fait de pouvoir switcher ma plateforme. Cela me semble difficile a première vue car les 2 plateformes offrent beaucoup de solution « clé en main » apportant de grande valeur ajouté (SimpleDB et EC2 pour Amazon Web Services, Système de stockage spécifique – BigTable – pour Google).

De façon plus ou moins arbitraire, je choisi AppEngine de Google. Cela me semble un peu plus rapide de développer quelque chose sur cette plateforme, il y a une une intégration avec les comptes google et peut être des API pour les autres applications google (calendar, docs) qui pourrait m’intéresser.

Pour le développement maintenant que le choix, et donc de ses contraintes, est fait, que prendre? N’oublions pas la cible: les smartphones en plus des navigateurs classiques. A ce moment, je ne sais pas exactement quel est le standard de communication entre un smartphone et une application cloud ? REST? SOAP ? JSON ? HTTP? Atom?

Bon je fais un petit tour des centres de développement de chaque plateforme:

Je me dis que je prends le problème un peu à l’envers. Quel est le standard actuel pour les applications web (google calendar, twitter, facebook, foursquare, live.com) et forcément je verrais quelle API ciblée (coté serveur ou client)

Site API

Phone API

Framework