You are on page 1of 46

Nr. 26 August 2014 www.todaysoftmag.ro www.todaysoftmag.

com

TSM

T O D A Y
S O F T WA R E
MAG A Z I NE

S vorbim despre Swift


rtea a II-a

ntreinerea la zi a sistemelor Linux Pa

Limbajul Hack
TYPO3 Neos
Informaie structurat - aplicare Agile
Poveti de succes la finalul
How to Web MVP Academy
Standardele deschise
o miz pentru Romnia

Provocri n promovarea intern


Cadrul analizei de business (I)
Folosirea serviciilor de tip cloud nu e
lipsit de riscuri juridice
Securizarea Codului Opensource (III)
BBST - Un curs practic despre
Testare Software

6
Standardele deschise
o miz pentru Romnia
Daniel Homorodean

10
Poveti de succes la finalul How
to Web MVP Academy
Irina Scarlat

12
Noi modele de educaie pentru pasionaii de tehnologie:
bootcamp-ul Simplon
Roxana Rugin

15
SEETEST 2014
Irina Scarlat

16
Aplicaie IT n SAP prezentat la
IT Conference on SAP
technologies 2014- Cluj
Horea Raiu

18
Informaie structurat aplicare Agile
Bogdan Murean

21
ntreinerea la zi a sistemelor
Linux (II)
Sorin Pnca

26
S vorbim
despre Swift
Valentin Filip

28
Limbajul
Hack
Radu Murzea

30
Clean Code Naming
Radu Vunvulea

32
TYPO3 Neos Schimbnd ecosistemul sistemelor de
administrare a coninutului
Tomi Militaru

34
Provocri n promovarea intern
Monica Soare

36
Cadrul
analizei
de business (I)
Ioana Armean

38
Securizarea Codului
Opensource (III)
Raghudeep Kannavara

41
BBST -Un curs practic despre
Testare Software
Alexandru Rotaru i Ru Cindrea

44
Folosirea serviciilor de tip cloud
nu e lipsit de riscuri juridice
Claudia Jelea

editorial

Ovidiu Man

ovidiu.matan@todaysoftmag.com
Editor-in-chief
Today Software Magazine

ansarea acestui numr este o ocazie de a anuna realizarea unei competiii pentru
startup-uri n cadrul IT Days, 25-26 noiembrie 2014. Aceasta va consta ntr-o
serie de pitch-uri a startup-urilor, a cror durat de prezentare trebuie s se ncadreze n limitele a dou minute. Cei interesai sunt rugai s trimit o scurt descriere
i un link la site/produs la adresa startups@itdays.ro. Alturi de proiectele de cercetare,
pitch-urile startup-urilor s-au bucurat de un real succes n prima ediie a IT Days iar n
acest an vom avea un juriu i chiar un premiu pentru ctigtor.
Evenimentul de lansare a numrului 26 este realizat cu sprijinul Primriei ClujNapoca care ne-a pus la dispoziie cldirea renovat a vechiului Casino din Cluj-Napoca.
Acesta este un spaiu inedit, aproape de public, despre care am descoperit c se poate
nchiria gratuit de ctre cei interesai pentru activiti culturale.
Ediia din aceast lun se deschide cu un articol dedicat importanei standardelor deschise pentru Romnia. Rezultatul implementrii acestei strategii ar fi utilizarea
gratuit a documentelor publice i crearea unor baze de cooperare ntre diferite instituii
care s faciliteze valorificarea acestor documente. Continum cu o trecere n revist a
startup-urilor care au terminat programul de accelerare How To Web MVP Academy,
de unde vom reveni n numerele urmtoare cu mai multe detalii. Educaia n IT a fost de
altfel ntotdeauna un subiect de interes pentru c avem att de mult nevoie de specialiti.
Simplon este un program intensiv, gratuit ce se adreseaz celor ce vor s nvee s programeze, s creeze un site i poate chiar s i lanseze propriul startup. Toate aceste teme sunt
abordate n articole pe care le putei gsi n prima parte a acestui numr.
n ceea ce privete articolele tehnice, acest numr ofer partea a doua a articolului
ntreinerea la zi a sistemelor Linux, dup care urmeaz un prim articol general despre
noul limbaj de programare introdus de ctre Apple, Swift. O prezentare a limbajului definit
de Facebook, Hack, se numr de asemenea printre subiectele abordate. Importana
conveniilor n ceea ce privete numele folosite n codul nostru este demonstrat n Clean
Code - Naming . Un alt articol este dedicat Typo3: TYPO3 Neos - Schimbnd ecosistemul
sistemelor de administrare a coninutului. ncheiem seria articolelor tehnice cu un articol
despre alternativa la certificarea ISTQB din sfera testrii i anume: BBST -Un curs practic
despre Testare Software.
Din aria de management, HR i cerine menionm Informaie structurat - aplicare
Agile, un articol ce prezint avantajele certificrii PMP i modul n care se pot folosi
aceste informaii i procese ntr-un mediu pur Agile. O provocare destul de des ntlnit
n marile companii este promovarea unei persoane interne pe o poziie de management fa de angajarea uneia noi. De asemenea, un alt articol care completeaz aceast
problematic a promovrii este cel cu titlul Provocri n promovarea intern. ncheiem
aceast inventariere a articolelor cu Cadrul analizei de business, care propune o schem
a foarte util a acestui proces.
V dorim o lectur plcut !!!

Ovidiu Man

Fondator al Today Software Magazine

nr. 26/august, 2014 | www.todaysoftmag.ro

Redacia Today Software Magazine


Fondator / Editor n chief: Ovidiu Man
ovidiu.matan@todaysoftmag.com
Editor (startups i interviuri): Marius Mornea
marius.mornea@todaysoftmag.com
Graphic designer: Dan Hdru
dan.hadarau@todaysoftmag.com

Lista autorilor
Roxana Rugin

roxana.rugina@gmail.com
CEO & co-founder
@ Simplon Romania

Daniel Homorodean

daniel.homorodean@clujit.ro
Membru n Consiliul Director
@ Cluj IT Cluster

Radu Vunvulea

Monica Soare

Senior Software Engineer


@iQuest

Manager
@ Artwin

Bogdan Murean

Sorin Pnca

Director of Engineering
@ 3Pillar Global

Senior Systems Administrator


@ Yardi Romnia

Ru Cindrea

Alexandru Rotaru

Managing Partner
@ Altom Consulting

Managing Partner
@ Altom Consulting

Tomi Militaru

Valentin Filip
Valentin.Filip@tss-yonder.com

Senior Web Developer


@ Arxia

Cluster Manager &


Team Lead on Innovation
@ Yonder

Claudia Jelea

Ioana Armean

Radu.Vunvulea@iquestgroup.com

monica.soare@artwinconsulting.ro

Copyright/Corector: Emilia Toma


emilia.toma@todaysoftmag.com
Traductor: Roxana Elena
roxana.elena@todaysoftmag.com

bogdan.muresan@3pillarglobal.com

sorin.panca@yardi.com

Reviewer: Tavi Bolog


tavi.bolog@todaysoftmag.com
Reviewer: Adrian Lupei
adrian.lupei@todaysoftmag.com

ru.cindrea@altom.ro

alex.rotaru@altom.ro

Contabil : Delia Coman


delia.coman@todaysoftmag.com
Produs de

Today Software Solutions SRL


str. Plopilor, nr. 75/77
Cluj-Napoca, Cluj, Romania
contact@todaysoftmag.com
www.todaysoftmag.ro
www.facebook.com/todaysoftmag
twitter.com/todaysoftmag
ISSN 2284 6352

tmilitaru@arxia.com

claudia.jelea@jlaw.ro
Avocat & Consilier in domeniul marcilor
@ Jlaw

ioanaa@imprezzio.com
Business Analyst
@ Imprezzio Global

Raghudeep Kannavara

Irina Scarlat

Security Researcher, Software


and Services Group
@Intel USA

PR Manager
@ How to Web & TechHub Bucharest

Horea Raiu

Radu Murzea

Director Departament SAP


@ .msg systems Romania

PHP Developer
@ Pentalog

raghudeep.kannavara@intel.com

horea.ratiu@msg-systems.com

irina.scarlat@howtoweb.co

rmurzea@pentalog.fr

Copyright Today Software Magazine


Reproducerea parial sau total a articolelor
din revista Today Software Magazine
fr acordul redaciei este strict interzis.
www.todaysoftmag.ro
www.todaysoftmag.com

www.todaysoftmag.ro | nr. 26/august, 2014

analiz

Standardele deschise o miz pentru Romnia

cum cteva sptmni, n 22 iulie, guvernul britanic a luat o decizie pe care muli au catalogat-o drept istoric: standardul ODF
( Open Document Format) a devenit obligatoriu pentru partajarea sau colaborarea pe documente guvernamentale. ODF va
fi standardul pentru schimbul de documente de tip text sau spreadsheet ntre departamentele instituiilor publice britanice,
dar i cu cetenii i furnizorii, elibernd astfel toi juctorii de nevoia de a cumpra i folosi software proprietar pentru a accesa documente. De acum, orice software cumprat de instituiile guvernamentale britanice trebuie s fie compatibil cu ODF.
Pentru UK acesta este doar un pas integrat1 n efortul susinut
n ultimii ani de a ajunge s aib un guvern mai deschis, mai
transparent, care s asigure accesul facil al cetenilor la serviciile
publice i la informaia de interes public. n acest efort susinut se
nscrie promovarea datelor deschise i a standardelor deschise2,
politicile britanice n acest sens fiind bine structurate i transparente, nc din 2010. Documentul manifest Open Standards
Principles3 ncepe cu o declaraie clar: IT-ul guvernamental
trebuie s fie deschis - deschis ctre oamenii i organizaiile care
folosesc serviciile noastre i deschis spre orice furnizor, indiferent
de mrimea sa. Toate instituiile guvernamentale trebuie s adere
la aceste principii.
Vom vedea n continuare ce sunt standardele i formatele
deschise, de ce sunt ele importante i cum putem beneficia de pe
urma lor.

are grade diferite de strictee.


Majoritatea este de acord c un Standard este Deschis dac
este disponibil public i poate fi adoptat i implementat fr costuri. IETF i ITU-T consider un standard ca fiind deschis chiar
dac exist costuri de liceniere a patentelor, cu conditia ca ele
s fie rezonabile i nediscriminatorii, dar poziia organizaiilor
open source i a multor guverne este mai tranant: standardul
este deschis dac fr nici un cost poate fi adoptat, implementat
i extins.
Standardele deschise joac un rol esenial n politicile guvernamentale ale rilor dezvoltate, deoarece prin folosirea lor se
asigur interoperabilitatea ntre sisteme i ntre instituii i accesul liber la informaie, fr necesitatea unor costuri suplimentare
de liceniere.
Tocmai pentru a elimina ambiguitatea i interpretarea
arbitrar a definiiei standardelor deschise, majoritatea guvernelor
Ce sunt Standardele Deschise ?
au definit clar, prin normative, Standardul Deschis. Toate specific
De-a lungul timpului, o serie de organizaii sau guverne au faptul c standardul trebuie s fie gratis, unele ( Africa de Sud s.a.
ncercat s dea o definiie proprie a conceptului de Open Standard. ) chiar specificnd c standardul trebuie s fie ntreinut de ctre
n funcie de compoziia i de interesul acestor entiti, definiia o organizaie ne-comercial. Caracterul extensibil al standardului
1 www.gov.uk/government/news/open-document-formats-selected-to-meet-user-needs
este explicit precizat n multe cazuri - aspect important, pentru
2 www.gov.uk/government/publications/open-standards-for-government
c unele standarde sunt deschise pentru utilizare, dar nu permit
3 www.gov.uk/government/uploads/system/uploads/attachment_data/file/78892/Open- extinderea lor dect dup ce cumperi acest drept. Deocamdat,
Standards-Principles-FINAL.pdf
Romnia nu a adoptat o definiie a standardului deschis, dar acest

Young spirit
Mature organization
A shared vision
Join our journey!
www.fortech.ro

nr. 26/august, 2014 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE

lucru va fi necesar, tocmai pentru c nu exist o definiie universal general acceptat i nu ne putem atepta ca n viitorul
apropiat s existe, datorit intereselor economice ale diverilor
juctori din pia.
i totui, dincolo de politici, ne ntrebm cum ne afecteaz
sau cum ne ajut Standardele Deschise ? Ele sunt deja peste tot n
viaa noastr, n multe domenii. GSM-ul ne uureaz comunicarea
telefonic, TCP i IP ne permit s accesm informaia prin internet, SMTP s schimbm mesaje, PCI i USB ne las s conectm
echipamentele. Din pleiada de standarde deschise cu care interacionm n diverse feluri i care ne fac, sau ne pot face viaa mai
uoar, formatele deschise sunt un subset important.

Ce sunt Formatele Deschise ?

Formatele deschise se aplic fiierelor, sunt deci specificaii


pentru stocarea digital a datelor. Definiiile standardelor deschise
li se aplic direct, dar multe organizaii i instituii au adus precizri suplimentare:
Formatul este dezvoltat printr-un proces cu vizibilitate
public, gestionat de comunitate ( Sun Microsystems)
Formatul este independent de platform, citibil de ctre
maini i disponibil fr restricii ( Guvernul UK)
Formatul e bazat pe un standard deschis, dezvoltat de o
comunitate deschis,[...], e documentat complet i disponibil
public ( Commonwealth of Massachusetts)
Formatele deschise fac parte din viaa i din activitatea noastr,
le folosim permanent att la serviciu ct i acas. Iat cteva dintre
ele:
GIF, JPEG 2000, PNG, SVG
HTML, XHTML, UTF-8/UTF-16, ePub, Postscript
Office Open XML ( OOXML )
Open Document Format ( ODF )
PDF ( partial, doar subsets)
gzip, tar, ZIP
CSS, CSV,JSON, RSS, XML

De ce ne trebuie standarde deschise ?

Deja majoritatea aciunilor noastre au o component digital,


care n relaie cu statul i cu instituiile sale, centrale sau locale, i
dovedete importana, fie c ne pltim impozitele, c depunem
o declaraie sau c solicitm un cazier judiciar. Este anacronic i
teribil de frustrant ca n ziua de azi s primeti o hrtie tiprit
de la o instituie ca s o plimbi n cealalt parte a oraului pentru
ca un funcionar s introduc aceleai date manual ntr-o aplicaie, citindu-le de pe foaie. Pentru eficiena sistemului i pentru
calitatea vieii noastre, asigurarea interoperabilitii ntre sistemele

instituiilor publice este esenial.


n toate politicile guvernamentale ale rilor dezvoltate, standardele i mai ales formatele deschise au dou obiective majore:
asigurarea interoperabilitii ntre instituii,
asigurarea accesului ceteanului, organizaiilor i operatorilor economici la informaia public, gratis i fr costuri
ascunse ( licenieri de programe).
Desigur, eficientizarea costurilor este i ea un motiv important, considernd c standardele deschise pot fi implementate i de
ctre aplicaii care nu necesit costuri de liceniere ( cel mai simplu
exemplu fiind cazul formatelor documentare - Open Office/Libre
Office versus Microsoft Office )
Accesul la datele deschise ( Open Data), publicate ntr-o
form procesabil automat ( de ctre aplicaii ), bazat pe formate
deschise, este nu doar o politic normal pentru a asigura informarea ceteanului, ci are i o miz economic uria. Conform
studiilor McKinsey4, prin folosirea datelor deschise se vor pute
genera peste 3 trilioane de dolari anual !

Batalia OOXML vs ODF

Office Open XML ( OOXML, OpenXML) este un format bazat


pe XML i arhivat (zipped), folosit pentru descrierea formatelor
documentare ( spreadsheets, presentations, word processing documents, charts ) dezvoltat de Microsoft, standardizat de Ecma, ISO
si IEC ( ECMA-376, ISO/IEC 29500 ). Open Document Format
(ODF) este de asemenea un format XML, dezvoltat de ctre comitetul tehnic al OASIS, publicat ulterior i ca standard ISO/IEC,
bazat pe specificaia OpenOffice.org XML realizat iniial de ctre
Sun Microsystems.
n ultimii ani Microsoft a fost pus n corzi n mod repetat de
ctre guvernele diverselor ri, n btlii precum cea care a avut
loc n UK n aceast primvar. Gigantul din Redmond a reuit
s opreasc, sau mai bine zis s amne tranri ferme n favoarea
ODF, dar btlia mondial continu acerb i precedentul britanic
va avea probabil consecine dramatice.
Pentru alegerea dintre ODF i OOXML, standardul dezvoltat
i susinut de Microsoft, se aduc de obicei argumente tehnice, ns
toat lumea tie c miza economic uria este cea care dicteaz:
eliberarea guvernelor de dependena fa de produsele Microsoft
are potenialul de a crea economii substaniale, dei are i costuri
evidente. V putei nchipui o Romnie n care toi funcionarii
publici s lucreze cu Open Office, pe calculatoare cu platforme
Linux ? Cam greu, aa-i ? Dar n multe regiuni ale lumii, acest
lucru deja se ntmpl.
Suita Office a Microsoft a rmas permanent n urma
4 w w w . m c k i n s e y . c o m / i n s i g h t s / b u s i n e s s _ t e c h n o l o g y /
open_data_unlocking_innovation_and_performance_with_liquid_information

www.todaysoftmag.ro | nr. 26/august, 2014

analiz
Standardele deschise o miz pentru Romnia
standardelor deschise, avnd un defazaj chiar i fa de propriul
standard OOXML. Compatibilizarea ntrziat cu ODF 1.2 a fost
anunat cu tam-tam n 2012, ns n mod real ea nu este asigurat
nici acum. Este puin probabil ca acest lucru s se datoreze incompetenei tehnicienilor Microsoft, ci mai degrab unei politici
asumate strategic, de a descuraja folosirea formatelor ODF n
MS Office. Frustrarea celui care deschide n Word un fiier ODT
complex creat n Open Office constituie un argument bun pentru
Microsoft de a discredita folosirea pe scara larg a suitelor office
gratuite.
n ce privete argumentele tehnice, ele se refer la mai multe
aspecte, dintre care:
conform specificaiei standardelor, ODF poate reprezenta
complet documentele OOXML, pe cnd reciproca nu este
valabil.
implementarea standardului OOXML n MS Office nu este
complet.
implementarea n MS Office include elemente proprietare,
non-standard.
Argumentele legate de controlul standardului sunt i ele
importante:
organizaiile OASIS ( pentru ODF) i Ecma ( pentru
OOXML) au politici diferite fa de membri. n Ecma nu poi
fi membru ca individ, iar publicul nu are acces la comunicarea
intern ( mailing lists, agendele i minutele ntlnirilor) dreptul
de a extinde standardul OOXML nu este acoperit de licen,
permind Microsoft s acioneze legal mpotriva celui care
extinde sau deriv standardul. Acest lucru prezint risc pentru
dezvoltatorii de aplicaii complexe pentru procesarea coninutului documentar, n cazul n care definesc, de exemplu, tag-uri
noi.
Viitorul acestei dispute se anun interesant. n mod sigur
Microsoft poate s rezolve toate problemele aduse ca argumente
mpotriva OOXML, dac dorete acest lucru. Pn atunci, precedentul britanic l face i mai vulnerabil.

Standardele deschise n Romnia

tim c sunt multe aspecte la care Romnia trebuie s lucreze,


astfel nct instituiile publice s fie mai eficiente i interaciunea
ntre ele i cetean sau mediul privat s fie mai prietenoas. Dei
este uor s ne scuzm c exist lucruri mai importante de realizat
dect standardele deschise, politicile publice trebuie s fie ct mai
complete i mai coerente. Ne arde mai tare ca informaia s fie
publicat i accesibil, n orice form, iar formatul ei ne doare mai
puin, deocamdat, pn cnd realizm importana procesrii i
reutilizrii acestei informaii.
n noua form propus a Strategiei Naionale pentru Agenda
Digital, MCSI menioneaz n repetate rnduri importana i
nevoia interoperabilitii ntre instituii, utilizarea standardelor i modelelor de referin, declarndu-i interesul pentru
promovarea unor standarde mai nalte astfel nct utiliznd
standardele deschise, informaiile administrate de sisteme s fie
disponibile n format stabil, public, independent de furnizor.
Toate aceste meniuni rmn i risc s rmn doar vorbe
goale, iar interoperabilitatea o iluzie, n lipsa unui angajament
coerent, asumat, bazat pe o definiie explicit a noiunii de
standard deschis i a unui set de principii care s guverneze implementarea sistemelor i publicarea informaiilor.

nr. 26/august, 2014 | www.todaysoftmag.ro

Cluj IT Cluster i standardele deschise

Pentru Clusterul Cluj IT este foarte important promovarea


bunelor practici i a standardelor n industria IT, cu avantaje semnificative n toate sectoarele de activitate i n special n mediul
public. Open Data, accesibilitatea web, open source sau open standards fac natural obiectul interesului nostru pentru a construi o
Romnie mai eficient, mai transparent i mai conectat cu restul
lumii.
De aceea, am stabilit un dialog direct cu MCSI i cu alte
instituii, pentru a ajuta la instituirea unor politici sntoase i
sustenabile, n care standardele deschise joac un rol important.
Sper ca ntr-un viitor nu prea ndeprtat standardele deschise
s nu mai fie doar un concept exotic, ci o realitate care s ne fac
tuturor viaa mai uoar.
Daniel Homorodean

daniel.homorodean@clujit.ro
Membru n Consiliul Director
@ Cluj IT Cluster

TODAY SOFTWARE MAGAZINE

www.todaysoftmag.ro | nr. 26/august, 2014

eveniment

Poveti de succes la finalul How to Web MVP Academy

ucureti, 23 iulie 2014 How to Web MVP Academy, programul de pre-accelerare adresat startup-urilor din Europa Central
i de Est, s-a ncheiat mari, 22 iulie, cu Demo Day. n cadrul evenimentului, echipele finaliste au prezentat n faa audienei
rezultatele a dou luni de munc intens, workshop-uri i sesiuni de mentorat, i au demarat discuii pentru a obine o investiie
sau pentru a fi admise ntr-un program de accelerare european.
Prima ediie How to Web MVP
Academy a avut loc n perioada 2 iunie 22
iulie la TechHub Bucharest i a adus mpreun 14 startup-uri cu potenial din regiune.
Dezvoltat n parteneriat cu Microsoft,
Romtelecom i Cosmote cu sprijinul
Bitdefender, Raiffeisen Bank, Hub:raum i
TechHub Bucharest, programul a susinut
echipele finaliste n eforturile lor de dezvoltare i le-a nvat cum s construiasc
produse de succes la scar global.

