Вы находитесь на странице: 1из 44

3:HIKONB=^UZ^Z]:?

a@l@o@h@a;
M 04319 - 147 - F: 5,95 E
Printed in France - Imprim en France - BELGIQUE 6,45
SUISSE 12 FS - LUXEMBOURG 6,45 - DOM Surf 6,90
Canada 8,95 $ CAN - TOM 940 XPF - MAROC 50 DH
Darknet
Le rseau
TOR
nest plus
anonyme
Cpp 11
Le nouveau
arrive !
EMPLOI
Recrutement :
Evaluer en ligne
les comptences
en programmation
GPU
Initiation la
programmation GPU
WEBMASTER
Matriser les
animations
HTML5
Hardware
pour les Geeks
SDK, migration,
code unique :
toutes les
NOUVEAUTS


G
o
o
g
l
e


N
o
k
i
a

M

W
a
t
c
h
P
R
O
G
R
A
M
M
E
Z

!
Android
4.0
Menaces
sur
FLASH ?
mensuel n147 Dcembre 2011
D

C
O
U
V
R
E
Z

L
E

N
U
M

R
O
d
o
c
u
m
e
n
t

n
o
n

c
o
n
t
r
a
c
t
u
e
l
.


*

1
5

r
e
q
u

t
e
s

g
r
a
t
u
i
t
e
s

s
u
r

l
a

v
e
r
s
i
o
n

e
n

c
o
u
r
s

d
e

c
o
m
m
e
r
c
i
a
l
i
s
a
t
i
o
n
,

s
e
u
l
e

l
a

c
o
m
m
u
n
i
c
a
t
i
o
n

e
s
t


v
o
t
r
e

c
h
a
r
g
e
.

L
o
g
i
c
i
e
l

p
r
o
f
e
s
s
i
o
n
n
e
l
.

L
a

v
e
r
s
i
o
n

1
7

e
s
t

a
n
n
o
n
c

e
AT E L I E R D E G N I E L O G I C I E L P R O F E S S I O N N E L
www.pcsoft.fr
Fournisseur Officiel de la
Prparation Olympique
Montpellier 8 Nov
Toulouse 15 Nov
Bordeaux 16 Nov
Nantes 17 Nov
Paris 22 Nov
Lille 23 Nov
Bruxelles 24 Nov
Strasbourg 29 Nov
Genve 30 Nov
Lyon 1 Dc
Marseille 6 Dc
CAL E NDR I E R
GRATUIT
inscrivez-vous sur ww.pcsoft.fr
TOUR DE FRANCE
VENEZ DCOUVRIR
WINDEV 17
& WEBDEV 17
PRS DE CHEZ VOUS
Attention: 10.000 places seulement
O
P

R
A
T
I
O
N
1
P
C

P
O
U
R
1

E
U
R
O

D
E

P
L
U
S
A
C
H
E
T
E
Z
W
I
N
D
E
V
1
7
E
T

R
E
C
E
V
E
Z
U
N

P
C
D
E
L
L
O
U

D
E
U
X

