You are on page 1of 46

Nr.

43
2016
www.todaysoftmag.ro
www.todaysoftmag.com
No.
36Ianuarie
June 2015
www.todaysoftmag.ro
www.todaysoftmag.com

TSM

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

i.
De la Zero to RESTful n 4 pa
Design de API

Previziuni IT pentru 2016

Marketing prin fereastra digital


Flexibilitate strategic
n timpul incertitudinii
Logica Fuzzy si mecanisme specifice.
O Introducere teoretic
TFS ca platform de colaborare (I)
Roku

Frontend Mashup
n cutare de talent
SymfonyCon 2015
10 nouti fiscale cu impact pentru
antreprenori valabile din 2016
Simplon Romnia te nva s faci
aplicaii mobile n 3 luni

6
Previziuni IT
pentru 2016
Ovidiu Man

10
Simplon Romnia
Roxana Rugin

12
SymfonyCon 2015
O simfonie a developer-ilor
Radu Murzea

14
Conferina TEDxCluj 2016
Cristian Dasclu

19
TFS ca platform de colaborare (I)
Dorin Cazan

22
Marketing prin fereastra digital.
O privire larg asupra lui 2016
Sorina Mone

24
Flexibilitate strategic n
timpul incertitudinii
Paul Alexandru Tofan

27
Logica Fuzzy i mecanismele specifice.
O introducere teoretic
Bogdan Mursa

30
Roku
Thomas Morris

32
De la Zero la RESTful n patru pai.
Design de API
Georgiana Gligor

37
Frontend Mashup
Raluca Oanca-Boca

39
n cutare de (potenial) talent
Mdlina Nastasa

41
10 nouti fiscale valabile din 2016
cu impact pentru antreprenori
Delia Mircea

editorial

L
Ovidiu Man

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

a muli ani! Aa cum se ntmpl de obicei, nceputul anului aduce pentru fiecare
dintre noi planuri de viitor. nainte de a v pune la curent cu proiectele acestui
an, vrem s subliniem c dorim s meninem dezvoltarea revistei pe acelai trend
cresctor al calitii, vizibilitii online precum i al organizrii evenimentelor lunare de
lansare a fiecrui numr. De asemenea, ne preocup ca n acest an s avem o mai bun
comunicare cu colaboratorii revistei. Prime demersuri n acest sens sunt crearea unui
loc de discuii online privat i organizarea unor workshop-uri care s ofere cititorilor
revistei ocazia unor reale experiene de nvare. Despre serviciul programez.ro v-am
informat i n numrul trecut. Sperm s l lansm n curnd i s punem la dispoziia
doritorilor posibilitatea de rezolva teste de certificare ale companiilor pentru anumite
poziii. Pentru cei ce doresc un preview, acesta este disponibil pe beta.programez.ro.
Adugarea unor rubrici noi n coninutul revistei precum cea de Nouti i cea de
Startup-uri este un obiectiv pe care ncercm s-l ndeplinim chiar din acest numr. O
alt schimbare se refer la pagina de comuniti, n sensul c vor fi menionate doar cele
mai active dintre ele, precizndu-se evenimentele organizate de ctre acestea.
Deschidem acest numr cu o serie de opinii asupra evoluiei anului 2016 vzut din
perspectiva de business, management, UX i machine learning. Flexibilitate strategic n
timpul incertitudinii demonstreaz c starea de nesiguran poate oferi avantaje dac este
condiionat de o analiz pertinent a volatilitii businessului. Domeniul tehnic specific
IT-ului este reprezentat de o serie de subiecte interesante: o scurt introducere n Logica
Fuzzy i mecanisme specifice, O Introducere teoretic, urmat de un ghid de programare
a dispozitivului Roku; TFS ca platform de colaborare - pentru dezvoltatori ct i
nondezvoltatori care propune o soluie pentru colaborarea n cadrul echipei. Continum
seria de articole de dezvoltare a unei aplicaii web folosind ultimele framework-uri n
articolul De la Zero to RESTful n 4 pai. Design de API. Tot din aceast arie face parte
i Frontend Mashup. n cutare de (potenial) talent din perspectiva anului 2020 este un
articol care creioneaz n tue realiste evoluia resurselor umane i implicaiile acesteia
n raportul angajat/angajator. Un alt articol foarte util pentru antreprenori i nu numai
este 10 nouti fiscale valabile din 2016 cu impact pentru antreprenori.

V dorim lectur plcut !!!

Ovidiu Man

Founder Today Software Magazine

nr. 43/2016, www.todaysoftmag.ro

Redacia Today Software Magazine


Fondator / Editor in chief: Ovidiu Man
ovidiu.matan@todaysoftmag.com
Graphic designer: Dan Hdru
dan.hadarau@todaysoftmag.com
Copyright/Corector: Emilia Toma
emilia.toma@todaysoftmag.com

Lista autorilor
Ovidiu Man
ovidiu.matan@todaysoftmag.com

Sorina Mone
sorina.mone@fortech.ro

Editor-in-chief
Today Software Magazine

Marketing manager
@Fortech

Roxana Rugin

roxana.rugina@gmail.com

Paul Alexandru Tofan


Paul.Tofan@isdc.eu

CEO & co-founder


@Simplon Romania

Project Manager
@ISDC

Radu Murzea
rmurzea@pentalog.fr

Bogdan Mursa
mursa.bogdan@yardi.com

PHP Developer
@Pentalog

Software Developer
@ Yardi

Traductor: Roxana Elena


roxana.elena@todaysoftmag.com
Reviewer: Tavi Bolog
tavi.bolog@todaysoftmag.com
Contabil : Delia Mircea
delia.mircea@todaysoftmag.com
Programator junior: Alexandru Dini
alexandru.dinis@todaysoftmag.com
Marketing i tehnoredactor:
Ana-Maria Bivol
anamaria.bivol@todaysoftmag.com
Tipar realizat de Daisler Print House

Cristian Dasclu
cristian@clujhub.ro
Co-fondator
@Cluj Hub
Curator & PM
@ TEDxCluj

Thomas Morris
thomas.morris@3pillarglobal.com

Dorin Cazan
dorin.cazan@siemens.com

Georgiana Gligor
gb@tekkie.ro

Service specialist
@Siemens

Owner
@Tekkie Consulting

Delia Mircea
delia@contzilla.ro
@ Contzilla.ro

Raluca Oanca-Boca
ralucaonaca@gmail.com

Roku & Python Software Developer


@3Pillar Global

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

Full Stack Developer


@Self-Employed

Mdlina Nastasa
madalina.nastasa@happyemployees.eu
Sales Development
Representative
@ Azimut Happy Employees

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. 43/ianuarie ,2016

opinii

Previziuni IT pentru 2016

a nceput de an, toi proiectm noi planuri i noi obiective, spernd ca noul
an s fie unul favorabil ndeplinirii acestora. Dac unii in cont de ceea ce
spune zodiacul, noi am decis s dm mai mult credibilitate reprezentanilor
importani din comunitatea IT clujean. De aceea, i-am rugat s ne comunice care
sunt previziunile lor referitor la 2016. Din rspunsurile lor nu putem trage dect o
concluzie foarte optimist: anul 2016 va fi unul benefic pentru industria IT!

Ovidiu Man

ovidiu.matan@todaysoftmag.com
Editor-in-chief
@ Today Software Magazine
Organizator
@ Cluj IT Days

nr. 43/2016, www.todaysoftmag.ro

Care este perspectiva ta asupra evoluiei


tehnologiilor Microsoft n 2016?

Cortana vor deveni cu adevrat mai utili


prin nelegerea unor aspecte importante
din viaa oamenilor, cum ar fi sarcinile la
care lucreaz i angajamentele pe care i
le iau fa de alii. Sistemele Big Data vor
colecta informaii prin dispozitivele IoT i
vor influena deciziile legate de sntate,
locuin i angajare, cu analitic predictiv. Distribuia video pe web, va prelua
conducerea n defavoarea emisiunilor TV,
Radu tefan Microsoft
cu o procesare video mai inteligent n
cloud, prin Proiectul Oxford. n final, vom
n 2016, tehnologiile Microsoft vor avea experiene mai bogate pe telefoanele
evolua n jurul productivitii i a procese- mobile, printr-o tehnologie mai avansat
lor business, platforma cloud inteligent i a camerei de luat vederi.
calculatoare mai personale, pentru a crete
puterea noii societi, cu tot mai muli
tineri care i ncep primul job ntr-un
mediu virtual mai degrab dect ntr-un
loc fizic i trecerea de la tehnologia n
sine la valorile i potenialul experienelor
umane. Asistenii personali precum

TODAY SOFTWARE MAGAZINE


Care este perspectiva ta asupra evoluiei
project management-ului n 2016?

suplimentar asupra - atentie! - nu a


rezultatelor, ci a beneficiilor derivate din
rezultatele livrate.
La sfritul lui ianuarie particip la
ntlnirea anual, strategic a Project
Management Institute, de unde m atept
s vin i cu o direcie stabilit pentru
aceast organizaie. Direciile de dezvoltare
ale PMI se bazeaz pe o cercetare anual
numit PMIs Pulse of Profession, al crei
raport ne va fi prezentat cu aceast ocazie
i care se va lansa public n februarie. S
Simona Bonghez Colors in projects
vedem dac perspectiva mea va fi confirmat la nivel global. M atept s aud
M a n a g e m e n t u l d e p r o i e c t s e foarte multe despre Benefits Realization,
ndreapt spre zone noi, direcie expli- v in la curent
cabil n condiiile impuse de economie.
Perspectiva businessului ctig teren n Cum vezi evoluia proiectelor de machine
faa disputelor purtate de profesioniti learning n 2016?
legate de metodologiile cele mai eficiente.
Dup o oarecare implicare n susinerea
abordrilor Agile (care ncep s devin mai
atractive i pentru alte industrii, nu doar
cele legate de IT&C) reprezentanii businessului (managementul organizaiilor,
n general) pierd interesul de a sprijini o
metodologie sau alta, fie c discutm de
abordri Agile sau tradiionale, interesul
lor coagulndu-se n zona de obinere de Daniel Srbe SDL
beneficii. Pe o pia volatil, ne intereseaz s obinem rezultate rapide n urma
Anul 2016 se anun unul foarte intereproiectelor lansate, dar aceste rezultate nu sant pentru proiectele de machine learning
sunt suficiente, ele trebuie s aduc profit, pentru c numeroase companii au investit
cretere a cotei de pia, renume, avantaj n ultimii ani resurse financiare i umane
competitiv. E un fel de re-ntoarcere la pre- importante n acest domeniu. Machine
ocuparea de baz a businessului, doar c learning-ul a devenit tot mai accesibil,
de data aceasta mult mai intens, rezultatul nefiind limitat doar la domeniul de cercefiind impunerea acestei orientri i asupra tare sau al companiilor foarte mari. De-a
managerilor de proiect. Discuiile nu se lungul anului 2015, companii precum
vor mai purta despre metodologii, ci des- Google sau Facebook au fcut publice propre modul n care se pot atinge i se pot priile framework-uri de machine learning
asigura beneficiile estimate iniial. Ceea ce (TensorFlow - Google, Torch - Facebook)
nseamn c managerii de proiect vor tre- iar n cloud exist tot mai multe posibiliti
bui s treac de la jargonul profesional la de a ncepe proof-of-concept-uri la coslimbajul de business, s-i mute atenia de turi foarte mici i folosind state-of-the-art
la proces ctre asigurarea atingerii bene- algorithms pe platforme ce se dezvolt
ficiilor. Adic responsabilitatea lor trece continuu cum ar fi Amazon Machine
de grania proiectului i se extinde pn Learning, Microsoft Azure Machine
la obinerea ctigurilor ulterioare livrrii Learning, Google Prediction API sau IBM
rezultatelor. Legtura dintre managemen- Watson Analytics.
tul organizaiilor i managerii de proiect
Pe plan local, tot mai multe companii
trece pe o alt dimensiune. Atenie ns la din Cluj vor trece de la faza de experitermenii pe care i folosim, aici nu vorbim mente i proof-of-concept-uri la integrarea
despre Scrum Master sau Team Lead ale algoritmilor de machine learning n partea
cror responsabiliti rmn aceleai, ci de pre-producie sau chiar producie, iar
discutm despre poziiile din proiect care cererea de persoane specializate pe acest
au o perspectiv mult mai ampl asupra domeniu va crete tot mai mult. Platformele
impactului proiectelor asupra businessu- open source folosite pentru data-processing
lui: Project Manager, Product Owner. Va fi la scara mare precum Apache Spark i
interesant de vzut cum vor accepta mana- Apache Hadoop vor deveni tot mai folosite
gerii de proiect aceast responsabilizare la nivelul companiilor din Cluj. Interesul

pentru Machine Learning i BigData a


crescut exponenial n ultimii doi ani. Ca
organizatori ai meetup-ului de BigData/
DataScience am avut dificulti n 2015 n
a gsi spaii tot mai mari pentru a gzdui
astfel de evenimente. n ce privete workshop-urile de Machine Learning a fost
necesar s limitm numrul de participani
pentru a avea workshop-uri eficiente.
Cu siguran, domeniul de BigData si
Machine Learning este un domeniu de
urmrit n 2016, de asemenea i gradul de
succes a proiectelor n aceste domenii.

Cum vezi evoluia IT-ului n 2016 i n particular evoluia ecosistemului de IT clujean?

Philipp Kandal
n 2016, vom remarca o schimbare
de paradigm de la programarea logic
tradiional nspre nvarea aprofundat
dar i o continuare a proiectelor Big data.
Acest lucru va oferi inginerilor ocazia de
a desfura o munc inovatoare. Clujul
este bine poziionat datorit culturii sale
inginereti puternice i va continua s
creasc puternic n 2016. Sper n mod special ca 2016 s ofere oportuniti Product
Startup-urilor din Cluj de a avea parte de
o expunere internaional i m-a bucura
mult s vd primul unicorn care pleac de
la Cluj.

Cum apreciezi evoluia designului web i a


aplicaiilor mobile n 2016?

Vlad Derdeicea
Noul an vine cu multe modificri i
trenduri diferite n web ct i n mobile.
Website-urile ncep s aib ct mai multe
videouri i imagini erou (mari) la intro,
timp n care variantele lor de mobile
sunt din ce n ce mai rapide. Ca i n anii
precedeni se pune foarte mult accentul pe
uurina de utilizare a interfeei, grafica flat

www.todaysoftmag.ro | nr. 43/ianuarie 2016

opinii
Previziuni IT pentru 2016
i animaiile organice ce aduc via oricrui produs digital.
Fonturi frumoase i citibile sunt mai uor de gsit odat cu
Avnd n vedere evoluia rapid a device-urilor mobile se apariia Typekit-ului de la Adobe i a Google Fonts, iar site-urile
ateapt ca n anul 2016 traficul mobil s fie egal cu cel de pe au nceput s aibe fonturi din ce n ce mai curate trasmind
desktop, aceasta nseamn mai multe site-uri responsive i informaia ntr-un mod foarte uor.
aplicaii axate pe verticalitate i pe bine-cunoscutul scroll din
aplicaiile sociale. De asemenea, faptul c anul trecut Google a
decis ca site-urile responsive s fie clasate n cutri mai sus dect
cele doar pentru desktop este nc un motiv pentru care din ce n
ce mai multe companii caut s fac variante responsive sau chiar
aplicaii custom.

Ilustraiile i schiele sunt un mod distractiv de a pune n


valoare elementele site-ului sau ale aplicaiei. Ele au crescut n
popularitate prin introducerea icon-urilor cu scopul de a face
utilizatorul s neleag mai uor i mai rapid care sunt paii
respectivi sau ce beneficii aduce acel serviciu. De asemenea, pot
crea o legtur personal cu utilizatorii, ceea ce poate aduce multe
avantaje.
Interfeele bazate pe carduri sunt printre cele mai mari elemente lansate de Material Design i pot fi gsite n aplicaii,
website-uri i chiar printuri. Acestea sunt uor de creat, se adapteaz pe orice rezoluie, in informaia organizat i sunt foarte
citibile.

Culorile mai puternice i mai deschise ce aduc puin cu cele


folosite n anii 1980 sunt printre elementele ce au cele mai mari
anse s fie folosite anul acesta. Le putem vedea pretutindeni, de
la Dribbble la Google Material Design.

Animaiile au fost unul dintre trendurile cele mai mari ale


lui 2015, indiferent c erau fullscreen sau mici elemente pe care
nici nu le observai. n 2016 popularitatea lor sigur va crete chiar
dac sunt anse foarte mari ca mrimea lor s scad. Ele sunt un
mod distractiv de a ine user-ul atent sau chiar de a-l surprinde
Website-urile cu slider au fost folosite la nceput ntr-un frame,
ct timp content-ul se ncarc.
iar acum sunt folosite n full-screen. Fiecare slide este controlat de
un buton sau are un timer ce i poate dicta perioada de afiare.
Utilizatorii pot astfel naviga mult mai uor ntre informaii, avnd
o experien aproape fizic.
Analiznd exemplele menionate mai sus, observm c anul
acesta nu va fi doar un singur trend, ci mai degrab o multitudine
de trenduri posibile pentru web i aplicaii, pe care designerii vor
putea s le foloseasc n funcie de fiecare proiect n parte. ns
nu ar trebui s vedem aceste trenduri mai mult dect unelte sau
orientri n crearea unui produs. Ele nu ar trebui folosite excesiv
doar pentru c sunt hip, ci ar trebui vzut dincolo de ele i folosite doar cele potrivite pentru proiectul potrivit.

