Sunteți pe pagina 1din 40

Nr.

38
2015
www.todaysoftmag.ro
www.todaysoftmag.com
No.
36August
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

Download from

Windows Store

I Love I Hate NY

mnia

Software Project Management n Ro

Asigurarea Accesului Autorizat la


Resursele Web prin Utilizarea
ASP.NET Identity
A fi sau a nu fi un obiect:
despre problema auto-referinei
Elevii ACADEMY+PLUS n
internship-uri i poziii de junior

BuyAndHelp.ro un proiect despre


marketing afiliat i dorina de a ajuta
Beneficiile extra-salariale
n 2015 sub lup
Gestionarea datelor n cretere
cu baze de date relaionale
Conflictul dintre mrci
i domenii de Internet

6
BuyAndHelp.ro un proiect
despre marketing afiliat i dorina
de a ajuta
Angela Lepdatu

8
Software Project Management
n Romnia
Razvan Gai

10
Siemens Developers
Day 2015
Razvan Opris

12
Asigurarea Accesului Autorizat la
Resursele Web prin Utilizarea
ASP.NET Identity
George Rus

16
Gestionarea datelor n cretere
cu baze de date relaionale
Alin Luncan

20
A fi sau a nu fi un obiect:
despre problema auto-referinei
Vlad Ardelean

22
I Love
I Hate
NY
Tudor Stnean

26
Elevii ACADEMY+PLUS
n internship-uri i poziii de junior
Gloria Csizser

30
Beneficiile extra-salariale
n 2015 sub lup
Adrian Beleag i Adrian Benta

35
Cnd ne doare,
mergem
la medic
Szilard Kacso

37
Btlia din online:
marc vs domeniu de Internet
Claudia Jelea

editorial

Ovidiu Man

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

e apropiem de septembrie, luna n care lucrurile intr pe fgaul normal


iar atunci cnd suni pe cineva nu te mai gndeti c poate este n concediu.
Redacia Today Software Magazine a intrat deja n acest ritm prin cele dou
lansri ale revistei n Cluj i n Oradea. De asemenea, am lansat primul clip video de
promovare a revistei, sper s v plac i ateptm prerile voastre, l putei vizualiza pe
pagina noastr de Youtube. Ne pregtim i s lansm agenda evenimentului Cluj IT
Days, 24-25 noiembrie care a ajuns la cea de-a treia ediie. Dac anul trecut am vorbit
n seciunea de leadership despre tranziia de la outsourcing la produs, anul acesta n
prim plan vor fi produsele i vom avea n premier o serie de lansri pentru piaa local
clujean. Profit de ocazie i v mai spun cteva cuvinte despre programez.ro care va fi
disponibil n curnd. Utilizatorii vor avea ocazia s i creeze prin realizarea de teste
online un profil tehnic verificat iar n funcie de punctele acumulate vor avea acces la
diferite bonusuri precum reduceri la training-uri sau s vizualizeze job-uri ascunse.
Acestea au fost ultimele nouti din partea echipei TSM. V invit s citii n continuare
acest numr al revistei iar n continuare vom face o scurt trecere n revist a articolelor.
Pstrm totui un pic din plcerea de relaxare a verii acest numr fiind un pic mai
subire. ncepem cu prezentarea a dou startup-uri locale, primul este BuyAndHelp.ro
o idee inedit prin care profit share-ul de la site-urile de e-commerce precum emag.ro,
libris.ro, etc. este redirectat ctre diferite cauze precum: fundaia comunitar CJ, Arca
lui Noi, Simplon, etc. . Nu ne cost nimic iar n felul acesta putem ntr-o mic msur
aceste fundaii. Felicitri Radu Popescu, un vechi colaborator al revistei, pentru aceast
idee !!! Urmtorul startup este tot clujean dar are int piaa din New-York, este vorba
de I Love I Hate NY i i invit pe vizitatori s spun ce le place i ce nu le place despre
acest ora. n continuare, Software Project Management n Romnia propune o istorie
a project management-ului local i cred c ne vom regsi muli ntr-un domeniu care
este puin reglementat i se manifest n funcie de necesitile clientului iar o comunitate i evenimentele sunt ntotdeauna binevenite prin PMI chapter. Pe partea tehnic
v propunem Asigurarea Accesului Autorizat la Resursele Web prin Utilizarea ASP.NET
Identity care prezint metodele de autentificare i autorizare pentru ASP.NET MVC.
Gestionarea datelor n cretere cu baze de date relaionale prezint un caz real de prelucrare de date bazate pe un mediu de stocare SQL i soluia pentru a realiza acest lucru
cu o performan ct mai mare. Spre final v invitm s citii impresiile studenilor care
iau parte la Academy+ dup un an de activitate i modalitile prin care v putei proteja
marca n cazul n care cineva nregistreaz doar pentru profit anumite domenii web.

Ovidiu Man

Fondator Today Software Magazine

nr. 38/2015, 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
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
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

Lista autorilor
Razvan Opris

Tudor Stnean

Location Manager
@Siemens Cluj-Napoca

IOS Developer
@3 Pillar Global Romania

razvan.opris@siemens.com

tudor.stanean@3pillarglobal.com

Gloria Csizser

gloria.csiszer@pitechnologies.ro

Angela Lepdatu

angela.lepadatu@cososys.com
Marketing Professional
@ Buy & Help

Marketing Specialist
@ Pitech+Plus

Adrian Beleag

Razvan Gai

razvan.gai@iquestgroup.com

adrian.besleaga@aiconsulting.ro
Manager Operatiuni
@ A&I Consulting

Project Manager
@iQuest

George Rus

Adrian Benta

Software Developer
@ Yardi Romnia

Consultant Fiscal
@ Benta Consult

Alin Luncan

Szilrd Kacs

George.Rus@Yardi.Com

alin.luncan@accesa.eu
Software Engineer
@ Accesa

adrian@bentaconsult.ro

szilard.kacso@
happy-employees.eu
CEO & Trainer
@ Azimut Happy Employees

Vlad Ardelean

vlad.ardelean@3pillarglobal.com
Software Developer
@ 3Pillar Global Romania

Claudia Jelea

claudia.jelea@jlaw.ro
Avocat & Consilier n domeniul
marcilor
@IP Boutique

ISSN 2284 6352

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. 38/august, 2015

educaie

BuyAndHelp.ro
un proiect despre marketing afiliat i
dorina de a ajuta

ate oficiale furnizate de GPEC ne spun c 1 din 4 internaui cumpr online,


iar n 2014 acetia au cumprat produse i servicii n valoare de aproximativ
1.1 miliarde de euro (o cretere de 40% fa de 2013).

Angela Lepdatu
angela.lepadatu@cososys.com
Marketing Professional
@ Buy & Help

Prin urmare, piaa cumprturilor


online din Romnia este foarte mare i n
cretere. n acest context i marketingul
afiliat a nceput s se dezvolte foarte mult.
n ultimii ani acest concept a luat amploare
i s-a dovedit a fi o surs considerabil de
venit pentru toate prile implicate: afiliai,
comerciani i platformele de afiliere.

Ce este marketingul afiliat?


Marketingul afiliat este o form de
marketing bazat pe performan. Pe scurt,
este procesul prin care afiliaii (denumii i
publisher-i) primesc comisioane procentuale pentru fiecare lead sau vnzare adus
comercianilor pe baza unui cookie. Acest
proces este intermediat de o platform de
afiliere, unde cele dou pri trebuie s fie
aprobate n prealabil. n Romnia, cele
mai cunoscute platforme de afiliere sunt
2Parale i Profitshare. Acestea au pltit n
2014 comisioane de peste 184 milioane de
lei.

nr. 38/2015, www.todaysoftmag.ro

Apariia BuyAndHelp.ro
C ombi nnd a c e st t ip d e marketing cu fundraising-ul, s-a nscut
proiectul BuyAndHelp.ro n cadrul
competiiei Innovation Labs 2015,
susinut de Spherik Accelerator. Drumul
de la idee pn la realitate a fost scurt.
Proiectul a nceput de la 0 n luna martie a
acestui an i a fost lansat oficial la nceputul lunii Iunie. Acesta a atras rapid atenia
mass media, reuind s avem apariii n
numeroase ziare online (Gandul, Monitor
de Cluj sau Ziarul Financiar) dar i n
emisiuni TV precum I Like IT (Pro TV),
Recrutat n Cluj (Digi24) sau tirile TVR1.
Plusul fa de o platform de cumprturi online clasic este partea de HELP
care ofer opiunea de a alege ctre ce
cauz social cumprtorul dorete s
doneze o parte din valoarea produsului.
Ceea ce este foarte important este c nu
se pltete nimic n plus. Noi primim din
partea comerciantului un comision pentru

programare
c i-am adus un client nou, iar o parte din acest comision este
direcionat ctre ONG-ul ales de cumprtor.
Putem explica cel mai bine tot procesul printr-un exemplu
foarte simplu. S spunem c tu doreti s i cumperi o tablet
nou care cost 1000 de lei, de pe website-ul unui magazin online
(s l numim X). Intrnd pe site-ul magazinului X prin intermediul BuyAndHelp.ro (click pe logoul acestuia) noi vom primi un
comision procentual (s presupunem c acesta este 3%). Dup ce
vei cumpra tableta, magazinul X va transfera ctre BuyAndHelp.
ro comisionul de 3% adic 30 de lei, iar noi l vom dona ctre
cauza social pe care vrei s o susii. Toate acestea fr ca tu s
scoi mai muli bani din buzunar.

TODAY SOFTWARE MAGAZINE


online partenere i s avem ct mai multe campanii speciale precum cea cu pe care o avem cu Gxgia Fashion prin care donm
100% din preul a nou rochii unicat. De asemenea, vrem s
permitem crearea de conturi pentru ca vizitatorii s-i poat vizualiza donaiile dar i dezvoltarea unui plugin de browser care va
facilita achiziiile i donaiile online.
Spor la cumprturi!

Statisticile platformei
Website-ul a fost lansat oficial la nceputul lunii Iunie, iar pn
acum am nregistrat 178 donaii n valoare total de aproximativ 2000 lei, cea mai mare fiind de 79 lei. Toate aceste achiziii i
donaii au fost realizate prin intermediul celor peste 40 de magazine online partenere, printre care eMag, Elefant sau Plafar.
n prezent gzduim pe platform 11 ONG-uri i cazuri sociale
dintre cele mai diverse. Utilizatorii notri pot cumpra i dona
pentru asociaiile care se ocup de ngrijirea i sterilizarea animalelor, pentru a susine cursurile de programare ale celor de la
Simplon Romnia sau pentru Centrul de Recuperare Un zmbet cu MIRA. Singurul caz independent pe care l avem n acest
moment este HelpSmaranda, prin care ncercm s strngem
bani pentru tratamentul unei tinere bolnave de cancer.
Ca planuri de viitor, dorim s extindem numrul magazinelor

www.todaysoftmag.ro | nr. 38/august, 2015

management

Software Project Management


n Romnia

a momentul scrierii acestui articol august 2015 Romnia a fost clasat n


multe sondaje drept o prezen notabil pe piaa IT&C global, remarcndu-i-se
fora de munc bine pregtit,cu suport academic i capaciti multilingvistice.

Razvan Gai
razvan.gai@iquestgroup.com
Project Manager
@ iQuest

nr. 38/2015, www.todaysoftmag.ro

Aceast ar a avut ansa s fie implicat n proiecte software de aproape 20 de


ani, acumulnd astfel o experien vast n
outsourcing, servicii exclusiviste precum
i n realizarea de produse. ntrebarea este:
cui i-a revenit rolul de a coordona aceste
proiecte?
Dar nainte de a vorbi despre
Managementul Proiectelor, considerm
util menionarea unei definiii comune
a proiectului: un demers temporar ntreprins pentru a crea un produs, serviciu
sau rezultat unic. Deci, n toi aceti ani,
Romnia a fcut multe demersuri temporare pentru a crea produse sau servicii
care se afl sau nu n producie chiar i n
prezent. Cele mai multe dintre aceste proiecte au nceput ca subproiecte ale unor
proiecte globale mai mari care i-au gsit
calea ntr-o firm de dezvoltare software
romneasc, fiind astfel coordonate de
manageri de proiect strini cu experien,
care au subcontractat buci de lucrare
romnilor. Aadar, efortul de management
pentru aceste proiecte nu a fost chiar att
de complex de la nceput. Dar, bineneles

c aceasta s-a schimbat n timp.

De la antreprenori la Project Managers


Dac ne gndim la nceputuri cine
conducea atunci toat aceast munc
dat echipelor romneti? Proiectele erau
conduse iniial de ctre nii antreprenorii care creaser aceste mici companii cu
echipe mici printr-un management ghidat
uneori doar de regulile bunului sim. n
calitate de oameni de afaceri, antreprenorii
se ocupau de costuri i randament ca i de
compania n sine. Unii aveau diplome n
administrarea afacerilor, alii doar instinctul natural, unii foloseau MS Project, alii
Excel- un instrument de management considerat foarte puternic i n zilele noastre- ,
unii aveau strategii i viziuni, alii doar se
concentrau pe a face o treab bun pentru
o referin activ. Pe msur ce solicitrile
pentru scalabilitate au crescut i din ce n
ce mai muli dezvoltatori software s-au
alturat domeniului, structurile de management relativ slab nu au mai fcut fa.
Astfel, liderii de echip au ieit la iveal
din echip i au permis marelui ef s

TODAY SOFTWARE MAGAZINE


delege managementul. n timp, ei au primit numele de manageri de proiect, iar proiectele se derulau n jurul acestor lideri
nnscui. Bineneles, mai existau i alte surse de manageri care
se alturau companiilor deja la nivelul de management, avnd
experien n medii academice i/sau n afara rii, care i-au
gsit foarte repede locul n structurile de conducere superioare
ierarhic.

Un nume. Descrieri ale postului i responsabiliti multiple.


De ce utilizm ghilimele pentru aceti Project Managers
romni timpurii? Pentru c fiecare companie a nceput s defineasc acest rol ntr-o manier relativ, care s se circumscrie
nevoilor sale. Responsabilitile managerului de proiect erau
limitate de nevoile de management pe care le avea fiecare companie. Bineneles, ar trebui s existe un numitor comun undeva
de la triunghiul scop-timp-buget, la romburi i pentagoane de
management i aa mai departe, dar niciun manager de proiect nu
putea fi nlocuit de la o companie la alta; nici chiar n interiorul
aceleiai companii project manager-ii nu au fost i nu sunt uor
de schimbat ntre ei. Deci, aceast poziie de manager de proiect
software romn a strbtut o cale lung (i nc nencheiat n
prezent) pn s se poat delimita clar de la un capt la altul care
i sunt responsabilitile i abilitile necesare.
Aceast stare de fapt afecteaz n schimb procesul de angajare, deoarece companiilor care cer mai mult de la un manager
de proiect le va fi greu s obin oameni valoroi care doresc s
i schimbe compania. Acetia provin dintr-o poziie
mai nalt n care fceau aceleai lucruri, dar poate
pentru bani mai puini sau un titlu mai puin important ceea ce unele companii numesc Manager de
Proiect, alii numesc Manager de Linie sau Manager
de Program i aa mai departe.

Manageri de proiect profesioniti