T
A
B
L
E
T
T
E
S
S
A
M
S
U
N
G
P
O
U
R
1
E
U
R
O
D
E
P
L
U
S
R
E
N
D
E
Z
-
V
O
U
S
S
U
R
w
w
w
.p
c
s
o
f
t
.f
r
O
ffre rserve aux entreprises, adm
inistrations, collectivits, indpendants, G
IE,
assocications,... en France m
tropolitaine. Chaque lm
ent de loffre peut tre
acquis sparm
ent. Tous les dtails sont sur w
w
w.pcsoft.fr. Fin de lopration le
16 dcem
bre 2011
DELL
DELL
x2
ou
ou
(MAINTENANT SUR IPHONE ET IPAD)
Jusquau 16 dcembre
Dcembre 2011 \\ PROgrammez ! 3
buzzword
1
FLASH PLAYER MOBILE :
ON ARRTE TOUT
Le couperet est officiellement tomb le 9
novembre. Jusqu maintenant la prsence
de Flash sur les smartphones, except sur
i OS, tai t un avantage pour Adobe et
Android. Mais avec les volutions des sys-
tmes, les nouveaux terminaux et limportan-
ce des terminaux Apple, il fallait trouver une
solution plus simple. Tout dabord, Flash
Player Mobile continuera tre support
mais aucun nouveau dveloppement ne sera
fait. La version 11.1 sera donc la dernire.
Que mettre la place ? Adobe mise sur une
double approche : HTML5 et AIR. La plate-
forme AIR a lavantage dtre prsente un
peu partout et les extensions natives per-
mettent de gnrer des applications natives,
incluant iOS. Les prochaines volutions
de AIR renforceront sans aucun doute
cette approche. HTML 5 est le nouveau
credo dAdobe. HTML 5 et CSS 3 passent
par loutil Edge. Cependant, une partie de la
communaut ne ragi t pas bi en ces
annonces comme nous lavons constat lors
de la confrence Retour sur Max Paris
fin octobre dernier. Mme si HTML 5 / CSS
3 constitue un avenir important pour Adobe,
pas question de laisser tomber Flash. Nous
verrons si la communaut a t rassure ou
non. Sur le support de WebGL, rien na t
avanc, mais des annonces pourraient tre
faites dans quelques mois ! Sur Edge, le
dveloppement dbute seulement mais
devrait voluer rapidement dans les pro-
chains mois. Pour le moment, le niveau fonc-
tionnel ne rivalise pas avec Flash. Cet arrt
concerne aussi Flash sur les tlviseurs.
2
BONJOUR FLASH 12
SUR PC
Pour lditeur, Flash sur les ordinateurs doit
offrir des performances, des fonctions nou-
velles linstar de la v11.x. Lditeur veut
tre un conteneur pour le contenu riche, les
jeux, la vido, la 3D. Les quipes travaillent
dj la prochaine grande tape : la version
12 qui pourrait offrir la haute dfinition.
Lditeur travaille aussi autour de WebKit et
du W3C pour lexprience web et comment
Adobe flashe le mobile et Flex !
Depuis la confrence Max de dbut octobre, la stratgie Adobe a beaucoup volu et les
annonces se succdent : HTML 5, cloud, applications mobiles au top, Flash Player Mobile la
casse et Flex SDK, BlazeDS, Spark, le projet Falcon, passent sous contrle de la fondation
Apache ! Flash est-il menac terme ? Oui dans sa forme actuelle.
mieux interagir, afficher HTML 5.
En attendant, une pr-version de la v11.2
est disponible. Au menu : dcodage vido
multithread pour amliorer les perfor-
mances (tout systme), mise jour arrire-
plan sur Windows. Notons aussi que IE de
Windows 8 / Metro nacceptera pas les
pl ug-i ns, donc pas de Fl ash Pl ayer, en
revanche Air pourra tre install
3
LA PLATEFORME 4.6
DJ L
Ct plate-forme, peine la v4.5 disponible
depuis cet t que la 4.6 est annonce pour
fin novembre. Il sagira dune mise jour gra-
tuite de Flash Builder et de Flex. Lun des
focus concerne l es performances sur
mobiles, de nouveaux composants Spark
adapts la mobilit (splitviewnavigator,
dataspinner, champs textes). On pourra
ainsi avoir des interfaces natives chaque
systme. Flash Builder amliorera aussi les
performances, la prise en charge des exten-
sions natives de AIR, la gestion du captrive
runtime, fonction de monitoring du trafic
rseau, tests unitaires pour mobiles. Le
dveloppeur disposera du framework Star-
ling (pour la 2D / Stage 3D), support
ActionScript 3, disponible en open source. A
noter que la boutique AIR marketplace a
ferm ses portes fin aot dernier. Starling
est un framework permettant dutiliser la
GPU pour la 2D Flash. Il sagit dun portage
du framework Sparrow dj prsent sur la
plateforme iOS.
4
ADOBE LCHE FLEX
SDK !
Le 15 novembre dernier, Adobe a annonc
une bombe la communaut : Flex SDK, Bla-
zeDS (serveur Java), les composants Spark,
le projet Falcon (nouvelle version du compila-
teur ActionScript et de MXML seront grs
par la fondation Apache qui continue dve-
lopper la plateforme Adobe a tout de suite
dit quune quipe de dveloppeurs contribue-
ra aux nouveaux projets Apache. Il est clair
aussi que lditeur nest dsormais plus
matre de lavenir de Flex SDK sur lequel
repose Flex. Cest une revirement strat-
gique important qui agitera la communaut
sur lavenir rel de Flex, voire de Flash
terme et de lopportunit de rester sur cette
plateforme.
Dans le mme temps, Adobe dit que HTML
est lavenir long terme et que Flex est
actuellement meilleur pour lentreprise. Cela
ressemble une transition douce entre
les deux technologies. HTML 5 est claire-
ment lavenir pour lditeur et prpare active-
ment la migration.
M
e
n
a
c
e
s
s
u
r

F
L
A
S
H
?
Novembre 2011 \\ Extrait de PROgrammez ! 3
s
o
m
m
a
i
r
e
\
\

numro 147 - dcembre 2011
Donnez votre avis sur ce numro : www.programmez.com/magazine_ sa
\\ veille techno
Cpp11, une volution
majeure du langage C++ ....24
\\ carrire
Evaluer en ligne les comptences de programmation
des candidats ....................................................46
Soutenir les TPE PME de linformatique ................47
Tendances emploi informatique ............................48
\\ technique
Concevoir des applications aujourdhui : quels change-
ments ? Comment sadapter ? ............................49
\\ buzzword
Adobe flashe le mobile et Flex ..........................3
\\ actus
En bref ........................................................06
Hardware......................................................13
\\ scurit
TOR perd son anonymat, le Darknet tangue ......18
Avis dexpert..................................................21
10
\\ dossier
Android 4.0 disponible !
f
Android 4
en quelques images ..................................30
f
La scurit est-elle assure ? ..............31
f
Au cur dAndroid 4.0 ..............................32
f
Migrer vos applications
vers Android 4.0 ..............................................38
f
Dveloppement dapplications
unifies sous Android 4.0 ........................42
A LIRE DANS LE PROCHAIN NUMRO
Janvier 2012-N148, parution le 30 dcembre 2011
Gaming
Dveloppez pour la console
Xbox Kinect
Webmaster
Tester efficacement
son site web
Veille techno
Les 9 meilleurs projets
tudiants de lEpitech
52
grammez! PRO
L e ma g a z i n e d u d v e l o p p e me n t
satisfaction.php
\\ outils
Installer GIT en un clin d'il en mode SaaS
sur le Cloud ......................................................53
\\ gaming
A la dcouverte du SDK de lAR. Drone
(2e partie)..............................54
\\ code
Design By Contract : Code Contracts
avec C# 4.0..............................57
Introduction la programmation GPU
(1re partie)................................61
FLEX Mobile :
Flex sait aussi
se faire
mobile................................64
Devenir un dveloppeur iOS
(4e partie)................................68
Git : Boostez votre gestion
de configuration................................74
\\ webmaster
L'animation web en HTML5 et
en 2D................................79
\\ temps
libre
Les livres
du mois.........82
Agenda..........82
Etre dveloppeur en France nest pas
toujours de tout repos. Entre le flou des
statistiques autour du taux rel de
chmage des informaticiens au sens
large, la difficult daccs aux gros contrats
et la sous-traitance en cascade, pas facile de sy retrouver.
Aujourdhui, le spcialiste informatique travaille beaucoup dans
des structures de type TPE / PME qui sont souvent ignores
par les grandes entreprises, la fonction publique pour les
appels doffres. Or, cest l que lon trouve de nombreuses
comptences que les grandes SSII nont pas toujours. La TPE /
PME informatique servira mme de variable dajustement pour
sauver un projet ou agir en urgence. Il y a l un problme de
fond quil faudra rgler tt ou tard. Nous avons men lenqute.
Autre point sensible, la ralit du chmage informatique : de 2 %
6 % selon la source des chiffres Finalement, la dfinition
mme de linformaticien apparat peu claire Surtout que les
mdia rptent souvent que nous manquons dinformaticiens
(mme si ce terme ne signifie plus grand-chose aujourdhui).
Constat tonnant que vous dcouvrirez dans nos pages
carrires et emplois.
Plusieurs vnements ces dernires semaines ont fait
sursauter notre communaut. La disponibilit dAndroid 4, la
mort de Flash Player mobile, la nouvelle norme C++, les
diverses failles de scurit ici et l. Preuve que le
dveloppement mobile est toujours la vague dferlante. HTML 5 /
CSS 3 est en passe de simposer comme la plateforme
technique pour le contenu interactif, multimedia. Adobe la
act, mme si lditeur cherche contourner le problme avec
le runtime AIR et les extensions natives. De plus en plus,
lapplication multi-cran, multi-terminal va simposer,
particulirement pour le grand public mais les applications
mtiers ne vont pas y chapper bien longtemps. De l dire
que lon va devoir coder une fois, adapter linterface pour
chaque cran, est encore prmatur mais dici 12 18 mois,
ce sera la ralit. Cest maintenant quil faut sy prparer,
comprendre les systmes et les contraintes.
Terminons par le nouvel index des langages de TIOBE Software
de novembre 2011, qui est aujourdhui une des rfrences sur
lutilisation et la population des langages. Une chose est
certaine, mme si Android domine dsormais le smartphone,
les terminaux iOS continuent simposer et intresser les
dveloppeurs. Pour preuve, la nouvelle perce dObjective-C, le
langage par dfaut dApple. Il passe de la 8e la 6e place et
pse tout de mme quasiment 6 % ! Il pourrait mme bientt
dpasser PHP, dune { !
Le trio de tte reste le mme : Java, C et C++. Les deux
derniers psent 25 %. Pour des langages que lon donnait pour
obsoltes il y a 10 ans, ils se portent bien.
Conclusion : dbrouillez-vous tout seul pour votre job,
mettez-vous Objective-C et mangez des pommes, avec ou
sans petits robots verts Et puisoui, faites du sport.
I Franois Tonic
Rdacteur en chef
Dbrouille-toi
tout seul !
15
54
Abonnement : Programmez, 17, Chemin des Boulangers, 78926
Yvelines Cedex 9 - Tl. : 01 55 56 70 55 - abonnements.programmez
@groupe-gli.com - Fax : 01 55 56 70 91 - du lundi au jeudi de 9h30 12h30
et de 13h30 17h00, le vendredi de 9h00 12h00 et de 14h00
16h30. Tarifs abonnement (magazine seul) : 1 an - 11 numros France
mtropolitaine : 49 - Etudiant : 39 - CEE et Suisse : 55,82 -
Algrie, Maroc, Tunisie : 59,89 Canada : 68,36 - Tom : 83,65
- Dom : 66,82 - Autres pays : nous consulter. PDF : 30 (Monde
Entier) souscription exclusivement sur www.programmez.com
Editeur : Go-02 sarl, 21 rue de Fcamp 75012 Paris -
diff@programmez.com.
Rdaction : redaction@programmez.com
Directeur de la Rdaction : Jean Kaminsky. Rdacteur en
Chef : Franois Tonic - ftonic@programmez.com. Ont colla-
bor ce numro : F. Mazu, S. Saurel, Y. Grandmontagne
Experts : B. Boucard, J. de Oliveira, F. Bellahcene, N.
Freier, S. Cordonnier, C. Villeneuve, L. Cacheux, D. Fages,
J. Vagnet, P. Marois, P.E. Pollet, C. Agoin, H. Desaunois, R.
Collet, D. Flament, T. Weissbeck, L. Collet, R. Morel, C.
Boucrot, S. Hertrich.
Illustrations couverture : Source Google - Nokia - IM
Watch - D.R.
Publicit : Rgie publicitaire, K-Now sarl. Pour la publici-
t uniquement : Tl. : 01 41 77 16 03 - diff@program-
mez.com. Dpt lgal : parution - Commission paritaire :
0712K78366 ISSN : 1627-0908. Imprimeur : S.A.
Corelio Nevada Printing, 30 alle de la recherche, 1070
Bruxelles Belgique.
Directeur de la publication : J-C Vaudecrane
Ce numro comporte 1 encart jet OVH

V
.
T
.

d
i
t
o
\
\

61
6 Extrait de PROgrammez ! \\ Novembre 2011
D
rupal 7 tire peine le bilan de ses pre-
miers mois dexistence que Drupal 8
pointe dj son nez chez les dveloppeurs.
Cette version 8 sera loccasion dintgrer la
mobilit, de disposer dune gestion de confi-
gurations qui aujourdhui fait dfaut. Grosse
nouveaut qui promet dtre le best seller :
le content staging. Il sagit de mettre en pr-
production du contenu. Ce contenu est injec-
t sans tre en production. Cela permet de
tester, de peaufiner les dtails avant son
dploiement, un peu sur le principe du sta-
ging de Windows Azure. Lautre nouveaut
dvoile mi-novembre, la prsence au cur
de Drupal 8 de composants Symfony 2. La
core team du CMS dcide d'en refondre l'in-
frastructure pour optimiser et moderniser
son code. Lquipe ne voulait pas dvelopper
tout de zro mais sappuyer sur des projets
existants. A ce jour, la communaut Drupal a
choisi de baser son socle applicatif sur deux
composants Symfony2 : ClassLoader, qui
permet dunifier la gestion des classes du
CMS, et HTTPFoundation qui fournit une
abstraction objet de la spcification HTTP.
Des discussions sont galement en cours
pour intgrer dautres composants.
Pour suivre Drupal 8 :
http://drupal.org/project/drupal
Lvnement Drupal du 10 novembre dernier
Paris a t un superbe succs : plus de
250 personnes prsentes. Linscription
payante y a grandement contribu. Et plu-
sieurs dizaines de personnes, non inscrites,
ont dfil toute la journe pour pouvoir
entrer. Cette journe tait avant tout desti-
ne aux DSI, chefs de projet, et non aux
actu \\ en bref

Drupal en folie : Drupal 8, Drupagora
dveloppeurs purs, mme si la technique
nest jamais absente de Drupal. Ce fut loc-
casion dentendre plusieurs retours utilisa-
teurs intressants : Mediapart, France
Tlvision, Radio France Une des parties
les plus passionnantes fut sans conteste
celle abordant Drupal sur les multi-termi-
naux (mobile, tablette, borne, etc.), avec les
Big Data : nouveau terrain dactiondesdonnes
D
epuis quelque temps, nous entendons
parler de Big Data . Par grosse
donne , on entend des bases de donnes
tellement importantes que les SGBD clas-
siques ne peuvent plus traiter dun bloc ou
que les donnes sont devenues tellement
complexes analyser, dplacer que les
bases classiques ne peuvent plus absor-
ber ef fi cacement l es demandes. Cel a
concerne par exemple les donnes gogra-
phiques / spatiales, les donnes non struc-
tures, donnes i ndustri el l es, photos,
donnes RFID, rseaux divers et varis.
Avec le NoSQL, le Big Data est une tendan-
ce forte de la base de donnes. Et tous les
principaux diteurs du secteur proposent ou
proposeront des fonctions propres grer
la grosse donne. Cest dautant plus une
ncessit que la volumtrie de la donne ne
cesse de crotre et que les SGBD ne suivent
pas. La donne devient norme, htrog-
ne, non structure. IBM propose deux axes
pour rpondre au Big Data : le stockage et
lanalyse. Plus spcifiquement sur lanalyse,
IBM utilise les outils Netezza rachets en
2010. Ils permettent lexcution danalyses
complexes sur de trs gros volumes de don-
nes, ceci avec une rapidit 10 100 fois
suprieure celle des solutions concur-
rentes. Mais le Big Data est une notion
aussi vague que large. Cest pour cela que
IBM y ajoute InfoSphere BigInsight utilisant
Hadoop pour traiter des donnes non struc-
tures. Hadoop est un framework open
source pour grer, utiliser dimportantes
volumtries de donnes. Il est largement uti-
lis par les diteurs : Microsoft, IBM, Actua-
te, etc. Il est aujourdhui incontournable
pour relier des nuds de stockages et les
donnes grce son fonctionnement massi-
vement distribu. Ce framework est soute-
nu et dvelopp par la fondation Apache.
SkySQL a renforc son quipe en embau-
chant un expert Big Data et cloud compu-
ting, David Douglas, preuve que le SGBD
open source ne veut pas se laisser distan-
cer. On peut sinterroger sur lavenir du
SGBD tel quil existe actuellement. Car la
donne relationnelle nest plus tout fait
une ralit sur Internet et le cloud, et lexplo-
sion du volume dinformation le pnalise.
experts de Adyax. Il nest pas tonnant que
Drupal soit aussi populaire en France mme
si pour trouver de vrais experts Drupal cest
devenu difficile et cher !
Les prsentations sont disponibles sur :
http://www.drupagora.com/programme-drupagora
Les prochaines DrupalCon : Denver (mars
2012), Munich (aot 2012)
10 Extrait de PROgrammez ! \\ Novembre 2011
I Jetbrains va prochainement dvoiler
IntelliJ IDEA 11. Cette version inclura de nom-
breuses amliorations : performances, nou-
vel diteur darchitecture, une interface de
refactoring remodele, support de Subver-
sion 1.7, support tendu de Git, nouveauts
natives sur OS X et Linux, apparition de Groo-
vy 1.9, mise jour de nombreux frameworks
(grails, velocity, spring, aspectj). La v11
sera gratuite pour les utilisateurs de la v10
I Zend dvoile phpcloud.com, qui fournit
donc un environnement complet de dvelop-
pement et propose ensuite de dployer son
application sur diffrents PaaS compatibles.
Cette plateforme utilise les outils et frame-
works Zend. Le dploiement peut se faire
comme Rightscale, IBM, Rackspace, Amazon
aws. En revanche, Windows Azure nest pas
support alors que ce PaaS propose un sup-
port PHP. Cette plateforme comprend Zend
Framework et les outils de Zend Server et
bnficie de l'lasticit et de la scalabilit du
Cloud. Il sagit avant tout dun environnement
de dveloppement avec debug, diteur, outils
de tests, gestion du code. Le dploiement se
fait via un package Application Fabric (le cloud
cible doit tre compatible).
I JetBrains propose un diteur de code
spcialement pour Objective-C, AppCode.
Idal pour coder pour OS X, iPhone, iPad. Le
dveloppeur dispose de la compltion, dune
analyse du code la vole, du refactoring,
dune compatibilit avec XCode, intgration
avec Interface Builder. On dispose aussi dun
test unitaire, dun mulateur iOS, dune ges-
ti on de versi on et de code. Si te :
http://www.jetbrains.com/objc/
actu \\ en bref

Microsoft dvoile les nouveaux
systmes embarqus
E
n septembre derni er, Mi crosoft
dvoilait ses nouvelles ambitions
autour des systmes intelligents et du
march de lembarqu en gnral. Cette
nouvelle stratgie se met en place avec les
prochains Windows Embedded : de nou-
veaux services, du cloud, une ouverture
plus grande vers le mdical, lautomobile.
Le terme systme intelligent couvre en
particulier la capacit du systme rester
connect aux rseaux, collecter et trai-
ter des donnes. Pour y parvenir, Win-
dows Embedded se concentre sur les
principaux lments du systme dexploita-
tion, jusquau noyau, et amliore le syst-
me de fichiers afin de pouvoir traiter les
donnes gnres par un ensemble de
dispositifs. Lquipe travaille galement en
troite collaboration avec Windows Azure
pour sassurer que les clients puissent
inclure aisment le Cloud Computing dans
leurs systmes intelligents.
Aujourdhui, avec lomniprsence des
rseaux, lmergence des services Cloud
et la possibilit dacqurir des proces-
seurs trs puissants faible cot, nos
clients peuvent dsormais connecter leurs
dispositifs embarqus classiques des
infrastructures informatiques plus impor-
tantes, ceci leur permettant dchanger
des donnes en temps rel avec leurs
clients , explique Kevin Dallas. Selon IDC,
ce nouveau march reprsentera 800
millions de terminaux en tous genres.
Un des critres vitaux de ces systmes
est la fiabilit absolue de la plateforme. La
moindre faiblesse, panne ou faille de scu-
rit, et cest toute une entreprise ou un
secteur dactivit qui peut tre impact.
Cest pour cela que les travaux de linfor-
matique prouve, du dveloppement natif
sont si importants.
Aujourdhui, lditeur dvoile Windows
Embedded Enterprise vNext et Standard
vNext. Windows Embedded Enterprise
v.Next, totalement compatible avec les
applications Windows et dune puissance
quivalente celle des systmes dexploi-
tation Premium de Microsoft sur les sys-
tmes embarqus, sera disponible pour
un certain nombre de dispositifs, tels que
les guichets automatiques bancaires et les
kiosques, environ trois mois aprs la dis-
ponibilit gnrale de Windows 8 pour les
PC. La versi on d essai de Wi ndows
Embedded Standard v.Next qui fournira
la puissance, la convivialit et la fiabilit du
systme dexploitation Windows sous une
forme hautement personnalisable et riche
en composants sera disponible pour les
dveloppeurs, via un programme preview,
au cours du premier trimestre 2012. La
version commercialisable de Windows
Embedded Standard v.Next sera dispo-
nible trois trimestres aprs la disponibilit
de Windows 8. Microsoft na pour le
moment pas communi qu de dates
concernant la sortie de Windows 8.
I
12 Extrait de PROgrammez ! \\ Novembre 2011
I Eclipsea ft son 10
e
anniversaire. Et la fondation a
de grandes ambi ti ons avec
Eclipse 4 (projet e4), lenviron-
nement de dveloppement en
ligne Orion, ou encore sur le
march Machine to Machine
avec le projet Koneki. Ce projet
a pour but de proposer un
modle, un environnement de
dveloppement pour les objets
Machine 2 Machine, cest--dire
des obj ets communi cants
capables dchanger, de tra-
vailler ensemble sans PC. Il faut
pour cela concevoir des run-
ti mes, des protocol es, des
modles de donnes et applica-
tifs M2M, sintgrer aux ser-
veurs M2M. Koneki expose des
outi l s, des runti mes embar-
qus. Nous ne connaissons pas
encore le planning et les axes
2012-2013. Mais les ambi-
ti ons 2011 ( roadmap v6)
seront sans doute conserves :
volution de la plateforme, am-
lioration de Eclipse Marketpla-
ce, faire voluer les projets
actuels et dvelopper les nou-
veaux, diversification du modle
conomique de la fondation,
continuer mettre en place et
sortir Eclipse 4.x. La v4.2 est
en plein dveloppement. Lobjec-
tif est toujours de sortir une
trs importante volution en juin
2012.
Les dernires build Eclipse :
http://download.eclipse.org/eclipse/do
wnloads/
Roadmap v6 :
http://www.eclipse.org/org/councils
/roadmap_v6_0/
Projet M2M :
http://www.eclipse.org/proposals/tec
hnology.koneki/
actu \\ en bref

I Google a dvoil les
sources dAndroid 4.0. Lditeur
veut sans doute viter les pol-
miques, trs vives, autour de la
famille 3.x. Une bonne nouvelle
pour les fabricants et les dve-
loppeurs qui veulent voir les
entrailles. Par contre, Chrome-
book et ChromeOS apparais-
sent de plus en plus comme un
chec. Acer, un des partenaires
constructeurs, aurait vendu
peine 5000 machines. Sam-
sung na pas rvl de chiffres.
Lchec est act et cela pose la
question de la pertinence de la
solution sur le march, son utili-
t relle. Pour le moment Chro-
meOS et ChromeBook
demeurent au catalogue mais
Google devra rapidement trou-
ver une sol uti on pour
convaincre constructeurs et uti-
lisateurs. Autre problme : la
Google TV, qui elle aussi a connu
depui s un an de nombreux
dboires. Mais la v2 devrait
amliorer les choses sur linter-
face, les fonctionnalits, larri-
ve des applications dAndroid
Market, reste la question du
contenu et de son adoption par
les constructeurs
Site :
http://source.android.com/index.html
I Ubuntu, la distribu-
tion Linux la plus en vogue, veut
dcouvrir de nouveaux termi-
naux. Et son diteur, Canonical,
la clairement expos : Ubuntu
ira sur les tablettes, les smart-
phones, les tlviseurs, la cuisi-
ne, dans la voiture. Bref,
sattaquera aux marchs mobi-
le et embarqu. Pour Mark
Shuttleworth, la version 14.04
pourrait parfaitement fonction-
ner sur ces crans mobiles et
embarqus. Linterface Unity
est dj l pour pouvoir sadap-
ter rapidement ces
contraintes nouvelles. Entre le
dire et le faire, il y a un foss
norme que Canonical devra
franchir pour disposer de ver-
sions adaptes, trouver des
partenaires, convaincre utilisa-
teurs et dveloppeurs. Surtout,
quelle stratgie densemble
autour dUbuntu ? Lditeur
veut se poser en alternative
iOS, Android, Windows Phone
/ Windows 8. Mais lchec de
MeeGo et le lancement discret,
voire timide, de Tizen, un
MeeGo nouvelle formule soute-
nu par Intel et Samsung,
montre que ces marchs sont
difficiles et quil faut du temps,
de largent et une arme de
dveloppeurs spcialiss.
I Siri, la technologie din-
terface vocale dApple, com-
mence livrer ses secrets.
Lquipe dApplidium a diss-
qu Siri, les protocoles, son
mode de fonctionnement. Les
dveloppeurs ont pu dchiffrer
le protocole utilis. Mais atten-
tion, il sagit dun cracking
complet car pour le moment,
Apple na pas livr les API pour
utiliser la technologie. Il sav-
re que Siri capture la voix, la
compresse (avec Speex), intro-
duit diffrentes informations
(qualit, pertinence, etc.),
crypte puis envoie le tout aux
serveurs Apple qui se char-
gent dinterprter et de
construire la rponse ren-
voye liPhone. Lidentifiant
dun 4S est obligatoire car Siri
vrifie constamment cela.
Applidium a crit plusieurs
outils pour exploiter la techno-
logie. Si aujourdhui, Siri
demeure assez limit, il ne fait
aucun doute quApple propose-
ra dans les prochains mois
une version finale bien plus
performante et esprons-le un
SDK !
Voir le post dtonant :
http://applidium.com/news/com-
ment_dechiffrer_siri/
actu \\ hardware pour les Geeks
f
Nokia dvoile
enfin ses premiers ter-
minaux mobiles utilisant
Windows Phone, en ver-
sion 7.5 (Mango). Il
sagit des modles
Lumia 710 et 800.
Dsormais, Nokia
conclut la priode transi-
toire vers Windows
Phone. Ces modles
possdent des proces-
seurs 1,4 Ghz, un cran
Amoled de bonne qualit
(pour le 800) mme si on natteint
pas forcment la qualit dun Retina. Nokia a int-
gr plusieurs optimisations propres au construc-
teur : Nokia Drive pour la navigation, Nokia
Music. Pour complter son offre, Nokia propose
des oreillettes et casques audio. Le modle 800
est 499 , le 710 329 , ce qui est un peu
cher par rapport aux offres Android et la diffren-
ce avec les modles iPhone 3GS / 4 nest pas
trs significative. Dautre part, le constructeur
annule la sortie du modle 600 utilisant Symbian
Belle. Mais Nokia sort plusieurs modles de la
gamme Asha, modles dentre de gamme.
f
Un ordinateur
complet 25 $
Peut-on rellement construire et vendre un
ordinateur complet (carte mre, mmoire,
GPU, processeur, USB) un tel prix ?
Rhapsody Pi a relev le dfi et proposera
en dcembre son ordinateur 25 $ en
version A, 35 $ en version B ! La quantit est limite 10 000 exemplaires mais
technologiquement, le dfi tait important. Surtout, cet ordinateur tient dans la main !
Les spcifications techniques sont tout de mme impressionnantes : processeur
ARM, 128 Mo de mmoire, HDMI, USB, Ethernet (version B), compatibilit OpenGL,
compatibilit carte SD. La disponibilit pour le grand public pourrait intervenir cou-
rant 2012, le problme est la production en masse et la disponibilit des compo-
sants. Ce PC fonctionne avec une distribution Linux. Site : http://www.raspberrypi.org/
Modelio.org
Latelier mature de modlisation UML/BPMN open source
Le Store Modelio : modules et extensions pour modliser et gnrer
Solutions dentreprise Modeliosoft
Solutions pour dveloppeurs, architectes mtier, architectes systmes
Gnration documentaire Word, HTML : plans types ddis
Travail de groupe distribu, gestion de vesion et configuration
Dveloppeurs logiciels
UML pour Java, C++, C#, SQL, WSDL, XML
Gnration, roundtrip, reverse
Architectes mtier
Modlisation intgre de UML, BPMN, Architecture dEntreprise,
Analyse intgre des exigences, des objectifs,
Architectes systme
Modlisation Systmes, Logiciels, Hardware, Exigences
Traabilit, analyse dimpact
Modlisation
du Systme,
de lArchitecture
& du Logiciel
Gnration
de Rapports &
Documentation
Gnration
BPEL, WSDL,
XSD
Intgration
aux outils tiers
Objectifs,
Exigences,
Rgles mtier
& Dictionnaire
Dcouvrez et valuez nos solutions www.modeliosoft.com
Modlisation de lArchitecture dEntreprise,
des Processus Mtier
& de lArchitecture Oriente Services
Gnration de Code
Multi cibles, pour Frameworks
sales@modeliosoft.com - Tl. : 01 30 12 18 40
Modeliosoft
Solutions dentreprise bases sur latelier open source leader de modlisation
Modlisation et implmentation des Systmes et Logiciels
f
Une GPU monstrueuse !
Trois ventilateurs, double processeur GPU 850 Mhz, 2 Go de
mmoire, trois connecteurs DVI, connecteur mini HDMI, la
GTX 560 Ti 2Win de EGVA est un monstre de puissance
pour les jeux les plus exigeants comme le mons-
trueux Battleshield 3. Cette carte occupe deux
slots. Les tests de HardwareCanucks mon-
trent dexcellentes performances, notamment
pour les joueurs les plus exigeants mais vu le prix
(presque 500 ) cest le minimum offrir.
14 Extrait de PROgrammez ! \\ Novembre 2011
actu \\ hardware pour les Geeks

La socit franaise Rb3d tra-
vaille sur le projet Hercule, un
exosquel ette qui se veut pl us
simple et plus polyvalent que les
modles japonais (HAL). Actuelle-
ment encore ltat de prototype,
mais partiellement fonctionnel,
Hercule pourrait tre commercia-
lis au plus tard en 2014 selon
un des principaux investisseurs,
la DGA. Un des arguments de
Hercule est intressant : Lobjec-
tif de ce prototype est simple :
renforcer les capacits du corps
humain transporter de lourdes
charges, allant de 80 100 kg,
sans quil en ressente deffort : ce
ne sont plus les muscles qui por-
tent le poids, mais la structure du
robot. Dautre part, dans la pr-
sentation officielle, Hercule aura
une utilisation civile et militaire :
Les finalits de ce prototype
sont le port et la manipulation de
charges l ourdes. Il s adresse
donc la fois au secteur civil et
militaire. Dans le secteur civil,
on peut dabord penser au monde
hospitalier, qui a de gros besoins.
Pouvoi r porter sans pei ne l es
brancards, les patients Imagi-
nez, en cas de catastrophe natu-
relle, la vitesse et lefficacit que
lon peut gagner ! Les pompiers
pourraient dblayer plus rapide-
ment, apporter le matriel de
secours l o les vhicules ne
peuvent pas passer. Les
armes s i ntressent vi dem-
ment de prs ces nouvelles
technologies. Quelques adapta-
tions sont ncessaires afin de
pouvoir utiliser le systme dans
les conditions particulires impo-
ses par ce domaine. Hercule est
donc tudi pour rsister la
boue, leau, la poussire ainsi
quaux risques dimpacts..
f
Le lapin sauv par le robot
Cest la saga dun des premiers objets communicants pour le grand
public. Le lapin Nabaztag, renomm en Karotz, tait un belle ide :
offrir une autre manire dinteragir avec les
objets et dobtenir des informations. Sans
doute arriv trop tt, le lapin intelligent a
connu les pires difficults pour rester en
vie. Mindscape avait fini par racheter
lactivit Violet avant que lui-mme
ne ft obl i g de fermer. Nous
avons craint pour notre lapin
mais finalement, cest Aldebaran
Robotics, le crateur du robot
Nao, qui a rachet lactivit. Lun
des objectifs est dchanger les
fonctions et les technologies
entre Nao et Karotz, ce dernier
devrait donc bnficier de nouvelles fonctions dans les prochains
mois, le temps que la priode de transition se termine et que tout se
mette en place dans les quipes, la stratgie et la roadmap
produit. Karotz devient de facto une filiale dAldebaran
Robotics pour les produits grand public avec comme
ambition dhabituer les utilisateurs, le tout public
utiliser un objet intelligent tous les jours, pre-
mire tape vers le march robotique de
masse. Sur la partie dveloppement,
aucun changement visible dans les API
depuis lt dernier. Mais Aldebaran
devrait dvoiler des lments dans les
prochaines semaines.
Site : http://www.karotz.com/home
Longue vie au lapin !
f
Une montre Android
intelligente
La montre va-t-elle devenir le prochain march mobile ? La
montre intelligente nest pas trs loin. IM watch russit
construire une montre fonctionnelle et complte utilisant un
cran tactile et le systme Android. Le botier comprend une
mmoire de 4 Go, une ram de 64 Mo, un processeur Freesca-
le, un cran de 1,54, Bluetooth pour la connexion sans fil, sup-
port des formats mp3 et AAC pour laudio. Il est dot dun
connecteur mini USB pour recharger la montre. Surtout, elle
communique avec iOS, Android, RIM, Bada Si lobjet est int-
ressant en soi, il souffre dune autonomie particulirement
mdiocre (24h, 48h sans bluetooth) et la taille du botier est
un peu trop grosse. Ensuite, quelle utilit relle pour un tel
objet ? Lavenir nous le dira.
Le dveloppeur na pas t oubli. Un SDK est disponible
depuis le 7 novembre dernier. Il utilise lenvironnement Eclipse
et le SDK Android, cependant il faudra considrer les limita-
tions de la montre (ressources, cran). Lobjectif est de dispo-
ser dapplications tierces pour lenrichir .
Prix : partir de 249 . Site : http://live.imwatch.it/
f
Un exosquelette
franais
D
.
R
.
actu \\ hardware
Vous rvez de contrler
votre petite baballe prf-
re ? Dnerver votre chat ?
Sphero a pens vous avec la
balle Sphero. Il sagit dune sph-
re contrlable avec un terminal
iOS et Android. Pour le dvelop-
peur, des API seront disponibles
pour pouvoir personnaliser, int-
grer les interactions Sphero
dans son application. Le contr-
le se fait depuis son terminal
mobile (tlphone, tablette). La
partie matrielle est construite
par Orbotix. La sphre est faite
en polycarbonate. Elle pse 168
grammes. La connexion se fait
en bluetooth. La batterie a une
dure dutilisation denviron 60
minutes (temps de charge : 3h).
Outre la direction, Sphero peut
changer de couleur via un syst-
me de led. Geek fond ! Disponi-
bi l i t : 2012. Pri x : envi ron
130-140 $.
Site : http://www.gosphero.com
f
Un bracelet tonnant
Avez-vous dj rv dun bracelet vous disant quil est temps de
faire un peu de sport, de vous rveiller aprs une bonne nuit de
sommeil, de mieux manger ? Jawbone la fait ! Le bracelet UP
rassemble toutes ces fonctions grce ses capteurs. Ce brace-
let comprend une lectronique complexe, une prise jack pour le
connecter votre mobile (iOS) pour rcuprer / synchroniser
les donnes. Il est rsistant leau. Vous pouvez suivre, via lap-
plication, votre activit, les progrs raliss. Prix annonc : 99 $
(pas encore disponible en Europe). Site : http://www.jawbone.com/up
f
Rechargez grce
une sacoche !
Aviiq propose une station de
recharge quand vous tes en
dplacement ou mme au
bureau. Vous pouvez y brancher
jusqu 4 appareils en USB : smartpho-
ne, tablette. La sacoche contient une batterie 10V qui fournit lner-
gie pour la recharger. Cela vite demporter les cbles et chargeurs
que lon oublie souvent ! Simple et plutt lgant. Prix : 79,99 $.
Site : http://www.aviiq.com/pages/portable-charging-station
f
Une balle sous contrle
18 Extrait de PROgrammez ! \\ Novembre 2011
U
ne publication impor-
tante car TOR est
uti l i s pri nci pal e-
ment pour circuler sur Inter-
net de manire anonyme et
scurise. Un rseau dano-
nymisation donc qui sert prin-
cipalement des populations
risques, quelle que soit leur
position gographique, et qui
ont un rel besoin de protec-
tion des communications :
militaires, journalistes, hackti-
vi stes, ou opposants pol i -
tiques comme dissidents. Les
ONG prconisent mme lutili-
sation dun tel support et par
la force des choses, TOR est
devenu une vritable norme de fait, un
rseau de confiance.
Pour Eric Filiol, Rap-
pelons qu lorigine
de TOR se trouve la
mari ne amri cai ne.
Pui s c est devenu
dans l e temps une
fondation. Fondation
qui semble cependant
reste sous contrle
tatique si lon considre son actuel prsi-
dent (un ex de la NSA). Je les ai prvenus de
la faiblesse scuritaire qui permet le pirata-
ge des changes mais ils nont pas boug
ce qui me pousse, publier sur les dangers
de hacking de TOR. Cette publication qui
repose le cas du full disclosure ou non, est
importante car elle sensibilise les utilisa-
teurs potentiels qui pensent tre protgs,
tort, sur ce rseau. Et je pars galement
du pri nci pe qui si moi , j e l ai trouve,
dautres peuvent le faire et des person-
nages pas forcment du bon ct Et si
certains pensent que le rseau na pas
encore t pirat parce quil ny a eu aucune
information sur une attaque potentielle, je
pense que cest une situation utopique
comme dramatique car si un gouvernement
totalitaire dcide despionner, il pourra le
faire en toute impunit.
Un problme dimplmentation
Aprs observation de TOR et notamment de
sa partie cryptographique, Eric Filiol se rend
vite compte que limplmentation qui en est
faite est mal ralise et quil est facile de la
dtourner. Un virus peut facilement infecter
un nud du rseau, changer un octet en
mmoire et faire pas mal de choses mais
un seul virus ne peut infecter lensemble des
nuds qui composent le rseau TOR Un
ensemble de nuds constitu par des
volontaires gographiquement distribus
sur toute la plante et qui mettent leurs
machines contribution sachant que cha-
cun configure sa propre machine, sans
contrle dessus, seulement des prconisa-
tions. Ces machines forment un lieu de pas-
sage et quand des communications passent
par chacune delle, elles sont chiffres.
Quand quelquun veut devenir un contribu-
teur TOR, il tlcharge le code source qui
a t, bien entendu, analys par lquipe de
Filiol. Un code source qui laisse apparatre,
outre des nuds, neuf serveurs rpartis
dans le monde. Un code source divis en
deux parties, une publique et une cache
contenant les nuds TOR volontairement
cachs. La faon dont tout
cela marche ? Quand Alice
dsi re communi quer avec
Bob, ils mettent tous les deux
leurs machines disposition.
Elle peut chater ou envoyer
des messages scuri ss,
chaque intervenant ayant des
communications lentes car il
existe diffrentes couches de
chi ffrement sur l e rseau
TOR qui ralentissent dautant
le trafic. Suite cette requte
de communication, lapplica-
tion TOR va, quant elle,
choisir alatoirement trois
nuds sur une l i ste de
nuds par lesquels passe-
ront obligatoirement les paquets changs
entre Alice et Bob. Une communication
donc chiffre mais galement anonymise
car il est impossible de voir ladresse IP ni
lorigine de la machine, les traces sont cou-
vertes sauf celles sur la machine sur
laquelle le destinataire est directement reli
naturellement.
Lors de cette exprience, Eric Filiol a pris en
charge la partie virus et contournement de
la cryptographie. Il sest cependant lanc
dans laventure en essayant davoir une
vision de lensemble la plus globale possible,
vision purement tactique qui rvle ses ori-
gines militaires et son pass dans les sc-
narios de cyberguerre. Dans ce cadre, la
phase de renseignements est essentielle et
il faut savoir combiner les oprations tac-
tiques et techniques. Ainsi tous les nuds
ont t reprs, soit 9000 adresses IP
dans le monde. La rpartition gographique
en a mme t extraite. Reste que relle-
ment, il ne doit y avoir pas plus de 5000
nuds car le mode dadressage utilis par
TOR est dynamique ce qui signifie quun
mme nud peut cumul er pl usi eurs
adresses IP. Sur chaque nud, le chiffre-
ment AES est utilis, un bon chiffrement en
soi mais ici pas propos dans le meilleur
des modes Aprs la dcouverte de tous
scurit \\ darknet

TORperd son anonymat, le DARKNET tangue
Lors de la confrence H2HC 2011 (Hack to Hack Conference) Sao Paulo, Brsil, Eric
Filiol, directeur du Laboratoire de virologie et cryptologie de lESIEA (cole Suprieure
dInformatique et dlectronique, Automatisme) Laval, a dcid de rvler comment on
pouvait pirater le rseau TOR rput jusqu prsent inviolable.
... Su/Ie dans /e magaz/ne
O
n n'y croyait plus ! Mais c'est enfin fait, le comit de normali-
sation a ratifi le nouveau standard du langage C++. Ce stan-
dard, l'origine nomm C0x parce qu'il devait voir le jour
avant 2010, s'appellera finalement C++11. Il aura donc fallu 8 ans
d'intenses discussions pour que tout cela aboutisse. En effet, le der-
nier standard en vigueur remonte 2003, comme son appellation
C++03 l'indique. Au cours des discussions, le projet C++0x s'est sou-
vent vu remani. Ainsi, un article paru dans Programmez! 116 (fvrier
2009) vous a prsent C++0x en faisant la part belle une innovation
de taille, les concepts, qui finalement s'est vue abandonne peu aprs
la parution dudit article, en juillet 2009. Cette notion de concepts, en
examen depuis 6 ans, ayant t finalement juge immature :-) C++11
n'en est pas moins riche en nouveauts, bien au contraire. Il n'est
mme pas envisageable de les passer toutes en revue. Nous allons
en dcouvrir quelques-unes parmi celles que nous jugeons, tout fait
subjectivement, les plus intressantes pour cet article.
L'ESPRIT, LES OUTILS,
ET LA DOCUMENTATION
Le comit explique que le prsent standard a t labor en suivant
quelques lignes directrices bien dfinies. Notamment et tout d'abord,
garder la stabilit et la compatibilit avec C++98 et mme avec le
langage C. L'introduction de nouvelles fonctionnalits est faite de pr-
frence dans la bibliothque standard plutt que dans le cur du lan-
gage. Sont aussi prfrs les changements susceptibles de faire
voluer les techniques de programmation. Garder les capacits
travailler directement avec le matriel et amliorer les performances
reste primordial. A ce titre, le zero-overhead, autrement dit seul le
ncessaire est inclus au code gnr, est la rgle. Le comit a aussi
eu comme proccupation de "rendre le C++ facile apprendre et
enseigner, sans enlever les fonctionnalits requises par les program-
meurs experts". C++ est-il dsormais facile apprendre ? Rien n'est
moins sr :-) Mais pour nous familiariser avec C++11, nous avons
dj le compilateur gcc, qui dans sa version 4.6, supporte un bon
nombre des nouveauts. On trouvera ce compilateur dans les distri-
butions Linux rcentes, Ubuntu 11.10 par exemple. Pour compiler
du code C++11, on procdera ainsi, au minimum :
g++ -std=c++0x -o lecode lecode.cpp
Le niveau de support du nouveau standard par le compilateur peut
tre consult http://gcc.gnu.org/gcc-4.6/cxx0x_status.html. Le compila-
teur de Visual Studio 2010 propose lui aussi une implmentation
trs partielle de ce nouveau standard. Nous utilisons exclusivement
gcc 4.6 dans cet article. Le document utilis pour le prparer est le
"draft", c'est--dire le standard en cours de rvision. C'tait le seul
document disponible ce moment. Quand vous lirez ces lignes, le
standard officiel, seul document de rfrence, sera paru. Il est pos-
sible de l'acqurir au format PDF pour quelques dollars www.iso.org.
Veille Techno \\ C++
24 PROgrammez ! \\ Dcembre 2011
Cpp11, une volution majeure
du langage C
++
LA PROGRAMMATION CONCURRENTE
La programmation concurrente, ou multi-thread, devient une probl-
matique constante du dveloppement moderne, qui a besoin d'exploi-
ter au mieux les capacits des processeurs multi-coeurs. Tous les
langages proposent des solutions. Ainsi Java vient depuis Java 5 avec
un jeu de classes volues pour la programmation concurrente, et
propose depuis toujours des classes pour lancer des threads. Classes
rudimentaires certes, mais qui avaient malgr tout le mrite d'exister
ds le dbut du langage. Microsoft propose des librairies ou frame-
works nombreux et puissants (Axum, CCR, etc.), pour la programma-
tion concurrente en C#, et plus gnralement sur la plateforme .NET.
Jusqu' maintenant, C++ ne proposait quant lui absolument rien, ce
qui donnait beaucoup d'arguments aux dtracteurs du langage, mme
si des librairies tierces comme BOOST amenaient des solutions. La
lacune est maintenant comble et cette fois non seulement C++ sup-
porte les threads, mais il le fait dans un standard, ce qui n'est pas peu
de chose. Cela mrite que l'on s'y attarde. Ce que propose C++11 est
trs inspir de BOOST. Voici un exemple minimaliste :
#include <thread>
#include <iostream>
using namespace std;
void worker() {
while(true) {
cout << "Programmez!"<< endl;
sleep(1);
}
}
int main(int argc, char const* argv[]) {
thread t(worker);
t.join(); // requis
return 0;
}
Avant toute chose ce code doit tre compil correctement. Ainsi le seul
g++ -std=c++0x -o basic basic.cpp
va certes compiler le code, mais, nous aurons un crash l'excution
comme le montre l'illustration [Fig.1]. Ce qui se passe est que nous
n'avons pas fait d'dition de liens entre notre code et une librairie sys-
tme et n'avons pas non plus demand g++ de gnrer du code mul-
tithread. Un message d'avertissement mis par le compilateur aurait
t le bienvenu. L'incantation correcte pour compiler est celle-ci :
g++ -std=c++0x -lpthread -pthread -o basic basic.cpp
Il s'est fait attendre 8 ans mais a en valait la peine. Cpp11, le nouveau standard,
dfinitivement ratifi par le comit de normalisation, apporte au langage C++ des
amliorations et des nouveauts sduisantes. Dcouvrons-en quelques-unes qui dcoiffent.
22 Extrait de PROgrammez ! \\ Novembre 2011
... Su/Ie dans /e magaz/ne