nr. 43/ianuarie 2016 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE


Care este perspectiva ta asupra mediului de IT clujean n 2016
privind evoluia produselor, outsourcing-ului dar i a programatorilor locali?

Clin Vduva
Evoluia mediului de IT din Cluj a fost i va fi n continuare determinat de dinamica pieei globale. Clujul s-a conturat
ca pol regional de cretere economic pe fondul cererilor venite
din pieele mature. La acest nivel, perspectivele de cretere pentru
2016 rmn modeste, reflectnd ncetinirea creterii comerului
mondial i a tensiunilor geopolitice. Acestea vor aduce presiuni
asupra optimizrii costurilor i a creterii productivitii, determinnd orientarea clienilor ctre investiii mai precaute, inclusiv
n tehnologie.
n acest scenariu, Clujul va traversa o perioad de reaezare.
Accentul va fi direcionat nspre mbuntirea calitii serviciilor
oferite i a relaiilor cu partenerii actuali. n mod evident, acest
lucru are impact asupra dinamicii forei de munc, att din punct
de vedere cantitativ ct i calitativ.
Pe termen lung, ne putem atepta s revenim la o cretere
semnificativ att a outsourcing-ului ct i a investiiilor din zona
de produse.

Cum va evolua piaa de gaming la nivel global n 2016?

Robert Muresan
Anul 2016 va fi anul Virtual Reality.
Toi productorii de echipamente VR (HTC&Valve, Oculus,
Sony) i vor lansa echipamentele n anul acesta.Va fi anul n care
vom asista la schimbri radicale pe piaa de gaming: locul ecranelor tradiionale va fi luat de echipamentele de realitate virtual.
Experiena va fi considerabil mai bun.

www.todaysoftmag.ro | nr. 43/ianuarie 2016

educaie

Simplon Romnia te nva s faci


aplicaii mobile n trei luni

u nceput nscrierile la cursul intensiv de Android pentru nceptori i viitori


antreprenori n domeniul tehnologiilor mobile.

Roxana Rugin

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

10

nr. 43/2016, www.todaysoftmag.ro

Cluj Napoca: 11.01.2016


Simplon Romnia anun lansarea
programului Mobile Bootcamp, un curs
pentru oamenii talentai i pasionai de
tehnologie care vor s nvee s dezvolte
aplicaii mobile pentru Android de la zero.

Cursanii vor nva conceptele teoretice prin practic i


dezvoltarea unui proiect cu ajutorul trainerilor i profesionitilor din domeniul
IT. Programul se adreseaz persoanelor
n cutare de noi provocri, dornice de
o reconversie profesional, celor aflai la
Mobile Bootcamp const ntr-un pro- nceput de drum care i doresc s obin
gram de trei luni intensive de pregtire o experien practic pentru a transforma
i dezvoltare a abilitilor tehnice pentru a realiza aplicaii
Java pe platforma Android. Pe
lng competenele tehnice,
Simplon Romnia ncurajeaz
participanii s dezvolte produse mobile inovatoare oferind
cursuri de project management i dezvoltnd abilitile
de marketing ale cursanilor
necesare n domeniul tehnologiei i antreprenoriatului web.
94% din absolvenii ultimului program Simplon Web
Development B ootcamp
lucreaz acum n IT. Aceste
rezultate i cererea mare pentru
cursuri axate pe practic i tehnologii noi, ne-au determinat
s lansm un nou curs pentru
nceptori care vor s dezvolte
aplicaii mobile- declar fondatoarea Simplon, Roxana
Rugin.

TODAY SOFTWARE MAGAZINE


idei valoroase n aplicaii mobile i afaceri
de success.
Simplon Romnia mpreun cu Today
Software Magazine ofer dou burse la
Mobile Bootcamp 2016 pentru persoanele
din medii defavorizate social care doresc
s i mbunteasc viaa cu ajutorul tehnologiei. Firmele care doresc s ncurajeze
tinerii s nvee programare, pot oferi astfel de burse cu ajutorul Simplon. Pentru
detalii despre parteneriate i burs intrai
pe site.
nscrierile se pot face pn pe 25 ianuarie pe ro.simplon.co/mobile1, iar candidaii
interesai trebuie s-i dovedeasc aptitudinile, pasiunea i capacitatea de a nva
rapid Java printr-un test practic. Toi cei
care vor trece testul practic vor fi ulterior invitai la un interviu. Ctigtorul
bursei va fi anunat la sfritul perioadei
de selecie, odat cu lista celor admii la
Mobile Bootcamp.

Despre Simplon Romnia


Simplon Romnia nseamn o comunitate de oameni pasionai care i doresc
s mprteasc din experiena lor cu
ceilali n scopul de a contribui la educaia
tinerilor i de a ncuraja ideile i diversitatea n domeniul tehnologiei. Simplon
organizeaz cursuri de instruire i specializare n IT, contribuind direct la ocuparea
forei de munc i mbuntirea nivelului
de pregtire al tinerilor din Cluj. Pe lng
bootcamp, Simplon organizeaz evenimente destinate antreprenorilor, ateliere
pentru copii, workshop-uri pentru fete,
femei sau angajaii din companii care vor
s nvee programare.
Simplon Romnia este afiliat la o reea
de coli alternative internaionale: Simplon
- care propun cursuri de formare intensive
i practice n urma crora participanii pot
crea site-uri web i aplicaii mobile sau pot
deveni dezvoltatori entry-level i project
manager-i n IT. Cursurile se adreseaz
tinerilor sub 25 de ani, fr diplome superioare, celor care au nevoie de o calificare
sau omeri care caut de lucru, fetelor i
femeilor, celor care vin din mediul rural
sau din familii cu venituri mici, aflai n
dificultate financiar i tuturor celor subreprezentai n domeniul IT.

1 http://ro.simplon.co/mobile

www.todaysoftmag.ro | nr. 43/ianuarie 2016

11

evenimente

SymfonyCon 2015
O simfonie a developer-ilor

n prima sptmn a lunii decembrie am avut plcerea de a participa mpreun


cu echipa mea la una dintre cele mai importante i mai mari conferine PHP ale
anului: SymfonyCon 2015. Aceasta a avut loc la Paris i a fost organizat cu ocazia
mplinirii a zece ani de existen a faimosului framework Symfony.

Radu Murzea
rmurzea@pentalog.fr
PHP Developer
@Pentalog

12

nr. 43/2016, www.todaysoftmag.ro

n acest articol v voi descrie impresia


Folies-Bergere, celebrul teatru i un
pe care mi-a creat-o aceast conferina.
simbol al culturii franceze i parisiene
a reprezentat locul unde s-a desfurat
I). De ce te-ai duce la o conferin ?
evenimentul. Organizatorii au fost cei
Aceast ntrebare o putem auzi frec- de la SensioLabs, compania din spatele
vent de la prieteni i cunoscui atunci Symfony-ului i a altor proiecte PHP
cnd suntem entuziasmai c vom parti- celebre.
cipa la un astfel de eveniment.
Da, putem citi articole, bloguri, tiri,
Pus n cifre, conferina arat cam aa:
cri. Putem discuta probleme i cod cu
peste 1,000 de participani,
ceilali programatori scriindu-ne unul
25 de speakeri internaionali,
altuia pe GitHub. Sau putem chiar forma
2 zile de workshop-uri,
mici grupuri locale axate pe o anumit
2 zile de conferin,
tehnologie.
1 Hackday,
ns toate acestea nu se compar
25 de prezentri mprite pe 2
cu ce poate oferi o conferin bine pus
track-uri (A i B) simultane,
la punct: interaciunile fa-n-fa cu
18 sponsori (printre care Blackfire,
cei mai buni experi ai acelui domeniu,
Drupal, Heroku, Microsoft Azure,
cunoaterea unor oameni noi, descopePlatform.sh, BlaBlaCar i eZ Systems),
rirea unor noi tendine n domeniul tu
16 ctigtori ai premiilor Symfony
i, nu n ultimul rnd, sentimentul plcut
Business and Community Awards,
c toate acele sute de oameni mprtesc
i, nu n ultimul rnd, 300 de
aceeai pasiune ca i tine. Aceste experielePHPani mov/unicat vndui.
ene pot fi avute doar n acel context.
Da, o conferin cost timp i bani.
Fiind dou track-uri simultane de preDar n schimb primeti o viziune mai zentri, organizatorii au fcut streaming
ampl asupra domeniului i motivaia de a live a tuturor prezentrilor pentru cei
continua s nvei i s ncerci lucruri noi. care i-au cumprat bilet, dar nu au putut
ajunge la conferin. Prezentrile au fost
II). Detalii SymfonyCon 2015.
de asemenea nregistrate i vor fi fcute
Dup cum am menionat anterior, publice.
conferina a avut loc la Paris n prima sptmn a lunii decembrie 2015 i a marcat
zece ani de existen a framework-ului i
lansarea versiunii majore 3.0 a acestuia.

TODAY SOFTWARE MAGAZINE


pe cont propriu alte bug-uri sau probleme
care s le reproduc sau s le rezolve.

V). Concluzii.
SymfonyCon 2015 a fost o conferin
bine organizat, oferind participanilor
o varietate de activiti i subiecte de
discuie. Interaciunea cu comunitatea a
fost punctul forte deoarece majoritatea
liderilor au venit sub acelai acoperi i au
fost foarte prietenoi cu participanii.
n concluzie, conferinele mari
internaionale sunt evenimente la care
orice profesionist din lumea IT ar trebui s
participe cel puin o dat n via.

III). Coninutul Conferinei.

nceputul proiectului Symfony. Aceasta


Vom parcurge conferina ntr-o ordine a fost organizat ntr-o sal de jocuri
cronologic, pentru o imagine mai clar uria care a fost luat cu asalt de ctre
asupra coninutului oferit.
participani. Cldura infernal i glgia
enorm nu a oprit pe nimeni s se distreze
Ziua 1. Prima zi a nceput cu un la maxim i s-i fac poze cu astronautul
bine-venit mic-dejun printre sutele de mascot a celor de la ElevenLabs, care a
participani care stteau la coad s-i fost de departe vedeta serii.
cumpere unul din puinii elePHPani mascot pui la vnzare de ctre organizatori.
Ziua 2. n ciuda oboselii acumulate
Aceste jucrii de plu au fost att de rvnite la petrecere, toi participanii s-au ntors
de participani nct stocul s-a golit com- nerbdtori pentru o nou zi de prezentri
plet n dou ore.
i socializare.
Dup ce ne-am cumprat mult rvnita
Prezentrile au fost i de aceast dat
jucrie unicat, ne-am ndreptat spre sala foarte tehnice: s-a discutat despre perprincipal pentru a vedea keynote-ul inut formana FastCGI, tool-ul de profiling
de Fabien Potencier, fondatorul proiectului Blackfire, caching, conceptul de micro-fraSymfony.
mework i Form-uri. Ultima prezentare a
zilei a adugat o latur uman i de reflecKeynote-ul s-a axat pe istoria fra- ie ntregii zile prin mprtirea de ctre
mework-ului, viziunea echipei Symfony Jordi Boggiano a plcerilor i dificultilor
pentru prezent i viitor i un nou rele- coordonrii i meninerii unui proiect
ase-model a urmtoarelor versiuni ale open-source.
framework-ului. Totul s-a sfrit destul
Ziua a fost presrat cu variate concurde repede, dup ce cteva lacrimi emoi- suri i competiii unde s-a ctigat, printre
onante din partea prezentatorului au fost altele, un skateboard customizat i un Mac
ntmpinate cu multe aplauze.
modificat special cu emblema celor de la
Dup keynote, prezentrile s-au des- Blackfire.
prit n dou track-uri i au continuat aa
Dup concursuri, a urmat sesiunea
pn la sfritul zilei. Coninutul prezent- de premiere Symfony Community and
rilor a fost concentrat pe aplicaii Symfony Business Awards 2015. Premiile au fost
rulate n cloud, uimitorul tool de deploy- mprite n mai multe categorii: cel mai
ment Platform.sh, componente Symfony bun blogger, cel mai bun contribuitor de
i cum sunt folosite de ctre alte proiecte, cod, cel mai interesant Bundle, cea mai
Doctrine, extensii PHP n maina virtual bun aplicaie open-source a anului i
HipHop i aplicaii e-commerce.
multe altele. Ctigtorii au fost alei de
ctre comunitate prin vot.
Cum nucleul conferinelor este componenta social, organizatorii au avut grij
Hackday. Ziua urmtoare a avut loc
ca aceasta s se manifeste intercalnd pre- hackday-ul. Prezena a fost mult mai mic
zentrile cu multe pauze printre care i dect n zilele principale de conferin.
prnzul.
n aceast zi s-a pus accentul pe practic:
Ziua s-a ncheiat cu o mega-petre- unii au rezolvat cteva bug-uri propuse de
cere dedicat aniversrii a zece ani de la ctre organizatori n timp ce alii au cutat
www.todaysoftmag.ro | nr. 43/ianuarie 2016

13

evenimente

Conferina TEDxCluj 2016

omunitatea numeroas TEDxCluj se rentlnete la Cinema Florin


Piersic, pe 20 februarie, n cadrul conferinei TEDxCluj 2016.
n premier: competiia TEDxCluj Award, care premiaz inovatorii din
Transilvania, ateapt nominalizri pn pe 28 ianuarie.

Cristian Dasclu
cristian@clujhub.ro
CEO & Business Developer
@ Transilvania
Entrepreneurship Center
Co-fondator
@Cluj Hub
Curator & PM
@ TEDxCluj

14

nr. 43/2016, www.todaysoftmag.ro

Cluj-Napoca, 14 ianuarie. Ediia 2016 a


conferinei TEDxCluj are ca tem demontarea miturilor: MYTHBUSTING lsm
povetile s doarm, trezim adevrul i
se va desfura n 20 februarie, la Cinema
Florin Piersic. Pasionaii de cunoatere
sunt ateptai cu idei inovatoare, performance-uri deosebite i o expoziie cu
produse ale viitorului.
Credem c tiina n sensul ei cel mai
larg este felul n care ni se prezint realitatea, felul n care nelegem i acceptm
ceea ce ne nconjoar. tiina elibereaz,
deoarece n locul prejudecilor, al falselor
adevruri mari, pune mici adevruri verificate. Propunem MYTHBUSTING deoarece
cunoaterea tiinific se mbuntete
pe zi ce trece, cu fiecare prob la care este
supus i pe care o depete. Vom demonta
mituri din dou direcii: dinspre evoluia
cunoaterii tiinifice, adic acele mituri
care nu puteau fi distruse pn mai ieri; n
al doilea rnd, vom porni pe urmele acelor
intuiii care se simt i par s fie adevrate,
dar care, atunci cnd sunt supuse unui test
riguros, nu mai stau n picioare.- a declarat

Cristian Dasclu, curatorul TEDxCluj.


Cu aceast ocazie, organizatorii lanseaz competiia TEDxCluj Award, care
urmrete s premieze profesionitii din
Transilvania care inoveaz n domeniul
lor de activitate, prin idei curajoase ce
pot schimba lumea sau care aduc nouti
tehnologice nebnuite. n prima faz a
competiiei, oricine poate face propuneri pe website-ul www.tedxcluj.com.
Perioada nominalizrilor este 14-28 ianuarie, urmnd ca pn n 31 ianuarie echipa
TEDxCluj, mpreun cu un juriu format
din parteneri din domeniul inovaiei s
selecteze zece propuneri pe baza criteriilor
anunate pe site. Reprezentanii juriului se
vor ntlni apoi cu inovatorii selectai pentru a discuta despre mentorat, dezvoltarea
ideilor n afaceri i consiliere financiar,
iar n perioada 13-16 februarie vor fi alese
trei cele mai bune propuneri. Ctigtorul
TEDxCluj Award 2016 va fi anunat n
cadrul conferinei din 20 februarie.

TODAY SOFTWARE MAGAZINE

TEDxCluj Award i propune s aduc


mpreun mini sclipitoare, idei originale,
experiena partenerilor i dorina tuturor
de a rspndi ideile bune. Cutm iniiatori
de proiecte care au idei de impact, dorina
de a le vedea dezvoltate i hotrrea de a
munci pentru acest lucru. Cu toii vom
avea de nvat din aceast experien, dar
mai ales toi cei care vor participa, a adugat Cristian Dasclu.
n completarea discursurilor i a
performance-urilor care reprezint deja
marca TEDxCluj, organizatorii pregtesc i Innovation & Tech Expo, unde
participanii vor putea testa gadgeturi
noi, produse de design creativ i practic n
acelai timp sau obiecte care aduc mpreun concepte independente pentru prima
dat. Printre acestea se numr Husa
ArKase, ce ncarc bateria telefonului prin
regenerarea energiei consumate de utilizatori. Idei 3D prezint ochelarii Cardboard,

o modalitate ieftin de a experimenta


realitatea virtual cu ajutorul telefonului mobil, iar SnapIT propun ochelari
personalizai prin ncorporarea unei
micro-camere conectate la smartphone.
Lista vorbitorilor i a invitailor care
vin la TEDxCluj 2016 va fi anunat n
perioada urmtoare. Pentru participarea
la conferin, doritorii mai pot cumpra
bilete de tip Early Bird la preul de 44 de
euro de persoan, urmnd ca dup epuizarea acestora un bilet s coste 65 de euro.
TEDxCluj este un eveniment non-profit,
iar fondurile strnse sunt folosite pentru
a crea evenimente de impact adresate
comunitii TEDxCluj.

