You are on page 1of 31

3:HIKONB=^UZ^Z]:?

a@l@p@a@a;
M 04319 - 150 - F: 5,95 E
Printed in EU - Imprim en UE - BELGIQUE 6,45
SUISSE 12 FS - LUXEMBOURG 6,45 - DOM Surf 6,90
Canada 8,95 $ CAN - TOM 940 XPF - MAROC 50 DH
NOUVELLE FORMULE
mensuel n150 - mars 2012
Matriel
La maison
100 % geek
et la variable
WAF
L G H B C B Z ! D G O U O G V G L O P P G H G D T
150
Dveloppeuse un dveloppeur comme un autre
Veille techno
WebKit, pire que IE 6 ?
Scurit
HTML 5, une passoire ?
Faire carrire, les nouvelles comptences, les salaires, quel avenir ?
Numro
Fier dtre
dveloppeur !
S
o
u
r
c
e

M
i
c
r
o
s
o
f
t

D
.
R
.
D

C
O
U
V
R
E
Z

L
E
N
U
M

R
O
s
o
m
m
a
i
r
e
numro 150 - mars 2012
Donnez votre avis sur ce numro : www.programmez.com/magazine_
RESSOURCES
Notre slection de livres ................................................22
Agenda ..............................................................................23
SAVOIR-FAIRE
Classes Coffeescript versus Classes Java..................47
BUZZWORD
HTML 5,
future passoire du web ? ..................3
ACTUS
En bref ............................................................................6
WebKit : pire que IE6 ? ..........10
Angie/ xbrain soft frappe trs fort !......................12
MATERIEL
Proteus et la matrise de la mtrique WAF..........14
VEILLETECHNO
Hadoop : pourquoi lutiliser ? ..................................16
Dcouvrir Hadoop sur Windows Azure..................17
12
Avril 2012 - n151, parution le 31 mars 2012
Un numro ne pas manquer !
f
HTML 5 de A Z
Dbuter avec HTML 5, la scurit,
la compatibilit, les outils
f
SQL Server 2012
f
Windows 8
f
Visual Studio 11
f
Choisir son outil de
modlisation UML
10
Fier dtre dv. ............................................................25
Grande Enqute : le dveloppeur aujourd'hui ..........................26
Quelles sont vos priorits
pour votre carrire ? ..................................................................32
Dveloppeuse : un dveloppeur comme un autre......34
Soumow, Carmen, Sarah, Julie, Lucie, Laika, Amira,
7 dveloppeuses dhorizons diffrents tmoignent ................35
Comment allons-nous dvelopper dici 5 10 ans ? ............44
DOSSIER
FIERDTRE
DVELOPPEUR!
Image Microsoft D.R.
Avec ce numro 150, et notre prochain
14
e
anniversaire, cest loccasion dun
rapide coup dil sur le pass.Le lancement de Programmez !
tait un dfi : informer sur le monde du dveloppement logiciel.
Le second dfi aujourdhui est de le faire au travers dun
magazine. Tant que vous continuez nous acheter chez votre
marchand de journaux ou vous abonner, vous justifiez notre
mission. Chaque exemplaire est souvent lu par plus de 4
personnes, au sein des quipes, ce qui dmontre le profond
impact de la revue et son utilit.
Mais bien entendu, la consommation de linformation est en
pleine mutation et Programmez ! doit continuer amliorer
ses dclinaisons digitales : web, formats numriques lisibles,
et versions mobiles et tablettes venir. Ce dfi des interfaces,
vous le connaissez au quotidien sur vos projets et ceux de vos
clients.
Au-del de la forme, nous nous devons de vous apporter le
contenu utile et concret, voire les services que vous attendez.
Le premier dentre eux est cette exigence dobjectivit. La
baseline initiale tait le magazine de tous les langages .
Depuis le dbut, nous avons veill vous informer sur toutes
les technologies. Nous continuerons le faire, et nourrir
ainsi les plus curieux dentre vous, ceux qui ne se contentent
pas de rabcher le mme code, et veulent dcouvrir du
nouveau.
Pas de diplme de dveloppeur !
Il y a sans doute plus de 300 000 dveloppeurs francophones.
Il nexiste pas en effet de statistique officielle. Ni de
profession clairement identifie ! Les recruteurs par
exemple recherchent des ingnieurs , ou (encore !) des
analystes-programmeurs. Et toujours pas un diplme qui
reconnaisse le mtier de dveloppeur. Bien sr, il y a des
diplmes d ingnieur , d experts en technologie logicielle ,
des certifications prives sur tel ou tel langage ou outil. Mais
le mtier en est-il vraiment un, demeurant non sanctionn
par une formation diplmante explicite, contrairement aux
coiffeurs, infirmires, moniteurs dauto-cole, mdecins etc.*
Cela confre au dveloppeur lavantage paradoxal de rester un
ternel autodidacte. Et conserve Programmez, pour les
nombreuses annes venir, la mission dtre un outil de veille,
dinformation, et de formation permanente.
# Jean Kaminsky
Voir la page de lOnisep
http://www.onisep.fr/Ressources/Univers-Metier/Metiers/
developpeur-euse-informatique
satisfaction.php
CASDUSAGE
Migrer du code Drupal 6 vers Drupal 7 ....................56
PRATIQUE
A la dcouverte
du langage R........................60
Mise en application des
nouveauts de Windows
Phone 7.5 ............................64
JEDBUTE
Premiers pas
avec jQuery ..........................69
GAMING
Crer des jeux Flash
2D
acclrs GPU
avec Starling ........................74
WEBMASTER
Play Framework :
enfin un renouveau pour
les applications Web
crites en Java..................78
BUGTRACK
Les bugs vicieux
du multithread ..................81
17
Abonnement : Programmez, 17, Chemin des Boulangers, 78926
Yvelines Cedex 9 - Tl. : 01 55 56 70 55 - abonnements.programmez
@groupe-gli.com - Fax : 01 55 56 70 91 - du lundi au jeudi de 9h30 12h30
et de 13h30 17h00, le vendredi de 9h00 12h00 et de 14h00
16h30. Tarifs abonnement (magazine seul) : 1 an - 11 numros France
mtropolitaine : 49 - Etudiant : 39 - CEE et Suisse : 55,82 -
Algrie, Maroc, Tunisie : 59,89 Canada : 68,36 - Tom : 83,65
- Dom : 66,82 - Autres pays : nous consulter. PDF : 30 (Monde
Entier) souscription exclusivement sur www.programmez.com
Editeur : Go-02 sarl, 21 rue de Fcamp 75012 Paris -
diff@programmez.com.
Rdaction : redaction@programmez.com
Directeur de la Rdaction : Jean Kaminsky. Rdacteur en
Chef : Franois Tonic - ftonic@programmez.com. Ont colla-
bor ce numro : F. Mazu, Y. Grandmontagne. Experts :
S. Amer, J. Delhomme, P. Charrire, S. Morin,
G. Bougenire, F. Nicollet, L. Descotte, C. Pichaud,
D. Vojtisek
Illustrations couverture : Microsoft D.R
Publicit : Rgie publicitaire, K-Now sarl.
Pour la publicit uniquement : Tl. : 01 41 77 16 03 -
diff@programmez.com. Dpt lgal : parution -
Commission paritaire : 0712K78366 ISSN : 1627-0908.
Imprimeur : S.A. Corelio Nevada Printing, 30 alle de la
recherche, 1070 Bruxelles Belgique.
Directeur de la publication : J-C Vaudecrane