Pe lng componenta educaional,


finalitii MVP Academy au avut acces la
spaiul de co-working oferit de TechHub
Bucharest, precum i la comunitatea profesionitilor n tehnologie la nivel regional,
i au beneficiat de workshop-uri, mentorat
i conexiuni cu investitori de tip angel, programe de accelerare i fonduri de investiii
early stage.
Pe parcursul programului, echipele
How to Web MVP Academy au avut ocazia s participe la workshop-uri practice
susinute de specialiti consacrai la nivel
internaional printre care se numr Jon
Bradford (Managing Director TechStars
London), Alex Barrera (Fondator i Editor
Tech.eu i Chief WOWness Officer Press
42), Daniela Neumann (Scrum Master/
Change Management idealo internet
GmbH), Paul Renaud (Executive Coach)
sau Maria Diaconu (Fondator & CEO
Mozaic Works).
Astfel, acestea au nvat mai multe

10

despre cum s dezvolte un startup de succes la scar global, cum s fac networking
cu clienii i partenerii de afaceri sau cum
s i spun povestea i s i prezinte produsul n faa potenialilor investitori. Mai
mult, startup-urile finaliste au acumulat
noiuni eseniale de business legate de
product management, indicatorii pe care
trebuie s i urmreasc, metodologiile
agile, dezvoltarea echipei i a comunitii,
SEO, sau aspectele legale pe care trebuie s
le ia n considerare.
n plus, cele 14 echipe
finaliste au beneficiat de
sesiuni de mentorat 1 la
1 cu peste 40 de experi
i profesioniti care le-au
oferit feedback i recomandri din propriile
experiene. Printre mentorii primei ediii a How
to Web MVP Academy
se numr Ivan Brezak
Brkan (Editor i Fondator
Netokracija), Alex Negrea (Fondator
DocTrackr), Florin Talpe (Fondator i
CEO Bitdefender), Olaf Lausen (Chief of
Staff & Business Development Director
Romtelecom and Cosmote Romania), Zoli
Herczeg (Business Evangelist Microsoft
Romnia), Drago Ilinca (Co-Fondator i
VP Marketing UberVU), Gabriel Coarn
(Arhitect Evernote Clearly), Bobby Voicu
i Cristi Badea (Co-Fondatori Mavenhut)
sau Luka Sucic (Business Development
Manager & Evangelist Hub:raum).
Astfel de colaborri sunt eseniale pentru Romtelecom i COSMOTE Romnia i
le considerm parteneriate mutual benefice care susin eforturile noastre continue
de a ncuraja antreprenorii s ne devin
parteneri pentru a ctiga mpreun. Din
acest motiv consider c programul How to
Web MVP Academy are toate ansele s
devin un model de bune practici deoarece
faciliteaz accesul la cunotine de calitate

nr. 26/august, 2014 | www.todaysoftmag.ro

i networking, ajutnd astfel toate prile


implicate, a declarat Olaf Lausen, Chief
of Staff & Business Development Director
Romtelecom i Cosmote Romania.
Programul de pre-accelerare How to
Web MVP Academy s-a ncheiat mari, 22
iulie, cu Demo Day, eveniment n cadrul
cruia echipele finaliste i-au prezentat
produsele i progresul nregistrat n faa
audienei formate din investitori de tip
angel, reprezentani ai programelor de
accelerare la nivel european i al fondurilor
de investiii early stage, antreprenori, profesioniti consacrai n domeniul tehnologiei
i jurnaliti.
Seara a debutat cu un mesaj din partea
lui Bobby Voicu (Co-Fondator Mavenhut)
care a vorbit despre cum arat viaa unui
startup dup participarea la un program
de accelerare. Trebuie s recunosc c nu
v invidiez pentru poziia n care v aflai
astzi n urm cu trei ani am fost i eu
n locul vostru. i ce e greu de-abia acum
ncepe! nvai din aceast cltorie!
Statisticile arat c doar 3 din cele 14 echipe
de astzi vor mai exista dup 1 an. Creai-v
reeaua, cunoatei oameni relevani pentru
voi, ctigai ncrederea potenialilor investitori! i sper c ne vom ntlni la anul i mi
vei spune cu mndrie c v numrai printre cei care ai nvins statisticile, i-a sftuit
Bobby pe participanii How to Web MVP
Academy.
Ulterior, echipele finaliste i-au nvins
emoiile i au urcat pe scena cinematografului Elvira Popescu pentru a-i prezenta
produsele i a demonstra ce au nvat de-a
lungul programului. Cele 13 startup-uri
care au prezentat n faa audienei sunt:
1. Axo Suits exoschelete cu putere
mare
2. Bravatar motor de recomandri
bazate pe stilul de via al utilizatorului
3. Complement software care pune n

TODAY SOFTWARE MAGAZINE

valoare rezultatele educaionale


4. Drimm.in platform care monitorizeaz activitatea utilizatorilor n social
media, salveaz interesele acestora i le
transform n activiti care pot fi duse
la ndeplinere
5. Fittter aplicaie mobil care ofer
utilizatorilor o experien personalizat
de antrenament punndu-i n legtur direct cu studiourile de fitness i
antrenorii
6. Gloria Food sistem de comenzi
online gratuit care permite restaurantelor s interacioneze n mod direct cu
clienii acestora
7. Hickery music player web i mobil
care permite utilizatorilor s interacioneze ntre ei i s asculte muzic n
funcie de preferinele exprimate pe
social media
8. Inovolt sistem de monitorizare
pentru reeaua electric
9. Lifebox aplicaie mobile care permite utilizatorilor s creeze albume de
fotografii comune cu prietenii acestora i
s genereze astfel amintiri comune
10. Pocketo startup hardware care
construiete dispozitive conectate la

internet
11. Qalendra platform de cltorii care permite persoanelor dornice de
aventur s descopere noi oportuniti i
s i realizeze propriul calendar
12. StudyMentors platform
online care pune n legtur tinerii care
i doresc s aplice la studii n strintate
cu studenii i absolvenii universitilor
europene
13. Wallet Buzz aplicaie care
conecteaz retailerii cu utilizatorii de
telefoane inteligente i le transmite acestora din urm reclame i coninut n
funcie de locaie
Demo Day s-a ncheiat cu un cocktail
n cadrul cruia echipele finaliste au avut
ocazia s fac networking i s continue
discuiile cu persoanele din audien interesate n mod direct de produsele pe care
le dezvolt. n plus, n zilele care urmeaz
acestea vor participa la ntlniri 1 la 1 cu
programele de accelerare i investitorii/
fondurile de investiii interesate s le ofere
finanri i/sau s i susin n continuare n
eforturile lor de scalare.
Suntem mndri de
modul n care au evoluat
echipele How to Web MVP
Academy pe toat durata
programului. Au fost 2
luni intense n care au
nvat cum s creeze produse i s dezvolte afaceri
sustenabile i au cunoscut
oameni care i vor ajuta
s mearg la urmtorul
nivel. Am adaptat n permanen activitile din

program pentru a rspunde nevoilor specifice ale fiecrei echipe, iar rezultatele au fost
pe msura ateptrilor. Startup-urile finaliste au nregistrat progrese semnificative, iar
astzi tiu care sunt paii pe care trebuie s i
parcurg i au potenialul de a primi investiii ulterioare sau de a fi admise n programe
de accelerare.
Nimic din toate acestea nu ar fi fost
posibil fr implicarea mentorilor locali i
regionali i a partenerilor care au investit
timp i resurse i au mprtit echipelor propriile experiene. Prima ediie How to Web
MVP Academy a fost nu n ultimul rnd o
experien de nvare pentru noi ca echip.
Simim c am nvat lecii valoroase alturi de startup-urile din program i suntem
convini c vom face o treaba i mai bun
la urmtoarele ediii, a declarat Monica
Obogeanu, Program Manager How to Web
MVP Academy.
Mediatizarea How to Web MVP
Academy a fost asigurat de Goal Europe,
Netokracija, IT Dogadjadi, Digjitale,
Entrepreneur.bg, Newtrend.bg, Adevrul
Tech, Forbes Romnia, Wall-Street.ro,
Business Cover, Manager Express, Business
Woman, Market Watch, Ctrl-D, PC World,
Computer World, Gadget Trends, Today
Software Magazine, Agora, Yoda.ro,
Incont.ro, Romnia Liber, Zelist Monitor,
Comunicatedepresa.ro, Thehack.biz,
Games Arena i Times New Roman.

Irina Scarlat

irina.scarlat@howtoweb.co
PR Manager
@ How to Web & TechHub Bucharest

www.todaysoftmag.ro | nr. 26/august, 2014

11

business

Noi modele de educaie pentru pasionaii de tehnologie:


bootcamp-ul Simplon

a bootcamp-ul Simplon s-au nscris deja peste 60 de tineri extrem de motivai i creativi care vor i pot face mai mult dect ceea
ce fac astzi. Cineva care nu a fcut facultate pentru c trebuia s se angajeze c s se poat susine financiar vrea s intre n
bootcamp pentru c-i dorete s devin un Elon Musk al Romniei. O alt candidat a lucrat ca operator baze de date. De cnd
a aflat de Simplon i-a dat demisia i a plecat cu Work & Travel ca s adune bani pentru cele 6 luni n care dorete s-nvee cod ca s-i
dezvolte ideile de aplicaii pe care le are de mult timp.
Imaginai-v ce ar putea face un grup
de oameni cu idei fantastice i cu dorina
de a nva dac s-ar aduna timp de 6 luni
ntr-o tabr de creaie i programare.
Tabra aceasta exist la Cluj i i va deschide porile din toamn la Simplon.

Un mediu de dezvoltare pentru geek i


creativi

Cnd am aflat de Simplon, locuiam n


Frana de 2 ani i jumtate. Tot de atta
timp mi cutm i un job. n Romnia
eram PR Manager ntr-o agenie de publicitate din Bucureti cnd m-am hotrt s
plec la Paris unde puteam s-mi continui
studiile cu un al doilea Master n Industrii
Creative. Cu experien de cinci ani i
trei limbi pe care le vorbeam, nu credeam
c CV-ul meu va ajunge att de des printre spam-urile managerilor de HR. Cnd
reueam s ajung la un interviu mi se spunea c sunt fie supracalificat, fie mi se
propunea un alt post dect cel pentru care

12

aplicasem.
Mi-am dat seama c ceea ce caut nu
este neaprat un job, ci un anumit mediu
de lucru: cu oameni deschii la minte i
cu ambiii mari, creativi, geek, pasionai
de tehnologie, mediul digital i inovaie.
mi aduc aminte c a doua zi dup ce-am
terminat Masterul la Universitatea Paris 8,
mi-am fcut PFA i am pornit la vntoare
de clieni prin spaiile de co-working i fab
lab-urile pariziene. Un freelancer trebuia
s tie s fac de toate: de la marketing,
vnzri pn la project management i
programare. Cunotinele de HTML i CSS
contau printre miile de candidai, a c-am
nceput s iau cursuri de programare pe
Cursera, o platform de e-learning.
ntre timp ideile de aplicaii pe care
doream s le dezvolt umpleau paginile
carneelelor personale cu schie i modele
de business. Dup o iarn lung i plin de
cutri, am vzut un master de Inteligen
Artificial. Cu toate nopile petrecute

nr. 26/august, 2014 | www.todaysoftmag.ro

ascultnd conferine ale profesorilor de la


MIT m gndeam c dac se d examen din
teorie, voi lua o not de trecere. Din pcate,
la celalt capt al telefonului primit de la
secretariatul Masterelor de Informatic i
Calculatoare, nu erau veti bune. Cu nici
una din diplomele mele nu m ncadram la
candidaii eligibili.

Coding Bootcamp-ul adus din Frana n


Romnia

n vara lui 2013 am fost acceptat n


prima promoie Simplon.co alturi de ali
29 de candidai care urmau s nvee Ruby
on Rails pentru a deveni web-antreprenori
n 6 luni. Eram 14 naionaliti cu vrste
cuprinse ntre 18 i 55 de ani, de la PHDuri i pn la tineri fr BAC. n cele 6 luni
la Simplon am simit pentru prima oar c
mi-am gsit locul i c pot face orice. Am
lucrat la foarte multe proiecte pentru c
simeam c merit i preferam s merg n
weekend la Simplon mai degrab dect la
Muse du Louvre. Era un mediu stimulant,
eram apreciat pentru ceea ce fceam i
ncurajat s devin mai bun n fiecare zi.
Cnd le-am spus colegilor c a vrea s
dezvolt Simplon n Romnia, mi doream
s m ntorc cu un proiect frumos acas
prin care s dau mai departe tot ceea ce
am nvat. Nu m gndeam c totul se va
ntmpla att de rapid. Structura Simplon
era ns pregtit pentru replicare, iar
fondatorii Simplon mereu deschii la noi
destinaii i provocri. Filiale se vor deschide n curnd i n Tunisia, Brazilia,

TODAY SOFTWARE MAGAZINE

Maroc. Romnia a fost ns prima


destinaie pentru Simplon n strintate.
ara noastr beneficiaz de o recunoatere
global pentru capacitile programatorilor
romni. Cnd toat lumea caut specialiti
n noile tehnologii, Simplon i propune s
dezvolte un pool de talente de acest gen la
Cluj.
n ianuarie am creat o filial Simplon n
Romnia pentru care am primit o susinere
de la Orange din Frana. n parteneriat
cu Cluj Cowork i Ruby Tribe am lansat
bootcamp-ul care va ncepe din toamn.
Simplon Romnia este o filial local, iar
Simplon.co, un start-up francez de succes,
lansat n aprilie 2013. Conceptul inovator
din punct de vedere social al Simplon.co a
fost premiat chiar de Preedintele Franei
c fiind una dintre iniiativele cu cel mai
mare impact social al anului n Frana.
Cu Simplon Romnia exist anse mari
s dezvoltm ct mai multe comuniti
de practici i nvaare social conectate la
o reea global. Pentru educaia specializat n tehnologii avansate cum ar fi cloud
computing i connected objects, nu exist
profesori universitari momentan. Ceea
ce i propune Simplon este s faciliteze
accesul la noile tehnologii i transferul
de know-how de la specialiti ctre noua
generaie, ntr-un timp ct mai scurt.

Statele Unite i l-a adaptat la piaa european. tim c n Europa, crearea locurilor
de munc este una dintre cele mai mari
probleme actuale. Pe de alt parte n IT
exist o cerere foarte mare de noi talente.
Un training cu profesioniti experimentai
cost ntre 4000 i 15000 de dolari n SUA.
Pentru cei care vin din medii modeste,
ansele de a-i finana trainingul pe cont
propriu ar fi foarte mici. Aici intervine
Simplon. Noi cutm acei parteneri care
vor s susin inovaia, formarea noilor
talente sau care au nevoie resurse umane
bine pregtite, gata s integreze o echip de
dezvoltatori web n 6 luni. Cu ajutorul lor,
oferim un bootcamp gratuit celor care vor
s nvee practic cum se dezvolt aplicaiile
web i proiecte/startup-uri.
nscrierile pentru programul de
training intensiv de 6 luni n domeniul
dezvoltrii web i al antreprenoriatului
social sunt deschise pn pe data de 20

august. Simplon Romnia caut n continuare candidai. Programul se adreseaz


n special persoanelor subreprezentate n
mediul digital i care au nevoie de trainiguri speciale pentru a fi integrate pe
piaa muncii. Dac eti specializat ntr-un
domeniu i nu i gseti job sau vrei s
nvei dezvoltare web, singur e mai dificil s
gseti o soluie. La Simplon poi s-i pui
n valoare pasiunile, folosind tehnologia
pentru a-i dezvolta aptitudinile care sunt
la mare cutare pe piaa muncii.

Skill-uri necesare pentru viitor

Nevoia de personal calificat, cu


experien de lucru n medii de lucru dinamice, tehnologii i framework-uri de ultima
or este incredibil de mare. n acelai timp
capacitatea locurilor la facultile tehnice
este limitat, iar pe cealalt parte, avem mii
de tineri absolveni n comunicare, marketing, geografie care nu-i gsesc de lucru.

Noile tehnologii se schimb foarte rapid.


Pentru a dezvolta soluii inovatoare, Simplon caut i formeaz un profil special
de developer

Ideea de la care a pornit Simplon a fost


aceea de aduce la un loc toi pasionaii de
tehnologie care sunt dornici s nvee cod
pentru a schimba lumea. Practic, Simplon
a preluat formatul bootcamp-urilor din
www.todaysoftmag.ro | nr. 26/august, 2014

13

startups

Noi oferim un training intensiv bazat


pe cunotine practice i metode de
nvare rapid a limbajelor de programare.
Cursanii sunt ncurajai s se implice n
ct mai multe proiecte pentru a-i dezvolta
capacitile de lucru, a testa i a alege ceea
ce li se potrivete mai bine. n cele 6 luni
pot dezvolta mai mult n front-end sau
back-end. Nu se pun note i nu se fac evaluri ca la coal. Github este cel mai bun
prieten al nostru. Acolo vedem cte linii
de cod a scris fiecare i contribuia lor la
proiecte.
Cunot ine dob ndite n ur ma
training-ului:
tehnologii web avansate i limbaje
moderne: HTML & CSS, Ruby on Rails,
JavaScript.
instrumente de lucru precum
Github, Agile Development, Test Driven
Development .
noiuni de product development i
user experience/UX design.
metode de dezvoltare tip agile i tehnici de lean startup pentru afaceri.
folosirea platformelor online de
management eficient al proiectelor web
i al echipei.
tehnici de vnzare i marketing al
serviciilor i produselor tehnologice.
Dincolo de competenele practice, rolul
nostru e de a pregti generaia viitoare cu
skill-urile necesare pentru a crea tehnologia de care avem nevoie. Bootcamp-ul

14

Simplon e unic i din perspectiva pe care


o ofer cursanilor asupra tehnologiei.
Selecionnd candidai cu pregtire n
domenii foarte diferite, dar avnd toi
aceeai motivaie mare, Simplon dezvolt
o comunitate de talente interdisciplinare
care fac schimb de idei i de competene lor
pentru crea noi tehnologii. La final, codul
este doar un pretext. Ce e important pe
lng capacitatea de a scrie i citi cod, este
mindset-ul de nvingtor, gndirea logic
i orientat spre rezolvarea problemelor
complexe.

Pe lng bootcamp i programul de


incubare dedicat antreprenorilor, Simplon
organizeaz evenimente, ateliere pentru
copii, workshop-uri pentru fete i femei sau
angajaii din companii care vor sa nvee
programare sau s afle care sunt cele mai
noi tehnologii i tendine n inovaie. Mai
multe despre Simplon Romnia putei afla
pe site-ul ro.simplon.co

Un partener pentru cei care caut


talente i investesc n inovaie, educaie
i antreprenoriat social

ntr-un singur an, Simplon.co a oferit


traininguri pentru 305 de aduli i 417
copii din Frana, genernd peste 100 de
evenimente i 13 hackathon-uri. Scopul
activitilor noastre n Romnia este de a
aduce diversitate i inovaie n domeniul
IT prin dezvoltarea unei comuniti de
talente creative, pasionate de tehnologie i
antreprenoriat. Tehnologia este prezent
n toate domeniile de activitate: educaie,
transporturi, sntate, turism, ncepnd
din laboratoare i pn n buzunarele
noastre. Suntem aproape dependeni de
smartphone-uri iar n curnd ne vom controla casa la distan cu ajutorul lor. De
aceea credem c ar fi bine s i nelegem
cum poate fi controlat tehnologia i nu
doar s o folosim.

nr. 26/august, 2014 | www.todaysoftmag.ro

Roxana Rugin

roxana.rugina@gmail.com
CEO & co-founder
@ Simplon Romania

eveniment

TODAY SOFTWARE MAGAZINE

Cea de a treia ediie a conferinei de testare de software din


Europa de Sud-Est (SEETEST 2014)

ucureti, 4 august 2014. n 25 i 26 septembrie, Hotel Crowne Plaza gzduiete cea de a treia ediie a conferinei de testare de
software din Europa de Sud-Est (SEETEST 2014), organizat de South East European Testing Board n colaborare cu Asociaia
Patronal a Industriei de Software i Servicii (ANIS) i Quality House. Biletele early bird sunt disponibile pn la data de 31
august i pot fi achiziionate online la http://seetest.org/index.php?page=registration.
SEETEST 2014 este singura conferin
din Europa de Sud-Est despre testarea i
managementul calitii software-ului. n
prima zi a evenimentului, participanii vor
avea ocazia s vad tutoriale susinute de
experi recunoscui din industrie, care vor
aborda subiecte precum principiile testrii
agile, excelena centrelor de testare, abiliti
soft pentru testeri, TMMi, ncrcare & performan sau principiile de baz ale testrii
de aplicaii mobile.
Cea de a doua zi a evenimentului este
dedicat discursurilor susinute de executivi de top din industria internaional de
testare de software. Tot n aceast zi vor
avea loc prezentri ale lucrrilor membrilor
comunitii inginerilor de calitate.
Pe toat durata conferinei va fi
organizat o expoziie care va oferi companiilor internaionale din domeniul
calitii software-ului ansa de a-i prezenta instrumentele folosite i serviciile
n faa audienei. Mai mult, un examen
ISTQB Certified Tester Foundation va avea
loc n timpul evenimentului i va fi oferit de

South East European Testing Board.


Printre subiectele care vor fi abordate
n cadrul SEETEST 2014 se numr testarea de software, tehnici i design al testrii,
managementul proceselor de testare, testarea bazat pe risc, mbuntirea proceselor
de testare, performana testrii, testare
agile, testare n securitate, testare mobile
sau automatizarea testrii.
Aceste subiecte vor fi aduse n discuie de lideri consacrai din industrie.
Printre invitaii care au confirmat prezena
la SEETEST 2014 se numr Rex Black
(software engineer, antreprenor i autor n
domeniul testrii software, USA), Erik van
Veenendaal (expert n testare recunoscut
la nivel internaional, Olanda), Graham
Bath (autor, Germania), Geoff Thompson
(senior test management consultant, Marea
Britanie), Yaron Tsubery (Director QA
& Testing Manager Comverse, Israel) sau
Vipul Kocher (Preedinte al Indian Testing
Board i Co-Preedinte al PT PureTesting,
India).
C ele dou ediii anterioare ale