Cu o putere mare vine i o mare rspundere de fapt, aici
nu exist putere, doar rspundere. Puterea nu poate fi dat, responsabilitatea poate fi atribuit i asumat. Liderii au puterea de
a influena direcia spre care se ndreapt proiectele, dar nu exist
un lider numit, ci numai ajuns n aceast postur prin propriile
sale mijloace. Calea arat promitoare pe msur ce ncepem
s ne aliniem cu abilitile, responsabilitile, pregtirea i certificarea pentru a forma Project Manager-i i a crea Birouri de
Project Management. Nu este o provocare uoar i s-ar putea s
fie un proces ncet i dureros, dar trebuie s contientizm acest
lucru dac dorim s sporim procentul mic de azi al proiectelor
software de succes. Este mbucurtor s vedem n prezent cum
manageri de proiect din diferite companii se adun cu ajutorul
unor organizaii precum Institutul Managementului de Proiect
Capitolul Romnia, susin prezentri, mprtesc informaii, se
pun de acord cu privire la responsabilitile pe care ar trebui s
le aib un manager de proiect, aptitudinile tehnice si soft pe care
ar trebui s le posede un manager sau un lider i construiesc cu
adevrat o comunitate.
n concluzie, Managementul de Proiect Software Romnesc
profesionist poate fi o realitate i se ntmpl deja. Noi trebuie
doar s nu lsm niciodat vreun proiect s eueze.

Manager de proiect tehnic


Cei care s-au dezvoltat n interiorul companiei
dintr-un programator senior este ceea ce se poate
numi Technical Project Manager. Se pare c acesta
este modul preferat n zilele noastre de a produce
manageri de proiect. n teorie, un project manager
dintr-o alt industrie ar putea foarte bine s se ocupe
de un proiect din industria IT. Totui, ar fi nevoie de
ceva timp pentru ca acesta s se deprind cu toate
aspectele specifice ale industriei i exist desigur o
limitare acest project manager nu poate s treac
la scrierea de cod atunci cnd procesul devine dificil
i cei mai buni pleac. i poate c nici nu ar trebui
s fie cazul, deoarece de fapt acest lucru ncalc chiar
primul principiu al SOLID principiul unicei
responsabiliti. Da, tiu c este pentru clase i nu
pentru oameni ar putea argumenta unii programatori, dar filozofia rmne.
Specialiti versus generaliti este bine s ai
ambele grupuri n orice aspect al vieii sau profesiei.
Un singur om nu ar trebui s fie standardul manager, analist business, arhitect, lider tehnic, guru, na,
mentor, persoan de vnzri nu prea este atta loc
pentru a-i nghesui pe toi acetia ntr-o singur persoan aa c, de ce s nu ne ntoarcem pur i simplu
la manager. F o singur treab, dar f-o bine!

IT CONFERENCE ONIT Conference on

TECHNOLOGIES.
IES.

18-19.09.2015
Locatia : City Plazza
https://goo.gl/6N1GKX

www.msg-systems.ro

www.todaysoftmag.ro | nr. 38/august, 2015

eveniment

Siemens Developers Day 2015

ehnologia aduce inovaii care schimb viaa oamenilor din ntreaga lume. Digitalizarea este acum parte a vieii de zi cu zi,
iar la baza acesteia se afl munca a mii i mii de dezvoltatori software, testeri, arhiteci software, manageri de proiect, ingineri i muli, muli alii. Domeniul dezvoltrii software este un domeniu relativ tnr, prezent n vieile noastre de cteva
decenii. n ultimii douzeci de ani acest domeniu a trecut prin transformri majore, iar n urmtorii ani lumea dezvoltrii software
va fi complet diferit.
Dezvoltarea software era acum
douzeci de ani ceva special cu puine
informaii disponibile, nu foarte multe
unelte sau sisteme de dezvoltare, aceasta
se baza n primul rnd pe creativitatea
i inspiraia unor programatori foarte
pasionai, care nelegeau i aplicau prin
intermediul aplicaiilor dezvoltate concepte teoretice avansate.
O dat cu evoluia sistemelor bazate
pe software, att n complexitate, ct i
n ceea ce privete dimensiunile, apare
problematica modificrilor i extensiilor
codului, modificri fcute de cele mai
multe ori ntr-un mod ad-hoc. Ca urmare,
procesele de dezvoltare de software se
ndreapt spre adoptarea de procese agile,
ndeprtndu-se de abordarea clasic tip
waterfall. Aceast abordare aduce ns
cu sine de multe ori probleme cauzate de
nelegerea deficitar a impactului asupra
sistemelor mari i complexe, cu multe

10

interdependene, dar i a metodologiei


asociate acestor procese de dezvoltare.
Centrul Siemens din Cluj-Napoca este
implicat n susinerea concernului Siemens
n adresarea provocrilor aduse de digitalizarea pe scar larg. Startul centrului
nostru l-am dat acum un an, iar astzi
numrm peste 100 de colegi implicai
n dezvoltarea i mentenana aplicaiilor
complexe de tip enterprise, dar i furnizrii
de servicii de support pentru echipele din
cadrul organizaiei globale de inginerie a
Siemens.
Pe 6 octombrie vom organiza un
eveniment special destinat tuturor celor
implicai n dezvoltatarea software: prima
ediie a Siemens Developers Day. Pe parcursul acestui eveniment, participanii
vor putea descoperi modul n care au fost
adresate provocri reale din alte organizaii
IT i vor putea s participe n cadrul unor
activiti hands-on dedicate dezvoltrii de

nr. 38/august, 2015 | www.todaysoftmag.ro

software. Acest eveniment este deschis


participrii tuturor celor implicai n dezvoltarea de aplicaii enterprise sau celor
interesai de acest domeniu.
Alturi de speakeri de la Microsoft
i evosoft GmbH vom explora provocrile ntmpinate n transformarea
unei organizaii ctre o organizaie care
adopt metodologia DevOps, prin exemplul furnizat de echipa Visual Studio
Online. Vom descoperi dac o iniiativ
neconvenional de implementare a unei
metodologii DevOps orientat pe cloud
i-a atins obiectivele ntr-o jumtate de an,
conform ateptrilor.
Compania evosoft este implicat
n dezvoltarea, livrarea i mentenana
multor aplicaii i platforme enterprise
utilizate n cadrul Siemens. Activitatea
evosoft se axeaz de-a lungul a trei direcii
importante pentru Siemens precum
domeniul industrial, energetic si medical.

TODAY SOFTWARE MAGAZINE


Cu precdere n ultimii cinci ani, am
observat chiar i n cazul proiectelor de
scar larg o migrare ctre adoptarea de
metodologii agile, cum ar fi SCRUM sau
continuous integration. ns n cazul sistemelor tip cloud, aceast abordare merge
un pas mai departe: continuous delivery i
continuous deployment reprezint premisele materializrii ntregului potenial al
unei tehnologii bazate pe cloud. Mergnd
ctre un mediu DevOps bazat pe cloud,
colegii notri au adoptat o combinaie
de test-driven pair programming i continuous delivery. Colegul nostru, Kornl
Molitrisz, va mprti participanilor la
acest eveniment experienele i concluziile
unei astfel de abordri neconvenionale.
Participnd la acest eveniment vei
putea afla detalii despre transformarea
unei organizaii de la o abordare clasic,
tip Waterfall, ctre un model DevOps, cu
sprint-uri de cte trei sptmni i deployment ntr-un serviciu cloud, avnd mai
mult de dou milioane de utilizatori globali. Christian Binder, ALM Architect n
cadrul Microsoft, va descrie etapele transformrii diviziei Microsoft Developer
Visual Studio Online ctre o abordare DevOps. n cadrul prezentrii sale,
Christian va furniza informaii interesante despre organizarea i modul n care
i desfoar activitatea aceast divizie de
dezvoltare a Microsoft.
Dac suntei interesai s participai
la acest eveniment, urmrii pagina
Facebook a Siemens Romnia (http://
fb.com/SiemensRomania). Abonaii
TSM vor primi de asemenea mai multe
informaii despre acest eveniment.

Despre speakeri
Kornl Molitrisz este un expert n
software developement i arhitecturi
software al evosoft din Budapesta. A absolvit Universitatea Tehnic din Budapesta
n 2000 i este activ n cadrul evosoft din
2003, unde a participat activ n diverse
proiecte complexe, majoritatea avnd de-a
face cu domeniile Industrial Automation,
Railway Automation i Healthcare. Este
membru n Expert Office din 2011, ariile
de interes sunt cloud computing i aspectele tehnice i metodologice ale dezvoltrii
de software pentru medii tip cloud.
Christian Binder este ALM Architect
n cadrul Microsoft Developer Experience
Group (DX). S-a alturat Microsoft
n 1999 i lucreaz alturi de Visual
Studio Product Development Group
din Redmond ncepnd cu anul 2006.
Specializrile sale sunt platformele ALM,
respectiv direciile de dezvoltare ALM,
cum ar fi organizaii agile i Lean, Cloud
Cadence, respectiv metodologia BuildMeasure-Learn. Christian se concentreaz
pe implementarea acestor concepte pentru clieni, inclusiv pe adaptarea intern i
adoptarea acestor metodologii i principii
n organizaii mari.

angajai n 10 orae din Romnia, Siemens


SRL este una dintre cele mai mari companii de inginerie din ar. n Cluj-Napoca
suntem prezeni cu dou locaii. Cea de-a
doua locaie din Cluj-Napoca a fost inaugurat la nceputul acestui an, mpreun
cu subsidiara evosoft GmbH, i este un
centru regional de cercetare i dezvoltare n IT, destinat proiectelor IT interne
ale Siemens i proiectelor de dezvoltare
software pentru aplicaii i sisteme din
portofoliul concernului.

Despre evosoft GmbH


Evosoft GmbH este o subsidiar
deinut de Siemens AG. n aceast calitate, compania coordoneaz i execut
nc din 1995 consultan, design i
training pentru proiecte internaionale
i servicii IT destinate tuturor diviziilor
interne ale concernului Siemens. Avnd
1400 de angajai n locaii din Germania,
Ungaria, Turcia i Romnia, compania are
sediul central n Nuremberg, Germania i
opereaz ca entitate independent i n
Ungaria.

Despre Siemens Romnia


Siemens srbtorete n acest an
110 ani de la nfiinarea primei sale
reprezentane locale n Romnia. Fiind
nc de la nceputuri un contributor important la dezvoltarea tehnic i
economic a rii, compania Siemens
este hotart s joace n continuare un
rol important n dezvoltarea viitoare a
Romniei. Avnd mai mult de 1600 de

Razvan Opris

razvan.opris@siemens.com
Location Manager
@ Siemens Cluj-Napoca

www.todaysoftmag.ro | nr. 38/august, 2015

11

programare

Asigurarea Accesului Autorizat la


Resursele Web prin Utilizarea ASP.NET
Identity

n aceast er a mobilitii i a interconectivitii device-urilor, exist cazuri n care


accesul la informaie trebuie restricionat pentru entitile neautentificate. Scopul
acestui articol este furnizarea de detalii privind metodele de autentificare i autorizare pentru dezvoltatorii de soft care folosesc platforma ASP.NET, i n special ASP.
NET MVC.
George Rus

George.Rus@Yardi.Com
Software Developer
@ Yardi Romnia

n rndurile urmtoare vom expune


infrastructura ASP.NET Identity, insistnd
asupra particularitilor de baz ale produsului, dar i asupra modului n care acest
sistem poate fi modificat pentru a se preta
unor scenarii/situaii diferite.

Ce este ASP.NET Identity?



Ca s putem rspunde la aceast
ntrebare, dup cum explic autorii [1],
putem afirma c ideea din spatele acestei
infrastructuri reprezint o soluie care furnizeaz urmtoarele beneficii:
Un mecanism de autentificare i
autorizare care permite controlul asupra
mecanismului de stocare a informaiei,
uor de extins i de testat, ce ofer n
plus i un middleware OWIN, destinat folosirii n cadrul oricrui tip de
aplicaie(web, mobile, cloud);
Autorizare bazat pe rol sau pe
solicitare;
Infrastructur care poate fi conectat pentru diferii furnizori, cum ar fi
Microsoft, Google, Facebook, Twitter,
etc.;
Faciliti de integrare cu Azure
Active Directory.

Privire de ansamblu asupra arhitecturii

funcional. Privind lucrurile ntr-un mod


abstract, arhitectura ASP.NET Identity se
bazeaz pe urmtoarele aspecte: managers responsabili pentru procesarea
informaiilor i stores, care reprezint
implementarea modului de stocare a
informaiei. Aceste dou concepte sunt
decuplate, oferind dezvoltatorilor posibilitatea de a se conecta la diferii provider-i
de stocare.
n mod implicit, mecanismul de
persisten este implementat utiliznd
conceptul Entity Framework Code First.
Pentru a stoca informaia, se vor genera
un set de tabele:
Un tabel care va conine informaiile
despre utilizator: user id, numele userului, o parol hashed;
Un alt tabel reprezentnd rolurile
poate fi interpretat ca reprezentarea
grupurilor de autorizare;
Un tabel pentru claims un set de
informaii care duce la identificarea
utilizatorului;
Un tabel logins reprezentnd
informaiile de la provider-ii externi
de autentificare, cum ar fi Microsoft,
Facebook, Google, Twitter, etc. .

Prile principale ale sistemului sunt


Sistemul ASP.NET Identity furni- formate din:
zeaz din start o soluie de membership
Microsoft.AspNet.Identity.Core

12

nr. 38/2015, www.todaysoftmag.ro

programprare

TODAY SOFTWARE MAGAZINE

logica pentru users, stores i managers;


Dac privim structura central, vom observa entitile de
Microsoft.AspNet.Identity.EntityFramework - implementa- baz, acestea fiind: IUser i IRole, care sunt folosite n partea de
rea legat de stocare specific a Entity Framework;
stores; IUserStore user management i respectiv IRoleStore
Microsoft.AspNet.Identity.Owin implementarea peste pentru rol management.
funcionalitatea OWIN a ASP.NET Identity.
Urmtoarele tipuri de stores, prezentate mai jos, sunt particularizri ale conceptului reprezentat de IUserStore:
Urmtoarea diagram ilustreaz componentele arhitecturale
IUserClaimStore stocheaz claims specifice fiecrui
ale framework-ului:
utilizator;
IUserEmailStore stocheaz partea de e-mail;
IUserLockoutStore reprezint partea de lockout:- accesuri
respinse, statusul de blocat, etc;
IUserLoginStore persistarea asocierilor cu provider-ii de
login externi: Google, Facebook, Twitter, Microsoft;
IUserPasswordStore stocheaz parola hash-ed pentru un
utilizator;
IUserPhoneNumberStore stocheaz informaii legate de
numrul de telefon;
IUserRoleStore face legtura ntre utilizatori i rolurile lor;
Figura 1.Componentele ASP.NET Identity
IUserSecurityStampStore stocheaz timbrul de securitate;
IQueryableUserStore expune IQueryable users.
Lund n considerare partea de nucleu a framework-ului,
urmtoarea diagram ilustreaz abstractizrile conceptelor de
Pe lng stores, exist i partea de managers. Acetia sunt resuser i store:
ponsabili pentru orchestrarea modificrilor, respectiv:
UserManager expune funcionalitatea care va salva modificrile n user store;
RoleManager furnizeaz logica pentru salvarea modificrilor legate de role store.
n cazul n care Entity Framework nu este compatibil cu
proiectul la care lucrai, exist posibilitatea de a folosi diveri provider-i de stocare, care suport urmtoarele tehnologii:
MySQL;
Azure Table Storage;
ElasticSearch;
CouchDB / Cloudant;
MongoDB;
NHibernate;
RavenDB;
Redis.
Figura 2. ASP.NET Identity Core

www.todaysoftmag.ro | nr. 38/august, 2015

13

programare
Asigurarea Accesului Autorizat la Resursele Web prin Utilizarea ASP.NET Identity
new CookieAuthenticationOptions

{
Dac aceti furnizori nu sunt ceea ce avei nevoie, exist posiAuthenticationType = DefaultAuthenticationTypes.
bilitatea de a fi dezvoltai alii i integrai n proiectul de dezvoltat.
ApplicationCookie,
LoginPath = new PathString(/Account/Login),
Pentru a realiza acest lucru, trebuie luate n considerare urmtoaProvider = new CookieAuthenticationProvider
rele aspecte:
{
OnValidateIdentity =
Sursa de date pe care o vei folosi;
SecurityStampValidator.
Datele care trebuie stocate: informaiile utilizatorilor, user
OnValidateIdentity<ApplicationUserManager,

ApplicationUser>(
claims, ct i partea de logins i roles
validateInterval: TimeSpan.FromMinutes(5),
Clasele de stocare: user store, user claim store, user logins
regenerateIdentity: (manager, user) => user.

GenerateUserIdentityAsync(manager))
store, user role store;
}
Layer-ul de data access care va opera cu clasele de store.
});