TEDxCluj este o iniiativ local


i independent care aduce experiena
internaional TEDx n Transilvania.
Pr i mu l e ve n i me nt T E Dx C luj s - a
desfurat n 2010, iar de atunci peste
3.500 de persoane au participat la cele
10 evenimente organizate de echipa
TEDxCluj sub deviza TED: Ideas worth
spreading Idei care merit rspndite. Ultima ediie TEDxCluj, cu tema
Learn Unlearn Relearn (nvare
Dezvare Re-nvare), a nsemnat
1.017 participani, 12 ore de conferin i
35 de invitai - vorbitori i artiti.
Mai multe informaii: www.tedxcluj.com

www.todaysoftmag.ro | nr. 43/ianuarie 2016

15

startup-uri

Startup-uri
Moqups

Startup-ul clujean Moqups.com pentru crearea de schie online a lansat recent cea de-a doua versiune mult mbuntit.
Proiectele realizate se pot publica online sau descrca sub form de PDF sau SVG. Exist inclusiv posibilitatea de a invita colaboratori i de a lucra mpreun la o schi.

Symme3D

Prima imprimant romneasc 3D pe sistem Delta. Avantajele acestui sistem sunt vibraiile sczute i o vitez de pn la 4-5 ori mai
mare fa de imprimantele 3d clasice pe sistem cartezian. Imprimanta
este o minifabric pentru orice mic productor de hardware deoarece pe lng capacitile 3D ofer i o frez CNC pentru gravarea
cuprului de pe circuitele integrate i un cap laser cu care se pot tia
plcuele de mylar.
Neura http://techcrunch.com/2016/01/18/neura/

16

nr. 43/ianuarie 2016 | www.todaysoftmag.ro

Pine A64

Primul calculator pe 64 bii pe o singur plac. Acesta va


conine un procesor ARM Cortex A53, quad core, 1.2 MHz,
2 x USB 2.0, HDMI 4K i pn la 2GB RAM. Va putea rula
orice sistem de operare iar recomandrile productorilor
sunt Android, Ubuntu sau openHAB IoT. Proiectul este n
derulare pe Kickstarter unde au adunat 1,266,000 USD, de
40 de ori mai mult dect cererea iniial.
d o k i Wat c h - ht t p s : / / w w w. ki ck star te r. c om /
projects/dokiwatch/dokiwatch-the-worlds-most-advancedsmartwatch-for?ref=category
TinTag
Skin Scan

nouti

TODAY SOFTWARE MAGAZINE

Nouti IT

A fost lansat Perl 6

Jquery a mplinit 10 ani

Nvidia Drive PX 2

A fost lansat versiunea 6 a limbajului


Perl. Acesta aduce o serie de noi concepte
precum: multimethods, coroutines, continuations, usefull threading, junctions,
roluri, hyperoperators, macros, garbage
collections i multe altele. Costul pentru
toate acest mbuntiri a limbajului este
pierderea compatibilitii cu versiunea
anterioar.1

n 14 Ianuarie 2006, John Resig a


vorbit la evenimentul BarCampNYC
despre un framework de JavaScript care
se numea JQuery. A fost momentul lansrii celui mai popular framework de
JavaScript care a mplinit n ianuarie 2016
zece ani de existen. Totodat versiunea 3.0 a intrat n stagiul de beta. Printre
principalele feature-uri ale acestei versiuni menionm: implementarea .data()
urmeaz ndeaproape specificaiile HTML5
sau mbuntirea performanei pentru
anumii JQuery.1

Soluia propus de NVidia pentru


procesarea imaginilor de ctre mainile
autonome se numete Nvidia Drive PX 2.
Aceasta folosete deep learning pentru a
nva i pentru a se adapta provocrilor
deplasrii autonome a mainilor. Puterea
dezvoltat de Drive PX 2 este echivalent
cu cea a 150 MacBook Pro i a fost recent
lansat la CES 2016.1

1
1 http://www.perl.com/pub/2006/01/12/what_is_perl_6.

http://blog.jquer y.com/2016/01/14/

ten-years-of-jquery-and-beyond/

html

Oculus Rift, versiunea


comercial

Prima versiune a bine cunoscutului


dispozitiv de realitate virtual este disponibil pentru precomand. Aceasta
este prima versiune dedicat consumatorilor i suport Rift Development Kit
2 (DK2). Rezoluia celor dou ecrane
combinate va fi de 2160 x 1200 iar
latena va fi mic iar ctile vor fi integrate n dispozitiv pentru o mai mare
senzaie de ptrundere n realitatea
virtual.1

http://nvidianews.nvidia.com/news/

nvidia-boosts-iq-of-self-driving-cars-with-world-s-first-in-carartificial-intelligence-supercomputer

Android 6.0 Marshmallow

Primul procesor ARM de la AMD

A fost lansat versiunea 6.0 a bine cunoscutului sistem de operare Android.


Principalele mbuntiri sunt:
Now on Tap o anticipare a
aplicaiilor i informaiilor de care utilizatorul are nevoie cu o simpl apsare
O mai bun gestionare a bateriei
Pe r m i s i u n i p e n t r u a p l i c a i i
i securitate simplificate1

AMD a lansat primul su procesor ARM:


Opteron A1100. Acesta va avea o versiune cu patru core-uri care va consuma
25W i una cu opt core-uri care va consuma 32W. Specificaiile sunt: Cortex
A57 CPU cores, 1 MB cache L2 i 8MB
cache L3 iar memoriile suportate sunt
DDR3 i DDR4. Este un pas important
pentru AMD care astfel intr pe piaa
serverelor ARM. 1

1 https://shop.oculus.com/

1 ht t p : / / w w w. am d . c o m / e n - u s / p ro d u c t s / s e r v e r /
1 https://www.android.com/versions/marshmallow-6-0/

opteron-a-series

www.todaysoftmag.ro | nr. 43/ianuarie, 2016

17

comuniti

Comuniti i Evenimente
Lansarea numrului 43 al Today
Software Magazine

Ianuarie 27 (Cluj) - Ora 18:00


Siemens Cluj Office strada Grii, nr 21,
Cluj-Napoca.
Today Software Magazine
Comunitate construit n jurul revistei
TSM.
facebook.com/todaysoftmag
facebook.com/groups/todaysoftmag/
meetup.com/todaysoftmag
youtube.com/todaysoftmag
Data nfiinrii: 06.02.2012
Nr. membri: 2977

StartupBlinkers Networking

Ianuarie 28 (Bucureti) - Ora 19:00


Loc: TBD
meetup.com/Cluj-JS/events/227014061/

Ionic 2.0 and AngularJS 2.0

Februarie 4 (Cluj) - Ora 18:30


Strada Piteti, nr. 18, Cluj-Napoca.
meetup.com/Cluj-JS/events/227014061/
Cluj.JS
Comunitatea dezvoltatorilor care doresc
s se implice i s nvee totul despre
JavaScript.
Data nfiinrii: 21.04.2015
Nr. membri: 261

Bucharest Microservices UG ...


Begins

Februarie 8 (Bucureti) - Ora 19:00


Strada Bucuresti Nord 10, Global City
-cldirea O2, etajul 6, Voluntari 077190,
Ilfov
meetup.com/Bucharest-MicroservicesUs e r- Group / e ve nt s / 2 2 8 1 3 6 4 4 6 /

StartupBlink
StartupBlink este un ecosistem global
interactiv privind startup-urile, cu zeci
de mii de entiti listate, inclusiv startupuri, spaii destinate coworking-ului i
acceleratoare.
www.startupblink.com

Bucharest Services (Microservices)


C omunitate destinat arhitecturii
microserviciilor.

Data nfiinrii: 28.10.2015


Nr. membri: 12711

Openstack Workloads with


Windows Server 2016

Startup Europe Week - Cluj

Februarie 2 (Cluj) - Ora 18:00


Str. Grii nr. 21, 400267 Cluj-Napoca
facebook.com/startupeuropeweek/; http://
www.startupeuropeweek.eu
Startup Europe Week
Comunitatea a fost creat cu scopul de a
reuni toate regiunile europene printr-un
program de startup.

Data nfiinrii: 16.01.2016


Nr. membri: 89

Februarie 10 (Iai) - Ora 19:00


Loc : TBD
meetup.com/IS-DevOps-Meetup/
events/228224839/

DevOps
Comunitatea tuturor celor care doresc
s devin specialiti n DevOps.
Data nfiinrii: 28.08.2015
Nr. membri: 83

Data nfiinrii: 01.07.2015


Nr. membri: 1087

18

nr. 43/ianuarie 2016 | www.todaysoftmag.ro

February BucharestJS Meetup

Februarie 24 (Bucureti) - Ora 19:00


Strada Nicolae Filipescu nr. 39-41,
Bucuresti
facebook.com/groups/1544555832466208/;
http://www.meetup.com/BucharestJS/
events/228209512/
BucharestJS
Comunitatea tuturor developer-ilor
interesai de Javascript.
Data nfiinrii: 11.02.2015
Nr. membri: 629

OpenStack January Meetup Open for Presenters

Februarie 25 (Cluj) - Ora 18:30


Maestro Business Center, etajul 4, 21
Decembrie 1989, 104, Cluj-Napoca
m e e t u p. c o m / O p e n S t a c k R o m a n i a /
events/226052637/
OpenStack
Comunitate format din utilizatorii
OpenStack i developer-i.
Data nfiinrii: 31.08.2014
Nr. membri: 134

VOXXED Days BUCHAREST

Martie 10 (Bucureti) - Ora 08:30


Bulevardul Poligrafiei, nr 1, Bucureti
voxxeddays.com/bucharest/
VOXXED Days
Comunitate format din developeri
Data nfiinrii: 2015
Nr. membri: 1060

programare

TFS ca platform de colaborare (I)

eam Foundation Server (presc. TFS) promite a fi o soluie out of the box pentru toat platforma de ALM din cadrul unei organizaii ce poate fi utilizat att
pentru gestionarea proiectelor, ct i pentru a urmri work-flow-ul n echipe,
pentru a gestiona codul surs i pentru a compila i testa software-ul. Putei face acest
lucru fie cu Team Foundation Server instalat pe un server propriu fie prin utilizarea
Visual Studio Online n cloud.

Dorin Cazan
dorin.cazan@siemens.com
Service specialist
@Siemens

Potrivit Microsoft, acestea sunt cteva


din caracteristicile majore, care sunt
incluse n Team Foundation Server:
Version control, pentru gestionarea
codului surs ct i a altor elemente care
necesit versionare.
Work item tracking, pentru a
urmri efortul depus de echip ct i
cerinele venite din partea utilizatorilor.
Pentru acest aspect exist aa numitele
work items (elemente de lucru) user
stories, requirements i task-uri.
Project management functions
(funcii de management de proiect),
care permit planificarea i urmrirea dezvoltrii proiectului folosind
Microsoft Excel i Microsoft Project.
Team build, pentru a permite
un proces comun pentru dezvoltarea
i compilarea de produse software.
Procesul poate fi configurat n funcie
de cerine i necesiti, pentru diferite
tipuri de build-uri, incluznd build-uri
de tipul continuous integration, scheduled builds, gated check-in, shelveset and
rolling builds.
Data collection and reporting (servicii de colectare a datelor i raportare),
care ajut la evaluarea stadiului de dezvoltare a unui proiect
Team Web Portal, care ofer un

punct central de comunicare pentru


echipe i care nu depinde de o instalaie
Visual Studio pe PC-ul utilizatorului.
Te a m F o u n d a t i o n S h a r e d
Services, care ofer o serie de servicii
de infrastructur comune, care nu sunt
vizibile pentru utilizatorii finali, dar
care pot fi utilizate pentru a extinde
funcionalitatea TFS.
TFS poate fi cel mai bine descris dac
inem cont de cele dou aspecte principale
ce-l definesc. Pe de o parte, reducndu-l la
funcia primar pentru care am folosi TFS
ntr-o organizaie, putem spune c TFS
este o platform de colaborare ... sau, altfel
spus, nu este dect o colecie de tool-uri
care permit colaborarea la un proiect att
a membrilor echipei de dezvoltatori ct
i de clienii i partenerii acestei echipe.
Aceast colecie de tool-uri centralizate
le permite s lucreze mpreun mai eficient. Se pot mprti planurile de proiect
i notebook-uri, evaluri intermediare,
coduri surs. Organizaia se bazeaz pe o
instalare out of the box de TFS sau pe
consolidarea i mbuntirea elementelor ce nsumeaz TFS-ul ca soluie ALM,
prin modificarea sau adugarea de noi
elemente i scenarii de utilizare pentru a
altura noi funcionaliti eficiente. Pe de
alt parte, dincolo de ceea ce are de oferit

www.todaysoftmag.ro | nr. 43/ianuarie, 2016

19

programare

TFS ca platforma de colaborare - pentru dezvoltatori ct i non-dezvoltatori

TFS out of the box, se poate spune c TFS este o platform de


colaborare proiectat special pentru integrare i extensibilitate.
Prin intermediul API-ului (Application Programming Interface)
se poate adapta Team Foundation Server la nevoile organizaiie,
proiectului i echipelor individuale prin adaptarea i ataarea de
noi funcionaliti. Extensiile pot ngloba schimbri simple precum redenumirea unui cmp ntr-un work item, dar i pentru a
integra un tool sau o funcionalitate complet nou.

Extensibilitatea platformei TFS


Extensibilitatea TFS este dat de structura sa multi-tier, pe
mai multe niveluri, precum i de diferite modele cu care un
utilizator poate interaciona n scopul de a adapta sau aduga
noi funcionaliti. Team Foundation poate fi adaptat nevoilor
individuale ale echipei i a proiectului folosindu-se unul dintre
urmtoarele modele puse la dispoziie de Microsoft:
1. Client object model (cum sugereaz i numele, se aplic la
computerele pe care se utilizeaz TFS respectiv interfaa la aceast
platform, Microsoft Visual Studio), poate fi folosit n scopul de a
influena comportamentul TF atunci cnd vine vorba de controlul versiunilor, work item tracking i a build-urilor.
2. Server object model (se aplic pe application tier), poate fi
folosit n scopul de a integra instrumente suplimentare n Visual
Studio, n crearea de rapoarte i chiar n crearea de evenimente
ce pot declana anumite aciuni, cum ar fi copierea unui build
pe share-ul clientului dup ce s-a schimbat build quality-ul unui
build ce a fost compilat cu succes.
3. Build process object model, n scopul de a personaliza procesul de compilare. Putei personaliza ablonul procesului de
construcie ct i activitile pre- i post-implementare.
Fig1. TFS multi-tier environment

noastr de TFS n scopul de a facilita i de a spori scenariile