conferinei de testare de Software din


Europa de Sud-Est (SEETEST) au avut loc
n Sofia, Bulgaria, n 2008 i 2009 i au reunit peste 250 de vizitatori. SEETEST 2014
va aduce mpreun aproximativ 300 de participani care vor avea ansa de a vedea 6
tutoriale de o jumtate de zi organizate n 3
sesiuni paralele i 14 prezentri.
Preul unui bilet la conferin este de
350 EUR i include intrarea la toate sesiunile conferinei, tutoriale, prezentri i
expoziie, documentele suport, mesele
de prnz i pauzele de cafea, precum i
intrarea la evenimentul social care va fi
organizat pe data de 25 septembrie. Diferite
variante de bilete sunt disponibile la preuri
mai mici pentru cei care doresc s participe
doar la anumite pri ale SEETEST 2014.
Mai multe informaii despre bilete i preurile acestora sunt disponibile online la
http://seetest.org/index.php?page=visitors
Biletele early bird ofer o reducere de
20% fa de preul integral i sunt disponibile pn la data de 31 august. Grupurile
de peste 5 persoane, membrii organizaiilor partenere, studenii i partenerii ISTQB
beneficiaz de o reducere de 10% disponibil dup ncheierea perioadei early
bird. Biletele la SEETEST 2014 sunt disponibile online la http://seetest.org/index.
php?page=registration.

Irina Scarlat

irina.scarlat@howtoweb.co
PR Manager
@ How to Web & TechHub Bucharest

www.todaysoftmag.ro | nr. 26/august, 2014

15

eveniment

Aplicaie IT n SAP, dezvoltat de msg systems Romnia, prezentat la


IT Conference on SAP technologies 2014- Cluj i la inscom 2014

sg systems Romnia a dezvoltat n Cluj-Napoca, un produs IT bazat pe ultimele tehnologii propuse de SAP. Proiectul demarat exclusiv la Cluj, n materie de coordonare tehnic i implementare, a presupus extinderea flexibilitii unor produse deja
existente i apreciate de ctre clienii branei asigurri-reasigurri, din portofoliul msg systems: Munich Re, Viena Insurance
Group, GenRe, AIG, Volkswagen Bank, Achmea, Nationale Niederlande, Samsung Life Insurance.
Aplicaia IT a fost gndit de ctre
architeci cu experien n SAP, n colaborare cu consultani business ai branei
asigurri reasigurri. Dezvoltarea software propriu-zis a fost fcut de ctre o
echip de nou programatori SAP.
Prototipul rezultat a fost foarte apreciat
n cadrul grupului msg trecand cu succes
i primele prezentri live n faa clienilor.
n prezent, se discut cu acetia dezvoltarea
de functionaliti noi specifice cerinelor
lor actuale. Rezultatul final urmeaz a fi
prezentat pentru prima data n Cluj, n
cadrul celei de-a doua ediii a conferinei
IT pe tehnologii SAP din 4 septembrie
2014.
Conferina organizat de msg systems
Romania n Cluj se adreseaz tuturor
programatorilor familiarizai cu aplicaiile
enterprise i n special celor cu nclinaii
spre tehnologiile SAP.
Cuvintele cheie ale conferinei de la
Cluj Napoca sunt business rules, enterprise
user experience, reporting & analytics, iar
pentru cei tehnici: SAP HANA, SAP Fiori,
UI5.
nscrierea la Conferina IT bazat pe
tehnologii SAP ediia 2 este deja deschis. Toi cei care doresc s ia parte la acest
eveniment sunt rugai s trimit un e-mail
cu confirmarea de participare la adresa:
info-events@msg-systems.com.
Mai mult, aplicaia dezvoltat de msg
systems Romnia la Cluj va fi prezentat
c i head-line inovativ n cadrul inscom
2014, conferin cu teme exclusive de asigurri i reasigurri, care se va desfura
n Germania, n prezena CEOs ai celor
mai mari companii din acest domeniu din
ntreaga lume.

16

nr. 26/august, 2014 | www.todaysoftmag.ro

Horea Raiu

horea.ratiu@msg-systems.com
Director Departament SAP
@ .msg systems Romania

comuniti

TODAY SOFTWARE MAGAZINE

Comuniti IT

u toate c mult lume este n concediu, v invitm s participai la evenimentele care vor avea loc n lunile august si septembrie.
Today Software Magazine v propune Lansarea numrului 26 / august a revistei TSM, IT Conference on SAP i Design
Patterns Class. Toate acestea sunt gratuite, se anun s fie interesante i cu multe lucruri de nvat.

Transylvania Java User Group


Comunitate dedicat tehnologiilor Java.
Website: www.transylvania-jug.org
Data nfiinrii: 15.05.2008 / Nr. Membri: 585 / Nr. Evenimente: 46
Comunitatea TSM
Comunitate construit n jurul revistei Today Software Magazine.
Website: www.facebook.com/todaysoftmag
www.meetup.com/todaysoftmag
Data nfiinrii: 06.02.2012 /Nr. Membri: 1671/Nr. Evenimente: 21
Cluj Business Analysts
Comunitate dedicat analizei de business
Website: www.meetup.com/Business-Analysts-Cluj
Data nfiinrii: 10.07.2013 / Nr. Membri: 80 / Nr. Evenimente: 8
Cluj Mobile Developers
Comunitate dedicat tehnologiilor mobile
Website: www.meetup.com/Cluj-Mobile-Developers
Data nfiinrii: 05.08.2011 / Nr. Membri: 221 / Nr. Evenimente: 14
The Cluj Napoca Agile Software Meetup Group
Comunitate dedicat metodelor Agile de dezvoltare software.
Website: www.agileworks.ro
Data nfiinrii: 04.10.2010 / Nr. Membri: 440 / Nr. Evenimente: 81
Cluj Semantic WEB Meetup
Comunitate dedicat tehnologiilor semantice.
Website: www.meetup.com/Cluj-Semantic-WEB
Data nfiinrii: 08.05.2010 / Nr. Membri: 187/ Nr. Evenimente: 28
Romanian Association for Better Software
Comunitate dedicat oamenilor cu experien din IT indiferent de
tehnologie sau specializare.
Website: www.rabs.ro
Data nfiinrii: 10.02.2011 / Nr. Membri: 246/ Nr. Evenimente: 14
Tabra de testare
Un proiect care i dorete s strng ct mai muli oameni care
lucreaz ca i testeri.
Website: www.meetup.com/Tabara-de-Testare-Cluj/
Data nfiinrii: 15.01.2012 / Nr. Membri: 337/ Nr. Evenimente: 32

Calendar
August 12 (Cluj)
Lansarea numrului 26 a Today Software Magazine (Cluj)
www.todaysoftmag.ro
August 18-23 (Cluj)
MoodleMoot Romania 2014
it-events.ro/events/moodlemoot-romania-2014-18-23-august-cluj-napoca/
August 21 (Iai)
Mastering Requirements
meetup.com/Tabara-de-Testare-Iasi/events/181662022/
August 21 (Cluj)
#13 PM Meetup - Risk Management
meetup.com/PMI-Romania-Cluj-Nap o ca-Projec tManagement-Meetup-Group /events/194808502
August 27 (Bucureti)
Bucharest FP #3 Haskell Types and QuickCheck
meetup.com/bucharestfp/events/198339372
August 29 (Oradea)
Startup Weekend Oradea
oradea.startupweekend.org
Septembrie 4 (Cluj)
IT Conference on SAP - recomandat de TSM
http://www.msg-systems.ro/agenda_sap.0.html
Septembrie 8 (Cluj)
Design Patterns Master Class - recomandat de TSM
codecamp-cluj-sept2014.eventbrite.com
Septembrie 16-17 (Cluj)
Service Delivery Innovation Summit (London, UK)
serviceinnovationevent.com
Septembrie 24 (Trgu Mure)
Lansarea numrului 27 TSM alturi de Cluj IT Cluster
www.todaysoftmag.ro

www.todaysoftmag.ro | nr. 26/august, 2014

17

management

programare

Informaie structurat - aplicare Agile

anagementul este ntr-o continu evoluie. Noi framework-uri, noi metodologii sunt inventate, reinventate i adaptate pentru a satisface nevoile unei piee
foarte dinamice. De fiecare dat cnd apare ceva nou, la nceput luptm
mpotriva schimbrii pentru ca mai apoi, dup ce civa temerari demonstreaz valoarea
noului concept suntem gata s-l adoptm drept noua noastr religie. La fel s-a ntmplat
n cazul Waterfall i Scrum i la fel se ntmpl n ultima vreme cu Kanban.
Bogdan Murean

bogdan.muresan@3pillarglobal.com
Director of Engineering
@ 3Pillar Global

18

nr. 26/august, 2014 | www.todaysoftmag.ro

Business-urile evolueaz ntr-un ritm


ameitor iar framework-urile ce permit o
adaptare rapid i o lansare rapid pe pia
au fost grupate n ceea ce se numete conceptul Agile, cea mai n vog i cea mai
folosit sintax din domeniul IT din ultimii
ani. Cu toate aceste framework-uri ce se
nvrt n jurul nostru managerii pot cdea
rapid ntr-o stare de automulmire uitnd
bazele i esena a ceea ce nseamn management de proiect. Bazele managementului de
proiect sunt bine definite, bine structurate
i, n opinia mea, n ciuda a ceea ce crede
mult lume, a cunoate i a evolua pe baza
unor cunotine structurate nu contravine
deloc cu regulie jocului Agile. Din contr,
aceste cunotine pot fi adaptate, devenind o unealt puternic atunci cnd vrem
s jonglm cu framework-urile de genul
Scrum, Kanban etc. .
Ca i muli alii din acest domeniu,
evoluia mea spre management de proiect
a trecut prin mai multe stadii, ncepnd ca
programator, mai apoi conducnd echipe
din punct de vedere tehnic, pentru ca mai
apoi s m ndrept spre managementul de
proiect. Am avut noroc s urmez un curs
de management de proiect, dar cel mai
mult am nvat n focul luptei. Absolut

normal, procesul nu a fost unul liniar ci a


fost unul cu suiuri i coboruri.Dar cu
siguran acelea au fost momentele care
au dat roade mai trziu. ncetul cu ncetul
au nceput s apar aa numitele momente
de contientizare a experienei. Odata ce
ncepem s fim tot mai siguri pe noi i s
catigm tot mai mult experien, cutm
o certificare care s ne ajute n noul nostru
obiectiv. Acela a fost momentul pentru mine
n care am devenit tot mai interesat de ceea
ce nseamn PMI i PMP. Ca s fim bine
nelei, intenia mea nu e de a face reclam
celor de la PMI, nc nu am aplicat pentru
a-mi lua certificarea. Este ceva ce vreau s
fac anul acesta. Pn n acest moment am
participat la orele de curs necesare pentru
a m putea nscrie pentru examen. M-am
hotrt s scriu acest articol deoarece att
n timpul orelor de curs ct i n multe
alte discuii legate de certificarea PMP am
auzit multe dezbateri dac aceast teorie se
aplic sau nu n proiectele Agile. Dup cum
ai observat probabil chiar din primele rnduri, prerea mea este c acele cunotine
necesare obinerii certificrii PMP sunt un
bun de mare pre (i obligatoriu n acelai
timp) pentru orice manager de proiect ce se
nvrte n lumea Agile.

programare
Certificarea PMI i ofer informaii
structurate ntr-un anumit fel, o mulime
de documentaie, o cale clar despre cum
se gestioneaz un proiect de la nceputuri i
pn la terminarea sa (i nu doar n industria IT). Principiile pe care se bazeaz sunt
prinse ntr-o carte destul de voluminoas
numit PMBok. n acelai timp Agile nu
prea ne oblig la tone de documentaie,
nu are legatur cu o cale i reguli btute n
piatr, dar obiectivul e acelai: terminarea
cu succes a unui proiect. Voi justifica aceast
opinie fcnd o paralel cu Scrum-ul pentru c cea mai mare parte din experiena
mea cu framework-uri Agile merge nspre
Scrum. Scrum-ul definete nite roluri
printre care regsim cel puin unul care
nu are legtur cu teoriile generale de project management i anume rolul de Scrum
Master. Scrum Master-ul este un fel de
super erou care are putere deplin asupra
procesului i care trebuie s rezolve toate
impedimentele astfel nct echipa s-i
poat face treaba. Dac ne lum dup
manual, el deine drepturi depline asupra
procesului dar nu are autoritate asupra
echipei. Unele companii au rezolvat acest
aspect folosind manageri de linie mpreun
cu Scrum Master-ii, alte companii au rezolvat acest aspect combinnd rolul de Scrum
Master cu cel de manager de linie (caz n
care rolul de Scrum Master se identific cu
cel de manager de proiect). Nu exist reeta
ideal, dar important este s se potriveasc
n contextul respectiv. Oricare ar fi contexul i rolurile, persoana care controleaz
procesul trebuie sa tie ce face. La fel i cu
persoana care are responsabilitate asupra
echipei. Pentru aceasta i nu numai, bazele
managementului de proiect sunt foarte

TODAY SOFTWARE MAGAZINE


importante.
Structura PMBok-ului se bazeaz (cel
puin n ultima ediie, deoarece i PMI
evolueaz n continuare) pe 47 de procese.
Acestea sunt grupate n 5 grupuri i 10 arii
de cunotine. Pentru a fi n conformitate
cu cerinele PMI trebuie s lucrm cu
structura care se potrivete n acest peisaj.
Aici apare i dilema: nvnd acest mod
structurat de face lucrurile, avem vreun
beneficiu n viaa de zi cu zi din proiectele
mele Agile? Normal c avem (zic eu).
S ncepem cu cele 5 grupe de procese: Iniierea, Planificarea, Executarea,
Monitorizarea i Controlul i nchiderea.
Practic ne referim la ciclul normal de via
al unui proiect. Orice proiect trebuie s
aib un nceput. Nu putem s ncepem
din mijlocul lui, trebuie s existe o faz
iniial. Chiar i atunci cnd suntem n
situaia nu chiar de dorit de a continua
munca nceput de alii (situaie de nedorit
n mare parte din cauza ego-ului nostru
deoarece ne simim mult mai mplinii
atunci cnd ncepem un proiect de la zero
i-l ducem la linia de sosire; situaie care
de altfel e o oportunitate perfect s dm
vina pe vechea ehip de fiecare dat cnd
apar probleme sau erori din momentul
n care-l prelum pn la sfritul lui).
Indiferent de framework-ul folosit pentru
a duce la bun sfrit proiectul, n faza de
iniiere trebuie s identificm stakeholderii. Iat c ncep s apar prile comune.
Pentru a urma principiile din PMBok, n
faza de planificare stabilim regulile jocului
i definim cum vom face totul de la nceputul pn la sfritul proiectului, urmnd a
actualiza unele informaii pe msur ce
naintm. Ca adepi ai metodologiei Agile

nu planificm totul de la nceput, dar


recurgem la planificri pe tot parcursul
proiectului n bucele mai mici. Dac suntem adepi ai Scrum-ului ne vom planifica
iteraiile, ne vom planifica munca de zi cu
zi si nu numai. Executarea, monitorizarea
i controlul se refer la munca efectiv
necesar pentru a termina proiectul. Ce
face un manager de proiect sau un Scrum
Master? Acelai lucru: gestioneaz munca
n sine, comunicarea,stakeholder-ii, procesul de testare, riscurile, adic toate palierele
unui proiect.
Aa cum afirmam mai sus, pe lng cele
5 grupuri de proces, PMBok organizeaz
informaia n 10 arii de cunotine. Dei
nu intenionez s le prezint integral, ar fi
interesant de observat cum se mapeaz
cteva din ele peste ceea ce se ntmpl n
lumea Scrum-ului. Grupul magic al celor
3 (timp, scop, cost) rmne esena a ceea
ce facem. Dac n lumea structurat a
PMI-ului estimm ceea ce vom face nc
de la nceput cnd lucrm cu Scrum facem
acelai lucru dar n pri mai mici. Cnd
planificm o iteraie inem cont de aceeai
parametri principali: scopul (care vine
din backlog-ul prioritizat), scop pe care l
ajustm n funcie de velocitate (velocitatea depinde bineneles de echip care
mpreun cu alte date de intrare se traduce
n cost). Trebuie s realizm acest scop
ntr-un timp bine definit dat de lungimea
iteraiei. Foarte asemntor cu modul n
care crem WBS-ul realizm i spargerea
story-urilor n task-uri. Dac ne gandim la
un proiect care este manageriat dup regulile PMI ca referin (proiectele conduse
dup metoda Waterfall se muleaz perfect
pe aceast structur) putem s vedem

Our core competencies include:

Product
Strategy

Product
Development

Product
Support

3Pillar Global, a product development partner creating software that accelerates


speed to market in a content rich world, increasingly connected world.
Our oerings are business focused, they drive real, tangible value.

www.3pillarglobal.com

www.todaysoftmag.ro | nr. 26/august, 2014

19

management
Informaie structurat - aplicare Agile
fiecare iteraie n parte ca o reprezentare n
miniatur a referinei: bine organizat, bine
planificat i bine definit n timp.
O alt arie important din cele 10 este
managementul riscului. n amndou
situaiile este un proces perpetuu. Evalum
riscul dup priceperea noastr i ca s fim
eficieni trebuie s cunoatem cel puin
bazele. Exist cteva tehnici care ne vor
ajuta s identificm riscurile. Trebuie s
tim care riscuri sunt mai importante,
care au impactul mai mare i s definim
care vor avea nevoie de aciuni din partea
noastr. Putem face un plan pentru a
evita anumite riscuri, pentru a transfera
ctre o ter parte anumite riscuri. Ce este
important este s tim opiunile noastre
pentru a deveni mai eficieni. Aceasta nu
depinde de framework-ul cu care lucrm
(Scrum, Kanban). De asemenea, realizm
ca informaia structurat, bazele, esena, nu
sunt deloc departe de lumea Agile.
Ca Scrum Master-i gestionm procesul i vom face tot posibil pentru a
nltura impedimentele din calea echipei.
Cteodat aceste impedimente se refer
la nevoia integrrii cu un serviciu oferit
de altcineva. Cteodat poate fi ceva simplu precum achiziionarea unui set de
controale, cteodat poate fi ceva mai complicat precum integrarea cu un provider
pentru suport on-line pentru produsul
nostru. Ceea ce trebuie s tim n calitate
de Scrum Master-i este cum s facem managementul achiziilor. Trebuie s tim cum
s definim regulile pentru selectarea vendorului i cum s realizm contractul cu
vendorul.

20

Dac innd cont de teorie Scrum


Master-ul nu are autoritate asupra echipei,
acest lucru nu nseamn c n echip nu
pot aprea conflicte. Nu nseamn c nu
vor exista persoane demotivate n echip.
Managementul resurselor umane ne nva
s gestionm astfel de situaii. Toat lumea
a auzit de piramida nevoilor lui Maslow,
dar mai sunt multe teorii care ne pot ajuta.
Un minim de cunotine despre aceast
arie ne va da posibilitatea s ne adaptm
la context i s alegem soluia potrivit n
funcie de situaie.
Nu este nevoie s intru n toate detaliile fiecrei arii de cunoatere dar dac am
face o analiz i mai detaliat, am constata c acele cunotine care ne ajut s
gestionm un proiect respectnd calea
PMI, se aplic i n framework-urile Agile.
Evoluia noastr ca manageri nu ar trebui s se opreasc la primul framework
care funcioneaz. Cu ct tim mai multe,
cu att putem aciona mai eficient deoarece nu vorbim de lucruri btute n piatr
ci vorbim de adaptare. Vom putea s ne
adaptm, s mixm i s folosim ceea ce
tim pentru a crete eficiena lucrului fcut
de noi. Esena poate s vin structurat n
multe metodologii (PMI, PRINCE2 etc.).
Framework-urile Agile nu ar trebui s
ne ndeprteze de informaia organizat.
Chiar mai mult de att aceste frameworkuri ne dau posibilitatea de a jongla cu
aceast informaie cum vrem noi, ne dau
posibilitatea s fim acei rebeli care nu fac
o analiz de risc doar n momentele bine
stabilite de la nceput ci realizeaz aceast
analiz i ad-hoc dac simt ei c trebuie.

nr. 26/august, 2014 | www.todaysoftmag.ro

Depinde doar de noi cum aranjm piesele


acestui puzzle uria i cum ne jucm cu el.
Cu ct tim mai multe, cu att mai multe
sunt posibilitile. Mai multe posibilitti de
unde s alegem nseamn automat i mai
multe anse de succes, dar cteodat i de
eec. Dar nu vom ti niciodat ce pierdem
dac nu vom continua s evolum.

programare

ntreinerea la zi a sistemelor Linux


Partea a II-a

cest articol are ca subiect sistemul de stocare care se preteaz cel mai bine ntr-un
centru de calcul. nainte de a prezenta consideraiile privitoare la selecia sistemului de fiiere pentru un centru de calcul, vom realiza o scurt clasificare i istorie a
sistemelor de fiiere.

Sorin Pnca

sorin.panca@yardi.com
Senior Systems Administrator
@ Yardi Romnia

Sistemele de fiiere se mpart n dou categorii, n funcie de localizarea lor:


A. Sisteme de fiiere locale - de obicei
aceste sisteme rezid pe un dispozitiv local:
a. disc dur cu platane (HDD);
b. memorie NAND ce poate fi conectat
la sistem prin interfaa SATA sau SAS (caz
n care se numete SSD), sau prin interfaa
USB (caz n care se numete stick USB
sau pen drive);
c. disc optic (CD/DVD/BlueRay);
d. RAID - mai multe medii de stocare
identice compun un mediu de stocare mai
voluminos i/sau care ofer redundan la
nivel de bloc de date (data block);
e. me mor ie R AM c u ac umu l ator,
conectat la interfaa PCIe;
f. memristor (nelansat nc).

Memorie i Periferice. ntre Periferice, mediul


de stocare a evoluat de la un mediu de pe care
se poate doar citi la un mediu pe care sistemul
poate s i scrie.

Evoluia sistemelor de stocare locale a