Autentificarea extern
Exist anumite scenarii n care aplicaia care urmeaz a fi dezvoltat trebuie s ofere posibilitatea de autentificare prin alte/de
ctre alte surse, nu doar opiunea tradiional, unde informaiile
utilizatorului se pstreaz ntr-o baz de date local. n acest caz,
dezvoltatorii pot folosi suportul inclus n produs, pentru implementarea provider-ilor externi.
Exist dou standarde de autentificare care permit utilizatorilor folosirea conturilor de la provider-i de ncredere. Acestea
sunt OAuth i Openld. Dup cum afirm unii experi, protocolul
OAuth a fost creat n principal pentru autorizare, dar sunt multe
cazuri n care este utilizat pentru autentificare. Partea bun, la
aceste standard, este c majoritatea provider-ilor ofer i implementarea pentru ele, scutindu-i pe utilizatori de procesul de
nregistrare pentru diferite aplicaii
Dac folosim provider-i externi, n primul rnd trebuie s ne
asigurm c Autentificarea proiectului este setat pe Individual
User Accounts. Utilizarea de provider-i de autentificare externi,
cum ar fi Google, Microsoft, Facebook, etc. oblig stabilirea conexiunii n mod SSL, dar este indicat a se folosi https i dup login,
pentru a nu fi transferate date sensibile n clear-text. Dac dezvoltm aplicaii folosind ASP.NET MVC, atributul RequireHttps
poate fi folosit pentru a obliga toate Request-urile s foloseasc
https i atributul Authorize pentru a restriciona accesul. O alt
abordare ar fi crearea unui filtru care s oblige toate Request-urile
s treac prin https. Configurarea RequireHttps i Authorize pentru ntreaga aplicaie este considerat un security best practice.
n cadrul dezvoltrii de aplicaii folosind ASP.NET MVC 5,
provider-ii de autentificare externi sunt configurai prin App_
Start\Startup.Auth.cs. n funcie de protocolul implementat,
OAuth sau OpenID, provider-ul va impune un proces de nregistrare sau nu, pentru a furniza datele de autentificare. Datorit
faptului c ASP.NET Identity dispune de un OWIN middleware,
configurarea provider-ului extern este foarte uor de realizat indiferent de protocolul implementat de provider.
Urmtorul coninut prezint App_Start\Startup.Auth.cs cu
configuraia OWIN funcional:
public partial class Startup
{
// For more information on configuring
// authentication, please visit
// http://go.microsoft.com/fwlink/?LinkId=301864
public void ConfigureAuth(IAppBuilder app)
{
// Configure the db context and user manager
// to use a single instance per request
app.CreatePerOwinContext(
ApplicationDbContext.Create);
app.CreatePerOwinContext<ApplicationUserManager>
(ApplicationUserManager.Create);
// Enable the application to use a cookie to store
// information for the signed in user
app.UseCookieAuthentication(

14

nr. 38/august, 2015 | www.todaysoftmag.ro

// Use a cookie to temporarily store information


// about a user logging in with a third party
// login provider
app.UseExternalSignInCookie(
DefaultAuthenticationTypes.ExternalCookie);
// Uncomment the following lines to enable logging
// in with third party login providers
//app.UseMicrosoftAccountAuthentication(
//
clientId: ,
//
clientSecret: );
//app.UseTwitterAuthentication(
//
consumerKey: ,
//
consumerSecret: );
//app.UseFacebookAuthentication(
//
appId: ,
//
appSecret: );
//app.UseGoogleAuthentication();
}
}

Dup ce procesul de nregistrare cu provider-ul de autentificare este ncheiat, pasul urmtor ar fi s folosim Startup.Auth.
cs pentru a configura aplicaia, astfel nct aceasta s foloseasc
acel provider. Salvarea de date sensibile n cod sau fiiere reprezint o problem de securitate i aceast abordare trebuie evitat.
Modalitile de securizare a aplicaiilor web mpotriva diferitelor ameninri sau atacuri care pot exista nu reprezint subiectul
acestui articol.

Concluzii

Scopul principal al acestui articol a fost prezentarea modului


n care caracteristicile sistemului ASP.NET Identity pot fi folosite
pentru a controla accesul la anumite pri ale aplicaiei.
n prima parte au fost prezentate informaii generale despre
sistem i avantajele lui pentru dezvoltatorii care trebuie s includ
funcionalitatea de membership n aplicaiile lor. A doua parte
a articolului ofer informaii despre arhitectura framework-ului,
expunnd componentele abstracte, despre ce storage providers
pentru diverse tehnologii de stocare exist deja, dar i ce aspecte
ar trebui luate n considerare atunci cnd este nevoie s scriem
chiar noi unul. Ultima parte conine informaii legate de plug-inul i configurarea unui provider de autentificare extern.
Lund n considerare produsul finit, posibilitatea de a extinde
i de a adapta sistemul, ASP.NET Identity este o opiune de
considerat atunci cnd dezvoltarea unei aplicaii care folosete
tehnologia .NET implic i funcionalitatea de membership.

Bibliografie
1. http://www.asp.net/identity/overview/getting-started/
introduction-to-aspnet-identity
2. https://msdn.microsoft.com/en-us/magazine/dn605872.aspx
3. http://www.asp.net/identity/overview/extensibility/
overview-of-custom-storage-providers-for-aspnet-identity

TODAY SOFTWARE MAGAZINE

Comuniti IT

venimentele din aceast perioad sunt realizate de pasionaii de tehnologii i de grupurile acestora. Dup cum putei vedea
n calendar, acestea sunt publicate exclusiv pe meetup.com i facebook avnd audiena format din comunitile locale.

Transylvania Java User Group


Comunitate dedicat tehnologiilor Java.
Website: www.transylvania-jug.org
Data nfiinrii: 15.05.2008 / Nr. Membri: 610 / Nr. Evenimente: 47
Comunitatea TSM
Comunitate construit n jurul revistei Today Software Magazine.
Websites: www.facebook.com/todaysoftmag
www.meetup.com/todaysoftmag

www.youtube.com/todaysoftmag
Data nfiinrii: 06.02.2012 /Nr. Membri: 2424/Nr. Evenimente: 32
Cluj Business Analysts
Comunitate dedicat analizei de business
Website: www.meetup.com/Business-Analysts-Cluj
Data nfiinrii: 10.07.2013 / Nr. Membri: 91 / Nr. Evenimente: 8
Cluj Mobile Developers
Comunitate dedicat tehnologiilor mobile
Website: www.meetup.com/Cluj-Mobile-Developers
Data nfiinrii: 05.08.2011 / Nr. Membri: 264 / Nr. Evenimente: 17
The Cluj Napoca Agile Software Meetup Group
Comunitate dedicat metodelor Agile de dezvoltare software.
Website: www.agileworks.ro
Data nfiinrii: 04.10.2010 / Nr. Membri: 437 / Nr. Evenimente: 93
Cluj Semantic WEB Meetup
Comunitate dedicat tehnologiilor semantice.
Website: www.meetup.com/Cluj-Semantic-WEB
Data nfiinrii: 08.05.2010 / Nr. Membri: 192/ Nr. Evenimente: 29
Romanian Association for Better Software
Comunitate dedicat oamenilor cu experien din IT indiferent de
tehnologie sau specializare.
Website: www.rabs.ro
Data nfiinrii: 10.02.2011 / Nr. Membri: 251/ Nr. Evenimente: 14

Calendar
August 26 (Cluj)
Lansarea numrului 38 al Today Software Magazine
www.todaysoftmag.ro
August 27 (Oradea)
Lansarea numrului 38 al Today Software Magazine
www.todaysoftmag.ro
August 29 (Cluj)
Lansare Kogaion i Argent Linux OS Romnia
eventbrite.com/e/cluj-napoca-lansare-kogaion-si-argentlinux-os-romania-tickets-18251932020
Septembrie 3 (Cluj)
Drupal Cluj Meetup
meetup.com/Drupal-Cluj/events/223672594/
Septembrie 17 (Cluj)
JavaScript Cluj Meetup
meetup.com/JavaScript-Cluj/events/222421552/
Septembrie 24-27 (Harghita Bi)
Tabra de testare - Autumn Camp 2015
facebook.com/events/487498068085911/
Octombrie 1 (Cluj)
Using Protractor and Appium to automate Hybrid apps
meetup.com/Cluj-JS/events/224608770/
Noiembrie 24-25 IT Days (Cluj)
A treia ediie a Cluj IT Days
itdays.ro

Tabra de testare
Comunitate format din testeri i ali profesioniti din industria
IT care, n cadrul unor ntlniri informale lunare, mprtesc
din cunotinele proprii i nva din experienele profesionale ale
celorlali membri.
Website: www.tabaradetestare.ro
Data nfiinrii: 15.01.2012/Nr. Membri: 1243/ Nr. Evenimente: 107

www.todaysoftmag.ro | nr. 38/august, 2015

15

programare

Gestionarea datelor n cretere


cu baze de date relaionale

nd i dac software-ul se prbuete, clienii notri nu ar trebui s i piard


datele pe care le-au colectat, chiar dac acestea se afl n memorie. Fraza
aparine unuia dintre clienii notri care ne-a transmis-o acum doi ani, cu
valoare de principal cerin pentru o nou aplicaie software.

Alin Luncan

alin.luncan@accesa.eu
Software Engineer
@ Accesa

16

nr. 38/2015, www.todaysoftmag.ro

Aceste cuvinte m-au bntuit pentru o


vreme, nu puteam nelege de ce s-a exprimat n acest fel. O excepie a aplicaiei
era suficient de rea, dar pierderea datelor
era de nenchipuit; ncercam s vizualizez tipul de complexitate care l-a fcut s
exprime aceast cerin anume.
Nu reueam s vd imaginea de
ansamblu. n ultimii doi ani i jumtate,
am aflat c pentru acest client datele sunt
totul. Nimic nu este mai presus de date:
nici UI, nici modul n care datele sunt stocate, nici chiar uurina utilizrii. Aceasta,
pentru c aplicaia colecteaz date utilizate n modele tiinifice de la diferite
dispozitive (senzori) i servicii software
(procesare de imagini), care la rndul lor
sunt transferate ntr-un model matematic care evalueaz datele, rezultnd i mai
multe date, care din nou sunt reprocesate
i combinate cu alte date citite de senzori i
introduse, care sunt toate reevaluate n alte
modele afiate drept tabele sau diagrame.
Dar lucrurile nu se opresc aici: utilizatorul
are posibilitatea de a filtra i elimina intrrile greite de la orice nivel, ceea ce face
ca modelele matematice s reevalueze. Da!
Pentru acest software, datele reprezint
ntreaga aplicaie; toate celelalte aspecte
sunt lipsite de sens dac datele sunt deformate sau inaccesibile. Mi-a luat ceva timp
pentru a nelege cerina principal n
forma sa deplin, dar n final am reuit s
am o privire de ansamblu complet asupra

ntregii ierarhii de date.


i am reuit! Acum aproximativ un
an, am ajuns ntr-un punct n dezvoltare n care toate datele pe care aplicaia
anterioar le colectase i le distrusese,
au fost salvate i stocate n baza de date
relaional a noastr (SQL Server 2012).
Acestea au putut fi utilizate din nou,
exportate/ importate ntre diferite computere printr-un serviciu rapid i inteligent
integrat n aplicaie. Am proiectat mpreun cu clientul o structur recurent care
putea gestiona toate cerinele, senzorii
i modelele matematice viitoare, cu mici
modificri. Era stabil i scalabil i am
realizat-o n timp ce nc foloseam un
instrument Object Relationship Mapping
(ORM) pentru Data Layer.
Pentru procesul de colectare a datelor a
fost necesar s proiectm mai multe tabele
de configurare a senzorilor i a procesului
propriu zis: numrul de senzori folosii,
constante de mediu i unitatea de msur
a datelor. Configurrile i valorile efective ale datelor sunt evaluate de un model
matematic pentru a obine un prim set de
rezultate. Modelul matematic e reprezentat printr-o simpl tabel ce are legtur
cu configurrile iniiale ale senzorilor,
propriile configurri pentru a determina
unitile de msur i numele rezultatelor
ce le expune dar i o legtura efectiv cu
fiecare rezultat ce l expune (data output),

TODAY SOFTWARE MAGAZINE

existnd un nivel logic n cod care aplic formulele matematice


propriu-zise. Rezultatele unui model matematic poate servi ca
punct de intrare pentru un altul crend o relaie printe-copil
ntre modele, existnd i posibilitatea ca un set de date colectate s fie folosit de mai multe modele. Toate aceste relaii dintre
modele i rezultate sunt determinate de aciunea utilizatorului,
acesta avnd posibilitatea de a filtra date colectate pentru un singur model sau rezultate de evaluare pentru un altul. Pentru baza
noastr de date, acest lucru a nsemnat adugarea de multiple
tabele de legtur pentru a putea determina care date dintr-un set

sunt selectate i crearea de coloane n unele tabele care s indice


printele modelelor, dac acesta exist.
Designul funciona i rezista. Ne-am ocupat de fiecare nou
cerin n structurile noastre, n timp ce pstram nc relaiile plnuite iniial ntre tabele. Designul bazei de date relaionale ne-a
dat flexibilitatea de a efectua cercetri complicate de la toate nivelurile i de a filtra citirile greite ale senzorilor i a reevalua datele
de la fiecare nivel al ierarhiei, fie el pe vertical sau pe orizontal.
Eu, unul, m-am bucurat c am utilizat o baz de date relaional

www.todaysoftmag.ro | nr. 38/august, 2015

17

programare
Gestionarea datelor n cretere cu baze de date relaionale

i c nu am czut n capcana utilizrii unui design NoSQL pentru


date structurate n aceast manier.
Dar ceva nu a mers bine. La nceputul acestui an, am nceput s observm c o anumit cerin producea o proporie
mare de Date de Evaluare de nivel slab. A reieit c un tip de
dispozitiv avea cerina de a colecta i stoca citiri multiple
ale senzorului, la o rat de 20 de citiri pe secund. Aceasta
nsemna c ntr-o or, am fi avut de fcut 72000 de citiri de
la vreo 7 senzori, de procesat fiecare nregistrare cu modelul matematic i de stocat acele valori. Dup cteva calcule cu
privire la dimensiunea obiectului pentru o citire a senzorului
care ajunge n baza de date, ne-am dat seama c aceasta s-ar
ridica la 2 KB de date. Deci, am fcut nc puin matematic:
2 kilobytes x 72000 reading x 7 sensors= 1.008 Gigabyte

Adic 1GB de dimensiune pe disk numai pentru a pstra


datele de la 7 senzori timp de o or. De ct de mult memorie
era nevoie pentru a prelua obiectele de la Nivelul de Date (Data
Layer) la Nivelul de Prezentare (Presentation Layer), astfel nct
utilizatorul s poat avea o reprezentare complet a datelor colectate? Lucrurile nu artau bine.
Gestionarea problemei! Primul lucru era s verificm de
dou ori dac cerina era real (colectarea datelor timp de o or
la o rat de luare de mostre de 20 citiri per secund). Din pcate,
acesta era un caz de utilizare valid i, mai mult, pentru a agrava
problema, clientul devenea frustrat de viteza de ncrcare. Citirea
unei cantiti att de mari de date i crearea obiectelor Business
Logic pentru acestea lua mult mai mult timp i memorie dect
simpla copiere a datelor de pe disk n memorie. Aveam nevoie de
un nou mod de a gestiona datele noastre relaionale astfel nct