Vous avez besoin dinfo
sur des sujets
dadministration,
de scurit, de progiciel,
de projets ?
Accdez directement
linformation cible.













Actu trie par secteur
Cas clients
Avis dExperts
www.solutions-logiciels.com
Actus Evnements Newsletter Vidos
Les outils des Dcideurs Informatiques
Trouvez le marchand de journaux
le plus proche
Achetez la version PDF
dossier \\ android
28 PROgrammez ! \\ Dcembre 2011
Android 4.0
Enfin disponible !
Android 4.0 se
veut plus beau,
plus simple, plus
intelligent. Cela
passe par une
interface
redesigne,
de nouveaux
objets.
24 Extrait de PROgrammez ! \\ Novembre 2011
Dcembre 2011 \\ PROgrammez ! 29
dossier \\ android
SOMMAIRE
f
Android 4
en quelques images ..............................30
f
La scurit est-elle assure ? ..............31
f
Au cur dAndroid 4.0 ..........................32
f
Migrer vos applications
vers Android 4.0 ......................................38
f
Dveloppement dapplications
unifies sous Android 4.0 ......................42


G
o
o
g
l
e
Novembre 2011 \\ Extrait de PROgrammez ! 25
dossier \\ android
Android 4 en quelques images
Android 4.0 se veut plus beau, plus simple, plus intelligent. Cela passe par une interface
redesigne, de nouveaux objets. Faisons le tour des nouveauts en images.
LE COIN
DES UTILISATEURS
[Fig.1]
Le choix des applications ouvertes est plus
comprhensible pour lutilisateur, notam-
ment sur les applications actuellement en
excution.
[Fig.2 et 3]
Le verrouillage bnficie des nouvelles
fonctions : contenu en direct provenant de
widget, notification, rponse un SMS
sans dverrouillage. Possibilit de dver-
rouiller par reconnaissance faciale.
[Fig.4]
Android 4 introduit un nouveau systme
vocal pour dicter des textes. Il gre les
pauses, les longues dictes . Cela res-
semble un peu Siri mme si fonctionnel-
lement il est plus limit.
[Fig.5 et 6]
Android 4 propose de nouvelles fonctions
lies la camra et la mani-
pulation des images : focus
continu, gestion de lexposi-
tion, mode panorama. La gale-
ri e photo a t revue et
corrige en incluant un diteur
photo. Sur la partie vido, on
bnficie de filtres de transfor-
mation temps rel.
SUPER V8
Google a beaucoup travaill sur les perfor-
mances du moteur javascript V8 et sur le
moteur de rendu web, Webkit. Lditeur a
fourni des jeux de rsultats par rapport
la v2.3 mais pas par rapport la v3. Les
progrs sont nets. Les utilisateurs seront
ravis [Fig.7].
LE COIN
DES DVELOPPEURS
La sui te du dossi er sera uni quement
consacre aux dveloppeurs. Mais avant
de dmarrer, retenons quelques amliora-
tions et nouveauts. Tout dabord, Android 4
est la premire version unifiant le systme
smartphone et tablette tactile, suivant
lexemple dApple avec iOS. Cela signifie
que les API de Android 3.x, version tablet-
te, sont intgres, linterface et les API
dinterface ont t unifies dans un unique
framework.
Ainsi, les dveloppeurs smartphone acc-
deront aux notifications enrichies, la
slection multiple, acclration matrielle
2D, streaming live http, support du proto-
cole RTP, framework pour le DRM, support
des priphriques dentres (manette, cla-
vier, souris).
Le SDK r14, ou suprieur, est requis. A
noter que la r15 a t dploye trs rapi-
dement aprs la r14. Cette version corri-
ge de nombreux bugs
Sur les changements dApi : http://develo-
per.android.com/sdk/api_diff/14/changes.html
Noubliez pas de consulter le guide dvelop-
peur (prise en compte de la v4) : http://deve-
loper.android.com/guide/index.html
Fig.1
Fig.5
Fig.6
Fig.2
Fig.3 Fig.4
Fig.7
30 PROgrammez ! \\ Dcembre 2011
26 Extrait de PROgrammez ! \\ Novembre 2011
Dcembre 2011 \\ PROgrammez ! 31
dossier \\ android
P
our preuve, lditeur de scurit
Fortinet a investigu la scurit
sur smartphone et notamment
sur Android. Lun des problmes actuels
concerne des attaques de type Botnet
linstar de DroidKungFu, pouvant charger
des logiciels malveillants, ouvrir des appli-
cations, le navigateur, supprimer des
fichiers. Pour lditeur, ce Botnet est une
volution des menaces sur smartphone.
Tandis que les premires tentatives de
logiciels malveillants sur Android, comme
Zitmo (Zeus in the Mobile), sont capables
dintercepter le type dauthentification
deux facteurs que les banques utilisent
pour valider lidentit du titulaire du compte
lorsquil se connecte, DroidKungFu fait
beaucoup plus. En prenant la forme dune
application client VPN lgitime, le logiciel
malveillant simplante rapidement dans les
appareils en utilisant lingnierie sociale.
Une fois excut, DroidKungFu tlcharge
dautres logiciels malveillants, ouvre des
URL dans un navigateur, lance des pro-
grammes et supprime des fichiers du sys-
tme, indiquait rcemment Derek Manky
(Fortinet).
Les URL courtes,
un danger rel !
Mais le botnet nest pas lunique danger.
Ainsi, on parle de plus en plus des raccour-
cis dURL comme TinyURL. Cependant,
lavantage du service de raccourcis dURL
est aussi sa plus grosse faiblesse, car le
service permet aux criminels de masquer
des liens malveillants qui peuvent infecter
le systme dun utilisateur. Historique-
ment, Fortinet a toujours recommand
aux utilisateurs de placer leur curseur sur
lURL douteuse avant de cliquer dessus
pour voir si le lien redirige vers une page
douteuse. Cette mesure de scurit nest
pas applicable aux URL raccourcies. Il ny a
aucun moyen sr de prvenir lavance un
utilisateur qui clique sur une URL raccour-
cie sil sera redirig vers un site mal-
veillant. Une faon de dterminer si une
URL raccourcie pointe vers un site mal-
veillant est de vrifier le domaine la fin
du lien. La plupart des services de rac-
courci s d URL mal vei l l ants observs
rcemment ont utilis le domaine .info.
Une autre faon de dtecter si une URL
raccourcie redirige vers un site malveillant
est de vrifier le lien douteux dans un outil
de filtrage dURL, comme le URL Lookup
de Fortinet. Enfin, une bonne solution de fil-
trage Web protge contre les services de
raccourcis dURL car le domaine tout
entier est encore dtermin et vrifi ,
prcise lditeur.
Lattaque par exploit
Lexploit le plus redoutable est la prise de
contrle du terminal en mode root, per-
mettant lattaquant dutiliser le smart-
phone : rcuprer le carnet dadresses,
effacer des donnes, lancer des sites,
injecter du code illgal, etc. Des logiciels
tels que GingerMaster exploitent ce type
dattaque, lexemple suivant est assez lo-
quent : http://www.cs.ncsu.edu/faculty/jiang/Gin-
gerMaster/
Lun des objectifs des attaquants est claire-
ment largent. Les attaques laide dun
malware bancaire se multiplient notam-
ment avec des logiciels de type Zeus
(Zitmo pour la version mobile). Il sagit de
rcuprer les informations bancaires que
lutilisateur pourrait recevoir par SMS. Lun
des problmes de conception que ces
attaques montrent, concerne le niveau de
privilges / permissions des applications.
Il faut tre trs rigoureux sur ce point et
restreindre les permissions des applica-
tions au risque douvrir des portes au
cur mme du systme. Le site CERT-
LeXSI lexplique trs bien ici : http://cert.
lexsi.com/weblog/index.php/2011/07/12/416-zeus
-in-the-mobile-android
Pour aller plus loin :
http://blog.fortinet.com/tag/android/
I Franois Tonic
La scurit est-elle assure ?
Il ny aura pas de jaloux. Si le PC connat des vagues dattaques depuis de nombreuses
annes, le smartphone nallait pas tre oubli bien longtemps. Depuis quelques mois,
les attaques se multiplient. Comme nous la prcis Axelle Apvrille (Fortinet), jusqu
prsent, il sagissait dutiliser des failles du systme, des applications et des API.
Maintenant, nous passons aux exploits, ce qui est plus proccupant. Et Android, tout
comme iOS, devient une cible de choix.
Les variantes apparues de DroidKungFu
Novembre 2011 \\ Extrait de PROgrammez ! 27
dossier \\ android
32 PROgrammez ! \\ Dcembre 2011
Au cur dAndroid 4.0
La nouvelle version dAndroid vient de sortir, enfin ! Avec elle,
promesse est faite par Google de nous donner accs aux
sources des volutions apportes depuis Android 2.3. Ces
volutions sont nombreuses dans cette version 4.0 dite Ice
Cream Sandwich (ICS pour les intimes) et particulirement au
niveau de lAPI. Nous allons vous prsenter dans cet article
les principales amliorations apportes lAPI du point de
vue du dveloppeur. La plupart des fonctionnalits traites
seront accompagnes dexemples concrets vous facilitant la
prise en main de lAPI dICS. [Fig.1]
Nouveauts de lAPI de contacts
LAPI de contacts dAndroid na pas subi de profonde refonte,
contrairement au passage la version 2.0 (Eclair). En revanche,
de nombreux lments supplmentaires font leur apparition.
Il est dsormais possible daccder au profil de lutilisateur du tl-
phone de la mme faon que les autres contacts. Cest la classe
ContactsContract.Profile qui se charge de fournir les informations
pour la nouvelle table. De la mme faon quun contact peut avoir
plusieurs raw contacts reprsentant plusieurs comptes diff-
rents lis ensemble, le profil utilisateur peut lui aussi possder plu-
sieurs raw contacts. On pourra ainsi retrouver un raw contact
pour le compte Google, un pour le compte Facebook, un pour le
compte Twitter... Deux nouvelles permissions READ_PROFILE et
WRITE_PROFILE permettent daccder respectivement en lectu-
re et en criture au profil utilisateur.
L'autre gros ajout l'API de contacts est la possibilit pour l'utilisa-
teur d'envoyer ses contacts des invitations pour ses diffrents
rseaux sociaux, directement depuis la nouvelle application de
gestion des contacts, People. Pour apparatre dans la liste des
invitations possibles, une application doit fournir un service de syn-
chronisation. Regardons par exemple le fichier AndroidManifest.
xml du projet SampleSyncAdapter, fourni avec le SDK :
<service
android:name=".syncadapter.SyncService"
android:exported="true">
<intent-filter>
<action android:name="android.content.SyncAdapter" />
</intent-filter>
<meta-data
android:name="android.content.SyncAdapter"
android:resource="@xml/syncadapter" />
<meta-data
android:name="android.provider.CONTACTS_STRUCTURE"
android:resource="@xml/contacts" />
</service>
[Fig.2]
On dfinit la classe SyncService qui servira de base notre servi-
ce. Celle-ci initialise une instance de SyncAdapter, o se trouvera
le code ncessaire la synchronisation. On ajoute ensuite deux
fichiers XML. Le premier, syncadapter.xml, dfinit quelques para-
mtres sur le type de compte utilis et noffre rien de nouveau
sous Ice Cream Sandwich. Le second, contacts.xml, contient en
revanche de nouvelles informations :
<ContactsAccountType
xmlns:android="http://schemas.android.com/apk/res/android"
inviteContactActivity="com.example.android.samplesync.
activities.InviteContactActivity"
inviteContactActionLabel="@string/invite_action_label"
viewContactNotifyService="com.example.android.samplesync.
notifier.NotifierService"
viewGroupActivity="com.example.android.samplesync.activities.
ViewGroupActivity"
viewGroupActionLabel="@string/view_group_action_label"
>
<ContactsDataKind
android:mimeType="vnd.android.cursor.item/vnd.samplesync
adapter.profile"
android:icon="@drawable/icon"
android:summaryColumn="data2"
android:detailColumn="data3"
android:detailSocialSummary="true" />
Fig.1
Fig.2
28 Extrait de PROgrammez ! \\ Novembre 2011
... Su/Ie dans /e magaz/ne
dossier \\ android
38 PROgrammez ! \\ Dcembre 2011
Migrer vos applications vers Android 4.0
Rpondant au doux nom dIce Cream Sandwich, la nouvelle mouture dAndroid est une
version majeure de la plateforme, unifiant le dveloppement pour tous les appareils,
lembarquant des smartphones aux tablettes et TV connectes. Afin de tirer
pleinement parti des avances de cette version 4.0, il va tre ncessaire de migrer les
applications existantes. Cette phase de migration savrera plus ou moins lourde
suivant le niveau dintgration que le dveloppeur va viser avec cette nouvelle
mouture.
L
a compatibilit ascendante
entre versions est une norme
tacite au sein de lcosyst-
me Java depuis lapparition des pre-
miers JDK, et Android ne fait pas
exception la rgle, puisque la
firme de Mountain View a adopt
cette approche ds le dbut de la
plateforme. De fait, une application
tournant actuellement sur une ver-
sion antrieure la 4.0 sera de
facto oprationnelle sur Ice Cream
Sandwich. Nanmoins, et puisque
cette nouvelle mouture est une ver-
si on uni fi e qui vi ent l argi r l a
gamme des priphriques supports, il va sans dire quune applica-
tion existante gagnera normment tre migre afin doffrir la
meilleure exprience utilisateur possible aux possesseurs dappa-
reils crans extra larges tels les tablettes. La phase de migration
dune application sera plus ou moins lourde suivant le but poursuivi.
La possibilit la plus lgre aura pour but principal doptimiser lap-
plication existante pour les tablettes alors quune seconde stratgie
plus lourde va ncessiter des modifications profondes sur le code
existant. Elle savre approprie pour la ralisation de nouveaux
dveloppements Android. Quelle que soit la stratgie retenue, les
premires tapes de migration vont tre communes. Tout dabord,
il faut vrifier que lapplication fonctionne toujours correctement sur
Ice Cream Sandwich via une srie de tests raliss sur lmulateur
Android par exemple. Une fois cette tape initiale franchie, le dve-
loppeur va pouvoir bnficier au sein de son application du nouveau
thme "Holographic" ainsi que de la nouvelle police de caractres
du systme nomme Roboto. Ceci est fait en modifiant au sein du
manifest lattribut android:targetSdkVersion de la balise <uses-sdk>
pour y mettre la version 14 du SDK (code dAndroid 4.0) afin de
signifier au systme que lapplication utilise la dernire mouture de
lOS. Ce changement nimpacte pas la version minimale du SDK que
cible lapplication dans le cas dune migration lgre dun existant.
Supporter des crans extra larges
Les nouveaux crans extra larges quipant les tablettes doivent
dsormais tre au cur des proccupations des dveloppeurs.
Afin de simplifier le support du multi-cran au sein des applica-
tions, Android propose un certain nombre de concepts et dabs-
tractions au centre desquelles on retrouve la taille des crans et
leur densit. Exprime en dpi, la den-
sit dun cran correspond la quan-
tit de pixels quune zone physique
dun cran peut contenir. Au sein du
systme, ces 2 paramtres sont
regroups dans les ensembles gn-
raliss suivants :
Taille des crans : small, normal,
large et xlarge
Densit : ldpi (faible densit), mdpi
(moyenne), hdpi (haute), xhdpi
(extra)
Le schma de la [Fig.1] montre la cor-
respondance que le systme ralise
au runtime entre ces donnes gn-
ralises et les crans physiques des appareils. En outre ces tailles
dcrans gnralises ont une rsolution minimum associe, elle-
aussi exprime en dp, toujours dans un souci dindpendance vis-
-vis des donnes physiques des crans.
Larrive des crans extra larges saccompagne de nouvelles cat-
gories pour le support du multi-cran au sein des applications. Les
qualificateurs xlarge et xhdpi permettent de cibler ces crans tout
comme lutilisation dsormais autorise des informations lies la
rsolution des crans. En ce sens, il est bon de noter que la rso-
lution minimum pour les crans extra larges est dau moins
960dp par 720dp. Pas toujours supporte sur les applications
destines aux smartphones, lorientation de lcran en mode pay-
sage est la norme sur les tablettes. De fait, il devient primordial de
dfinir des layouts adapts au mode paysage pour chacun des
crans de son application en utilisant le qualificateur xlarge-land
la suite du nom du dossier layout au sein des ressources.
De plus, il savre intressant de cibler les layouts suivant la taille
de lcran. On pourrait ainsi dfinir pour une activit donne un
Correspondance donnes gnralises et physiques pour les crans
Fig.1
Novembre 2011 \\ Extrait de PROgrammez ! 29
... Su/Ie dans /e magaz/ne
dossier \\ android
42 PROgrammez ! \\ Dcembre 2011
A
ndroid 4.0 apporte un lment de rponse ce problme
en proposant la premire version du systme unifiant le
support des smartphones et des appareils de type tablet-
te. Cette nouvelle version permet donc de crer des applications
uniques, rduisant la rupture instaure depuis le lancement dAn-
droid 3.0 destin un usage sur tablettes uniquement. Cette dif-
frenciation qui contraignait les dveloppeurs maintenir de
multiples versions du code de leurs applications tant rvolue, cet
article propose un premier tat des lieux du dveloppement dune
application fonctionnant sur mobiles et tablettes.
Slectionner les appareils autoriss
utiliser lapplication et fournir les
ressources adquates
La premire tape pour dvelopper une application supportant dif-
frents formats dappareils est de dclarer les tailles dcran que
lapplication supportera dans le fichier AndroidManifest.xml. Pour
cela, il suffit de renseigner la balise <supports-screens>. Par
exemple, pour une application supportant la fois mobiles et
tablettes :
<supports-screens android:
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true" />
Il faut ensuite fournir plusieurs formats pour les ressources affi-
ches sur des crans de diffrentes densits (pour une zone de
mme taille, deux crans de densit diffrente ne proposent pas
la mme quantit de pixels). Par exemple, une image destine
tre utilise sur un cran de faible densit occupe moins de place
pour sadapter un cran plus dense. Il est donc recommand de
dfinir cette ressource pour chaque densit dcran afin de
conserver une taille daffichage constante [Fig.1].
Fournir ces ressources consiste simplement crer la structure
de dossiers adquate, le systme sadaptant ensuite automatique-
ment lcran utilis [Fig.2]. Par dfaut, Android redimensionne lin-
terface de lapplication pour quelle sajuste lcran utilis. Cepen-
dant, il est dans certains cas ncessaire dadapter plus en finesse
la taille et la position de certains lments plutt que de laisser le
systme agir de lui-mme. Pour ce faire, il faut fournir lapplica-
tion des fichiers dinterface ( layouts ) spcifiques aux tailles
dcran dclares dans le fichier AndroidManifest.xml. Ainsi, pour
chaque format, on ajoute un dossier portant un nom spcifique et
comportant les ressources associes. Le systme choisit alors
automatiquement le layout appropri.
Avant larrive dAndroid 3.2, quatre catgories permettaient de
distinguer les crans en fonction dun seuil minimal sur leur rso-
lution exprime en dp (unit permettant de caractriser la
rsolution de lcran de manire indpendante de sa densit) :
xlarge : 960dp x 720dp
large : 640dp x 480dp
normal : 470dp x 320dp
small : 426dp x 320dp
Cette hirarchie est devenue insuffisante pour spcifier autant de
layouts que de formats dcrans existants. La mthode recomman-
de depuis Android 3.2 est de rpartir ces fichiers selon la largeur
minimale ncessaire en dp . Par exemple, pour une application
proposant des layouts diffrents pour mobiles, tablettes 7 pouces
et tablettes 10 pouces, il faut dfinir trois dossiers :
res/layout/ # Pour mobiles (par dfaut)
res/layout-sw600dp/ # Pour les tablettes 7 pouces
res/layout-sw720dp/ # Pour les tablettes 10 pouces
Cette premire approche amliore considrablement le rendu
dune application sur plusieurs supports mais ne permet pas dop-
timiser totalement le potentiel de chaque type dappareil : une
tablette de par son cran de grande taille permet laffichage de
plus de contenu simultanment alors que ce mme contenu doit
tre rparti sur plusieurs vues pour un mobile par exemple.
Optimiser linterface selon lappareil
en utilisant les fragments
Instaurs depuis la version 3.0, les fragments permettent de
dcomposer les fonctionnalits dune application en plusieurs
blocs affichables et limitent ainsi les changements dactivit,
notamment pour une application compose de plusieurs volets.
Les fragments sont particulirement utiles pour un usage sur des
Dveloppement dapplications
unifies sous Android 4.0
Les dveloppeurs dapplications Android se sont pendant longtemps heurts la
varit de produits utilisant la plateforme mobile. En effet, ne pas savoir sur quel
support une application est utilise devient problmatique pour fournir un confort
dutilisation optimal.
Fig.1
Fig.2
30 Extrait de PROgrammez ! \\ Novembre 2011
... Su/Ie dans /e magaz/ne
Novembre 2011 \\ Extrait de PROgrammez ! 31
U
n processus de recrutement de
dvel oppeurs i nformati que se
droule classiquement en trois
tapes : un pr-filtrage technique est ralis
sur les CV ; les ressources humaines (RH)
assurent des entretiens afin d'tablir une
'short list' ; les entretiens techniques sont
assurs par les services comptents de
l'entreprise. Ce processus affiche cepen-
dant plusieurs failles : le contenu du CV est
thorique et peut se rvler loign des
comptences relles des individus ; les RH
n'ont pas les connaissances ncessaires
pour juger ces mmes comptences ; les
techniciens de l'entreprise n'ont pas le
temps d'assurer les entretiens en face
face afin de valider les capacits des candi-
dats qui peuvent tre values via des QCM
ne disposant gnralement que d'exercices
thoriques ! Dans ces conditions, un dcala-
ge trs net subsiste entre les connais-
sances thoriques, sur lesquelles portent
finalement le recrutement standard, et les
comptences relles des candidats et leur
capacit s'adapter une mission.
Autre exemple classique, le jeune ingnieur
diplm qui sort de l'cole se verra bloqu
aux portes des entreprises qui recrutent,
car son CV n'affiche que ses connaissances
thoriques, qui peuvent l encore tre vali-
des par un QCM standard, mais n'affiche
pas ses comptences acquises titre per-
sonnel et qui en feraient pourtant un candi-
dat directement oprationnel. L'entreprise
prfrera se tourner vers des profi l s
exper ts qui af f i chent
quelques annes d'exp-
riences...
Les fondateurs de la jeune
start-up Cartser ont subi
ces contraintes. Ils ont
galr de longs mois,
diplme en poche, avant de trouver une
entreprise qui leur ouvre ses portes. De
leurs expriences professionnelles, ils ont
galement constat que souvent ce ne sont
pas l es personnes qui ont l e pl us de
connaissances qui sont les plus appropries
tre positionnes sur certaines tches en
entreprise. Ce sont plutt les personnes
qui ont la tte sur les paules, une capacit
de recul et de dcortiquer les problmes qui
sont gnralement intressantes, en parti-
cul i er pour l es tches de R&D ou qui
demandent rflexion , constate Frdric
Desmoulin, l'origine de la cration de Cart-
ser. Dans une SSII, au quotidien et au del
de la connaissance des standards de type
Java ou C++, le dveloppeur informatique
peut tre amen travailler sur des probl-
matiques complexes, qui demandent tre
rapidement oprationnel. De mme chez un
diteur de logiciels, participer la R&D sou-
lve des problmatiques qui demandent
rflexion.
Se posant la question de ce qui est impor-
tant pour le recrutement d'un
dvel oppeur i nformati que,
Cartser se propose d'inverser
les processus via son offre en
ligne Weecod, une plateforme
d'valuation des comptences
techniques en programmation
qui permet de si mul er des probl mes
concrets et demande aux candidats d'labo-
rer une solution en programmant dans un
diteur de code interactif en ligne. Ce der-
nier permet de coder, de compiler, de tester
le code, et de soumettre la solution un
exercice. Weecod est orient vers l'extrac-
tion chez le candidat de sa capacit struc-
turer son raisonnement afin d'essayer de
dcortiquer un problme et de l'amener
une solution, dcrit Frdric Desmoulin.
Nous avons conserv le
vol et connai ssances,
qui est important pour
les technologies, les lan-
gages, les frameworks,
afin de mesurer si le
candidat peut tre trs
rapidement opration-
nel sur ces thmes. Mais
nous allons plus loin sur sa capacit struc-
turer un raisonnement. Notre dmarche
d'inversion du processus a une finalit
dmocratique : elle n'est pas base sur un
CV souvent incorrect, mais sur l'valuation
des comptences relles du candidat.
L'entreprise qui recrute dfinit une fiche de
poste et valorise ses priorits en termes de
comptences techni ques : CONNAI S-
SANCES, le candidat sera-t-il rapidement
oprationnel ? ; RESOLUTION, sera-t-il
capable de traiter des algorithmes com-
plexes ? ; MODELISATION, pour qualifier le
profil architecture, etc. Le recruteur peut
jouer sur les curseurs qui dlimitent la
valeur de ces comptences selon le profil
recherch, par exemple en donnant plus de
carrire \\ comptence