fost n linii mari urmtoarea:
carduri perforate (permiteau doar
citire, scrierea se fcea manual);
benzi magnetice;
discuri cu platan (cu diametre de ordinul metrilor);
dischete flexibile de 5,25;
dischete flexibile de 2,5 (cu capaciti
de 850 kO, utiliznd o singur fa; 1,44
MO, utiliznd ambele fee; 2,88 MO, utiliznd ambele fee i o densitate mare a
datelor);
discuri dure de 3,5;
B. Sisteme de fiiere pe reea (nu le
restul de medii, enumerate mai sus.
voi enumera pe toate, ci voi da doar cteva
exemple, n ordinea evoluiei, pentru a ilustra
A urmat revoluia reelelor, cnd a aprut
arhitecturile i conceptele ce le au n comun i nevoia de a transfera fiiere fr a duce fizic
care stau la baza funcionrii lor):
un suport de date (discheta) de la un sistem
a. cu punct de acces unic, pe modelul la altul, n special n scopul comunicrii n
client - server: CIFS (cunoscut ca My timp real.
Network Places n Windows), NFS, FTP,
Astfel a aprut ideea de model server
rsync, IMAP, scp, WebDAV, etc.;
- client n care un sistem care deinea o
b. de tip cluster cu replicare la nivel resurs (de exemplu un fiier) putea s o
de bloc de date: DRBD, Microsoft DFS, pun la dispoziia altor sisteme folosind un
GlusterFS;
limbaj de comunicare (protocol) printr-un
c. de tip cluster cu replicare la nivel de canal de comunicaie (reeaua); acest sistem
fiier: Lustre, Ceph, MooseFS, XtreemFS.
joac rolul de server (sau servitor, pentru
c servete resurse). Un sistem de calcul care
Istoric, calculatoarele erau sisteme izo- are nevoie de o resurs (clientul) ce se gsete
late a cror arhitectur consta n: Procesor, pe un alt sistem, poate contacta sistemul de la
www.todaysoftmag.ro | nr. 26/august, 2014

21

programare
ntreinerea la zi a sistemelor Linux Partea a II-a
distan (serverul) prin canalul de comunicaie (reeaua), folosind
un limbaj de comunicare (protocolul) pe care ambele sisteme l
neleg (exemple de protocoale: FTP sau HTTP sau IMAP din
enumerarea de mai sus; P n aceste nume provine de la cuvntul
protocol). O teorie frumoas.
Problemele practice ntmpinate n scenariul de mai sus sunt
urmtoarele (n cazul n care acestora li se gsesc soluii, rezolvarea lor este notat cu R) :
doi clieni vor s actualizeze aceeai resurs deodat (R: sistemele de fiiere de reea implementeaz blocarea resurselor);
prea muli clieni doresc aceeai resurs, epuiznd capacitatea de servire a serverului (R: RAID0, RAID10, SSD, memorie
RAM cu acumulator, sisteme de fiiere de reea de tip b i c);
spaiul de stocare al serverului se epuizeaz (R: sisteme de
stocare de reea de tip c - care sunt extensibile);
serverul devine indisponibil datorit unei pane de curent
(R: UPS);
adaptorul de reea al serverului se defecteaz n timpul unui
transfer sau al mai multor transferuri simultane, avnd ca efect
coruperea datelor transferate sau trunchierea lor (R: mai multe
adaptoare de reea agregate);
sincronizarea ntre mai multe servere trebuie s se fac
instant pentru toat cantitatea de date (R: sisteme de fiiere de
reea de tip b sau c);
fiecare client dorete s caute prin toate datele stocate i
cutarea s se termine n mai puin de o secund (R: Full Text
Search DB);
datele stocate pe server sunt vechi, deoarece serverul face
parte dintr-un lan de servere care trebuie s se sincronizeze, iar
sincronizarea are loc doar la un anumit interval (R: sisteme de
stocare de reea de tipul c);
datele stocate pe server se corup sau se pierd, deoarece se defecteaz mediul local de stocare al serverului (R:
RAID(1,5,6,10), sisteme de stocare de reea de tip b sau c);
serverul devine indisponibil, deoarece se defecteaz o
component important: placa de baz, procesorul, memoria,
sursa de alimentare (R: sisteme de stocare de reea de tip b sau
c);
unele date au nevoie de redundan mai mare dect altele (R:
sisteme de stocare de reea de tipul c);
erori umane (rm -rf /home /var; tii voi la ce (sau cine) m
refer).
Din lista de mai sus se observ c cel mai mic multiplu comun
cnd vine vorba despre rezilien la catastrofe este tipul de stocare pe reea c - cu acest tip de stocare rezolvm cele mai multe
probleme.
n ceea ce privete protecia datelor, companiile care vnd
soluii de stocare s-au axat pe stocarea local i au creat matrici
de discuri (RAID = Redundant Array of Inexpensive Disks) n
diferite formaii:
a. RAID0 - nu ofer protecia datelor, n schimb ofer spaiu
i vitez: fiierele sunt fragmentate n blocuri de date (de cca 4
pn la 64 kO) care sunt mprite relativ egal pe toate mediile
de stocare din matrice, astfel nct att la scriere ct i la citire,
fragmentele de fiier sunt procesate n paralel.
b. RAID1 - ofer protecia datelor prin nscrierea lor pe toate
mediile de stocare componente ale matricii; scrierea dureaz la
fel ca i cnd ar fi pe un singur mediu, n schimb citirea este mai
nceat deoarece se citesc datele de pe toate mediile componente
i sunt comparate pentru a oferi sistemului varianta corect;

22

nr. 26/august, 2014 | www.todaysoftmag.ro

varianta corect, n cazul n care nu exist quorum se stabilete


prin viteza de rspuns a mediului: mediile defecte rspund
mai ncet sau deloc; dac datele recepionate nu difer ntre
medii, iar timpul de rspuns e comparabil, mediile se consider
sntoase.
c. RAID5 - ofer protecia datelor prin calculul unei sume
de control; vitez mai sczut att la citire ct i la scriere n
comparaie cu un singur mediu
d. RAID6 - ofer protecia datelor prin calculul a dou sume
de control; vitez mai sczut dect RAID5
e. RAID10 - este o combinaie ntre RAID1 i RAID0: mai
multe perechi de discuri n configuraie de replicare (RAID1)
sunt nlnuite pentru a oferi spaiu i vitez (RAID0)
f. RAID50 - cutai pe Internet.
Aceste soluii ofer o oarecare protecie cteodat, altdat
vitez, dar nu rezolv probleme ce pot aprea la alte componente
ale sistemului: procesor, memorie, plac de baz, plac de reea,
dorina imperioas a administratorului de a opri sistemul, etc. .
Prima soluie de a oferi disponibilitate sporit (high availability) a serverelor de fiiere a fost aceea de a crea RAID1 prin reea.
Astfel a aprut DRBD, care simuleaz un mediu de stocare ce are
ca motor discurile locale a dou servere pereche. Aceste dou servere in fiierele sincronizate, pot accesa sistemul de fiiere simulat
i l pot pune la dispoziia clienilor din reea folosind un protocol
standard (CIFS, NFS, rsync, etc.). Pentru a obine disponibilitate
sporit, sistemul de fiiere e accesat prin reea printr-o adres
IP de serviciu, care e mutat de pe un server pe cellalt manual
sau automat. Astfel un server este considerat activ, iar cellalt e
n ateptare. Problema este c sistemul de fiiere poate fi extins
anevoios: se oprete cte un server, se mrete spaiul pe primul,
se copiaz datele de pe al doilea, se mrete spaiul pe al doilea, se
recreeaz replicarea. O alt problem este costul: pentru a obine o
instan server disponibil pentru client se dubleaz capacitatea
de calcul, cu costurile aferente, fr a se obine un beneficiu continuu. Beneficiul apare doar n momentul cnd unul din servere
devine inoperabil, ceea ce practic reprezint aproximativ 0% din
durata de via a sistemului. n unele cazuri aceste costuri sunt
justificate (cnd datele i accesul nentrerupt la ele este vital - de
exemplu la sistemele de meninere a vieii).
Aceeai problem o au toate sistemele care replic datele la
nivel de bloc. De asemenea, faptul c replic la nivel de bloc de
date nseamn c spaiul pe care l va utiliza trebuie prealocat, ceea
ce conduce la un management ineficient din partea administratorului: ct spaiu s se aloce, achiziia de servere noi, identice,
care s ofere suficient spaiu de la nceput (nu se pot folosi servere
care deja exist n centrul de calcul), timp de indisponibilitate a
sistemului (pn cnd este reconfigurat spaiul de stocare i este
reinstalat serverul). Dac se reconfigureaz un server mai vechi,
intervine i migrarea vechilor date n alt parte.
(n ncheierea introducerii doresc s fac o parantez la
adresa capitalismului i a consumerismului: muli programatori
i administratori de sisteme se plng de faptul c firma la care
lucreaz le face viaa grea ncercnd s foloseasc servere vechi,
deja existente, n loc s investeasc bani n utilaje noi, de ultim
or. Aceasta denot o lene sau o inabilitate a administratorului sau
programatorului n a face planurile necesare pentru reutilizarea
sistemelor sau pentru optimizarea codului.
Bineneles, cu bani oricine poate face orice. Arta adevrat
e s poi obine profit cu cea mai mic investiie posibil. Cu ct
profitul este mai mare, cu att angajaii, nu companii externe, care

TODAY SOFTWARE MAGAZINE


vnd sisteme noi, programe sau consultan
se bucur de acel profit. De aceea, Google,
Facebook i alte firme de succes nu doar
c i scriu propriile programe i folosesc
programe gratuite, ci i i proiecteaz
sistemele fizice i centrele de calcul i le
comand direct la productorii originali de
echipamente din China (OEM - Original
Equipment Manufacturers).
Cu ct munca unui angajat poate fi
externalizat (outsourced) mai uor, cu
att valoreaz mai puin. Valoarea unei
companii const n calitatea muncii
angajailor ei, care se msoar n profit
minus cheltuial, nicidecum n bunurile pe
care le achiziioneaz. Altfel, o companie
poate avea activitile total externalizate i
ar deveni fond de investiii.)

Sistemul de fiiere de reea

Dei n urma unui vot noi folosim


momentan GlusterFS, voi prezenta o soluie
pe care am testat-o timp de 3 ani: MooseFS.
n articolul trecut menionam faptul c am
nceput s folosim XtreemFS. Arhitectura
acelui sistem de fiiere prea la prima
vedere una interesant, fr nici un punct
de slbiciune la catastrofe (no single point
of failure). ntre timp am aflat c nu este
suficient de extensibil n ceea ce-i privete
componentele - serviciul de replici i metadate (MRC) i servicul director (DIR), iar
autorii doresc s l distribuie doar ca binar
n viitor, ceea ce este ortogonal cu principiile enunate la sfritul introducerii.
Iniial am studiat toate variantele de sisteme de fiiere de reea, documentdu-m
din experienele altora i nelegnd
funcionarea teoretic a fiecrui sistem de
fiiere n parte. Ca urmare a acestui proces,
am ales pentru intenia de testare practic

dou sisteme: Lustre i MooseFS. Cnd un


arhitect al infrastructurii decide asupra
tehnologiei ce se va folosi n companie,
mare parte a timpului trebuie petrecut
asupra documentaiei i stabilirii de liste
pro i contra pentru fiecare soluie, att
din punct de vedere tehnic (observnd
exact facilitile oferite), ct i din punct de
vedere al costurilor financiare i de timp de
implementare.
n ceea ce privete vechimea pe pia
i popularitatea soluiei, acestea sunt
subiecte critice care trebuie dezbtute atent
pentru a nu trage concluzii greite. Un
sistem care exist de mult timp pe pia
este categoric mai popular dect un sistem
mai nou, deoarece a avut timp s fie adoptat ct nc cel nou nu exista. Pentru a face
o comparaie corect, echitabil, trebuie
s se calculeze o statistic estimat pentru
noul sistem pentru acelai numr de ani pe
care l are sistemul vechi, la rata de adopie
(cretere) comparat pentru perioada de
via a sistemului nou.
De exemplu, dac ar fi s comparm
GlusterFS i MooseFS, am face urmtorul
calcul. Presupunnd c GlusterFS este de
zece ani pe pia, iar MooseFS de doi ani,
privim la rata de cretere a MooseFS n
primii doi ani i estimm creterea pentru
urmtorii zce ani folosind rata din primii
doi ani. Apoi comparm creterea MooseFS
estimat pe zece ani cu cea existent pe
zece ani a GlusterFS.
Un sistem nou care este distribuit
gratuit nu apare pentru c un programator s-a gndit c nu are cu ce s-i piard
nopile. Acel programator a investigat
piaa soluiilor gratuite i nu a gsit ceva
satisfctor. Probabil a investigat chiar i
piaa soluiilor comerciale. Decizia de a

scrie de la zero un program distribuit gratuit nu se ia uor. Mai ales cnd este vorba
un sistem de fiiere care are ca public int
tocmai organizaiile a cror funcionare se
bazeaz pe acele date, inclusiv organizaia
din care face parte programatorul. Iar
dac un proiect atrage muli contribuitori
i soluia este adoptat n medii de afaceri
i academice n detrimentul altor soluii,
avem dovada c acel sistem nou este superior celui vechi i n timp l va nlocui, acolo
unde este posibil.
Exit mitul, c sistemele vechi sunt
mai stabile i mai de ncredere dect cele
noi. ntr-adevr se poate ntmpla ca sistemele vechi s conin mai puine defecte
(bug-uri), dar e important de luat n considerare faptul c i un sistem vechi care e
nc n dezvoltare continu s acumuleze
defecte. Nu exist o metod de a demonstra matematic c un sistem mai are sau nu
defecte sau c are mai multe sau mai puine
dect un alt sistem de orice vrst. Un
sistem utilizat de organizaii n producie
de mai muli ani (chiar i de un an), poate
fi considerat la fel de stabil i de ncredere
ca i unul vechi. Pe de alt parte, despre un
sistem vechi se tie c are defecte arhitecturale ireparabile care au dus la crearea de
sisteme noi. n concluzie, cel mai nelept
din partea arhitectului de sisteme este s ia
o soluie ct mai nou, marcat ca i stabil
i utilizat n producie de alte organizaii.
Totodat, administratorul de sisteme trebuie s i asume resposabilitatea de a
contribui la proiectele care au produs programele utilizate prin corectarea sau mcar
raportarea erorilor ctre productori.
O alt responsabilitate a administratorului de sisteme este aceea de a proteja
datele organizaiei mpotriva pierderii sau

Objective C

jobs-cluj@yardi.com
Yardi Romania

www.todaysoftmag.ro | nr. 26/august, 2014

23

programare
ntreinerea la zi a sistemelor Linux Partea a II-a
deteriorrii. (Nu vom vorbi aici despre
protecia mpotriva furtului, deoarece
subiectul articolului este stocarea datelor,
nu securitatea lor.) Administratorul trebuie
s ateste organizaiei c responsabilitatea
este a lui i nu trebuie externalizat altei
companii. Orice program are defecte, iar
administratorul este cel ce are responsabilitatea pentru aceste defecte.
Lustre este folosit n mediile academice
i de cercetare unde este nevoie s se prelucreze o cantitate imens de date folosind
supercalculatoare. Sistemul este testat i
folosit de supercalculatoarele din top 500
mondial. Administratorii de sisteme de
acolo sunt vrful inteligenei n domeniu,
iar pe deciziile lor se pot baza administratorii din companii private. n momentul
n care am luat decizia de a testa Lustre
(2011) am aflat c nu suport versiuni noi
de nucleu de Linux (avea nevoie de un
nucleu versiunea 2.6.18, modificat) - care
nu era compatibil cu cerinele de drivere
i de performan din compania noastr.
n anul urmtor, Intel a cumprat Lustre
i a promis suport pentru versiunea 3.0
a nucleului, totodat redenumindu-l n
Whamcloud. Promisiunea nu s-a materializat, ns varianta dezvoltat de comunitate
a Lustre a evoluat, iar n acest an clientul se
gsete n nucleul de Linux.
Totui noi aveam nevoie n 2011 de
ceva. Urmtorul pe list, care oferea cele
mai multe faciliti, iar arhitectura era
rezilient la catastrofe a fost MooseFS.
MooseFS are dou probleme:
1. clientul este implementat n afara
nucleului Linux, adic este un program ca
oricare altul de pe sistem, ceea ce indic
o performan sczut; din teste ns a
rezultat o performan satisfctoare i
2. nu oferea redundana nodului master; aceast a 2-a problem putea fi
rezolvat de administratorul sistemului.
Arhitectura MooseFS permite extinderea sistemului de fiiere pe toate serverele
din centrul de calcul. MooseFS creeaz pe
sistemele pe care le folosete o structur de
fiiere numit fiiere de date, ntr-un mod
asemntor cu baza de date Oracle.
n aceste fiiere de date, MooseFS
stocheaz fiierele propriu-zise dup un
algoritm intern: prima dat mparte fiierele
primite de la clieni n buci de mrime
variabil de maxim 64MB (chunks), apoi
distribuie i cloneaz aceste buci pe mai
multe servere (denumite noduri sau chunkservers). Fiecare fiier primit de la clieni
spre a fi stocat, are asociat o int de multiplicare, denumit goal, care reprezint

24

numrul de copii ale


acelui fiier n sistemul
de fiiere MooseFS.
Copiile sunt stocate pe
noduri diferite, astfel
c dac un fiier trebuie s aib dou copii
i un nod ce conine
una din copii devine
indisponibil, fiierul
este nc accesibil pe
cellalt nod. Desigur,
un fiier poate avea
oricte copii, distribuite pe oricte noduri,
nu doar dou.
Poziionarea
fiierelor este
memorat pe nodul
master al crui rol este de a arbitra
distribuia i clonarea bucilor de fiier.
Master reine informaiile despre fiiere
ntr-un fiier: metadata.mfs. n afar de
acest fiier, el creeaz i nite fiiere de
loguri cu toate tranzaciile ce au avut loc,
astfel nct fiierul metadata.mfs poate fi
recreat din aceste loguri, dac se corupe.
n afar de logurile locale, pentru a asigura
recuperarea fiierelor n cazul dezastrelor
ce l pot afecta, master trimite n fiecare
or o copie a metadata.mfs i a fiierelor
de loguri ctre un alt tip de nod din infrastructura MooseFS: nodul metalogger. Pe
acest nod ajunge att metadata.mfs ct i
o copie a logurilor de tranzacii create de
master. Oricnd un server metalogger poate
deveni master, folosind copiile sale locale
ale metadata.mfs i logurilor. n arhitectura
MooseFS pot exista oricte noduri chunk,
oricte noduri metalogger, dar doar un nod
master.
Clienii acceseaz MooseFS contactnd
nodul master, care i redirecioneaz spre
serverele de stocare (chunkservers), unde
au loc operaiile de copiere. Deci copierea
nu se desfoar ntre clieni i master, ci
ntre clieni i serverele de stocare, ceea ce
nseamn c transferurile au loc ntre toate
serverele din centrul de calcul, cu vitez
sporit.
Din arhitectura MooseFS decurge
o aplicaie interesant: Putem avea un
sistem de fiiere distribuit, performant i
cu rezilien la indisponibilitatea nodurilor
folosind toate sistemele din reea. Aceasta
nu se aplic doar la centrul de date, ci i
la un birou tipic, unde exist sute de staii
cu spaiu liber pe discuri, nefolosit. Astfel,
angajaii din birou vor stoca fiiere pe
reea la propriu, nu pe un server dedicat,
scump, care poate deveni indisponibil sau

nr. 26/august, 2014 | www.todaysoftmag.ro

plin sau pe care administratorii trebuie s-l


ngrijeasc.
Un ochi de administrator versat face
imediat observaia: dar discurile vor fi
umplute?
Nu: MooseFS ine cont de gradul de
umplere al discurilor pe care le folosete
(nu doar n ceea ce-l privete, dar i cu
datele pe care sistemul le stocheaz pe
acel disc n afara MooseFS). MooseFS va
ncerca s egalizeze procentual gradul de
utilizare a spaiului de stocare de pe toate
discurile disponibile. Deci, datorit faptului
c se face un calcul procentual al gradului
de umplere, MooseFS nu impune ca toate
discurile s aib aceeai dimensiune. Astfel,
de exemplu, toate discurile din nodurile
MooseFS vor ajunge n timp la un grad
de umplere egal procentual, indiferent de
mrime.
Dat fiind faptul c fiierele sunt multiplicate pe noduri diferite, la nivel de nod nu
avem nevoie de soluii RAID care s duplice
coninutul sau s fie ineficiente ca vitez
pentru a asigura protecia datelor. Datele
sunt protejate prin replicare internod, nu
intranod. Gradul de multiplicare poate fi
controlat de administrator pn la nivelul
fiecrui fiier n parte i fr ntreruperea
funcionrii sistemului sau oricrei componente ale sale. Dac pe MooseFS nu se
stocheaz nimic, atunci spaiul ocupat
de MooseFS pe nodurile de stocare este
aproape zero. Deci, MooseFS ocup exact
att spaiu de stocare ct are nevoie i nu
are nevoie de partiii separate - folosete
un director; administratorul de sisteme nu
trebuie s i planifice nimic din timp, ci
doar s instaleze i s porneasc serviciile
de stocare, serviciul master i serviciile de
metalogger.
Pentru a mri capacitatea de stocare,

TODAY SOFTWARE MAGAZINE


administratorul poate s adauge oricnd,
fr s anune, noduri noi, sau s extind
capacitatea de stocare a vechilor noduri,
oprirea unui nod de stocare neafectnd
n nici un fel disponibilitatea sistemului.
Singurul punct care prezint pericol n
configuraia standard este nodul master,
dar la intervenia manual a administratorului, un nod metalogger poate fi pornit
ca master n mai puin de 10 secunde.

ntrebuinarea sistemului de fiiere de


reea distribuit

Momentan, la noi n companie se


