Documente Academic
Documente Profesional
Documente Cultură
com
TSM
T O D A Y
S O F T WA R E
MAG A Z I NE
Download from
Windows Store
Ce nseamn TDD ?
Acceptarea schimbrii.
Drumul ctre un bug pe lun
SeedForTech
Startup Weekend Cluj 2015 n
retrospectiv
BattleLab Robotica
Totul despre PFA din punct de vedere
fiscal n 2015
6
Seed For Tech
Mircea Vdan
8
Startup Weekend Cluj 2015
n retrospectiv
Cristina Juc
10
MVP Academy Demo Day
Irina Scarlat
12
BattleLab Robotica
Ioana Bucur
13
SprintPoint
Horia Mircea Boto
15
Cum surprinde
Microsoft viitorul?!
Paul Hrimiuc
19
Transfer de Date prin NFC
Larisa Hoga
21
Keep Calm and
Start playing Dart
Kuki Edina
24
Introducere n Couchbase
Alexandru Objelean
30
Portretul unui
tester bun
Daniela Crian
32
Ce este de fapt TDD?
Alexandru Bolboac
34
Loguri i metrici n Java
Vasile Mihali
37
Organizaii bine crescute
Cristian Philipp
39
Fizbo, Simply rent aplicaie mobil
pentru nchirieri imobiliare
Lucian Pop
41
Totul despre Persoana Fizic Autorizat
Ioana Varga i Ioana Costea
44
Acceptarea schimbrii.
Drumul ctre un bug pe lun
Patks Csaba
editorial
Ovidiu Man
ovidiu.matan@todaysoftmag.com
Editor-in-chief
Today Software Magazine
Ovidiu Man
Lista autorilor
Alexandru Bolboac
Larisa Hoga
Android Developer
@ Yardi Romnia
Alexandru Objelean
Vasile Mihali
alex.bolboaca@mozaicworks.com
alexandru.objelean@betfair.com
patkoscsaba@syneto.eu
Agile Software Developer
@ Syneto
Produs de
Daniela Crian
daniela.crisan@isdc.eu
Senior Tester
@ ISDC Romania
Kuki Edina
Lucian Pop
vasile.mihali@arobs.com
Senior Software Engineer
@ Arobs
Senior Developer
@ Betfair
Patks Csaba
larisa.hogas@yardi.com
lucian.pop@fizbo.ro
www.todaysoftmag.ro
www.facebook.com/todaysoftmag
twitter.com/todaysoftmag
ISSN 2284 6352
Cristian Philipp
Mircea Vdan
www.clujstartups.com
Ioana Bucur
Irina Scarlat
PR Manager
@ How to Web &
TechHub Bucharest
cristian.philipp@essentialtm.ro
ioanabucur1812@gmail.com
mircea.vadan@gmail.com
irina.scarlat@howtoweb.co
Paul Hrimiuc
Program coordinator
@ SprintPoint
paul.hrimiuc@accesa.eu
incubator@clujhub.ro
Ioana Varga
Ioana Costea
Expert contabil
Managing Partner
@ A&I Consulting
Expert contabil
Managing Partner
@ A&I Consulting
ioana.varga@aiconsulting.ro
ioana.varga@aiconsulting.ro
startups
nou iniiativ a fost lansat n aceast primvar n Cluj: Seed For Tech este
un fond destinat dezvoltrii de produse tech, incluznd i investiii de tip seed
i sprijin n lansarea pe pia. Fondul i programul afiliat se adreseaz celor
care au expertiz ntr-un domeniu de activitate, au o idee de startup n acel domeniu
i se afl n cutarea unui partener mpreun cu care s dezvolte produsul i afacerea.
Mircea Vdan
mircea.vadan@gmail.com
www.clujstartups.com
Young spirit
Mature organization
A shared vision
Join our journey!
www.fortech.ro
eveniment
Cristina Juc
cristinajuc@gmail.com
Organizatoare
@ Startup Weekend Cluj
programare
startups
ucureti, 19 mai 2015. Cele 12 startup-uri care fac parte din al doilea lot al programului de preaccelerare MVP Academy au
urcat pe scen vineri, 15 mai, la Demo Day, pentru a prezenta rezultatele a dou luni de munc intens. Acestea au avut astfel ocazia s i expun pentru prima oar produsele i progresul nregistrat n faa audienei, dar i s demareze discuii cu
poteniali investitori i parteneri strategici.
Organizat n parteneriat cu Telekom
Romania i Bitdefender, cu sprijinul
CyberGhost, Raiffeisen Bank, hub:raum,
Microsoft i SendGrid, a doua ediie a programului de pre-accelerare MVP Academy
s-a desfurat n perioada 23 martie 14
mai la TechHub Bucharest i a ajutat
startup-urile finaliste s i defineasc
mai bine produsele, pregtindu-le pentru urmtoarea etap n dezvoltarea lor:
redimensionarea produsului n funcie de
posibilitile oferite (scalarea), obinerea
de investiii i ncheierea de parteneriate.
Fiind un program educaional gratuit,
adaptat nevoilor individuale ale echipelor
participante, MVP Academy le-a oferit
startup-urilor acces la resurse educaionale
care s corespund nevoilor proprii de dezvoltare i a facilitat interaciunea direct
a acestora cu mentori cu experien
relevant,cu investitori de tip angel i
reprezentani ai fondurilor de investiii
early stage i programelor de accelerare
din regiune.
Pe parcursul programului, finalitii au
nvat mai multe despre cum dezvoli un
startup de succes, networking, dezvoltarea
de produs & metrici, storytelling & pitching, customer development, finanare sau
aspecte legale participnd la workshopurile practice susinute de profesioniti
consacrai n domeniu. Printre acetia
se numr Bobby Voicu (Co-Fondator,
MavenHut), Paul Renaud (Executive
Coach & autor al A networking book),
B ogdan Rpa (ex-Master Pro duc t
Owner, Adobe Romania), Alex Barrera
(Co-Fondator Tech.eu & Press42), Salim
Virani (Partner, Founder Centric), sau Ana
Maria Andronic (Partner, Biri-Goran).
n plus, startup-urile au beneficiat
de sesiuni de mentorat 1 la 1 cu peste
50 de profesioniti i lideri cunoscui
10
irina.scarlat@howtoweb.co
PR Manager
@ How to Web &
TechHub Bucharest
11
eveniment
acultatea de Inginerie Electric din cadrul Universitii Tehnice din Cluj-Napoca n colaborare cu organizaia studeneasc
BEST Cluj-Napoca a organizat n data de 9 mai 2015 cea de-a V-a ediie a competiiei BattleLab Robotica.
12
ioanabucur1812@gmail.com
Public Relations Responsable
@ BattleLab Robotica
startups
enomenul de acceleratoare de tip seed este n cretere la nivel mondial, cu un numr tot mai mare de programe active, n
special n SUA dar i n alte pri ale lumii. Seed capital, acceleratoarele care ajut cu capitalul iniial, precum Y Combinator,
au primit mult atenie din partea comunitii antreprenoriale i caut mereu startup-uri n faz de lansare. Acest trend a
fost observat de L. Barrehag ntr-un studiu din 2012 despre acceleratoare i trei ani mai trziu, acceleratoarele de tip seed sunt mai
dezvoltate ca niciodat.
Acest lucru mi-a atras atenia asupra pentru livrarea pitch-ului, workshop-uri i tine personal, trebuie s fii capabil()
importanei de a nelege diferena ntre networking profesional.
s gndeti deschis, s fii dedicat() i
un accelerator i un incubator atunci
Programul este creat pentru echipele capabil() s colaborezi, s lucrezi din greu
cnd vrei s intri ntr-un program de dez- de profesioniti i antreprenori care doresc i s nvei de la alii. Aceste caliti sunt,
voltare. O diferen este formulat de Paul s aib propria afacere i le ofer acestora dup prerea noastr, eseniale pentru a
Bricault, cofondatorul unui accelerator din ocazia s pun ntrebri i s nvee de la reui n program.
Los Angeles, care constat c acceleratorul ambasadori i mentori din domeniul tech.
Pentru a-i susine dezvoltarea, pe
ia un capital al ideilor dezvoltate extern, n
Pentru a aplica, echipa selecteaz i parcursul programului SprintPoint vei
schimbul unei investiii i a mentoratului. nscrie ideea pe baza creia se va crea plus- participa la traininguri, la sesiuni de
La finalul celor trei sau patru luni startup- valoare.Gradul de efort pe care echipa l-a coaching i mentorat. Toate acestea vor
ul absolv. Incubatorul aduce o echip depus n conceperea produsului sau ser- avea loc la Cluj HUB, un spaiu modern
extern s lucreze pe ideea unui investitor. viciului pe care vor s l livreze i nivelul de de co-working n centrul oraului. Vei avea
Cu ct ideea necesit mai multe resurse nelegere a pieei pe care vor s o acceseze de asemenea posibilitatea s socializezi
pentru a ajunge la maturitate, cu att capi- se va reflecta n aceast plusvaloare.
cu mentorii i investitorii din program
talul luat crete.
Programul se va derula pe perioada i s participi la diferite evenimente tech,
Pe scurt, incubatorul dureaz mai verii i participanii vor fi iniiai n precum workshop-urile de folosire a platmult i preia mai mult capital n schimbul metodologiile prezentate n dou cri formei FiWare, Transilvania Demo Days,
asistenei, pe cnd programele de acceler- foarte importante pentru orice startup Techsylvania i altele. La finalul programare sunt mai scurte, mai specializate i cer tehnic. Prima este Lean Canvas de ului toate echipele vor avea ocazia s i
mai puin capital la final.
Eric Ries (2011) i cea de-a doua este susin pitch-ul ntr-un Demo Day.
D e ace e a, noi, e chip a St ar tup Disciplined Entprepreneurship: 24 Steps to
Scopul nostru, al Startup Transilvania,
Transilvania, am hotrt s concepem a Successful Startup, de Bill Aulet (2013). este s i artm c nu te nati antreprenor
un program de pre-accelerare care va Mai multe detalii despre cri vei afla n ci poi s nvei s devii unul.
ajuta startup-urile din zona tech i IT din timpul programului.
Cluj-Napoca s i ating potenialul.
Vrem s atragem n program acele
Horia Mircea Boto
incubator@clujhub.ro
Acest program se numete SprintPoint. startup-uri care au dorina de a reui.
n timpul celor opt sptmni ale pro- Pentru a fi eligibil(), trebuie s faci parte
Program coordinator
@ SprintPoint
gramului, echipele vor trece printr-o serie dintr-o echip (nu se poate s aplici n mod
de experiene utile i interesante, precum individual), proiectul vostru trebuie s fie
consiliere i mentorat de echip, pregtire mai mult dect o simpl idee. Ct despre
Our core competencies include:
Product
Strategy
Product
Development
Product
Support
www.3pillarglobal.com
13
comuniti
Comuniti IT
inalul lui mai i nceputul lunii iunie se anun plin de evenimente n zona IT-ului romnesc. V invitm s participai la I
T.A.K.E 28-29 mai, ce se va desfura n Bucureti. La Cluj, n 2 iunie are loc o nou ediie a JS Camp, iar n 6-9 iunie are loc
Techsylvania. Ne vedem la evenimente !!!
14
Calendar
Mai 27 (Cluj)
Lansarea numrului 35 al Today Software Magazine
www.todaysoftmag.ro
Mai 27-28 (Cluj)
2 Fast & Curious: Angular JS Basic
https://www.eventbrite.com/e/2-fast-curious-2x2-angularjs-workshops-tickets-16988047708
Mai 28-29 (Bucureti)
I T.A.K.E - recomandat de TSM
2015.itakeunconf.com
Mai 28 (Cluj)
OpenStack Kilo Release Overview
meetup.com/OpenStack-Cluj/events/221754372/
Iunie 3 (Cluj)
Meetup #40 - Enhance your web testing with Fiddler
meetup.com/Tabara-de-Testare-Cluj/events/221508203/
Iunie 3 (Bucureti)
Hands-on Code: Programming by Wishful Thinking
meetup.com/The-Bucharest-Agile-Software-MeetupGroup/ events/222502856/
Mai 28 (Bucureti)
#2 AngularJS Meetup
http://www.meetup.com/Bucharest-Angular-JS-Meetup/
events/221929288/
Iunie 2 (Bucureti)
JS Camp
www.jscamp.ro
Iunie 3-4 (Cluj)
2 Fast & Curious: Angular JS Advanced
https://www.eventbrite.com/e/2-fast-curious-2x2-angularjs-workshops-tickets-16988047708
Iunie 6-9 (Cluj)
Techsylvania - recomandat TSM
www.itcamp.ro
tendine
paul.hrimiuc@accesa.eu
Business Development Manager
@ Accesa
complex i cu tradiie.
Mai interesant dect discursul inaugural
a fost discursul lui Gurdeep Singh Pall, care
s-a referit la modalitatea n care Windows
10 i propune s abordeze personal computing. Cred c Microsoft a fcut o treab foarte
bun n zona aceasta: n loc s se concentreze
pe device, ei au pus accent pe experiena utilizatorului i au oferit o interfa consistent i
familiar n raport cu toate tipurile de deviceuri. innd cont de afirmaia lui Gurdeep
conform creia device-ul nu este mobil,
utilizatorul este, este de ateptat ca acesta s
fie capabil s lucreze oricnd i de oriunde.
Dac se adaug i Continuum, care faciliteaz
tranziia utilizatorilor ntre interfaa touch i
cea non-touch i Windows 10 Universal App
ca platform de aplicaii pentru developer-i,
15
tendine
Cum surprinde Microsoft viitorul?!
atunci rezultatul este ceva
greu de depit. n plus,
nu ar trebui s uitm de
Cortana, asistentul personal, care va fi omniprezent
chiar i n situaiile n care
creezi jocuri sau aplicaii
business.
Noul browser, Edge,
(anterior numit Spartan)
va fi livrat mpreun
cu IE11, care, potrivit
Microsoft, va beneficia de
suport tot atta timp ct
Windows 10. Considerat
a fi mai mult o micare
de marketing pentru a
se detaa de trecut, Edge
ncearc s vin cu noi
funcionaliti care pun
accentul pe aciune i
interaciune (ex: permite luarea de notie) i evalueaz ca perimate
benchmark-urile legate de vitez. Informaiile pot fi, de asemenea,
parcurse mai uor n browser cu ajutorul Reading View (chiar i
offline). Website-urile care se bazeaz puternic pe publicitate, vor
putea alege dac s includ sau nu aceast funcionalitate.
Pe lng acestea, cteva subiecte merit prezentate mai n
detaliu:
16
2 http://www.2tolead.com/whitepaper-when-to-use-what-in-office-365
Enterprise Mobility
17
tendine
Cum surprinde Microsoft viitorul?!
18
programare
a n cazul multor lucruri pe care le folosim, mbuntim, sau pe care le inovm, experiena mea cu NFC a nceput din
dorina de a gsi o soluie pentru o problem simpl: s nu uit s fac anumite lucruri nainte de a iei din cas, cum ar fi s
m asigur c setez temperatura corect la central. O alt soluie ar fi fost s gsesc ceva care s fac aceste lucruri n locul
meu. Bineneles, mi-am dat seama c aveam i alte idei care mi-ar fi putut simplifica viaa sau care mi-ar putea face fiecare zi mai
distractiv.
Bineneles, mi-am dat seama c aveam i alte idei care mi-ar
fi putut simplifica viaa sau care mi-ar putea face fiecare zi mai
distractiv. De exemplu, mi-ar fi plcut s gsesc o modalitate
de a-mi debloca telefonul fr a-l atinge sau s deschid portiera
prin simpla apropiere de scaunul oferului i multe alte astfel de
dorine. i apoi a aprut NFC, exact ca Mo Crciun, i cteva din
aceste dorine chiar s-au ndeplinit.
Ce este NFC?
Perspectiva de business
NFC nu este o tehnologie incredibil de inovatoare. Ca i
Bluetooth sau WiFi, este un standard radio de comunicare wireless. n lumea wireless, cea mai asemntoare tehnologie este
RFID (radio frequency identification). Datorit costurilor mai
reduse de implementare, necesitilor i modificrilor, NFC poate
fi util n foarte multe situaii. Tag-urile NFC au forme diferite,
pornind de la stickere simple pn la cele care se autodistrug
sau care sunt rezistente la ap i condiii meteo extrem de dure.
Capacitatea de citire i scriere difer i ea: de la device-uri care
au doar capacitate de write-once sau read-only, pn la un numr
nelimitat de operaii sau spaiu de memorie protejat prin parol.
Toate companiile care in evidena unor obiecte ar trebui s
aprecieze aceast tehnologie. Vnztorii, companiile de transport,
www.todaysoftmag.ro | nr. 35/mai, 2015
19
programare
Transfer de Date prin NFC
spltoriile care folosesc tag-uri NFC ncorporate n pachete,
haine i alte obiecte de vnzare, se pot folosi de NFC pentru a
ine inventarul tuturor obiectelor.
Un tag de tip smart poate fi introdus n orice flutura. Dac
atingi tag-ul eti redirecionat ctre un site, primeti detaliile unui
contact sau poi chiar accesa CV-ul unui candidat sau o biografie scurt sub form de text sau imagine. Unele mall-uri, chiar
din Romnia, folosesc aceste tag-uri n scopuri publicitare sau ca
gift-carduri, reduceri i chiar organizeaz concursuri de treasure
hunting prin intermediul lor.
Dar de vreme ce suntem n era n care se dezvolt tot mai mult
aa-numitul domeniu al Internet of Things, au aprut soluii i
idei mult mai inovatoare. Companiile folosesc tag-uri pentru a
urmri activitatea angajailor, dar i pentru a estima timpul anumitor task-uri sau pentru a administra concediile. n combinaie
cu NFC, angajaii pot foarte uor s nceap i s termine taskurile proprii din orice punct al companiei s-ar afla cu ajutorul
telefonului, sau, i mai convenabil, pot face asta cnd intr n
birou sau prsesc locul de munc.
Servicii medicale, marketing, pli exist foarte multe
aplicaii i posibiliti. Dar aplicaia mea preferat este un device
care poate fi purtat-de exemplu un inel sau o brar- i prin intermediul cruia se poate debloca sau deschide cu o simpl atingere,
telefonul, ua sau chiar maina personal. Folosit n combinaie
cu un sistem GPS, un modul NFC poate localiza orice, de la
lucruri, la animale de companie pierdute sau chiar persoane.
Concluzie
NFC ncepe s cucereasc din ce n ce mai muli utilizatori
n fiecare zi i cu siguran ne putem folosi de aceast tehnologie
n multe domenii. Dezvoltarea aplicaiilor este facil; protocoalele de securitate(NFC Signature RTD 2.0) pentru semnarea i
verificarea integritii datelor sunt acum folosite; tag-urile cu
acces protejat al memoriei sunt disponibile. Prin urmare, nu vd
motive pentru care NFC nu ar trebui s cucereasc piaa n perioada urmtoare. Pcat c Apple pierde toat distracia.Voi ncheia
acest articol aici i v atept ntr-un numr viitor pentru a analiza
mai n amnunt caracteristicile NFC de pe Android.
Bibliografie:
1.
2.
20
http://nfc-forum.org/
https://developer.android.com/guide/topics/connectivity/nfc/index.
html
http://www.nearfieldcommunication.org/
Larisa Hoga
larisa.hogas@yardi.com
Android Developer
@ Yardi Romnia
programare
Kuki Edina
Tester Senior Analyst
rezentul articol nu-i are ca int pe manageri nu a vrea s le dau idei despre
optimizarea pauzelor recreaionale din birou asigurnd un singur dart i nici pe
extremitii jocului binecunoscut, pentru c nu am cunotine de mprtit despre
darts-ul rusesc. Tema acestui articol vine de la big-brotherul nostru cellalt, adic Dont-beevil Google. Datorit expertizei acestuia n domeniul tehnologiilor web, n octombrie 2011,
Aarhus, oraul lui Bjarne Stroustrup i Lars Bak, s-ar putea s fi fost martor la naterea unui
produs revoluionar al industriei IT, fiind locul unde Dart a fost dezvluit prima oar n faa
publicului larg.
Asemenea oricrui frate responsabil, el
nu doar ne prezint noul su gadget, ci ne
invit i s-l ncercm. Am avut ocazia s
aflm de ce, de unde i cum s ncepem
jocul cu Dart. Iar de la prima iniiere ncoace
fr s l acuzm de arogan cum apare o
versiune mai nou, imediat suntem anunai.
O prima afirmaie important despre
Dart ar fi c nu se refer doar la un limbaj
de programare. Este o platform complet
incluznd un toolchain, obiectivul creia
fiind sprijinirea etapelor de dezvoltare i lansare a aplicaiilor web structurate, scalabile
i care au totodat o performan ridicat.
Dac ar trebui s numim experi n astfel de
aplicaii, fratele nostru cu singuran ar face
parte din ei. Probabil v amintii de browserul lui propriu, Chrome sau de motorul V8
de JavaScript, fiind un urma de onoare a
21
programare
22
Fig. 3 Aplicaie Dart compilat n JS i rulat din orice alt browser modern
23
programare
Alexandru Objelean
alexandru.objelean@betfair.com
Senior Developer
@ Betfair
n prezent, industria IT abund de termeni precum NoSQL, Big Data sau NewSQL.
De multe ori, persoanele cu putere decizonal au dificulti n alegerea soluiei
potrivite. n condiiile n care soluiile clasice - bazele de date relaionale sunt folosite de mai bine de dou decenii, de ce ar trebui ncercate soluiile alternative? Marile
companii apeleaz deja de civa ani la soluiile alternative ceea ce le permite s economiseasc bani, s inoveze rapid i s ajung cu produsele finale pe pia mult mai
repede dect o fceau nainte. Scopul acestui articol e s prezinte soluia NoSQL bazat
pe documente, care este Couchbase. Pe lng detaliile tehnice se vor gsi i motivele
pentru care aceast tehnologie merit s fie aleas i cteva exemple de proiecte n care
Couchbase este folosit cu succes.
De ce NoSQL?
Un a d i n c e l e m ai i mp or t ant e
decizii luate de arhiteci, ine de
alegerea tehnologiei potrivite pentru rezolvarea problemelor specifice produselor ce
urmeaz a fi dezvoltate. n acest context,
cnd vine vorba de alegerea ntre o baz
de date relaional i o soluie NoSQL, este
important s se ia n considerare cteva
aspecte importante.
Natura datelor
Modelul relaional este foarte potrivit
pentru datele ce au o structur tabular,
cum ar fi un registru contabil. Datele
complexe, care conin multe nivele de
imbricare, sunt mai greu de modelat folosind structuri bidimensionale. n astfel
de cazuri, alegerea bazelor de date de tip
NoSQL pare a fi potrivit, pentru c datele
pot fi stocate n formatul JSON. Acest format este suportat de marea majoritate a
tehnologiilor NoSQL.
Un alt aspect l reprezint volatilitatea
datelor. Este important s se tie ct de des
se va schimba i va evolua modelul de date
24
Eficiena de dezvoltare
Agilitatea i rapiditatea de dezvoltare
sunt caracteristicile cele mai importante n
cadrul unui proces de dezvoltare. n acest
sens, tehnologiile NoSQL i-au demonstrat avantajul. Folosirea formatului de
tip JSON pentru modelarea datelor, le d
posibilitatea programatorilor de a elabora
versiuni iniiale ale produselor ntr-un
timp mult mai scurt.
Probleme operaionale
Creterea volumului de date i a numrului de utilizatori, duce la degradarea
performanei. Unica soluie oferit n astfel
de cazuri de ctre tehnologiile relaionale,
este bazat pe scalare pe vertical
(hardware) care este foarte costisitoare.
Pe de alt parte, tehnologiile NoSQL ofer
Ce este Couchbase
Couchbase Server este o baz de date NoSQL bazat pe documente pentru aplicaii web interactive. Aceasta ofer avantajele
clasice unei soluii NoSQL, cum ar fi flexibilitatea modelului de
date, uurina , performana i capacitatea de a oferi disponibilitate 100%.
Couchbase a aprut ca urmare a mbinrii a dou tehnologii
populare NoSQL:
Membase - ce ofer persisten, replicare i partiionare
folosind tehnologia performant memcached.
CouchDB - care a fost iniiatorul folosirii formatului JSON
pentru modelarea datelor.
Caracteristicile principale
Model de date flexibil
Performan predictibil
Fiabilitate i securitate
Couchbase ofer posibilitatea de a controla accesul la date pe
baza combinaiei username/parola. Credenialele sunt transmise
ntr-un mod securizat prin reea. Datele senzitive sunt protejate
n timpul transmiterii de la client la aplicaie i viceversa.
Fiabilitatea Couchbase-ului este dat de faptul c nu exist
un singur nod care ar putea provoca indisponibilitatea sistemului, atta timp ct datele sunt replicate pe mai multe noduri.
Funcionalitile precum XDCR (Cross Data Center Replication),
failover, backup i restore ajut asigurarea unei disponibiliti a
sistemului n cazul unor probleme neprevzute, fie la nivel de nod
sau de centru de date.
Uurina integrrii
Couchbase ofer o suit de librrii pentru diverse limbaje de
programare cum ar fi: Java / .NET / PHP / Ruby / C / Python /
Node.js. Aceste librrii faciliteaz integrarea soluiei n orice tip
de aplicaie.
Pentru operaia de citire, Couchbase ofer un mecanism de
cutare bazat pe chei. Clientul cere un document pe baza unei
chei i doar serverul responsabil de gzduirea partiiei n care se
afl cheia, va fi contactat.
Couchbase ofer i un mecanism de cutare bazat pe interogarea unui index (View). Cutarea este distribuit la toate
Couchbase Data
25
programare
Introducere n Couchbase - soluie NoSQL bazat pe Documente
Data Buckets
Datele sunt stocate n cluster-ul Couchbase folosind aa numitele Data Buckets. Buckets-urile sunt containere virtuale izolate,
ce formeaz un group logic de date n cadrul unui cluster. Un
Bucket este echivalentul unei baze de date. Bucket-urile ofer un
mecanism securizat de organizare, configurare (memorie, numrul de replici, etc.) i analiz a datelor stocate.
vBuckets
Un vBucket este o entitate logic responsabil de un subset
din spaiul de chei ale unui cluster Couchbase, fiind folosite pentru distribuia uniform a informaiei n cluster. Acestea sunt
responsabile att de distribuia datelor ct i de suportul replicilor
pe mai multe noduri.
Fiecare identificator de document (cheie) aparine unui
vBucket. O funcie de mapare este folosit pentru determinarea
vBucket-ului de care aparine un document. Aceast funcie ia
ca parametru ID-ul documentului i returneaz un identificator
de vBucket. Odat calculat, se consult un tabel ce ine maprile
dintre vBucket-uri i nodurile gazd. Acest tabel conine un rnd
pentru fiecare vBucket. Un server poate fi responsabil pentru mai
multe vBucket-uri.
Arhitectura
Chei i metadate
Toate datele salvate n Couchbase reprezint documente cu
chei asociate. Cheile reprezint identificatori unici per document,
iar valorile pot fi documente n format JSON sau un stream de bii
sau alte obiecte serializate ntr-o alt form.
Cheile sunt cunoscute i ca ID-uri de documente i reprezint
similarea un chei primare n SQL. O cheie poate fi format din
orice caractere i trebuie s fie unic.
Toate documentele conin metadate. Metadatale sunt stocate
mpreun cu documentele i sunt folosite pentru administrarea
acestora. Ele sunt de trei tipuri:
CAS Value - o form de baz de concuren optimistic;
Time to Live (ttl) timpul de expirare a unui document;
Flags - o varietate de opiuni folosite la stocare, extragere,
modificare i tergere de documente;
Couchbase SDK
Couchbase SDK
26
vBuckets
Resilience
Interogarea datelor
Exist dou abloane de interogare a datelor din Couchbase.
Cel mai eficient este bazat pe interogarea de chei. Dac este
cunoscut cheia documentului cutat, complexitatea cutrii
unui astfel de document este de O(1). Este de asemenea posibil cutarea documentelor multiple folosind operaia multi-get.
Extragerea documentelor multiple este foarte eficient n cazul n
care aplicaia client are de a face cu o list de documente, deoarece numrul de interaciuni este redus la minim.
Un alt ablon de interogare a datelor este bazat pe aa
numitele View-uri, cunoscut i sub numele de index. Acestea
reprezint un mecanism folosit pentru interogarea de date din
Couchbase. Pentru a defini un View, se creeaz un document specific numit design document, care conine un cod JavaScript ce
Performana
Performana trebuie msurat folosind scenariile similare
unui mediu din producie. Acest lucru poate ajuta s nelegem
caracteristicile performanei pentru anumite tipuri de situaii i s
alegem tehnologia potrivit pentru cerinele aplicaiei dezvoltate.
Unul dintre testele de performan de referin pentru compararea tehnologiilor NoSQL este YCSB (Yahoo Cloud Serving
Benchmark). Scopul acestuia este s se canalizeze asupra testrii
diverselor tipuri de baze de date i asupra analizei performanei.
YCSB este open-source, extensibil, are un numr mare de conectori pentru diverse tipuri de tehnologii, este reproductibil i
compar latena vs randament (throughput).
Reads P99
27
programare
Monitorizare
Couchbase Server include un set complet de statistici i
informaii de monitorizare. Statisticile sunt oferite prin intermediul interfeelor de administrare. Una dintre ele este consola de
administrare web, care include grafice n timp real a datelor de
performan.
Writes P99
Performan i consisten
Pentru asigurarea consistenei, este important execuia
operaiilor de citire/scriere pe nodurile primare. Soluiile NoSQL
ce se bazeaz pe un singur nod primar sunt limitate din punct de
vedere al performanei, deoarece clienii nu pot folosi la capaciMonitor Graph
tate maxim celelalte noduri aflate n cluster. Prima alternativ
Statisticile sunt mprite n mai multe grupuri, permind
este de a efectua operaia de citire pe toate nodurile (att primare identificarea diferitelor tipuri de probleme:
ct i secundare). n acest caz, performana de citire este foarte
Per Nod - indic utilizarea de procesor, memorie, I/O pe
bun, ns nu mai este garantat consistena pentru c replicarea
fiecare server din cluster;
datelor este asincron. A doua alternativ este replicarea sincron
Per vBucket - indic statisticile de utilizare i datele de
care asigur consistena datelor, ns contribuie la degradarea
performan pentru fiecare vBucket;
performanei.
Per cozi de disc - monitorizeaza cozile folosite pentru citirea i scrierea informaiilor pe disc i ntre replici. Poate fi util
pentru a vedea dac cluster-ul necesit extindere prin adugare
de noduri noi.
Exemple
Activitatea utilizatorului n timp real
Evenimentele legate de activitatea utilizatorului sunt consumate de un sistem de messaging (kafka) pentru a stoca informaiile
relevante n Couchbase. Acest serviciu este capabil s rspund
n timp real la urmtoarele ntrebri: cnd un anumit utilizator
Single Primary Node
a fost activ ultima dat? A jucat vreodat un anumit joc? Toate
Prin comparaie cu prima abordare, Server-ul Couchbase asi- interogrile pe acest serviciu se execut extrem de rapid. Bazat pe
gur consistena datelor. De asemena, acesta execut operaiile de rspunsuri la aceste ntrebri, alte aplicaii sunt capabile s segcitire doar pe nodurile primare pentru asigurarea consistenei. menteze clienii pentru diverse flow-uri de business.
Singura diferen este c toate nodurile sunt utilizate la capacitate
maxim, pentru c fiecare nod este primar pentru un subset de Stocarea preferinelor utilizatorului
partiii de date.
Stocarea diverselor informaii despre preferinele utilizatorului ce pot fi folosite ntre mai multe produse ale unei aplicaii web.
Aceast soluie poate fi folosit ca alternativ la folosirea sesiunii
HTTP, cookie-urilor sau stocarea n baze de date relaionale.
28
Resurse
1.
2.
3.
4.
5.
6.
7.
8.
RDBMS vs NoSQL;
Couchbase Server Architecture Review;
Betfair plus Couchbase;
Couchbase blows competition;
Couchbase performance benchmarking;
No SQL performance series;
10 enterprise usecases for Couchbase;
MongoDB vs Coucbase showdown.
29
testare
Daniela Crian
daniela.crisan@isdc.eu
Senior Tester
@ ISDC Romania
Este important
s dezvoltm aptitudini care ne vor
ajuta s nelegem
fe lu l n c are s e
abordeaz testarea software-ului.
Aceste aptitudini ne
ajut s dobndim
credibilitate i s
ctigm respectul
altor profesioniti
implicai n dezvoltarea software.
Cu o baz solid de aptitudini i
competene avem o ans mai mare de a
reui n ceea ce facem: vom fi capabili s
oferim produse mai bune, i n sfrit, vom
avea clieni i utilizatori mai satisfcui.
Ce este un tester?
30
noi suntem gardienii care asigurm calitatea unui produs i satisfacia clientului.
CE face un tester?
arhiteci, programatori i requirements engineer), reieind urmFr o gndire critic ar fi dificil de planificat testele care
toarea list de aptitudini:
verific c totul e conform obiectivelor proiectului. Persoanele
cu o bun gndire critic pot s i identifice propriile lipsuri n
nelegere: ele tiu exact cnd i cum s cear clarificri. Aceste
persoane pot ctiga mai mult respect din partea unui coleg recunoscnd ceea ce nu tiu, dect s trateze superficial ceea ce nu
neleg.
31
programare
alex.bolboaca@mozaicworks.com
Agile Coach and Trainer, with a
focus on technical practices
@Mozaic Works
32
Versiune scurt
Designul concepe i d form n
mod intenionat artefactelor care rezolv
probleme.
Codul pentru computer este un astfel
de artefact; de aceea, orice bucat de cod
care rezolv n mod intenionat o problem este conceput.
Astfel, TDD este o metod pentru a
obine design.
Un design bun nseamn un design
care are anumite caliti. Cea mai comun
calitate pe care o cutm astzi este aceea
de a putea fi schimbat.
TDD ofer cteva caliti integrate:
testabilitate i rezisten la erori crescut. Dezvoltatorul trebuie s lucreze la
mbuntirea altor caliti, precum aceea
de a fi anjabil. De aceea, specialitii folosesc principiile SOLID pentru a-i ghida
deciziile legate de design.
n acest fel se justific faptul c designul care deine aceste caliti obinute
prin TDD, depinde n mare msur de
abilitile designerului.
Atunci cnd face TDD, dezvoltatorul
concepe design nainte de a ncepe (deoarece utilizeaz un cadru web MVC) i pe
toat durata ciclurilor TDD: cnd scrie testul (alege numele clasei/ metodei, decide
33
programare
untem ntr-o form mai mare sau mai mic dependeni de loguri aceasta este realitatea. Scopul acestui articol nu este s
prezint o anumit tehnologie Java de logare ci nivele superioare de abstractizare pentru colectarea, memorarea i analiza lor.
De asemenea, intenia este de a prezenta cum acestea ne ajut pentru a avea o privire de ansamblu mai clar asupra ceea ce se
ntmpl n aplicaia/aplicaiile noastre dac logm informaii cu sens i un scop clar definit n utilizarea lor.
Dar ce sunt aceste loguri i de ce avem nevoie de ele? Un
mesaj de log este un mic punct, dar mai multe astfel de puncte
nseamn o linie, liniile, o form sau o direcie care trebuie interpretat. Menionm mai jos i alte trsturi:
Starea lor e constant, nu se modific.
Sunt sute de mii, milioane pe zi numrul lor depinde de
natura aplicaiei, de utilizarea sistemelor adiionale pentru
auditarea ei, precum i de prezena aplicaiilor complexe.
Durata de via de dup creare e relativ scurt: 30 de zile,
6 luni sau poate chiar mai mult pentru sistemele financiare
sau care conin informaii mai sensibile. Depinde din nou de
natura aplicaiei, de linia de business care o acoper i dac
se folosesc sisteme adiionale pentru auditare dup care pot
ajunge s fie meninute n mod pasiv n arhive, etc..
n aplicaiile monolitice gruparea logurilor se face de obicei
pe zile i.e. JBoss filename+.yyyy-MM-dd iar analiza lor este de
cele mai multe ori anevoioas, fiind necesare cunotine destul
de avansate n expresii regulare i comenzi Linux sau scripturi de
Python, Scala, etc.. De asemenea, aplicaiile sunt rulate n general
de servicii de hosting private (cloud), iar conectarea din exterior
necesar prelurii acestor fiiere de log, care pot s aib o mrire
considerabil chiar i arhivate, devine consumatoare de timp. La
acestea se adaug i o ngreunare a procesului de analiz. Astfel c
de cele mai multe ori, nu sunt analizate dect atunci cnd cineva
ncepe s se plng de o problem, cnd sistemul nu mai rspunde cu aceeai viteza solicitrilor sau cnd o greeal se repet
34
//validation, others
MetricsUtils.getInstance().
incIdsToMigrate(idSToMigrate.size());
.
} finally {
context.stop();
if (migrationSession.isGeneralError()) {
MetricsUtils.getInstance().
incFailedMigrationSessions();
}
}
Proces:
1. Aplicaiile folosesc appender-ul pentru consol (log4j +
slf4j) - stdout.
2. De aici folosim loggregator (CloudFoundry) agent care
preia stream-ul de date de la stdout.
3. Logstash primete logurile, le proceseaz (ETL, transformare date n formate generice, etc.).
Loguri:
[MetricsUtils.info:110] type=TIMER, name=com....
4. Logurile sunt indexate apoi n Elastic.
MigrationUtilsImpl.migration-timer, count=463,
5. Folosim Kibana pentru a le afia.
min=14185.432459, max=120866.415675,
mean=48638.78311404348, stddev=33618.49316878979,
median=33732.338869, p75=68521.92468899999,
p95=120788.85010139999, p98=120866.415675,
p99=120866.415675, p999=120866.415675, mean_
rate=0.0023544359078945367, m1=2.964393875E-314,
m5=2.2626576149598838E-82, m15=4.532485314583121E-30,
rate_unit=events/second, duration_unit=milliseconds
[MetricsUtils.info:108] type=HISTOGRAM, name=com..
MigrationUtilsImpl.migration-sizes, count=463,
min=4, max=35, mean=19.541666666666668, stddev=12.021644127831763, median=19.5, p75=33.75,
p95=35.0, p98=35.0, p99=35.0, p999=35.0
2. histograme
3. timer
Concluzii:
Trecerea de la aplicaii monolitice la arhitecturi distribuite
aduce flexibilitate i noi provocri. Una dintre ele e modul n care
se realizeaz logarea, modul cum le salvm i accesm. Un aspect
important l are i calitatea informaiilor pe care le logm. tim
www.todaysoftmag.ro | nr. 35/mai, 2015
35
programare
Loguri i metrici n Java
c loguri precumSave <entity> nu aduc prea mult sens. Astfel posibilitatea s reacionam la variaii ( a timpilor de rspuns, a
trebuie s ne asigurm ca logm acele informaii preioase care numrului de itemuri procesate pe minut ) care sunt primul semn
au sens n timp i ne ajut s nelegem modul n care e utilizat sis- c nu avem un sistem stabil.
temul, precum i performana actual a acestuia sau necesitile
viitoare.
O continu monitorizare a logurilor, corelarea lor poate s
Vasile Mihali
vasile.mihali@arobs.com
ne dea o nou viziune asupra cum putem mbunti un sistem
sau ct de stabil l putem face. Condiii de baz ntr-un sistem
Senior Software Engineer
@ Arobs
distribuit sunt vizibilitatea pe care noi o avem asupra a ceea ce
se ntmpl i monitorizarea logurilor. Numai aa vom avea
36
management
a fel ca i n cazul oamenilor, i n cel al organizaiilor, buna cretere se refer la principiile, valorile, credinele i comenzile
transmise prin educaie. n context profesional, numim acest pachet educaional Cultur Organizaional. n rndurile urmtoare vom analiza cteva din elementele care influeneaz buna cretere organizaional.
37
management
celorlali. Dac nelegem c n organizaia
n care muncim nu este de dorit s greim,
atunci cnd o vom face vom ncerca s
ascundem aceste greeli sau s i gsim pe
alii responsabili pentru ele. La astfel de
concluzii ajungem cnd suntem angajai
ai unor organizaii care promoveaz culturi agresiv defensive, de competiie ntre
angajai, control i presiune. Aceste culturi ne fac s acionm din nesiguran, s
simim tot timpul nevoia de a demonstra
ceva i, n timp, duc la conflicte, lips de
cooperare, tensiuni i relaii de proast
calitate.
Organizaiile constructive sunt
cele care ne stimuleaz s nelegem c
ateptrile de la noi sunt legate de a gndi
n termeni de soluii, nu de a detecta probleme sau de a afla vinovai. Ne ncurajeaz
s ne exprimm ideile i s gndim n afara
cutiei, s i valorizam pe cei din jur i s fim
orientai ctre a dezvolta reele de suport
i a face echip cu ceilali. n astfel de
organizaii lipsete teama de a grei, nevoia
de control i individualism, competiia
distructiv i teama de schimbare.
Astfel de culturi constructive se
dezvolt prin valorizarea deopotriv a
oamenilor i a rezultatelor pe termen lung,
prin orientarea ctre mbuntire continu i inovaie, prin stimularea gndirii pe
termen lung, a modurilor de lucru structurate, prin crearea premiselor de respect,
ncredere, comunicare deschis i suport.
Acestea sunt culturile n care oamenii se
simt bine, ajung s fie fericii i motivai
s aduc plus valoare. Ceea ce motiveaz
cu adevrat angajaii este cultura n care
este resimit sentimentul de apartenen,
este organizaia n care angajaii se simt
valorizai, protejai, ncurajai. i, nu n
ultimul rnd, c rezultatul muncii lor este
de valoare.
Culturile constructive asigur succesul
organizaiilor pe termen lung, iar impactul
lor este vizibil n:
Motivaie crescut,
Excelen n gestionarea clienilor i
calitate a serviciilor oferite,
Inovaie,
38
cristian.philipp@essentialtm.ro
Senior Consultant & Managing Director
@ Essential Training and Consulting
programare
startup
Utilitate / funcionaliti
Lucian Pop
lucian.pop@fizbo.ro
Cofondator
@ Fizbo
i caui chirie n regim normal sau hotelier, eti proprietar i vrei s ai o legtur
direct cu potenialii clieni? Fizbo i vine
n ajutor prin aplicaia mobil de Android i
IOS care simplific i inoveaz ntregul proces de nchiriere.
Arhitectura aplicaiei
Partea de client este reprezentat de
aplicaia nativ de Android i aplicaia nativ
de IOS.
Partea de server este constituit din servicii web Java RESTful care ruleaz ntr-un
server web Tomcat, o instan de MySQL
pentru stocarea metadatelor i un File Server
pentru stocarea pozelor.
Comunicarea ntre client i server se face
peste protocolul https, mesajele trimise fiind
n format JSON.
1. Aplicaia de Android
Aplicaia de Android este disponibil pentru toate telefoanele i tabletele cu
Android ncepnd de la versiunea 2.2 Froyo
i pn la ultima versiune 5.1 Lollipop.
Arhitectura aplicaiei se muleaz perfect
pe sistemul de operare i nu interfereaz
cu procesul principal responsabil pentru
managementul aplicaiilor i rspunderea la
comenzile utilizatorului.
39
startup
Fizbo, Simply rent aplicaie mobil pentru nchirieri imobiliare
SDWebImageView, iar
persistena datelor este
asigurat de sistemul de
management al datelor
CoreData. Harta interactiv folosete framework-ul
MapKit, iar pentru preluarea datelor de pe server
i parsarea lor se folosesc
tot framework-uri native
Objective C. Pentru logarea
utilizatorului cu Facebook,
se utilizeaz kit-ul de dezvoltare Facebook iOS.
Serverul
Aplicaia de IOS
Aplicaia Fizbo este conceput pentru
a funciona pe toate tipurile de dispozitive
mobile Apple: iPod, iPhone i iPad, iar versiunea minim a sistemului de operare iOS
suportat este 7.0
n ceea ce privete arhitectura aplicaiei
se folosete ablonul arhitectural MVC,
mpreun cu alte tehnici de programare
specifice limbajului Objective C. Astfel,
arhitectura proiectat este modular i
permite modificarea componentelor existente sau adugarea unor noi componente
cu uurin.
Pentru scalarea interfeei utilizatorului
pentru toate dimensiunile dispozitivelor
s-a folosit AutoLayout. Caching-ul imaginilor se realizeaz folosind componenta
40
S e r ve r u l apl i c a i e i
Fizbo are o arhitectur light i expune
funcionalitile accesibile
din aplicaia mobil printrun Faade de servicii web
Java RESTful.
Sub acest Faade gsim
clase Java responsabile
pentru logica de business a aplicaiei.
Mai departe avem Data Access Objects
care opereaz pe metadatele din baza de
date MySQL.
Serverul prezint de asemenea i un
File Server pentru stocarea pozelor ofertelor din aplicaie care sunt servite peste
https.
Arhitectura light a serverului face ca
pachetele care circul ntre client i server
s aib dimensiuni foarte mici i s fie servite n mai puin de o jumtate de secund.
Provocri n dezvoltare
Prima noastr provocare a fost crearea
unei aplicaii prietenoase i simplu de utilizat. Am reuit s realizm acest lucru prin
interfaa intuitiv care faciliteaz accesibilitatea imediat la orice informaie sau
operaie legat de procesul de nchiriere.
Cea de-a doua provocare a fost
uurarea efortului depus de proprietar
pentru publicarea unei oferte. Pe baza
modulelor de localizare a dispozitivului,
a camerei i a geolocalizrii facilitate de
Google Geocoding API am reuit s facilitm adugarea unei chirii n mai puin
de dou minute. Dup adugare, chiria
devine imediat vizibil pe hart celor care
caut chirie n zon.
Invitaie
Echipa Fizbo te invit s-i caui chirie
sau s-i publici gratuit chiria cu aplicaia
mobil Fizbo. Aceasta este disponibil att
n Google Play pentru utilizatorii Android
ct i n App Store pentru utilizatorii iOS.
Un scurt video de prezentare poate
fi vizionat la adresa https://www.youtube.
com/watch?v=tMG9krOf-BY
contabilitate
ersoana fizic autorizat- P.F.A.- se definete ca persoana autorizat s desfoare orice form de activitate economic permis de lege, folosind n principal fora sa de munc. Activitile economice pot fi desfurate n toate domeniile, meseriile,
ocupaiile sau profesiile pe care legea nu le interzice n mod expres pentru libera iniiativ.
41
contabilitate
management
Totul despre Persoana Fizic Autorizat din punct de vedere fiscal n 2015
C.A.S. nu poate fi mai mic de 845 lei, dar nici mai mare de12.075 ca activitate dependent de pltitorul de venituri salariale, n
lei. Aplicnd cota de CAS de 26,3% asupra acestor valori, PFA condiiile n care P.F.A. are i un contract de munc activ, ca
va plti la pensie minimum 222 lei (35% x 2.415 lei x 26,3%) i salariat.
maximum 3.176 lei (5 x 2.415 lei x 26,3%) pe lun.
n acest an tema principal a controalelor inopinate i a
controalelor fiscale extinse efectuate de ANAF la firme (att din
Beneficiaz o persoan fizic autorizat de omaj sau concedii
domeniul IT, ct i din alte domenii) au fost veniturile salariale,
medicale?
prin acesta nelegndu-se verificarea amnunit a tuturor chelPe lng contribuiile obligatorii amintite pn acum exist tuielilor realizate de firme, fie c e vorba de cheltuieli cu prestarea
i contribuii opionale cum sunt cea la bugetul asigurrilor pen- de servicii de ctre cei nregistrai ca P.F.A., fie c e vorba de alte
tru omaj, cea pentru asigurarea n caz de accidente de munc i cheltuieli care pot fi considerate avantaje n natur ale salariailor.
boli profesionale, precum i cea pentru concedii i indemnizaii Mergnd pe relaia firm P.F.A., prin controale ncruciate
(F.N.U.A.S.S.).
exist posibilitatea verificrii naturii relaiilor, dac sunt relaii
Astfel, dei asigurarea pentru omaj nu este obligatorie pentru dependente sau independente ntre firme i persoanele fizice
o persoan fizic autorizat, ea poate alege s o plteasc, n cazul autorizate.
n care dorete s beneficieze de ajutor de omaj, atunci cnd, nu
Consecina reconsiderrii activitii de tip P.F.A. ca fiind una
va mai avea activitate. Contribuia lunar la omaj este de 0,5% dependent este aceea c impozitul pe venit i contribuiile socidin venitul asigurat. Persoanele fizice pot ncheia contract de asi- ale obligatorii vor fi recalculate la nivelul contribuiilor salariale,
gurare pentru omaj cu Agenia pentru ocuparea forei de munc fiind datorate solidar att de angajator, ct i de angajat. Termenul
n a crei raz teritorial i au domiciliul.
de solidaritate se refer la posibilitatea organului fiscal de a se
Nici contribuia pentru concedii i indemnizaii (F.N.U.A.S.S.) adresa fie pltitorului de venit (angajatorului), fie prestatorului
nu este obligatorie, ns P.F.A. poate alege s o plteasc dac de munc (angajatul).
dorete s beneficieze de indemnizaii pentru concediile medicale.
Conform O.U.G. nr. 158/2005 privind concediile i
Codul fiscal definete la art. 7, alin. (1), pct. 2.1 criteriile pe
indemnizaiile de asigurri sociale de sntate, contribuia pen- care trebuie s le ndeplineasc o activitate pentru ca ea s fie
tru concedii i indemnizaii este de 0,85% din veniturile supuse considerat activitate dependent:
impozitului pe venit.
a. Beneficiarul de venit se afl ntr-o relaie de subordonare
fa de pltitorul de venit, respectiv organele de conducere ale
Registre obligatorii
pltitorului de venit, i respect condiiile de munc impuse de
n afara modului de impozitare, diferenele dintre cele dou
acesta, cum ar fi: atribuiile ce i revin i modul de ndeplinire a
sisteme de impozitare sunt legate i de modul de inere a evidenei
acestora, locul desfurrii activitii, programul de lucru.
contabile.
b. n prestarea activitii, beneficiarul de venit folosete excluPersoanele fizice autorizate care aplic sistemul de impozisiv baza material a pltitorului de venit, respectiv spaii cu
tare pe norm de venit aplic cel mai simplu mod de eviden
nzestrare corespunztoare, echipament special de lucru sau de
contabil i declarare ctre A.N.A.F., acestea fiind obligate s
protecie, unelte de munc sau altele asemenea i contribuie cu
completeze numai partea din Registrul-jurnal de ncasri i
prestaia fizic sau cu capacitatea intelectual, nu i cu capitalul
pli referitoare la ncasri pentru activitatea respectiv. Scopul
propriu.
urmrit cu inerea evidenei ncasrilor este legat de urmrirea
c. Pltitorul de venit suport n interesul desfurrii
atingerii/depirii plafonului de cifr de afaceri pentru ncadraactivitii cheltuielile de deplasare ale beneficiarului de venit,
rea P.F.A. la pltitor de T.V.A. (atenie, venitul i nu ncasrile,
cum ar fi indemnizaia de delegare-detaare n ar i n stridetermin cifra de afaceri, i acesta trebuie s fie sub 220.000 lei/
ntate, precum i alte cheltuieli de aceast natur.
an pentru ca P.F.A. s fie nepltitor de T.V.A.).
d. Pltitorul de venit suport indemnizaia de concediu de
ncepnd cu 1 Martie 2015 contabilitatea n partid simpl,
odihn i indemnizaia pentru incapacitate temporar de
obligatorie pentru P.F.A., pltitoare de impozit n sistem real, se
munc, n contul beneficiarului de venit.
ine conform OMFP 170/2015. Principalele modificri aduse de
acest ordin sunt:
Dac oricare dintre cele patru criterii de mai sus este nde Registrul Jurnal de ncasri i pli i Registrul Inventar nu plinit n relaia firm P.F.A., activitatea poate fi reconsiderat
mai trebuie vizate de ctre ANAF;
ca fiind dependent.
Persoana fizic care este interesat de conducerea
contabilitii n partid dubl, aceasta poate conduce contabilin decizia de a ncepe o activitate comercial ca P.F.A. tretatea n acest mod de la nceputul exerciiului financiar ulterior buie, de asemenea, avut n vedere faptul c rspunderea persoanei
celui n care s-a decis schimbarea conducerii contabilitii;
pentru obligaiile asumate n legtur cu activitatea desfurat
Persoanele nfiinate dup 1 martie 2015 pot opta nc de este cu ntreg patrimoniul su personal. Avnd calitatea de
la nfiinare la conducerea contabilitii n partid dubl sau n comerciant, persoana fizic autorizat poate fi supus procedurii
partid simpl. Dac se opteaz pentru contabilitate n partid insolvenei.
dubl, aceasta se va conduce aplicnd reglementrile valabile
operatorilor economici, pn la nivel de balan inclusiv i fr Ce modificri legislative se pregtesc pentru 2016?
a se ntocmi situaii financiare anuale.
Cu toate c ar trebui s fie cea mai simpl form de desfurare
a unei activiti comerciale, legislaia s-a modificat continuu penCe nseamn activitate dependent?
tru acest segment.
Indiferent de modul de impozitare, un posibil risc legat
n prezent exist n curs de aprobare un proiect de modide activitatea de tip P.F.A. este reinterpretarea de ctre ANAF ficri ale Codului Fiscal care vizeaz i modificri la nivelul de
42
ioana.varga@aiconsulting.ro
Expert contabil
Managing Partner
@ A&I Consulting
Ioana Costea
ioana.costea@aiconsulting.ro
Expert contabil
Managing Partner
@ A&I Consulting
43
programare
Acceptarea schimbrii.
Drumul ctre un bug pe lun
Patks Csaba
patkoscsaba@syneto.eu
Agile Software Developer
@ Syneto
44
n vara anului 2010 eram n cutarea unui nou loc de munc. ntmplarea
a fcut s ajung la compania Syneto. Aici
am fost repartizat la un proiect mai vechi,
acum retras din dezvoltare. Cariera mea
de programator de pn atunci a constat
n programare individual. Mai precis,
realizare programelor de dimensiuni mai
reduse pentru companiile la care activam
pe post de administrator de reea.
nainte s ajung la Syneto, att la coal
precum i la joburile precedente, am folosit tehnici de management de proiecte
Waterfall. ncepndu-mi activitatea la
aceast companie pe un proiect planificat
ntr-o manier similar, nu am putut dect
s fiu fericit c voi activa ntr-un mediu ct
de ct familiar. Puin tiam eu atunci despre
ce m ateapt.
Dup cteva luni ns, anumite probleme legate de proiect au nceput s
devin evidente. Lansrile noilor versiuni
erau mereu n ntrziere i bugetul proiectului era pe cale s fie epuizat nainte de
termen. Aadar o nou viziune, gndire i
mod de lucru erau absolut necesare.
ntre anii 2000 i 2005 compania a
avut o metod de dezvoltare haotic. Pur
Cltoria noastr
Provocri organizatorice
Orice echip poate fi definit prin
practicile de lucru care le aplic zi de zi.
programare
Gsirea i adoptarea continu de noi astfel de practici n vederea
mbuntirii procesului de dezvoltare este una din provocrile
majore n agile. Noi la Syneto, suntem ferm convini c cea mai
bun metoda de a gsi practicile potrivite pentru proiectul curent
este de a adopta astfel practici poteniale, de a le face cu rigurozitate ase luni i de a evalua la finalul perioadei utilitatea lor.
Dac gsim o practic inutil, renunm. Dac o gsim perfect,
o continum. Dar cele mai multe ori identificm doar pri izolate
ale unei practici care ne pot fi de folos. n aceste cazuri, adoptm
aceste bucele ca parte a procesului nostru n ansamblu.
Descoperirea scrum-ului
programare
release. Sprint Backlog coninea ceea ce urma s facem n sptmna curent. Development coninea task-urile n lucru, iar Done
cele terminate.
Am fcut primul pas n transformarea noastr agile. Am
acceptat prima schimbare, aceea de a urmri ntreaga activitate
de development prin acele sticky notes.
Cu trecerea timpului, n mod treptat, Flavius ne-a introdus
i n celelalte aspecte ale scrum-ului. Dup cteva sptmni am
avut prima retrospectiv, dup aceea am nceput s facem planificare de sprint-uri cu ocazia asta am nvat termenul de sprint.
Culminnd n miniretrospective de sprint i n daily standups.
Dar nu numai edinele de scrum erau noi, ci i felul n care
am nceput s comunicm. Am nvat mpreun termeni precum
user story, story points, technical tasks, standup meeting, definition
of done, etc. . Nu toate aceste lucruri erau noi n ceea ce privete
activitatea noastr, dar pn atunci nu erau bine definite i formalizate n spatele unor expresii.
Dup primele cteva lansri de versiuni noi am nceput s
simim efectele pozitive ale retrospectivelor i ale urmririi
activitii cu grafice burndown. n anii ce au urmat am experimentat cu mai multe tipuri de retrospective, dintre care ne-au
marcat activitatea dou: good-bad-actions i the sinking ship.
i acum in minte acea zi nsorit de primvar cnd managerul nostru de atunci, Flavius, a venit cu o or ntrziere la lucru.
Foarte necaracteristic lui, care de regul era prima persoan sosit
la serviciu.
La puin timp dup l-a trimis pe Bogdan, un coleg de-al
nostru, s cumpere ceva. Eram prea concentrai i ocupai cu
programarea, aa c iniial nu am acordat mare atenie evenimentelor. Dup cteva minute Bogdan s-a ntors cu mai multe foi
de A3, un munte de sticky notes i o grmad de carioci. Pentru
un moment lucrurile parc erau interesante dar programarea
era mai interesant. Ne-am ascuns toi n spatele monitoarelor
noastre i ne-am continuat activitatea de coding.
Revizuirea Planning Board-ului
Nu mi pot da seama ct timp a trecut nainte ca Flavius s ne
Cndva pe la mijlocul lui 2011 am nceput s folosim board-ul
ntrerup din activitate. Spre surprinderea tuturor, pe perete, a ntr-un mod tot mai avansat. Iat cteva aspecte cheie ale revizufost construit un fel de planning board. Nu prea ne-am dat seama irii ntreprinse:
despre ce este vorba, dar Flavius a continuat cu explicaii rigu1. Coloana de Development a fost mprit n altele trei: una
roase. Prima coloan Release Backlog va conine tot ce trebuie
de design pentru activitile de planificare API i UI, una de
fcut n viitor. Dup aceea, vom lucra n iteraii, i vom discuta ce
programare efectiv, numit n continuare tot Development i
vom face n fiecare iteraie. Aceste lucruri vor fi puse pe Sprint
una de testing. Orice task trebuia s treac printr-o procedur
Backlog. Dup care, fiecare dintre noi i va alege ceva de fcut
de testare de ctre o alt persoan nainte s fie considerat
i va muta sticky note-ul n coloana Development. Cnd e gata,
terminat.
notia se va muta n coloana Done. Simplu, aa-i? Nu chiar
2. Fiecare coloan a fost mbuntit cu o definiie a lui done.
Politica era c numai un task ce ndeplinete toate condiiile
poate fi mutat n coloana urmtoare.
3. Au fost create categorii pentru activitile noastre: story,
pentru mbuntiri i funcionaliti noi , bugs, pentru defecte,
technical tasks, pentru activiti adiacente proiectului, cum ar fi
instalarea unui server de compilare sau testare automat.
4. Totui, consider c cea mai important schimbare a fost
asumarea rspunderii pentru task-uri prin ataarea unei etichete mici cu numele celor ce lucreaz la task-ul respectiv.
Adoptarea Lean
Scrum era bun pentru disciplin, dar am identificat cteva
probleme cu el. Alocarea resurselor era una din ele. Aa c am
nceput s studiem i s aplicm tehnici lean n cadrul proiectului
nostru.
Am ncercat s inem cont de toate principiile lean, dar
dou din ele au ieit n eviden: eliminarea pierderilor prin
eliminarea timpilor mori n lanul dependinelor dintre programatori cu ajutorul pair-programming-ului, sau prin ncurajarea
unor activiti de minor bugfixing n timpii mori amplificarea
nvrii prin participarea la conferine, cursuri, ncurajarea
experimentrilor prin code retreat-uri i oferirea unei biblioteci
de specialitate exhaustiv.
45
programare
Era digital
La un moment dat am identificat o problem cu board-ul
fizic: era mult prea dificil s organizm i s identificm task-uri
pe backlog. Aa c am trecut la un board digital, sub forma unei
aplicaii. Acesta ne-a permis identificare i organizare rapid, ns
a introdus o problem profund i neateptat. Oamenii nu mai
aveau ceva vizibil tot timpul n fa, ci din contra, trebuiau s fac
o aciune contient de a deschide un web browser i a naviga
la pagina aplicaiei. Iar cum programatorii sunt lenei notorii,
board-ul digital a fost un eec iniial.
Totui un televizor pe perete a rezolvat problema vizibilitii.
Dup ce programatorii s-au obinuit s aib mereu un tab cu
aplicaia deschis, chiar i televizorul a devenit inutil.
Ce am nvat
Probabil cel mai important lucru pe care l-am nvat este
c singura constant n via este schimbarea. Indiferent c este
vorba de viaa personal, profesional sau de proiectul favorit,
felul n care ne manifestm i ne organizm este n continu
schimbare.
46
sponsori
powered by