18

nr. 38/august, 2015 | www.todaysoftmag.ro

s putem ajunge la o performan ct mai apropiat posibil de


timpul de citire al discului.
Am verificat performana ORM i cea a altor unelte similare
la ncrcarea tuturor datelor i asamblarea ierarhiei dup cum a
fost descris de baza de date i de ctre Business Logic. Pentru
a rezuma lucrurile, rspunsul pe scurt a fost dup cum era de
ateptat: performana era proast. Am fcut orice v-ai putea imagina cu ORM pn am ajuns chiar s utilizm instane multiple
pentru a ncrca datele separat per obiecte, am oprit urmrirea
strilor entitilor, dar iar i iar, eram departe de performana pe
care clientul se atepta s o furnizm. Imaginea era clar: nu v
bazai pe instrumente ORM pentru a construi i ncrca ierarhii
complexe.
Acesta a fost punctul n care am realizat c era nevoie s
gsim o modalitate de a exprima complexitatea ierarhiei, aa cum
merge ea i pe orizontal (frai) i pe vertical (prini, copii),
ntr-un singur tabel, astfel nct s putem obine entitile i
relaia lor cu o unic interogare (query)
simpl, iar cu un pass al acestui tabel,
obiectele de Business Logic i reprezentarea lor puteau fi corect ncrcate. Am
creat un tabel care s pstreze reprezentarea pentru fiecare tip de obiect din
tabelele bazei de date i de asemenea s
stocheze nivelul de profunzime pentru
acestea; astfel am acoperit i relaiile de
frie i pe cele de paternitate.
Aceast tabel (Model Nodes)
practic ne permite s extragem toate
nregistrrile din baza de date ce conin o
legtur cu un model matematic. Fiecare
configurare, fiecare model precedent,
fiecare citire de senzor, fiecare rezultat al

TODAY SOFTWARE MAGAZINE


modelului are cte o nregistrare n acest tabel.
Model ID reprezint Id-ul modelului matematic
NodeType indic ctre ce relaionm (configurare, rezultate, citire de senzor)
Node Id indic Id-ul obiectului cu care relaionm;
Parent Id indic parintele nodului.
Citind fiecare linie din aceast tabel ne putem crea propriul
index n memorie pentru un model matematic pe baza cruia
din fiecare tabel indicat de ctre NodeType putem ncrca doar
datele relevante.
S presupunem c avem dou modele matematice: M1 i M2.
Primul model, M1, se bazeaz pe date citite din senzorii S1 i
S2 si produce rezultate M1R1, M1R2 i M1R3. Al doilea model,
M2, primete ca input M1R1 i M1R3 i produce rezultatul
M2R1. Utilizatorul vrea s elimine din acest calcul doar datele
influenate de senzorul S1, iar pentru aceasta e destul s l deselecteze din interfa.
n mod normal aceast operaie ar nsemna construirea unui
query complex care pornind de la Id-urile a modelelor matematice, a senzorului i a rezultatelor. Se extrag toate valorile de la
S1 folosite n calcului lui M1R1 i M1R3 i se reevalueaz M2R1.

realitate aplicaia n acest fel. Ar mai fi ceva ce am putea face


pentru a o mbunti? Pentru a rspunde la aceast ntrebare,
trebuie s revenim la baza noastr de date. Dac datele ne permit, am putea avea colecii de valori care ar putea s ncap uor
n tabelul ierarhiei; am putea ncrca acele valori i le-am putea
utiliza n alte filtrri i calcule suplimentare, iar dac matematica
permite, filtrarea i eliminarea valorilor greite citite de senzori
va actualiza valoarea colectat, ceea ce, la rndul su, poate determina reevaluarea Modelelor Matematice.
A ieit la iveal un tipar, iar noi putem trage o concluzie:
baza de date poate fi divizat n dou tipuri de relaii: cele de tip
schem i cele logice. Relaiile schem sunt cele care i fac viaa
mai uoar, descrise de schemele tabel; ncrcarea acestui tip de
date este direct i scalabil. Relaiile logice, pe de alt parte, sunt
cele care genereaz probleme. Aplicarea unei logici complexe n
interogri (queries) duce la performan lent i consum enorm
de memorie. Iat deci unde trebuie s optimizm i s gsim o
modalitate de a asocia acele relaii la baza de date, drept o relaie
schem.
Lsai baza de date s lucreze pentru voi.

Dac ns ne folosim de tabela de ierarhie avea deja toate Id-urile


necesare n memorie legate att de M1 ct i de M2:
Tot ce trebuie s facem e s citim din baza de date valorile din
tabelele corespunztoare, s reevalum modelul i s actualizm
tabela de ierarhie dac este cazul.
Aceast tabel poate fi construit n dou moduri: fie generarea ei printr-un script sau la momentul crerii de noi entiti
logice n aplicaie se genereaz automat o nregistrare, iar exemplul dat este doar unul dintre multiplele scenarii unde indexare n
memorie a acestor legturi logice poate economisi tip de execuie
pe serverul de baze de date.
Pentru a nelege de ce acest tabel rezolv complexitatea datelor noastre n cretere din bazele de date relaionale, noi trebuie
s nelegem obiectele din spatele su. Bazele de date relaionale
nu au probleme de performan la citirea datelor structurate
plan, dar atunci cnd Data Layer ncepe s alctuiasc obiecte
business, se creeaz interogri complexe care au durate de rulare
nsemnate i un impact semnificativ de memorie. Acest tabel
creeaz o descriere plan a unei ierarhii i orice informaii necesare, cu privire la relaiile logice dintre obiecte, vor fi disponibile
n interiorul su. Toate datele necesare pentru a descrie relaiile
logice dintre obiectele Business Logic pot fi obinute prin rularea
unei singure interogri (query) n memorie. Doar prin adugarea
tabelului adiional n baza noastr de date, am fost capabili s
citim i s alctuim obiecte cu viteza pe care ne-o permite discul,
la un cost de 40 bytes * 72000 citiri * 7 senzori (20 MB) pentru
1GB de date neprelucrate.
Privind n viitor. Aceasta m-a fcut s m gndesc la cum
vor arta datele noastre n viitor, ct de mult poate gestiona n
www.todaysoftmag.ro | nr. 38/august, 2015

19

programare

A fi sau a nu fi un obiect: despre problema auto-referinei

dant.

uto-referina (self reference) modul unui obiect de a se referi la sine nsui pare s fie tratat foarte diferit n limbajele
orientate pe obiecte. n timp ce n limbajele statice asemntoare cu Java, cuvntul this este magic, direct i n mare parte
nefolosit, n Javascript, magia poate s deruteze. i totui, n Python, unii l-ar putea descrie drept explicit n mod redun-

n alt limbaj dinamic, Ruby, self


acioneaz foarte similar cu this din
Java, dar metodele nu sunt obiecte
nici acolo. Este aceast varietate de
comportamente datorat deciziilor
ntmpltoare de design, sau exist vreun
tipar comun n toate aceste limbaje OO?
A vrea s v propun un experiment de
gndire. Vom ncerca s crem un limbaj
OO care s aib anumite trsturi confortabile din limbajele de mai sus. n timp ce
crem acest limbaj, ne vom ntlni cu anumite situaii care s sperm c vor clarifica
de ce auto-referina (self reference) este
tratat att de diferit. De asemenea, vom
vedea cum auto-referina se potrivete cu
alte funcionaliti ale limbajelor noastre
preferate.
Limbajul pe care l crem va fi un limbaj scris static, dar vom permite nlocuirea
dinamic a tuturor membrilor dac acetia
menin contractul static. Cu alte cuvinte,
ntocmai cum am putea schimba o valoare
a atributului unui ntreg de la 4 la 5, noi
putem redefini ceea ce fac metodele, n
timpul de rulare, atta timp ct semntura (numele, tipurile, tipul returnat etc.
al parametrilor formali) rmne aceeai.
Aceasta ne ofer toat sigurana de compilare de care avem nevoie, dar ne i permite
puin magie neagr dac ne dorim cu
adevrat. Vom avea de asemenea funcii,
deoarece uneori ne plac astea, iar acestea
vor fi obiecte. Pentru a condimenta puin,
vom face metodele rezidente (citizens)
de prim clas i obiecte de asemenea,
deoarece ne-ar plcea s le trecem drept
argumente (tipar observator cu numai un
callback).
Nu vor exista modificatori de vizibilitate, acetia sunt irelevani pentru acest
argument: totul este public.
Dac se ivete vreo confuzie legat de
cuvntul obiect, s l pstrm simplu:
obiectele sunt instane ale claselor. Mai n
detaliu, obiectele au o relaie special cu o
alt entitate, ceea ce descrie (cel puin n

20

parte) comportamentul i structura obiectului dat.