prelucreaz cantiti mari de date. Datele
vin n form denormalizat de la diferii
furnizori, periodic. Aceste date sunt att
gratuite, ct i pltite. Odat cu trecerea
timpului cantitile de date ce sunt primite
cresc, iar echipa de administrare a fost pus
de mai multe ori n faa problemei epuizrii
spaiului de stocare. Cteodat, noaptea la
ora 2:47. Nu doar datele care vin trebuie
stocate. Nevoie de spaiu au i procesele de
creare a copiilor de rezerv i procesele de
arhivare a datelor prelucrate. Toate acestea
cresc n timp. Utilizarea soluiilor standard
RAID pot s scaleze pn cnd se umple
suportul de discuri (enclosure). Bineneles
c exist i soluia extinderii cu un nou
suport de discuri. Aceast scalare ns, nu
ofer protecie la defectarea nodului la care
acel suport de discuri e ataat.
De asemenea, mainile virtuale au
nevoie de o metod de a se opri pe un nod
i a porni pe alt nod n timp ct mai scurt,
fr pierdere de date. Astfel, nu putem face
o copie a unei maini virtuale azi i s o
pornim, iar apoi mine s folosim copia
de azi pentru a porni maina virtual pe
alt nod, deoarece ntre timp, maina i-a
modificat starea. n cazul n care maina
virtual este stocat pe reea, putem
pur i simplu s o oprim pe un nod i s
o pornim pe altul, fr a copia nimic ntre
noduri.
ntr-un birou, administratorul de
sisteme poate rula maini virtuale pe
staiile colegilor. Acestea sunt stocate pe
sistemul de fiiere de reea i sar de pe
un calculator pe altul automat, cnd calculatorul gazd este oprit. Astfel se pot rula
noaptea teste, build-uri, procese de calcul
distribuit (grid computing) chiar pe staiile
angajailor, fr a mai fi nevoie de servere
scumpe, dedicate.
Alegerea unui sistem de fiiere de reea
performant este vital pentru rezistena
sistemelor la dezastre i pentru utilizarea eficient a resurselor. Ce poate fi mai
important dect s tii c TOATE discurile

din centrul
de calcul sunt
umplute la
acelai procent
i c oricnd e
nevoie de mai
mult spaiu
se pot aduga
noduri suplimentare, fr
ntreruperi n
f u n c i on are a
sistemelor?
MooseFS mai
ofer dou
faciliti interesante pentru
cei ce ruleaz
maini virtuale aproape
identice: snapshotting i co de gunoi configurabil.
Coul de gunoi terge fiierele care ating
o anumit limit de timp configurabil
de ctre administratorul de sisteme. Deci,
coul de gunoi nu trebuie golit manual i
complet, ci fiecare fiier ce ajunge acolo este
ters automat dup o anumit perioad.
Toate fiierele terse ajung n coul de gunoi
i nu se poate configura s fie terse direct.
Se poate ns configura coul de gunoi
n aa fel nct s tearg fiierele dup 0
secunde, ceea ce are ca efect tergerea
imediat. Snapshotting-ul este o metod
de a stoca bucile identice ale mai multor
fiiere o singur dat. Aceste fiiere indic
spre aceleai date de pe disc, crend iluzia
c sunt stocate de mai multe ori. Aceast
metod mai e cunoscut i ca deduplicare. n momentul n care ntr-unul din
aceste fiiere se produce o modificare
(se modific o poriune de fiier), acea
poriune este stocat separat pentru cele
dou fiiere. Restul poriunilor sunt stocate
doar o singur dat, spaiul efectiv ocupat
de acele dou fiiere fiind egal cu mrimea
prilor comune plus mrimea diferenelor.
Metoda de a stoca doar diferenele se
numete copiere n momentul scrierii (COW - copy on write). Astfel, dac
administratorul are un ablon de main
virtual, el poate crea mai multe fiiere
imagine ale acelei maini virtuale pe care
s le porneasc independent. De exemplu,
pentru a scala un webserver suprancrcat,
se pornesc multe maini virtuale ce folosesc
acelai fiier de disc, iar diferenele apar
cnd fiecare clon i scrie propriile fiiere
de loguri sau alte date pe disc. Comanda
mfsmakesnapshot creeaz aceste tipuri de
fiiere.

n partea a III-a voi discuta despre


LxC, o metod de virtualizare a sistemelor
Linux fr pierderi de performan, care
face posibil actualizarea controlat fr
ntreruperea serviciului.

www.todaysoftmag.ro | nr. 26/august, 2014

25

programare

programare

S vorbim despre Swift

ompania Apple este recunoscut prin interesul manifestat n ceea ce privete


standardele de nalt calitate a produselor i serviciilor pe care le ofer. Iat c au
reuit din nou acest lucru, odat cu lansarea noului limbaj de programare Swift.
Acesta a fost un proiect n lucru pe parcursul ultimilor 4 ani, care chiar dac a pornit ca
un proiect personal al lui Chris Lattner, angajat Apple, a ctigat cu uurint ncrederea
managementului executiv al companiei, fiindu-i oferit o echip n scopul finalizrii lui.

Valentin Filip
Valentin.Filip@tss-yonder.com
Cluster Manager &
Team Lead on Innovation
@ Yonder

Pe data de 2 Iunie, Swift a fost fcut


cunoscut developerilor, cu promisiunea unei performane i eficiene sporite.
innd cont de ultimele mbuntiri fcute
limbajului de programare Objective-C,
majoritatea publicului a fost surprins de
micarea indrznea fcut de Apple, cu
toate c se pot observa cu uurin unele
similariti dintre sintaxa modern a
Objective-C i elementele prin care Swift
dorete s impresioneze.
Ceea ce face ca Swift s fie un limbaj
mai puternic este faptul c a adoptat toate
prile pozitive ale altor limbaje populare
precum managementul automatizat al
memoriei, sintax de tip script i type inference pentru a crea un mod mai uor i mai
direct de a lucra. Dar cel mai important
este c a fost creat pentru programatorul
obinuit, suportnd dezvoltarea pn i a
celor mai simple aplicaii.

De ce Swift i nu vechiul Objective-C?

Dup cum am menionat mai sus, Swift


ofer un mare avantaj, acela de a putea fi
mult mai uor de neles de ctre orice programator obinuit. Dei simplul fapt de a
putea fi un programator pentru dispozitivele mobile ale companiei Apple poate
reprezenta un motiv suficient, eliminarea
barierelor limbajului de programare face

26

nr. 26/august, 2014 | www.todaysoftmag.ro

ca adoptarea noii platforme s fie sporit.


Swift ofer posibilitatea de a scrie cod pentru dispozitive Apple mult mai rapid. De
asemenea, folosind Playgrounds, orice
programator are oportunitatea de a nva
singur s codeze.
Pentru programatorul obinuit cu
Objective-C, este necesar un motiv foarte
bine ntemeiat pentru a adopta schimbarea. Au existat i alte limbaje dezvoltate
pn acum, dar fr a avea impactul dorit,
dei au fost susinute de companii importante precum Google, cu Go. Dar n timp
ce pn i Paul Jensen, analist independent,
afirma c Go nu a creat necesitatea folosirii
lui, Swift i face intrarea n scen cu adevrate mbuntiri asupra modului curent
de a lucra, acest lucru fcndu-l dorit de
toi programatorii ce momentan folosesc
Objective-C.
Swift este totui destul de similar cu alte
limbaje de programare disponibile n acest
moment, dar avnd n vedere c singura
alternativ ar fi Obecjtive-C, nenumrai
programatori vor alege Swift datorit
modului uor de lucru pe care l ofer. El
vine mpreun cu diverse caracteristici precum inferred typing prin care nu mai este
necesar specificarea tipurilor pentru variabilele folosite, mai ales c n acelai timp
codul este mai sigur, variabila prelund

programare

TODAY SOFTWARE MAGAZINE

tipul primei valori atribuite.


Probabil c una dintre cele mai de efect schimbri adoptate de
mediul folosit pentru a scrie applicaii iOS, Xcode, este integrarea aa numitului Playgrounds. Prin acest mod se poate vedea
n timp real produsul rezultat scrierii codului, facnd mult mai
rapid testarea ideilor i n acelai timp nvarea de unul singur
n mod empiric. Playgrounds reprezint mai mult dect abilitatea de a testa cteva linii de cod. Demonstreaz faptul c Swift
este uimitor de rapid, avnd n vedere c face att compilarea
codului, rularea executabilului i afiarea rezultatului, toate acestea ntmplndu-se ntr-un interval de sub 2 secunde, n funcie
de mrimea i complexitatea codului, artnd rapiditatea cu care
Swift va rula pe dispozitivele folosite.
i totui ofer mai mult dect att. Un program funcional
poate fi modificat fr a fi necesar executarea ntregului cod. Cu
ajutorul Playgrounds se poate integra cod ntr-o aplicaie deja
funcional, avnd astfel sigurana c este la zi cu implementarea
facut.

rezultat s se afle n cadrul ecosistemului, prin achiziionarea i


plata cu ajutorul AppStore, nlocuind Web-ul.
Comparnd Swift cu JavaScript, asemnarea modului de scriere a codului este vizibil similar:

Va disprea oare Objective-C?

Pentru a exemplifica utilizarea de Swift, n continuare este un


exemplu de aplicaie pentru calcularea baciului.

Partea bun este c Apple nu va elimina suportul pentru


vechiul limbaj, iar aplicaiile vor putea avea baza de cod ce conine
att Swift ct i Objective-C.
Cu toate c Swift pare mai uor de folosit i adoptat, modul de
scriere al Objective-C ofer totui mai mult context unui nceptor
n programare. Acest lucru poate fi destul de important n cazul
transferului unui proiect. Prin ncercarea de a diminua ct de mult
cantitatea de cod scris, codul rezultat n Swift este unul din ce n
ce mai criptat i greu de citit la prima vedere. Astfel c folosirea de
comentarii poate deveni n timp o necesitate.
Apple a luat n considerare toate situaiile n care mai poate
aprea nevoia folosirii de Objective-C, astfel c permite folosirea
ambelor limbaje n cadrul aceluiai proiect. Prin acest lucru se
ofer oportunitatea programatorului de a folosi o librrie scris n
Objective-C sau reutilizarea unei buci de cod pentru care rescrierea nu este nc o opiune viabil.

Nu se rezum totul doar la performan i eficien

Dup cum a mai fost deja menionat, Swift ofer un avantaj


mare asupra altor noi limbaje de programare atunci cnd se pune
n discuie folosirea lui de ctre programatorii iOS existeni. Ofer
perfoman sporit i uurin n utilizare.
Dar este oare acesta singurul scop al lui Apple? Doar de a
mbunti performana platformei? Din punctul meu de vedere,
ar putea fi i o micarea ndrznea de marketing cu efect pe viitor. Objective-C a fost dintotdeauna considerat a fi greu de nvat
i adoptat, mai ales de ctre programatori cu experien pe alte
tehnologii. Aa au aprut Appcelerator Titanium, Xamarin i
altele. Swift ar prea c seamn cu multe dintre limbajele folosite des n industrie, dar spre deosebire de acestea, ofer migrare
rapid i rezultate cele mai bune n cazul mutrii ctre platforma
Apple.
Lund ca exemplu programatorii Web, alternativele sunt
aplicaii web optimizate pentru mobile sau Appcelerator
Titanium. La momentul scrierii acestui articol, conform site-ului
Appcelerator, exist nu mai puin de 618.722 de programatori
ce folosesc platforma. A spune c acetia formeaz o mulime
impresionant. Oare Apple nu i-ar dori s utilizeze aceste resurse
pentru dezvoltarea propriei lor platforme? Acest lucru ar asigura
ca viitoarele aplicaii s fie mai stabilie i mai rapide, mai multe
componente ar fi create pentru Swift, iar ansele sunt ca venitul

JavaScript:
var country = Argentina
var countries = [Argentina, Brasil, Mexic]
Swift:
var country = Argentina
var countries = [Argentina, Brasil, Mexic]

Dup cum este uor de observat, sintaxa este similar n aceste


exemple, dei, innd cont de caracteristica inferred type, comportamentul variabilelor este puin diferit.
Swift a mprumutat multe trsturi de la alte limbaje de programare, fcndu-l s fie un amestec de idei bune. Se pot observa
similaritile cu JavaScript, Python, Java, C#, C, Lisp, Cold Fusion,
JSP i altele.

Ghid/Mod de folosire

class Calculator {
let total: Double
let taxPct: Double
let subtotal: Double
init(total:Double, taxPct:Double) {
self.total = total
self.taxPct = taxPct
subtotal = total / (taxPct + 1)
}
func calculate() {
println(10% tip = : \(subtotal * 0.10),

for total = \(total))
}
}
let tipCalc = TipCalculator(total: 10, taxPct: 0.24)
tipCalc.calculate()

Concluzii

innd cont de ce anume nlocuiete, Swift ofer o


mbuntire n a permite scrierea rapid de cod cu o performan
ridicat. Prin toate avantajele oferite, i va face cu siguran loc
spre inima chiar i a celor mai fideli programatori de Objective-C
iar acest lucru se va ntmpla cu un ritm mai alert comparativ cu
situaia altor limbaje.
Mai conteaz oare c este totui un limbaj specific ecosistemului Apple? Acest lucru depinde doar de scopul fiecruia. Apple
a ncetat s mai susin Java de o vreme, astfel c o uniune cu
limbajul de programare ce st la baza Android-ului nu pare realizabil n viitorul apropiat. Drept urmare, orice revoluionare a
platformei este mai mult dect binevenit i cu siguran va produce inovaii n viitorul apropiat. Exist chiar i posibilitatea de
a fi open-sourced, aa cum Apple a fcut n cazul Clang i LLVM,
oferind tuturor ansa de a contribui la mbuntirea lui.

www.todaysoftmag.ro | nr. 26/august, 2014

27

programare

testare

Limbajul Hack

cest articol e n strns legtur cu cel despre maina virtual HipHop, publicat n numrul 21 al revistei. Atunci cnd Mark
Zuckerberg a scris primele linii de cod ale Facebook-ului, a fost nevoit s aleag limbajul de programare n care s dezvolte
noua reea de socializare. A ales PHP-ul pentru c, dup cum tim cu toii, acesta are un ciclu de dezvoltare foarte rapid: faci
o modificare, salvezi fiierul, apei F5 n browser i vezi modificarea instantaneu. Acest lucru e posibil pentru c nu exist un pas de
compilare pe care programatorul trebuie s-l fac i pentru c PHP-ul e un limbaj dinamic (nu oblig declararea tipurilor variabilelor).
Toate acestea sunt n contrast cu limbajele bazate pe un model
static, cum ar fi Java, C#, C++ etc..n aceste cazuri, compilarea e
un pas obligatoriu i, n cazul proiectelor mari, nu unul care s
dureze puin.
n schimb, modelul static al acestor limbaje ofer nite avantaje foarte mari: bug-urile se pot detecta extrem de repede i
informaiile statice despre tipuri ofer un fel de documentare
automat a codului.
Echipa de ingineri care dezvolt partea front-end a Facebookului a crescut de la 80 de ingineri n 2008 pn la 1000 n 2014.
Iar lipsa scalabilitii unei astfel de echipe, n combinaie cu faptul
c, la Facebook, se introduce cod n producie de dou ori pe zi,
are drept consecin foarte mult cod i foarte mult potenial pentru probleme. Aa c echipa de ingineri de la Facebook a decis s
mprumute o parte din avantajele celeilalte lumi (cea a limbajelor
statice) pentru a reduce o parte din riscurile asociate unei echipe
att de mare de programatori.
Din aceast dorin s-a nscut limbajul Hack, un limbaj hibrid
care face legtura ntre cele dou lumi.

transformare. Da, aa este: poi introduce treptat faciliti ale


Hack-ului, dup cum i poftete inima.

Faciliti

Hack-ul vine cu nite faciliti interesante n plus fa de ceea


ce ceea ce ofera deja PHP-ul. Pentru a vedea detalii i sintaxa a ceea
ce se prezint mai jos, vedei documentaia oficial a limbajului.

Anotri de tipuri

De departe, aceasta este cea mai important facilitate. Permite


specificarea tipurilor de date n cadrul parametrilor de funcii,
tipului returnat de o funcie i cmpurilor claselor. Tipurile variabilelor din codul propriu-zis nu pot fi declarate; n schimb, sunt
ghicite de ctre maina virtual.
Muli programatori specific aceste informaii sub form de
comentarii. Hack-ul formalizeaz aceast informaie.
Tipurile de date ce se pot specifica sunt n general cele care
pot fi specificate i n cadrul altor limbaje statice: tipuri primitive,
iruri de caractere, nume de clase, void, this etc.
Astfel se ofer avantajul detectrii mai rapide a bug-urilor. De
Hack-ul n detalii.
asemenea, avnd n vedere existena n acest fel a informaiei statDup cum menionam mai sus, Hack este un limbaj hibrid ice n plus, compilatorul JIT din cadrul mainii virtuale va putea
care aduce n lumea PHP-ului (un limbaj dinamic) avantajele unui intui mai bine ce ci de execuie vor fi traversate mai des. Acest
model static. Nu este nimic altceva dect o extensie sintactic a aspect demonstreaz performana crescut.
PHP-ului.
Hack-ul ruleaz momentan doar pe maina virtual HipHop, Generics
de la versiunea 3.0 i n sus a acesteia. A fost fcut open source n
Multe limbaje au aceast calitate. n Hack, generics-urile vin ca
Martie 2014.
o ntrire i mai puternic a conceptului de anotri descris mai
Un aspect important este faptul c, dac tii PHP, atunci tii sus. Implementarea i sintaxa lor este mai simpl i mai limitat
Hack.
dect n cazul limbajelor Java i C# de exemplu. n schimb, n Hack
Exist dou caracteristici foarte importante ale Hack-ului care se permite folosirea tipurilor de date primitive i chiar a instanelor
i-a asigurat adopia n cadrul Facebook-ului i, poate n viitor, i de obiecte pentru a specifica tipul de date generic.
n cadrul unor aplicaii tere:
Exist totui nite cazuri speciale de care trebuie inut cont n
a. Interoperabilitatea. Cu extrem de puine excepii, dac ai legtura cu aceast facilitate.
cod PHP nseamn c ai cod Hack. Acesta arat c, n cadrul
aceleiai aplicaii, poi avea cod PHP care apeleaz cod Hack Colecii
i vice-versa. Cele dou sunt interoperabile pentru c, la runLa fel cum cele mai multe limbaje statice ofer aceast
time, au aceeai reprezentare n memorie: HHBC (HipHop Byte funcionalitate, aceasta e binevenit i n Hack. Cele mai imporCode).
tante clase din acest framework sunt Map, Vector i Set, fiecare
b. Gradualitate. Limbajul este dezvoltat cu un puternic aspect dintre acestea avnd un corespondent care ofer imutabilitate.
de gradualitate,demonstrndu-se c programatorul este liber s
Codul PHP obinuit este de obicei mpnzit cu array-uri.
decid care fiiere din aplicaia sa vor fi transformate n Hack Dac, n schimb, se vor folosi aceste clase, atunci codul va deveni
i, pe deasupra, ct de puternic i (in)complet va fi aceast mai clar i, n unele cazuri, se vor vedea i sporuri de performan.

28

nr. 26/august, 2014 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE


Cod asincron
PHP-ul nu are suport pentru mai multe fire de execuie. ns
Hack introduce un foarte primitiv suport pentru aceast facilitate.

Expresii lambda
Acestea sunt similare cu closure-urile deja existente n PHP,
ns elimin o parte din limitri i ofer o mai mare flexibilitate.
Sintaxa acestora este asemntoare cu cea pe care o putem vedea
n Java 8.

XHP

codebase foarte mare, acest proces poate s dureze. De exemplu,


pentru a transforma codul surs a Facebook-ului (aproximativ 25 de milioane de linii), a fost nevoie de consumul a 10 GB
RAM i un timp de procesare de 12 ore. n majoritatea cazurilor
ns, nu ar trebui s depeasc cteva minute.
b. Cele care ajut la scrierea de cod Hack cu sugestii n timp
real. Este vorba de un typechecker foarte inteligent care ruleaz
ca daemon i monitorizeaz constant proiectul n care lucrezi.
Atunci cnd exist erori, acestea sunt raportate n timp real n
cadrul editorului de text cu ajutorul unor plugin-uri. Momentan
exist astfel de plugin-uri doar pentru vim, emacs i Sublime,
ns este promis dezvoltarea pe viitor a unor plugin-uri echivalente pentru majoritatea editoarelor i IDE-urilor populare.

Aceasta e o extensie opional a Hack-ului care permite folosirea de blocuri XML/HTML ca pe nite elemente standard de
sintax. n acest fel se uureaz foarte mult munca n cadrul codului care conine logic i elemente specifice templating-ului.
Erorile raportate de typechecker sunt doar legate de anotrile
Hack ofer i alte faciliti minore demne de luat n calcul. De de tip. Timpul de rspuns al acestuia este foarte rapid datorit
asemenea, o parte din elementele de sintax ale PHP-ului despre monitorizrii constante a sistemului de fiiere.
care se tie c sunt ineficient sau rar folosite, sunt dezactivate,
Acest typechecker are n schimb o serie de limitri:
cum ar fi de exemplu operatorul @, operaiunea goto, globalele
cazul de utilizare intenionat pentru acesta e un proiect care
(global $x) i multe altele. Prin urmare, acest nou aspect luat n
include un autoloader. Va funciona i fr, ns nu n mod
considerare va fora programatorul s urmeze bune practici de
optim.
programare.
toate numele de clase i de funcii trebuie s fie unice n
Mai jos putei vedea o bucat de cod care exemplific multe din
respectivul proiect pentru a obine rezultate corecte.
facilitile prezentate mai sus. Putei vedea cum sunt specificate
nu suport declararea condiional a funciilor i claselor.
anotarile de tipuri, cum e folosit una din clasele din framework trecerea din cod Hack n cod HTML i napoi nu este
ul coleciilor, un exemplu de tipuri generice i o expresie lambda
suportat avnd n vedere c nu se mai practic o astfel de
simpl:
metodologie i se ncearc descurajarea acesteia.
class MyExampleClass {
public int $number;
public CustomClass $myObject;
private string $name;
private array $stuff;
private MyBag<int> $container;

function doStuff(MyBag<int> $container, ?bool $x)


: string {
//immutable Map
$map = ImmMap {
A => $container->getA(),
B => $container->getB(),
};

if ($map->get(A) == $container->getA()) {
//error here because $map is immutable
$map->set(C, $container->getC());
}

//$x is of type ?bool, which means:


//a). its of type boolean
//b). can also be null
if (! is_null($x) && $x) {
//lambda expression
//and alternative/classic syntax for
//accessing map elements
$result = $r ==> $r + $map[A] + $map[B];
} else {
$result = 0;
}

//error here because functions return type is


string
return $result;
}
}