Evaluer en ligne les comptences
de programmation des candidats
Weecod est un outil en ligne d'aide la dcision sur la partie technique du recrutement
de dveloppeurs en informatique.
Les candidats
sont invits
montrer ce dont
ils sont
capables...

... Su/Ie dans /e magaz/ne


32 Extrait de PROgrammez ! \\ Novembre 2011

technique \\ projet
L
orsque lon dmarre un projet aujour-
dhui, il est important de prendre tous
ces aspects en considration voire de
les revisiter. Par ailleurs, de nouvelles tech-
nologies et outils peuvent aussi nous aider
supporter ces nouvelles contraintes.
Evidemment, pas de science exacte autour
de ces sujets l, simplement des retours
dexprience illustrs, pour lexercice, par
des technologies Microsoft.
Une application daujourdhui :
quels changements ?
Mais quentend-on par le dveloppement
daujourdhui ? Cest simplement lintgra-
tion de nos usages et contraintes actuels.
Dun point de vue fonctionnel :
des applications disponibles sur le poste
de travail, mais aussi sur nos appareils
nomades (tlphone, tablette,)
des applications qui savent mieux exploiter
leur environnement de fonctionnement
(interaction avec dautres applications
connexes ou communautaires)
de plus en plus de donnes en ligne, pour
les partager de manire publique ou pri-
ve une meilleure ractivit (exploitation
de nos machines multi-core)
une ergonomie sexy et pense pour lutili-
sateur des services disponibles depuis
nimporte o et tout le temps
Dun point de vue technique :
lavnement des applications web
larrive de plateformes et de services
dans les nuages
les applications naissent/vivent/vo-
luent/coexistent/meurent mais les don-
nes perdurent
le besoin dune architecture gnrique et
adaptable (adaptation au dveloppement
agile)
une meilleure lisibilit du code
une meilleure testabilit
une amlioration du confort de dveloppe-
ment et de la productivit du dveloppeur
Bref, tout un programme !
Paralllement - ou plutt transversalement -
ces aspects fonctionnels et techniques se
dcidera larchitecture de lapplication.
Lorsque lon parle darchitecture logicielle,
on mlange souvent 2 niveaux diffrents de
conception :
L archi tecture physi que au sens
client/serveur
Larchitecture logique de lapplication
cliente
Larchitecture physique
au sens client/serveur
Larchitecture physique va dcomposer
lapplication de manire fonctionnelle, mais
galement technique pour rpartir les l-
ments ct client et serveur. Lapplication
se trouvera ct client, et les services
mtiers ainsi que la base de donnes et sa
publication se trouveront ct serveur. Tout
le fonctionnel qui est dport ct serveur
sera factoris pour les diffrents clients
potentiels [Fig.1].
Combien de scnarios mtiers sont
couverts par mon projet ?
Un projet donne souvent lieu plusieurs
applications. Dautant plus quaujourdhui il
est trs frquent de dvelopper une version
dapplication par smartphone et/ou tablet-
te. Quand ce nest pas lapplication compl-
te qui se dcline sur plusieurs plateformes,
cela peut tre un service mtier qui est utili-
s par diffrents clients. Par exemple cest
souvent le cas pour laccs aux donnes : il
est trs frquent que plusieurs clients (appli-
cations ou services) utilisent les mmes
donnes, ne serait-ce que pour des scna-
Concevoir des applications aujourdhui :
quels changements ? comment sadapter ?
Les technologies de dveloppement sont en mutation permanente, boostes par les
nouveaux usages : appareils nomades et autres mdias sociaux omniprsents dans notre
quotidien. Si lon compare une application dveloppe il y a 10 ans avec une application
actuelle, cest le jour et la nuit, tant du point de vue de son ergonomie que de ses
fonctionnalits. Cette volution dborde du champ technique du projet et de son architecture,
touchant galement les processus, la mthodologie et mme les profils des intervenants.
Fig.1
... Su/Ie dans /e magaz/ne
Novembre 2011 \\ Extrait de PROgrammez ! 33