Dai-mi voie s fac un rezumat:
scriere static
obiectele sunt instane ale claselor
casele au metode
clasele, metodele i funciile sunt
obiecte
metodele i funciile pot fi nlocuite
n perioada de rulare
Haidei s vedem, nu? Iat prima
noastr clas, denumit n mod adecvat
First.
class First {

int x
Constructor(int x){
this.x = x
}
int double_the_fun(){
return 2 * x
}

Asta ar trebui s par cunoscut celor care


lucreaz n limbaje inspirate de Java. Am
definit o clas cu un atribut de date care
va fi o valoare a unui ntreg i stabilim
valoarea sa n constructor. Avem de asemenea o metod care returneaz valoarea
acestui atribut multiplicat cu 2. Deja n
acest exemplu simplu, aveam nevoie de o
modalitate de a face referin la atributul
obiectului (cel puin) din interiorul constructorului su. De ce a fost necesar acest
lucru? Pentru c noi umbrim atributul x
cu parametrul formal al aceluiai nume.
De aceea, aici, auto-referina este utilizat
pentru a accesa cmpul (scope) care este
bagajul de atribute ale obiectului. Am
promis funcii libere, deci, iat una:
int triple_the_fun(int x){
return 3 * x
}

Am promis, de asemenea, i metode


care pot fi nlocuite dinamic, deci, dac
am uita pur i simplu pentru o clip tot
ce ne-a nvat programarea orientat pe
obiect (OO), am face asta:

nr. 38/august, 2015 | www.todaysoftmag.ro

First.double_the_fun = triple_the_
fun

Noi am tratat metoda double_the_fun


exact precum am trata un atribut de date
simplu (integru, de exemplu). Un pic ciudat pentru unii dintre noi, tiu.
Am putea apela conceptual aceast
nou metod astfel:
var my_instance = new First(3)
my_instance.double_the_fun(3)
ar returna 9

Funcioneaz, nu-i aa? Nimic nu


pare greit, cu excepia faptului c poate
ne-ar fi plcut ca noua metod , double_the_fun s utilizeze valoarea lui x
care este deja stocat pe obiect. Ne-ar plcea ca my_instance.double_the_fun()
s returneze 9 fr a reda un ntreg, sau a
face lucruri urte precum my_instance.
double_the_fun(my_instance.x).

Urmtoarea micare pe care o voi


ncerca, va face iadul s se dezlnuie,
deci este important: Ce ar fi s punem
cuvntul cheie this n interiorul definiiei
funciei originale triple_the_fun?
Ei bine, am promis scriere static cel
puin pentru ceea ce este vizibil nainte de
perioada de rulare.
int triple_the_fun(){
return 3 * this.x
}

Deci ce e n neregul cu aceast funcie


acum? Se pare c n orice limbaj, i n
special n cele care se scriu n mod static,
ca i al nostru, aa ceva este urt, dac
nu chiar imposibil de fcut, deoarece am
promis c funciile sunt de asemenea i
obiecte. Fiind obiecte, nseamn c ele au
de asemenea i o clas, s spunem clasa
Function, care are la rndul su atribute
i metode. Deci, cuvntul cheie this se refer la membrii definii n clasa Function
sau n clasa First?
Haidei s ncercm s clarificm
aceast ambiguitate i s propunem nite
soluii alternative:
1. S acceptm c this se refer
la 2 lanuri motenite. Imaginai-v c

TODAY SOFTWARE MAGAZINE


am subclasat ambele clase: Function i
de asemenea First (lanul 1: subclasele
Function -> -> Function i lanul 2:
subclasele First -> -> First ). Vom
obine atributul this.x de oriunde
apare (acordnd prioritate unuia dintre
aceste cmpuri). Problema aici este c,
dac atributul se gsete n ambele cmpuri, tocmai am pierdut o modalitate
de a obine pe unul dintre ele. Sintaxa
explicit asemntoare celei din Java,
First.this.x VS Function.this.x
nu ne poate ajuta prea mult, pentru c
atunci cnd funcia nu este stabilit drept
metod, tot codul din ea trebuie s fie
valid nainte de momentul de rulare, de
asemenea (iar First.this.x nu ar fi).
Mai mult, tipul atributului x s-ar putea s
difere de definiia sa din clasa Function
versus clasa First, deci codul fie s-ar strica
atunci cnd utilizm obiectul drept o
funcie sau drept o metod. Acceptarea a 2
lanuri motenire ar putea s funcioneze
mai bine n limbajele dinamice, dar i aici
ambiguitatea este mai dificil de rezolvat.
Nici un limbaj pe care l cunosc nu face
asta.
2. S acceptm c aceast situaie
se ntmpl i s introducem 2 cuvinte
cheie magice. Haidei s lum cuvintele
cheie caller i this . Cuvntul cheie
this ar indica clasa Function, iar caller
ar indica clasa First. Caller ar putea
fi nul, deoarece funciile ar putea deveni
limitate (bound), iar metodele nelimitate
(unbound) pe perioada de rulare. Asta
nu este prea frumos s facem n limbajele
scrise static, deoarece caller ar putea lua
orice tip i noi ar trebui s verificm tipul
su i s l atribuim nainte de utilizare.
Acesta este un lucru ce poate fi fcut, dar
nu tiu nici un limbaj care s fac aa ceva.
3. Pur i simplu alegei unul dintre

acele cmpuri (scopes) i uitai de cellalt.


Se pare c Javascript face ceva foarte similar cu asta. Dup cum probabil muli tii,
n Javascript, this se refer ntotdeauna la
cmpul obiectului su caller (sau obiectul
window global), nu la acela al obiectului
original, unde funcia a fost definit drept
un atribut. Delegaii lui C# i Procs i
lambdas din Ruby merg n direcia opus.
Rmn ntotdeauna legate de clasa n care
au fost definite (de asemenea, instanele
delegate nu sunt obiecte reale, deci this
nu ar putea niciodat s se refere la vreo
metod delegat sau vreun atribut delegat.
Ruby procs i lambdas sunt obiecte reale,
dar acestea sunt create ntr-un asemenea
mod n care s nu se refere niciodat la ele
nsele cu magicul self).
4. Renunai la magia lui this .
S l facem doar un parametru obinuit
i, de asemenea, chemai-l ori de cte ori
dorii. Dup cum tiu unii, Python face
asta. Aceast soluie nu convine unora,
pentru c fiecare metod i funcie care se
dorete a fi utilizat drept metod trebuie
s accepte un argument adiional.
5. Facei situaia imposibil,
nepermind metodelor s fie obiecte.
Aceasta este ceea ce fac Java, C#, Scala
(limbajele scrise static), dar i Ruby (dinamic). Chiar dac toate aceste limbaje
ncearc s mearg un pas mai departe cu
lambdas (Java), delegai i lambdas (C#),
funcii native (Scala), procs i lambdas
(Ruby), aceste construcii sunt toate foarte
diferite de obiectele obinuite i nu au
nicio modalitate de a se referi la ele nsele.
Sper c acum este puin mai clar cum
toate aceste limbaje au ncercat s rezolve
aceeai problem, dar pur i simplu au
venit cu soluii diferite.
nainte de a ncheia, a vrea s
mai aduc n discuie o alt problem

interesant: definiiile n serie. Ce se


ntmpl cnd o clas este definit n interiorul unei metode, care este definit
n interiorul unei funcii, care este definit n interiorul unei metode i aa mai
departe? Magia auto-referinei ncepe s
dispar n situaii ca aceasta, deoarece am
avea nevoie de o sintax suplimentar,
mai complex, pentru a accesa cmpurile
mprejmuitoare (enclosing scopes). Java are
sintaxa ClassName.this.attribute ,
iar alte limbaje s-ar putea s aib ceva asemntor, dar aceasta nu rezolv problema
dect parial. n cele din urm, totui,
complexitatea reelei cmpurilor (scope
nesting) face dificil utilizarea unei autoreferine magice. n acest punct, soluiile
pentru ncercarea de a accesa obiectele
nconjurtoare (precum bine-cunoscutul var that = this ; din Javascript)
ajung s semene cu verbozitatea foarte
explicit a lui Python. Orice referire la
obiectele nconjurtoare va fi tratat explicit n situaii ca aceasta. Poate c nu este o
coinciden c Python este un limbaj att
de reflexiv. Pltind preul verbozitii, el
modeleaz mult mai multe lucruri drept
obiecte, fr a-i face deloc griji n legtur cu auto-referina.
n concluzie, am dorit s art c
diversitatea implementrilor nu este o
alegere pur ntmpltoare sau exotic, ci
a fost influenat de o problem autentic.
Aceasta limiteaz decizia n legtur cu ce
poate fi modelat drept un obiect ntr-un
limbaj OO, i cum facem referire la cmpuri (scopes). De asemenea, nu vreau s
susin nicio modalitate anume a vreunui
limbaj de a implementa programarea orientat pe obiecte (OOP), deoarece sunt
sigur c limitrile problemei vor face ca
toate implementrile s aib argumente
pro i contra.

Vlad Ardelean

vlad.ardelean@3pillarglobal.com
Software Developer
@ 3Pillar Global Romania

www.todaysoftmag.ro | nr. 38/august, 2015

21

startups

I Love I Hate NY

Love I Hate NY este o aplicaie iOS destinat tuturor persoanelor care au vizitat,
vor vizita sau locuiesc n oraul New York. Aplicaia reprezint cel mai bun mod de
a reda un feedback clar asupra oraului, inndu-se un anumit scor care acioneaz
asemeni unei balane dintre comentariile pozitive i cele negative. Un utilizator va putea
oricnd s-i fac o impresie asupra pulsului oraului privind scorul.
direct i real time aportul pe care comentariul lui l va avea, acesta fiind contorizat
i clasificat n funcie de destinaie. Orice
comentariu adugat de un utilizator va fi
disponibil n seciunile de cutare, la fel ca
i n funcionalitile de filtrare ale comentariilor pe baza datei adugrii lui.

Tudor Stnean

tudor.stanean@3pillarglobal.com
IOS developer
@3 Pillar Global

Principalelor funcionaliti

Figure 1: App Icon

Motivaia ideii a venit din observarea dorinei utilizatorilor de a-i exprima


propria prere referitoare la un anumit
domeniu, n cazul nostru oraul New
York, i n acelai timp implicarea utilizatorilor ntr-un mediu competitiv, n
care comentariile de feedback pozitive
i negative sunt considerate puncte i
anumite animaii fiind implementate pe
baza raportului dintre cele dou tipuri de
comentarii. Utilizatorul va observa n mod

22

nr. 38/2015, www.todaysoftmag.ro

Fiecare utilizator al aplicaiei va avea


posibilitatea s adauge un comentariu de
feedback pozitiv sau negativ n funcie de
experiena pe care acesta a avut-o n New
York, de asemenea, n cazul n care acesta
este doar un potenial vizitator al oraului,
va putea urmri n permanen pulsul
aplicaiei, acesta fiind determinat de
raportul dintre comentariile de feedback
pozitive i cele negative.
Screen-ul de adugare al unui comentariu conine un love smiley face n cazul
n care feedback-ul este unul pozitiv sau un
hate smiley face n cazul adugrii unui
feedback negativ:

programare

TODAY SOFTWARE MAGAZINE


dect cel negativ, scorul fiind
evideniat direct utilizatorului.
Pentru adugarea unui
comentariu pozitiv, un utilizator va apas butonul Love,
acesta fiind introdus n screenul de adugare al unui nou
comentariu avnd imaginea
love smiley face, iar pentru
adugarea unui feedback negativ, se va apsa butonul Hate,
de data aceasta utilizatorul
fiind introdus n screen-ul de
adugare al unui nou comentariu avnd imaginea de hate
smiley face.
Utilizatorii pot accesa orice
Figure 2: Main Screen
comentariu adugat din lista i
vor fi introdui n screen-ul de
detalii al fiecrui comentariu,
unde se vor prezenta titlul comentariului, textul i imaginea aferent comentariului respectiv, dac este pozitiv sau negativ. Din
acelai screen ei vor avea posibilitatea s adauge un nou comentariu apsnd butonul Post a Feedback.

Utilizatorii vor avea opiunea de a distribui (a da share)


comentariul postat. Prin apsarea butonului Post, comentariul
respectiv este trimis la server i salvat, urmnd s fie afiat alturi
de toate celelalte comentarii.
Pentru a scoate n eviden funcionalitatea balanei comentariilor adugate, anumite animaii care au loc ntre cele dou
smiley face-uri, au fost introduse. Acestea i schimb poziia n
funcie de raportul dintre comentariile de feedback pozitive i
De fiecare dat cnd se va introduce un nou feedback, se va
cele negative.
prezenta utilizatorului a nou animaie n funcie de comentariul
introdus, dac acesta este un feedback pozitiv sau negativ. n cazul
Utilizatorii pot filtra toate comentariile introduse n funcie n care feedback-ul introdus este unul pozitiv, hate smiley facede perioad, astfel ei vor avea la dispoziie trei opiuni pentru a ul va lua foc i va fi mpins nspre dreapta de ctre love smiley
vizualiza comentariile n funcie de data la care au fost adugate: face, n cazul contrar animaia se va desfura in direcie invers.
All aceasta opiune va afia toate comentariile pozitive
sau negative adugate de toi utilizatorii aplicaiei.
Alturi de funcionalitile prezentate, fiecare utiliza Last 24h vor fi afiate doar comentariile care au fost ad- tor va avea opiunea de a cuta dup cuvintele cheie folosind
ugate n ultimele 24 de ore. Aceast opiune se preconizeaz a funcionalitatea de cutare disponibil n aplicaie. n cazul n
fi folosit de amatorii de city break-uri, astfel nct va oferi care nu este decis asupra anumitor cuvinte cheie de cutare, el
o imagine asupra ceea ce s-a ntmplat n oraul respectiv n are la dispoziie funcionalitatea de Trending Searches prin care
ultimele 24 de ore.
cuvintele cheie cutate de ali utilizatori vor fi afiate.
Last Month este o opiune care, dup cum sugereaz
numele, va afia toate comentariile adugate n ultima lun.
Scurte detalii tehnice
Aplicaia I Love I Hate NY se desprinde uor de la design
Screen-ul principal al aplicaiei va include afiarea tuturor pattern-ul clasic client-server, aceasta migrnd majoritatea
mesajelor n conformitate cu regulile de history selectate de uti- procesrii datelor pe partea de client, iar server-ul va fi folosit
lizator i animaiile aferente balanei de comentarii pozitive i strict doar pentru stocarea datelor, astfel mbinnd cu succes
negative.
un design arhitectural de tip peer-to-peer, format din clieni
inteligeni capabil s gestioneze datele globale i s editeze resurDup cum se poate observa n imaginea prezentat mai sele venite de pe server, urmnd apoi salvarea lor, dup tiparul
sus, love smiley face-ul a mpins balana spre dreapta datorit clasic client-server.
faptului c feedback-ul pozitiv rezultat are o pondere mai mare

www.todaysoftmag.ro | nr. 38/august, 2015

23

startups
I Love I Hate NY
Parse Framework
n vederea mbuntirii comunicrii dintre aplicaie i serverele Parse s-a implementat clasa ParseManager, cu acest rol.
Datorit faptului c modelul Parse accept un numr limitat de
tipuri de date, orice obiect mai complex va trebui redus la astfel de
tipuri de date pentru a fi salvat pe server, motiv pentru care arhitectura aplicaiei trebuie dezvoltat n consideraie cu modelul
bazei de date care va fi salvat folosind serverele Parse.
Toate obiectele de genul Feedback i Trending Search au echivalentul att in bazele de date ale serverelor Parse sub forma de
PFObjects (Parse Framework Objects) ct i n Modelul definit
al aplicaiei, acesta fiind resetat cu fiecare reactualizare a datelor,
astfel nct n orice moment, utilizatorul va avea n fa ultima
versiune a bazei de date cu toate comentariile de feedback adugate in funcie filtrul specificat.
Modelul de comunicare implementat ct i modelul de date,
faciliteaz scalabilitatea proiectului. Noi tipuri de obiecte sunt
definite foarte uor i au ca efect o mai bun performan a timpului de rspuns.
Alte funcionaliti utile ale platformei Parse sunt:
Data Storage ,
Local Data Storage (offline mode),
Cloud Computing,
Push Notifications Services,
Facebook Login,
Twitter Login,
Parse Analytics.
Figure 3: Main Screen with Flame Animation

Pentru implementarea acestui mecanism s-a folosit Software Design Details


framework-ul Parse, versiunea dedicate platformei iOS, care faciPentru o mai bun performan i o mbuntire a
liteaz stocarea i scrierea de date pe serverele puse la dispoziia experienei utilizatorului, toate animaiile aplicaiei sunt gestiodezvoltatorilor de platforma Parse.
nate de un AnimationManager. Acesta ascult toate evenimentele
utilizatorului i gestioneaz animaiile care vor fi efectuate pe
Acest mod de abordare a dezvoltrii aplicaiilor mobile i a Main Screen-ul aplicaiei.
migrrii unei pri din business logic de pe server pe partea de
client, poate fi foarte util startup-urilor, deoarece ofer o posibil
Animaiile implementate au fost realizate folosind
soluie la o mai bun gestionare a resurselor financiare. Serverele funcionalitile de autolayout disponibile n iOS sdk. n acest fel
Parse pot fi configurate i utilizate cu foarte mare uurin de ctre s-au realizat animaii la un nivel de complexitate mult mai nalt i
dezvoltatorii aplicaiilor mobile fr a fi nevoie de cunotine de performant, algoritmii fiind considerabil simplificai fa de soluia
dezvoltare a aplicaiilor back-end, lucru care ofer o perspectiva implementrii direct pe proprietatea de frame a fiecrui
.
pozitiv asupra velocitii proiectului i a resurselor financiare
care vor fi utilizate pentru implementarea proiectului respectiv. Animaia de tip fire aplicat celor dou smiley face-uri prezente
n aplicaie, a fost realizat folosind clasa CAEmitterLayer, aceasta
Overview Diagram
fcnd posibil adugarea unui sistem emitor de particule peste
orice obiect de tip UIView. Acest lucru poate fi realizat
datorit faptului c CAEmitterLayer este o subclas
a CALayer, deci poate fi adugat cu uurin ca sublayer la orice obiect de tip UIView.

Figure 4: Overview Diagram

24

nr. 38/august, 2015 | www.todaysoftmag.ro

Implementarea emitorului de particule folosind clasa CAEmitterLayer a evitat introducerea


librriei Cocos2D n proiect, fapt care ar fi afectat
performana. Datorit utilizrii primei soluii, s-au
valorificat n mod optim facilitile grafice suportate
de platforma iOS i s-a atins performana maxim n
ceea ce privete timpul de execuie, complexitatea i
memoria folosite.

programare

TODAY SOFTWARE MAGAZINE

Prin intermediul clasei menionate n seciunea precedent,


ParseManager, se realizeaz ntreaga comunicare cu serverele
Parse, decrcarea obiectelor de feedback, actualizarea obiectelor de Trending Search ct i transmiterea notificrilor aferente
aplicaiei atunci cnd toate obiectele au fost ncrcate n aplicaie,
astfel se asigur integritatea i validitatea datelor primite.
Funcionalitatea de share din cadrul aplicaiei a fost realizat folosindu-se framework-ul Social disponibil n platforma
iOS, din nou evitndu-se folosirea altor framework-uri externe
care ar fi afectat memoria folosit de ctre aplicaie la instalare i
performana vitezei.

Dezvoltri ulterioare
I Love I Hate nu reprezint altceva dect o idee al crei
proof of concept s-a concretizat prin aplicaia iOS I Love I
Hate NY. Pe viitor este luat n considerare i implementarea
altor versiuni ale aplicaiei destinate altor orae care pot fi considerate atracii turistice sau altor domenii de interes.
Pentru versiunile ulterioare sunt luate in considerare urmtoarele funcionaliti:
Posibilitatea de a oferi replica unui feedback,
Push notifications,
Distribuire pe diferite platforme de socializare i prin mail,
Introducerea locaiei unui anumit feedback ,
Modul Offline,
Funcionalitatea de Login .

www.todaysoftmag.ro | nr. 38/august, 2015

25

educaie

Elevii ACADEMY+PLUS
n internship-uri i poziii de junior

a ACADEMY+PLUS se ajunge dup o testare online i dup o preselecie dificil - Piscina de 28 de zile. Primul an academic a nceput n noiembrie 2014, iar
prima generaie se afl n etapa obligatorie de internship. Flexibilitatea programului const i n faptul c aceast etap poate fi fcut oricnd n funcie de rezultatele
avute la proiectele din academie. Astfel, datorit performanelor atinse, elevii Academiei
au nceput stagii sau chiar s-au angajat n firme de IT.
Gloria Csizser

gloria.csiszer@pitechnologies.ro
Marketing Specialist
@ Pitech+Plus

Treisprezece dintre ei ocup locuri la


birourile din PITECH+PLUS, n aceeai
cldire cu sediul academiei. Povestea fiecruia dintre ei este diferit. Au ajuns s
lucreze pe diverse roluri, de aceea am
decis s le facem cunoscut evoluia, pentru a vedea ce poate nsemna experiena
ACADEMY+PLUS (A+) dup cteva
etape parcurse.

Cum se ajunge la academie?


n funcie de vrsta fiecruia i
ocupaiile lor, fiecare candidat a avut
propria motivaie pentru a urma aceast
academie i a aflat de existena ei din
diverse surse. Fiecare Piscin are parte de
o diversitate care ajut la formarea elevilor. Background-urile diverse, nivelul de
experien diferit i vrsta, sunt factori
importani care contribuie la o dezvoltare
multilateral a acestora.

26

nr. 38/2015, www.todaysoftmag.ro

Prezentrile de la liceu i-au fcut


curioi pe Paul i pe Luca. Erau n clasa
a 12-a, tiau c vor s fac facultatea de
informatic, au intrat la UBB i au aplicat i la Academie. Astfel, ultima lun de
vacan i-au petrecut-o n Piscin.
Iniial am crezut c e prea frumos s
fie adevrat. Ne-au prezentat o platform
cu exerciii i jocuri. Era i gratuit. Dup
trei zile de Piscin voiam s m las, pentru
c nu era deloc uor. - a spus Luca. La fel
s-a ntmplat i n cazul lui Vlad n TrguMure. Staff-ul A+ a fost i n licee din alte
orae, s prezinte programul. Oricum
mi doream s merg la facultate n Cluj.
Academia era un bonus. Am intrat la Poli
i am trecut de Piscin n luna august.
Profa ne-a recomandat s mergem i
cum eram mai muli am ncercat cu toii.
n piscin am tras unii de alii, ne-am
motivat reciproc. recunoate Marius

TODAY SOFTWARE MAGAZINE

care a ales s urmeze cursurile de la


FSEGA, Informatic economic.
Andrei a aflat de pe un link pe
Facebook n timp ce era plecat n vacan.
O dat ajuns acas am fcut testele, am
trecut i am intrat n cea de-a treia piscin. A fost cea mai bun decizie pe care
puteam s-o iau. Era octombrie, prima
lun din ultimul an la facultate. Cu ingineria medical nu aveam perspective prea
largi, iar IT-ul m-a atras dintotdeauna.
ACADEMY+PLUS prea o oportunitate
bun de a intra n domeniu.
Alina a fcut liceul de muzic i nu
voia s urmeze o facultate, i dorea o
form de nvmnt neconvenional.
tiam de coala 42 din Frana, am descoperit-o pe internet i am nceput s caut
ceva asemntor. Aa am dat peste A+.

N-am vrut s fac testele, am crezut c nu


o s trec, dar am ncercat. Academia s-a
promovat n perioada BAC-ului la liceele
unde se ddeau probele de info. Pe mine
m-au prins chiar dup ce am ieit de la
BAC. Erau nite fete cu tricouri cu mesaje
geeky care mi-au povestit despre A+. Am
fcut testele i am intrat n piscin.- i
amintete Daniel rznd.

PISCINA
28 de zile intense cu exerciii zilnice,
examene sptmnale, proiecte individuale ori de grup deadline-uri exigente,
punctaje stricte.
Pentru Gabi, care i-a dorit s fac academia pentru a-i schimba profesia, a fost o
adevrat provocare. A terminat Instalaii
i avea un job de 8 ore. De trei ani cocheta

cu programarea, a fcut cursuri online,


ns acestea nu se compar cu ce se ntmpl n academie, unde e alta motivaia, ai
colegi care te ajut, cu care te poi sftui.
A fost wow, a fost greu. Plecam de la
job, stteam pn pe la 11-12. Dimineaa
o luam de la capt, job, academie i asta
timp de 28 de zile. - mrturisete zmbind
Gabi. Ligia era i ea angajat, ns tia c
nu o s rmn n domeniu pentru c voia
mai mult. Dup ce am terminat Masterul
am reluat puin programarea, pentru a-mi
aminti ce fcusem n liceu. mi cutam un
job i a fi vrut s ncerc n IT. Am terminat
Ingineria Construciilor i am gsit un job
n domeniu. Dar am vzut la TV o emisiune despre A+ i am dat testele. Piscina a
fost o perioad grea. Job, piscin, job, piscin. Dar a meritat. Am primit ofert de

www.todaysoftmag.ro | nr. 38/august, 2015

27

educaie
Elevii ACADEMY+PLUS n internship-uri i poziii de junior

job din mai i m bucur c am ajuns n PITECH+PLUS.


Pentru Andrei a fost Cel mai bun regim de slbit, dar mai
ales cel mai bun regim pentru a te educa. Am nvat s privesc
altfel lucrurile, timpul a cptat noi dimensiuni, organizarea era
cuvntul cheie pentru a reui s faci ct mai multe ntr-o zi. Mai
multe astfel de zile se transform n obinuin. i n cazul lui a
fost puin mai greu, ns a demonstrat c se poate s fii n ultimul
an la Politehnic, la o specializare care nu are legtur cu informatica, s i iei examenele i licena, s treci de piscin i s te ii
de academie.

Anul academic

n noiembrie au nceput cu toii cursurile academiei, unde


ritmul nu a mai fost att de alert ca i n piscin, ns a crescut
nivelul de dificultate al proiectelor, dup cum recunosc cu toii.
Au avut tot mai multe proiecte de grup n care trebuiau s formeze
o echip pentru a evolua. Cu toii cred n puterea comunitii:
Chiar dac sunt diferene mari de vrst, avem cu toii programarea n comun, pasiunea pentru cod i asta ne leag.- Daniel
Academia i-a ajutat pe Paul, Luca, Vlad i Anca pe parcursul
facultii s neleag mai bine, mai practic ceea ce fac la cursuri,
proiectele se regsesc att n proiectele de la Babe, ct i de la
Materia din piscin
Poli. Se completeaz materia.
Legat de ceea ce au nvat fiecare n piscin, teoretic i pracAlinei nu i s-a prut greu, erau multe lucruri noi i mi plcea
tic, au fost cu toii de acord c se nva exact ceea ce trebuie. C-ul mult atmosfera. Am avut parte de muli oameni optimiti, care au
e baza, iar proiectele pe care trebuiau s le finalizeze le-au format crezut n mine.
modelul de gndire. O dat neleas i sedimentat algoritmica,
gndirea logic se formeaz, iar ceea ce a urmat dup proiectele Ce au nvat i ce le-a plcut
din preselecie prea mai uor, aceasta indiferent de nivelul lor de
Cele patru module nvate n primul an sunt Unix,
cunotine att de diferit.
Algoritmie, Infografie i Web. Algoritmia i Infografia sunt cele
Ai la dispoziie un volum mare de informaii. Ceea ce mi-a mai faine. La infografie vezi efectiv ceva ce iese din mna ta, vezi
plcut e c poi tu s-i structurezi aa cum vrei informaiile, s rezultatul muncii tale pe monitor. zice Sami.
caui mai mult despre ce te intereseaz, nu i se impune nimic.
Marius a participat i la 3 Day Startup mpreun cu colegi
spune Sami.
din academie i de atunci, cu echipa format acolo a lucrat i
A fost singurul lucru greu care chiar mi-a plcut FrontEnd . Era o aplicaie web i mobil pe care se actualiza
recunoate Anca cu puin nostalgie. Student n anul 2, a dorit starea prtiilor prin review-uri i comentarii. Mi-am dat seama
s-i completeze studiile de la Info UBB cu ceva practic, care s c mi place partea asta de FrontEnd i m-am bucurat c m-am
o ajute s-i dea seama n ce direcie s mearg, pe ce ramur s putut angaja deja, s fac exact ceea ce mi place.
se angajeze. Piscina a nvat-o s fie organizat cu timpul ei i s
tie cum s se raporteze la deadline-uri, care uneori tot n al 12-lea Cnd e bine s faci aceste cursuri?
ceas ajung s se finalizeze, ca i n cazul proiectelor de la coal.
Exemplele att de diverse ne fac s credem n continuare
c oricnd este momentul potrivit pentru a urma Academia.

28

nr. 38/august, 2015 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE


Condiiile eseniale sunt ns motivaia i
pasiunea pentru programare. Dac ai voin
se poate ncepe oricnd, fie c eti n ultimul
an de facultate, fie c ai deja un job.
Dar Paul recunoate c, dac ar fi fost
nc la liceu, nu s-ar fi inut de Academie,
aa, n paralel cu facultatea i se pare cea mai
bun reet.
Academia n sine e mult mai lejer dect
Piscina. Poi s o faci de acas, mpreun cu
coala sau jobul. spune Ligia.

Planuri de viitor

Alinei i-au plcut toate modulele pe care


le-a fcut: Nu tiu nc ce vreau s fac, vreau
s nv mai multe. M bucur c am fcut
internship-ul pe Sys Admin, i atept anul
doi s vd ce o s m atrag n continuare.
Nici Vlad nu tie nc ce i dorete, dar
internship-ul pe mobile l-a ajutat s-i fac o
idee mai bun. A vrea mai mult partea de
programare, dect web, m intereseaz mai
mult funcionalitatea aplicaiilor.
Ligia este angajat din mai ca Business
Analyst, i ateapt urmtorul an pentru
a nva i alte limbaje. Consider c cel
mai bine e s nv mai multe limbaje dac
am ocazia, asta o s mi ofere mai multe
posibiliti pe viitor. Nu vreau s tiu doar
ceea ce se cere acum pe pia.
Daniel ar vrea s rmn pe Sys Admin,
dar vrea s continue i academia. mi
place mai mult dect developmentul, Sys
Admin-ul necesit mai multe cunotine
generale, i dezvoli puterea de analiz.
Cel mai mult m-a atras PHP-ul i am
ajuns s lucrez pe Zend. Sper s am ocazia s
aprofundez Typo3, i posibil pe viitor s m
ndrept spre Symfony.- spune Andrei.
Bogdan Herea, CEO PITECH+PLUS,
fondator ACADEMY+PLUS a afirmat n
legtur cu activitatea academiei din anul
2015 urmtoarele:
Anul 2015 vine cu schimbri n ceea ce
privete platforma de pe care vor nva cei
care trec de Piscinele din vara asta i pentru
cei care vor continua anul 2. Acetia vor putea
alege limbajele pe care vor s le nvee i s
le aprofundeze. Astfel au ocazia s i creasc
nivelul de cunotine, dar s l i diversifice n
cazul n care nu tiu nc ce anume le place.
De asemenea, ne dorim s ncheiem ct
mai multe colaborri cu firmele de IT interesate de fora de munc. n academie se
formeaz oameni pe cele mai diferite tehnologii i sunt soluia pentru cererea actual de
pe piaa de IT.

www.todaysoftmag.ro | nr. 38/august, 2015

29

contabilitate

Beneficiile extrasalariale sub lup n 2015

vnd n vedere faptul c preocuparea principal al organelor fiscale cu atribuii de control a fost n acest an identificarea
altor venituri de natur salarial sau asimilate salariilor, am considerat oportun o trecere n revist a principalelor cheltuieli
efectuate de ctre companii, aparent n beneficiul direct al angajailor, dar care pot fi reinterpretate ca avantaje n natur i
impozitate ca atare.
Din perspectiva impozitrii, orice
bun, serviciu sau sum de bani oferit
salariailor, dac nu intr ntr-una din
excepiile expres evideniate de legislaia
n vigoare i pentru care nu s-au ntocmit
documentele necesare pentru a fi ncadrate
n categoria respectiv, reprezint salarii
pltite n natur, pentru care trebuie s se
rein toate contribuiile i impozitul pe
venit.
n mod similar, n cazul asociailor
participani la societate, bunurile, serviciile
sau sumele de bani care nu intr ntr-una
din excepiile prevzute de lege sau pentru care nu s-au ntocmit documentele
justificative necesare pentru a fi ncadrate
n categoria respectiv vor fi socotite dividende i se va calcula impozitul aferent. n
plus, pentru decontarea acestor cheltuieli
personale se datoreaz i impozit pe profit, deoarece sumele sunt nedeductibile la
calculul impozitului pe profit.

Scutirile prevzute de lege


Diurna
Reprezint indemnizaia acordat
personalului angajat i doar personalului
angajat pentru deplasrile efectuate pe
distane mai mari de 5 km de localitatea n
care i are sediu permanent.
Art. 55 alin. (2) lit. i) din Codul fiscal, prevede faptul c pn la cuantumul
de 2,5 ori indemnizaia stabilit pentru
sectorul public, nu se datoreaz impozit
pentru diurnele acordate legal salariailor.

30

De asemenea, prin art. 296^15 lit. g)