Unelte

Maina virtual HipHop vine mpreun cu nite unelte foarte


utile:
a. Cele necesare transformrii unui codebase PHP ntr-unul
Hack. Acestea sunt relativ simplu de utilizat i automatizeaz
cea mai mare parte din proces, astfel nct programatorului i
va rmne o cantitate minimal de munc. n schimb, pe un

Concluzie

Hack-ul este un suflu nou adus unui limbaj a crui dezvoltare


a cam stagnat n ultimii ani. Hibriditatea dat de adugarea unui
model static peste un limbaj dinamic este un concept interesant pe
care cu siguran l vom mai vedea n urmtorii ani.
Personal, sunt impresionat de elegana cu care facilitile
Hack-ului au fost implementate i mbinate cu sintaxa existent
a PHP-ului. Sunt multe aspecte (n special sintactice) pe care nu
le-am atins. Aa c v invit s le explorai pe cont propriu, cu
sperana c acest articol v-a trezit curiozitatea de a face asta.

Radu Murzea

rmurzea@pentalog.fr
PHP Developer
@ Pentalog

www.todaysoftmag.ro | nr. 26/august, 2014

29

programare

Clean Code - Naming

ac eti un programator cu experien atunci ai auzit de cartea Clean code scris de Robert C.
Martin. n multe companii, aceast carte a devenit parte din biblia dezvoltatorului. Combinat cu
Clean Coder (Programatorul Curat), a spune c aceste dou cri sunt obligatorii pentru toi
dezvoltatorii.
Voi realiza o serie dedicate acestui subiect. Dac deja ai citit
cartea, atunci este o ocazie bun s v o reactualizai. Pentru ceilali, acesta este momentul perfect pentru a descoperi ct de bine
ar trebui s arate codul. Toate ideile principale sunt preluate din
Clean Code (Cod Curat). Putei privi aceast serie de articole
drept un rezumat al crii n sine.

Nu ar trebui niciodat s folosim o denumire sofisticat sau


care ascunde scopul unei resurse anume. Nu uitai c un nume
lung nu afecteaz performana aplicaiei. Da, este adevrat c n
anumite limbaje aceasta poate s mreasc dimensiunea aplicaiei,
dar n zilele noastre spaiul nu mai este o problem este mai
scump s ai o echip de suport care nu nelege o parte a aplicaiei.

De ce?

Evitai dezinformarea

Am decis s ncep s scriu despre aceast tem deoarece sunt


lucruri care trebuie reamintite i recapitulate din cnd n cnd.
Clean Code este genul de carte pe care nu o citeti doar o dat
i apoi o arunci ntr-un col ntunecat al camerei tale. Este genul
de carte pe care o reciteti iar i iar. De fiecare dat vei descoperi
lucruri noi pe care le-ai omis sau care sunt revelatoare pentru tine
n mai multe feluri.

Denumirea

Acesta este primul subiect pe care l vom dezbate n acest articol. Un nume bun poate nlocui o documentaie de o pagin i
poate ajuta un alt dezvoltator s neleag aplicaia i s gseasc o
problem ntr-o perioad mai scurt de timp. Totul ntr-o aplicaie
are un nume, de la un field (cmp) banal la numele unei metode
sau al unei componente. De aceea este important s dai i s utilizezi denumiri potrivite.
De cte ori v-ai uitat peste un cod scris cu trei luni n urm
i nu v-ai putut aminti ce ai fcut acolo? De aceea, o denumire
bun este de nenlocuit.

Denumirile trebuie s dezvluie intenia ta

Un nume bun poate s i economiseasc 10 minute de


debugging (depanare) sau 20 de minute de cutare prin documentaie. Atunci cnd ne uitm peste un cod, acesta trebuie s se
desfoare n mod coerent. Chiar i cel mai complex algoritm ar
trebui s fie uor de citit dac ai o denumire bun.
Numele unui cmp, metod, clas sau component ar trebui s
ne spun de ce a fost creat(), care este scopul su principal. Mai
jos putei gsi exemplul clasic care este dat atunci cnd vorbim
despre acest subiect.
DateTime d;
DateTime dn;
DateTime dlr;

Gsirea unui nume bun poate dura ceva timp, dar ne poate
economisi timp mai trziu. Deoarece gsirea unor denumiri bune
este destul de dificil, este destul de uor s recurgi la nume care
sunt deja consacrate. De exemplu, utilizarea numelor ca hp,
cmd sau sco este duntoare. Acestea sunt nume care sunt deja
utilizate drept comenzi de ctre sistemul de operare.
Atunci cnd alegi un nume care este deja utilizat n alt context
ar trebui s ai grij s l utilizezi n acelai context sau cu acelai
sens. Nu utilizai niciodat denumiri consacrate n alte scopuri.
carList
houseList

Ce observai n exemplele de mai sus? Sufixul List ne spune


c variabila este o colecie de maini sau case. Dac variabila reprezint numai o main sau o cas, atunci numele induce n eroare.
De asemenea, exist cazuri n care List este utilizat chiar dac
desemneaz o mulime sau alte tipuri de colecii.
Un alt aspect important este denumirea similar a cmpurilor. n exemplele de mai jos avem dou cmpuri care sunt diferite
numai printr-o singur liter, sau alte dou cmpuri care sunt
foarte lungi, iar observarea diferenei este dificil.
cars
car
optimizelViewConfigurationUsingAVirtualProcess
optimizeIViewConfigurationUsingBVirtualProcess

n exemplul legat de car(s), gsirea unei denumiri precum


currentCar i carCollection ne-ar putea ajuta s nelegem
scopul lor.
Evitai utilizarea caracterelor care sunt similare, cum ar fi L
mic (l) i I (i) mare sau 0 (Zero) i O (o mare). Este
extrem de dificil s observi diferena dintre ele. n exemplul de mai
sus, cel legat de denumirile lungi, prima liter dup optimize nu
este aceeai.

Dac ne uitm peste aceste definiii ale cmpurilor sau dac le Facei diferene cu neles
vedem undeva n codul nostru, nu am avea nicio idee despre ceea
ntr-o aplicaie, se poate ntmpla s sfreti prin a avea denuce reprezint aceste cmpuri sau de ce au fost ele utilizate (create). miri similare, chiar dac ai ncercat s faci o diferen clar ntre
ele. Din aceast cauz se poate s scriem un cuvnt greit sau s
DateTime creatingDate;
DateTime currentDate;
adugm numere la finalul unei denumiri.
DateTime timeFromLastRun;
n exemplul de mai jos avem o metod care transform un ir
Denumirile de mai sus ne ofer mai multe informaii despre dintr-un format n altul.
cmpurile noastre. Ne este clar care este scopul fiecrui cmp i ce void Convert(string s1, string s2)
fel de informaii ne ofer.

30

nr. 26/august, 2014 | www.todaysoftmag.ro

management
Numele parametrilor de input (intrare) nu ne ajut s nelegem
logica. nlocuirea lui s1 cu input sau inputInXYZFormat i
s2 cu output sau converted sau outputInABCFormat ne-ar
ajuta mai mult.
Cnd nu avem idei pentru a denumi o clas, putem sfri prin
a avea 3 clase cu urmtoarele nume:

TODAY SOFTWARE MAGAZINE


denumiri care sunt standard n zilele noastre. De exemplu, atunci
cnd vedem un i sau j, tim din primul moment c vorbim
despre o iterare.

Denumirea Claselor i a Metodelor

Exist dou reguli simple care ne pot ajuta mult atunci cnd
trebuie
s gsim un nume bun pentru clasa noastr sau pentru
Car
CarData
metode:
CarInfo
Un nume de clas ar trebui s conin un substantiv sau o
Problema cu aceast denumire este c nu exist o diferen
expresie substantival.
clar ntre Data i Info. Cititorul nu va ti ce fel de informaie
Un nume de metod ar trebui s conin un verb sau o
conine fiecare clas.
expresie verbal.
Utilizarea sufixelor sau a prefixelor care reprezint tipul cmpului nu ne ajut s facem un cod mai lizibil. Care este diferena
ncercai s evitai denumirea claselor cu prefixe sau sufixe
dintre Name i StringName sau NameString? Nu este nicio precum Service, Factory, Processor, Data, Info. Aceste
diferen n final. Un nume precum CarName ar fi mai util. denumiri de clase sunt ntrebuinate prea mult (mai ales cnd nu
Acelai lucru este valabil i pentru denumirea metodei, a propri- gsim denumiri mai bune).
etilor sau a clasei.

Utilizai nume uor de pronunat

Alegei un cuvnt per concept

Chiar dac codul este scris pentru maini (010101001), este


destul de sigur c vei ajunge n timpul depanrii sau a reutilizrii
s vorbeti cu alt persoan despre acel cod. Ar suna destul de
stupid s denumeti un cmp ntr-un fel pe care nu l poi citi sau
s foloseti o denumire care este codat.

Un concept din sistemul tu ar trebui s aib aceeai denumire.


Fii consecvent n aceast privin. Nu vrei s ai dou nume pentru
o clas care exprim acelai concept. De exemplu Processor i
Analyzer sau Controller i Manager.
Utilizarea aceluiai cuvnt per concept i va ajuta pe dezvoltatori s neleag codul mai uor.

carN4RegS1 carNumberForRegistrationSection1
dtoCRcrd100 car

Utilizai denumiri din numele domeniu Soluie i Problem

Folosii nume care pot fi cutate

Nu folosii denumiri care sunt din afara contextului i nu


sunt din acel domeniu specific. Este mai natural pentru cineva
care lucreaz n industria auto s foloseasc cuvntul motor i
nu surs de putere. Ar trebui s utilizai denumirile specifice ale
domeniului i nu alte denumiri date de dezvoltatori, care pot fi
greite.
Aceasta poate fi o cauz de nenelegere ntre clieni i
dezvoltatori.

Sun ciudat? Nu.


Tu ai nevoie s caui n cod pentru a vedea diferitele cmpuri
utilizate. Da, este adevrat c noile IDE pot face treaba asta pentru
noi, dar totui trebuie s folosim denumiri care pot fi cutate uor.
De exemplu, ct de uor este s gseti unde a fost utilizat i
sau j? Acelai lucru se ntmpl cu cuvintele magice care sunt
folosite n linie, fr a le extrage drept constante.
De exemplu, cutarea i nlocuirea unei valori numerice ntr-o Nu adugai context nejustificat
aplicaie poate fi un comar dac aceeai valoare a fost utilizat n
Este destul de uor s adaugi context lucrurilor care sunt deja
linie pentru cazuri de utilizare diferite.
clare. De exemplu, ntr-o clas denumit Car, nu este nevoie s
numeti cmpul culoare al clasei carColor sau colorCar. Eti
Evitai codificarea
deja n clasa main i toate informaiile din aceast clas sunt
Nu ncerca s reinventezi roata i s-i defineti propria legate de Car (Main).
codificare pentru lucruri care au fost deja definite i standardizate. Ultimul lucru pe care doreti s l ai este propriul tu limbaj Concluzie
personalizat.
Gsirea denumirilor bune ntr-o aplicaie poate fi o treab difiDe aceea, ncearc s foloseti prefixe precum I pentru inter- cil i care necesit mult timp. Nu este simplu s gseti denumiri
fee sau sufixul Base pentru clase abstracte. Nu folosi prefixul bune. Dar ar trebui s investii timp pentru a gsi i utiliza denuC pentru implementarea claselor sau m_ pentru variabile.
miri potrivite.
Dac sfreti prin a avea o codare personalizat, f un pas
napoi i ncearc s vezi de ce ai ajuns n situaia asta. n funcie Cuvinte de ncheiere
de acest rspuns, ar trebui s iei o hotrre.
Diferena dintre un programator detept i unul profesionist
este c profesionistul nelege importana claritii. Profesionitii
Evitai hrile mintale
i folosesc abilitile pentru a scrie cod care poate fi neles de
S ncepem cu un exemplu: r t p
ctre alii.
Chiar dac suntem dezvoltatori, nu dorim s nvm i
s memorm c r nseamn ntregul url al Dacia server din
Radu Vunvulea
Radu.Vunvulea@iquestgroup.com
Romnia, t este acelai url, dar fr informaia protocol i p
reprezint parametrii de interogare pe care trebuie s i trimitem
Senior Software Engineer
@iQuest
la server pentru a putea s ne logm.
Chiar dac hrile mintale nu sunt benefice, exist cteva
www.todaysoftmag.ro | nr. 26/august, 2014

31

programare

TYPO3 Neos - Schimbnd ecosistemul sistemelor de


administrare a coninutului

ajoritatea sistemelor de administrare a coninutului deconecteaz editorul unei pagini web de designul / layout-ul paginii
web. Editorii adaug, editeaz sau terg coninut orbete sau trebuie frecvent s schimbe ntre panoul de administrare a
paginii web i pagina web n sine, ntregul proces devenind o comparaie constant ntre date de intrare i date de ieire.

Aceast modalitate de lucru duce de multe ori la frustrare


i produce o barier n faa creativitii editorului, att pentru
coninut, ct i pentru aranjarea informaiilor.

Pasrea Phoenix

Unul dintre giganii sistemelor de management de coninut


este proiectul open source TYPO3 CMS. Ludat ca un sistem de
management pentru proiecte complexe i ntreprinderi de dimensiuni mari, complexitatea i uurina de extindere sunt punctele
forte, ns regsim aceeai problem n modalitatea de lucru cu
coninutul.
n octombrie 2008, echipa de dezvoltare TYPO3 s-a ntrunit
la Berlin. Principalul scop al acestei ntruniri a fost planificarea
dezvoltrii TYPO3, att versiunea 4 de atunci, ct i viitoarea versiune 5. Tot aici, echipa a clarificat viitorul celor dou versiuni, att
pentru ageniile web, ct i pentru dezvoltatorii web care folosesc
TYPO3 n proiectele lor. Acetia au compus urmtorul manifest:
Noi, participanii la conferina TYPO3 Developer Days 2008
afirmm:
TYPO3 v4 va fi dezvoltat n continuare activ.
Dezvoltarea versiunii 4 va continua i dup lansarea versiunii
5.
TYPO3 versiunea 5 va fi succesorul versiunii 4.
Migrarea coninutului de la versiunea 4 la 5 se va face foarte
uor.
Versiunea 5 va introduce o mulime de noi concepte i idei.
Procesul de nvare nu se oprete niciodat i vom ajuta la o
migrare ct mai uoar.

naintea utilizatorilor paginii web.


5. Pregtit de schimbare: interfaa trebuie s fie adaptabil la
oricare reorganizare a coninutului.
TYPO3 Neos e mult mai mult dect un paradis pentru editori.
Unul dintre caracteristicile mult asteptate este content dimensions. Conceptul de content dimensions este de fapt coninut cu mai
multe variante - o soluie flexibil la localizarea coninutului pe
mai multe dimensiuni. De exemplu, coninutul ar putea fi localizat
nu doar per limb, ci am putea avea un element de coninut care se
schimb n funcie de vrsta utilizatorului sau originea sa.

Arhitectura TYPO3 Neos

n centrul arhitecturii TYPO3 Neos se afl nodul. Aproape


orice n TYPO3 Neos este reprezentat prin noduri, entitatea de
nod fiind extins pentru a putea ndeplini cerinele altor entiti. Pentru ca totul s funcioneze armonios, avem urmtoarele
componente:

Componente backend din panoul de adminstrare

ns n decembrie 2013, TYPO3 versiunea 5 (cunoscut cu


numele de cod Phoenix) a fost lansat sub numele de TYPO3
Neos, completnd familia de produse TYPO3, n loc s fie un succesor la TYPO3 versiunea 4. TYPO3 v4 a continuat s fie dezvoltat
pn astzi la versiunea 6.x.

Soluia: TYPO3 Neos

TYPO3 Neos este un sistem de adminstrare de coninut al


viitorului, produs de comunitatea TYPO3. Ceea ce face ca Neos
s iese n eviden fa de celelalte sisteme de administrare de
coninut este atenia la detalii n tot ce nseamn UIX pentru editori. TYPO3 Neos dispune de cinci principii de UIX:
1. Creeaz limite: separ clar diferitele tipuri de componente
pentru a facilita navigarea cu uurin a editorului.
2. Thinking is King: gndirea este cea care determin experiena web pentru editori i nu sistemul de administrare n sine.
3. Capacitate distribuit: furnizarea de caracteristici puternice
doar atunci cnd este necesar.
4. Simulare nainte de publicare: a experimenta coninutul

32

nr. 26/august, 2014 | www.todaysoftmag.ro

Fluid - Motor de templating modern cu suport pentru


Namespaces, Variables / Object Accessors, View Helpers i Arrays.
TYPO3CR - Content Repository ( JCR / Sling)
TypoScript - pe scurt, ca un vector PHP multi dimensional,
ns n TYPO3 Neos avem parte de TypoScript 2.0 care suport
orientarea pe obiect.
Forms - Form API & Form Builder (via Flow Forms API)
Expose - Interfa de administrare extensibil
Eel - Embedded Expression Language
FlowQuery - O modalitate de procesare a coninului
(reprezentat ca un nod TYPO3CR) n contextul Eel. Operaiile
FlowQuery sunt implementate n clase PHP. Pentru orice operaie

arhitectur

TODAY SOFTWARE MAGAZINE

FlowQuery, trebuie s existe un pachet instalat care implemen- TYPO3 Neos Panou de admistrare
teaz acea operaie. Oricare pachet poate s adauge propriile
Asigur o editare simpl a coninului, on the fly:
operaii FlowQuery. Un set de baz de operaii este disponbil tot
Operaii simple (eg. Aloha editor),
timpul fiind parte din pachetul TYPO3.Eel.
Perioad scurt de nvare,
Nu e necesar o sesiune de training pentru editorii noi,
Componente frontend din panoul de adminstrare
Folosire intuitiv.

Editorii nu trebuie s treac prin sesiuni lungi de training pentru a edita coninutul n TYPO3 Neos. Trebuie doar s dea click
pe obiectele pe care doresc s le editeze. Iar aceasta nu e singura
modalitate de editare a coninului.
EmberJS - JavaScript Web Application Framework
Se poate opta ntre folosirea In-Place editing, dup cum i
Create.js - Web Editing Interface
spune i numele, editare direct n design sau Raw content editing
Aloha / Hallo - HTML5 WYSIWYG Editor
care nltur toate elementele de design i permite editorului s se
VIE = viejs.org - Semantic Interaction Framework
axeze exclusiv pe coninut.
RequireJS - JavaScript file and module loader
Modulul Raw Content permite de asemenea refolosirea
coninutului n mai multe canale de distribuie a coninutului fr
Instalare
a ine cont de template-ul folosit. n schimb, editorii se pot concentra astfel pe cuvintele folosite i ce formate media vor fi folosite.
Cerine sistem
Modulul Preview Central este locul unde se poate simula
server web (Apache sau nginx, IIS i altele, ns netestate pagina web n timp real cu coninut proaspt adugat nainte ca
nc)
acesta s fie disponibil pentru publicul larg. Aici editorii pot con minim PHP 5.3.2
sulta, spre exemplu, trei formate diferite de prezentare a paginii
modulele PHP mbstring, tokenizer i pdo_mysql activate, web - desktop, mobile, tablet, etc. sau simulri personalizate, de
magic_quotes_gpc = off
exemplu cum ar arat o pagin indexat n Google Index.
funciile PHP system(), shell_exec(), escapeshellcmd() i
escapeshellarg() s fie active
Concluzie
o baz de date care suport Doctrine DBAL
TYPO3 Neos este deocamdat un produs tnr i nou pe piaa
virtual hosts pentru dezvoltarea local:
sistemelor de administrare de coninut. Chiar dac constatm c
i lipsesc cteva caracteristice importante precum traducerea de
NameVirtualHost *:80
<VirtualHost *:80>
coninut, suport pentru mai multe domenii web sau o documentaDocumentRoot /your/htdocs/TYPO3-Neos-1.1/Web/
ie complet pentru dezvoltatorii web, acesta are un potenial uria
SetEnv FLOW_CONTEXT Production
ServerName neos.demo
i, mai ales clienii par s fie ndrgostii la prima vedere de el.
</VirtualHost>
ns versiunea 1.2 promite s acopere majoritatea problemelor.
Instalare din arhiv
Introducerea complet a content dimensions va fi face din TYPO3
1. Descarc arhiv via http://neos.typo3.org/download.html
Neos primul sistem de administrare de coninut unic n ceea ce
2. Extrage arhiva n folderului web dorit.
privete administrarea de coninut cu dimensiuni multiple.
3. Continu cu Setup, accesnd www.domain.local/setup
TYPO3 Neos este momentan folosit ntr-o varietate mare de
4. Urmeaz instruciunile.
proiecte datorit timpului mic de acomodare e editorilor i a versatiliti extraordinare arhitecturii care se muleaz pe orice tip de
Instalare cu Composer
proiect, domeniu! Mai multe detalii: http://neos.typo3.org
1. Instalare composer (dac lipsete): curl -s https://getcomposer.
org/installer | php
2. Ruleaz comanda n folderu de instalare: php /path/to/comTomi Militaru
tmilitaru@arxia.com
poser.phar create-project --no-dev typo3/neos-base-distribution
TYPO3-Neos-1.1
Senior Web Developer
@ Arxia
3. Continu cu Setup, accesnd www.domain.local/setup
4. Urmeaz instruciunile.

www.todaysoftmag.ro | nr. 26/august, 2014

33

HR

programare

Provocri n promovarea intern