outils
D
ans un premier temps nous allons installer GIT sur la solu-
tion AWS (Amazone Web Service). A cet effet nous allons
utiliser Amazon Simple Storage Service (S3) comme dpt
central Git. Amazon S3 est un service de stockage pour Internet. Il
est pens pour simplifier laccs un systme de stockage lchelle
du web, pour les dveloppeurs. Pour linstallation de GIT (JGit), il faut
dans un premier temps installer Git depuis http://git-scm.com/
Pui s tl charger l e scri pt Shel l JGi t depui s l e l i en
http://www.eclipse.org/jgit/download/ et ajouter au rpertoire $HOME/bin
en le renommant jgit. Puis il faut ajouter un fichier de configuration
dans votre $HOME/.jgit pour y ajouter les cls d'accs qui permet-
tent une forte authentification au compte Amazon Web Service.
accesskey: aws access key
secretkey: aws secret access key
Ces cls sont disponibles dans l'administration du compte AWS sur
lequel vous voulez crer le dpt. Elles vous font donc crer un buc-
ket dans la section S3. Pour trouver ces cls, une fois connect
votre compte allez dans Compte, puis dans Identifiants de scurit,
dans le paragraphe Accdez aux justificatifs d'identit puis rcu-
prez l'identifiant de cl d'accs et la cl d'accs secrte et ajoutez-
les au fichier de configuration cr ci-dessus. Ces cls ne doivent en
aucun cas tre communiques. Pour plus d'information sur lauthen-
tification forte sur AWS, rendez-vous sur le site d'Amazon AWS.
Dans un deuxime temps il faut crer son dpt en local en utilisant
les commandes de Git et ajouter le serveur la liste des serveurs
connus grce la commande :
git remote add origin amazon-s3://.jgit@nom-du-bucket/le-dpt.git
Il est ensuite possible d'utiliser la surcouche JGit l'aide la com-
mande jgit qui possde quasiment les mmes options que la com-
mande git. Pour donner accs au dpt central Git sur le Cloud aux
autres dveloppeurs, Amazon propose une interface graphique pour
grer les droits d'accs selon le Bucket S3 . Il est possible de
choisir d'affecter un autre compte AWS les droits de consultation,
d'ajout et de suppression, de visualisation des droits et de modifica-
tion des droits. Les cots de GIT en SaaS sur AWS S3 dfient toutes
les solutions concurrentes du march !
Pour valuer, le cot de GIT en SaaS sur S3, il faut connatre lespa-
ce de stockage ncessaire sur S3, le type de requte sur S3 (PUT,
COPY, POST ou LIST) et le transfert de donnes sortantes.
Pour connatre la masse de donnes sortantes nous avons d faire
une estimation : selon le nombre d'utilisateurs. Pour cela il faut
comprendre le fonctionnement de Git. Git utilise la commande clone
pour rcuprer l'ensemble d'un dpt, le tlchargement depuis le
serveur sera donc de la taille du dpt (ici 100 Mo). Mais une fois le
Installer GIT en un clin d'il
en mode SaaS, sur le cloud
Git est un SCM (Source Control Manager) dcentralis. Il ne repose pas sur une base de
donnes unique (dpt). Celle-ci peut tre disponible sur plusieurs serveurs, et chaque
dveloppeur en possde une copie complte sur son propre poste. GIT en mode SaaS est
loutil idal pour un dveloppeur Agile, nomade. Il permet au dveloppeur de travailler
nimporte o dans le monde.
clone fait, la commande pull permet de rcuprer uniquement les
derniers ajouts ou modifications faits par d'autres dveloppeurs
depuis un autre clone. On peut se rendre compte que l'action de clo-
ner peut engendrer un tlchargement assez important depuis le
serveur, tandis que chaque pull reprsentera au maximum quelques
dizaines de Ko. On notera que le nombre de clones est peu prs
quivalent au nombre de dveloppeurs.
Estimation de l'utilisation d'Amazon S3
(attention, les tarifs voluent rgulirement)
Espace utilis 500 Mo 1 Go 2 Go 1 Go 2 Go 5 Go 13 Go
Prix Stockage ($) 0,07 0,14 0,28 0,14 0,28 0,7 1,82
Trafic sortant 5 Go 10 Go 20 Go 10 Go 20 Go 50 Go 130 Go
Prix du trafic sortant ($) 0,6 1,2 2,4 1,2 2,4 6 15,6
Totaux ($/mois) 0,67 1,34 2,68 1,34 2,68 6,7 17,42
Prix de stockage = 0,14$ * espace utilis (Go). Prix du trafic sortant = 0,12$ * trafic sortant (Go).
Ce tableau est une estimation du premier mois d'utilisation, c'est--
dire en comptant une dizaine de clones par dpts. Il faut bien com-
prendre qu'une fois ces clones effectus pour mettre jour le dpt
chaque dveloppeur fera un pull ou deux pulls par jour mais la quan-
tit transfre pour un pull sera presque nulle.
Nous constatons que l'utilisation de GIT en SaaS sur AWS a un ROI
trs avantageux, remplaant aisment une solution interne ou exter-
ne cl en main. Cette solution SaaS offre une infrastructure de
stockage hautement durable et totalement scurise, offrant une
disponibilit de service de 99,99 %.
I Cyril Agoin & Herv Desaunois
Consultants seniors
I Robin Collet, Damien Flament, Thierry Weissbeck, Lois Collet
Ingnieurs stagiaires
Valtech Consulting Toulouse
34 Extrait de PROgrammez ! \\ Novembre 2011
gaming \\ drone