din Codul fiscal se prevede c n acelai
cuantum, nu se datoreaz nici contribuii
sociale.
n ultima form a Codului Fiscal, nu
se amintesc aceste indemnizaii n rndul
cheltuielilor deductibile, articolul fiind
abrogat. Cu toate acestea, n practic se
socotesc deductibile, cel mai uzat articol
pentru justificare fiind art. 21. Alin. 1 din
Codul fiscal.
Diferena de sume acordate ce
depete plafonul de 2,5 ori indemnizaia
stabilit pentru personalul din sistemul
bugetar v fi socotit avantaj n natur, se
vor calcula contribuii i se va reine impozitul aferent.
Pentru personalul din sistemul bugetar
valoarea diurnei este definit prin HG nr.
1860/2006 privind delegarea i deplasarea,
cu modificri ulterioare. Ultima modificare a intrat n vigoare de la 1 ianuarie
2015 i a ridicat nivelul diurnei la 17 lei
pe zi, ceea ce nseamn c pentru sectorul
privat, valoarea deductibil a diurnei este
de 42,5 lei. Aceast valoare se aplic pentru deplasrile n cadrul Romniei. Pentru
diurnele externe, sunt prevzute valori
pentru fiecare ar n parte n monedele
locale.
Acest lucru nseamn c pentru
diurnele pltite salariailor ce depesc
plafoanele amintite se datoreaz impozite
i taxe similar salariilor de aproximativ
52%.
Mai amintim i faptul c legea nu

nr. 38/august, 2015 | www.todaysoftmag.ro

impune o valoare minim sau maxim a


diurnei, aceasta fiind stabilit ntre angajator i salariat.

Cheltuielile de transport
n cazul cheltuielilor cu transportul se
vorbete de mai multe spee posibile pe
care le vom detalia n rndurile urmtoare.
Decontarea transportului cnd angajatul este stabilit n alta localitate dect
cea de unde este locaia punctului de
lucru unde se desfoar activitatea.
Conform art. 55 alin. (4) lit. f) i art.
296^15 lit. f ) din Codul fiscal, nu sunt
asimilate veniturilor din salarii i nu se
vor reine impozitul pe venit aferent i
contribuiile pentru decontarea cheltuielilor de transport la i de la locul de munc,
n cazul n care nu se asigur locuin sau
se suport cheltuielile cu chiria. Plafonul
maxim este echivalentul unui abonament lunar. Pentru aceste cheltuieli nu
se specific obligativitatea nscrierii unor
prevederi n contractul de munc sau contractul colectiv de munc.
Dac salariatul primete o main
de serviciu, iar acesta efectueaz transportul pe distana domiciliu-localitatea
de serviciu, exist mai multe situaii fiscale ce trebuie dezvoltate punctual, n
funcie de existena transportului public
i suprapunerea transportului public asupra programului de lucru. Dac exist
transport public, TVA de la combustibili

este cheltuial nedeductibil integral i


se va nregistra n costul cu alimentarea
autoturismului. Pentru a beneficia de o
deductibilitate integral a cheltuielilor cu
combustibilii se impune obligatoriu ntocmirea foilor de parcurs, pentru a se vedea
c autoturismul este folosit n mod exclusiv
pentru societate.
n lipsa foilor de parcurs, se prezum
acordarea unei deductibiliti de 50% att
pentru TVA ct i pentru cheltuieli, iar
autoritile fiscale, n ultimul timp, trateaz
partea nedeductibil de 50% ca avantaj n
natur.

nr. 44/2004 cu modificri ulterioare permit


deductibilitatea integral.
Este necesar s fie precizat n contractul colectiv faptul c se pot acorda aceste
faciliti.

Transportul n cadrul delegaiei

Decontare combustibil

n baza art. 55 alin. (4) lit. g) i art.


296^15 lit. g) din Codul fiscal, nu sunt
asimilate veniturilor din salarii acoperirea cheltuielilor cu transportul n cazul
delegaiilor, motiv pentru care nu se vor
calcula impozite i contribuii aferente.
Cheltuiala este deductibil din punct
de vedere al impozitului pe profit conform
art. 21 alin. (2) lit. e) din Codul fiscal.

Conform art. 145^1 alin. (1) din Codul


fiscal, pentru autoturismele care nu sunt
utilizate efectiv n scopul activitii, se
deconteaz doar 50% din TVA-ul aferent
combustibilului utilizat pentru autoturismele care nu sunt utilizate exclusiv n
scopul activitii economice. TVA-ul considerat nedeductibil va fi nregistrat ca o
cheltuial cu combustibilul.
Conform art. 21 alin. (4) lit. t) din
Codul fiscal, pentru autoturismele care nu
sunt utilizate exclusiv n scopul activitii,
50% din cheltuiala cu combustibilul ( se va
lua n considerare i TVA-ul nedeductibil
nregistrat ) va fi socotit nedeductibil.
Din punct de vedere al interpretrii
combustibilului drept avantaj n natur
sau dividend anticipat, se aplic aceleai
reguli ca i pentru cheltuielile de transport
menionate anterior.

Cheltuieli de transport ale salariailor


care sunt domiciliai n aceeai localitate
ca i compania

Transportul administratorilor n interes de serviciu


Conform art. 21. alin. (2) lit. e) din
Codul fiscal, cheltuielile efectuate pentru
transportul administratorilor, precum i
a persoanelor asimilate administratorilor,
sunt deductibile.