n 2005, gigantul Daimler-Chrysler anuna concedierea CEO-ului Juergen Schrempp, arhitectul fuziunii Daimler-Chrysler, care
a preluat conducerea companiei imediat dup fuziune. Schrempp i-a nceput cariera la Daimler, subsidiar a Mercedes-Benz
n 1967 ca inginer i a avansat pn la poziia de CEO. Dup fuziune, Schrempp care i-a ignorat partenerii Crysler din SUA i
operaiunile lor de marketing, a fost martorul declinului noii afaceri. n primul an, afacerea a pierdut peste 50% din valoarea capitalului.
Datorit acestei colaborri defectuoase, board-ul a hotrt concedierea lui Juergen Schrempp dup o carier de 38 de ani n aceeai
companie.
Acest exemplu indic prezena unor erori n promovarea
intern care puteau fi evitate, dac nainte de promovare se luau
n considerare toate aspectele critice ale unei promovri interne.
La prima vedere am spune c nu se poate compara o promovare clasic cu una pentru poziiile de CEO, dar pentru orice nivel,
nainte de a lua o decizie care implic soarta unei echipe sau a
unei ntregi companii, trebuie s verificm n detaliu potrivirea
persoanei cu noua poziie.
n funcie de etapa de dezvoltare n care se afl sau nevoia de
talente pe care o au, companiile mari, aflate la maturitate, favorizeaz o dezvoltare a angajailor care n timp s fie capabili s
ocupe poziiile vacante. n cealalt tabr, companiile n cretere
accelerat i inovative tind s se concentreze mai mult pe atragerea
candidailor externi, inclusiv pentru poziiile cu abiliti rare.
Aproape toate companiile recurg n cele din urm la o strategie
mixt, combinnd cele dou surse n funcie de nevoi.
n contextul dificultii reteniei angajailor talentai, atenia
companiilor trebuie s se ndrepte ctre descurajarea acestor
angajai de a prsi compania i dezvoltarea acestora n viitori
lideri. n sine, fiecare companie trebuie s aib o strategie, un plan
de succesiune, s asigure dezvoltare continu, pe scurt s formeze
lideri pregtii s dezvolte compania.
Studiile recente realizate de profesorul Matthew Bidwell,
profesor de management la facultatea Wharton, referitoare la succesiunea pentru poziiile de CEO, au demonstrat c liderii seniori
angajai din exterior cost semnificativ mai mult, acetia fiind
pltii cu mai mult dect un CEO ,,crescut,, n interior. Totodat,
o persoan adus din exterior se adapteaz mai greu poziiei,
demonstrnd eficien mai redus.
De asemenea, un studiu realizat de compania de consultan
n management global, Booz and Co. arat c 35% dintre cei
angajai pe poziiile de CEO atrai din exterior au fost concediai,
n comparaie cu 19% dintre cei dezvoltai intern.

34

nr. 26/august, 2014 | www.todaysoftmag.ro

Fie c vorbim de poziii de specialiti sau de top management,


de recrutarea din surse interne sau externe, ntotdeauna vor exista
provocri, de la implementarea unui proces de evaluare corect i
pn la luarea deciziei corecte.
Companiile care aleg promovarea intern se concentreaz
pe crearea unei culturi i a unui brand puternic al organizaiei.
Printre avantajele promovrii interne se numr:
1. Nivelul de performan al unei persoane obinuite cu
mediul organizaiei va fi mai mare dect al unui candidat adus
din exterior;
2. Candidaii interni cunosc regulile i modul n care
acioneaz compania, astfel se reduce perioada de induction;
3. Se reduc costurile privind anunul, cutarea i selectarea
candidatului;
4. Promovrile interne construiesc o cultur organizaional
puternic, n care angajaii au ncredere.
5. Permind angajailor s se deplaseze pe vertical i pe orizontal n cadrul organizaiei se reduce posibilitatea ca ei s i
caute un alt loc de munc.
n ciuda numeroaselor avantaje, promovarea intern are i
puncte slabe care pot s duc la eec. Pentru a evita erorile care
pot decurge dintr-o promovare greit, trebuie s avem n vedere
urmtoarele aspecte:
1. Dac la nceput, se ofer candidailor interni un avantaj de
excusivitate i nu exist un candidat potrivit poziiei, procesul
de recrutare va fi prelungit inutil.
2. Companiile care permit managerilor s aib drept de veto n
decizia de agajare i nu se bazeaz pe evaluri propriu-zise, pot
cauza erori i afecta pe ceilali candidai.
3. Promovrile interne care nu sunt bazate pe un proces riguros care s includ evaluri psihometrice i centre de evaluare
pot provoca frustrri n interiorul unei echipe.

programare
4. Candidaii interni ai companiei nu au CV-urile actualizate i
abilitile lor de interviu nu sunt exersate, astfel apare riscul ca
un candidat intern s par mai puin potrivit dect unul extern.
5. Se ntmpl ca cei proaspt promovai s simt nevoia de
a-i elimina concurena pentru a-i solidifica poziia.
6. Pentru companiile cu locaii multiple, costurile de relocare
pot fi foarte costisitoare, de aceea angajarea din surse externe
poate reprezenta o alegere mai bun.
7. Cnd contractele i experiena n arii noi pentru companie sunt cerute, promovarea intern nu este de calitate i nu se
justific.
8. Multe sisteme de promovare intern sunt bazate pe senioritate, care de multe ori nu produce calitate n contextul
schimbrii rapide a oricrei industrii.
9. O promovare intern poate cauza un val al promovrilor,
deoarece n urma unei promovri apare o nou poziie vacant
i astfel, ciclul se perpetueaz la nesfrit. Acest fapt poate destabiliza performana companiei datorit faptului c sunt prea
multe persoane noi care au prea multe de nvat.
10. Sunt situaii n care cei nepromovai l vor sabota pe cel
promovat.
11. Promovrile interne pot ajunge la nivelul de performan
dorit doar atunci cnd exist un program de instruire i dezvoltare foarte bun. Costurile unor astfel de programe interne
de dezvoltare pot fi mai ridicate dect talentele pregtite din
exterior.
12. Companiile mici care cresc rapid nu au suficient personal pentru a promova din interior.
13. Promovarea celui mai experimentat sau cu cele mai
multe abiliti, nu nseamn reuita acestuia. Abilitile necesare unui juctor valoros sunt diferite de cele ale unui bun coach.
Multe companii sunt mai susceptibile n a-i retrograda pe cei
seniori dect s i concedieze.
14. Puine sisteme de succesiune msoar sau evalueaz
exact eficiena i abilitile.
15. Majoritatea evalurilor psihometrice nu sunt adecvate la
mediul de business, astfel devenind complet ineficiente.
Mai devreme sau mai trziu, orice companie va nfrunta provocri n promovarea intern, pentru a crea un sistem sntos care
ne scutete de dificulti, nainte de a promova angajaii, companiile trebuie s i mbunteasc procesul de recrutare i cel de
onboarding.
Dac vorbim de poziii de management i unele companii nc
se bazeaz doar pe interviu i pe referinele aduse de candidai,
sunt expui la o recrutare greit. Liderii seniori dein arta interviurilor memorabile. Acetia au o experiena vast n prezentri,
vnzri i sunt persuasivi.
Reeta pentru evitarea unor astfel de erori sunt centrele de
evaluare i evalurile psihometrice care furnizeaz un contur mai
comprehensiv i un profil al potrivirii candidatului cu un anumit
rol, cultur sau industrie.
Noii angajai care nu se pot ridica ateptrilor reprezint de
multe ori o dificultate pentru unele companii. Asta se datoreaz
faptului c majoritatea nu au trecut printr-un proces sntos de
onboarding.
Promovrile interne sunt de regul rodul unor activiti
bidirecionale. Pe de-o parte, angajatul demonstreaz abilitile i
potenialul potrivit poziiei i pe de alt parte compania dezvolt
potenialul pentru a crea un lider de succes care s fie temelia unei
echipe, a unui departament sau poate chiar a ntregii companii.

TODAY SOFTWARE MAGAZINE


Aadar, atunci cnd avem o poziie liber este bine s punem n
balan promovarea intern sau recrutarea unui candidat extern.
Iar n momentul n care am ales varianta promovrii interne este
bine s includem criterii clare de selecie i s nu ezitm s apelm
la specialiti pentru centre de evaluare i teste psihometrice.

Monica Soare

monica.soare@artwinconsulting.ro
Manager
@ Artwin

www.todaysoftmag.ro | nr. 26/august, 2014

35

management

programare

Cadrul analizei de business (I)

maginai-v c suntei un entuziast analist de business alocat pe un proiect nou i nu tii de care capt s apucai. Nu cunoatei
domeniul, nici oamenii din echipa de dezvoltare i nici mcar ateptrile prilor implicate. Fred Brooks scria n cartea sa No
Silver Bullet urmtoarele: ,,Cea mai grea parte n construirea unui sistem este aceea de a decide exact ce vrei s construieti. Nicio
alt parte a lucrrii conceptuale nu este aa de dificil ca i cea a stabilirii de cerine detaliateNicio alt parte nu este mai dificil de
rectificat mai trziu.
Pentru c subiectul m pasioneaz i c am identificat o preocupare pentru acesta i din partea mai multor analiti de business,
intenia este de a dedica mai multe articole acestui subiect. Acest
articol va fi doar o introducere n tem pentru o serie de mai multe
articole.
Definiie: Cadrul analizei de business este o structur real i/
sau conceptual care include folosirea unui ansamblu de cunostine, tehnici practice i concepte demonstrate, cu scopul de a
descoperi rapid, de a analiza critic i de a capta cu precizie cerinele de business.
Un astfel de ansamblu e prezentat n Figura 1:

De la ce a pornit nevoia unui cadru al analizei de business?

Experiena recent m-a nvat c odat ce mi-am nsuit anumite metode i metodologii de lucru, nu trebuie s m opresc aici,
ci s continui s mi dezvolt bagajul de cunotine i s identific cu
precizie situaiile n care trebuie aplicate fiecare n parte.
mi dau seama c domeniul analizei de business este foarte
variat, modul de lucru, activitile i ateptrile variind de la o
companie la alta. Prin urmare, odat cu prezentarea cadrului de
analiz de business creat de mine, v invit i pe voi s v gndii
cum ar arta propriu cadru de analiz.
Consider c doar n acest mod, ne vom putea adapta mereu la
schimbrile frecvente care apar.
n cazul meu, schimbarea major a fost trecerea de la un proiect
mic intern cu totul nou, unde am elaborat un document coninnd
cerinele de business (Business Requirements Document), ctre
un proiect foarte mare pentru o corporaie, n care sunt implicai
mai muli stakeholder-i.
Acum tiu c n prim faz, definirea unui cadru poate prea
un pic dificil pentru un analist de business la nceput de drum,
de aceea e necesar o ordonare clar a lucrurilor i o vizualizare a
pailor ce trebuie parcuri, ca i n Figura 2.

Figura. 1. Cadrul analizei de business


Figura 2. Pai de parcurs

Avansnd n domeniul analizei de business i acumulnd


experien pe cteva proiecte, consider c analistul de business tren paralel i/sau adiacent cu parcurgerea acestor pai, se vor
buie s i poat defini cadrul specific pe proiectul pe care lucreaz, altura i elementele ce alctuiesc cadrul de analiz, pe care le voi
fie el mic sau mare, waterfall sau agile.
descrie n linii mari n cele ce urmeaz.

36

nr. 26/august, 2014 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE


Elementele din cadrul analizei de business

Planul de dezvoltare al proiectului

n cazul meu, planul de dezvoltare folosit este cel n acord cu


PMI: iniializare proiect, planificare, execuie, monitorizare i conCele 4 activiti importante care se regsesc n majoritatea pro- trol, finalizare:
iectelor sunt prezentate n imaginea de mai jos:

Activitile de BA

Tehnicile folosite
La nivel general, tehnicile de captare a cerinelor pe care le
folosesc sunt:
Brainstorming,
Interviuri,
Observare ,
Shadowing,
Workshop-uri,
Prototipuri,
Modelare vizual.

Setul de documente scrise


Acestea se folosesc n timpul activitilor de analiz de business i sunt necesare n sprijinirea dezvoltrii, precum i n livrarea
rezultatelor.
Setul de documente ablon (template documents) pe care
doresc s l folosesc pe proiectul meu conine:
Matricea de implicare a prilor interesate (Stakeholder
Involvement Matrix),
Analiza lacunelor (Gap analysis),
Specificaiile cerinelor de business (Business Requirements
Specifications),
Planul de management al cerinelor (Requirements
Management Plan),
Specificaii de use case-uri (Use Case Specifications),
Planul de comunicare (Communication Plan).

Bineneles, sunt mai multe elemente care pot fi folosite n crearea unui cadru de analiz personalizat. Fiecare analist e liber s
decid ce se poate aplica cu succes pe proiectul su.
n ncheiere doresc s evideniez obiectivul principal pe care
toi vrem s l atingem, i anume, faptul c ne dorim cu toii un
client mulumit. Pentru aceasta e necesar folosirea unui cadru
de analiz de business bine definit. Acest lucru va face ca nevoile
i cerinele clientului s poat fi comunicate i nelese n aceeai
msur de toate prile interesate astfel nct, la final, clientul s
fie pe deplin mulumit de soluia livrat.
Dup cum am menionat la nceputul acestui articol, subiectul
este foarte vast i va fi detaliat n urmtoarele ediii ale revistei.
Dac avei idei, propuneri sau deja avei un cadru de analiz
pe care l folosii cu succes putei s mi scriei despre el la adresa
ioanaa@imprezzio.com.

Modelare vizual cerinelor


Folosesc cu succes urmtoarele:
Diagrame de Use Case-uri (Use Case Diagram),
Diagrame de activiti (Activity Diagram),
Diagrame de clas (Class Diagrams),
Diagrame de mod lucru (Work Flow Diagram),
Diagrame de process (Process Flow Diagram),
Prototipuri,
Mind maps,
Entity Relationship Diagrams (ERD),
User Interface Diagram.

Ioana Armean

ioanaa@imprezzio.com
Business Analyst
@ Imprezzio Global

www.todaysoftmag.ro | nr. 26/august, 2014

37

programare

Securizarea Codului Opensource (III)

n numerele anterioare 24 i 25, s-au publicat primele dou pri ale acestui articol.
Acest numr prezint ultima parte a acestuia. Dup cum am menionat n prile
anterioare ( vezi Figura 1), codul opensource ncorporat n software-ul comercial nu
este de obicei supus la aceeai analiz static riguroas i revizuire ca i codul patentat
nou dezvoltat.
Raghudeep Kannavara

raghudeep.kannavara@intel.com
Security Researcher, Software
and Services Group
@Intel USA

38

nr. 26/august, 2014 | www.todaysoftmag.ro

n fluxul alternativ de lucru pe care l


propunem, dup cum vom vedea n Figura
9, noi recomandm includerea rezultatului
instrumentului SCA att pentru softwareul nou dezvoltat ct i pentru software-ul
opensource adoptat n pachetul de revizuire formal software. Acest flux de lucru
va supune codul opensource unei analize
de cod i unui proces de revizuire detaliat
mpreun cu codul patentat nou dezvoltat.
Orice eroare (bug) descoperit prin analiza
static este reparat i n codul opensource i n codul nou dezvoltat, nainte ca
acesta s fie supus analizei dinamice i
cu mult nainte s fie lansat pe pia.
Bineneles, acceptarea termenilor licenei
codului opensource adoptat este la fel de
important i poate pretinde comunicarea reparaiilor sau modificrii codului
ctre responsabilii cu ntreinerea, nainte
ca software-ul s fie expediat. Acest proces s-ar putea s nu gseasc toate erorile

, dar cu siguran va ajuta la descoperirea


timpurie a anumitor erori, oferind astfel
ansa de a le ndrepta mai devreme, dup
cum s-a demonstrat n seciunea anterioar despre analiza vulnerabilitii. Mai
mult, considerai scenariul realizrii unui
upgrade al componentelor open source care
au fost ncorporate. Adoptarea fluxului de
lucru propus va fi i mai util ntr-un astfel
de scenariu:
Pentru a te ajuta s decizi dac un
upgrade al unui component este fezabil,
prin bilanul erorilor care sunt ndreptate
i erorilor nou introduse. Uneori, efortul
suplimentar necesar ndreptrii erorilor
nou introduse n versiunea de software
upgradat poate fi un factor decisiv pentru
lansarea produsului.
Pentru estimarea muncii poteniale
de portare prin nelegerea relaiei dintre
componentele open source i componentele proprii.

TODAY SOFTWARE MAGAZINE

Figura 9. Segment al procesului de dezvoltare software alternativ propus,


care ncorporeaz analiza static n timpul integrrii codului opensource (2)

Provocri n adoptarea fluxului de lucru propus

Chiar dac analiza static a codului opensource adoptat este


folositoare n identificarea timpurie a anumitor erori (bugs) n
software, exist provocri tehnice i orientate pe proiect care ar
putea s fac aceast propunere s nu fie viabil n anumite situaii,
dup cum vom discuta n continuare.
Instrumentele SCA tind s produc un numr mare de
alarme false (false positives). Revizuirea i eliminarea alarmelor false poate fi o sarcin descurajatoare pentru ambele echipe,
de dezvoltare i de asigurare a calitii, n special atunci cnd
proiectele sunt supuse unor constrngeri serioase legate de
resurse, timp i buget. Odat ce alarmele false sunt eliminate,
este necesar comunicarea problemelor reale ctre echipele
de dezvoltare, spre a fi corectate. Uneori, aceasta poate necesita ca ndreptrile s fie comunicate echipei de mentenan a
software-ului opensource, nainte de livrarea produsului, n baza
termenilor licenei pentru software-ul opensource.
Evaluarea gravitii pentru problemele semnalate de
Klocwork sunt ilustrate n Figura 10. Klocwork suport 10
nivele de gravitate, cu 1 (Critic) fiind cel mai ridicat i 10 (Info)
fiind cel mai sczut. n mod similar, alte instrumente SCA vor
avea propria lor clasificare a problemelor. Datorit numrului
mare de alarme false, tendina de a ignora problemele semnalate
drept non-critice de ctre instrumentele SCA poate face ca probleme reale s fie ignorate. De aceea, revizuirea srguincioas
a problemelor nainte de a le ignora, chiar dac este o sarcin
descurajatoare, poate de fapt s merite efortul.
Efectuarea cu contiinciozitate a SCA i revizuirea rezultatelor SCA pentru ntregul cod, opensource sau nou dezvoltat,
necesit devotament i resurse pregtite dedicate, care pot s
nu fie disponibile n proiecte care duc deja lips de personal
sau unde volumul de lucru este prea mare i sunt necesare ore
suplimentare.

Figura 10. Evaluarea gravitii Klocwork

Chiar dac este recomandat SCA pentru codul opensource


adoptat, ct i pentru codul nou dezvoltat, provocrile menionate
anterior necesit compromisuri datorate limitrilor de buget, timp
i resurse, care pot prea necesare, dar sunt probabil riscante.
Cteva moduri de abordare a compromisurilor sunt urmtoarele:
Un mod ar fi s te concentrezi pe componentele de complexitate mai mare din codul opensource adoptat i s revizuieti
rezultatele SCA pentru aceste componente de complexitate
ridicat, ceea ce poate economisi timp i resurse prin ngustarea ariei de verificat. Aceasta se bazeaz pe analiza noastr,
dup cum am explicat n seciunea anterioar, despre analiza
complexitii componentele de complexitate mai mare tind
s prezinte o inciden crescut de erori raportate. Cu toate
acestea, aplicarea analizei statice unui cod complex are un efect
secundar interesant, i anume, acela c va fi mai dificil s distingem alarmele false pozitive. Acest lucru este necesar deoarece
omul trebuie s neleag acum acest cod complex pentru a
determina clasificarea avertismentului.
Un alt mod ar fi s identifici componentele critice ale proiectului, de exemplu networking, i s i concentrezi eforturile
SCA pe aceste componente critice, dup cum s-a demonstrat n
seciunea anterioar despre analiza vulnerabilitii.
n pr ivin a a lar melor fa ls e, invest igare a naturii alarmelor false s-ar putea s merite efortul. Alarmele
false se pot clasifica n alarme false veritabile i alarme false
perceptive. Primele sunt exemplificri ale faptului c instrumentul a dat gre pur i simplu, sau c trebuie s fie acordat
sau c verificatorul trebuie s fie oprit pentru aceast anumit
baz de date. Cealalt categorie de alarme false (perceptive) este
mai mult o problem ce ine de educaia i/sau de prioritizarea
dezvoltatorului. Adesea, n special n cazul vulnerabilitilor de
securitate sau a defectelor de fiabilitate mai subtile, instrumentul are dreptate, dar fie dezvoltatorul nu nelege de ce este o
problem, fie nu este att de interesat de acea problem particular. Este de datoria vnztorului de instrument s se asigure
c acesta explic n mod clar rapoartele erorilor, dar cealalt
parte a ecuaiei este un proces sensibil de cretere n interiorul organizaiei, pentru mai muli dezvoltatori seniori i/sau
educaie i training.

Concluzii

Software-ul opensource, Linux de exemplu, este disponibil


pentru oricine dorete s l obin i s l utilizeze n produsele
sau proiectele sale, atta timp ct ader la termenii din licena
software-ului opensource. n analiza noastr, am ales Klocwork
drept instrument SCA i Linux Kernel drept baz de cod, doar ca
i exemple sau instrumente sau proiecte reprezentative, pentru a
evidenia problema securizrii codului opensource ncorporat n
software comercial. n general, analiza noastr poate fi extins la
alte instrumente SCA i alte proiecte opensource. Chiar dac proiectele opensource definesc canale adecvate de raportare a defectelor
de securitate i non-securitate, aceste erori (bugs) sunt raportate
de ctre dezvoltatori individuali pe msur ce le descoper, ntr-o
manier ad-hoc. Orice efort obiectiv dedicat de a analiza static
baza de cod opensource, de a documenta i raporta descoperirile,
este absent din comunitatea opensource, chiar dac, recent companii SCA precum Klocwork sau Coverity (10) au luat iniiativ
n aceast direcie. Dar chiar i aa, viteza cu care versiunile
mai noi ale software-ului opensource sunt lansate sau actualizate
reprezint o barier n calea unor asemenea eforturi. Eforturi
precum programele (11) Ageniei de Securitate Naional (NSA),
www.todaysoftmag.ro | nr. 26/august, 2014

39