N
ous allons dans un premier temps tudier lAPI fournie
directement par Parrot (lentreprise ayant cr et dis-
tribuant lAR. Drone) qui est dans un langage dit bas-
niveau car reposant seulement sur du C. Ce choix est tout fait
logique pour une entreprise comme Parrot qui commercialise
normment dappareils de type embarqu, ou fonctionnant avec
ce type dappareil. tre bas niveau permet davoir accs len-
semble des ressources de la machine host, que ce soit un appareil
mobile ou bien un mini-hlicoptre. Alors oui, cela peut sembler un
peu verbeux pour quelquun qui ne pratique que des langages haut
niveau tels que C# ou bien Java, mais chacun a ses avantages.
Nous parlerons aujourdhui seulement de lAPI fournie par Parrot en
C, mais notez quil existe des surcouches dans peu prs tous les
langages existants, et mme haut niveau, pour ceux qui sont aller-
giques au bas niveau. Le SDK de Parrot est multiplateforme et fonc-
tionne tout aussi bien sur Linux, Mac ou bien Windows, mais nous
allons opter pour la plateforme Windows pour les exemples de cet
article, choix arbitraire, mais classique.
Rappel
Nous avions vu que lAR. Drone cest une coque, quatre hlices,
mais surtout un cerveau reposant sur un noyau Linux. Ce dernier
lui permet de grer de nombreuses informations, mais galement
deffectuer des calculs qui peuvent tre directement faits par lappa-
reil sans avoir besoin dtre dports sur chacun des clients, on
pourra citer par exemple la dtection de Tags.
Le SDK est l pour communiquer avec le Linux embarqu dans votre
AR. Drone, lensemble des communications passe bien sr par la
connexion Wifi qui relie lappareil votre PC (ou tlphone), mais le
protocole en lui-mme est une API complexe que Parrot a mise en
place avec son exprience de ce type dappareil.
Nous allons dans cet article nous intresser principalement lAPI
en elle-mme et peu au grand principe rseau existant, permettant
lensemble de communiquer correctement. Pour nous, dvelop-
peurs, nous noterons juste quil ne faut pas oublier de lier les deux
Aprs avoir fait une prsentation de lAR. Drone, et vu ce quil est
capable de faire, dans le numro prcdent, nous allons
maintenant passer un exercice un peu plus technique. Nous
avions voqu lexistence dun SDK (Software Developpement
Kit), mais sans nous y attarder plus que cela. Il est temps de
combler ce manque et de vous faire
dcouvrir comment tirer parti de
lAR. Drone au sein de votre propre
application. Le but tant de crer un
client home-made permettant de faire
dcoller et contrler un AR. Drone.
appareils en mode ad hoc avant de
faire nos tests, sinon peu despoir
que cela dcolle !
Installation
Comme tout SDK, il faut noter une
phase dinstallation et surtout de prre-
quis. Par chance, Parrot plutt bien fait les choses, avec une
documentation dune taille que nous pourrions qualifier de lgre,
mais suffisante dans la majorit des cas. La communaut autour de
ce SDK commence prendre de lampleur, donc mme si vous vous
retrouvez dans une situation de blocage, vous devriez pouvoir vous
en sortir assez rapidement.
Voici donc la liste des prrequis que vous devez installer pour com-
mencer le dveloppement sous Windows :
1 Visual Studio 2008/2010 express ou plus
2 https://projects.ardrone.org/ pour rcuprer le SDK AR. Drone
3 http://www.microsoft.com/downloads/en/details.aspx?FamilyID=6b6c21d2-
2006-4afa-9702-529fa782d63b&displaylang=en pour le SDK Windows
4 http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&Fami-
lyID=3021d52b-514e-41d3-ad02-438a3ba730ba pour le SDK DirectX
5 http://www.libsdl.org/release/SDL-devel-1.2.14-VC8.zip pour la SDL
(bibliothque graphique)
Les deux SDK de Microsoft sont installer, tandis que pour les deux
autres prrequis, je vous invite les mettre dans un dossier la
racine de votre disque, cela sera plus simple pour la configuration
de votre projet.
Dans larchive contenant le SDK de lAR. Drone, vous trouverez une
documentation complte dcrivant linstallation dans le dossier
Examples\Win32\VCProjects, ce nest pas forcment la partie la
plus passionnante de la dcouverte du SDK mais elle nen reste pas
moins vitale, donc suivez-l la lettre pour avoir un environnement
de travail stable. Une fois linstallation faite, vous devriez tre en
mesure dexcuter la dmonstration Win32 permettant de prendre
2
e
partie
A la dcouverte du SDK
de lAR. Drone
D
.
R
.
... Su/Ie dans /e magaz/ne
Novembre 2011 \\ Extrait de PROgrammez ! 35

code \\ C#
Bertrand Meyer, en 1985,
est le premier introduire
la technique de program-
mation par contrat (Design
By Contract) permettant de
rpondre techni quement au
Principe de Liskov. Cette technique propose de vrifier que certaines
conditions formant un contrat sont vraies un moment donn dun
programme. Pour cela, trois types de conditions sont dfinies :
Pr-condition : condition devant tre vraie en amont du traitement
Post-condition : condition devant tre vraie en aval du traitement
Invariant : condition devant toujours tre vraie
1CODE CONTRACTS
En tant que dveloppeur, il est recommand de valider tout entrant
externe une mthode. Nombreux sont les dveloppeurs qui pas-
sent du temps implmenter leur propre logique de validation qui
vrifie une certaine condition et lve une exception si elle nest pas
respecte. Cette approche peut devenir rapidement illisible et lourde
maintenir. Voici un exemple de validation sans Code Contracts :
public double ComputeInterest(double amount, double rate)
{
double result = 0;
//Pre-Condition
if (rate < 1)
throw new ArgumentOutOfRangeException(
Interest rate must be less than 1.);
result = amount + amount * rate;
//Post-Condition
if (result < amount)
throw new ArgumentOutOfRangeException(
Amount after interest must be superior to initial amount.);
return result;
}
Mme si le code peut tre optimis en encapsulant la logique de vali-
dation dans une seule classe, il reste lexemple de ce quil ne faut
plus faire car chaque mthode a besoin de sa propre logique de vali-
dation. Afin de rpondre cette problmatique, Microsoft propose
Design By Contract :
Code Contracts avec C# 4.0
Dans larticle S.O.L.I.D paru il y a quelques mois, nous vous avons prsent les grands
principes qui ont pour objectif damliorer la qualit des programmes. Cet article
approfondit le principe de Sgrgation de Liskov (LSP) et prsente comment Microsoft,
par le biais de lAPI Code Contracts, permet de limplmenter de manire efficace et
lgante.
une implmentation du principe Design by Contract travers une
API trs complte et simple utiliser : Code Contracts. Tout ce qui
est ncessaire lutilisation de cette API est dj prsent dans le
.NET Framework 4.0 (dans la BCL). Il est aussi possible dutiliser
Code Contracts avec le .NET Framework 3.5, en tlchargeant les
binaires sur le site de Microsoft http://research.microsoft.com/en-us/pro-
jects/contracts/. Les diffrents types de contrats disponibles ainsi que
la manire de les utiliser vont tre prsents par le biais dun
exemple simple. Un point remarquer : Pour pouvoir utiliser Code
Contracts, lactivation se trouve dans les paramtres de projet dans
longlet Code Contracts [Fig.1].
2API CODE CONTRACTS
Voici comment implmenter les diffrents types de contrats dispo-
nibles dans lAPI Code Contracts.
Les Pr-conditions
Ce sont les conditions qui doivent tre vraies en dbut de traitement.
En gnral, il faut sassurer que certains paramtres ne sont pas
nuls, ou encore quils ont des valeurs valides. De cette manire, on
est capable de savoir que le module est appel dans des conditions
normales de fonctionnement. Voici un exemple de pr-conditions :
//Pre-Condition
Contract.Requires(rate > 0, Rate must be higher than 0.);
Contract.Requires(amount > 0, Amount must be higher than 0.);
Contract.Requires(rate < 1, Rate must be less than 1.);
APPLICATION : Mthode
LANGAGE : C#
SOURCE : Non
DIFFICULTE
MOYENNE
Fig.1
... Su/Ie dans /e magaz/ne
36 Extrait de PROgrammez ! \\ Novembre 2011