Conform art. 55. alin. (4) lit. a), art.


296^15 lit. b) i art. 21 alin. (3) lit. c) din
Codul fiscal, n cazul n care este prevzut
n contractul de munc sau n contractul
colectiv de munc nu se va interpreta ca
avantaj n natur decontarea transportului la i de la locul de munc i nu se vor
reine impozite si contribuii aferente aces- Maina de serviciu
tor costuri.
Conform normelor pentru art. 55 din
Normele pentru art. 21 alin. (1) din Codul fiscal regsite la pct. 77 din HG nr.
Codul fiscal regsite la pct. 23 lit. f) din HG 44/2004, nu se consider venit asimilat

salariului utilizarea autoturismului de


serviciu n vederea ndeplinirii sarcinilor de serviciu, motiv pentru care nu se
reine impozit i nu se rein contribuiile
obligatorii.
n cazul n care autoturismul se va
folosi n scop personal, se consider a fi
avantaj n natur i se vor calcula impozit
i contribuii aferente unei valori reprezentnd 1,7% din valoarea acesteia pentru
fiecare lun. (conform normelor pentru
art. 55 alin. (3) din Codul fiscal regsite la
pct. 75 din HG nr. 44/2004)
n acest caz, dac s-a dedus TVA
la achiziia autoturismului, o parte din
aceast sum trebuie pltit la buget, societatea pierznd integralitatea dreptului
de deducere. Sunt dou proceduri de calcul a TVA de plat reglementate n acest
moment de art. 148 i art. 149 din Codul
fiscal. Analizele trebuie dezvoltate pe un
caz concret.
n acest context, dac autoturismul este
autorizat n mod personal doar parial,
ntr-o anumit perioad de timp, avantajul
n natur se calculeaz determinndu-se
ponderea kilometrilor parcuri n interes
personal, n total kilometrii parcuri n
acea perioad.
Contravaloarea cheltuielilor calculate
prin aceast pondere reprezint avantaj
n natur. Implicit, fr s fie menionat
expres, nelegem obligaia de a ntocmi
foi de parcurs i atunci cnd utilizm o
deductibilitate de 50% n astfel de cazuri,
deoarece altfel nu putem determina valoarea avantajului n natur.

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

www.todaysoftmag.ro | nr. 38/august, 2015

31

contabilitate
Beneficiile extrasalariale sub lup n 2015
Cheltuieli de cazare
Cazarea n cadrul delegaiilor
n baza art. 55 alin. (4) lit. g) i art.
296^15 lit. g) din Codul fiscal, nu sunt
asimilate veniturilor din salarii acoperirea cheltuielilor cu cazarea n cazul
delegaiilor, motiv pentru care nu se vor
calcula impozite i contribuii aferente.
Cheltuiala este deductibil din punct
de vedere al impozitului pe profit conform
art. 21 alin. 2 lit. e), att timp ct se susine
cu documente scopul delegaiei n folosul activitii vizite la clieni, furnizori,
participri la trguri, expoziii, traininguri
cu subiecte legate de domeniul de activitate. Nu putem extinde aceast abordare la
orice cheltuial cu cazarea fcut de ctre
administratori sau salariai, dac nu se
confirm din documentele anexate facturii de cazare, c deplasarea a fost efectuat
n scopul activitii. n acest caz, n funcie
de beneficiarul serviciilor de cazare, cheltuiala va fi considerat un dividend, dac
beneficiarul este asociatul companiei sau
un avantaj n natur, dac deplasarea a fost
efectuat de ctre un angajat.
Se ntmpl uneori ca documentele de
cazare, n principal factur, invoice etc. s
fie emise pe numele salariatului cazat n
deplasare. n acest caz, cheltuiala i TVA-ul
pot fi deductibile, dac se efectueaz n
scopul activitii. Se impune existena
ordinului de deplasare anex documentelor de cazare conform normelor de aplicare
pentru art. 146 din Codul fiscal regsite la
pct. 46 din HG nr. 44/2004 cu modificri
ulterioare.

32

Asigurri de sntate / pensii private


Asigurrile de sntate i pensiile private oferite salariailor au deductibilitate
de la calculul impozitului pe profit, atta
timp ct se respect condiiile cerute de
lege, dup cum urmeaz: asigurrile de
sntate ntr-un plafon de 250 euro pe an/
angajat, iar pentru pensii, 400 euro pe an/
angajat. ( art. 21 alin. 3 lit. j i k )
Asigurrile de sntate nu trebuie
confundate cu abonamentele de la spitalele private care ofer diverse forme de
pachete. Asigurrile de sntate trebuie
s respecte principiile impuse de legea
sntii 95/2006. Tot conform acestei
legi, la art. 339 lit. i) se prevede faptul c
serviciile medicale furnizate sub form
de abonament reprezint servicii medicale prepltite, pe care furnizorii le ofer
n mod direct abonailor i nu prin intermediul asiguratorilor, n afara serviciilor
din pachetul de servicii medicale de baz
din sistemul de asigurri sociale de sntate. Astfel, acest abonament, diferit de
uzualele contracte de medicin a muncii
obligatorii prin efectul legii, trebuie alocat
fiecrui salariat i impozitat ca avantaj n
natur. Pentru asigurrile de sntate se va
reine impozit pe venit, dar nu se vor reine
contribuii sociale aferente.
n forma actual a legislaiei din Codul
Fiscal nu se prevede i varianta n care
angajatul i face polia de asigurare i o
prezint angajatorului spre decontare, ci
doar varianta n care angajatorul negociaz
cu firma de asigurare i ofer polia angajatului, contractul fiind ntre angajator i
firma de asigurare.
Pensiile private trebuie s fie convenite de Autoritatea de Supraveghere

nr. 38/august, 2015 | www.todaysoftmag.ro

Financiar i s fie reglementate conform legii 204/2006. n aceast categorie


sunt cuprinse pensiile de tip pilonul 3.
Variantele de alte tipuri de asigurri, care
au prevzut ca la finalul contractului
sumele cumulate s fie pltite sub form
de pensie, nu sunt acceptate n baza acestor reglementari din Codul Fiscal. Poliele
pot fi contractate de angajator i oferite
salariailor sau pot fi contractate de ctre
salariai i prezentate angajatorului spre
decontare. Pentru aceste pensii nu se pltesc contribuii salariale n limita celor 400
euro i, de asemenea, sumele sunt deductibile la calculul impozitului pe salarii.

Vouchere de vacan
Sunt reglementate de OUG 8 /2009
cu actualizrile ulterioare. Conform
Ordonanei, se pot acorda vouchere de
vacan ntr-un plafon maxim de 6 salarii
minime brute pe economie, pentru fiecare
angajat, n total pe an.
Aceste cheltuieli sunt deductibile n
plafonul indicat mai sus i nu se calculeaz
contribuii art. 296^15 lit. O, dar se datoreaz impozit pe venit conform normelor
de la art. 55 pct. 68. Dac pn n iulie
2014 era obligatoriu ca persoana juridic s
fi obinut profit n anul precedent pentru a
le putea acorda, paragraful respectiv a fost
abrogat prin Legea 94/2014. Voucherele
de vacan pot fi utilizate doar la uniti
autorizate de Autoritatea Naional pentru
Turism.
Acestea vor avea valori nominale de
10, 20, 30, 40 i 50 lei. Asemenea tichetelor de mas i a tichetelor cadou, nu se
va putea acorda rest la plata cu voucherele.
Normele de aplicare pentru legea care

TODAY SOFTWARE MAGAZINE


reglementeaz voucherele de vacan ar
trebui s fie publicate pn la nceputul
lunii august i ar trebui s aduc mai multe
clarificri referitor la condiiile necesare
a fi ndeplinite, cum ar fi: menionarea
acestor faciliti n contractul colectiv de
munc, ncadrarea n cadrul cheltuielilor
sociale, etc. .
Cheltuielile cu voucherele de vacan
sunt integral deductibile la calculul impozitului pe profit, fr a depi valoarea
anual de 6 x salariul minim pe economie,
pentru fiecare salariat. Voucherele sunt
supuse impozitului pe venitul din salarii la
nivelul persoanei fizice.

Cheltuieli protocol intern birou


Pentru societi nu exist o definiie
legal a noiunii de protocol, singura
reglementare ce expliciteaz aceast cheltuial fiind dat n reglementrile privind
impozitarea PFA. Conform acestui temei
normativ, cheltuielile de protocol sunt cheltuieli de reprezentare a contribuabilului.
n p r a c t i c , n c o nt a b i l i t at e a
societilor, n aceast categorie includem
apa, cafeaua, laptele, ceaiul, fructele, dulciurile i alte asemenea produse cu valoare
unitar mic, care sunt folosite pentru uzul
intern.
Din pcate, aceste cheltuieli sunt cele
mai reinterpretate n cadrul controalelor fiscale din anul 2015. Reglementrile
legale nu sunt suficient de specifice pentru a face o ncadrare corespunztoare
acestor tipuri de trataii, totodat trebuie
inut cont i de specificul companiei, att
ca domeniu de activitate, ct i ca numr
de angajai, etc. . Exist cazuri cnd aceste
mici trataii n cadrul activitii au fost
ncadrate drept avantaje n natur i s-a
calculat impozit i contribuii aferente,
dei nu exist practic posibilitatea alocrii concrete a acestor cheltuieli pentru
fiecare salariat, ceea ce transform aceast
abordare ntr-un act absolut subiectiv i
inechitabil. Considerm c, ajungndu-se
n situaia de a ntocmi liste cu consumul
de cafea, lapte, zahr, bomboane etc. pentru fiecare salariat n parte (singurul mod
n care am putea trata corect aceste avantaje ) ndeprteaz mult compania de la
obiectivul de business pe care i l-a propus
i care trebuie avut n vedere profit, cifra
de afaceri, eficiena, productivitate - nspre
o activitate administrativ i care implic i
alte costuri nejustificate.

de protocol ocazionate de acordarea unor


cadouri, trataii i mese partenerilor de
afaceri, efectuate n scopul afacerii i
automat, legislaia aferent nu se aplic.

Beauty&spa, acces sli de sport/fitness etc.


Tot mai mult n ultimii ani, pachetele
salariale ale angajailor din multinaionale,
companii de IT i de servicii cuprind pe
lng salariul de baz i o serie de alte
beneficii extra, acestea fiind extrem de
importante n atragerea de noi angajai
sau n fidelizarea echipelor existente.
Aceste beneficii pot cuprinde, fr a se
limita: abonamente la sli de sport, centre de frumusee, nchirieri de terenuri de
sport, bilete la concerte, spectacole i alte
evenimente sociale. Din pcate, prevederile Codului Fiscal sunt destul de clare cu
aceste alte tipuri de remuneraii n natur
i sunt considerate avantaje salariale, i
impozitate ca atare, cu impozit pe venit
i toate contribuiile sociale. ncercarea
de a cosmetiza efectuarea acestor cheltuieli din unele practici personale, n
folosul direct al angajatului, n cheltuieli
deductibile, care contribuie la optimizarea
rezultatelor, nu are o baz legal stabil i
nu va fi acceptat n contextul unui control
fiscal avnd ca obiect identificarea avantajelor n natur.
n concluzie, dac ne raportm i la
impozitul pe profit, considerm c acestea sunt deductibile n procentul de 2% pe
seama cheltuielilor sociale atta timp ct
sunt generate de un contract individual de
munc, contract colectiv de munc etc. .

Cadouri diverse (obiecte, mbrcminte,


produse alimentare, carduri cadou etc.)

Exist totui n Codul fiscal, la art. 21


pct. 3 lit. c), o limit de 2% aplicat fondului total de salarii al companiei, n cadrul
creia societile au dreptul s efectueze
anumite cheltuieli, n beneficiul angajailor,
fr ca acestea s fie considerate asimilate
salariilor. n vederea lurii unor decizii de
optimizare fiscal, recomandm a se analiza n detaliu i posibilitile oferite de
aceste prevederi, pentru a le putea exploata
n anumite situaii permise. Astfel, n
categoria cheltuielilor sociale sunt ncadrate i cadourile oferite copiilor minori
cu ocazia Patelui, Crciunului, zilei de
1 Iunie, n limita unui plafon de 150 lei,
cadouri oferite salariatelor cu ocazia zilei
de 8 Martie. Sumele ncadrate n plafonul
de mai sus sunt deductibile fiscal i nu se
Aceste tipuri de achiziii nu pot fi datoreaz impozit (art. 55 alin. 4 lit. a) i
ncadrate n rndul cheltuielilor de proto- nici contribuii sociale ( art. 296^15 lit.
col, acestea fiind considerate cheltuielile b ). Sumele ce depesc plafonul de 150

lei/ persoana, precum i acordarea lor


cu oricare alt ocazie dect cele prevzute de lege, sunt considerate avantaje n
natur i vor fi impozitate i se vor reine
contribuiile aferente.
Aceste cheltuieli sunt deductibile fiscal,
n baza art. 21 alin. 3 lit. C, n limita unui
plafon de 2% din fondul de salarii.
Chiar dac cadourile oferite sunt sub
pragul de 150 lei, dac sunt oferite cu alte
ocazii dect cele menionate sau ctre alte
persoane dect cele prevzute, vor fi considerate avantaj n natur i se vor reine
contribuii i impozit. Mai mult de att,
dac se depete plafonul de 2% din fondul de salarii, chiar dac se rein contribuii
salariale i impozit, pentru societate, cheltuiala va fi nedeductibil.
Chiar dac exprimarea din lege este
acordarea unor bunuri n bani sau n
natur, n aceast categorie scutit de
impozit pe venit nu regsim tichetele
cadou ce urmeaz un alt tratament fiscal.

Tichetele cadou
Conform art. 2 din Legea nr. 193/2006
privind tichetele cadou, tichetele cadou
pot fi acordate intern sub form de cheltuieli sociale.
Fiind ncadrate n aceast categorie,
cheltuiala cu tichetele cadou va fi deductibil la calculul impozitului pe profit
ntr-un plafon de 2% din fondul de salarii.
Pentru aceste tichete se reine impozit pe
venit n procent de 16% conform art. 55
alin. (3) lit. h) din Codul fiscal, dar nu se
datoreaz contribuii sociale conform art.
296^15 lit. o) din Codul fiscal. Din interpretarea acestui temei normativ, respectiv
scutirea la asigurrile sociale acordate conform legii, considerm c nu se datoreaz
asigurri sociale pentru tichetele cadou,
chiar dac cheltuiala cu acestea depete
la calculul impozitului pe profit plafonul de
2% de cheltuieli sociale. n argumentaia
noastr amintim c aceste tichete cadou
sunt date conform legii tichetelor cadou
ce presupune achiziia doar de la uniti
autorizate i utilizarea unor formate predefinite, condiii ndeplinite. S-ar fi datorat
asigurri sociale pentru aceste tichete
cadou, dac erau achiziionate de la uniti
neautorizate sau erau date la salariai ntrun alt mod dect cel prevzut n lege.
Este important ca n contractul colectiv de munc s se precizeze condiiile n
care se vor putea oferi aceste tichete cadou
salariailor. Este indicat ca evenimentele
pentru care se acorda aceste tichete s aib
caracter ocazional.

www.todaysoftmag.ro | nr. 38/august, 2015

33

contabilitate
Beneficiile extrasalariale sub lup n 2015
Ajutoarele de nmormntare, natere, boli
grave i incurabile
Conform art. 55. alin. 4 lit. a) i art.
296^15 lit. b), pentru aceste ajutoare nu
se rein contribuii i nici impozit. Dac se
ncadreaz n cei 2% din fondul de salarii
atunci sunt deductibile fiscal. n caz contrar, chiar dac s-au reinut impozitul
i contribuiile, vor fi nregistrate drept
nedeductibile.

Team building-uri, mese festive, alte ieiri