programare
Securizarea Codului Opensource (III)
Centrului pentru Software Asigurat (CAS),
care prezint un studiu al instrumentelor
de analiz static pentru C/C++ i Java n
anul 2010 utiliznd teste disponibile drept
Juliet Test Suites (14), constituie un pas n
direcia corect, dar chiar i aa, nu exist
parametri absolui pentru alegerea unui
anumit instrument SCA. Comerciani SCA
concureni tind s gseasc probleme destul de diferite ntr-o baz de cod comun,
iar suprapunerea devine aproape neglijabil
prin includerea n comparaie a numai trei
instrumente diferite. Drept regul, nu toate
problemele identificate prin instrumentele
de analiz static sunt implicit erori (bugs).
Un anumit procent din probleme cel mai
probabil poate fi ignorat n siguran dup
o revizuire adecvat. Totui, din totalitatea
problemelor gsite, o proporie substanial
garanteaz ntr-adevr corectitudinea. Chiar dac se impune o investigare
detaliat suplimentar pentru a stabili
exploatabilitatea acestor defecte n perioada de rulare, de exemplu prin fuzzing (4)
sau prin Testarea Aleatorie Automatizat
Direcionat (DART) (19), analiza noastr
demonstreaz fr nicio ndoial c aplicarea analizei statice pe codul opensource are
avantajul de a descoperi anumite defecte
critice din timp, spre deosebire de a atepta
comunitatea opensource s gseasc i s
raporteze aceste erori, dac i cnd vin n
contact cu aceste probleme. Identificarea
timpurie a acestor erori (bugs) are avantajul de a le corecta mult mai rapid i eficient.
Comercianilor de software care ncorporeaz cod opensource bazat pe GPL n
software-ul lor patentat, li se poate cere s
fac ntregul proiect opensource, inclusiv
codul lor patentat. Aceasta este n contrast cu ncorporarea licenei Apache sau
a codului opensource bazat pe termenii
MPL n software-ul patentat, care nu oblig
comerciantul de software s fac ntregul

40

proiect opensource. Acest lucru poate duce


la o situaie n care o parte din software
este opensource, iar restul este patentat.
Orice defect (bug) exploatabil gsit n partea opensource a acestui software poate fi
virulent i produsul software poate fi uor
exploatat fr nici un efort depus pentru
inginerie invers. n consecin, securizarea codului opensource care este ncorporat
software-ului comercial este la fel de critic
ca i securizarea software-ului patentat n
sine. De aceea, odat cu validarea atent
a software-ului patentat nou dezvoltat
prin intermediul SCA, este de asemenea
foarte recomandabil s se includ analiza
static a oricrui cod opensource necesar produsului, n procesul de validare
software general i s se realizeze o revizuire formal a codului opensource necesar,
nainte de adoptarea sa. Poate fi fcut o
analogie cu abordarea build (construire).
Atunci cnd folosete o bibliotec opensource, dezvoltatorul ar descrca un binar
i l-ar include direct n build, sau ar descrca sursa i ar integra-o n milestone-ul
proiectului? Prin faptul c nu utilizeaz
binarul n mod direct i prin descrcarea
sursei i ncorporarea acesteia nmilestoneurile proiectului, proiectul este protejat de
problemele ce pot s aparenvironment-ul
de creare abuild-ului. Dac este aa, de ce
s nu includem acelai cod opensource cnd
realizm analiza static, mpreun cu codul
nou dezvoltat? Se tie bine n industria de
software: cu ct descoperim mai repede
un bug, cu att mai ieftin este s l repari,
evitnd astfel procesele de judecat costisitoare sau daunele iremediabile aduse
reputaiei companiei. n multe feluri,
acest efort suplimentar este critic pentru
mbuntirea calitii generale, a fiabilitii
i siguranei produsului software. n cele
din urm, organizaiile care i pot permite
costul i care au nevoie, vor descoperi

nr. 26/august, 2014 | www.todaysoftmag.ro

valoarea acestui efort.

Mulumiri

Autorul dorete s i mulumeasc lui


Wayne Trantow i echipei Opensource
PDT de la Intel pentru furnizarea unor
perspective valoroase pe parcursul scrierii
acestei lucrri.

testare

testare

BBST -Un curs practic despre


Testare Software

n contextul dezvoltrii profesionale n domeniul IT, programatorii sunt n general foarte


obinuii cu ideea c, pentru a avansa n cariera de dezvoltator software i pentru a-i
dezvolta abilitile profesionale, trebuie s participe la diferite cursuri, s obin diferite certificri pentru anumite tehnologii, s nvee tehnici sau limbaje de programare noi,
s participe la ateliere unde s aplice n mod practic aceste tehnici i s fie la zi cu ultimele
trenduri software.
Alexandru Rotaru

alex.rotaru@altom.ro
Managing Partner
@ Altom Consulting

Ru Cindrea

ru.cindrea@altom.ro
Managing Partner
@ Altom Consulting

Domeniul testrii software nu este foarte


diferit de cel al dezvoltrii, dar spre deosebire de programatori, testerii au mai puine
opiuni cnd vine vorba de nvarea de
abiliti noi.
n urma contactului pe care l-am avut
la Altom cu tineri absolveni sau studeni
la Politehnic sau Informatic, am observat
c, dei facultile ofer cursuri de testare,
studenii nu neleg complexitatea problemelor din testarea software i nu pot s aplice
conceptele prezentate.
n urma interviurilor avute cu diferite
persoane pentru poziia de software tester,
am observat c, ntrebai ce au citit despre
testare i de unde i iau informaii noi pe
domeniul pe care vor s se specializeze, chiar
i candidaii cu experien tind s rspund
c au citit ceva articole online, dar de multe
ori nu pot s dea un exemplu clar de articol
care li s-a prut interesant sau folositor. Mai
rar pot s menioneze o carte despre testare
pe care au citit-o.
Se ntmpl ca unii candidai s
menioneze c au nvat din syllabus-ul

de ISTQB. Dup o serie de ntrebri e uor


de observat c muli dintre candidaii care
au trecut testul ISTQB Foundations cunosc
doar diferii termeni din domeniul testrii
software, dar nu stpnesc de fapt conceptele n sine i nu tiu s le implementeze.
Materialele ISTQB trateaz aceste concepte
doar la nivel de definiie, fr s aprofundeze
aplicabilitatea lor n diferite situaii.
Certificrile ISTQB sunt n schimb foarte
promovate i sunt vzute de muli ca singura
opiune pentru testerii care vor s se specializeze i s i mbunteasc abilitile de
testare.
Unele dintre firmele care recruteaz
testeri tind fie s prefere candidai care sunt
deja certificai ISTQB, fie s investeasc n
certificarea angajailor. n contextul actual,
n care tot mai multe persoane vor s se specializeze pe testarea software, certificrile
ISTQB axate pe aspecte teoretice creeaz
o nou problem: testerii nceptori nu se
simt pregtii pentru situaiile reale din
domeniul dezvoltrii software, unde prioritizarea eficient, abilitile de comunicare,

www.todaysoftmag.ro | nr. 26/august, 2014

41

testare
BBST Un curs practic despre Testare Software
investigare i explorare i lucrul sub
condiii de stres sunt extrem de importante,
iar testerii experimentai, care caut s i
mbunteasc abilitile de testare, se simt
demotivai i neapreciai i nu gsesc un
context n care s lucreze la mbuntirea
acestor abiliti.

Importana cursurilor de testare software


n contextul actual

software online care introduc o abordare


practic a testrii software, prin care
studenii au ocazia s aplice ceea ce nva
n mod direct, s testeze diferite aplicaii, s
scrie planuri de test, s lucreze cu diferite
contexte care sunt foarte asemntoare cu
situaiile ntlnite n mod curent la locul de
munc.
Spre deosebire de ISTQB, cursurile
BBST nu predau cele mai bune practici.
n schimb, predau practici care sunt utile
n situaiile potrivite, i au n vedere faptul c n contexte diferite se aplic practici
diferite. De-a lungul seriei, testarea este prezentat ca investigaie. Un investigator bun
caut n mod activ informaii, nu ateapt
s-i fie date de-a gata. Ideea principal a
testrii software este de a afla informaii
despre produs necesare stakeholder-ilor.
Nu exist nici o formul predefinit
pentru testare, nici cea mai bun procedur, nici cele mai bune practici. Diferite
situaii cer diferite abordri i competene
diferite, i, spre deosebire de ISTQB, care
prezint doar aspecte teoretice, cursurile
BBST sunt construite n jurul unor teme
i assingment-uri n care studenii lucreaz
efectiv cu diferite situaii i contexte i
primesc feedback de la instructori i de
la colegi, cu o abordare tip learning by
doing. Studenii BBST nva s utilizeze
instrumentele care sunt cele mai eficiente
n condiiile date, nu un anumit set numit
cele mai bune instrumente.

n condiiile n care prestatorii de servicii de testare trebuie s rmn competitivi,


crete i riscul ca diferenierea acestor
serviciilor s se fac pe baza preului. Ca
urmare, abilitile testerilor intr pe planul
doi i accentul se pune doar pe procesele
de testare, pe metodele i pe instrumentele
folosite.
Rezultatul unei astfel de situaii las
mult de dorit: testarea se face prost, n
grab, testerii devin demotivai, activitatea de testare este vzut ca o activitate pe
care o poate face oricine, oricnd, fr s fie
nevoie de abiliti speciale pentru a aduce
valoare.
Este important s ne schimbm perspectiva i s ne ndreptm spre un model
n care valoarea adus de serviciile de testare este cea care conteaz n primul rnd.
Ca testeri, vrem s fim primii care ne
ndreptm n aceast direcie i s demonstrm prin abilitile noastre de testare i
investigare c putem s aducem valoare
produsului cu care lucrm. Nu putem face
acest lucru dac ne concentrm doar pe
procese i metode i dac ne mulumim Seria de cursuri BBST
cu un certificat n loc de dezvoltarea unor
La momentul actual, seria de cursuri
abiliti.
BBST include patru cursuri:
Pentru a deveni nite testeri cu adevrat
BBST Foundations - primul curs
buni, e nevoie de exerciiu, de practic, de
din serie, axat pe conceptele de baz n
exemple din contexte diferite i de feedtestarea software. Studenii lucreaz i
back din partea unor oameni care au o
aprofundeaz conceptele de strategie de
experien vast.
testare, misiunea testrii, test coverage,
i ncearc s lucreze cu problemele cele
Alternativa practic
mai grele din testare:
Din fericire, cursurile ISTQB nu mai
Cum tim dac un program a tresunt singura opiune. Cursurile BBST
cut sau nu un test?
ofer o alternativ practic fiecrui tester
Cnd ne oprim din testat?
care vrea s i mbunteasc abilitile
Cum hotrm c am acoperit
necesare n testare.
produsul ndeajuns de bine?
BBST este un acronim relativ nou n
Cum msurm testarea i calitaRomnia n domeniul cursurilor de testare
tea testrii pe care am fcut-o?
software, dar care s-a dezvoltat semnificativ
BBST Bug Advocacy - un curs
n ultimii ani, dup ce numeroi absolveni
axat pe una dintre cele mai importante
BBST au descris importana acestor cursarcini pentru un tester: gsirea i raporsuri i au vorbit despre influena i ajutorul
tarea defectelor i problemelor software,
pe care materialele BBST le-au adus n
punerea accentului pe importana lor din
mod direct i practic n munca lor de zi cu
punctul de vedere al utilizatorului final,
zi.
izolarea unei probleme, adugarea de
BBST (sau Black Box Software Testing)
informaii suplimentare. Studenii vor
reprezint o serie de cursuri de testare
lucra cu un produs software open-source,

42

nr. 26/august, 2014 | www.todaysoftmag.ro

vor cuta probleme raportate deja, vor


raporta probleme noi i i vor dezvolta
abilitile de raportare i detaliere a
defectelor.
BBST Test Design - un curs introductiv n diferitele tehnici de design de
teste, cu accent pe cteva dintre cele mai
uzuale. Studenii nva s aplice anumite tehnici, s neleag punctele tari
i punctele slabe ale diferitelor tehnici
prezentate, astfel nct ulterior s poat
decide care tehnic e mai potrivit pentru contextul n care lucreaz.
BBST Domain Testing - un curs
extrem de practic care aprofundeaz una
dintre cele mai cunoscute tehnici de testare: crearea claselor de echivalen pe
domeniul variabilelor dintr-un program
i alegerea de reprezentai pentru crearea
de teste a cror eficiena n descoperirea
bug-urilor este maximizat.

BBST - un curs online

Cursurile BBST sunt organizate online.


Dac v imaginai ceva similar cu o sesiune gen webinar de mai lung durat, vei fi
surprini s aflai ct de diferite de aceast
idee i ct de interactive sunt aceste cursuri.
Cursurile dureaz patru sptmni
i folosesc o platform online care faciliteaz interaciunea direct att cu ceilali
studeni ct i cu instructorii cursului.
Primele trei sptmni sunt pentru
lecii, teme i laboratoare (cte dou lecii
pe sptmn) iar ultima sptmn este
dedicat examenului final.
Fiecare lecie conine:
o lecie video cu Cem Kaner i slideuri pentru ea.
un test/quiz cu ntrebri gril care
sunt menite doar s ajute aprofundarea
materialelor i nu afecteaz decizia final
de trecere a cursului (notele primite sunt
doar orientative pentru studeni).
un laborator sau o tem prin care
studenii aplic direct i n mod practic
conceptele explicate n lecia video. De
exemplu, pentru una din primele lecii
din cursul BBST Foundations, studenii
primesc o descriere a unui produs ntrun context anume, pentru care trebuie s
scrie o strategie de testare, rspunznd la
nite ntrebri specifice legate de ceea ce
trebuie s acopere.
Pe lng acest tip de abordare foarte
practic, studenii primesc pentru fiecare
tem feedback i comentarii din partea
instructorilor cursului, care particip activ
la discuii i ncearc s ndrume studenii
de-a lungul procesului de nvare.
Studenii primesc i dau feedback de

TODAY SOFTWARE MAGAZINE


asemenea i colegilor lor de clas, i muli
dintre absolvenii BBST spun c au nvat
extrem de mult nu doar de la instructorii
cursului, dar i de la colegi. Fiecare student
contribuie la fiecare lecie, aducnd aspecte
noi, descriind contexte diferite de cele n
care lucreaz ali studeni - i aceast diversitate de opinii face experiena mult mai
folositoare.
De la nceputul cursului, studenii
au acces la un set de ntrebri cu rspuns
deschis care acoper temele discutate n
fiecare modul. Examenul final conine
ntotdeauna un subset al acestor ntrebri,
pentru care studenii pregtesc rspunsuri
tip eseu. Pe parcursul cursului i n special
n ultima sptmn din curs, cnd nu mai
exist alte teme sau laboratoare, studenii
pot s discute ntrebrile mpreun, s i
revizuiasc unul altuia rspunsurile i s le
mbunteasc pe msur ce aprofundeaz
conceptele.
Examenul final nu va fi deci o surpriza,
ci o finalizare fireasc a muncii de-a lungul
celor patru sptmni. n urma examenului, studenii primesc feedback fie ntr-o
discuie pe Skype cu unul dintre instructori, fie n scris - la alegerea studenilor.
Decizia final de trecere a cursului este
luat de instructori n funcie nu doar de
rspunsurile date la examenul final, ci n
urma unei evaluri a ntregii contribuii
de-a lungul cursului i n funcie de
performana studenilor la toate activitile
incluse.
Spre deosebire de ISTQB, unde
decizia final este dat de alegerea rspunsurilor corecte dintr-un test gril, la
BBST instructorii urmresc n primul
rnd evoluia individual a fiecrui student,
nelegerea i n mod special aplicarea conceptelor prezentate. Comunicarea, atenia
la detalii, implicarea pe parcursul cursului
i interesul artat pentru a nva i a deveni
un tester mai bun conteaz i ele n decizia
final.

Scurt istoric

Materialele din cursurile BBST au fost


dezvoltate ca parte dintr-un studiu de cercetare susinut de Grantul NSF Improving
the Education of Software Testers
(mbuntirea Educaiei Testerilor de
Software) i Adaptation & Implementation
of an Activity-Based Online or Hybrid
Course in Software Testing (Adaptarea i
implementarea unui curs on-line sau hibrid
bazat pe activiti n testarea software).
Autorul principal al materialor prezentate n curs este Cem Kaner (http://kaner.
com) - Profesor de Inginerie Software la
Institutul de Tehnologie din Florida i coautorul uneia dintre cele mai cunoscute
cri de testare software: Lessons Learned
in Software Testing (Cem Kaner, James
Bach, Bret Pettichord).
Materialele care se afl la baza seriei
de cursuri BBST sunt folosite n cursurile predate de Cem Kaner la Universitatea
de Tehnologie din Florida. Acestea au fost
adaptate i modificate pentru a putea fi
predate unei audiente mai largi, online, de
ctre Rebecca Fiedler, care deine un doctorat n educaie de la Universitatea Central
din Florida.

aa cum e testarea software, e greu s gsim


ocaziile de a exersa o tehnic n cadrul proiectelor pe care lucram, e greu s crem
situaii progresiv mai complexe. n cazul
real al unui produs n dezvoltare, mai ales
n contextul Agile, ca testeri, abia avem
timp s reacionm, cu att mai puin s
exersm.
Este la fel de greu uneori s gsim mentori care pot s investeasc timp pentru a
ne da un feedback util la munca pe care o
facem i care pot s ne ajute s cretem i s
ne mbuntim abilitile de testare.
Cursurile BBST creeaz un mediu
de nvare n care ne putem permite s
exersm tehnici diferite i s le ncercm
n diferite situaii, s primim i s dm
feedback. E un mediu n care contextul
i problemele sunt foarte similare cu cele
reale de la locul de munc, dar n care o
greeal nseamn cu adevrat doar o nou
oportunitate de nvare. E ca un mediu de
test pentru testeri.

De ce BBST?

Vorbind despre cum putem s ne dezvoltm anumite abiliti, Cem Kaner spune:
Cred c cel mai bun mod pentru o
persoan s i dezvolte nite abiliti este
s fac ceva, s primeasc feedback despre
cum s fac acel ceva mai bine, s l fac mai
bine (sau s fac ceva similar), s primeasc
feedback i s continue s fac acelai lucru
pe probleme care devin progresiv mai grele
sau care aplic tehnica ntr-un mod nou.
Procesul descris sun att de firesc
nct pare evident.
Din experiena personal, ntr-un
domeniu complex i n continu dezvoltare

www.todaysoftmag.ro | nr. 26/august, 2014

43

legal

Folosirea serviciilor de tip cloud nu e


lipsit de riscuri juridice

loud computing este un concept cool, vehiculat des n domeniul IT i cu o cretere vertiginoas. Potrivit unui raport al IHS
Technology din februarie 2014, se estimeaz c pn n 2017, companiile vor plti 235.1 mld.$ pentru servicii de cloud
adic de trei ori mai mult dect n 2011. Printre giganii care i mpart piaa de cloud se numrAmazon,Google, Microsoft,
Barracuda Networks, Dropbox, etc. fiecare cu specializarea sa de cloud.

n luna mai, cnd am participat la Cluj la evenimentul de ni


ITCamp, unul dintre subiectele intens abordate a fost folosirea
Microsoft Azure. Iar experii prezeni au dezbtut pe larg provocrile de natura tehnic privind aceast platform de cloud.
Dar este bine de tiut c pe lng provocrile tehnice exist
i provocri legale deloc de neglijat care pot influena masiv activitatea juctorilor din industrie. Motivul? Furnizorii de cloud
se confrunt constant cu o dilem: ei trebuie s furnizeze soluii
ct mai avantajoase i inovatoare din punct de vedere tehnic i
comercial, dar n acelai timp, trebuie s se conformeze regulilor
privind protecia i securitatea datelor cu caracter personal (adic
cele care vizeaz persoanele fizice). Or, acest echilibru este uneori
greu de atins. Microsoft Romnia a vzut necesitatea de a aborda
problematica datelor personale n cloud. Pe 4 iunie, a organizat
la Bucureti un eveniment dedicat cloud computing-ului, invitnd i un reprezentant al ANSPDCP (Autoritatea competent n
Domeniul Datelor Personale). S-au abordat unele provocri din
perspectiva serviciilor enterprise oferite de Microsoft (Windows
Azure, Dynamics CRM Online i Office 365).
Din experiena clienilor mei tiu c exist unele probleme
controversate i, aa cum m ateptam, au fost multe ntrebri. La
unele dintre acestea, rspunsurile reprezentantului autoritii au
artat clar faptul c n viziunea autoritii, cloud-ul are n practic
unele zone gri care rmn a fi interpretate de la caz la caz de
ctre experi.

n final

De multe ori, folosirea serviciilor de tip cloud poate fi o zon


a nisipurilor mictoare din punct de vedere juridic. De aceea, e
necesar contientizarea faptului c implic anumite riscuri. Dac
i cum pot fi acestea eliminate sau mcar minimalizate, depinde
de la caz la caz n funcie de tipul de serviciu cloud i de puterea
de negociere a clientului.
n cazul acelor servicii cloud pentru care nu se ncheie contracte de adeziune (cum sunt contractele enterprise care, n
general, nu pot fi negociate), este indicat ca furnizorul i clientul
s negocieze unele clauze privind, de exemplu: funcionalitatea i
disponibilitatea serviciilor, locul stocrii datelor, responsabilitile
ambelor pri privind datele personale, proprietatea intelectual
i limitarea rspunderii.

Important de reinut

Exist tipuri diferite de servicii i modele de cloud care atrag


n practic consecine variate, cu obligaii legale difereniate.
De exemplu, n timp ce Microsoft Dynamics CRM e Software
as a Service (SaaS), Microsoft Azure e Platform as a Service (PaaS)
i Infrastructure as a Service (IaaS) pentru Virtual Machines.
Deosebirile lor tehnice atrag i diferene din punct de vedere
legal. Una dintre diferene este c n PaaS, principial datele nu
sunt reinute i prelucrate de ctre furnizorul de cloud. Ceea ce
nseamn c, de exemplu, clientul enterprise al Microsoft (care,
de obicei, doar pune platforma Azure la dispoziia clienilor proprii) nu colecteaz datele cu caracter personal furnizate atunci
cnd acetia creeaz aplicaii sau stocheaz informaii n Azure.
n consecin, dac nu are acces i nu folosete datele personale
stocate de clienii si, nu ar trebui s fie inut de obligaiile legale
privind notificarea la autoritatea competent, implementarea unor
msuri de securitate, condiiile speciale n care datele pot fi dezvluite altor persoane, etc. .

44

nr. 26/august, 2014 | www.todaysoftmag.ro

Claudia Jelea

claudia.jelea@jlaw.ro
Avocat & Consilier in domeniul marcilor
@ Jlaw
Claudia este specializat pe aspecte juridice
ce implic mediul online, comerul electronic i IT&C, protecia datelor cu caracter
personal i proprietatea intelectual.

sponsori

powered by