code \\ matriel
Larriv de la nouvelle librai-
rie Microsoft C++ Accele-
rated Massive Parallelism
(C++ AMP) est sans aucun
doute un vnement impor-
tant pour la communaut des
dveloppeurs Microsoft. Naturellement, les dveloppeurs .NET sont
un peu dus, car pour linstant, il ny a pas dimplmentation GPU
pour le Framework .NET planifie, mais les quipes y rflchissent.
Cependant, si vous souhaitez dvelopper en .NET sur GPU, la socit
Tidepowerd (http://www.tidepowerd.com/) fournit une belle implmenta-
tion .NET, avec sa librairie GPU.NET (http:/www.tidepowerd.com/product).
Pour une grande majorit des acteurs concerns par la programma-
tion GPU, lannonce de la nouvelle librairie Microsoft C++ AMP a
suscit la fois curiosit et tonnement. Pourquoi Microsoft annon-
ce-t-il une nouvelle librairie pour traiter du calcul sur GPU alors
que nVIDIA CUDA et OpenCL occupent dj ce territoire ? La pro-
grammation GPU ntant pas trs populaire, je souhaitais vous pr-
senter ces technologies travers une srie darticles. Lobjectif est
de vous initier aux rudiments de ces technologies en utilisant syst-
matiquement le mme algorithme. Dans cette introduction je vous
prsenterai dans un premier temps les diffrentes technologies GPU
que nous allons tudier : nVIDIA CUDA C, OpenCL et Microsoft C++
AMP. Jai limin lillustration avec lAPI Microsoft Direct Compute
(http://en.wikipedia.org/wiki/DirectCompute), car elle ma sembl moins
pertinente au regard de larrive de la librairie Microsoft C++ AMP.
Dans un second temps, je vous prsenterai lalgorithme slectionn
pour toutes nos implmentations. Puis nous mesurerons sa perfor-
mance en mode squentiel. Enfin, nous terminerons cette introduc-
tion par lutilisation de la librairie Microsoft Parallel Patterns Library
(http://msdn.microsoft. com/en-us/library/dd492418.aspx), pour parallliser
notre code exemple sur CPU. Pour viter tout malentendu, la pro-
grammation GPU est particulirement bien adapte au paralllisme
orient donnes et non orient tches. En dautres termes, si votre
problme est domin par un volume de donnes consquent qui doit
tre trait par une unique mthode, alors vous pouvez tirer parti
dune solution oriente GPU. Sur la plateforme .NET la librairie PLINQ
rpond cette caractristique, mais en gnral toutes les boucles
parallles sont du paralllisme orient donnes.
PRSENTATION DES TECHNOLOGIES
nVIDIA CUDA C
Le f ramework nVI DI A CUDA ( http://www.nvi di a.com/obj ect/
cuda_home_new.html) connat un succs grandissant depuis sa sortie
en 2007. Il fait aujourdhui office de standard dans de nombreuses
Introduction la programmation GPU
entreprises. Par exemple, loffre Microsoft HPC Server arrive avec
une distribution nVIDIA CUDA afin de permettre aux dveloppeurs
dimplmenter des solutions hybrides, mlangeant par exemple les
technologies MPI (http://en.wikipedia.org/wiki/Message_Passing_Interface),
OpenMP (http://en.wikipedia.org/wiki/OpenMP) et nVIDIA CUDA C.
Lobjectif est naturellement de tirer le maximum de puissance des
matriels disponibles sur chacun des nuds dune grille HPC.
Aujourdhui, il existe un vritable cosystme nVIDIA CUDA permet-
tant de profiter de nombreuses librairies optimises et dclin sur dif-
frents langages.
On y trouve aussi de loutillage sophistiqu afin de profiler et de dbo-
guer graphiquement sous Visual Studio, portant le dveloppement
GPU une maturit proche du dveloppement sur CPU.
Par nature, le code nVIDIA CUDA sexcute exclusivement sur des
matriels nVIDIA supportant larchitecture CUDA la fois sous Win-
dows, UNIX et MAC.
OpenCL
Plus rcemment, le standard ouvert OpenCL (Open Computing Lan-
guage : http://www.khronos.org/opencl) support par le groupe khronos, a
commenc rencontrer un franc succs, car son indpendance vis--
vis du matriel et de la plateforme dexcution prsente un atout que
nVIDIA CUDA noffre pas.
En effet, OpenCL permet de produire un code source portable (Open-
CL sexprime en langage C), tout en acceptant de parallliser des trai-
tements sur CPU ou sur GPU ou bien les deux. Portable sur diffrents
systmes dexploitation, diffrents types de cartes graphiques, Open-
CL a de quoi sduire les plus exigeants.
APPLICATION : GPU
LANGAGE : C++
SOURCE : Non
DIFFICULTE
MOYENNE
La programmation GPU a souvent mauvaise rputation auprs des dveloppeurs
car elle est considre comme difficile et rserve des spcialistes
techniques souvent rpartis dans des domaines de niches rclamant
des performances accrues : simulation en calcul scientifique,
imagerie mdicale, dynamiques des fluides, protection de
lenvironnement, calculs financiers en salle de march ...
1
re
partie
... Su/Ie dans /e magaz/ne
Novembre 2011 \\ Extrait de PROgrammez ! 37
code \\ flex

Flex est une solution de
dveloppement cre en
2004, dite par Adobe.
Elle permet de dvelopper
des applications Internet
ri ches (RI A) bases sur l a
technologie Flash, et donc multiplateformes. Lobjectif de FLEX est
de permettre des dveloppeurs classiques de crer facilement
et rapidement des applications Flash. Le dveloppement en FLEX se
fait principalement grce :
un langage descriptif : le MXML, qui permet de crer toute linter-
face et une partie du comportement de lapplication.
un langage impratif ( traditionnel ) : lActionScript, inspir du
JavaScript.
Lexemple ci-dessous prsente la fois la partie descriptive et la par-
tie imprative. On remarque lutilisation de deux librairies : FlashX
(ou fx) pour inclure de lActionScript, et Spark (ou s) pour les compo-
sants graphiques [Fig.1 et 2].
En mai dernier, Adobe a sorti la
version 4.5 du SDK FLEX, dont
la principale nouveaut est FLEX
Mobile. Ce dernier permet de
dvel opper des appl i cati ons
FLEX compatibles avec les plate-
formes Android, iOS (iPhone,
i Pad, i Touch) et Bl ackBerry
Tablet (Playbook). Outre les faci-
lits offertes par cette nouvelle
version, on y trouve ainsi toute
une srie de librairies spci-
fiques nos smartphones et
tablettes, notamment pour la
gestion du multitouch, de lacc-
lromtre, du GPS, etc.
FLEX Mobile :
Flex sait aussi se faire mobile
Les applications ncessitent le runtime Air pour fonctionner. Sur un
terminal Android, le lancement dune application FLEX proposera le
tlchargement de Air si celui-ci nest pas install. Sous iOS, Air
nest pas disponible, et sera inclus directement lapplication lors
du dploiement. Enfin, sur la PlayBook de RIM, Air est intgr en
natif (une grosse partie de linterface de lOS est dailleurs base sur
FLEX). Nous allons donc dcouvrir ici FLEX Mobile, au travers du
dveloppement, puis du dploiement, dune application simple don-
nant la liste des pays de lUnion Europenne et quelques informa-
tions sur ceux-ci. Les donnes sur les pays seront stockes dans un
fichier XML qui sera, avec les images des drapeaux, intgr dans
lapplication [Fig.3].
VOTRE PREMIRE APPLICATION FLEX
Cration du projet
Avant de commencer, vous devez tlcharger Flash Builder 4.5 Pre-
mium, lenvironnement de dveloppement FLEX, bas sur Eclipse.
Vous le trouverez sur le site dAdobe en version dvaluation de 60
jours : http://www.adobe.com/go/try_flashbuilder/.
Une fois celui-ci install et lanc, vous vous retrouvez devant une
fentre trs similaire Eclipse, et une Start Page . Celle-ci vous
envoie vers diffrents tutoriaux et exemples de code trs utiles pour
aller plus loin [Fig.4]. Pour notre projet, slectionnez File -> New -> Flex
Mobile Project. Un assistant vous demande le nom de lapplication :
APPLICATION : Mobile
LANGAGE : AS
SOURCE : Non
DIFFICULTE
MOYENNE
Une entreprise qui souhaite cibler un maximum de plateformes mobiles se doit dinvestir
dans diffrents frameworks. Effectivement, la programmation mobile est aujourdhui
dpendante de la ncessit de dvelopper plusieurs versions, destination des
diffrentes plateformes (iPhone, Android). Une solution pour viter cette fragmentation
est FLEX Mobile.
Fig.1
Fig.4
Fig.3
Fig.2
... Su/Ie dans /e magaz/ne
38 Extrait de PROgrammez ! \\ Novembre 2011
code \\ iOS

Ce quatrime et dernier
article va donc aborder ce
sujet et prsenter une des
possibilits offerte par iOS
en matire de stockage,
savoir la brique Core Data .
Dautres solutions telles que SQLite existent sur iOS et peuvent
tre utilises au sein de vos applications pour stocker des donnes,
mais nous nous concentrerons uniquement sur lutilisation de Core
Data pour finaliser notre application de gestion de contacts.
PRSENTATION DE CORE DATA
Core Data est un framework propos par Apple aux dveloppeurs
iOS et MacOS afin de leur permettre de pouvoir grer simplement et
de manire efficace des donnes au sein de leur application.
Core Data peut tre rang dans la catgorie des ORM (Object Rela-
tional Mapping) et est totalement intgr aux outils Apple, que ce
soit avec les systmes dexploitation (iOS et MacOS) ou loutil de
dveloppement Xcode. Comme tout outil ORM, Core Data va repo-
ser sur diffrents concepts importants :
Modle de donnes
Contexte dexcution
Systme de persistance
Le modle de donnes correspond aux objets mtiers (les classes)
qui seront manipules par lapplication. Les objets peuvent tre
autonomes mais il peut exister des relations entre ceux-ci et cest
dans ce cas le framework qui va se charger de grer celles-ci si
vous souhaitez rcuprer un objet et ses enfants.
Le contexte dexcution sera utilis par les diffrentes vues/crans
de lapplication afin de pouvoir interagir avec les donnes (slection,
insertion, mise jour, suppression) mais galement grer les poten-
tiels conflits qui pourraient subvenir lors de la sauvegarde des don-
nes. Le systme de persistance enfin permet de dterminer sous
quelle forme seront sauvegardes les donnes manipules par lap-
Devenir un dveloppeur iOS
Dans nos trois prcdents articles, nous avons cr tous les lments fondamentaux
notre application de gestion de contacts mais il manque encore llment le plus important,
savoir le stockage des informations saisies par lutilisateur dans une base de donnes.
plication. Core Data supporte des systmes de persistance en
mmoire, sous une forme binaire ou bien au format SQLite.
CRATION DU MODLE DE DONNES
La premire tape pour utiliser Core Data au sein de notre applica-
tion va donc tre de crer notre modle de donnes. Pour ce faire,
ajoutons un nouveau fichier notre projet et slectionnons le type
Data Model dans la section iOS > Core Data [Fig.1].
Une fois le fichier nomm, lditeur de modle intgr Xcode vous
est prsent afin que vous puissiez crer vos objets mtiers et que
vous dfinissiez les proprits de ceux-ci. Dans le langage Core
Data, un objet sappelle une Entit , donc commenons par en
ajouter une au modle via le bouton prsent en bas gauche de
lditeur (Add Entity) et nommons celle-ci Contact . Maintenant
que notre entit est cre, il ne reste plus qu dfinir les proprits
de celle-ci. Dans notre application, un contact possde 3 proprits
savoir un prnom, un nom de famille et un numro de tlphone,
toutes ces proprits tant de type String . Ajoutons ces propri-
APPLICATION : Mobile
LANGAGE : Objective-C
SOURCE : Non
DIFFICULTE
MOYENNE
4
e
partie
Fig.1


A
p
p
l
e
... Su/Ie dans /e magaz/ne
Novembre 2011 \\ Extrait de PROgrammez ! 39
A la fin du premier article,
nous avions cr notre pre-
mier dpt local pour notre
projet au sein duquel nous
avions ralis un premier
commit contenant un fichier
README. A partir de ce projet, nous continuons notre dcouverte
de lutilisation de Git en modifiant le contenu du projet.
TRAVAIL LOCAL
Comme expliqu prcdemment, 95% des oprations ralises par
Git sont excutes en local. De fait, le travail au quotidien avec Git se
concentre essentiellement sur le poste du dveloppeur et les
changes rseaux sont restreints. Au sein de notre projet, nous
allons rajouter un dossier src/ qui contiendra les sources du projet
ainsi quun dossier conf/ qui contiendra les fichiers de configuration
ncessaires au projet. Au sein de ces rpertoires, nous ajoutons les
fichiers src/Main.java qui constituera une simple classe Java affi-
chant un message sur la sortie standard et conf/myProject.proper-
ties contenant le numro de version du projet. Ces modifications
ralises, nous excutons la commande git status afin de voir les dif-
frences introduites au sein du projet par rapport au dernier com-
mit qui est point par la rfrence symbolique HEAD. En sortie de
console, Git nous indique que sur la branche courante master sur
laquelle nous travaillons, il ny a aucun fichier dans lindex mais que
des fichiers non suivis ont t ajouts au projet.
AJOUT DE FICHIERS
La notion dtat dun fichier est essentielle pour bien comprendre le
fonctionnement de Git dans le travail quotidien que lon effectue
avec. Globalement, Git considre que chaque fichier prsent dans
votre rpertoire de travail peut avoir 2 tats : sous suivi de version
ou non suivi. Les fichiers suivis sont ceux qui appartenaient au der-
nier snapshot commit depuis la zone dindex. Ceux-ci peuvent tre
inchangs, modifis ou bien indexs, cest--dire quils feront partie
du prochain snapshot que vous commiterez. Ainsi, tous les fichiers
prsents au sein du rpertoire de travail mais non prsents dans le
dernier snapshot et non indexs sont considrs comme non suivis.
Une fois un fichier suivi modifi, il est donc ncessaire de lajouter
lindex afin que son snapshot au moment de lajout lindex soit
inclus dans le prochain commit. Le cycle de vie dun fichier du point
de vue de Git que nous venons de dtailler est illustr la [Fig.1].
Pour notre projet, il est donc ncessaire dexcuter la commande
git add conf/ src/ ce qui a pour effet dajouter ces rpertoires et
leur contenu au sein de lindex et va conduire Git considrer que de
nouveaux fichiers ont t ajouts au sein de notre projet. Une fois le
code \\ version

Git : Boostez votre
gestion de configuration
fi chi er Mai n.j ava compi l , l e rpertoi re conti ent un fi chi er
Main.class produit par le compilateur Java. Ces fichiers nont pas
vraiment dintrt dans le cadre de la gestion de version de notre
projet, il est donc prfrable dindiquer Git de les ignorer. Pour ce
faire, il suffit de crer un fichier .gitignore la racine du projet au
sein duquel nous dtaillons les noms des fichiers que Git doit igno-
rer. Lutilisation dexpression rgulire tant supporte, notre fichier
contient lentre suivante : *.class. Ltape suivante consiste com-
miter le snapshot du projet index au sein du dpt local laide de
la commande suivante :
git commit -m Ajout des fichiers Main.java et myProject.properties
ANNULER UNE ACTION
Un commit effectu, il se peut que vous ralisiez que celui-ci ne
contient pas un fichier prcis que vous avez omis. Si votre commit
na pas t publi, il reste possible de rajouter ce fichier pour quil
soit inclus dans ce commit. Pour ce faire, il faut ajouter ledit fichier
lindex avant dutiliser la commande git commit --amend. Dautre
part, il est galement possible dannuler les modifications apportes
par un commit non publi en utilisant la commande revert et en pr-
cisant lidentifiant SHA-1 de ce dernier. Dans notre cas pour annuler
le dernier commit, il faut donc excuter la ligne suivante :
git revert HEAD
VISUALISATION DES DIFFRENCES
Ajoutons maintenant un nouveau fichier la racine du projet, que
nous indexons, et modifions le contenu du fichier src/Main.java.
Ces modifications faites, lutilisation de la commande git status per-
APPLICATION : --
LANGAGE : --
SOURCE : Non
DIFFICULTE
MOYENNE
Dans la premire partie de cet article consacr Git, nous avons mis en avant son
architecture et le modle distribu sur lequel il repose. Dans ce second volet, nous
allons passer la pratique afin de mieux percevoir la puissance et la flexibilit qui font
de Git aujourdhui loutil en vogue dans le domaine de la gestion de configuration.
Cycle de vie du statut d'un fichier
Fig.1
2
e
partie
... Su/Ie dans /e magaz/ne
40 Extrait de PROgrammez ! \\ Novembre 2011

webmaster \\ html 5
La version 5 de HTML propose de nombreuses nouvelles fonctionnali-
ts, dont le format devrait tre valid la norme W3C en 2014 [Fig.1].
La balise CANVAS
Elle est un des lments HTML de la version 5 qui supporte les
objets graphiques en script (comme Javascript), avec la possibilit
de manipuler les objets images externes. La balise CANVAS est sup-
porte par une large gamme des navigateurs tel que :
Firefox 1.5 et +
Opera 9 et +
Safari
Chrome
Internet Explorer 9 et +
Les versions prcdentes sont considres comme dpasses et il
est conseill d'effectuer la migration vers une version plus rcente
pour bnficier des avantages du langage.
Exemple basic
Au niveau de la balise CANVAS, celle-ci s'utilise de la faon suivante :
<html>
<body>
<canvas id="exemple" width="200" height="100"></canvas>
<script type="text/javascript">
var view=document.getElementById("exemple");
var obj=view.getContext("2d");
obj.fillStyle="#FF0000";
obj.fillRect(0,0,190,75);
obj.font="22pt Arial";
obj.fillStyle="white";
obj.fillText("Programmez",10,50);
</script>
</body></html>
L'ensemble du script montre la dclaration de la balise canvas
avec un id, appel 'exemple', qui fait appel un script en javascript.
L'utilisation du javascript va afficher dans une zone un rectangle
entirement rouge avec un texte crit en blanc [Fig.2].
Comme le montre l'exemple, de nombreuses fonctionnalits peuvent
tre insres dans la balise CANVAS car elle accepte diffrents lan-
gages, comme les lignes, points, cercles, carrs/rectangles, dont
une partie sera dtaille dans les lignes qui suivent.
ANIMATION DTAILLE
L'animation en gnral et l'univers du jeu en particulier, ont toujours
t un secteur qui a contribu l'volution des ordinateurs, en pro-
L'animation web en HTML 5 et en 2D
venance aussi bien des ama-
teurs, que des professionnels
avec la 2D (2 dimensions). Bien
sr, la 3D a vu sa puissance
saccrotre encore, grce aux
cartes graphiques. Cependant, la reprsentation technologique a
toujours exist bien avant l'apparition du matriel, par le biais des
calculs mathmatiques, pour obtenir un rendu jouant principalement
sur les couleurs et les ombres. Maintenant elle s'invite dans l'univers
du web au ct de la 2D classique, avec de nombreuses fonctionnali-
ts et des ouvertures vers l'avenir. Nous allons montrer une petite
animation pour le web en 2D avec une apparence 3D, qui tait rali-
se dans les introductions et animations des annes 80/90, ces
effets taient programms en assembleur 68000, en langage C,
sur des ordinateurs moins puissants (4/8 bits). Bien sr, cette tech-
nologie est toujours utilise dans des environnements portables.
DCLARATION
L'lment de la balise canvas se dcompose de la faon suivante :
<canvas width="320" height="200" id="animation" style="border
:solid 1px #000000;">
Votre navigateur ne supporte pas la balise canvas. Merci d'en
choisir un autre
</canvas>
Cette balise se rsume par une zone de dessin avec une largeur et
une hauteur. Vous pouvez ajouter une feuille de style CSS sous la
forme d'un cadre et un identifiant pour la reprer dans votre page
HTML. Comme ici, vous obtenez une zone rectangulaire de 320 x
200 pixels (largeur x hauteur) avec un cadre noir de 1 pixel de large,
illustr par l'image [Fig.2]. Pour insrer cet lment dans une page
HTML, vous procdez de la faon suivante :
<html>
<head>
<title>Exemple animation</title>
</head>
<body>
<canvas width="320" height="200" id="animation" style="border:
solid 1px #000000;">
Votre navigateur ne supporte pas la balise canvas. Merci d'en
choisir un autre
</canvas>
</body>
</html>
Bien entendu, si la version de votre navigateur ne supporte pas le
format HTML 5 et par consquent la balise 'canvas', vous aurez un
message de non compatibilit dans la zone pr-dfinie.
ANIMER UN OU PLUSIEURS OBJETS
Un objet graphique peut s'animer de diffrentes manires et princi-
palement par le biais de calculs mathmatiques. Comme le montrent
les quelques captures dcrans, avec un lment 'canvas', vous pou-
vez insrer des fonctions graphiques comme des images ou du
Fig.1
Fig.2
... Su/Ie dans /e magaz/ne
Novembre 2011 \\ Extrait de PROgrammez ! 41
SAVOIR
Initiation la programmation
avec Scheme
Difficult : **
Editeur : ditions Technip
Auteur : Laurent Bloch
Prix : 35
Comment apprendre l a
programmation ? C est
une question que lon se pose frquemment.
Java, C++, C# reviennent souvent mais finale-
ment, sont-ils les meilleurs pour dbuter dans
la programmation. La facilit dapprentissage
est tout sauf un argument de ces langages.
Lauteur va vous dmontrer que Scheme est
la fois dun accs facile et dune puissance de
programmation incroyable. Vous allez tout
dcouvrir : les fondamentaux, les expres-
sions, les tris, les types, la notion de rcursif,
la manipulation des donnes, les procdures,
etc. Vous trouverez sans doute des lments
intressants appliquer dautres langages.
LANGAGE
C++ lessentiel du code
et des commandes 2e dition
Difficult : ***
Editeur : Pearson
Auteur : Vincent Gouvernelle
Prix : 23
Sans ai de- mmoi re que
serait la programmation ?
Cet ouvrage, pratique et de
petit format, permet de
rapidement retrouver une commande ou
dapprendre comment faire une variable ou
comprendre lhritage. Ce sont plus de 150
codes qui sont expliqus par lauteur. De quoi
viter dtre bloqu trop longtemps
TESTS
Gestion des tests logiciels
Difficult : **
Editeur : Eni
Auteur : Emmanuel Iti
Prix : 45
Le test demeure l a
bte noire de beau-
coup de dveloppeurs,
mme si aujourdhui, ils savent quils sont
incontournables. Mais au-del du test, cest
toute sa gouvernance, sa gestion quil faut
mettre en place. La gestion des tests est
capitale en quipe, dans une SSII ou sur de
gros projets pour dfinir, planifier, mettre en
place les tests, les suivre. Le cycle de tests a
besoin dorganisation et dune automatisation
toujours plus pousse. Lauteur dcrit les
bonnes pratiques, les outils, les mthodolo-
gies possibles. Indispensable !
LANGAGE
Apprenez programmer
en Python
Difficult : ***
Editeur : siteduzero.com
Auteur : Vincent Le Goff
Prix : 25
Python est sans doute un
des meilleurs langages
actuels : puissant, lger,
dun apprentissage rapi-
de, il a tout pour plaire et pourtant, il demeu-
re un langage sous-utilis. Cet ouvrage est l
pour vous faire dcouvrir un langage sur-
dou. Si la thorie est prsente, le but est
avant tout de passer aux travaux pratiques :
exemples de code, exercices. Une bonne
manire de bien dbuter en Python.
SERVEUR
Glassfish 3
Difficult : ***
Editeur : Eni
Auteur : Jrme Lafosse
Prix : 11
Le serveur Glassfish est limplmentation offi-
cielle de JEE dOracle. Mais derrire ce nom
de poisson se cache une architecture com-
plexe quil faut comprendre et configurer. Ce
livre a pour objectif de vous aider com-
prendre lorganisation de la v3, les nouveau-
ts, comment i nstal l er, conf i gurer l e
domaine, dployer la scurit, utiliser la fois
Java et PHP ou encore utiliser au quotidien la
supervision et lquilibre de charge. Bref, un
livre garder avec soi.
livres \\ nouveauts

DECEMBRE
Le 01 dcembre 2011, Pavillon Cambon Capu-
cines Paris, Oracle Applications Day 2011. Oracle
vous invite faire le point les dernires tendances
du march, la valeur ajoute de la stratgie produit
d'Oracle avec Oracle Fusion Applications, les appli-
cations d'Oracle nouvelle gnration.
http://www.oracle.com/webapps/events/ns/Events-
Detail.jsp?p_eventId=133743
Le 01 dcembre 2011, Amphithtre de l'ESMA -
Montpellier Aroport, Retour de MAX - Flex sur
mobiles. Michael Chaize, Flash Platform Evangelist
chez Adobe, revient pour prsenter la roadmap Flex
ainsi que les toutes dernires nouveauts annon-
ces lors de l'vnement Adobe MAX.
http://flexmontpellier.groups.adobe.com/index.cfm?
event=post.display&postid=38696
Jusquau 6 dcembre 2011, Tour De France des ver-
sions 17 de WINDEV, WEBDEV et WINDEV Mobile.
http://www.pcsoft.fr/pcsoft/tdfcom/2011/index.html
Le 03 dcembre 2011, Cit Internationale Univer-
sitaire, PARIS, Salon Studyrama des Formations
Informatiques, Internet et Multimdia. Afin de faire
dcouvrir aux jeunes la richesse des cursus lis
ces formations ainsi que toutes les nouveauts en la
matire. http://www.studyrama.com
Le 06 dcembre 2011, locaux de Microsoft Fran-
ce, 41 Quai Prs. Roosevelt, 92130 Issy-les-Mouli-
neaux, Agile Tour Paris 2011. Venez dcouvrir les
derniers usages autour de lAgilit, des Tests et de
la Qualit Logicielle, et profitez des prsentations et
des ateliers ddis.
https://msevents.microsoft.com/cui/EventDetail.as
px?culture=fr-FR&EventID=1032495354
Du 12 au 13 dcembre 2011, Centre de conf-
rence Microsoft France, Les Journes SQL Server,
1re dition. Premire confrence communautaire en
Franais autour du dcisionnel et du moteur rela-
tionnel de Microsoft. https://msevents.microsoft.com
/CUI/EventDetail.aspx?EventID=1032496260&Cul-
ture=fr-FR
agenda \\
HTML5 est partout,
mme si la spcifica-
tion dfinissant le langage est peine fige
et que les batteries de tests ne sont pas
encore l et quil faudra plusieurs annes
avant que les outils, fournisseurs, sites sy
mettent. Malgr tout, cest maintenant quil
faut regarder HTML5 et ce quil apporte
aux dveloppeurs. Car il bouleverse beau-
coup de choses, au-del de la vido et des
animations. Cet ouvrage est une vritable
Bible du langage et aborde lensemble des
lments : les outils, le support des naviga-
teurs, les attributs, formulaires, balises,
canvas, la golocalisation, File API, les don-
nes, DOM, les applications hors ligne,
JavaScript. Lauteur propose de nombreux
exemples et conseils pour mieux com-
prendre le fonctionnement de HTML 5.
Notre coup de cur du mois !
HTML 5
Difficult : ***
Editeur : Eyrolles
Auteur : Rodolphe Rimel
Prix : 39
LIVRE DU MOIS
Allier le savoir-faire technique
au savoir-tre relationnel,
pour le management et les quipes IT
www.know-formation.com
K
n
o
w
-
F
o
r
m
a
t
i
o
n
,

u
n

d

p
a
r
t
e
m
e
n
t

d
e

K
-
n
o
w

s
a
r
l


R
C
S

4
9
9

3
2
0

0
0
0

P
a
r
i
s

-

0
9
1
1
CONTACT :
St phani e Khal i f - Vennat : st ephani e@know- for mat i on. com - Tl . 01 74 70 48 91 - Fax 01 41 39 00 22
Know-Formation- Tour Albert 1
er
- 65, avenue de Colmar - 92500 Rueil Malmaison
Grer le TEMPS
MANAGER les projets
COMMUNIQUER
Formation
pour dirigeants et quipes IT
Rendez-vous sur www.nokia.fr/developpeurs
Soyez parmi les millions
dapplis tlcharges
chaque jour sur Nokia Store.
*

L


i
l

f
a
u
t

t
r
e
.
44 Extrait de PROgrammez ! \\ Novembre 2011
TOUT SAVOIRPOUR TOUT FAIRE

Code, gestion de projets,
dveloppement web, mobile,
Programmez ! est la fois :
sVOTREoutil pratique :
articles de code,
par les meilleurs experts
sVOTREveille technologique
Dveloppez votre savoir-faire !
Programmez ! est le magazine de rfrence,
depuis 1998, de tous les dveloppeurs
et chefs de projets logiciels.
Et pour
10 euros de plus
par an, offrez vous
laccs illimit toutes
les archives et numros
en format lectronique.
ABONNEZ-VOUS EN LIGNE
www.programmez.com
Toutes les offres sont en ligne
Abonnez-vous
partir de 4
seulement par mois

Trouvez le marchand de journaux
le plus proche
Achetez la version PDF

Вам также может понравиться