d
i
t
o
Fiers dtre au
service des
dveloppeurs !
64
74
EXTRAIT DE PROgrammez ! < 4 > MARS 2012
L
diteur National Instruments organisait le
7 fvrier son vnement annuel au CNIT
de Paris La Dfense. La 15e dition franaise
de NIDays a attir plus de 1 100 visiteurs,
soit une affluence record.
Il faut dire que lvnement est un rendez-
vous incontournable du monde de la concep-
tion, du test et du contrle sur PC. National
Instrument est un leader incontest sur son
march et excelle animer son cosytme :
clients, distributeurs, mais aussi universits,
lyces.
Les 70 confrences, les travaux pratiques
sur LabView, le soft de lditeur et 72 stands
sarticulaient autour de nombreuses thma-
tiques : programmation graphique, acquisi-
tion de donnes, capteurs, instrumentation,
mesure RF, contrle/commande, conception
de systmes embarqus, enseignement,
recherche, services...
Le cosmonaute franais Patrick BAUDRY,
invit star de la confrence plnire, a parta-
g son exprience de pionnier de lEspace et
sa vision de linnovation.
> Coupes de robotique
Parmi les temps forts de ldition 2012, une
nouveaut, l a premi re di ti on de deux
coupes de robotique :
la premire rserve aux lves de lyces
techniques - avec le kit LEGO MINDSTORMS
NXT- remporte par lInstitut Saint-Louis
dArmentires
la seconde pour les tudiants de lenseigne-
ment suprieur (avec le Starter Kit Robo-
tics de National Instruments), remporte
par lISAT.
En savoir plus sur ces comptitions et voir les
vidos : http://franceom/nidays/participez/ concours-
robotique
g
Apple a dvoil mi-fvrier la
prochaine mise jour majeure de son
systme OS X : OS X 10.8 al i as
Mountain Lion. Cette version sera en
quelque sorte un aboutissement de la
OS X 10.7 Li on et d un nouveau
rapprochement entre OS X et iOS.
Certaines fonctions et applications du
systme mobile se retrouveront dans
OS X (notification, Notes, iMessage par
exempl e). Cette versi on proposera une
intgration plus fine des services en ligne
dApple : iCloud. Ceux-ci seront par dfaut
prsents, surtout, la synchronisation des
documents et applications sera largement
renforce. Dautre part, les applications
pourront di rectement accder aux
documents sur iCloud. Sur la partie API et
librairies, Apple retire X11 et Java (proposs
en tlchargement supplmentaire). X11 est
remplac par une librairie graphique plus
moderne : XQuartz. De nouvelles versions de
XCode sont disponibles pour commencer
travailler immdiatement dessus. OS X 10.8
est actuellement rserv aux dveloppeurs
rfrencs, la version finale sera disponible
courant de lt.
i
actu [ dveloppement ]
NIDays 2012 : plus de 1 100 visiteurs
g
C++ 11 et Visual Studio. Durant les Microsoft Techdays, nous avons crois
quelques membres de lquipe C++ / Visual Studio de lditeur. Une bta sera disponible
dans quelques semaines et apportera de nombreuses nouveauts et amliorations par rap-
port la version alpha actuelle. Surtout, quen est-il de C++ 11? Lquipe distingue les
nouveauts librairies et les nouveauts langages. Les nouveauts librairies seront suppor-
tes par le prochain Visual Studio. Par contre, les nouveauts langages, plus nombreuses,
seront implmentes au fur et mesure, pas de prcision sur la manire de rajouter ces
lments langages. Concernant lutilisation de C++ 11 sur Windows, les tests internes sont
probants et les deux fonctionnent bien ensemble
g
Google livre un navigateur
Chromium ( la base de Chrome)
compatible avec le langage Dart qui
se veut une alternative Javascript.
Son surnom est dartium. Il inclut une
machine virtuelle Dart. Par contre,
Google prvient qu il ne faut pas
lutiliser comme navigateur de travail.
Lusage de Dart se fait sans ajout de
code ni de composants. Dartium est
di sponi bl e pour Mac et Li nux, l a
version Windows sera disponible
prochainement.
Site : http://www.dartlang.org/dartium/
g
Oracle futur acteur majeur du
cloud Java et particulirement de la
couche plate-forme ? Lditeur veut
ltre assurment avec Oracle Public
Cloud et le Java Cloud Service, une
offre PaaS Java. Il sagit de proposer
un modl e de dvel oppement, une
pl ate- f orme de dpl oi ement et
dexcution Java EE 6. Le dveloppeur
disposera de toutes les API et librairies
JEE et du support des frameworks tiers
comme Spring, Hibernate. Les outils
tels que Maven et Ant seront eux aussi
suppor ts. Java Cl oud Ser vi ce
fonctionne sur des instances contenant
un serveur dapplications (WebLogic
Server 11g) pour pouvoir excuter une
appl i cati on Java. Pl usi eurs types
dinstances seront disponibles lors du
lancement officiel du service. Pour les
outi l s de dvel oppement, i l sera
possible dutiliser JDeveloper, Eclipse ou
Netbeans. Site : http://cloud.oracle.com
g
MySQL se met jour. Le SGBD
est maintenant disponible en version
7.2 pour ldition Cluster avec un taux
de di sponi bi l i t de 99,99 % ( di xi t
Oracle). Cette version mise aussi bien
sur l e SQL que l e NoSQL avec
Memcached. Oracle veut profiter des
deux mondes. D autre part, MySQL
Cluster 7.2 est certifi Oracle VM (partie
virtualisation). Loutil dadministration a
lui aussi t mis niveau.
EXTRAIT DE PROgrammez ! < 5 > MARS 2012
i
actu [ dveloppement ]
g
Mozilla commence parler, un peu,
de son proj et de systme mobi l e :
Boot2Gecko utilisant HTML 5. Il inclura un
jeu de nouvelles API web, un mode boot
pour les terminaux. Linterface est le projet
Gaia dont les sources sont disponibles sur
git. Gecko fera office de moteur dexcution
pour l es appl i cati ons. Gonk est l e bas
niveau du systme avec un noyau Linux.
Source interface :
https://github.com/andreasgal/gaia
Wiki B2G : https://wiki.mozilla.org/B2G
g
Adobe se prpare lancer
toute une srie de nouveaux outils
de dveloppement et de cration,
dont l outi l Muse pour crer
rapidement des sites web. La bta
6 a t publ i e l e 15 f vri er
derni er. Cette pr- versi on
fonctionne sur Mac et Windows.
Muse permet de crer trs
rapidement lenchanement des pages, le design, le tout en vitant de crer le code
derrire. Il apporte aussi un haut niveau de personnalisation et dobjets media.
Site : http://muse.adobe.com/betadownload.html?trackingid=JPSSN
g
Mozilla renforce les outils pour les
dveloppeurs dans Firefox :
- Avec Page Inspector, les dveloppeurs
peuvent examiner la structure et la disposi-
tion d'une page sans quitter Firefox. Cela
leur permet de naviguer rapidement entre
les lments de la page et de visualiser la
structure HTML de la page.
- Style Inspector simplifie galement la
manire dditer le style des sites Web : les
dveloppeurs peuvent maintenant accder
facilement aux proprits CSS et afficher
ou modifier les valeurs de leurs pages
depuis Firefox.
- Scratchpad utilise maintenant l'diteur de
code Orion d'Eclipse, et offre la coloration syn-
taxique ainsi que d'autres fonctions qui facili-
tent et simplifient l'criture de JavaScript.
Disponible pour les versions Windows, Mac
et Linux.
g
Jetbrains annonce la version 4 de
son outil de dveloppement, RubyMine.
L'outil bnficie d'amliorations sensibles de
performance, d'une toute nouvelle interface
graphi que, d' di teurs Cof f eeScri pt et
SCSS/LESS aml i ors ai nsi que de
nombreuses nouveauts pour faci l i ter
l'criture du code. RubyMine 4 prend en
charge le framework Rails jusqu' la version
3.2 et intgre Phusion Passenger en tant
que serveur pour l'excution/le dbogage.
On note encore l'amlioration des tests et
du dbogage avec pri se en charge de
Minitest 2.10 et de RSpec 2.8.
g
Les rumeurs les plus folles circulent
autour de Android 5.0. Le prochain
systme serait disponible ds lt prochain
selon Digitimes mais beaucoup doutent de
la ralit de cette sortie si proche de la v4
qui a toujours du mal tre dploye sur
les terminaux. En ralit nous ne savons
pas grand chose de la prochaine version
dAndroid qui a pour nom de code jelly
bean . La prochaine confrence I/O, en
mai, devrait nous clairer. Windows 8
aurait-il pouss Google agir plus vite que
prvu au ri sque de bouscul er un
cosystme qui est toujours en migration
vers la v4 ?
g
Oracle maintient le support de Java
6 SE jusquen novembre 2012. Jusqu
prsent, Oracle avait fix juillet mais sans
doute que la transition vers JDK 7 est plus
longue que prvu et il faut laisser le temps
aux entreprises de migrer, ce qui nest pas
forcment une priorit. Lditeur rappelle
ses rgles du support de la version SE :
3 ans aprs la disponibilit gnrale dune
version majeure, 1 an pour les mises jour
majeures.
g
H.264 va bientt laisser sa place
une nouvelle spcification du codec de
compression vido, H.265. Cette version
devrait permettre de rduire le poids des
vido de 50 % et sera prte pour la trs
haute dfinition. Son lancement nest pas
prvu avant dbut 2013, peut tre
g
Les dveloppeurs du framework dojo
prparent la disponibilit de la v1.8. Cette
version apporte de nombreuses nouveauts :
ref onte du composant E/S, nouveau
calendrier, tactile et HTML 5, meilleure
prise en charge des
termi naux mobi l es,
support amlior de
SVG et Canvas. Une
version majeure pour
le dveloppeur !
g
Xamari n annonce l a
nouvelle version de MonoTouch, la
v5.2. Loutil permet de gnrer
des applications iOS partir dun
code C#. Cette versi on est
importante par les nombreuses
amliorations et nouveauts (plus
de 300) : nouveau moteur de
garbage, profiling de mmoire,
API de dialogue, tests unitaires,
nouvelles librairies Cette version
est disponible immdiatement !
EXTRAIT DE PROgrammez ! < 6 > MARS 2012
Webkit est-il rellement la cause ? Pas sr !
P
remier constat, le problme nest pas
rellement nouveau. Il existe plusieurs
moteurs de rendu, citons gecko, webkit.
Microsoft nouvre pas le sien. Soyons hon-
nte, personne na forc la main Google,
Nokia, Google implmenter WebKit. Apple
ne force personne limplmenter. Le pro-
jet WebKit est un projet ouvert qui volue
constamment, charge aux diteurs dutili-
ser les versions rcentes, ou non. Le fait
que ce moteur soit omniprsent sur les ter-
minaux mobiles, cest moins vrai sur desk-
top, mme si Chrome a f or tement
progress, est aussi un peu le hasard du
march, les utilisateurs achetant aujour-
dhui des smartphones / tablettes Android
et iOS. Naurait-on pas dit la mme chose si
Windows Phone 7 stait impos ?
Oui il se pose un rel problme doptimisa-
tion pour les sites mobiles en ciblant web-
kit. Mais pour le dveloppeur, un diteur, la
question est de savoir sil veut ou non offrir
le confort aux utilisateurs mobiles qui utili-
seront, sans le savoir car ce nest pas le
problme de lutilisateur, un moteur webkit.
Si le site saffiche mal, linternaute ira sou-
vent ailleurs. Cest une ralit march (et
donc conomique) ne pas ngliger.
Oui, idalement, il faudrait arrter lusage
des prfixes CSS et du user-agent, bannir
lusage de proprits CSS exprimentales
pour un unique moteur. Ces proprits
exprimentales peuvent changer ou encore
il sagit de proprits non incluses dans la
spcification officielle. Oui il nest pas nor-
mal que des navi gateurs non- webki t
veuillent inclure le prfixe webkit pour trom-
per le site web ce qui serait, selon nous, un
vritable aveu de faiblesse de ces diteurs.
Que faire ? Il ny a aucune solution miracle.
Apple et Google peuvent tre responsables
pour le fait que les guidelines poussent
utiliser des fonctions non standard mais ils
nobligent personne intgrer webkit, ni
mme des lments propres la platefor-
me anime par webkit. On peut aussi poser
la question inverse, pourquoi un Mozilla na
pas su jusqu prsent offrir un moteur de
rendu aussi populaire que WebKit sur mobi-
le ? Nous ne pouvons pas blmer les dve-
loppeurs, mme sils vont sans doute au
plus simple. Et le W3C dans tout cela ? La
question est pertinente car il est cens dfi-
nir les spcifications et donc le standard.
Oui, un standard prend plusieurs annes
dfinir mais aujourdhui, le temps du W3C
nest pas celui de lindustrie, HTML 5 est un
autre exemple problmatique. La solution,
si solution il y a, est complexe. Il faudrait
que le W3C et lensemble des acteurs pro-
posent des alternatives, des solutions cr-
dibles et rapidement, pas dans un an ou
deux ans. # F.T.
i
actu [ dveloppement ]
Appel laction :
le web ouvert a besoin
de vous maintenant
WebKit, le moteur de rendu au cur de
Safari et de Chrome, i nstal l dans l es
iPhones, iPads et les priphriques Android,
est maintenant le navigateur ultra-dominant
dans le Web mobile et techniquement, le
Web mobile comporte de nombreux sites
ne-fonctionnant-quavec-WebKit... Du coup,
les autres navigateurs et leurs utilisateurs
nont nouveau que leurs yeux pour pleurer.
De nombreux sites dtectent lAgent Utilisa- pour rendre leurs sites compatibles avec
Mozilla, Microsoft ou Opra. Mais ils ne lont
jamais fait.
Laissez-moi tre trs clair : ce nest PAS une
situation hypothtique et je ne parle pas ici
de quelque chose qui pourrait arriver. Tous
les fabricants de navigateurs nous ont offi-
ciellement fait savoir que cela arrivera bien
plus rapidement quon ne pourrait le croire
parce quils nont, je cite, pas dautre
option . Clarifions un autre point : ce nest
PAS un manque dinnovation de la part de
teur des navigateurs et filtrent
les navigateurs non-WebKit.
Tout comme par le pass avec
IE 6, ce nest pas une question
dinnovation mais de monopole
du march par le matriel et
les logiciels fournis avec celui-
ci. Il y a cependant un aspect
du probl me que nous
navions pas lors de lre IE 6 :
ces sites Web sont galement
spcifiques WebKit parce
quils utilisent des proprits
CSS exprimentales exclusivement prfixes
par -webkit-* et sans utiliser leurs quiva-
lents Mozilla, Microsoft ou Opera. Ainsi,
mme sans aucune dtection du navigateur,
ces sites Web apparatront toujours casss
aux navigateurs ne reposant pas sur Web-
Kit
Dans beaucoup, voire dans la plupart des
cas, les proprits -webkit-* que ces sites
spcifiques utilisent ont des quivalents -
moz-*, -ms-* ou -o-*. Les crateurs de sites
Web nont besoin que de quelques minutes
WebKit : pire que IE6 ?
Avertissement : il sagit de la traduction dun post original de Daniel Glazman, co-responsable
du CSS Working Group au W3C. Traduction assure par lopenwebgroup
(http://openweb.eu.org/). Nous en reproduisons ici de larges extraits.
PROgrammez ! < 11 > MARS 2012
i
actu
ces fabricants de navigateurs,
dautant plus quils supportent
BIEN une proprit mais avec
leur propre prfixe, suivant
ainsi les rgles du groupe de
travail. Les prfixes construc-
teur nont pas chou. Ils ne
sont pas parfaits, mais ils pr-
servent du chaos les auteurs
de sites Web. Nous pouvons
certainement les amliorer
mais nous le pouvons unique-
ment si les prfixes construc-
teur restent des prf i xes
propres chaque construc-
teur.
Cette situation sest produite
dans le pass avec IE 6, quand
les navigateurs fonctionnaient
uniquement sur les ordina-
teurs de bureau, et il a fallu dix
longues annes pour en sortir.
Avec les milliards de naviga-
teurs mobiles daujourdhui, le
Web pourrait ne jamais sen
remettre.
Cela ne
doit pas
arriver
Je demande
toute la com-
munaut des
crateurs de sites Web dar-
rter de faire des sites unique-
ment pour WebKi t, en
particulier lorsquajouter le
support des autres naviga-
teurs se rsume cri re
quelques proprits CSS pr-
fixes supplmentaires.
Jappelle toute la communaut
des crateurs Web cesser
de recommander des sites
web qui ncessitent dutiliser
un seul type de navigateur,
alors quils pourraient tre
compatibles avec plusieurs.
Ne faites pas de lien vers eux,
ne les mentionnez que pour
dire la communaut quils ne
respectent pas le Web ouvert.
Ne nourrissez pas les trolls,
mettez-l es sur l i ste noi re,
quimporte lutilit du service
quils fournissent.
Jappelle toute la communaut
des crateurs Web mettre
jour leurs services en ligne
pour prendre en charge les
autres navigateurs si ceux-ci
offrent un niveau de support
CSS qui nexistait pas par le
pass.
Jappelle lensemble de la com-
munaut du Web, tous les
internautes, contacter les
auteurs de si tes et se
plaindre si leur site ne fonc-
tionne quavec un seul moteur
de rendu alors quil pourrait le
faire avec plusieurs. Aidez-
nous diffuser la bonne parole
auprs de ces sites Web pour
garantir que larchitecture du
Web demeure sre pour tous,
quelle demeure base sur des
standards Web consensuels
et ouverts. Parce que si des
diteurs de navigateurs impl-
mentent les prfixes dautres
navi gateurs, a ne peut
conduire qu un chaos de la
magnitude de celui de lpoque
dIE 6.
Je demande aussi aux di-
teurs de navigateurs qui sont
derrire WebKit, cest--dire
Apple et Google, de soumettre
aussi vi te que possi bl e au
groupe de travail CSS, toutes
leurs propositions techniques
pour les proprits CSS pro-
pritaires quils ont laiss utili-
ser par le monde entier sur
l es pri phri ques i OS et
Androi d, et qui nui sent au
Web ouvert.-webkit-text-size-
adjust est un exemple dune
telle proprit. Remarquez
que les reprsentants dApple
au CSS WG ont affirm quils
le feront, et je les en remer-
cie. Si ces proprits sont si
bien implmentes et si utiles
la navigation Web sur mobi-
le, elles deviennent de facto
des standards ; transformons-
les ds que possible en stan-
dards de jure au travers de la
standardisation du W3C.
Le Web ouvert ne doit pas
souffrir dune telle dcision.
EXTRAIT DE PROgrammez ! < 7 > MARS 2012
EXTRAIT DE PROgrammez ! < 8 > MARS 2012
L
assistant intelligent doit tre capable
dtre prsent partout quel que soit le
terminal, le systme. Il se doit dtre le
plus indpendant possible de la plateforme. Il
apprend de vous par les rseaux sociaux,
vos informations, vos dplacements, votre
annuaire, bref, toutes les donnes suscep-
tibles dtre analyses et interprtes par
Angie. Par exemple, vous tes amateur de
muse, Angie peut golocaliser votre posi-
tion et savoir si des muses sont proches de
vous ou non. Il peut tre une aide personnel-
le au quotidien pour grer les rendez-vous,
l es anni versai res, f ai re des l i stes de
cadeaux. Ou tout simplement, trouver une
station dessence au meilleur prix. Angie, au-
Angie : xbrain soft frappe trs fort !
La dmonstration en direct, avec une connectivit rseau alatoire, de la plateforme
Angie a t sans doute lannonce centrale des Microsoft TechDays 2012. Nous
parlons ici dune nouvelle gnration dassistants personnels intelligents dont
lorigine vient des agents
conversationnels. Angie
hrite des premires
rflexions autour des
agents et assistants
intelligents dont les
premiers prototypes
avaient t dvelopps
par Wygwam il y a 5 ans.
del du moteur technique, est un agrga-
teur de donnes, il faut alors pouvoir acc-
der aux bonnes donnes pour offrir les bons
services. Cest en quelque sorte une utilisa-
tion relle de lide de Big data.
Finalement, Siri dApple a lambition de pro-
i
actu [ dveloppement ]
Assistant personnel, assistant digital, ksako ?
Il sagit de services ddis au bien-tre et au gain de temps de lutilisateur. Ces
Assistants Personnels seront de plus en plus prsents dans nos vies. Ils agrgent des
donnes, sont disponibles sur toutes les interfaces, et vous pouvez leur parler en lan-
gage naturel. Quelques scnarii possibles :
Vie prive : Dans tous les instants de la vie quotidienne, votre Assistant Personnel
pourra vous prvenir de la mto, anticiper vos rendez-vous, raliser des tches. Plus
spcialis, Dealer de Zik vous offre la possibilit de ne plus jamais manquer les
concerts dartistes que vous aimez, ou cre pour vous des playlists en fonction de vos
gots.
Vie professionnelle : Votre Assistant Personnel pourra rserver une salle de runion,
prvoir vos retards, anticiper votre besoin de rserver un taxi
Maison Intelligente : Une maison que lon commande par la parole et le geste, qui peut
rechercher une baby-sitter disponible ou encore enregistrer automatiquement les mis-
sions TV dans vos prfrences, si elle dtecte que vous ntes pas la maison.
E-Commerce : pour rpondre lenjeu dune exprience de e-commerce personnalise
pour chaque internaute, le Smart Vendeur conseillera et assistera vos clients, il devien-
dra le super-vendeur pour tous.
poser un assistant personnel mme si celui-
ci reste limit iOS et si ces possibilits sont
encore trop limites pour tre utilises par-
tout (ce qui est frustrant au quotidien mais
on peut dj faire pas mal de choses).
> La plateforme Angie et
son architecture logicielle
Angie repose sur une architecture relative-
ment simple comme le montre le schma ci-
dessus.
Le cur de la plateforme est un serveur IAS
et les services digitaux, de l, les rsultats
passent par un moteur de reconnaissance
vocale et de synthse vocale. Lutilisateur
reoit le rsultat sur son terminal (smart-
phone, tablette, PC, TV, objet connect). La
requte (vocale) est faite depuis le terminal
et envoye au serveur IAS par le moteur
vocal. Finalement, lapplication Angie ne fait
rien hormis proposer une interface. Lintelli-
gence, les traitements se font sur les ser-
veurs.
Do limportance de la qualit du rseau
(wifi, tlphonique). Plus le rseau sera
mdiocre moins lutilisabilit sera bonne.
Ces technologies tant sensibles la qualit
rseau mme si les requtes vocales peu-
... Suite dans le magazine
EXTRAIT DE PROgrammez ! < 10 > MARS 2012
L
e rseau Proteus est compos de 6 ser-
veurs physiques, 2 serveurs virtuels, 1
Grid de compilation et 3 Media center. Ct
serveurs : 1 serveur de domaine pour grer
la scurit au niveau du rseau, cest gale-
ment lui qui gre lauthentification du lecteur
biomtrique qui scurise la porte du bureau.
1 serveur de stockage dune capacit de 8
To pour distribuer au niveau rseau tous les
types de medias. 1 serveur de sauvegarde
qui effectue une opration de sauvegarde
par image de tous les serveurs une fois par
semaine. 1 serveur SQL de trois instances
pour grer les environnements de produc-
tion, dhomologation et de code source pour
TFS. 1 serveur TFS avec une architecture
permettant de bnficier dun environne-
ment dhomologation et de production. Pour
effectuer la compilation ce serveur utilise le
Grid de compilation, et publie les diffrents
binaires sur les deux serveurs dhomologa-
tion et de production dont je vous ai parl un
peu plus haut.
Proteus & la matrise de la mtrique WAF
i
matriel [ dveloppement ]
Tout dabord, donnons une dfinition du WAF. Le WAF cest votre capacit
faire accepter votre moiti toutes les lubies du Geek que vous tes, sans pour
autant vous envoyer devant le juge du tribunal des affaires familiale pour une
procdure de divorce !
COMMENT A T
MONT
CE RSEAU ?
D
es serveurs Dell 1U ont t la
base de ce rseau. La principale
modification en termes de matriel
tenait dans la disparition des 8 ventila-
teurs dorigine afin de mettre lquipe-
ment dans un botier 4U et surtout
pour pouvoir brancher le tout autour
de ventilateurs Noctua. Bruit inexis-
tant et a cest 100% WAF ! Ct vo-
lution je les migre chacun leur tour
vers des Core I7.
L
orsque vous avez ce type dquipement
le vrai besoin est surtout de ne pas sem-
baller ct consommation lectrique. On va
donc allumer uniquement les serveurs dont
on a besoin quand on en a besoin. Ct
extinction des serveurs il ny a pas vraiment
de problme effectuer une extinction dis-
tance, sauf en cas de plantage de la machi-
ne. La par ti e al l umage reprsente
galement un problme de taille. Lutilisation
du WOL nest pas systmatiquement pos-
sible. La vraie solution, cest le Hard But-
ton , et oui, on na jamais rien fait de mieux
que le bouton manuel On / Off. Cest l que
le Lego Mindstorm entre en jeu. Un rail
de chaque ct. La brique NXT pose sur
une planche en bois accompagne dun petit
bras qui reoit un bouton poussoir et un
capteur de couleur. (Tout ceci en .Net bien
sr, si le code source vous intresse nhsi-
tez pas me solliciter). A partir de ce
moment l les serveurs bnficient dune
solution dallumage et dextinction manuelle.
PROTEUS QUEST CE QUE CEST ?
ALLUMAGE ET EXTINCTION DISTANCE
SANS LE WOL !
... Suite dans le magazine
EXTRAIT DE PROgrammez ! < 12 > MARS 2012
Hadoop possde trois sous-projets : Hadoop
Common, Hadoop Distributed File System et
Hadoop MapReduce. Le premier inclut les
outils communs aux projets Hadoop, le 2e
(HDFS) est le systme de fichier dHadoop
en mode distribu. Le 3e, le framework en
tant que tel.
Hadoop a besoin dun systme de fichiers
distribu pour permettre le stockage et lac-
cs aux donnes / applications. Il fonctionne
sur le matriel standard. HDFS se veut
haute tolrance de panne. Un des soucis du
traitement Big data est lirruption de pro-
blmes daccs, de corruptions du systme
de fichiers, etc. Le systme distribu permet
une grande souplesse dans le sens o
chaque machine va stocker un morceau des
donnes du systme de fichier. HDFS utilise
pour viter toute chute de traitement des
mcanismes de rcupration automatique.
HDFS repose sur une architecture matre /
esclave. Basiquement, un cluster Hadoop
est un NameNode, un serveur matre qui va
grer le namespace du systme de fichiers
et les accs aux fichiers. A cela sajoutent
des DataNodes, pour la partie donnes.
Bref, il ne faut pas croire que Hadoop ne
propose quun framework de dveloppement
pour le Big data. Non, il repose sur une
architecture logicielle cohrente et complexe
allant de la dfinition du cluster, en passant
par le systme de fichier et les API. Le dos-
sier de ce numro vous en expliquera cer-
tains aspects.
# F.T.
Site officiel : http://hadoop.apache.org
> Des cabinets pro-Big
data, mais le march ?
Dans les rapports publis aujourdhui, For-
rester indique que les entreprises devraient
commencer laborer maintenant, des
plans de scurit Big data, de manire
rduire les cots, les risques et les pro-
blmes de dploiement. Les entreprises
peuvent se prmunir contre la rvolution Big
data par divers moyens :
Placer des systmes de contrle au plus
prs des donnes : Si des attaquants
pntrent le primtre, ils disposeront
dun accs total et non-restreint aux don-
nes et grce Big data, elles seront
toutes stockes au mme endroit. En ins-
tallant des systmes de contrle le plus
prs possible de lendroit o sont stockes
les donnes, on peut crer une ligne de
dfense plus efficace.
Dvelopper les technologies existantes de
contrle et protection de Big data : Alors
que Big data grandit, les dtenteurs de
ces technologies vont rapidement mettre
jour leurs produits pour sarranger avec la
vaste varit de donnes non structures
inhrentes aux environnements Big data.
Demander aux services juridiques de clai-
rement dfinir une politique darchive et de
mise disposition des donnes : Alors que
les volumes de donnes augmentent dans
des proportions de type petabytes, prot-
ger de linformation sensible devient un tra-
vai l ti tanesque pour l a scuri t des
entreprises. La scurit des donnes
devient ainsi plus facile grer lorsquon
en rduit le volume.
Contrler laccs aux ressources Big data
et analyser le comportement de lutilisa-
teur : Toujours se souvenir que chaque
byte de donnes peut contenir de linforma-
tion relative aux personnes clients, colla-
borateurs, et partenaires. Ne pas oublier
Hadoop : pourquoi lutiliser ?
Forrester prsentait ainsi le Big data : une donne qui tombe entre des mains
malfaisantes peut avoir de graves consquences. La rcente histoire de Sony lui a
cout 170 millions de dollars et potentiellement plus de 1 milliard dopportunits
perdues. Les entreprises galement doivent
se soucier des myriades de rgles et de lois
sur la confidentialit qui, si elles sont
violes, peuvent engendrer de colossales
pertes la fois financires et dimage.
que les lois relatives
la confidentialit vous
obligent protger
l eurs donnes per-
sonnelles et que per-
sonne ne mrite de
voi r ses comptes
bancaires dtruits par un cyber-criminel.
Le cabinet Deloitte ne disait pas autre chose
dans son rapport sur les tendances 2012 :
En 2012, 90% des socits du Fortune
500 lanceront un grand chantier de gestion
des donnes, gnrant un chiffre d'affaires
de 1 1,5 milliard de $ - contre 100 mil-
lions en 2009 . Ces projets nen sont enco-
re qu leur tout dbut, souvent grs par
les dpartements IT, mais suscitent un int-
rt grandissant, car le besoin d'analyses
stratgiques en temps rel pse lourdement
sur les outils traditionnels de gestion des
donnes. Les socits Internet ont ouvert la
voie de lexploration des Big Data . Elles
seront suivies de prs par le secteur bancai-
re et financier, public, la grande distribution,
les loisirs et les mdias.
> Du traitement
massivement distribu
Auj ourd hui , Hadoop ( de l a f ondati on
Apache) est le socle technique par exemple
du Big data. Il se prsente sous la forme
dun framework open source pour la disponi-
bilit, la monte en charge et le traitement
distribu. Le framework fournit les mca-
nismes pour traiter sur du massivement dis-
tribu (typiquement un cluster, en mode
cloud computing) de grands volumes de don-
nes. Le tout est accessible via un modle
de dveloppement. Une de ses forces est
dtre capable de monter en charge sur un
ou plusieurs milliers de machines. Hadoop
sest beaucoup inspir des technologies
telles que MapReduce, BigTable.
i
veille techno [ dveloppement ]
EXTRAIT DE PROgrammez ! < 13 > MARS 2012
i
veille techno
M
icrosoft, qui nen est pas ses dbuts en matire de Big-
Data , croit en Hadoop. Sil fallait le dmontrer, nous parle-
rions de ce que lon peut qualifier de dommage collatral de
la nouvelle stratgie de Microsoft, jai nomm Linq To HPC (aka Dryad
Linq). Cette technologie ambitieuse, alternative efficace au modle
MapReduce, et prouve en interne chez Microsoft sur des services
en production, a t abandonne dans la foule. Reste un survivant
sur le crneau du MapReduce chez Microsoft, cest le projet Daytona
qui sera abord la fin de cet article. Il y a fort parier que Micro-
soft, qui devrait drainer un ensemble de projets et dutilisateurs
consquents, mettra les moyens pour tendre lcosystme Hadoop
et faire progresser la solution, notamment, peut-on lesprer, grce
au savoir-faire des quipes lorigine des avances sur Linq To HPC.
> Big Data en quelques mots
Hadoop sur Azure est donc pour les entreprises une nouvelle option pour
lexcution des calculs data intensive sur le Cloud, principalement aux
cts de loffre Amazon Web Services dAmazon avec AWS Elastic
MapReduce. Pour ce type de calculs, ce que nous apporte le mode Plat-
form as a Service tel que propos par Windows Azure, cest un accs
simple et moindre cot aux technologies BigData qui requirent des
clusters performants, rsilients et localiss , sous forme de distribu-
tions prtes lemploi. Les infrastructures ncessaires aux calculs data
intensive sont en effet trs particulires car ne loublions pas, lart du
BigData est de penser conomie maximale des entres/sorties (accs
au systme de fichiers, rseau). Rappelons au passage la formule de cir-
constance : on pousse les calculs vers les donnes et non linverse !
Ainsi, lhbergement sur Windows Azure peut attirer les entreprises
ayant fait le choix des technologies Microsoft comme celles y trouvant
un modle conomique plus adapt leur mode de consommation :
on ne paye que pour les ressources dont on a rellement besoin. Pour
dautres qui souhaitent rester prs de leurs donnes, loption Cloud
Azure priv propose par Microsoft peut tre aussi un argument.
Mettons de ct les aspects stratgiques et conomiques et intres-
sons-nous aux particularits techniques, selon ces trois points :
Hadoop sur Azure, qua-t-on disposition ?
Ce que nous apporte lcosystme Microsoft
Intgration avec les services Azure
Dcouvrir Hadoop sur Windows Azure
Microsoft adopte Hadoop sur Windows Azure, sa plateforme de Cloud Computing ;
la nouvelle, tombe officiellement en Novembre dernier, illustre la volont de Microsoft
douvrir sa plateforme au plus grand nombre et raffirme au passage celle de
sengager dans le support et le dveloppement de technologies faisant consensus
dans lindustrie du logiciel. Hadoop sur Azure, conu en partenariat avec la socit
Hortonsoft, acteur de rfrence dans le
monde Hadoop, sannonce comme tant
le fer de lance de la stratgie BigData
de Microsoft. Le fruit de cette alliance
devrait tre du gagnant-gagnant pour
Hadoop, Microsoft et leurs communauts
respectives.
> Hadoop sur Azure,
qua-t-on disposition ?
Jetons tout dabord un coup dil Isotope, la distribution Hadoop
conue pour Windows Azure. Rappelons avant tout une chose pour
lever toute ambigut : la version dHadoop utilise sur Azure na pas
t rcrite, elle reste le produit crit en Java dont il existe une ver-
sion pour Windows. Attention galement, la version disponible ce
jour est seulement une preview, sur invitation.
Hormis le noyau, cest--dire le moteur MapReduce et le systme de
fichiers distribu HDFS, nous trouvons :
Hive, qui est un systme comprenant une infrastructure dentrept de
donnes et un langage dinterrogation ressemblant SQL, HiveQL.
Pig, qui est un framework de calculs parallles, associ Pig Latin,
langage orient dataflow (on crit des instructions composables
qui expriment un enchanement de transformations de donnes).
Celui-ci est accompagn dun shell qui sappelle Grunt.
De faon assez classique, on retrouve galement : Zookeeper, coor-
dinateur du systme distribu et Vaidya qui permet danalyser les
performances des jobs. Les fameux frameworks Mahout, Lucene et
Pegasus, sont galement mentionns comme briques de lcosyst-
me cible.
Ce qui est plus nouveau dans cette distribution, cest un framework
Fig.1
... Suite dans le magazine
EXTRAIT DE PROgrammez ! < 14 > MARS 2012
E
n 2011 I nri a a mi s en
place le concours Boost
your code, qui consiste en un
appel projets de dveloppe-
ment de logiciel libre. Ouvert
aux tudiants et aux lves
ingnieurs en dernire anne
de master ou dcole ding-
nieur, ce concours fait inter-
veni r une premi re
prslection de 3 6 fina-
l i stes sur dossi ers (l eur
nombre varie selon la qualit
des projets soumis). Les
finalistes viennent prsenter
leur projet devant un jury
constitu de professionnels
et prsi d par Roberto Di
Cosmo. Le laurat dsign par
le Jury se voit offrir un contrat
dingnieur jeune diplm dun
an au sein dInria pour dvelop-
per son propre projet. Tous les
finalistes sont rcompenss,
en 2011 chacun dentre eux a
reu une tabl ette sous
Android. Le laurat de ldition
2011 sappelle Gabriel Cardo-
so, il a propos le projet OAW
(Open Audio Workstation), une
station de travail audio tour-
ne vers la cration musicale
collaborative. Cette platefor-
me offrira la possibilit de par-
ticiper un projet musical en
ajoutant des pistes audio, en
les organisant et en y appor-
tant des modi fi cati ons, de
faire des commentaires et des
suggestions, en un mot de
contribuer un projet de cra-
tion musicale collaboratif. Au
cours de sa mission Gabriel
crera une communaut desti-
ne passer le relais pour
prenniser le projet. En 2012
loccasion sera donne un
autre tudiant de sinvestir
fond dans le projet personnel
dont il rve.
Ce concours est un vol et
important dans les plans dem-
bauche de lINRIA. Linstitut
propose chaque anne
plusieurs centaines de postes
destins des diplms de
niveau bac + 5 en informa-
tique, en mathmatiques appli-
ques, en tlcommunications
et/ou en lectronique. Le dis-
positif
Ingnieurs Jeunes Diplms
(IJD) est destin aux tudiants
qui veulent approfondir leurs
connaissances dans un envi-
ronnement de recherche via
un premier emploi. Tout au
long des contrats de deux ans
qui sont proposs, chaque
ingnieur dbutant bnficie
dun encadrement renforc,
de formations et il est intgr
au sein dun service de dve-
loppement et dexprimenta-
tion constitu dingnieurs de
recherche chevronns.
Ces empl oi s permettent
d'acqurir une premire exp-
rience professionnelle enri-
chissante en dveloppement
logiciel, en sciences informa-
tiques et mathmatiques appli-
ques. Inria propose chaque
anne une cinquantaine de
postes I JD.
Merci Patrick
Gui l l ard pour
l es i nf orma-
tions.
mars
Une journe sur le dveloppement Windows 8
et Visual Studio 11 !
L
e 29 mars prochain, Microsoft
France organise une grande jour-
ne axe sur le dveloppement autour
de Windows 8 (la bta publique sera disponible cette date) et de
Visual Studio 11, une parfaite occasion de dcouvrir le nouveau modle
de dveloppement du prochain Windows, lensemble des nouveaux
outils Visual Studio 11, environnement de rfrence pour Win8. A par-
tir de 8h30. Un lab sera propos (attention : amenez votre matos) pour
parfaire ses connaissances.
Si te : https://msevents.mi crosof t.com/CUI /EventDetai l .aspx?EventI D=
1032505397&culture=fr-FR
avril
Confrence mondiale WWW2012 Lyon
A
ttention, vnement majeur Lyon du 16 au 20 avril prochain. Une
des pl us grandes confrences i nformati que au monde, l a
WWW2012 aura lieu au palais des congrs de Lyon. Le thme princi-
pal en sera : le web et la socit, ou comment le web transforme, modi-
fie, agit sur la socit, la vie humaine. Mais, ce sera aussi loccasion de
voir et dentendre ltat de lart en 2012 du web et de toute la
recherche ralise autour. 108 papiers ont t retenus par le comit
scientifique international, sur plus de 900 propositions. Tous les
domaines seront abords : recherche fondamentale, industrie, socit,
dveloppement, rseaux, standards et protocoles, etc. Plus de 900
intervenants se succderont. Lorganisation (environ 60 personnes
travers le monde) attend entre 2000 et 3000 visiteurs. Lyon a t
choisie en 2009, aprs une phase de slection, pour son dynamisme et
sa volont de dmontrer sa capacit mobiliser le monde scientifique,
avec lensemble des partenaires (rgion, agglomration, industriels,
transports, etc.). Il est noter que lEurope sera bien reprsente avec
un tiers des communications. La confrence est payante.
Site officiel : http://www2012.wwwconference.org/
user group du mois
PostgreSQLFr :
tout savoir sur PostgreSQL
La communaut franaise de PostgreSQL est bien reprsente
par PostgreSQLFr. Lassociation organise chaque anne des v-
nements autour de PostgreSQL (confrences, runions diverses)
mais est aussi un vecteur important dinformations et de docu-
mentations pour la base de donnes, les outils, lensemble de la
communaut. Pour 2012, lassociation prvoit une journe Post-
greSQL qui aura lieu Lyon le 7 juin prochain. Lorganisation esp-
re une centaine de personnes. Lappel aux confrences sera lanc
courant fvrier. La documentation est une
part importante de lactivit de la commu-
naut. Un livre blanc est actuellement en
prparation ainsi que diverses documenta-
tions (notamment techniques). Mais lasso-
ci ati on propose aussi un portai l trs
complet : forum utilisateur, section dve-
loppeur, des nouvelles chaque semaine du
SGBD et des outils. Bref, une mine dor
pour tous les utilisateurs !
Site officiel : http://www.postgresql.fr/
i
ressources
Concours
Boost your Code 2012 :
INRIA mne le concours !
EXTRAIT DE PROgrammez ! < 15 > MARS 2012
i
ressources
f
MARS
Le 14 mars 2012, Paris 2e, La Cantine 151
rue Montmartre, Passage des Panoramas.
Open du Web : le match des mtiers du web,
Ouvert tous les geeks, nerds et nolife !
http://www.open-du-web.fr/
Du 20 au 21 mars 2012, La Maison
Internationale, 17 boulevard Jourdan, 75014
Paris. Congrs Big Data Paris 2012
http://www.bigdataparis.com
Le 22 mars, Epitech Lille 5-9 rue de Palais
Rihour 59000 Lille. Salon emploi informa-
tique LesJeudis.com.
www.lesjeudis.com
Agenda
Jrme Molire,
OSGI
Eyrolles, 32
Le dveloppeur Java qui souhaite s'affran-
chir des limitations des ClassLoader en envi-
ronnement JEE, prveni r l es phases
d'intgration longues et risques, et satisfai-
re les contraintes de disponibilit de son
application, trouvera des rponses ses
proccupations dans la faon dont OSGi sp-
cifie des services modulaires. L'architecture
OSGi s'est dj impose dans de nombreux
projets, tels que l'environnement de dvelop-
pement Eclipse Equinox, les serveurs d'appli-
cations GlassFish 3, JOnAS 5 ou JBoss 5...
Collectif,
jQuery
Pearson, 37
Cette nouvelle dition couvre dsormais la
version 1.6. Cet ouvrage prsente les bases
de jQuery pour ajouter interactions et anima-
tions aux pages web. A travers de nombreux
exemples rels, ce livre apprend tendre la
bibliothque jQuery l'aide de ses propres
plug-in. Une excellente introduction.
Collectif,
Ingnierie dirige
par les modles
Editions Ellipses
L'Ingnierie Dirige par les Modles (IDM)
s'inscrit dans l'volution des techniques pour
le dveloppement de systmes informa-
tiques afin d'en matriser leur complexit en
se concentrant sur une proccupation plus
abstraite que la programmation classique.
En s'appuyant sur des approches gnra-
tives, il s'agit d'engendrer tout ou partie
d'une application partir de modles. Un
modle est une abstraction, une simplifica-
tion d'un systme qui est ncessaire et suffi-
sante pour comprendre un aspect
particulier du systme modlis et rpondre
aux questions que soulve cet aspect du sys-
tme. Un systme peut tre dcrit par diff-
rents modles lis les uns aux autres, et
exprim chacun l'aide d'un langage de
modlisation ddi (Domain Specific Mode-
ling Languages - DSML). Le principe est d'uti-
liser autant de langages de modlisation
diffrents que les aspects chronologiques ou
technologiques du dveloppement du syst-
me le ncessitent. Cet ouvrage expose trs
bien ces concepts. Ecrit par des chercheurs
de lINRIA.
J-P Gourret,
Programmation systme
ditions ENI, 54
Comment fonctionnent les entrailles dun
systme ? Quel est le modle de dveloppe-
ment ? Lauteur prend lexemple de Linux
pour nous expliquer tout cela avec une
dmarche qui se veut progressive, du moins
pour les premiers chapitres. Puis nous
entrons dans le cur du sujet : multithrea-
ding, virtualisation, programmation en clus-
ter, appels systme en C, etc. Une belle
porte dentre pour apprendre rellement le
systme dexploitation.
Notre slection de livres
f
AVRIL
Le 3 avril, Espace CAP15 1-13 Quai
Grenelle 75015 Paris, Journe Franaise des
Tests Logiciels2012. http://www.jftl.org
Du 04 avril au 06 avril 2012, Bziers, Web-5
Confrence : JavaScript, Html5, Dojo, WebGL,
Mobile, performance. la premire confrence
Web-5
http://www.web-5.org
f
ETRANGER
Du 26 au 29 mars, USA, Reston, Virginie,
EclipseCon
http://www.eclipsecon.org/2012/
13 avril 2012, U.S.A. Hyatt Regency de Santa
Clara, Californie SkySQL : une journe de for-
mations gratuites autour de MySQL.
http://www.skysql.com/events/mysql-solutions-day
EXTRAIT DE PROgrammez ! < 16 > MARS 2012
i
dossier[fier dtre dveloppeur ]
Fier dtre d
D
epuis le premier numro de Pro-
grammez ! nous avons lhabitude
de dresser un tat de lart du
dveloppeur tous les 50 numros. Le
n150 ne droge donc pas la tradi-
tion . Nous nous sommes pos trois
questions :
1
quoi ressemble le dveloppeur en
2012 ? Quel mtier fait-il exacte-
ment ? Comment voluent le mtier,
le salaire, les conditions de travail ?
2
Sans tre sexiste, le dveloppement
reste un environnement trs mas-
culin. Il ny a qu voir la proportion
de femmes dans les confrences
techniques, dans les coles dinfor-
matique. Et pourtant, la dvelop-
peuse existe ! Nous lavons rencon-
tre ou plutt, nous les avons ren-
contres ! Elles nous parlent de leur
exprience, du job de dveloppeur
au quotidien, voire, de lincompr-
hension de leur entourage !
3
Et demain, comment dveloppe-
rons-nous ? Pour quel type de sys-
tme ? Des chercheurs de lINRIA
parlent de ce futur, pas si loign
que cela.
Vous constaterez quil est encore mal vu
dtre dveloppeur toute sa vie. Cest un
job peu valorisant. Il faut tre chef de
projet, architecte. Ce qui est une aber-
ration. La France reste toujours en
retard sur dautres pays comme lAngle-
terre ou les Etats-Unis o tre dvelop-
peur nest pas une tare, et mme le
contraire
Pourtant avec la multiplication des tech-
nologies, la complexit croissante des
systmes et des applications, le dve-
loppeur-expert est indispensable et
incontournable. Mais condition de ne
pas le considrer comme un simple ex-
cutant sans cerveau. La situation risque
de perdurer. La crise, le fragile quilibre
des budgets IT ne vont pas aider le sec-
teur informatique. Oui il y a des recrute-
ments, parfois plusieurs centaines,
dans les SSII mais cela ne doit pas faire
oublier les difficults des jeunes dipl-
ms et le chmage qui svit dans notre
secteur.
Autre constat, sans appel, de notre
monde informatique, le peu de femmes
dans les mtiers IT et surtout dans le
dveloppement, tout ce qui est au hard-
core technique. Certes, nous les croi-
sons ici ou l dans les SSII, les projets,
les confrences mais 90 % restent des
mecs. La technique est-elle toujours un
domaine vit par les filles ? Un chiffre
rsume parfaitement la situation : 5 %
des premires annes de la promo
2016 de lEpitech sont des filles, soit
environ une cinquantaine sur le millier
dtudiants ! Plusieurs dveloppeuses
tmoignent et apportent un clairage
personnel sur le monde du dveloppe-
ment.
Bonne dcouverte
# Franois Tonic
EXTRAIT DE PROgrammez ! < 17 > MARS 2012
A
vant dentamer le dossier dvelop-
peur 2012 , nous voulions mettre
en avant lassociation Fier dtre
dveloppeur lance loccasion des Tech-
Days. Cette initiative est indpendante de
tout diteur.
> Arrtons de massacrer
le mtier de dv !
Nous soutenons hardiment cette initiative
pour que le dveloppeur trouve enfin sa juste
place dans le monde informatique franais. Il
faut en finir avec limage du dveloppeur
pisseur de code , ou simple excutant,
limite analphabte ! Non, non et non. Le
dveloppeur est une valeur ajoute lentre-
prise, la SSII. Car sans dveloppeur pas
dapplications ! Arrtons de massacrer les
mtiers du dveloppement. Il faut que les
entreprises le comprennent enfin ! Moi-
mme, ancien dveloppeur testeur, je suis
rvolt devant le manque de considration
envers les mtiers de dv, et les filires nai-
dent pas vouloir faire carrire. Sois chef de
projet ou architecte, mais surtout pas dve-
loppeur ! Rvoltant !
> une vraie valeur ajoute
Eric Mittelette (responsable de lquipe relation
technique avec les dveloppeurs, Microsoft
France), un des co-fondateurs de lassociation,
prsente ainsi Fier dtre dv : Lobjectif
est simple : Valoriser le mtier de dvelop-
peur, se mobiliser pour que ce mtier retrou-
ve ses l ettres de nobl esse en France.
Contrairement pas mal dautres pays o
lon peut faire sa carrire en tant que dve-
loppeur, on constate trop souvent en France
que continuer dvelopper au del de 35
ans est suspect et souvent dvaloris. Si
i
dossier
Il est bien plus dur
de trouver dexcellents
dveloppeurs (que des
chefs de projets)
(Daniel Cohen-Zardi, co-fondateur de
lassociation Fier dtre dveloppeur)
Jean Ferr
(Directeur de la division plateforme et cosystme Microsoft France)
Il faut donc chrir les dveloppeurs et
les associer la stratgie.
Limportance stratgique des dveloppeurs est rappele par Venkatesh Rao de Forbes
dans son excellent article : l'avnement de la Dveloppeur Economie .
En France, avec l'INRIA, Silicon Sentier, les grandes Ecoles et Universits, les cham-
pions nationaux tels Dassault Systmes, CEGID,... l'AFDEL et Syntech Numrique, et
bien dautres , la filire est active. Il ne manque plus que tous les dirigeants intgrent
cette nouvelle donne : les russites des Larry Page, Serguey Brin, Marc Zuckerberg,
etc. ne sont pas des hasards : dveloppeur, cest le nouvel eldorado. L'informatique
n'est pas une fonction support, c'est la moelle pinire de toute entreprise. Il faut donc
chrir les dveloppeurs et les associer la stratgie. a tombe bien, parce qu'en plus
ils sont sympas et concrets.
Dans cet esprit je me rjouis de la naissance de l'association Fier d'tre dveloppeur .
cest en forgeant quon devient forgeron, en
codant ne devient-on pas codeur . Ce
serait bien le seul artisanat (entre art et fait
main) o lon se passerait de lexprience
acquise au fil des lignes de code et projets.
Oui, dvelopper ncessite de lexprience, du
doigt et de la passion. Qualit logicielle,
prouesse technologique et innovation ne se
feront pas sans dveloppeurs heureux pa-
nouis et passionns par leur mtier.
Les ambitions sont grandes pour lassociation :
1 Promouvoir le mtier de dveloppeur de
logiciels,
2 Expliquer la valeur de ce mtier alliant
rigueur scientifique et force de crativit,
3 Communiquer la noblesse du choix de
faire carrire en tant que dveloppeur,
4 Valoriser limpact de lexprience sur
lquation conomique des dveloppe-
ments logiciels,
5 Encourager le respect mutuel entre les
dveloppeurs indpendamment des pla-
tesformes et technologies utilises.
Soutenons, soutenez cette belle initiative !
Esprons que Fier dtre dv. connatra
un beau succs !
Site web : http://fierdetredeveloppeur.org/
# Franois Tonic
veloppeur
Lors des derniers Microsoft TechDays, la premire session
plnire, le mot dordre a t : dveloppeur, dveloppeur
et dveloppeur. Enfin, une plnire o le dveloppeur
est la vedette du dbut la fin ! Cest sr que du
hardcode ds 9h30 a pique un peu les yeux, mais cest
tellement bon ! Alors oui, soyez fier dtre dveloppeur !

Illustration Microsoft (D.R), utilise notamment


lors de la plnire des TechDays 2012
EXTRAIT DE PROgrammez ! < 18 > MARS 2012
Enqute : le dveloppeur aujourd'hui
Le monde du dveloppement affiche des particularits typiquement franaises,
comme le rle des SSII dans les pratiques du mtier ou le statut du 'chef', mais reste
un riche filon d'emplois. Notre dossier vous invite le (re)dcouvrir et vous propose
des pistes explorer, de l'historique (Cobol) l'innovation (industrie), en passant par
les profils, les salaires, les volutions, et surtout le plaisir de dvelopper. Devenir
dveloppeur et/ou se spcialiser pour se projeter dans une filire d'avenir.
L
e mtier de dveloppeur est-il mort ?
La question, laquelle nous allons
rpondre ici, n'aurait mme pas mrit
d'tre pose si un certain malaise ne flottait
au dessus de la profession. Les causes en
sont multiples, mais nous en retiendrons
trois dans l'immdiat : l'image du dvelop-
peur 'nolife' tout d'abord, qui colle la peau
du mtier, alors que celui-ci se tourne vers la
satisfaction de besoins autrement impor-
tants voire vitaux pour l'entreprise, la satis-
faction de ses clients internes et externes.
L'ambition des jeunes candidats, ensuite, qui
avant mme de faire leurs preuves cher-
chent accder des postes d'encadre-
ment (chef de projet). C'est en particulier le
rle des SSII qui est point du doigt, qui
cherchent sduire ds les cursus de for-
mation, jouent la surenchre pour attirer les
candidats, mais imposent un rythme de mis-
sions source d'un turn-over mal matris.
L'volution du mtier et de ses outils, enfin,
qui impose de remettre en permanence son
mtier sur l'ouvrage, alors qu'il y a une place
riche qui s'ouvre aux vrais spcialistes la
comptence forte.
Il y a pourtant un ct deus ex machina dans
ce mtier dont la mission est de faire fonc-
tionner les systmes. C'est un bonheur,
c'est ce qu'on aime dans le mtier de dve-
loppeur , nous confirme Olivier Boiteux. Il y
a dans l'criture et le test d'un programme
un cot artistique, interprtation, compr-
hension, mise en musique, mme en infor-
matique de gestion. C'est intemporel ! . Et
en effet, au cours de notre enqute, nous
avons rencontr des dveloppeurs heureux,
fiers de nous parler de leurs crations, de
leur engagement dans la stratgie de l'entre-
prise qui les emploie, d'voquer leurs comp-
tences et leurs parcours. A les entendre,
dveloppeur est un mtier 'super cool', o
l'on peut se faire plaisir en programmant, et
nous, dcouvrir leur forte personnalit
dans l'exercice d'un mtier qui reste un arti-
sanat dans ses fonctionnalits, mme s'il est
loin d'en rcolter l'image. C'est et a reste-
ra un artisanat et un compagnonnage ,
enchane Olivier Boiteux. On peut rver
d' automati ser l a gnrati on de pro-
grammes, mais la mise en musique restera
toujours une forme d'artisanat, avec un
savoir-faire qui se communique.
> Le profil type :
savoir-faire et savoir-tre
Le dveloppeur peut venir d'horizons divers.
Il peut tout d'abord possder une compten-
ce passionnelle, s'tre form chez lui en par-
ticulier sur les langages open source, les
plus accessibles (PHP, HTML, Java...), avoir
'bricol dans son garage'. La dmonstration
de ralisations personnelles est gnrale-
ment trs apprcie dans le processus de
recrutement, car la validation des acquis
n'est pas toujours vidente et l'valuation
des comptences se rvle dlicate. Il peut
galement s'tre form dans l'entreprise.
C'est souvent le cas des dveloppeurs dans
i
dossier[fier dtredveloppeur]
NOS TMOINS :
Olivier Boiteux, Chef de Produit Cobos chez Metrixware
Pierre Cauchois, Relations Techniques Dveloppeurs Mobilit et Embarqu Microsoft
Bruno Fadda, Associate Director du cabinet de recrutement Robert Half
Yann Fattah, Directeur excutif d'Osiatis Applications et Technologies Services
Jean Ferr, Directeur de la division Dveloppeurs, Plateforme et Ecosystme (DPE) de Microsoft France
Eric Mittelette, Responsable des relations techniques avec les dveloppeurs Microsoft, membre du Syntec
Les programmeurs sont l'quivalent des
moines du Moyen-Age qui crivaient la Bible.
Ils sont les moines du 20
e
sicle.
Ce sont eux qui crivent les saintes critures,
les programmes qui dclinent le
fonctionnement du monde !
Olivier Boiteux, Chef de Produit Cobos chez Metrixware

... Suite dans le magazine


EXTRAIT DE PROgrammez ! < 19 > MARS 2012
C
ertains mtiers restent lcart des femmes, pas
forcment cause de la pnibilit du travail
mais plutt par prjug ou par manque
dinformation et de volont daider les femmes sauter
le pas de la technique. Linformatique, et plus
spcialement le dveloppement, reste (trs) peu
fminis.
Pourquoi ? Cest une question que nous nous posons
depuis 14 ans Programmez !, car il faut avouer que
depuis notre premier dossier sur les femmes
dveloppeurs , rien na rellement chang. Dans les
coles dinformatique, le taux de femmes oscille entre 5
et 10 % selon les formations, un chiffre assez stable
ces dernires annes. En France, le mtier
informatique reste mal promotionn auprs des
tudiantes, lycennes. La technique en gnral est peu
axe sur les femmes. Mais visiblement cela ne se limite
pas la France. Natasha Huguet-Millot (du site
Curioos) nous a prcis qu Montral, elle tait la
seule femme de son cursus et de son IUT.
La famille, les amis peuvent jouer un rle dans la
dcision de poursuivre des tudes techniques en
informatique. Mais finalement, notre enqute ne met
pas spcialement en avant lobstacle entourage, mme
sil peut jouer un rle. Pour Natasha, le fait quau
mme moment, son pre tait en train de monter son
site web, la immdiatement motive. Il faut dire que
son premier code basic, elle la crit 10 ans.
Natasha nous prcise quelle na jamais voulu tre
dveloppeur pour y faire carrire, elle avoue avoir trs
peu cod depuis 6 mois, pour soccuper de la direction
et la promotion du site, mme si lappel du code nest
jamais loin. Ce qui me plat cest de faire quelque
chose rapidement, davoir un rsultat immdiat. Je nai
pas la patience pour travailler deux mois avant de voir
quelque chose. L en trois bouts de codes, on a dj un
aperu senthousiasme Natasha.
Comme vous le verrez dans notre enqute, la
dveloppeuse a autant envie de bien faire et de savoir
que le dveloppeur. Alors lancez-vous !
Nayez pas peur !
i
dossier[fier dtredveloppeur]
g
e
e
k
g
i
r
l
Natasha
Huguet-Millot
Dveloppeuse :
un dveloppeur comme un autre
7 tm
oignages
de passionnes
... Suite dans le magazine
EXTRAIT DE PROgrammez ! < 20 > MARS 2012
A
u sein dInria, institut de recherche
en informatique, les scientifiques
sont amens rflchir et propo-
ser des solutions toutes sortes de probl-
mati ques dans di f f rents domai nes
impliquant loutil informatique. Ils dvelop-
pent des approches formelles ou pragma-
tiques pour amliorer des domaines trs
varis tels que linternet, le rseau, le temps
rel, la robotique, la sant (bio- informatique)
ou lenvironnement.
Parmi les diffrentes quipes dInria, cer-
taines (dont je fais partie depuis 11 ans)
sont spcialises dans les problmatiques
lies la production logicielle. Elles collabo-
rent avec des industriels et des PME pour
trouver les moyens damliorer le dveloppe-
ment des applications de demain tout en
matrisant la complexit et la qualit.
Quelles soient complexes ou simples, les
applications doivent pouvoir fonctionner et
sadapter diffrentes plateformes ou envi-
ronnements. Il est frquent que de nom-
breuses spcialits et mtiers interagissent
pour produire le logiciel qui devient le rsul-
tat de la rflexion commune des diffrents
intervenants. Dans la pratique, nous consta-
tons quil est difficile de trouver des spcia-
listes de tous ces domaines et de les faire
communiquer.
> Vers plus de capitalisa-
tion du savoir-faire
Pour pallier ces difficults, une premire
grande tendance qui me semble prometteu-
se vise une capitalisation plus importante
des bonnes pratiques et des processus de
dveloppement. Pour preuve, regardez le
nombre de sessions sur ALM (Application
Lifecycle Management, gestion du cycle de
vie applicatif) de la prochaine confrence
EclipseCon.
En tant quinformaticiens, nous allons vi-
demment nous appuyer sur des solutions qui
Soucieux damliorer la qualit de son travail, le dveloppeur cherche inlassablement
les nouvelles technologies et les mthodes qui vont laider dans sa tche. Certains
outils actuels et les recherches dans le domaine du gnie logiciel laissent prsager
certaines tendances pour
les annes venir.
vont nous permettre dexploiter la machine
afin de soulager le dveloppeur des tches
fastidieuses et lassister pour les tches o il
nest pas spcialiste. De manire nave,
cest ce que lon faisait dj en crivant rapi-
dement de petit scripts (ou moulinettes )
ou en crant des assistants (wizards) gn-
rant la structure des tests ou encore une
interface homme-machine minimale. Mais
nous sommes aujourdhui capables daller
plus loin dans le guidage et lautomatisation
du cycle de production. Par exemple, les
technologies Orientes par les Modles
telles quUML, MDA, MDE et autre DSL
(Domain Specific Language) offrent des tech-
niques et des outils rutilisables dun domai-
ne lautre. Typiquement, on peut utiliser
des modles qui sont la fois manipulables
par la machine, qui offrent une certaine abs-
traction, comprhensibles pour lhumain et
qui lui masquent une partie de la complexit.
La machine ralise alors les oprations com-
plexes ou fastidieuses la place de lhumain,
et lui laisse alors plus de temps pour inter-
agir avec le reste de lquipe et se concen-
trer sur des tches de plus haut niveau.
i
dossier[fier dtredveloppeur]
Rappelons-nous comme lhistoire de linfor-
matique nous a dj habitus des change-
ments de ni veau d abstracti on pour
rpondre la complexit croissante des
applications.
Une succession de technologies proposant
des abstractions de plus en plus leves
sont arrives : les langages assembleurs,
puis des langages procduraux comme le C,
puis les langages orients objets complts
par des frameworks de plus en plus volus,
et aujourdhui les langages orients modles
comme UML ou des DSL.
A chaque tape, les dveloppeurs ont pro-
gressivement adopt la nouvelle abstraction
la mieux adapte lexpression de leur
mtier, laissant aux spcialistes des lan-
gages de plus bas niveau le soin de mettre
leur savoir-faire dans les compilateurs. Pen-
dant les phases de transition et en attendant
que les compilateurs soient suffisamment
performants, nombreux ont t ceux qui ont
mix les langages pour y suppler et optimi-
ser le code rsultant. Aujourdhui, les tech-
nologies modles ncessitent encore davoir
besoin de contrler ou dadapter le code pro-
Tissage semi automatique des aspects et gnration de code.
Fig.1
Comment allons-nous dvelopper
dici 5 10 ans ?
... Suite dans le magazine
EXTRAIT DE PROgrammez ! < 21 > MARS 2012
i
savoir-faire
Je vais traiter principalement les sujets suivants :
Classe : nous verrons la composition, lassociation et lencapsula-
tion de classes ;
Hritage : un des piliers fondateurs de la POO, un cauchemar pour
certains en javascript. Rjouissez-vous, ce cauchemar est fini !
Les membres statiques de classes ;
Design Pattern : arriv ce niveau, vous serez suffisamment
arm pour voir que les grands principes et autres bonnes pra-
tiques sont tout fait applicables en Coffeescript (rassurez-vous, je
ne les passe pas tous en revue, nous nous contenterons du Single-
ton et de la Factory pour cette premire initiation) ;
Et enfin, deux petites choses en plus, pas spcifiques Coffeescript,
mais essentielles tout de mme :
Les Getters & les Setters ;
Les proprits.
Mais, finalement, pourquoi cet article ? Le (mon) constat est le suivant :
Depuis longtemps, les dveloppeurs serveur ont de nombreux a
priori vis--vis de Javascript :
un modle objet particulier difficile comprendre aprs des
annes de programmation oriente classes ;
un systme dhritage par prototype gnrant beaucoup deffets
de bord sil nest pas matris (sans compter la maintenabilit du
code) ;
justement pas de classes en javascript, ce qui rend difficile lorgani-
sation du code (toujours dun point de vue approche classique).
Larrive de CoffeeScript tend aujourdhui gommer ces problma-
tiques et tout particulirement par lintroduction dun systme de
classes qui prend en charge (pour/ la place du dveloppeur) toutes
les problmatiques lies au modle objet Javascript, garantissant
ainsi la rduction de lapparition de bugs dus la mconnaissance de
javascript. Gardez cependant une chose lesprit : Coffeescript, cela
reste du Javascript, mais avec une manire diffrente de lcrire,
plus simple, plus efficace et ( mon avis) avec moins derreurs. Cof-
feescript, vous aidera aussi comprendre et mieux crire le Javas-
cript. Bonne lecture.
> Coffeescript, mais quest-ce que cest ?
Coffeescript est un langage de script qui ressemble beaucoup au
Python. Il a t cr par Jeremy Ashkenas (que vous pouvez suivre
sur Twitter : @jashkenas), brillant dveloppeur aussi lorigine de
frameworks connus tels Backbone.js et Underscore.js. Coffeescript,
cest aussi un Transpiler Javascript. Cest--dire, quau lieu de
compiler pour obtenir un binaire, on compile le code Coffeescript
en Javascript directement excutable dans un navigateur (ou ct
serveur avec Node.js). Classiquement, le transpiler Coffeescript
Classes Coffeescript versus Classes Java
Lobjectif de cet article est de dmontrer que Coffeescript, un nouveau langage de
script propuls par javascript qui tourne dans votre navigateur ou sous Node.js, est
orient Classes et que lon peut quasiment raisonner/coder lidentique des
langages objets classiques, tels Java, C#, Python, . Pour atteindre cet objectif, nous
allons le faire simplement en comparant des bouts de code Java avec des bouts
de code Coffeescript.
sexcute sous Node.js (pas dinquitude pour les Windowsiens, il
existe maintenant une version facilement installable et officielle),
mais vous pouvez trs bien lutiliser en mode run-time et insrer du
code Coffeescript directement (inline) dans vos pages HTML. Cest
moins performant, mais cela peut tre utile pour debugger.
Lobjet de cet article ntant pas de vous expliquer comment installer
tout ceci, vous trouverez les informations ncessaires ici :
Coffeescript, le site : http://coffeescript.org/, exceptionnellement bien
document
Coffeescript, les sources sur GitHub : https://github.com/jashkenas/cof-
fee-script
Passons maintenant aux choses srieuses.
LES CLASSES
Tout dabord voyons comment Coffeescript se dbrouille avec le
concept de classe. En Java une classe prend classiquement la forme
suivante :
> En Java
class Human {
public String firstName;
public String lastName;
public Human(String first, String last) {
this.firstName = first;
this.lastName = last;
}
public void hello() {
System.out.println("Hello "+this.firstName+" "+this.lastName);
}
}
Et nous utiliserons la classe Human de la faon suivante :
public class Demo {
public static void main(String[] args) {
Human bob = new Human("Bob","Morane");
bob.hello();
bob.firstName = "BOB";
bob.lastName = "MORANE";
bob.hello();
}
}
Note : je nutilise pas dans mes exemples la notion de getters et de setters,
par pur souci de simplification, mais nous aborderons le sujet un peu plus loin
dans cet article.
... Suite dans le magazine
EXTRAIT DE PROgrammez ! < 22 > MARS 2012
i
cas dusage [ dveloppement ]
D
rupal 6 sest montr un CMS formidable. Performance,
tenue la charge, scurit sont parmi ses atouts. On lui a
parfois reproch un manque dergonomie dans linterface
dadministration. Lquipe de dveloppement de Drupal a entendu
ces critiques. Elle a aussi tenu amliorer ce qui tait dj trs bien.
Cest ainsi quest n Drupal 7, un CMS encore plus performant, avec
une nouvelle interface ergonomique trs agrable. Mais pour arriver
cela, bien que le principe de larchitecture de Drupal reste inchan-
g, de nombreuses modifications lui ont t apportes. Ces modifi-
cations induisent une incompatibilit de code des modules crits
pour Drupal 6. Lquipe de Drupal propose des outils pour convertir
le code automatiquement, mais pour linstant ces outils ne sont pas
parfaits. En outre, faire le travail manuellement, au moins une fois,
permet de comprendre et dapprcier les nouveauts de Drupal 7.
Nous allons donc reprendre ensemble le module basique que nous
avons crit dans Programmez! 123, article Ecrire un module dex-
tension pour Drupal 6, et porter son code vers Drupal 7. En
revanche nous ne nous intresserons pas la question dupgrader
un site sous Drupal 6 pour le passer sous Drupal 7. Lopration est
faisable et des outils sont fournis pour cela sur drupal.org. Il sagit
nanmoins dune opration dlicate, que lon ne tentera que si lon
connat trs bien Drupal et seulement aprs avoir lu mticuleuse-
ment la documentation ce sujet sur drupal.org. Tous les codes
mentionns dans cet article sont disponible sur notre site www.pro-
grammez.com.
1
APERU DE QUELQUES
NOUVEAUTS DRUPAL 7 ET OUTILS
Le cur de Drupal a volu. Sous Drupal, cest le nud (node) qui
est au centre du travail. Cest maintenant lentit, qui vient fdrer
nud, utilisateurs, commentaires, etc. Lintrt vident est lhomo-
gnisation du contenu. De plus le module CCK de Drupal 6, qui per-
mettait dajouter des champs personnaliss aux types de contenu,
est maintenant intgr au cur de Drupal. Cette intgration apporte
notamment une amlioration des performances en rduisant le
nombre dinterrogations de la base de donnes. Tous ces change-
ments font que les hooks, sils restent la base de Drupal, ont t
remanis. De nouveaux sont apparus, mais surtout, tous les hooks
couteaux suisses, susceptibles dtre invoqus pour de multiples
oprations ont disparu. Ils sont remplacs par des jeux de hooks, un
pour chaque opration. On comprend donc que lessentiel du code
dun module Drupal 6 doit tre repris. De nombreux modules clas-
siques sont dj ports. Ainsi le lecteur a tout intrt installer le
module Devel pour essayer le code de cet article. En effet, ce modu-
le permet de rinstaller un module ou de reconstruire la table de
routage des menus ou vider le cache dun clic de souris. Ces opra-
tions sont souvent ncessaires pour que les changements apports
au code pendant le dveloppement prennent effet. Le backoffice de
Drupal a t rorganis dans cette version qui prsente une barre
doutils horizontale ladministrateur. Cette barre prsente notam-
ment un lien vers un tableau de bord, une entre structure sous
laquelle sont regroups blocs, types de contenus, menus et taxono-
mie, une entre configuration, qui pointe sur une nouveaut: un
panneau deux colonnes regroupe les configurations possibles par
catgorie [Fig.1]. Le panneau des modules est lui aussi remani, avec
une innovation extrmement pertinente, lincorporation de liens,
pour accder directement, pour chaque module, laide, la confi-
guration des permissions, et la configuration du module lui-mme.
Le lecteur aura compris que toutes ces innovations impactent les
points dintgration de notre module, que nous devrons donc gale-
ment adapter ce niveau.
2LE FICHIER .INFO
Notre module dexemple est trs simple. Il dclare un bloc, dont le
contenu peut tre enrichi depuis une interface de configuration, et il
propose une aide en ligne. Simple ou non, tout module Drupal est
avant tout dclar par un fichier .info. Voici lancien, version Drupal 6 :
;$Id$
name = Programmez
description = Demo de programmation Drupal
core = 6.x
php = 5.1
;dependencies[] = node
;dependencies[] = user
Les deux dernires lignes, en commentaire, voquent des dpen-
dances hypothtiques entre modules. En fait notre module dexemple
Migrer du code Drupal 6vers Drupal 7
Drupal 7, la dernire volution du clbre CMS open source, prsente des
amliorations qui le rendent meilleur que jamais. Il est donc trs tentant de lutiliser
en production, mais vous devrez porter vers lui vos anciens modules Drupal 6. Nous
voyons comment faire.
Fig.1
Le nouveau panneau de configuration de Drupal 7
... Suite dans le magazine
EXTRAIT DE PROgrammez ! < 23 > MARS 2012
i
pratique [ dveloppement ]
C
ertains outils informatiques, en dpit de
leurs remarquables qualits, peinent sortir
des milieux universitaires, ou de niches d'ap-
plications relativement confidentielles. C'est par
exemple le cas du langage fonctionnel Objective
Caml, que Programmez! vous a souvent prsent,
et qui, bien que conu par des universitaires, l'a t
pour des industriels.
Nous nous intressons aujourd'hui un autre lan-
gage qui se trouve dans une situation semblable, le
langage R. Celui-ci est gnralement considr
comme un environnement ddi aux mathmati-
ciens et aux statisticiens, pour utilisation dans les
milieux universitaires ou scientifiques. Il serait dom-
mage de se limiter cela. D'ailleurs, R trouve son
origine dans le langage S, dvelopp dans les labo-
ratoires Bell comme le langage C, et dont on ne
peut pas dire qu'il n'est pas un langage industriel. R
n'est pas un simple outil rigide, mais au contraire
un vritable langage et comme tel, il est susceptible
d'intresser tout le monde. Il est clair que son point
fort est le calcul statistique, et c'est justement ce
qui le rend intressant dans de nombreux champs
d'applications. R est un langage de script de haut niveau qui peut
tre embarqu, et qui peut se rvler excellent pour enrichir une
application, comme le fait par exemple Lisp pour le logiciel Autocad.
Nous pouvons ainsi imaginer une application monitorant plusieurs
sites Internet. Pour cela, elle lirait des donnes issues de Google
Analytics sous la forme des fichier CSV puis passerait ces donnes
R pour montrer des graphiques l'utilisateur, ou bien gnrer des
graphiques dans un document Postscript ou PDF, ou bien encore
dans une image JPEG, pour ne citer que ces possibilits. On peut
encore imaginer une application d'aide la dcision prsentant des
statistiques fines l'utilisateur. Pour ces deux exemples, il serait pro-
bablement beaucoup plus intressant pour le dveloppeur d'embar-
quer R plutt que de rinventer la roue. R est un langage de haut
niveau, compil en code-byte et capable de communiquer avec les
systmes de bases de donnes les plus courants. R est gnrale-
ment prsent comme un langage orient objet, alors qu'en fait il est
avant tout un langage fonctionnel. En tant que tel, on dit couram-
ment qu'il doit beaucoup Scheme, mais il me semble que c'est plu-
tt du ct de Lisp qu'il faille chercher ses racines. Par exemple, la
programmation objet en R prsente beaucoup de similitudes avec
CLOS, ou Common Lisp Object System. S'il peut servir tendre les
fonctionnalits d'une application en tant embarqu, il peut aussi
tre tendu lui-mme, avec C ou Fortran. Dans cet article, qui
s'adresse avant tout des dveloppeurs, nous allons nous intres-
ser aux spcificits de R en tant que langage, plutt qu' ses possibi-
lits en matire de statistiques, domaine dans lequel votre serviteur
ne brille pas particulirement :-)
1PRISE EN MAIN
R est disponible pour Windows, Mac OS X et de nombreux systmes
Unix, dont bien entendu Linux. On le tlchargera sur le site officiel :
http://www.r-project.org. L'installation des distributions binaires ne pose
pas de problme particulier, quel que soit le systme d'exploitation.
Pour tirer pleinement parti du systme, il est toutefois pertinent de
lire la documentation en ce qui concerne les variables d'environne-
ment que R utilise, y compris sous Windows. C'est la version Win-
dows qui a servi la prparation de cet article. Si vous avez la
curiosit de jeter un oeil dans l'arborescence de votre distribution de
R, vous constaterez que celle-ci est assez complique. Une visite
dans le rpertoire 'library' vous donnera le nom des modules d'exten-
sion disponibles. Dans le fichier 'etc', vous trouverez des fichiers de
configuration fort intressants qui vous permettront de personnali-
ser votre environnement. Par exemple, le fichier Rconsole de ce
rpertoire vous permet de dfinir la police et sa taille, ainsi que le
nombre de lignes et de colonnes du terminal. Le rpertoire 'bin'
contient, naturellement les excutables. Ici R(.exe) et Rscript(.exe)
qui ne sont que deux frontaux un autre jeu d'excutables situs
dans le sous-rpertoire i386. Pour la distribution Windows vous
trouverez Rgui.exe qui vous permettra de vous familiariser avec R
travers une interface graphique [Fig.1]. En utilisation plus courante,
l'excutable principal est R.exe. Si vous le lancez seul vous arriverez
dans la console, sinon un complexe jeu de commandes et de para-
mtres vous permettra d'accomplir de nombreuses tches, comme
excuter un script (commande BATCH), ou installer un module d'ex-
A la dcouverte du langage R
Peu connu en dehors des universitaires, et gnralement considr comme un simple
outil ddi aux mathmaticiens et aux statisticiens, le langage R est bien plus cela.
Comme son nom mme l'indique, il s'agit d'un vrai langage. Dcouverte.
L'interface graphique de R sous Windows.
Fig.1
... Suite dans le magazine
EXTRAIT DE PROgrammez ! < 24 > MARS 2012
i
pratique [ dveloppement ]
Mise en application des nouveauts
de Windows Phone 7.5
Windows Phone 7.5 a apport un grand nombre dvolutions
par rapport la premire version de lOS. Cette version
saccompagne tout naturellement dun nouveau kit de
dveloppement, permettant aux dveloppeurs dtendre les
fonctionnalits de leurs applications. Nous allons voir sur un
cas concret comment tirer profit de trois nouveauts du SDK
Windows Phone 7.5 : les Secondary Tiles, les Agents et le
stockage de donnes dans SQL Server Compact Edition.
SQL, aucune des cl asses
dADO.NET ntant directement
expose dans le framework Win-
dows Phone 7. Limplmentation
choisie par Microsoft repose en
outre sur lapproche Model First , o le schma est directement
dcrit par un ensemble dattributs placs sur les classes Mtier
(aucun outil de type SQL Server Management Studio ne permet de
grer directement le schma physique de nos bases). Pour notre pro-
jet dapplication, la premire opration consiste dclarer une rf-
rence vers lassemble System.Data.Linq. Nous devons ensuite crer
une cl asse qui hri te de l a cl asse DataContext de l espace
System.Data.Linq, et qui reprsente notre base de donnes.
public class QuotesDataContext : DataContext
{
private const string DBConnectionString = Data Source=isostore:
/Quotes.sdf;
public QuotesDataContext() : base(DBConnectionString) { }
Note prliminaire : Dans cet article et pour simplifier la lectu-
re, nous utiliserons systmatiquement le numro de version de lOS,
qui est 7.5. Il convient cependant de noter que la dnomination offi-
cielle du SDK est en fait Windows Phone 7.1 SDK.
Dans cet article, nous allons illustrer ces nouveauts en ralisant
une application de consultation dindices boursiers. Cette application
comportera deux pages. La premire, qui est la page daccueil,
affiche la liste des indices suivis par lutilisateur et leurs valeurs
dchange [Fig.1]. Elle comporte un champ dajout dun indice finan-
cier. La seconde page est une page de consultation des informations
dtailles de lindice : Cours, variation, volume, volution annuelle
[Fig.2].
Les donnes financires sont obtenues du service Web Yahoo Finan-
ce. Nous souhaitons nanmoins que ces donnes restent acces-
sibles en mode offline, lorsquaucune connexion nest disponible.
Nous allons pour cela implmenter un mcanisme de persistance
local bas sur le moteur SQL Server Compact Edition.
Notre application doit galement offrir la possibilit dpingler, sur le
menu de dmarrage du tlphone, un raccourci daccs direct vers
la page de consultation dun indice. Ces raccourcis sont dynamiques
et affichent le dernier cours connu du titre. Limage de fond indique
si lindice est en hausse ou en baisse [Fig.3].
Enfin, nous verrons comment implmenter, au travers des agents
Windows Phone, une tche de fond qui assurera rgulirement lac-
tualisation des donnes et des raccourcis lorsque lapplication nest
pas dmarre.
IMPLMENTATION DE LA PERSISTANCE
Dans la premire version de Windows Phone 7, la persistance phy-
sique de donnes en local passait gnralement par lenregistre-
ment de fichiers dans lIsolated Storage, le systme de stockage
isol des applications. Ce mode de persistance tait de fait trs peu
performant dans un contexte de volumtrie importante et nappor-
tait aucune garantie sur lintgrit des donnes.
Windows Phone 7.5 embarque nativement SQL Server Compact Edi-
tion, la version pour terminaux mobiles du moteur de base de don-
nes Microsoft. Le dveloppeur dispose donc dsormais dun systme
de stockage robuste, performant et simple utiliser. Il est intressant
de remarquer que laccs aux donnes SQL Server Compact Edition
sappuie exclusivement sur lAPI de mapping objet/relationnel Linq To
Fig.1
Fig.2
Fig.3
... Suite dans le magazine
EXTRAIT DE PROgrammez ! < 25 > MARS 2012
A
lorigine, ce que lon appelle aujourdhui une page web est
un document crit avec le langage de balisage HTML (Hyper-
Text Markup Language). Il permet de dcrire des documents
statiques, qui ne se dmarquent (au dbut) que peu du format papier,
avec les hyperliens [Fig.1]. Depuis sa premire apparition, HTML a for-
tement volu, dans un premier temps, au gr des diffrentes impl-
mentations des navigateurs. Parmi les volutions majeures, qui ont
permis de passer de pages lmentaires aux sites web avec interac-
tions pousses que nous connaissons aujourdhui, on peut par
exemple citer lajout des images, des formulaires (qui ont permis de
rendre le web interactif), de divers attributs de style, puis des feuilles
de styles en cascade (CSS), des tables, des applets Java, du JavaS-
cript... Ce foisonnement dapports au langage a ralenti sa standardi-
sation par le W3C (World Wide Web Consortium) fond cet effet
en 1994, mais ces travaux ont abouti et sont aujourdhui le point de
dpart de la prochaine volution du langage qui occupe le devant de
la scne actuellement : le HTML5. Parmi tous les apports au HTML,
qui ont permis le dveloppement des interfaces actuelles, le langage
JavaScript a jou un rle trs important. Dautres technologies,
comme Flash ou Silverlight permettent la ralisation dinterfaces
riches, mais ces langages ont le dsavantage de ncessiter linstalla-
tion dune extension pour pouvoir tre excuts dans le navigateur.
Dans cet article, nous nous intressons au JavaScript, pour lequel
lvolution des navigateurs ces dernires annes a permis une am-
lioration notable des performances. Coupl au CSS, le langage JavaS-
cript permet dornavant la ralisation dinterfaces relativement
complexes et dynamiques. Cependant, il souffre parfois dune mauvai-
se presse parce quil est :
difficile dboguer ;
difficile uniformiser pour tous les navigateurs (chaque navigateur
implmente son propre moteur de JavaScript qui ne ragit pas
exactement comme celui des concurrents) ;
souvent mal implment (scripts dupliqus, gourmands, qui ralen-
tissent le site)
trs (trop ?) permissif ;
Et pourtant, le JavaScript permet denrichir lexprience utilisateur et
dapporter une relle plus-value un site web, si toutefois on prte
attention son implmentation. De plus, des frameworks permettant
de simplifier et de structurer le code JavaScript ont fait leur appari-
tion. Ils permettent par exemple la manipulation simplifie du DOM
(Document Object Model), ou lajout rapide de fonctionnalits forte
valeur ajoute comme le drag & drop. Nous proposons dans cet
article de prsenter un framework JavaScript, le framework jQuery,
travers un exemple simple et la prsentation dlments cls.
> Prsentation
jQuery est un framework JavaScript qui permet de simplifier le dvelop-
pement de la couche cliente dune application. Pour ce faire, il va sap-
puyer grandement sur la manipulation du DOM. Ses principaux
avantages par rapport au dveloppement JavaScript sans framework sont :
une manipulation simplifie du DOM ;
une structuration des scripts efficace avec lutilisation du systme
dextensions de jQuery ( ne pas confondre avec une extension du
navigateur, il ny a rien installer ici) ;
un fonctionnement similaire entre les navigateurs (la compatibilit
est gre dans le noyau de jQuery) ;
un dveloppement plus rapide et efficace du code JavaScript.
Pour nous aider dans ces tches, jQuery offre notamment des fonc-
tions et mthodes pour :
retrouver des lments dans le DOM par lutilisation de slec-
teurs permettant la recherche dlments par id, class, type ou
encore attributs ;
naviguer dans larbre du DOM partir dun lment, que ce soit en
parcourant les enfants, les parents ou encore les nuds frres ;
manipuler les lments du DOM, en permettant par exemple de
crer un clone dun nud, de dtacher un nud du DOM, daccro-
cher un nud une place prcise dans le DOM...
manipuler les styles CSS des lments en leur ajoutant ou suppri-
mant des classes la vole ;
grer les vnements, en permettant notamment le dclenche-
ment dvnements, le rattachement un vnement, avec bien
sr une gestion dvnements personnalise ;
grer les changes avec le serveur en Ajax ;
ajouter des effets de transition pour lapparition dun bloc dans la
page, sa suppression, son changement de style.
> Les bases par lexemple
Pour prsenter ce framework, nous nous appuyons sur un exemple
simple offrant un premier aperu des possibilits offertes, puis nous
Premiers pas avec jQuery
Depuis les dbuts dinternet, les sites web sont passs de simples pages statiques
(souvent simples reproductions du mdia papier) des sites complexes et dynamiques
offrant lutilisateur une interface riche aux interactions pousses.
i
je debute avec...
Internet Explorer 1 (1995) affichant le site www.msn.com de lpoque.
Fig.1
... Suite dans le magazine
EXTRAIT DE PROgrammez ! < 26 > MARS 2012
L
acclration GPU nest pas automatique, il faut que votre carte
graphique et vos drivers soient compatibles. Si vous avez une
machine assez rcente, cest srement le cas. Pour fonction-
ner sur un maximum de plateformes, Stage3D (nom de code Mole-
hill) sappuie sur OpenGL ES 2 / DirectX qui sont standard.
> Utilisation de Starling
pour simplifier laccs au GPU
Starling permet de crer du contenu 2D, principalement des jeux
comme Angry Birds. Starling est en fait un portage de Sparrow
(http://www.sparrow-framework.org/), un moteur de jeu pour iOS trs
populaire. Les API haut niveau offertes par Starling sont trs
proches de celles offertes par Flash Player. On retrouve ainsi les
classes Sprite, MovieClip, DisplayObject, ...
Les jeux que vous allez produire avec Starling vont donc fonctionner
dans votre navigateur web, mais ils pourront aussi tre utiliss sur
iOS et sur Android. En effet, grce Adobe AIR, vous pouvez trans-
former votre jeu en applications natives pour ces plateformes. Le
support de Stage3D pour iOS et Android est prvu pour AIR 3.2,
dont la sortie se fera au premier trimestre 2012.
> Premier projet avec Starling
Je vous conseille de tlcharger Flash Builder 4.6, qui va vous per-
mettre de crer facilement votre projet Starling. Vous pouvez bien
sr utiliser un autre IDE qui supporte lActionScript ou utiliser un
simple diteur de texte. Aprs avoir cr un nouveau projet ActionS-
cript, vous devrez effectuer quelques tapes de configuration suppl-
mentaires. Vous devrez notamment tlcharger la librairie Starling et
lintgrer votre projet. Tlcharger Starling Framework : http://star-
ling-framework.org. Pour toutes ces tapes, je vous invite consulter
cet article qui vous donnera la marche suivre : http://www.flex-tuto-
rial.fr/2011/12/13/starling-api-1-creer-son-premier-projet-avec-starling/
Voici le squelette dune application Starling classique :
package {
import com.fnicollet.FirstScreen;
import flash.display.Sprite;
import starling.core.Starling;
[SWF(frameRate = 60, backgroundColor = #FFFFFF, width = 696,
height = 520)]
public class StarlingTutorial extends Sprite {
private var _starling:Starling = null;
public function StarlingTutorial() {
_starling = new Starling(FirstScreen, stage);
Crer des jeux Flash 2D
acclrs GPU avec Starling
// dmarrage
_starling.start();
}
}
}
On cre une instance de Starling et on lui passe une rfrence vers
FirstScreen. FirstScreen sera la classe dans laquelle on va mettre
notre code. Crons donc la classe FirstScreen.as, qui tend la clas-
se Sprite. Sprite est une des classes de base de Starling qui permet
de reprsenter une lment graphique mais aussi un conteneur
dlments graphiques. Elle expose par exemple des mthodes add-
Child ou removeChild permettant de manipuler le contenu de
notre Sprite. Voici le squelette de la classe FirstScreen.as :
package com.fnicollet {
import starling.display.Sprite;
import starling.events.Event;
public class FirstScreen extends Sprite {
public function FirstScreen() {
super();
addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(event:Event):void {
removeEventListener(Event.ADDED_TO_STAGE, init);
}
}
}
Notez que lon ne met pas directement notre code dans le construc-
teur de FirstScreen. En effet, cest Starling qui va se charger dinitia-
liser tout ce qui lui est ncessaire et ensuite de crer lobjet
FirstScreen. Pour sassurer que lon ne part pas trop tt, on attend
donc la propagation de lvnement Event.ADDED_TO_STAGE par
Starling. Notre code sera donc plac dans la mthode init.
Pour commencer en douceur, on va utiliser la primitive Quad.
Celle-ci permet dajouter un simple carr de couleur. Son construc-
teur prend en paramtre une hauteur, une largeur et une couleur.
Voici comment afficher un carr rouge :
private function init(event:Event):void {
removeEventListener(Event.ADDED_TO_STAGE, init);
var q:Quad = new Quad(40, 40, 0xFF0000);
addChild(q);
}
i
gaming
Depuis la version 11 de Flash Player, vous avez la possibilit daccder
directement la carte graphique travers une API nomme Stage3D.
Fig.1
... Suite dans le magazine
EXTRAIT DE PROgrammez ! < 27 > MARS 2012
i
webmaster [ dveloppement ]
Une architecture simple
Play propose une architecture simple mais flexible et extensible, qui
rappelle celle de Ruby On Rails.
Cette architecture, oriente REST, est totalement stateless (sans
tat) ct serveur. Ceci signifie que le serveur ne fait que traiter des
requtes HTTP entrantes sans se souvenir de ce quil a fait prc-
demment. Ce type darchitecture apporte plusieurs avantages :
Excuter plusieurs fois la mme requte donnera toujours le
mme rsultat ;
On constate un gain de scalabilit : il est trs facile de multiplier le
nombre dinstances dune application (par exemple dans le Cloud)
sans avoir partager la session utilisateur entre les diffrentes
instances.
Larchitecture dune application Play suit le paradigme MVC.
On a donc un modle, des vues et des contrleurs. Une application
Play couvre toutes les couches, de linterface graphique la base de
donnes. O sont donc les traditionnelles couches services et DAO ?
me direz vous. Et bien il ny en a pas! Si vous avez du code mtier
crire, il doit se trouver dans votre modle.
Un modle ne doit plus seulement contenir des donnes mais aussi
des traitements, ce qui est une vision bien plus oriente objet que
lapproche couche service. Les objets du modle sont aussi
capables de sautogrer dans la base de donnes. Il nest donc pas
ncessaire (mais cependant pas interdit) de passer par des DAO
pour effectuer les tches de persistance.
Nous verrons tout cela plus bas avec un peu de code...
Un outillage simple et efficace
Play est livr avec son propre serveur dapplication. Bas sur Netty,
ce serveur se veut en rupture avec les serveurs JEE et ne sappuie
pas sur lAPI Servlet.
Il supporte le rechargement chaud de la totalit de votre applica-
tion : si vous modifiez votre code, que ce soit un template de vue,
une requte JPA, un contrleur... un simple rafrachissement de
votre page via votre navigateur vous permettra de voir instantan-
ment vos modifications. Finies les phases de redploiement et de
redmarrage de contexte auxquelles nous sommes habitus dans
les dveloppements Java-Web.
Si vous avez besoin de dployer votre application dans un serveur
compatible Servlets (Tomcat, Glassfish...) ceci est nanmoins pos-
sible grce la commande play-war.
Lors du dveloppement, les messages derreurs affichs dans la
console et dans votre navigateur sont simplifis. Au lieu dune longue
Play Framework : enfin un renouveau
pour les applications Web crites en Java
La sortie de Play Framework a cr une petite rvolution dans le monde
Java. Plus quun simple framework, Play est une plateforme complte pour
dvelopper des applications Web en Java. Il a pour vocation dtre beaucoup plus
simple utiliser que la pile standard JEE, tout en tant plus efficace.
stack trace, le framework affiche un message plus clair pour dcrire
le problme. Enfin, du point de vue de loutillage, Play intgre un ges-
tionnaire de dpendances (compatible avec les repositories Maven)
ainsi quun lanceur de tests graphique (compatible JUnit et Sele-
nium).
Premire application
Pour commencer, nous allons tenter dafficher une liste de restau-
rants.
Notre modle
@Entity
public class Restaurant extends Model {
@MaxSize(20)
public String name;
public String address;
}
Comme vous lavez constat tous les champs de notre modle sont
publics. En ralit, Play va gnrer et utiliser des getters et setters
la compilation. Donc nayez crainte, le code est simplifi mais len-
capsulation de nos champs est bien respecte!
La partie persistance est base sur JPA. Toutes les annotations JPA
peuvent donc tre utilises.
Remarque : hriter de Model apporte des facilits mais nest pas obligatoire
Un contrleur
public class Application extends Controller {
public public static void list() {
List<Restaurant> restaurants= Restaurant.findAll();
render(restaurants);
}
}
La mthode findAll (hrite du type Model) permet de ramener tous
les restaurants de la base de donnes.
On pourrait filtrer cette liste avec une requte JPQL :
List<Restaurant> restaurants= Restaurant.find(where name = ?, aName);
La mthode find prend un nombre illimit de paramtres.
Play fournit un ensemble de mthodes pour simplifier les requtes.
Ainsi, cette requte pourrait galement scrire comme cela :
... Suite dans le magazine
EXTRAIT DE PROgrammez ! < 28 > MARS 2012
i
bugtrack
U
n service se dmarre avec net start mon_service ou bien
dans le gestionnaire de services par un bouton droit
Dmarrer le service . Larrt ou la pause sont sur le mme
principe. Un service a pour vocation de raliser des tches en arri-
re-plan, comme par exemple :
Attentes de connexions client entrantes (tcp/ip, web services, etc.) ;
Lancement de calculs ou de tches longues ;
Traitement batchs divers ;
Gestionnaire de ressources diverses (cache de donnes).
Pour raliser les oprations en tches de fond, un service cre et gre
des threads. Un thread se code comme une routine qui peut prendre
des paramtres. Le systme dexploitation assure lexcution des
threads en parallle et en prenant soin de dispatcher, plus ou moins
finement, les threads sur les diffrents processeurs disponibles. Lim-
plmentation suivant le langage et les librairies utilises ne garantit
pas le mme niveau de monte en charge et dexploitation des res-
sources CPU disponibles. Mais ceci fera lobjet dun autre article. La
difficult de la mise au point de ce genre dapplications rside dans le
fait que les oprations assures par un service peuvent dpendre du
contexte dexcution. En effet, dans le cadre des services communi-
quant , il faut quun client cherche communiquer avec le service
pour dclencher un certains nombres doprations. Dans le cadre de
services batchs , les traitements peuvent durer longtemps. La mise
au point de ce type de programme requiert une certaine rigueur afin
dviter dtre confront aux situations suivantes :
Le service plante au bout de 10 minutes
Le service plante alatoirement
Le service plante ds que 2 clients se connectent
Le service plante et je nai pas derreur dans le fichier de traces...
Ce genre de situation est dlicat aborder car les pistes dinvestiga-
tion sont, au dbut, trs minces. Comment viter cette situation ?
PRENDRE DES PRCAUTIONS
Avant tout, il faut permettre le debugging du service comme nim-
porte quelle application. Il faut tre capable de le faire tourner en
mode DEBUG et tirer parti des informations remontes par le
debugger pour trouver les diffrentes erreurs. La premire chose
est de rendre le service identique une application console. Je dois
pouvoir lancer le service sans la capsule Windows Service . Si je
peux lancer mon_service.exe console , alors mon debugger
pourra travailler. Sinon, il faut que je lance le service manuellement
que jattache le debugger au ProcessId du service. Cest pnible et
long car chaque lancement donnera un ProcessId diffrent
Ensuite, il faut utiliser un framework de gestion des traces qui pos-
sde un mode verbose . Je dois pouvoir au travers du fichier de
config passer en mode DEBUG, INFO ou ERROR. Dans le mode
ERROR, seules les traces de type erreurs sont visibles. Dans le
mode INFO, seules les oprations importantes et les erreurs sont
visibles. Dans le mode DEBUG, toutes les traces sont visibles. Cela
veut dire que le programme doit comporter une classe de trace qui
ressemble de prs ou de loin cela :
Les bugs vicieux du multithread
Dvelopper des services Windows na jamais t facile. Pour simplifier, un service
Windows est une application qui contient 3 points dentres du style OnStart(),
OnStop() et OnPause().
enum ModeTraceEnum { Error, Info, Debug };
class CMyTrace
{
public:
static void Log (ModeTraceEnum mode, std::string message);
...
};
Il existe de nombreux frameworks de traces qui feront le job correc-
tement et ce pour diffrents langages (log4cxx, log4net, entlib,
etc.). Cela veut donc dire que lors de lcriture du code dun service,
le ou les dveloppeurs doivent faire leffort de rendre lapplication
communicante. Ainsi en cas de problmes ou de doutes, on fait tour-
ner le service en mode DEBUG et lanalyse des traces permet davoir
un indice sur le traitement qui est en erreur. La mthode Bubule()
na pas termin, la mthode Totor() nest jamais appele, etc.
LA GESTION DES DONNES
La gestion des structures de donnes en mmoire est souvent la
cause de plantage des applications. Tous les langages possdent
des collections de type vector, list, map, array et dans la plupart des
cas, ces classes ne sont pas thread-safe ! Et oui, il est possible de
lire les donnes en parallle mais si un thread ralise une criture
alors, toutes les oprations de lecture doivent tre protges car
sinon, on sexpose un plantage potentiel. Dans la pratique tout va
bien tant que votre application est un bloc mono-thread mais le jour
ou vous y ajoutez des threads, par exemple pour surveiller le statut
de certaines oprations, et bien vous devez alors protger len-
semble des variables communes... Dans ce cas, vous entrez dans le
monde merveilleux de la synchronisation et de nouvelles classes sont
disponibles : Mutex, Event, CriticalSection, Semaphore et un tas
dautres moyens volus pour utiliser ce qui va se rapprocher de
prs ou de loin de lutilisation de mthodes comme Lock() et
Unlock(). Pour amliorer la performance des applications, il faut aller
au-del dun mcanisme de verrou classique et utiliser des verrous
qui permettent de lire en parallle et de protger en criture : cest
le Single Writer Multiple Readers Guard . Ce type de verrou est
plus efficace mais demande aussi un code plus fin car il faut indiquer
le type dopration (lecture ou criture).
Ainsi pour lire une donne, on code :
g_Guard.WaitToRead();
pObjectFound = _my_data.GetFirst();
strPasswordCheck = pObjectFound->m_strPassword;
g_Guard.Done();
Et pour crire une donne, on code :
g_Guard.WaitToWrite();
_my_data.InsertAt(0, pNewObject );
g_Guard.Done();
... Suite dans le magazine
EXTRAIT DE PROgrammez ! < 29 > MARS 2012
OUI, je mabonne (crire en lettres capitales)
Vous avez besoin dinfo
sur des sujets
dadministration,
de scurit, de progiciel,
de projets ?
Accdez directement
linformation cible.

0
0
0

P
a
r
i
s
Actu trie par secteur
Cas clients
Avis dExperts
www.solutions-logiciels.com
Actus Evnements Newsletter Vidos
Les outils des Dcideurs Informatiques
Trouvez le marchand de journaux
le plus proche
Achetez la version PDF
EXTRAIT DE PROgrammez ! < 31 > MARS 2012
VITE, AVANT FIN MARS !
OUI, je mabonne
( retourner, avec votre rglement :
Groupe GLI, 17 chemin des Boulangers 78926 Yvelines cedex 9
Exceptionnellement, en mars,
vous pouvez bnficier, pour 1 euro de plus,
dun des livres numriques au choix,
slectionn par la rdaction de Programmez.
(accs html au contenu intgral de louvrage
sur la Librairie numrique des Editions ENI,
dune valeur de 21 31 selon les titres)
Code,
gestion de projets,
dveloppement web, mobile.
Programmez ! est la fois :
votre outil pratique :
articles de code par les meilleurs experts,
et votre veille technologique
O
F
F
R
E

P
R
O
L
O
N
G

E
J
U
S
Q
U

A
U

3
1

M
A
R
S
Abonnez-vous
Valeur des 11 numros du magazine : 65,50 + Valeur du livre : 21 31
---------------------------------
= Valeur totale : 86 96,70
Offre : 50 seulement (ou 60 avec accs illimit aux archives).
Pour 1 de +,
Un livre numrique des Editions Eni
Html 5 CSS3 (Prix Version numrique : 23,92)
Google Analytics (Prix version numrique : 21,20)
Dveloppez une application Android (Prix Version numrique : 31,20)
jusqu
-50
%
Abonnez-vous partir de 3,
80
seulement par mois
TOUTES LES OFFRES EN LIGNE : www.programmez.com
Trouvez le marchand de journaux
le plus proche
Achetez la version PDF

You might also like