de utilizare nu numai pentru dezvoltatorii notri dar i pentru
clienii notri se numr un tool ce poate copia build-urile de
pe droplocation pe share-ul clientului n urma unor aciuni i
evenimente predefinite, instrumente pentru export i importarea de build definitions, integrarea cu instrumente de traducere,
integrare cu alte produse PLM cum ar fi Team Center, check-in
policies, securitate sporit pentru version control prin folosirea de
folder-e i branch-uri securizate pe baz de IP direct n source
control i multe altele.
Ar trebui remarcat faptul c Microsoft are un site numit
Visual Studio User Voice1 , care poate fi folosit pentru a trimite
sugestii i idei la Microsoft pentru a mbunti TFS si\sau Visual
Studio. Nu toate sugestiile vor fi puse n aplicare, dar este bine de
tiut c se poate transmite ideile direct ctre Microsoft i c este
posibil s se obin o funcionalitate nou, benefic tuturor utilizatorilor de TFS fr a fi nevoie s nvei cum funcioneaz TFS
i cum putei utiliza TFS API n scopul de a dezvolta o extensie
suplimentar.
Ca i n cazul tuturor platformelor de colaborare, exist i
unele neajunsuri care trebuie luate n considerare. Principalele
mele nemulumiri sunt legate de modul n care funcioneaz
TFS, mai exact de faptul c este necesar o conexiune\comunicare constant i activ ntre PC-ul utilizatorului i serverul de
TFS. Dac, de exemplu, avei o pan de curent sau pica reeaua
timp de 1 or, procesul de dezvoltare de aplicaii este forat s
stagneze. Motivul este c TFS va marca toate fiierele ca read-only
pe sistemul utilizatorului pn cnd se realizeaz un check-out.
Dac nu putei comunica cu server-ul, nu putei face check-aut i
prin urmare nu le putei edita. Dac, pe de alt parte, le-ai dat
check-out nainte i ai terminat de editat, nu putei da check-in
n timp ce conexiunea cu server-ul de TFS nu este realizat; n
unele cazuri nu se poate da check-in chiar i dup ce serverul
este din nou disponibil, deoarece fiierul *.sln este marcat ca
fiind offline i, uneori, nu reuete s se reconecteze la server
n mod automat. n acest caz vei fi ntmpinai cu un mesaj
asemntor:
This solution is offline. [Team Foundation Server:
https://tfsURI:443/tfs/collection/project]
The solution was offline during its previous session
and will remain offline.

n trecut era necesar s intervenim n Windows registry


sau s-I dm rebind la fiierele *.csproj pentru a putea continua activitatea de dezvoltare, dar se pare c Microsoft a lucrat la
La Siemens, una dintre diviziile ce utilizeaz TFS a dezvoltat remedierea acestei probleme din moment ce nu am mai ntlnit-o
un tool care adaug funcionaliti adiionale pentru work item n ultima vreme.
tracking. Printre funcionalitile suplimentare care sunt disponibile dup instalarea acestui tool pot fi enumerate urmtoarele:
TFS nu este un sistem nchis aa cum s-ar crede, ci poate fi
cmpuri i tab-uri suplimentare, funcionalitatea de a reactualiza integrat i cu alte sisteme 3rd party pentru source control i issue
cache-ul structurii work item-urilor, verificarea permisiunii uti- tracking. Unele dintre funcionalitile care sporesc extensibililizatorilor fr a fi nevoie de a intra n interfaa administrativ, tatea i flexibilitatea TFS este capacitatea sa de a integra i de a
pentru a crea template-uri pentru diversele work item-uri folo- lucra cu alte pachete software, dar fr a se limita n mod necesar
site (fr a fi nevoie s se instaleze extensia oferit de Microsoft doar la produsele Microsoft (cum ar fi Microsoft Project Server,
(Power Tools for Visual Studio) i posibilitatea de a se asocia i SharePoint, Excel i Outlook), ci si de la alte companii si dezvolsincroniza work item-uri din diferite TFS Team Collections sau tatori, spre exemplu ClearCase (IBM), GIT i Eclipse.
chiar servere de TFS.
Noi funcionaliti pot fi dobndite i prin instalarea suitei
Printre alte mbuntiri, care au fost aduse la instalarea

20

nr. 43/ianuarie 2016 | www.todaysoftmag.ro

1 https://visualstudio.uservoice.com

TODAY SOFTWARE MAGAZINE


Microsoft Test Manager, un client de TFS separat, ce i permite
s faci testare software, dndu-i posibilitatea de a planifica i
executa teste i de a administra att mediile de testare fizice ct
i cele virtuale.
Microsoft a introdus Team Foundation Server Express i
VisualStudioOnline (cunoscut i sub numele de Team Foundation
Service, o versiune de TFS n cloud). TFS Express este o soluie
optimal pentru studenti, dezvoltatori independeni i echipe
mici de pn la cinci developer-i. Versiunea de TFS Express este
gratuit i poate fi instalat pe PC-ul personal fr a fi necesar
crearea unui server specializat. Dac se consider mai apoi c se
dorete un upgrade la o versiune comercial de TFS, se poate realiza acest lucru cu uurin i fr a pierde datele i istoria aferent
elementelor din version control. Dac nu eti convins c TFS ar
putea reprezenta o soluie viabil pentru echipa ta i nu vrei s
investesti bani ntr-un mediu de testare, Visual Studio Express
sau varianta n cloud, VisualStudioOnline (de asemenea gratuit
pentru studeni i echipe de pn la 5 dezvoltatori) reprezint un
punct de pornire solid, fr a crete costurile.

De ce s-ar gndi cineva s foloseasc funcionalitile oferite de TFS


i pentru echipe de non-dezvoltatori?
Rspunsul este simplu: ncepnd cu TFS 2015 Microsoft
a introdus o schimbare major n sistemul de liceniere pentru Visual Studio online i TFS prin adugarea licenei de tip
Stakeholder. Aceast licen poate fi acordat n mod gratuit unui
numr nelimitat de utilizatori; acetia vor putea crea i edita elementele de lucru, vedea dashboard-urile i Kanban board-urile.
Potrivit MS scopul acestei licene este de a facilita comunicarea n cadrul proiectului i de a permite ntregii organizaii de a
participa activ la dezvoltarea proiectelor. Prin aceasta Microsoft
pune bazele unui nou nceput si redirecioneaz accentul pe dezvoltarea scenariilor diverse de utilizare a TFS-ului.
Partea a doua a articolului va fi publicat n numrul 44 /
februarie al Today Software Magazine

Beneficiile lucrului cu TFS pentru nondezvoltatori


Asa cum sugereaz titlul acestui articol, scopul nu este doar
acela de a prezenta funcionalitile TFS doar pentru software
developers, ci i de a descrie scenarii de utilizare a TFS-ului n
care i echipe de nondezvoltatori ar putea beneficia de pe urma
acestei platforme.
Desigur c Siemens, pe lng alte domenii de activitate, se
ocup i de dezvoltarea de aplicaii pentru produsele proprii n
acest scop folosete mai multe platforme, printer care i TFS
dar aceasta nu schimb faptul c aceia care se ocup de dezvoltare
i testare nu sunt i utlizatori finali. Pe lng acetia mai exist i
alte echipe care sunt implicate mai mult sau mai puin n procesele aferente unui proiect de dezvoltare. Exist numeroase alte
echipe ce interacioneaz frecvent att cu dezvoltatorii ct i cu
utilizatorii: printre acetia se numr trainer-i, project manager-i,
configuration manager-I i echipele de suport tehnic.

Corporate Technology Romania

www.todaysoftmag.ro | nr. 43/ianuarie 2016

21

marketing

Marketing prin fereastra digital.


O privire larg asupra lui 2016
Viaa este privit cu mult mai mult
succes printr-o singur fereastr, la
urma urmei. (F. Scott Fitzgerald, Marele
Gatsby)

nceputul anului m-a gsit cufundat n nite probleme de marketing care m-au tot
preocupat de ceva timp. Dintre acestea, marketingul digital se distinge drept cea
mai bulversant. n lumea marketingului de azi, cu tot ce cuprinde ea, de la cursuri,
joburi i strategii la agenii de marketing digital, raportul dintre marketingul digital i
cel tradiional genereaz controverse i dezbateri intense.

Sorina Mone
sorina.mone@fortech.ro
Marketing manager
@Fortech

22

nr. 43/2016, www.todaysoftmag.ro

Oare nspre aceasta se ndreapt marketingul? Am ntrebat pe Google. O scurt


privire pe Google Trends indic un interes
n scdere fa de termenul marketing pe
web. n acelai timp, online marketing
apare primul n cele mai multe cutri
legate de el, depind chiar i pe marketing jobs. Iar vedetele n ascensiune sunt
facebook marketing, social media marketing i google marketing.
Chiar dac nu sunt un fan al specializrii profunde, cred n puterea dezvoltrii
unui know-how solid ntr-un domeniu
pentru a stimula n mod corect potenialul
su, dac este potrivit n acea situaie.
Deci, digital / online / social media sau
orice alt specializare sau segment n
marketing este n regul, atta timp ct
face parte dintr-o abordare de marketing
comprehensiv i original. Nu este acel
marketing.
Marketingul nu ar trebui s fie condus nici de instrumente, nici orientat spre
canal. El ar trebui s se concentreze mai

nti pe client: s i cunoti n mod intim


clienii (problemele pe care le au, lucrurile care i intereseaz, obiceiurile lor),
s i modelezi marketingul n funcie de
aceasta (mesaje, canale, sincronizare, etc.),
s msori i s caui s aduci mbuntiri
n mod constant.
Problema este c tocmai aceste aspecte
au tendina de a fi ignorate sau uitate. Nu
odat am vzut i am experimentat personal modalitatea cea mai grea de a
nva- produse care au fost dezvoltate
neavnd un segment clar de clieni sau o
propunere de valoare clar, ceea ce imediat duce la ceva ce nu are nicio relevan
comercial. i totui, ei promoveaz o
pagin de Facebook care contorizeaz
like-urile de la prieteni i ali oameni despre care nu tim prea multe. Asemenea
eforturi sunt precum aruncarea undiei
n ru, spernd c nite peti vor muca.
S-ar putea (probabil) s fie mai puin costisitor, mai msurabil s-ar putea chiar s
i funcioneze, dar cu siguran nu v va

TODAY SOFTWARE MAGAZINE


aduce maximul pe care l putei obine
acolo.
Drept o dovad din viaa real, v
recomand aceast prezentare1 fcut de
expertul n branding, Mark Ritson. El
compar impactul celebrei reclame Oreo
pe Twitter care a acaparat atenia n ediia
2013 a Super Bowl cu reclama Tv pentru
Budwiser. Pretins a fi chiar cea mai bun
reclam de la Super Bowl, raza de aciune
a acesteia a fost calculat la doar 64.300,
ceea ce ar explica generos aproximativ
0.02% din cota de pia a Oreo n Statele
Unite. Bineneles, ceea ce Ritson ignor
este impactul generat de PR, care ar trebui
adugat la aceasta, dar, n cele din urm,
comparaia per ansamblu este mai mult
dect pertinent.
Nu putem ignora adopia n cretere a
dispozitivelor mobile, accesul mbuntit
la Internet i transformrile clienilor asociate acestor tendine. Nu putem ignora
nici valoarea extraordinar a tehnologiei
n marketing, dezvoltat complet n Adobe
Marketing Cloud, de exemplu.
La urma urmei, nimeni nu a devenit celebru prezicnd c lucrurile vor
rmne aproape la fel, pentru a-l cita pe
Bob Hoffman2, Ad Contrarian. Dar anumite lucruri se schimb ntr-un ritm mai
rapid (ex. tehnologia), pe cnd cu altele
avem numai iluzia schimbrii (ex. schimbrile n noi, ca fiine umane). Genevieve
Bell3, antropologul principal al Intel, argumenteaz c tehnologia rspunde naturii
umane fr a o modifica. Acesta este un
1 https://www.youtube.com/watch?v=MCAEbirIByc&
feature=youtu.be&t=207
2 http://adcontrarian.blogspot.ro
3 https://vimeo.com/108354478

punct interesant de remarcat, deoarece


reclamele bune fac apel la noi drept
clieni, n timp ce reclamele extraordinare
fac apel la noi drept fiine umane, dup
cum concluzioneaz acelai Bob Hoffman.
Exist ntotdeauna scenarii ale
clienilor care transcend o publicitate bine
definit, o achiziie sau o interaciune de
consum, iar acestea sunt compuse din
numeroase puncte de contact online i
offline. Este rolul marketingului s conceap experiena consumatorului cu
produsul, serviciul sau marca, pe tot parcursul acestor punte de contact.
Dac Slack, o afacere B2B de Internet
n totalitate a preluat mai multe orae
mari din Statele Unite, cu curcubee, pui de
pisic, ponei i baloane n campania sa n
aer liber Euphoria4 i tocmai a lansat pe
pia reclama TV Animale5, atunci online
i toate lucrurile digitale s-ar putea s nu
fie suficient pentru a ctiga o Parte din
Minte, Inim i Portofel.
Aadar, dup cum prezice Ritson, s
permitem lui 2016 s fie anul integrrii.
i anul n care noi ne ntoarcem la baza
segmentrii stabilirea obiectivelor
poziionare, persoanele cumprtoare,
amestecul de marketing i restul strategiei i tacticilor de marketing, tradiionale
sau digitale. Haidei s le vedem drept
buzzwords (cuvinte la mod) care
nu devin niciodat demodate, de cnd
American Marketing Association a nceput s le popularizeze n anii 1950.
Exist imaginea de ansamblu la temelia

voastr? Facei-v timp pentru a v ntreba


dac fereastra prin care privii este cea
mai potrivit pentru marketingul vostru,
afacerea voastr, cariera voastr, sau pentru orice context n care s-ar putea s v
aflai.
Deci, Nick, s-ar putea ca lumea s
aib nevoie de civa oameni echilibrai,
aceia care sunt cei mai limitai dintre toi
specialitii. i ei au, de asemenea, o singur
fereastr, doar c fereastra lor este una cu
o privelite mai ampl. (F. Scott Fitzgerald,
Marele Gatsby)

4 h t t p : / / w w w . a d w e e k . c o m / n e w s /
advertising-branding/slack-just-took-over-4-cities-its-first-bigextremely-bubbly-ad-campaign-168349
5 https://www.youtube.com/watch?v=x6sSa5NpqUI

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

www.todaysoftmag.ro | nr. 43/ianuarie 2016

23

programare

management

Flexibilitate strategic n timpul


incertitudinii

n ciuda volatilitii economice i de business, a incertitudinii rezultatelor i a gradului mare de risc al investiiilor, este posibil s existe oare un potenial al acestei
incertitudini care rmne neexploatat? n aceste condiii se pune problema dac
putem evalua acel potenial i justifica investiia, bazndu-ne exclusiv pe metodele
tradiionale de evaluare, care examineaz doar informaiile deinute la momentul evalurii (ex. Recuperarea investiiilor ROI, Valoare Actualizat Neta - NPV)?

Paul Alexandru Tofan


Paul.Tofan@isdc.eu
Project manager
@ISDC

Standarde fixe
Incertitudinea este o prezen constant n lumea IT. Aceast incertitudine
apare din mai multe surse: imaturitatea,
complexitatea i natura imprevizibil
a tehnologiilor, gradul ridicat de integrare a tehnologiilor n cadrul i n afara
organizaiilor, presiunea accelerat exercitat asupra domeniului IT pentru produse
inovatoare i servicii orientate ctre o pia
cu o atractivitate dificil de prognozat . n
ciuda acestei realiti, metodele de evaluare tradiionale descurajeaz investiiile
fcute sub semnul acestei incertitudini
innd cont doar de informaiile prezente
la momentul evalurii.
n urma evalurii cu aceste metode,
decidenii sunt pui n faa unor proiecii
de venituri cu valori mici sau rate de actualizare mari, iar rspunsul lor la presiunea
de a investi care vine din pia este s
completeze lipsa de atractivitate a analizei NPV cu argumente calitative, cum ar
fi importana strategic sau prezena n

24

nr. 43/2016, www.todaysoftmag.ro

pia. De cele mai multe ori li se cere s


ia o decizie de tipul totul-sau-nimic pe
baza informaiilor curente, dei ei ar prefera s exercite o mai mare flexibilitate n
procesul decizional pe msur ce contextul evolueaz. Un scenariu similar poate
fi gsit de exemplu n jocul de poker: presupunnd c suma obligatorie nainte ca
mna s nceap este de 1 $, iar pariurile
se fac cu valori intre 1 i 10 $, ct de exact
poi prezice chiar nainte ca prima carte s
fie anunat, care e suma plasat la pariul
final?

Gndirea tip structur de opiuni


Acest tip de gndire propune o structur al crei scop este s poziioneze luarea
deciziilor n ultimul moment responsabil
cu maximul de informaie. La fel ca i tehnicile de tip Valoare-Actualizat-Neta(NPV)
sau Flux-Monetar-Actualizat(DCF) acest
tip de gndire i are originea n lumea
financiar i se bazeaz pe teoria preurilor
opiunilor i analiza de tip opiuni real.

TODAY SOFTWARE MAGAZINE

n principiu, acest tip de evaluare complementeaz metodele oferind mijloacele


necesare pentru a captura potenialul pozitiv pe care incertitudinea i flexibilitatea
procesului decizional l poate oferi.
Analiza de opiuni reale este cu
adevrat valoroas atunci cnd exist
incertitudine ridicat referitoare la valoarea activelor vizate, managementul are un
grad mare de flexibilitate n procesul de
decizie de-a lungul proiectului i este dispus s plteasc construcia i exercitarea
unor opiuni care s conin riscul dat de
incertitudine. Este o soluie la ndemn
atunci cnd metodele de evaluare statice
furnizeaz valori pozitive mici sau chiar
uor negative. Totui, aplicarea acestei
metode nu se justific atunci cnd avem
de-a face cu valori negative mari rezultate n urma evalurilor tradiionale de tip
NPV.
Prin definiie o opiune de tip real
reprezint dreptul, nu obligaia, de a ntreprinde o aciune (de cumprare, vnzare,
abandon, amnare) asupra unui activ
nefinanciar, cu un cost predeterminat i
pn la o dat predeterminat. Costul
opiunii reprezint preul pltit pentru a
achiziiona, crea i menine opiunea n
perioada supus incertitudinii.
Valoarea unei opiuni vine din flexibilitatea oferit n privina deciziei de a

exercita opiunea la un moment ulterior n


funcie de condiiile viitoare. Aceast flexibilitate nseamn c deintorii opiunii
pot beneficia de potenialele ctiguri ale
investiiei i n acelai timp s-i limiteze pierderile la costul de achiziionare
a opiunii n caz c investiia nu devine
rentabil. Pentru c incertitudinea crete
potenialul pozitiv al rezultatelor dar nu
i pe cel negativ (limitat la zero), rezultatul este c o incertitudine mai mare crete
valoarea pus pe flexibilitate i implicit
valoarea deinerii opiunii.
S presupunem c o firm preia un
proiect major de implementare a unui sistem de trading de ultim generaie. Firma
alege s porneasc n prim faz cu implementarea unui prototip i apoi n funcie
de rezultatul prototipului va decide demararea proiectului pe scar larg. n acest
caz putem asimila costul de implementare
a prototipului cu costul de achiziionare a
opiunii pentru a demara ntreg proiectul.
Managementul poate influena procesul de creare a valorii prin adoptarea unei
strategii sistematice ce se concentreaz pe
a repoziiona componentele obligatorii n
componente opionale.
Pentru o abordare optim a modului de gndire tip structur de opiuni se
recomand:
Recunoaterea oportunitilor i
structurarea lor ca opiuni;
Evaluarea valorii opiunilor
(valoare de achiziie, timp de expirare);
Managementul proiectului, astfel
nct opiunile s poat fi onorate.
Tipuri de opiuni:
Etapa presupune mprirea
proiectului n mai multe etape unde
urmrirea fiecreia este dependent de
reevaluarea costurilor i beneficiilor la
momentul n care etapa precedent este
finalizat, permind astfel selectarea
celor cu potenial pozitiv;
Abandon odat cu evoluia proiectului i evidenierea costurilor i

beneficiilor, se poate decide pentru terminarea proiectului dac beneficiile nu


justific costurile;
Amnare atunci cnd este posibil ntrzierea deciziei de a investi fr
a pune n pericol potenialele beneficii;
Cretere dac investiia iniial
deschide noi oportuniti pentru
investiii ulterioare;
Schimbare referitor la creterea/
scderea volumului de resurse alocate
pentru proiect sau a capacitilor sistemului operaional rezultat din proiect;
Trecere de la un tip de tehnologie
la altul.
Evaluarea opiunilor
Cele mai frecvente modaliti de calcul a opiunilor sunt bazate pe conceptul
popularizat cu denumirea de Black-Scholes.
Pentru o explicaie simplificat, s
presupunem scenariul unei investiii n
care avem opiunea de a investi i pentru care opiunea expir n termen de 1
an. Considernd c posibilele rezultate
ale investiiei reprezentate n tabelul de
mai jos sunt: zero (A), 26$(B), 100$(C) i
multiplicnd fiecare posibil rezultat cu probabilitatea ca el s fie obinut, vom obine
valoarea fiecrei posibiliti. Prin suma
acestor valori ajungem la 33 ca valoare viitoare a opiunii (n termen de 1 an).
Presupunnd o depunere de 100$ i
o dobnd bancar de 10%, care ne va

ntoarce 110 $ la finalul fiecrui an, putem


calcula uor ce valoare trebuie s depunem
n prezent la banc pentru a rezulta 33$
peste un an. Astfel ajungem la concluzia c
valoarea maxim curent a opiunii este de
30$, iar peste aceast valoare investiia are
o rentabilitate mai mic dect un depozit
bancar.
Trebuie remarcat c rezultatul evalurii unei opiuni este la fel de bun ca i
acurateea dat de calculul probabilitilor
i presupune o atitudine neutr la risc, fr
a face diferenierea ntre un ctig sigur
(ex. titlu de stat sau dobnd bancar) i
un ctig cu o doz de risc.

Managementul opiunilor n proiecte


Dei cuantificarea valorii fiecrei
www.todaysoftmag.ro | nr. 43/ianuarie 2016

25

management

Flexibilitate strategic n timpul incertitudinii

opiuni din proiect este dezirabil, valoarea adugat dat de acest


tip de abordare const n procesul de gndire i management
care ar trebui s aib ca scop ca valoarea creat prin structura de
opiuni s poat fi extras. Astfel pentru opiunea deinut la un
anumit moment n timp (dar nu mai trziu de data de expirare)
se va compara valoarea estimat pentru opiunea de a merge mai
departe cu costurile revizuite la data curent i se va proceda mai
departe dac costurile sunt acoperite.
Dei n principiu diversele tipuri de opiuni care pot fi
obinute ca structur n proiect sunt egale ca valoare, n realitate unele sunt preferate n pofida altora. Opiunile de cretere
i schimbare sunt printre cele mai frecvente n firme, iar cea de
abandon e printre cea mai puin utilizat. O posibil explicaie
poate fi faptul c managementul gsete opiunile pozitive mai
uor de pus n practic i justificat dect cele negative.
n abordarea unor proiecte de tip risc mare recompens
mare, se recomand:
Structurarea riscurilor sub form de opiuni;
Schimbarea percepiei clientului din trebuie s fie n poate
fi, unde acel poate va fi reevaluat peste o perioad de timp fix
i pe baza unui set concret de criterii;
Identificarea factorilor care genereaz incertitudine i
organizarea unei structuri dedicate de monitorizare;
Construcia n etape care genereaz valoare proprie indiferent dac se continu sau nu cu etape ulterioare;
Setarea de puncte de control explicite;
Nominalizarea unui responsabil pentru calitatea deciziilor i pentru a evita continuarea proiectului din simpl inerie.

Aplicabilitate
Analiza de tip opiuni reale nu este aplicabil n contexte inflexibile n care scopul este fix, obligatoriu.
n contexte unde nu se tolereaz incertitudinea sau dac
consecinele incertitudinii pot fi ignorate, metodele tradiionale
de evaluare a proiectelor par s fie suficiente.
Proiectele strategice complexe, cu un grad de inovaie ridicat
i care tind s aib un grad mare de incertitudine pe o perioad
lung de timp, dau o valoare crescut acestui tip de gndire/
analiz, de aceea se recomand utilizarea lui ca instrument n
managementul unor astfel de iniiative.

26

nr. 43/ianuarie 2016 | www.todaysoftmag.ro

programare

programare

Logica Fuzzy i mecanismele specifice.


O introducere teoretic

As complexity rises, precise statements


lose meaning and meaningful statements
lose precision. - Lotfi A. Zadeh

roiectarea mecanismelor tehnice ce pot reproduce o funcionalitate a corpului


uman a fost una dintre preocuprile frecvente care l-a frmntat pe om de-a lungul
evoluiei sale. Rspunsul la ntrebarea De ce? este unul destul de evident, ce se poate
sumariza la urmtorul aspect: uurarea ori mbuntirea activitilor pe care le desfoar
omul.
Bogdan Mursa
mursa.bogdan@yardi.com
Software Developer
@ Yardi

ncepnd de la simpla roat care a aprut


odat cu necesitatea transportului de materiale mult prea grele pentru un om pn la
sistemul optic ce formeaz un binoclu, care
faciliteaz vizualizarea de obiecte aflate la o
distan mult prea mare, astfel de mecanisme
au ajutat la o evoluie rapid a tuturor domeniilor.
ncetul cu ncetul soluia tehnic ce
poate efectua procesri similare creierului
uman a devenit o necesitate, odat cu aceast
evoluie rapid din majoritatea domeniilor.
Capacitatea intelectual a oamenilor nu mai
fcea fa ori era mult prea costisitoare pentru a putea fi folosit n mecanisme manuale.
Astfel apariia calculatorului modern, ce
reprezint transpunerea ntr-un sistem
mecanic a creierului uman, marcheaz nceputul unei noi ere, unde procesri de nalt
performan devin posibile.
Modul n care calculatorul interpreteaz
datele se bazeaz pe o logic tradiional i
anume logica binar. La un moment dat,

orice decizie luat de aceast unealt creat


de om se va rezuma la un rspuns 0 sau 1 sau,
natural vorbind, adevrat sau fals. Pn nu
demult acest lucru mulumea toate nevoile
domeniilor ce foloseau puterea de procesare
a calculatoarelor, ns expansiunea rapid a
nivelului calitii i preciziei care se dorete
n luarea de decizii a nceput s nu mai fie
satisfcut de acest mod tradiional de a procesa datele.
Necesitatea folosirii unei logici care s fie
mult apropiat de raionamentul creierului
uman, a fost demult semnalat de profesorul
Lotfi A. Zadeh (1965). Din pcate, precum
marelui Einstein i-au fost respinse teoriile de
muli fizicieni ai momentului i acum aceste
teorii reprezint bazele fizicii moderne,
aa i teoria profesorului Zadeh, intitulat
Fuzzy Logic, a fost respins de majoritatea
oamenilor de tiin din acel moment; abia
dup muli ani comunitatea tiinific i-a
neles adevrata putere. Acum teoria reprezint una din bazele Inteligenei Artificiale

www.todaysoftmag.ro | nr. 43/ianuarie, 2016

27

programare
Logica Fuzzy i mecanismele specifice. O introducere teoretic
moderne i este folosit n sisteme fuzzy aflate n: automobile,
mecanisme de securitate, aparate medicale, mecanisme decisionale (marketing, business etc.), aparate foto etc. .
Noi ca oameni folosim aa numita logic fuzzy zi de zi, fr s
avem nici cea mai mic idee, pentru c mintea uman este construit natural s gndeasc ntr-o manier fuzzy. Un exemplu
simplu poate fi reprezentat de rspunsurile posibile la ntrebarea
Ct de satisfcut eti de Universitatea Babe-Bolyai?: Destul
de satisfcut, Nu sunt satisfcut, Foarte satisfcut, care sunt
rspunsuri ce pot fi considerate ambigue sau fuzzy, folosind termenii prezentai deja. Pentru c raionamentul uman este fcut s
lucreze aa, pentru noi oamenii este foarte simplu s interpretm
aceste tipuri de rspunsuri, folosindu-ne de experiena acumulat
deja sau de diferite metrici. ns cnd vine vorba de maini controlate de un calculator ce folosete logica binar, acest lucru nu
mai este posibil. Pentru c acestea neleg doar valori ca 0 i 1, sau
rspunsuri ca satisfcut, nesatisfcut.
n termenii logicii fuzzy, aceste seturi de date ce pot fi interpretate de orice main ntr-un sistem binar se numesc crisp data.
Pentru a parcurge i cteva noiuni mai practice, vom folosi
un exemplu destul de interesant ca s vedem cum se vor comporta
logica fuzzy i cea tradiional. n acest exemplu dorim s crem
conceptual un sistem de self-driving car de pe un automobil
care s fie capabil s ia cele mai bune decizii n momentul n care
o alt main se afl la o anumit distan de automobilul nostru.
Conform metodei tradiionale, sistemul nostru va putea lua
doar dou decizii: aproape i departe. Folosindu-ne de Figura 1.
ne putem imagina distana ntre maini ca fiind mprit n dou
jumti egale, fiecare avnd drept corespondent direct una din
cele dou decizii. n acest context, faptul c putem lua n considerare doar aceste dou decizii trase n urma analizei distanei
ntre maini duce la msuri direct proporionale. Voi formula
aceste decizii sub forma unor reguli de forma dac-atunci (dac
o condiie atunci o consecin).

28

nr. 43/ianuarie 2016 | www.todaysoftmag.ro

Dac maina B este aproape atunci frneaz.


Dac maina B este departe atunci nu frna.

Dac presupunem c maina noastr va avea mereu o vitez


mai mare dect maina B i inem cont de regulile de mai sus,
atunci de fiecare dat cnd distana dintre maini va fi undeva
n intervalul semnalat ca aproape, sistemul self-driving va frna
brusc, indiferent de ct de aproape sunt mainile. Odat ce
distana dintre maini se va situa n intervalul departe, maina
noastr va reporni i i va continua drumul pn cnd iari va fi
oprit brusc, n momentul n care distana va ajunge n intervalul
aproape.

Abordarea pe care o propune logica fuzzy este una care
spune c rspunsul este mereu undeva ntre 0 i 1 (inclusiv acestea). Deci reprezentarea distanei dintre cele dou autovehicule va
fi mai mult un gradient aa cum este afiat n Figura 2.

Astfel putem obine seturi de reguli de forma celor de mai sus,


punnd ntrebri ct mai naturale:
Maina B este aproape ?

Rspuns: 0.2 (nu foarte aproape).
Dac maina B este 0.2 de aproape atunci frneaz 0.2 (nu
foarte tare).

Rspuns: 0.8 (destul de aproape).
Dac maina B este 0.8 de aproape atunci frneaz 0.8 (destul
de tare).

programare
Exemplul de mai sus ofer ca rspuns la ntrebare un numr
ce se afl n intervalul [0,1]. Acest numr este de fapt un numr
fuzzy ce are n calitate de corespondent un set fuzzy cruia i
poate fi asociat (n acest caz setul nu foarte aproape).

ntr-un caz real, un mecanism de self-driving car ce
ar implementa o logic fuzzy conform exemplului de mai sus,
ar respecta comportamentul omenesc mult mai bine, maina
conducndu-se cu adaptri ale vitezei n funcie de distana ntre
maini, fr a pune frne brute.


Cu siguran acest exemplu v-a fcut un pic curioi n
legtur cu algoritmul propriu-zis ce este implementat ntr-un
astfel de sistem fuzzy. Aceast implementare este una foarte natural de asemenea, dei mai este presrat pe alocuri cu diferite
noiuni specifice; partea bun este c acestea sunt sugestive.

Un controler fuzzy sau un mecanism fuzzy nu este altceva dect o main ce folosete logica fuzzy. Acest controler
poate s fie un sistem hardware sau software, sau amndou,
scopul lui final fiind s aplice logica fuzzy n aa fel nct s
interpreteze datele aa cum ar face-o un om, doar c mult mai
rapid.
Flow-ul unui astfel de mecanism este reprezentat prin urmtorii pai:
1. Primirea unui numr de msurtori oferite de un alt
sistem (n exemplul de mai sus, ar fi un senzor care ar msura
distana ntre cele dou maini).
E.g: 4 m, 5 m etc.
2. S nu uitm c sistemul nostru poate procesa doar
seturi de date fuzzy. Deci datele primite n pasul anterior trebuie
transformate din date crisp n date fuzzy. Aceste transformri se
fac conform unor metrici stabilite de un expert n domeniul de
aplicabilitate.
E.g: 4 m reprezint o valoare de 0.3 de aproape.
3. Setul de date fuzzy rezultat este folosit ca input n
regulile fuzzy de tipul dac-atunci, ce au drept rezultat (sau
consecin) un alt set de date fuzzy.
E.g: Dac maina B este 0.3 m aproape atunci apas frna 0.3
(nu foarte tare)
4. n ultimul pas aceast consecin fuzzy trebuie tranformat n date crisp pentru ca sistemele ce citesc output-ul din
controler-ul fuzzy s poat lua msuri.
E.g: 0.3 frn poate reprezenta o reducere de vitez de 30%
fa de vitez actual.

TODAY SOFTWARE MAGAZINE



Din pcate detaliile despre arhitectura propriu-zis a unui
astfel de sistem ce folosete flow-ul de mai sus, s-ar ncadra ntro alt discuie. ns sper c aspectele teoretice prezentate de-a
lungul articolului au fost destul de clare i au oferit o sumarizare
complet a conceptului din spatele logicii fuzzy i a sistemelor ce
o implementeaz.

V recomand s continuai s descoperii aplicaiile practice
ale acestor sisteme cefolosesc modul de gndire propus de profesorul Zadeh. Beneficiile aduse pot fi unele extraordinar de mari,
i pot aduce un aport de calitate i precizie oricrui proiect pe
care l desfurai.

www.todaysoftmag.ro | nr. 43/ianuarie 2016

29

programare

Roku

R
Thomas Morris
thomas.morris@3pillarglobal.com
Roku & Python Software Developer
@3Pillar Global

30

nr. 43/2016, www.todaysoftmag.ro

oku a erupt n aceti ultimi civa ani. ncepnd ca un startup modest n 2002
i ludndu-se acum cu peste 10 milioane de utilizatori, Roku este cel mai mare
juctor de pe piaa dispozitivelor de streaming pentru home media, vnznd
37% din toate dispozitivele de streaming anul trecut. Cel mai apropiat competitor este
Chromecast, cu 19%. Deci, chiar dac acest startup a reuit s se strecoare printre
goliai precum Apple sau Google pe piaa home media, a fcut acest lucru cu destul de
mult succes.

Roku
n caz c nu ai mai auzit de Roku pn
acum, este o cutiu mic, nu scump (de
obicei sub 100 $), pe care o putei conecta
la televizorul vostru pentru a reda n flux
videouri de pe diferite canale sau aplicaii.
Sarcina unui dezvoltator Roku este s programeze un canal pe care utilizatorul s l
poat deschide i de pe care s poat reda
n flux materiale video pe televizor. Astfel
c, dac cineva valorific, s spunem, un
canal Youtube, el sau ea va face o aplicaie
prin care utilizatorii pot cuta i viziona
coninut Youtube pe al lor Roku.
Cnd ncepei s programai, vei
realiza rapid c Roku, de fapt, nu are un
simulator despre care s vorbim orice
cod pe care l scriei i dorii s l testai
trebuie ncrcat pe un dispozitiv Roku
real i apoi rulat pe aparat pentru a face
debugging-ul. Dac ai avut o zi grea la
munc i mai trebuie s lucrai i acas
la ceva, pregtii-v s luai dispozitivul
acas cu voi i s l conectai la un televizor de rezerv pe care s sperm c l avei
prin preajm. Debugging-ul se face prin

plasarea comenzilor stop de-a lungul


codului pentru a stabili punctele de ntrerupere, apoi crearea unei sesiuni telnet pe
dispozitivul Roku i trecerea la comenzi
text n terminal. Este dureros, dac suntei
obinuii cu o interfa de devirusare GUI,
dar n mod cert se poate face.
Unul din lucrurile i mai interesante
este c, n loc s adopte un limbaj existent,
aa cum Android a fcut cu Java, echipa
Roku a decis s mearg pe contraintuitiv i s fac mecanismul s funcioneze
cu propriul su limbaj de codare patentat
Brightscript.
Acum, la o prim vedere, aceasta pare
a fi greeala tipic pe care o fac toi inginerii antreprenori atunci cnd creeaz un
nou produs dect s utilizeze ceva ce
exist deja i s-a dovedit c funcioneaz,
ei reinventeaz roata deoarece asta iubesc
ei s fac. ntre timp, acest fapt are tendina
de a cauza tot felul de probleme minore.
i, credei-m, Brightscript are destule
din acestea. De la omiterea observaiilor
cnd efectueaz operaiile logice la introducerea unei multitudini de idiosincrasii,

TODAY SOFTWARE MAGAZINE


dezvoltarea unui limbaj de programare nou nou este de fapt mult
mai complex dect pare la nceput.
Dar odat ce trecem peste tot oftatul exasperat i rotirea ochilor peste cap i peste of, tipic-urile pe care le manifestm cu toii
atunci cnd o companie face nc un limbaj patentat, vom putea
observa c exist de fapt destule motive pentru care Roku a fcut
asta. Pentru nceput, ei nu mai trebuie s se ngrijoreze n legtur
cu apariia unei noi versiuni a limbajului i cu necesitatea de a-i
face upgrade la biblioteci n mod constant pentru a ine pasul.
Ei au controlul deplin i total asupra modului n care limbajul
interacioneaz cu software-ul lor. Brightscript triete sau moare
dup placul Roku.

Lucrul cu Brightscript
n ceea ce privete lucrul efectiv cu acest limbaj, una din
caracteristicile cele mai grozave ale Brightscript este dimensiunea
sa. Acest limbaj este foarte mic. ntreaga baz a codului const
n numai aproximativ 90 de tipuri de clase. Aceasta nseamn c
dac eti un Rokui-ist nou, este simplu s te deprinzi cu sforile i
s poi pune laolalt ceva cod uor care funcioneaz mai mult
sau mai puin.
Cel mai interesant lucru este c Brightscript nu i permite s
i formezi layout-ul pentru ecranele din aplicaia ta. Da, chiar aa.
Roku nu i ofer control asupra locului unde s apar elementele
de pe ecran sau cum s arate UI-ul tu. Alegi unul dintre cele
10 modele pe care Brightscript i le ofer i i treci informaiile
pe el. De acolo, programul dispune i aaz totul dup cum tie,
indiferent dac ie i place sau nu.
ntr-un fel, exist ceva eliberator n legtur cu asta. Scrierea
unei aplicaii devine super-uoar, cci tot ce ai de fcut este s
scrii ceva de genul:
poster = CreateObject(roPosterScreen)
contents = [
{
Title: Show 1
Description: The hottest thing on TV
}
{
Title: Show 2
Description: The next hottest thing on TV
}
]
poster.SetContentList(contents)
poster.Show()

i ai deja o pagin care arat decent, cu dou elemente pe


ea, gata s funcioneze. Tot ce ine de stil va fi realizat conform
modelelor prestabilite ale roPosterScreen.
n acelai timp, acesta este i unul dintre lucrurile cele mai rele
ale Roku. Dac ai clieni care pun ntrebri de genul Este posibil s schimbm acel mic? obinuii-v s spunei Nu. i
obinuii-v s l spunei des, deoarece un lucru pe care Roku nu
l permite este personalizarea. De obicei, singurul aspect pe care
Roku v permite s l schimbai este culoarea de fundal i cteva
poziionri minore ale elementelor din bannerul din partea de sus
a ecranului. n afar de acestea, nu mai putei face nimic.
Orice altceva n plus pe lng propria culoare de fundal necesit dezvoltarea unei interfee utiliznd clasa roImageCanvas,
unde trebuie s specificai fiecare csu, obiect text i coordonat
a imaginii, lime i nlime. Apoi, dac dorii s adugai orice
form de animaie, va trebui s redai totul manual. Nu mai este
nevoie s spun, este nevoie de un efort srguincios pentru a-i
construi propria interfa personalizat, iar aceasta nu este ceva
ce s i doreti cu adevrat s faci, dect dac ai prea mult timp
la dispoziie.

Concluzie
n ciuda acestor aspecte, ceea ce este promitor n legtur
cu Roku este c industria dispozitivelor de streaming a nflorit n
ultima perioad. Un studiu al Parks Associates arat c numrul
locuinelor din US care posed un dispozitiv de streaming a crescut cu 63% de anul trecut, de la 13% la 21%. Acelai raport mai
prezice i faptul c companiile vor vinde pn la 86 milioane de
dispozitive de streaming n 2019. i dat fiind faptul c Roku deine
o mare parte din aceast industrie, exist o mare posibilitate ca
cererea de programatori Roku s cunoasc o cretere n urmtorii
doi ani.
Vznd ct de rapid a evoluat piaa dispozitivelor de streaming, a nva s programezi pentru vreunul devine din ce n ce
mai viabil. Dac poi tolera defectele platformei, popularitatea lui
Roku face ca nvarea lui s fie o opiune evident. Dei nc n
faza incipient, ascensiunea meteoric a Roku promite multe pe
viitor.

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. 43/ianuarie 2016

31

programare

De la Zero la RESTful n patru pai.


Design de API

cest articol este partea a doua dintr-o serie n care artm cum se pregtete,
planific i implementeaz un API RESTful. Dup ce am pus bazele n prima
parte, de data aceasta vom expune modul cum se face designul unui API, precum i sunt aspectele la care trebuie s fim ateni.

Georgiana Gligor
gb@tekkie.ro
Owner
@Tekkie Consulting

32

nr. 43/2016, www.todaysoftmag.ro

Pentru nceput, vom detalia semnificaiile concepte: vehicul i asigurare.


acronimului REST, precum i constrngeDificultatea explicrii termenului de
rile arhitecturale pe care acesta le impune resurs provine din faptul c aspecte parasupra sistemului.
ticulare de business pot dicta deviaii de la
cel mai intuitiv mod de reprezentare, fr
Ce este REST?
ca acest lucru s nlture validitatea.
Representational State Transfer este un
stil de arhitectur de aplicaie care, n loc
REST a fost descris n mod formal de
s impun decizii asupra tehnologiei, pre- Roy J. Fielding1 n teza sa de doctorat. El
fer s defineasc un set de constrngeri pleac de la un sistem care nu are delila care sistemul s adere. n felul acesta, mitri clare ntre componente, i aplic
detaliile de implementare se pot schimba incremental ** cinci constrngeri obligaulterior, dar cu condiia s se pstreze torii i una opional** asupra elementelor
avantajele care decurg din abordarea care compun arhitectura:
RESTful.
1. client-server: separarea aspectelor interfeei utilizator de stocarea datelor;
Concepte REST cheie
2. fr stare: pstrarea detaliilor
O resurs reprezint orice informaie despre sesiune strict la client, elibernd
care poate fi denumit. De obicei, acestea astfel serverul de povara managementusunt concepte din domeniul aplicaiei, lui sesiunilor, pentru a aduce scalabilitate,
indiferent c se refer la concepte con- siguran, i vizibilitate; Dezavantajul
crete (ex: persoane) sau la unele abstracte este c fiecare cerere va trebui s conin
(ex: fiiere). Un bun punct de pornire suficiente informaii nct s poat fi pron vizualizarea acestora pentru cei cesat corect.
familiarizai cu OOP este s foloseasc o
3. cache: datele care compun un
mapare unu-la-unu cu clasele ce compun rspuns trebuie s fie etichetate ca putnd
modelul domeniului. Deoarece noi construim o aplicaie de monitorizat datele
1 http://www.ics.uci.edu/~fielding/pubs/dissertation/
despre vehicule, putem exemplifica dou top.htm

testare

TODAY SOFTWARE MAGAZINE


Dac vom cere o reprezentare JSON a aceleai resurse
GET /calendar/123sample
Host example.dev
Accept: application/json

ea ar putea arta ca n exemplul de mai jos:


{

version: 2.0,
creator: {company: Tekkie Consulting, product: 123sample},
type: Gregorian,
language: English,
timezone: {
id: Europe/Bucharest
},
events: [{
id: 123456789@example.dev,
start: 2015-03-11T12:34:56.000Z,
end: 2015-03-11T12:59:59.000Z
}]
}

sau neputnd fi adugate n memoria cache.


4. interfa uniform ntre componente, aa cum e definit
de urmtoarele constrngeri secundare: identificarea resurselor,
manipularea resurselor prin intermediul reprezentrilor acestora, mesaje auto-descriptive; i hypermedia ca motor al strii
n continuarea acestei serii de articole vom ntrebuina JSON
aplicaiei (aka HATEOAS).
ca reprezentare implicit a resurselor noastre.
5. sistem stratificat: componenta poate s vad i s
interacioneze doar cu straturile din imediata sa apropiere; spre BDD n PHP
exemplu, clienii nu pot presupune c interacioneaz direct cu
Pentru a specifica felul n care se comport API-ul nostru,
sursa de date, deoarece pot comunica cu un nivel de cache.
ne dorim s folosim Behaviour Driven Development. n aceast
seciune vom introduce cteva concepte i instrumente care s ne
6. [opional] cod-la-cerere: funcionalitatea clientului ajute. Aceast pregtire ne va fi de mare folos atunci cnd vom
poate fi extins prin descrcarea i execuia de cod extern; aceasta scrie cerinele n forma scenariilor de utilizare.
nseamn c nu este necesar s se porneasc execuia n client
Sunt dou cuvinte cheie care apar de fiecare dat n discuiile
atunci cnd tot codul este disponibil, deoarece el poate fi obinut despre BDD n PHP. Cel mai popular este fr ndoial Behat2,
ulterior la cerere; imaginai-v cum este adugat funcionalitatea care folosete Gherkin3 pentru specificarea cerinelor n limprin injectarea de cod Javascript n browser.
baj apropiat de cel business. Cellalt este Codeception4, care
ntrebuineaz cod PHP uor de citit pentru a obine acelai lucru,
Reprezentarea este o parte a strii resursei care este trans- i care ofer n plus instrumente pentru a facilita scrierea tuturor
ferat ntre client i server. Se refer de obicei la starea curent a testelor n acelai mod (att cele de acceptan, funcionale, ct i
resursei, dar poate indica i starea dorit, ne putem gndi la acest testele unitare).
lucru ca la un dry-run atunci cnd se face cererea.
Dei nu constituie o constrngere n sine, mecanismele de
n trecut am folosit Behat destul de mult la proiectele mele
comunicare oferite de HTTP sunt alegerea celor mai muli dez- Symfony, aa c n mod natural am ncercat s merg pe calea cea
voltatori care implementeaz REST. i noi vom folosi HTTP n mai uoar i s il instalez folosind $ composer install behat/
acest proiect, iar verbele sale ne vor ajuta s definim operaiile behat. Am observat conflicte de pachete deoarece Behat dorea
care se efectueaz asupra resurselor noastre. n cele ce urmeaz, s foloseasc symfony/event-dispatcher ~2.1 iar eu aveam deja
vom folosi paradigma puternic a calendarului pentru a ilustra instalat 3.0.1. Aa c, n loc s ncerc s rezolv problema prin
uor diferena dintre resurs i reprezentarea acesteia, prin studi- impunerea unor cerine mai stricte asupra pachetelor, am decis
erea reprezentrii .ics n prima faz:
c e momentul potrivit s ncerc Codeception, mai ales c am
primit feedback extrem de clduros de la cei care l folosesc deja
GET /calendar/123sample
n munca lor de zi cu zi. Am lsat n urm frumoasele fiiere
Host example.dev
Accept: text/calendar
Gherkin numai bune pentru oamenii de business, am revenit la
100% PHP!
ar putea returna ceva similar cu:
Aadar, am instalat folosind metoda Composer care a
funcionat perfect din prima ncercare:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Tekkie Consulting//123sample//EN
CALSCALE:GREGORIAN
BEGIN:VTIMEZONE
TZID:Europe/Bucharest
END:VTIMEZONE
BEGIN:VEVENT
UID:123456789@example.dev
DTSTART;TZID=Z:20150311T123456
DTEND;TZID=Z:20150311T125959
END:VEVENT
END:VCALENDAR

$ composer install codeception/codeception

apoi am rulat comanda de bootstrap

$ vendor/bin/codecept bootstrap

Se observ un folder numit /tests/ n rdcina proiectului, care


a fost populat cu tot felul de bunturi.
Deoarece suntem n mediu de dezvoltare, pornim aplicaia
local folosind serverul PHP built-in:
2 http://docs.behat.org/en/v2.5/
3 http://docs.behat.org/en/v2.5/guides/1.gherkin.html
4 http://codeception.com

www.todaysoftmag.ro | nr. 43/ianuarie 2016

33

programare
De la Zero la RESTful n patru pai. Design de API
$ php -S localhost:12345 -t web

Cum facem design de API?

Aa cum am vzut n seciunea introductiv REST, un concept


i ne asigurm c acest URL este configurat corect n fiierul cheie n acest stil arhitectural sunt resursele, toate celelalte lucruri
tests/acceptance.suite.yml.
gravitnd n jurul lor. De aceea, recomand s trecem prin lista
n continuare, vom genera un test de acceptan simplu, conceptelor domeniului mai nti, pentru a identifica resursele
rulnd comanda:
noastre:
$ vendor/bin/codecept generate:cept acceptance Wel vehicul - conceptul principal, care descrie resursa princicome
pal a aplicaiei noastre;
Fiierul tests/acceptance/WelcomeCept.php nou creat
taxa de drum - are o dat de nceput i una de sfrit a
va conine un test simplu, menit doar s verifice ruta de status:
validitii i este asociat unui vehicul;
asigurare - un concept distinct, similar ca proprieti cu
$I = new AcceptanceTester($scenario);
$I->wantTo(check the status route);
taxa de drum;
$I->amOnPage(/);
verificare tehnic - nu poate exista fr a fi ataat unui
$I->see(Up and running.);
vehicul; are o dat de nceput i una de sfrit a validitii.
Iar rezultatele sunt ntr-adevr cele ateptate:
Acum c am clarificat care sunt resursele aplicaiei noastre, ce
$ vendor/bin/codecept run
Codeception PHP Testing Framework v2.1.5
operaii putem defini pe fiecare? Cu siguran, ne dorim s putem
Powered by PHPUnit 4.8.21 by Sebastian Bergmann and
crea, modifica i obine date despre vehicule. Apoi avem nevoie
contributors.
s adugm i obinem detalii despre taxa de drum, verificrile
Acceptance Tests (1) ----------------------------periodice, precum i despre asigurare.
Check the status route (WelcomeCept)
Ok
Toate operaiile de mai sus arat foarte asemntor cu cele
-----------------------------------------CRUD
(o parte din ele lipsesc din motive care in de domeniu).
Functional Tests (0) -------------------------------------------------------------------Aadar, definim lista complet de operaii CRUD pe o resurs de
tip vehicul:
Unit Tests (0) ------------------------------------------------------------------------- citirea informaiilor despre colecia de vehicule :
GET /vehicles;
Time: 214 ms, Memory: 11.25Mb
Dac nu exist elemente, vom primi status 200 OK i
OK (1 test, 1 assertion)
coninut [] .
Dac exist elemente n storage vom primi status 200
Testele de acceptan Codeception sunt de regul mai lente
OK i coninutul tuturor, ca de exemplu:
dect cele funcionale, deoarece este nevoie de un server web
[{ name: family car, make: Mazda, modpentru a rula testele. Din fericire, exist teste funcionale, care ne
el: 3, registration: AB10TKK, VIN: JMZBLA2F701213123, engine: 1999, emissions:
vor fi de mare folos n descrierea funcionalitii API-ului, aa c
175, registered: 2010-10-01T12:23:45Z }] .
le vom folosi pe acelea. Mai nti activm modulul Silex, adugndu-l n tests/functional.suite.yml:
Dac serverul a ntmpinat probleme la servirea request-ului, o eroare 500 Internal Server Error va fi expus.
Aceasta este eroarea final (catch-all) care se emite n cazul
class_name: FunctionalTester
modules:
n care serverul e de vin i nu poate fi oferit nici o opiune
enabled:
de recovery pentru client. Acest tip de eroare este aplicabil
- Silex:
app: app/bootstrap.php
tuturor operaiilor de mai jos, aadar nu o vom repeta.
- \Helper\Functional
Creare vehicul nou :
POST /vehicles/ ;

34

nr. 43/ianuarie 2016 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE


Coninutul request-ului va avea toate informaiile nece- s foloseasc versiunea n URL-ul de baz, ca GitHub7 care
sare despre main, spre exemplu
ntrebuineaz numrul versiunii, sau ca Twilio8 care folosete
data lansrii https://api.twilio.com/2010-04-01 ca punct de
{ name: family car, make: Mazda, model: 3, registration: AB10TKK, VIN: JMZpornire. WePay au i ei timestampul lansrii n URL9 pentru a
BLA2F701213123, engine: 1999, emissions:
diferenia versiunile ntre ele. Aproape toat lumea a ales ver175, registered: 2010-10-01T12:23:45Z }.
sionarea ntr-un fel sau altul, putei ncepe cu/v1/. Cel mai
La crearea cu succes a resursei, ne ateptm la un sta- mare avantaj al acestei abordri este posibilitatea de a avea un
tus 200 OK (unii recomand folosirea 201 Created), iar API foarte diferit n urmtoarea versiune. Cu toate acestea, e
coninutul va avea aceleai date ca i request-ul, plus ID-ul pe important s v ntrebai dac API-ul n sine e cel care va suferi
care l-a primit resursa n backend.
modificri, sau resursele sau reprezentrile acestora. Strategiile de
Dac a fost o problem cu request-ul pe care clientul o modificare a structurii sau operaiilor unei resurse non-versionate
poate rezolva (s zicem c VIN este obligatoriu i el nu a fost sunt puin mai complexe, de obicei se ofer noile date la un URI
transmis de ctre client) semnalm acest lucru prin emiterea diferit, i se marcheaz ca deprecated cel existent. Aa cum arat
unui cod de status 400 Bad Request i a coninutului care i Stefan Tilkov10, REST este mult mai mult dect unele abloane
descrie problema: { VIN: mandatory }.
URI i verbele din HTTP. Alegerea strategiei optime este foarte
Citire informaii despre un vehicul anume :
dependent de problema care trebuie rezolvat, i cu toii am
auzit exemple de sub- sau supra-inginerie a API-urilor.
GET /vehicles/{id};
Cnd ne construim URI-urile, trebuie s avem n vedere s
Dac vehiculul cu ID-ul dat exist, ne ateptm la un nu amestecm singularele i pluralurile. Aadar, nu vom expune
status 200 OK i la un coninut care s l descrie.
simultan/vehicles/{id} i /tax/{id} n aceeai aplicaie, vom alege
Dac nu exist date despre un vehicul cu acel ID, se va s folosim taxes n cel de-al doilea caz. Se recomand n general
emite statusul 404 Not Found i corpul rspunsului va fi gol. folosirea formei plural n detrimentul celei singulare.
Editare :
Deoarece URI-urile identific resurse, este considerat o bun
practic
folosirea n exclusivitatea a substantivelor n compunerea
PUT /vehicles/{id};
acestora i evitarea verbelor. Pentru a descrie aciunile care se pot
Dac vehiculul cu ID-ul dat exist, ne ateptm la un efectua asupra resursei, se folosesc verbele HTTP. Spre exemplu,
status 200 OK i la un coninut care s l descrie.
/vehicles/create ar trebui s fie de fapt un POST ctre /vehicles.
Dac a fost o problem cu request-ul pe care clientul o
Pentru mai multe exemple aplicate, recomand standarpoate rezolva, semnalm acest aspect prin emiterea codului dele Casei Albe care sunt foarte bine scrise11, ele coninnd
400 Bad Request i a unui coninut care s descrie problema: multe exemple concrete de ce anume este considerat ru i ce
bun. Sunt indicii bune i n tutorialul REST API12, dar reco{ VIN: mandatory }.
mand pruden la navigarea prin acest site, deoarece nu toate
tergere:
informaiile de acolo ader strict la principiile REST pe care le-am
prezentat la nceputul acestui articol.
DELETE /vehicles/{id};
Sfaturi chiar i mai detaliate privesc conveiile de numire i
Dac vehiculul cu ID-ul dat exist, acesta va fi eliminat folosirea snake-camel case13, att pentru URI-uri ct i pentru
din sistem i un cod 200 OK cu coninut gol va fi returnat.
structuri JSON. Asigurai-v c alegei unul i l utilizai peste tot.
Dac nu exist date despre un vehicul cu acel ID, se va
emite statusul 404 Not Found i corpul rspunsului va fi gol. Definirea comportamentului aplicaiei
Formatul de date din exemplul de mai sus este [conform
S trecem la pregtirea comportamentului pentru resursele de
standardului ISO 8601][iso-8601], pentru a folosi un format care tip vehicul prin definirea unor teste funcionale pentru acestea.
s conin timezone. Facebook a fost nevoit s schimbe n 2012 Vom folosi clase Cest14 deoarece ulterior ne vor ajuta la o aranjare
API-ul de evenimente5 din cauza unor aspecte legate de timezone. mai facil a testelor noastre. Cest-urile sunt clase simple care gruNu vom detalia mai mult operaiile ce pot fi efectuate asupra peaz funcionalitatea din Cept-uri ntr-o manier OOP, i ne vor
celorlalte tipuri de resurse, deoarece ele sunt similar celor deta- facilita gruparea testelor mpreun.
liate mai sus.
Generm primul nostru Cest folosind:

Pstrarea consistenei API-ului

Este important s oferim un API consistent, nu doar pentru


noi, ci i pentru terii care l consum. E foarte uor de explicat
folosind distincia ntre public i publicat pe care o face Martin
Fowler6. O dat ce un lucru este publicat, efectuarea de modificri
asupra sa necesit un proces complex de analiz a funcionalitii
existente, oferirea celei noi la alt URI, lucruri care iau mai mult
timp i implic efort suplimentar fa de o modificare de cod
obinuit.
Un aspect important care trebuie avut n vedere nc de la
nceput este versionarea API-ului. Unii designeri de API prefer

$ vendor/bin/codecept generate:cest
functional Vehicles
Test was created in /Users/g/Sites/learn/silex-tutorial/tests/functional/VehiclesCept.php
7 https://developer.github.com/v3/
8 https://www.twilio.com/docs/api/rest
9 https://www.wepay.com/developer/version
10 http://www.infoq.com/presentations/rest-misconceptions
11 https://github.com/WhiteHouse/api-standards
12 http://www.restapitutorial.com/lessons/restquicktips.html

5 https://developers.facebook.com/docs/apps/migrations/completed-changes#jul_2012

13 http://blog.octo.com/en/design-a-rest-api/#case

6 http://martinfowler.com/ieeeSoftware/published.pdf

14 http://codeception.com/docs/07-AdvancedUsage#.Vp5DcTYoXVo

www.todaysoftmag.ro | nr. 43/ianuarie 2016

35

programare
De la Zero la RESTful n patru pai. Design de API
Apoi definim cum va arta o resurs de tip vehicul. Spunem
practic c la execuia unei cereri POST ctre /vehicles care
primete un nume pentru noul item, l vom crea i returna
ntreaga nregistrare, inclusiv IDul acesteia. Pe baza acestui ID,
vom efectua ulterior operaii de modificare, la adresa /vehicles/
ID.
<?php

class VehiclesCest
{
public function createItem(FunctionalTester $I,
$scenario)
{
$I->wantTo(create a new vehicle);
$I->sendPOST(/vehicles, [
name => Pansy
]);
// we mark scenario as not implemented
$scenario->incomplete(work in progress);

$I->seeResponseCodeIs(200);
$I->seeResponseIsJson();
$I->seeResponseJsonMatchesXpath(//id);
$I->seeResponseJsonMatchesXpath(//name);
$I->seeResponseMatchesJsonType([
id => integer,
name => string
]);
$I->seeResponseContainsJson([
id => 123,
name => Pansy
]);

Functional Tests (4) -----------------------------Check the status route


(StatusRouteCest::checkTheStatusRoute)
Ok
Create a new vehicle (VehiclesCest::createItem)
Incomplete
Retrieve current vehicles
(VehiclesCest::retrieveItems)
Incomplete
Modify an existing item (VehiclesCest::updateItem)
Incomplete
-----------------------------------------------------------------------Time: 372 ms, Memory: 12.00Mb
OK, but incomplete, skipped, or risky tests!
Tests: 4, Assertions: 1, Incomplete: 3.

Definirea celorlalte cazuri de utilizare rmne ca exerciiu


pentru cititor.

Concluzii
Am aflat ce este stilul arhitectural REST, am nvat diferena
ntre resurse i reprezentrile lor, am pregtit Codeception pentru
a ne fi de folos la definirea cazurilor de utilizare, am nvat cum
se face design de API din punct de vedere practic, i am vzut
la ce trebuie s fim ateni n cadrul acestui proces. n articolul
urmtor vom rafina cazurile de utilizare i vom trece la partea de
implementare.16
16 https://en.wikipedia.org/wiki/ISO_8601

S observm c, cel puin pentru moment, marcm scenariul curent ca incomplet, pentru a preveni execuia aseriilor
noastre. Vom elimina acest lucru n partea urmtoare a tutorialului nostru, atunci cnd vom trece la implementarea efectiv a
funcionalitii.
Mai multe detalii despre celelalte operaii definite pentru
vehicule, precum i aseriile corespunztoare, pot fi gsite pe
GitHub15.
Rularea testelor funcionale indic faptul c avem cteva
definite i c ele sunt nc incomplete. Iat cele mai importante
elemente de la rularea testelor:$ vendor/bin/codecept run
15 https://github.com/tekkie/autolog-api

36

nr. 43/ianuarie 2016 | www.todaysoftmag.ro

programare

programare

Frontend Mashup

uli dintre programatorii web au nevoie ca timpul de randare a unei pagini web
s fie ct mai scurt. Cu aceasta problem te confruni n primul rnd atunci cnd
se aleg uneltele cu care se va lucra la un proiect nou.

Raluca Oanca-Boca
ralucaonaca@gmail.com
Full Stack Developer
@Self-Employed

La nceputul unui proiect nou este ntotdeauna greu s alegem uneltele care vor
uura munca fiecrui membru din echip.
Trebuie s fim ateni atunci cnd alegem
aceste unelte, deoarece ele vor fi folosite
pn la finalul proiectului dar i n procesul
de deployment. n acest articol am ncercat s
evideniez operaiile care formeaz automatizarea frontend-ului. Acestea sunt: scrierea
de css cu un framework preprocesat, minificarea i testarea css-ului ct i minificarea i
testarea js-ului i , de asemenea, automatizarea acestora sub forma de procese <grunt>
att pentru mediul de dezvoltare local dar i
pentru producie.
Pentru proiectul prototip iniial s-a folosit ca backend limbajul de programare PHP
fr a se utiliza nici un alt framework, iar ca
framework de frontend am ales AngularJS.
Cnd vine vorba de alegerea unui limbaj
de stilizare putem alege unul dintre LESS,
SASS/SCSS sau Stylus. Acestea sunt limbaje de stilizare preprocesate ceea ce au un
avantaj faa de limbajul CSS pur. Avantajele
principalele sunt posibilitatea de a avea variabile, motenire, nesting i mixins. Dup ce
am fcut alegerile dorite, provocarea este
cum reuim s combinm aceste unelte astfel nct s ne uurm n primul rnd munca
noastr, munca unui operator de dezvoltare,
i s avem un timp de randare a paginii ct

mai mic.
Avem la dispoziie : nodejs, ruby, dar
i managerul de pachete ce se bazeaz pe
nodejs: npm. Ca o practic bun n utilizarea managerului de pachete se folosete un
fiier package.json n directorul rdcin al
proiectului.


n acest fiier vom lista toate pachetele de care avem nevoie ct i cteva din
dependinele pentru mediu de lucru local.
Dup crearea acestui fiier sau dup modificarea acestuia, trebuie s rulam comanda:

npm install

n urma comenzii se creeaz directorul

node_modules, dup care avem nevoie de


npm g intall grunt grunt-cli


Se va instala limbajul de programare
ruby i cteva din dependinele acestuia dintre care : sass, sass-globing i compass.
sudo apt-get install ruby-full
sudo gem install sass compass sass-globbing

www.todaysoftmag.ro | nr. 43/ianuarie, 2016

37

programare
Frontend Mashup
Odat ce avem acestea instalate putem
s ncepem s ne construim fiierul
Gruntfile.js, fiier care, de asemenea, este
creat pe acelai nivel ca i fiierul package.
json. Avem nevoie de acest fiier deoarece de fiecare dat cnd comanda grunt
este rulat va lua n considerare acest
fiier.

folosit task-ul uglify. Pentru mediul de


lucru local am ales opiunea ca dup
concatenarea fiierelor rezultatul s fie
expandat, iar pentru mediul de lucru n
producie s fie minified.
Avem o problem dac dorim s
schimbm orice fiier sass sau js, prin
modificri pe care le dorim <on the fly>.
Pentru acestea am creat task-ul watch care
va verifica orice fiier sass sau js dup care
le va transforma i minifica dup caz. Acest
task este util pentru mediul de lucru local.

de teste folosind CasperJS. Pentru testarea


js-ului se poate folosi Karma pentru unit
testing i Jasmine pentru behaviour testing.
karma-chrome-launcher: ^0.2.0,
karma-jasmine: ~0.1.5,
karma-script-launcher: ~0.1.0,
karma-firefox-launcher: ~0.1.3

Partea de configurare a comenzii se


face prin fiierul de configurare ct i prin
cteva dintre comenzile iniiale.
Urmtorul pas este de face load la
task-urile iniiale de care depind task-urile
customizate de ctre noi.

Dup ce s-a fcut load la task-urile


iniiale, vom folosi task-ul compass pentru
proiectul nostru. Dac se va rula comanda
grunt compass:dev vom vedea c n fiierul
destinaie scss vor fi concatenate toate
fiierele sass folosite. Se va transforma apoi
n format css cu format de afiare expandat. Pentru mediul de lucru n producie
stilul este compact.
Pentru concatenarea fiierelor js am

38

Spre final, scopul este nregistrarea


task-urile customizate pentru mediile de
lucru diferite. n acest ordine se poate
observa i task-ul browserSync care se
bazeaz pe task-ul watch astfel c orice
modificare pe care o vom face se va vedea
automat n pagina web nemaiavnd nevoie
de a face reload la pagin manual.
O diferen care se poate observa este
c n mediul de lucru n producie am ales
ca la final s rulez comanda pentru a aduga un hash la finalul fiierului i a evita
astfel o problem de cache. n acelai timp
se poate face i o versionare.
Pentru testarea css-ului se poate folosi
PhantomCSS pentru care am ales scrierea

nr. 43/ianuarie 2016 | www.todaysoftmag.ro

Pentru coding standards se poate folosi


grunt.loadNpmTasks(grunt-contribjshint); dar am preferat s folosesc un
pre-commit hook pentru git.
Folosind o singur comand putem
s ne automatizm munca ntr-un mediu
local ct i ntr-un mediu de producie. n
acelai timp ne folosim de principiile DRY,
avem mai puine erori i putem s facem
modificrile mai uor.
n concluzie, avantajul const n faptul c nu vom mai aduga fiecare fiier css
sau js, ci n final, prin utilizarea grunt vom
avea doar un fiier care trebuie adugat n
pagina HTML.

Bibliografie:
[1]. http://conferences.oreilly.com/fluent/
fluent2014/public/schedule/detail/32532
[2]. https://speakerdeck.com/addyosmani/
automating-front-end-workflow
[3]. www.gruntjs.com
[4]. https://www.npmjs.com/
[5]. http://gruntjs.com/plugins

programare

programare

n cutare de (potenial) talent

a fiecare nceput de an, ne propunem ( i cei contiincioi, chiar reuesc) s facem


schimbri radicale, fie n ceea ce ne privete, fie n mediul ce ne nconjoar, pentru
a avea rezultate la superlativ - cele mai multe vnzri, cel mai bun program, cei mai
motivai angajai, cel mai mare profit etc.

Mdlina Nastasa
madalina.nastasa@happyemployees.eu
Sales Development
Representative
@ Azimut Happy Employees

Pentru c cei contiincioi chiar reuesc,


venim n ntmpinarea voastr cu provocrile care v-ar putea ncetini pe termen
mediu-lung n a v atinge obiectivul superlativ n business.

Statisticile anului 2015


Criza talentului a fost resimit mai nti
n lumea HR-ului, apoi n cea a businessului.
Orict de inovativ, deschis i performant
ar fi o companie, va fi n cele din urm nevoie
de alte i alte talente care s o susin pe o
curb ascendent. O medie global publicat
n 2015 relev faptul c 38% dintre angajatori
simt c nu gsesc oamenii potrivii companiei lor, procentaj nentrecut din anul 20081 .
Cum st Romnia fa de media global? Conform statisticilor, Romnia se
confrunt cu cea mai grav criz a talentelor
de pe continent, cu o medie de 61% dintre
angajatori ngrijorai c nu reuesc s i
completeze echipa cu joburi necesare businessului, urmat de Grecia (59%) i Turcia,
1

Surs: http://www.manpowergroup.com/wps/wcm/

connect/db23c560-08b6-485f-9bf6-f5f38a43c76a/2015_Talent_
Shortage_Survey_US-lo_res.pdf?MOD=AJPERES

Bulgaria, Ungaria. La captul opus se afl


Irlanda ( 11%) dar i Olanda, Spania i Marea
Britanie cu 14%.

Care sunt semnele acestei crize?

Tot de la angajatori am aflat i cauzele


pentru care nu reuesc s angajeze oamenii potrivii. n primul rnd, nu sunt destui
aplicani care s se prezinte la interviu. Dac
totui vin, situaia rmne n continuare
ngrijortoare deoarece fie nu au experiena
profesional suficient, fie competene tehnice sau soft slabe sau, n ultim instan, au
pretenii salariale absolut neancorate n realitatea jobului i a firmei.

Consecine pentru business


Merit s ne facem griji? Nu putem
decide dect dac ne uitm i la consecinele
acestei crize. Statistica fcut pe zona EMEA
( Europe, Middle East and Africa) ne arat
procentaje n cretere fa de anii trecui,
ceea ce nseamn c managerii gsesc
consecinele din ce n ce mai amenintoare.
Aadar:
55% dintre angajatori consider c
principalul efect negativ al crizei de talent

www.todaysoftmag.ro | nr. 43/ianuarie, 2016

39

educaie
n cutare de (potenial) talent
este inabilitatea de a-i mulumi clienii.
51% spun c productivitatea i competitivitatea companiei lor are i va avea
de asemena de suferit.
inovaie i creativitate sczut (37%);
fluctuaie mai ridicat a personalului
(36%).
Vestea mai puin rea este c mai avem
timp pn n 2020 s atenum efectele
negative ale crizei. Se preconizeaz c n
2020 criza talentului va ajunge la apogeu,
astfel nct vor fi mai multi angajai care
prsesc piaa muncii dect cei care intr.
Acest fenomen va face angajaii de pe piaa
muncii mult mai valoroi, iar retenia lor
precum i recrutarea de noi talente vor
trona n topul prioritilor de business.
n niciun caz nu putem risca s ne prind
nepregtii.
Acum c suntem contieni de criza ce
ne pndete i ne amenin, ce putem face
n aceast privin?
n mod clar, majoritatea companiilor
mari deja au nceput s ia n considerare la
modul serios aceast criz, contientiznd
c poziia lor de pe pia este direct
afectat.
Printre politicile de personal n curs
de implementare, amintim2 3 :
orar de lucru flexibil, pentru a asigura un echilibru personal profesional
2

Surs: http://hrtimesblog.com/2015/03/25/

if-you-build-it-will-they-come-overcoming-the-talent-crisis-inmanufacturing/
3

S u r s : h t t p : / / w w w. b l o o m b e r g . c o m / b w /

stories/2008-09-19/the-global-talent-crisisbusinessweek-business-news-stock-market-and-financial-advice

40

optim (axat pe obiective, nu pe ore de


Acum c tii, care va fi strategia ta de
lucru).
management al talentului?
oportuniti de dezvoltare n cadrul
companiei:
autonomie pe sarcini din ce n ce
mai variate/complexe,
pregtire pentru reactualizarea
competenelor tehnice i a celor soft,
pregtirea potenialilor lideri.
facilitarea trecerii angajailor tineri
ct mai rapid de la stadiul de acomodare
la cel de productivitate:
s a t i s f a c e r e a n e v o i i d e
independen ( cu ct reuesc s intre
mai repede n producie, cu att mai
repede se pot specializa i pot cpta
autonomie pe ceea ce fac);
programe de nvare iniiatice,
personalizate pe nevoile noilor-venii
management axat pe generaiile de
pe piaa muncii (e.g. Millennials devin
majoritari pe piaa muncii, cu o etic de
munc diferit fa de baby boomers sau
generaia X).
managementul performanei clar
pentru toi angajaii, corelat cu recompense i beneficii.
Iat, ce ne rezerv piaa muncii o
criz a talentului care va transforma goana
dup angajai i efortul de a ne menine
colegii n firm n prioriti. n Romnia
aceast criz deja lovete mediul de afaceri,
cu 61% dintre angajatori considernd c le
este dificil s gseasc oameni potrivii.

nr. 43/ianuarie 2016 | www.todaysoftmag.ro

contabilitate

10 nouti fiscale valabile din 2016 cu


impact pentru antreprenori

nul 2016 aduce importante nouti fiscale pentru antreprenori, indiferent de forma
de organizare: SRL, PFA, etc.Principalele modificri sunt date de apariia noului cod
fiscal (Legea 227/2015) i a Ordinului 2634/2015 care aduce actualizri importante
formei documentelor financiar-contabile.Prezentm mai jos o sintez a principalelor modificri cu impact n activitatea de zi cu zi a antreprenorilor:

Delia Mircea
delia@contzilla.ro
@ Contzilla.ro

1. Noile cote de TVA


ncepand cu data de 1 ianuarie 2016 i
pn la data de 31 decembrie 2016, cota standard de TVA este de 20%, urmnd ca din 1
ianuarie 2017 s devin 19%. Cota standard
aplicabil pn la 31 decembrie 2015 a fost
de 24%.
Cotele reduse rmn 9% respectiv 5%
pentru anumite categorii de bunuri i servicii.
Tot ca element de noutate aplicabil de
la 1 ianuarie 2016 este cota redus de 9% la
ap. Aceast modificare a fost introdus prin
OUG 50/2015.
Un caz foarte ntlnit n practic este cel
n care n luna decembrie s-a emis o factur
de avans pentru servicii (de exemplu servicii

tehnice IT) cu termen de finalizare 2016.


Factura de avans a fost emis cu TVA 24% .
Cum se va storna avansul ?
Avnd n vedere c faptul generator al
TVA intervine n 2016 cnd este valabil
noua cot, se va storna vechea factur cu
TVA 24% i se va emite noua factur pentru
suma ntreag cu TVA 20%.

2. Noile cote de impozitare a microntreprinderilor


Cotele de impozitare pentru veniturile
microntreprinderilor, aplicabile de la 1 ianuarie 2016 sunt:
a) 1% pentru microntreprinderile care

www.todaysoftmag.ro | nr. 43/ianuarie, 2016

41

contabilitate
10 nouti fiscale valabile din 2016 cu impact pentru antreprenori
au peste 2 salariai, inclusiv;
Salariul net aferent unui salariu brut
b) 2% pentru microntreprinderile care de 1.050 este de : 785 lei
au un salariat;
Am presupus ca salariatul nu are perc) 3%, pentru microntreprinderile soane n ntreinere.
care nu au salariai.
ncepnd cu 1 mai 2016 salariul minim
brut pe economie se va majora la 1.250 lei.

ndeplinirea condiiei privind numrul de


salariai

Un salariat este persoana angajat cu


contract individual de munc cu norm
ntreag, ns se accept i cazurile n care
microntreprinderile :
a) au persoane angajate cu contract
individual de munc cu timp parial dac
fraciunile de norm prevzute n acestea,
nsumate, reprezint echivalentul unei
norme ntregi de exemplu : doi salariai
ncadrai fiecare cu cte 4 ore/zi, sau 4 salariai cu cte 2 ore/zi sau alte variante care
nsumeaz 8 ore.
b) au ncheiate contracte de administrare sau mandat, potrivit legii, n cazul n
care remuneraia acestora este cel puin la
nivelul salariului de baz minim brut pe
ar garantat n plat.
Ca excepie, microntreprinderile nfiinate dup 1 ianuarie 2016 beneficiaz de
faciliti suplimentare n sensul c dac au
cel puin un salariat i sunt constituite pe
o durat mai mare de 48 de luni, iar acionarii/asociaii lor nu au deinut titluri de
participare la alte persoane juridice, cota
de impozitare este 1% pentru primele 24
de luni de la data nregistrrii persoanei juridice romne. Cota de impozitare
se aplic pn la sfritul trimestrului n
care se ncheie perioada de 24 de luni.
Angajarea trebuie efectuat n termen de
60 de zile de la data nregistrrii persoanei
juridice.
ncepnd cu 1 ianuarie 2016, pentru
un angajat cu program de 8 ore/zi i cu
salariul minim pe economie (1.050 lei), se
pltesc urmtoarele taxe:
contribuii i impozit care se rein de
la angajat : 265 lei;
contribuii datorate de angajator:240
lei.

42

3. Noul plafon al cifrei de afaceri aferente


microntreprinderilor
Tot din 2016 se modific i plafonul
cifrei de afaceri pentru care o entitate
poate s se nregistreze ca microntreprindere. Astfel, dac n cursul unui an fiscal
o microntreprindere realizeaz venituri
mai mari de 100.000 euro sau ponderea veniturilor realizate din consultan
i management n veniturile totale este
de peste 20% inclusiv, aceasta datoreaz
impozit pe profit, ncepnd cu trimestrul
n care s-a depit oricare dintre aceste
limite. Pn la 31 decembrie 2015 limita a
fost de 65.000 euro.
Ce se ntmpl dac nu mai sunt
ndeplinite condiiile de ncadrare ca
microntreprindere?

fizic are i venituri din salarii sau


nu (pn la aceast dat, dac PFA-ul
obinea i venituri din salarii nu avea
obligaia plii CAS-ului);
PFA poate opta ntre cota CAS de
10,5% (cota individual) aplicabil
venitului net realizat sau 26.3% aceasta
corespunznd unui stagiu de cotizare
complet.
modul de plat a CAS este urmtorul
: n timpul anului PFA n sistem real
are obligaia de a efectua pli anticipate
avnd ca baz de calcul lunar 35% din
catigul salarial mediu brut pe economie
, urmnd ca n anul fiscal urmtor, pe
baza declaraiei de venit realizat, organele fiscale vor recalcula baza lunar de
calcul al contribuiei ca diferena ntre
venitul brut realizat i cheltuielile efectuate n scopul desfurrii activitii,
exclusiv cheltuielile cu CAS.
CASS se datoreaz n continuare n
cota de 5.5% la o baz lunar calculat
ca diferen dintre venitul brut i cheltuielile deductibile, exclusiv cheltuielile
cu CASS.
nu sunt obligaii de plat a celorlalte
contribuii: omaj, fond de risc, concedii
i indemnizaii i garantare creane. Se
poate contribui prin opiune la omaj i
la concedii i indemnizaii;
n ce privete impozitul de 16% pe
venit , acesta se datoreaz n continuare,
neexistnd nici o modificare fa de anul
precedent.

Dac n cursul unui an fiscal o microntreprindere realizeaz venituri mai mari


de 100.000 euro sau ponderea veniturilor
realizate din consultan i management n
veniturile totale este de peste 20% inclusiv, aceasta datoreaz impozit pe profit,
ncepnd cu trimestrul n care s-a depit oricare dintre aceste limite. Pn la 31
decembrie 2015 , n cazul n care se depeau plafoanele recalcularea impozitului Exist anumite limite minime i maxime la
se efectua de la nceputul anului respectiv, CAS datorat de PFA
situaie mult mai dezavantajoas fiscal.
Limita minim a CAS este de 35%
ctigul salarial mediu brut pe economie.
4.Impozitarea PFA-urilor
n 2016 acest salariu este 2.681
Cu siguran, anul 2016 nu va fi un an lei. Rezult o contribuie minim de
favorabil fiscal pentru PFA-uri.
0.35*2.681 lei *10.5% = 99 lei.
Ce s-a schimbat ncepnd cu 1 ianuarie
Limita maxim a CAS este 5 salarii
2016 ?
medii brute
ncepnd cu 1 ianuarie 2016 pentru
Contribuia maxim este astfel 10.5%*
veniturile din activiti independente se 2.681 lei * 5 = 1.408 lei
va plti CAS indiferent dac persoana
Din 2017 va interveni i o plafonare a

nr. 43/ianuarie 2016 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE


bazei de calcul a CASS (sntate) la de 5
n 2017, acelai asociat-angajat, va plti cifra de afaceri.
ori ctigul salarial mediu brut.
pe lng impozitul de 5% i CASS 5.5%.

7.Scutirea de impozit a profitului reinvestit

5. Impozitul pe dividende

6. Sponsorizri

n anul 2016 impozitul pe dividende se


stabilete prin aplicarea unei cote de impozit de 5% asupra dividendului brut pltit
unei persoane juridice romne. n 2015
aceasta cot a fost de 16% iar din 2017 pe
lng impozitul de 5% la dividende se va
aplica i contribuia la asigurri sociale de
sntate de 5.5%, astfel ajungndu-se la o
cota de impozitare de 10,5%.
Aadar, 2016 este o perioada favorabil
de ridicare a dividendelor aferente exerciiilor financiare precedente.

Sponsorizarea este actul juridic prin


care dou persoane convin cu privire la
transferul dreptului de proprietate asupra unor bunuri materiale sau mijloace
financiare pentru susinerea unor activiti fr scop lucrativ desfurate de ctre
una dintre pri, denumit beneficiarul
sponsorizrii.
Poate fi beneficiari ai sponsorizrii:
persoane juridice fr scop lucrativ, care
desfoar n Romnia sau urmeaz s
desfoare o activitate n domeniile: cultural, artistic, educativ, de nvmnt,
tiinific cercetare fundamental i aplicat, umanitar, religios, filantropic, sportiv,
al proteciei drepturilor omului, medicosanitar, de asisten i servicii sociale, de
protecia mediului, social i comunitar,
de reprezentare a asociaiilor profesionale, precum i de ntreinere, restaurare,
conservare i punere n valoare a monumentelor istorice, emisiuni ori programe
ale organismelor de televiziune sau radiodifuziune, precum i cri ori publicaii din
domeniile definite anterior.
Din 2016 crete limita n care se pot
acorda sponsorizri n cazul pltitorilor de
impozit pe profit.
Modul de calcul pentru 2016 este
minimul dintre :
1. valoarea calculat prin aplicarea
cotei de 0,5% la cifra de afaceri;
2. valoarea reprezentnd 20% din
impozitul pe profit datorat.
Anterior, pn la 31 decembrie 2015,
criteriul de la punctul 1. era de 3 la mie din

Ce se ntmpl dac nu exist suficieni bani


n firma pentru a face plata dividendelor?
Chiar dac n momentul n care se
cunoate profitul care se poate repartiza,
se constat c nu exist suficieni bani
n firm pentru a efectua plile, este
important de menionat c acestea pot
s se efectueze ulterior, pe msur ce se
acumuleaz resurse, n baza deciziei de
repartizare a acestora.
Este de asemenea important faptul c
impozitul pe dividende trebuie s fie reinut n momentul plii i virat la buget
pn n data de 25 a lunii urmtoare
celei n care se pltesc ctre asociai sau
acionari.

Dac un asociat este i angajat n firm, ce


taxe i se aplic n 2016 pentru dividendele
retrase? Dar n 2017?
n 2016, un asociat care este i angajat
n propria firm sau n alta, nu va datora
dect 5% impozit pe dividende.

Profitul investit n echipamente tehnologice, calculatoare electronice i


echipamente periferice, maini i aparate
de cas, de control i de facturare, precum
i n programe informatice, produse i/sau
achiziionate, inclusiv n baza contractelor
de leasing financiar, i puse n funciune,
folosite n scopul desfurrii activittii
economice, este scutit de impozit.
Activele corporale pentru care se aplic
scutirea de impozit sunt cele prevzute n
subgrupa 2.1, respectiv n clasa 2.2.9 din
Catalogul privind clasificarea i duratele
normale de funcionare a mijloacelor fixe
(HG 2139/2004).
Noutatea pentru 2016 este cuprinderea
grupei 2.2.9. n lista activelor pentru care
se aplic scutirea.
Grupa 2.2.9. cuprinde Calculatoare
electronice i echipamente periferice.
Maini i aparate de cas, control i
facturat.

8. Diurna pentru administratori


Dac pn la 31 decembrie 2015 n
codul fiscal nu era prevzut posibilitatea
acordrii diurnei deductibile pentru administratori, ncepnd cu 1 ianuarie 2016,
se prevede c i acetia pot beneficia de
diurn deductibil.
O meniune important introdus
n 2016 : plafonul zilnic neimpozabil se
acord numai dac durata deplasrii este
mai mare de 12 ore, considerndu-se fiecare 24 de ore cte o zi de deplasare n
interesul desfurrii activitii.
Nivelul diurnei deductibile este n

www.todaysoftmag.ro | nr. 43/ianuarie 2016

43

contabilitate
10 nouti fiscale valabile din 2016 cu impact pentru antreprenori

prezent de 42.5 lei/zi (baza legala : Ordinul


n cheltuielile sociale se vor putea
60/2015).
include din 2016 i tichetele cadou oferite
salariailor i copiilor minori ai acestora cu
9. Cheltuielile sociale
ocazia Patelui, zilei de 1 iunie, Crciunului
Cheltuielile sociale sunt acele cheltu- i a srbtorilor similare ale altor culte
ieli care, aa cum sugereaz i denumirea, religioase n limita a 150 de lei/persoan/
au un scop social cum ar fi : ajutoarele de eveniment . Cu alte cuvinte, tichetele acornmormntare, ajutoarele pentru bolile date n aceste situaii nu se impoziteaz cu
grave i incurabile, ajutoarele pentru 16%.
natere, cheltuielile pentru funcionarea
corespunztoare a unor uniti aflate n 10. Actualizarea formei documentelor
administrarea contribuabililor, precum: financiar-contabile
cree, grdinie, coli, muzee, biblioteci,
Prin Ordinul 2634/2015 privind
cantine, baze sportive, cluburi, cmine de documentele financiar-contabile se aduc
nefamiliti i altele asemenea, cheltuie- modificri importante formei i coninutulile reprezentnd: cadouri n bani sau n lui documentelor financiar-contabile. Mai
natur, inclusiv tichete cadou oferite salari- jos sunt cele mai importante :
ailor i copiilor minori ai acestora, servicii
eliminarea obligaiei de a aplica
de sntate acordate n cazul bolilor profetampila pe documentele financiar-consionale i al accidentelor de munc pn
tabile, ca urmare a abrogrii prevederilor
la internarea ntr-o unitate sanitar, tichete
legale referitoare la obligaia aplicrii
de cre acordate de angajator n conformitampilei de ctre persoanele i entitile
tate cu legislaia n vigoare, contravaloarea
prevzute la art. V alin. (1) i (2) din
serviciilor turistice i/sau de tratament,
Ordonana Guvernului nr. 17/2015 priinclusiv transportul, acordate de angajator
vind reglementarea unor msuri fiscal
pentru salariaii proprii i membrii lor de
bugetare i modificarea i completarea
familie, precum i contribuia la fondurile
unor acte normative (ex.: ordin de deplade intervenie ale asociaiilor profesionale
sare, chitan, decont pentru operaiuni
ale minerilor sau alte cheltuieli cu caracter
n participaie);
social efectuate n baza contractului colec eliminarea coninutului minimal
tiv de munc sau a unui regulament intern.
obligatoriu din cadrul normelor de
ntocmire i utilizare a fiecrui formular;
Cheltuielile sociale vor avea ncepnd
eliminarea obligativitii ntocmirii/
cu 2016 o deductibilitate limitat la 5%
emiterii unui anumit numr de exemdin valoarea cheltuielilor cu salariile perplare dintr-un document;
sonalului, fa de 2% ct era pn la 31
eliminarea prevederilor referitoare la
decembrie 2015.
circuitul i locul de arhivare ale fiecrui
document;

44

nr. 43/ianuarie, 2016 | www.todaysoftmag.ro

n concluzie, anul 2016 aduce modificri pe toate planurile: att fiscal ct i


contabil, att favorabile (scderea impozitului pe dividende, reducerea cotei de
impozitare a microntreprinderilor) ct i
nefavorabile (impozitarea suplimentar a
PFA-urilor).

www.todaysoftmag.ro | nr. 43/ianuarie, 2016

45

sponsori

powered by