sau evenimente organizate
n funcie de scopul pe care l au aceste
evenimente vom putea sa le ncadrm din
punct de vedere a deductibilitii sau a
reinerilor.
Astfel, n cazul n care discutm de
un eveniment care are drept scop pregtirea profesional i perfecionarea
angajatului n legtur cu activitatea
desfurat, atunci costurile aferente vor
fi deductibile i nu se vor reine impozit

34

pe venit i nici contribuii sociale. ( art.


21 alin. 2 lit. h , art. 55 alin. 4 lit. n, i
art. 296^15 al 3 lit. k ). n vederea ncadrrii n aceast categorie trebuie s se
prezinte documente care s justifice scopul. Este indicat s se ntocmeasc un
dosar al aciunii de team-building, care
s cuprind agenda desfurat a evenimentului, lista participanilor la fiecare
training sau activitate din program.
Totodat ar fi indicat s existe o abordare
de ansamblu la nivelul scopului urmrit,
adic o decizie a managementului privind
oportunitatea efecturii acestor cheltuieli
prin prisma rezultatelor ce vor fi obinute.
La ncheierea evenimentului sau ulterior, dup un timp estimat, se pot evalua
rezultatele obinute, prin fie de feedback
ale participanilor i constatri efective
ale celor responsabili (Departamentul
de Resurse umane, managerii de echipe,
de proiect etc.). n cazul n care scopul
nu este pregtirea profesional, atunci
aceste evenimente vor fi ncadrate n

nr. 38/august, 2015 | www.todaysoftmag.ro

rndul avantajelor n natur si se vor


calcula contribuii sociale i impozit n
cot parte pentru fiecare salariat prezent.
Diminuarea riscului fiscal se poate realiza artnd n mod concret participanii
la aceste evenimente, pe ct posibil actuali clieni sau poteniali colaboratori ai
societii din perspectiva fie a furnizorilor,
fie a posibililor beneficiari.

Adrian Beleag

adrian.besleaga@aiconsulting.ro
Manager Operatiuni
@ A&I Consulting

Adrian Benta

adrian@bentaconsult.ro
Consultant Fiscal
@ Benta Consult

management

Cnd ne doare, mergem la medic

nd e vorba de sntatea noastr, apelm la un specialist. i de obicei, l vrem


pe cel mai bun, ale crui indicaii i tratamente le respectm atent. Nu ne lum
dup ce am citit pe internet sau nu i spunem doctorului cum s ne opereze.
Pn la urm e n joc sntatea i viaa noastr. Dar oare facem aa i cnd vine vorba
de firma noastr?
Szilrd Kacs

szilard.kacso@happy-employees.eu
CEO & Trainer
@ Azimut Happy Employees

Ne doare, dar refuzm tratamentul recomandat


Ne doare. Suntem contieni de asta:
nu avem echipa pe care ne-o dorim, rezultatele nu sunt cele ateptate sau pur i
simplu echipa nu este pe ct de consolidat
ar trebui. Ne doare. Sntatea organizaiei
noastre ,,scrie, i ne hotrm s lum
atitudine: organizm un team building!
Dar ,,ne putem trata noi singuri, nu? l
putem organiza noi, intern, pn la urm
nu e chiar att de greu! Oamenii trebuie
s se simt bine, s se distreze, facem i
paintball, bungee jumping i partea de
socializare va veni de la sine. Investim
nite bani, timp, resurse, n ,,tratament
i la final observm c nu vedem efectele
dorite. Poate pentru c ,,tratamentul
administrat nu a fost cel corect.

Faptul c socializarea are un impact


major asupra performanei echipei nu
este o noutate. Evenimentele informale contribuie la: eliberarea stresului
dup o perioad aglomerat, dezvoltarea relaiilor interpersonale, srbtorirea
succeselor i realizrilor, oferirea unui
impuls motivaional. Aceste evenimente
ns nu pot substitui evenimentele adevrate de team building. Programele de
team building au roluri si obiective diferite. Teambuilding-ul este ,,tratamentul
prin care provocm un grup de oameni
s lucreze mpreun n mod eficient ca o
echip, prin intermediul unor activiti i
evenimente menite s creasc motivaia
i s promoveze cooperarea. Este vorba
despre un set de activiti facilitate de traineri pentru a crete performana echipei
i a ajuta la ndeplinirea unor obiective
organizaionale specifice.

www.todaysoftmag.ro | nr. 38/august, 2015

35

management
Cnd ne doare, mergem la medic
Ce trebuie s urmreasc ,,tratamentul administrat?
Dac ne-am dat seama c este spre binele ,,sntii
organizaiei noastre s apelm la un ,,doctor, este recomandat s
urmm ,,tratamentul prescris. Chiar dac unele etape din programul de team building nu ni se par importante, este spre binele
nostru s le respectm, pentru rezultate optime.
Care sunt elementele unui team building de la care nu ar trebui s se fac rabat?
1.Obiective clar definite, corelate cu obiectivele
organizaionale.
2. Program personalizat, adaptat obiectivelor programului,
grupului, situaiilor specifice cu care se confrunt participanii
sau stagiul n care se afl echipa, locaia.
3. S faciliteze transferul de cunotine: pentru ca participanii
s fie capabili s utilizeze cele nvate la team building i n
mediul profesional este crucial prezena unui debrief calitativ.
4. Raport de evaluare a programului de team building:
observaiile structurate pot fi baza unei analize de nevoi care s
ajute la dezvoltarea unor programe de follow-up.
5. Program de follow-up: studii tiinifice [1], dar i experiena
noastr ne arat c programele de follow-up (training, coaching,
dezvoltare organizaional) pot asigura eficacitatea programelor
de team building i creterea performanei pe termen lung.
6. ,,Elemente speciale: care ofer o experien unic
participanilor, ajut la ndeplinirea obiectivelor i faciliteaz
nvarea: tematic de team building, elemente de joc (gamification), programe tematice de sear.

Cum ne poate ajuta ,,tratamentul administrat corect?


Dac apelm la specialiti i urmm recomandrile lor, astfel
de programe pot ajuta la sntatea noastr organizaional prin:
Creterea coeziunii echipei,
Dezvoltarea unor noi modaliti de a lucra eficient n
echip,
Dezvoltarea abilitilor de conducere (leadership),
Dezvoltarea abilitilor de rezolvare a problemelor n
echip,
Facilitarea soluionrii conflictelor n echip,
mbuntirea comunicrii n echip,
Creterea gradului de ncredere n echip,
Contientizarea unor probleme sau nevoi (care pot fi adresate n programele de follow-up),
Oferirea unui impuls motivaional.

36

nr. 38/august, 2015 | www.todaysoftmag.ro

n concluzie, dac observm anumite lipsuri sau lucruri de


mbuntit n organizaia noastr este de preferat s apelm la
serviciile unor profesioniti i s nu facem rabat de la calitatea
acestor programe. Dac ne doare, mergem la medic n loc s ne
tratm singuri, nu?
(1)- Tannenbaum, Beard, Salas: Chapter 5 Team Building and
its Influence on Team Effectiveness: an Examination of Conceptual
and Empirical Developments

management

Btlia din online:


marc vs domeniu de Internet

ntrebai cumva care este relevana acestui subiect pentru domeniul IT? Iat
trei aspecte la care merit s v gndii:
Strategia de brand n cyberspace ar trebui s se afle pe agenda oricrei companii care vrea s se dezvolte n epoca digital.

Claudia Jelea

claudia.jelea@jlaw.ro
Avocat & Consilier n domeniul marcilor
@IP Boutique

Cele mai multe afaceri din domeniul IT i triesc viaa preponderent


n lumea digital aadar, ar trebui s fie
interesate de cum i pot folosi numele
de domenii i mrcile pe Internet.
Schimbrile curg rapid la nivel
global, iar companiile trebuie s se adapteze. De exemplu, n prezent, asistm la
o expansiune fr precedent a numelor
de domenii noile gTLD-uri (generic
top-level domain names). n curnd,
domeniile .tech, .software, .technology,
.game, .SRL, .online, .web, .site sau .website vor fi foarte uzuale, avnd un mare
potenial de conflict asupra companiilor
ce activeaz n IT i n online.
Aa c este prudent s fii informai
privind unele riscuri i mecanisme de
protecie.

De ce exist conflicte ntre mrci i nume de


domenii?
Conflictele apar, n principiu, din cauza
riscului de confuzie n rndul clienilor.
Cu toate c numele de domenii sunt,
ca i mrcile, nregistrate pe principiul
primul venit, primul servit, ele nu ofer
acelai nivel de protecie precum mrcile. n practic, de cele mai multe ori, se
consider c drepturile titularului unei
mrci pot fi afectate dac altcineva nregistreaz un nume de domeniu de internet
ce conine o denumire asemntoare sau
identic cu acea marc.
Exist cazuri, nu puine la numr,
cnd dac nu suntei suficient de activi
n mediul online putei afla c marca

v este deja folosit n numele de domeniu al altcuiva. Acest altcineva poate


fi un cybersquatter (care nregistreaz cu
rea-credin nume de domenii ce conin
mrci nregistrate sau notorii, cu scopul de
a le revinde ulterior la un pre avantajos)
sau chiar un comerciant care, cu buncredin, vinde sau presteaz produse sau
servicii (concurente sau nu).
Pn recent, btlia s-a dat n general
pe extensiile .ro i .com. Dar n contextul
apariiei noilor gTLD-uri la care m-am
referit mai sus, disputele dintre mrci i
nume de domenii vor crete exponenial
cel mai probabil i vor fi din ce n ce mai
complexe.

Ce poate fi fcut?

Dac suntei titularul unei mrci


nregistrare i inei la unicitatea i exclusivitatea acesteia, cu siguran vei dori
s evitai ca o alt persoan s foloseasc
pe internet un domeniu care reflect acea
marc, mai ales dac domeniul n cauz
v poate face concuren sau v mpiedic s v extindei activitatea n alt zon
geografic.
Dac ai monitorizat i ai aflat c
exist un asemenea domeniu, ncercai - n
prim etap - s contactai persoana care
l-a nregistrat i s-l preluai amiabil. Este
important s punctai n mod persuasiv
drepturile pe care v bazai cererea.
Dac nu avei succes n acest prim pas,
putei trece la o etap formal. De obicei,
procedura depinde de tipul extensiei (.ro,
.eu, .com, gTLD nou, etc.) putei opta

www.todaysoftmag.ro | nr. 38/august, 2015

37

management
Btlia din online: marc vs domeniu de Internet
pentru o procedur de arbitraj sau mediere (de exemplu, prin
WIPO Arbitration and Mediation Centre1 ) sau pentru o aciune
n instan (dar care poate consuma mai multe resurse). ns, n
aceste cazuri, dac vrei s v fie aprate drepturile corespunztor, recomandarea este s apelai la ajutor juridic de specialitate.
De exemplu, unul dintre clienii mei, o companie romneasc
de IT, deine att marc naional, ct i comunitar reflectat n domeniile aferente .ro i .com. Avnd n plan extinderea
activitii n Marea Britanie, clientul a dorit s nregistreze i
domeniul aferent .co.uk, ns a aflat c este deja nregistrat de un
cetean britanic. Domeniul era inactiv. Clientul meu a apelat la
procedura de mediere oferit de Nominet UK (corespondentul
britanic al ROTLD) i, n urma argumentelor pe care le-am invocat, a obinut rapid i amiabil transferul domeniului, n schimbul
unei sume negociate rezonabil.
Dac ai nregistrat un domeniu ce include o denumire
identic sau similar mrcii altei persoane, strategia depinde
i de modul concret n care dumneavoastr folosii respectivul
domeniu. De regul, v poate avantaja dac avei sau nu un
interes legitim s-l folosii - de exemplu, pe acel domeniu web
ai dezvoltat cu bun-credin un serviciu sau produs pe care l
oferii clienilor dumneavoastr, etc.- , dac avei drepturi anterioare asupra acelei denumiri (de exemplu, o marc proprie sau
numele propriei companii), etc.
De aceea, n cazul n care ai primit o notificare din partea
titularului unei mrci care v solicit (amenintor sau nu) transferul domeniului, unul dintre primele lucruri pe care ar trebui s
le facei este s apelai la un expert care s analizeze situaia i s
evalueze ansele pe care le avei pentru a putea pstra domeniul.
Reinei faptul c situaia se analizeaz ntotdeauna de la caz
la caz, iar analiza nu este mereu simpl. Nu facei eroarea de a
renuna imediat la domeniu, nainte de a primi o opinie specializat; s-ar putea s avei surpriza ca dreptatea s fie (i) de partea
dumneavoastr. n urm cu cteva luni, un client din zona online
mi-a solicitat s verific o denumire pe care dorea s o foloseasc
n noul su domeniu. nainte s m contacteze, primise o notificare formal din partea unei companii din Germania care deinea
o marc comunitar (aadar, protejat inclusiv n Romnia) i
pretindea transferul imediat al domeniului. Clientul s-a speriat
i a acceptat transferul, optnd pentru un rebranding i costurile
aferente, fr s cear opinia unui expert. De neles, n cazul
noului nume de domeniu pe care l-a nregistrat, a fost diligent i
1

38

Organizaia Mondial a Proprietii Intelectuale - www.wipo.int/amc/en/domains

nr. 38/august, 2015 | www.todaysoftmag.ro

a cutat ajutor. Dar, din pcate, a aflat i faptul c avea argumente


solide pentru a pstra domeniul iniial la care a renunat.

Pe scurt, despre noile gTLD-uri


n privina noilor gTLD-uri, putei gsi aici2 un infografic realizat de Internet Corporation for Assigned Names and
Numbers (ICANN 3) privind modul n care titularii i pot
proteja mrcile n mediul online, n urma revoluiei noilor
nume de domenii (de exemplu, prin nregistrarea n Trademark
Clearinghouse).
Trademark Clearinghouse este o baz centralizat de date
(pus la dispoziie de ICANN i administrat de Deloitte i IBM)
n care titularii pot alege s i includ mrcile n perioada Sunrise
i s nregistreze domeniile aferente. Mrcile, dup ce sunt validate, obin prioritate la nregistrarea noilor gTLD-uri, iar titularii
mrcilor sunt informai cnd un ter ncearc s nregistreze un
nou gTLD care include respectiva marc, evitnd, astfel, situaiile
neplcute n care trebuie s lupte ca s redobndeasc domeniu
n cauz.
Putei verifica statusul oricrui nou gTLD accesnd acest
link4 . Iar dac dorii s aflai mai multe detalii privind domeniul
.tech, putei vizualiza aceast prezentare5.
n concluzie, cine nvinge n conflictul dintre mrci i nume
de domenii? A ndrzni s spun c, n general, nvinge titularul
mai informat care i cunoate mai bine drepturile i tie cum s
le foloseasc n propriul avantaj.
Estimez c, n viitor, noile nume de domenii vor crea probleme destul de serioase titularilor de mrci. Companiile inclusiv
cele din domeniul IT care ofer servicii i produse disponibile n
mai multe arii geografice, trebuie s se adapteze la noul peisaj
creat de interferena dintre mrci i numele de domenii i s pun
mai mare accent pe strategia juridic din mediul online. Dar
important de reinut este i faptul c exist mai mereu opiuni
pentru a rezolva situaiile conflictuale rezultate din folosirea mrcilor i a numelor de domenii. Rmne s o alegei pe cea mai
potrivit situaiei concrete cu care v confruntai; iar acest lucru e
posibil numai dac suntei informai sau sftuii corect i la timp.
2 newgtlds.icann.org/en/announcements-and-media/infographics/tm-protection
3 www.icann.org
4 http://www.trademark-clearinghouse.com/gtld-calendar
5 http://www.trademark-clearinghouse.com/sites/default/files/files/downloads/150617_
webinar_tech.pdf

Testeaz-i
abilitile

programez.ro

n curnd

sponsori

powered by

S-ar putea să vă placă și