Sie sind auf Seite 1von 46

Nr.

41
www.todaysoftmag.ro
www.todaysoftmag.com
No.
36Noiembrie
June 2015 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

Sistem de poziionare pentru spaii


nchise bazat pe semnal Wi-Fi
ce

Auditul de User Experien

Preview Cluj IT Days 2015


Proiectarea sistemelor robuste
cteva repere
Acceptance Testing Driven Development
utiliznd SpecFlow cu Selenium n C#
ntlnirile OSMTime pentru
mbuntirea OSM Data
V prezentm ironwingjs

Salarile din IT vor crete


Logging on external storages
Imaginaie + implicare +
piese LEGO=ajutor reciproc
How To Web 2015
Common misconception:
How many objects does this create?

Innovation, entrepreneurship and technology


24-25 November 2015, Cluj-Napoca

Cluj Arena, Conference Room & Multifunctional Hall

www.itdays.ro

2 days access - 80 euro + TVA

November 24

November 25
Conference Room

Multifunctional Hall

Trends & Leadership Sessions

Startups & Entrepreneurship

Software Architecture

Conference Room

09:00

Coffee & Registration

09:00

Coffee & Registration

09:00

Coffee & Registration

09:30

Opening Remarks
Stelian Brad (Cluj IT Cluster) & Ovidiu Man (Organizer of IT Days)

09:30

Growth Hacking and Lean Canvas


Christoph Steindl (CEO Catalysts Software)

09:30

10:00

Vector Watch in the Context of Wearable Fashion Trends


Rare Florea (Country Commercial Manager Vector Watch)

10:00

Before jumping in the product


Mircea Vdan (Fortech)

On synchronizing data in
distributed applications
Sergiu Damian (iQuarc)

10:10

10:40

Innovation in Product Development and Future of Work


Christoph Steindl (CEO Catalysts Software)

10:20

Tools and talents for tomorrow


Roxana Rugin (Simplon)

A Reactive World
Robert Cristian (3Pillar Global)

10:40

Coffee & Networking Break

10:40

Decisions in Architecture
Florin Cardasim (Endava)

11:10

Local Product Launches


11:30

Beyond reality. Virtual Reality. The future of gaming and information visualization
Robert Murean (CEO Exosyphen)

12:00

The Power of Play


Simona Bonghez (CEO Colors in projects)

12:30

Launch of Programez.ro
Ovidiu Man (TSM) and Vlad Derdeicea (Subsign)

13:00

Lunch Break

11:30

Driving innovation TechLeague


Diana Trnovan (Accesa)
Florin Pascaru (Accesa)
Coffee & Networking Break

Startups & Entrepreneurship

12:20

Start-Ups accross cultures


erban r (CTO Gemini Solutions)

12:30

ASP.Net 5 (vNext)
Performance Characteristics
Ctlin Pop (iQuarc)

13:00

Lunch Break

Local startup pitches

Java

Management

Lunch Break

15:00

Be Fast, be Off-JVM, be Chronicle-Queue


Vasile Mihali (AROBS)

15:30

jOOQ - an object oriented abstraction


interacting with relational databases
Silviu Dumitrescu (Telenav)

16:00

Pizza Break

Big Data

Research

Hands on Lab

14:00

Using artificial intelligence for


automatizing software development
Rzvan Florian (Romanian Institute
of Science and Technology)

14:00

Low Latency in Java 8


Peter Lawrey (Higher Frequency Trading)

15:00

Reliable Chip Designs from


Low-Powered Unreliable Components
Sorin Coofan (Delft University)

Creating things with a 3D printer


Mihai Oltean (Babe-Bolyai University)

15:30

Programming collaborative robots


with ROS
Lszl Tfalvi (Accenture)
Pter Mag (Accenture)

14:30

Make it Warmer
Dan Suciu (3Pillar Global)

15:00

Building a Strong Employer Brand


Through Organizational Culture
Cristian Philipp
(Essential Training and Consulting)

14:30

15:30

Usable Software Design


Alexandru Bolboac (Mozaic Works)

15:30

16:00

Pizza break

Driver assistance systems


and outlook into automated driving
Ctlin Golban (Bosch)

16:00

Pizza break

16:00

Pizza break

16:20

16:20

Driver assistance systems


and outlook into automated driving
Ctlin Golban (Bosch)

How to build your own Smart House


Clin Bunea (Gemini Solutions)

16:50

Crouching Admin, Hidden Hacker


Teodor Olteanu (Betfair)

16:50

Large-scale Data Analytics for


Smart City and Industrial Applications
Dan Puiu (Siemens)

16:20

Evolving Ideas with BigData tools


Tudor Mrghidanu (Yardi)

Automated Testing

16:50

Data modeling in Apache Hadoop


Tudor Lpuan (Telenav)

16:20

17:00

Machine Learning in the age of Big Data


Daniel Srbe (SDL)

Selenium WebDriver patterns for maintanability


Vasile Pop (Intel)

16:50

17:50

Networking & wine

Performance testing how the needs for efficiency


dictate the Automation Process
Codrua Bunea (Yonder)

Partners

How to manage one million messages


per second using Azure
Radu Vunvulea (iQuest)
Implementing Ports-And-Adapters
[in the .NET ecosystem]
Andrei Larionescu (Yonder)

13:00

Lets GamEventify!
Adina Grigoroiu (Colors in projects)

11:30

12:00

12:40

14:00

.NET

Microsoft Cloud Services and


Tools tailor-made for startups
Radu tefan (Microsoft)

Multifunctional Hall

Work with Hundreds of


Hot Terabytes in JVMs
Peter Lawrey (Higher Frequency Trading)

Coffee & Networking Break

12:00

Conference Room
14:00

11:10

17:20

Struggling with Test Automation


-Issues and solutions
Gabriel Fericean (Siemens)

17:50

Networking & wine

HR & Management
17:20

Is it easy to integrate
young people in IT companies?
Dan Ionescu (Danis)

17:50

Networking & Wine

HR & Management
17:20

Healthy Organizations
Andreea Prvu (Endava)

17:50

Networking & Wine

Supporters

Oraganizer

6
Why to participate at
Cluj IT Days 2015?
Ovidiu Man

10
How to Web
2015
Irina Scarlat

12
Salarile din IT
vor crete
Adrian Lupau

15
Sistem de poziionare pentru spaii
nchise bazat pe semnal Wi-Fi
Bogdan Oniga i Iacob Naca

18
Proiectarea sistemelor robuste
cteva repere
Romulus Bucur

21
Acceptance Testing Driven
Development utiliznd SpecFlow cu
Selenium n C#
Sebastian Silaghi

24
Auditul de User Experience
Mircea Gui

27
ntlnirile OSMTime pentru
mbuntirea OSM Data
Drago Andronic

29
Common misconception:
How many objects does this create?
Peter Lawrey

31
Logging pe memorii externe
lecii nvate
Radu Vunvulea

34
V prezentm
ironwingjs
Andrei Cacio

36
Imaginaie + implicare + piese LEGO= ajutor
reciproc corect
Ana-Maria Trifan

38
Time Management:
Preia
controlul!
Magnoliu Stan

41
SoCraTes 2015 Unconference
Mihnea Lazr

editorial

Ovidiu Man

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

cest numr al revistei va fi distribuit prima oar n format tiprit la Cluj IT


Days, un eveniment care a ajuns la cea de-a treia ediie anul acesta. Sper c acei
care citesc aceste rnduri la Cluj Arena n zilele 24-25 noiembrie, consider c
participarea lor este un bun prilej de a se conecta la viaa IT clujean i de a-i extinde
orizontul profesional. Prezena unui numr mare de participani din regiuni diverse ale
rii ne demonstreaz c interesul pentru acest eveniment a crescut dincolo de zona
Clujului, i mai ales preocuparea pentru autoperfecionare. I-am invitat pe cei mai buni
specialiti locali, pe aceia care se remarc n alte orae ale rii precum Iai, Timioara,
Braov, Bucureti , dar i pe specialiti din Rotterdam sau Londra, pentru c Cluj IT
Days vrea s reflecte faptul c n spaiul naional dar i n cel european, industria IT
clujean se impune drept un punct de referin marcant. n organizarea i desfurarea
acestui eveniment, Today Software Magazine a implicat mai multe echipe, dintre care a
vrea s remarc echipa Subsign care a devenit designerul casei i a realizat toate materialele vizuale pentru conferina din acest an precum i pentru noul proiect programez.ro.
De asemenea, doresc s mulumesc echipei TSM: Anei-Maria, responsabil cu tehnoredactarea i marketingul i lui Alex pentru c a implementat ntr-un timp scurt noul
website itdays.ro ct i programez.ro.
Lansarea din aceast lun va avea loc dup IT Days, joi, 26 noiembrie de la ora
18:00. Mai multe detalii putei vedea pe site sau social media. ncepem articolele din
acest numr- cum altfel ?- cu un articol despre prezentrile de la Cluj IT Days 2015 i
continum cu How To Web 2015 care va avea loc la Bucureti chiar dup cel din Cluj.
Salariile din IT este un subiect interesant cu opinii diverse aa cum reiese din articolul
semnat de Adrian Lupu, un specialist n vnzri i antreprenor. Sistem de poziionare
pentru spaii nchise bazat pe semnal Wi-Fi promite o soluie pentru locurile n care
GPS-ul nu este disponibil, dar avem semnal WiFi. Proiectarea sistemelor robuste cteva
repere conine cteva sfaturi legate de dezvoltarea proiectelor n funcie de complexitatea
acestora. Din aria testrii, articolul Acceptance Testing Driven Development utiliznd
SpecFlow cu Selenium n C# ofer multe soluii utile celor din sectorul de testing.
Auditul de User Experience parcurge etapele de analiz pentru un User Experience
adecvat, probabil una din etapele cele mai importante n procesul de dezvoltare a unui
produs nou sau de re-design al unuia existent. n ncheiere, v invit s citii articolul
lui Peter Lawrey: Common misconception: How many objects does this create? Acesta
este publicat n englez deoarece prin traducerea unor articole tehnice se poate pierde
o parte din mesaj.
V dorim lectur plcut !!!

Ovidiu Man

Founder Today Software Magazine

nr. 41/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

Lista autorilor
Ovidiu Man
ovidiu.matan@todaysoftmag.com
Editor-in-chief
Today Software Magazine

Sebastian Silaghi
sebastian.silaghi
@veinteractive.com
Senior Software Developer in Test
@VE Interactive

Irina Scarlat

Drago Andronic
dragos.andronic@telenav.com

PR Manager
@ How to Web &
TechHub Bucharest

Product Manager
@ Telenav

Adrian Lupau
adrian.lupau@fortech.ro

Andrei Cacio
andrei.cacio@yahoo.com

Business Development
Manager @Fortech

Web Developer
@ Evozon

irina.scarlat@howtoweb.co

Bogdan Oniga
bognda.oniga@betfair.com
Development Security Testing &
Assurance Analyst
@Betfair

Iacob Nasca
iacob.nasca@betfair.com
Principal Developer
@ Betfair

Radu Vunvulea
radu.vunvulea@
iquestgroup.com
Senior Software Engineer
@iQuest

Ana-Maria Trifan
anamaria.trifan@happy-employees.eu
PR & Custumer Care Specialist
@ Azimut Happy Employees

Produs de

Today Software Solutions SRL


str. Plopilor, nr. 75/77
Cluj-Napoca, Cluj, Romania
contact@todaysoftmag.com

www.todaysoftmag.ro
www.facebook.com/todaysoftmag
twitter.com/todaysoftmag
ISSN 2284 6352

Romulus Bucur
romulus.bucur@siemens.com

Magnoliu Stan
magnoliu@smart-training.ro

Senior .NET developer


@Siemens

Director
@ Smart HR

Peter Lawrey
peter.lawrey@
highfrequencytrading.com
CEO @ Higher Frequency
Trading Ltd

Mihnea Lazr
mihnea.lazar@
msg-systems.com
Software Developer
@ msg systems

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. 41/noiembrie, 2015

eveniment

Cluj IT Days 2015 din perspectiva


prezentrilor

ai sunt cteva zile pn la Cluj IT Days, un eveniment care este la a treia


ediie i a crescut an de an. Ne apropiem de 320 de participani, iar dac v
grbii mai sunt posibile nscrierile. Pentru o bun perspectiv, am rugat
o parte dintre speakeri s descrie prezentarea, publicul int i ce o s poat nva
participanii la eveniment.

A reactive world - Robert Cristian

Ovidiu Man

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

nr. 41/2015, www.todaysoftmag.ro

cu experien n achiziia i prelucrarea


n aceast prezentare vom dezbate datelor.
Nivelul de dificultate: mediu.
ideile cuprinse n reactive manifesto,
axndu-ne pe analiza celor mai importante caracteristici nonfuncionale care Beyond reality. Virtual Reality. The future
trebuie asociate unei aplicaii moderne.
of gaming and information visualization Participanii vor nelege princi- Robert Murean
pii de design care se impun a fi luate n
Tema prezentrii o constiuie jocurile
considerare n dezvoltarea unei aplicaii n Realitatea Virtual, mai precis crearea
performante.
i livrarea unor jocuri care ofer mai mult
Prezentarea se adreseaz dezvoltatori- dect informaii vizuale, adic sentimente
lor de aplicaii i arhitecilor.
i amintiri fantastice similare cu realitatea.
Nivelul de dificultate: mediu.
Audiena este general. Prezentarea va fi
fcut ntr-o form uor de neles de ctre
toat lumea.
Evolving ideas with BigData tools - Tudor
Nivelul de dificultate: uor.
Mrghidanu
Prezentm evoluia unui
proiect software i trecerea de la tehno- How to build your own Smart House - Clin
logiile standard ETL la folosirea unui set Bunea
de instrumente BigData pentru imporCum s-i construieti singur propria
tul i prelucrarea datelor ntr-un mediu casa inteligent folosind componente elecdistribuit. Ne vom concentra asupra tronice relativ simple i ieftine. n plus vor
conceptelor i modelelor de design utili- fi prezentate unele idei de automatizri
zate ntr-un caz concret, lund n calcul interesante i motivante.
performana i gradul de mentenan.
Paticipanii vor nva c pentru a
Participanii vor putea reine concepte implementa diverse automatizri nu este
precum BigData, design patterns, cteva nevoie de cunotine avansate de elecreguli de luat n calcul cnd se dezvolt o tronic, c astfel de automatizri sunt la
aplicaie.
ndemna oricui. Prezentarea i vizeaz pe
Prezentarea se adreseaz programa- cei care dein cunotine medii de progratorilor, analitilor de date i persoanelor mare i cunotine minime de electronic

programare

TODAY SOFTWARE MAGAZINE

i care viseaz s-i implementeze diverse automatizri n propria On synchronizing data in distributed applications - Sergiu Damian
locuin.
M ntreb adesea de ce evoluia alert a tehnologiilor nu
Nivelul de dificultate: mediu.
aduce neaprat cu ea i creterea productivitii industriei? Poate
pentru c, dei avem tehnologii mai avansate, complexitatea i
viteza cu care se desfoar viaa noastr sunt din ce n ce mai
Selenium WebDriver - patterns for maintanability - Vasile Pop
Una dintre problemele majore aprute n crearea unui fra- mari? n aceast prezentare vom insista asupra problemelor legate
mework in-house de testare a aplicaiilor web este mentenana. de sincronizarea datelor n aplicaii distribuite, adic majoritatea
Paii iniiali sunt n general simpli, numai c n timp cantitatea aplicaiilor de azi, mai ales cele mobile. De asemenea, vom anade cod crete fcnd tot mai complicat adaptarea la schim- liza o potenial soluie multiplatform oferit de Azure Mobile
brile aplicaiilor testate. Abordri de design ca PageObjects, Services.
Vom vedea mpreun de ce problema sincronizrii datelor nu
LoadableComponent, folosirea de SmartWaits n cod, simplific
pstrarea testelor sincronizate cu aplicaia, reprezentnd pai care este una trivial, motiv pentru care probabil nu are nc o soluie
ar trebui luai n considerare n fazele incipiente ale proiectelor. unanim acceptat. Vom lua n considerare o potenial soluie sub
Participanii vor putea s foloseasc ideile din prezentare n forma Azure Mobile Services. Prezentarea se adreseaz dezvolproiecte noi sau s rescrie pri din proiecte existente. Trecerea tatorilor, arhitecilor, managerilor de produse i oricui interesat
la variante mai eficiente de design se poate realiza gradual. de provocrile ntmpinate n dezvoltarea aplicaiilor mobile sau
Prezentarea se adreseaz membrilor echipelor de QA sau progra- distribuite.
Nivelul de dificultate: mediu avansat.
matorilor interesai de scrierea de teste automate pentru aplicaii
web.
Nivelul de dificultate: mediu.
Lets GamEventify! - Adina Grigoroiu
S presupunem c dorii s organizai un eveniment destinat
mediului de afaceri. Trim ntr-o perioad n care conferinele,
Crouching Admin, Hidden Hacker - Teodor Olteanu
Administratorii de reea duc un adevrat rzboi cu persoane congresele i evenimentele sunt la ndemn, att virtual, ct i
ru intenionate care vor s capete acces la datele confideniale cu participare fizic. Ce poi face pentru a organiza un eveniment
ale companiei. Dar de cele mai multe ori totul se ntmpl fr inedit? Cum convingi participanii c timpul lor merit investit n
ca noi s avem vizibilitate asupra acestor lucruri. Prezentarea evenimentul tu? Aceast prezentare ofer exemple despre cum
se axeaz pe importana implementrii ctorva reguli de baz pot fi utilizate jocurile pentru a spori implicarea participanilor
pentru securizarea reelelor i sistemelor IT. Vei afla cum s va i disponibilitatea lor de a experimenta i a nva lucruri noi.
aprai mpotriva celor mai uzuale tipuri de atacuri i vei asista Desigur, va trebui s fii deschii, creativi i disponibili s lucrai
la o demonstraie live. Prezentarea se adreseaz persoanelor inte- din greu. Evenimentele de afaceri cu un concept inovator, distractiv i captivant au un pre. Suntei gata s-l pltii?
resate de securitatea n IT.
n cadrul aceastei prezentri participanii vor descoperi cum
Nivelul de dificultate: mediu.
pot fi folosite jocurile pentru a crete implicarea participanilor la
evenimentele lor i cum pot crea o experien memorabil pentru
Make It Warmer ! - Dan Suciu
Prezentarea este centrat pe ideea mbriat de foarte mult acetia. Prezentarea se adreseaz tuturor celor implicai n orgalume cum c abordarea agil a proiectelor software reprezint nizarea de evenimente, fie conferine de anvergur orientate spre
opusul metodologiilor clasice de management. Un exponent comunitile din care fac parte, fie evenimente interne ale commarcant n acest sens este Waterfall. Putem considera cele dou paniilor n care lucreaz.
Nivelul de dificultate: uor.
abordri ca fiind extreme? i dac da, exist o cale de mijloc n
abordarea proiectelor sofT? Acestea sunt doar cteva ntrebri la
care voi rspunde n cadrul prezentrii, adresndu-m tuturor
Healthy Organizations Andreea Prvu
celor care au lucrat n cel puin o echip urmnd o metodologie
ntr-un context marcat de evoluie constant i dinamicitate
agil.
a pieei, o comparaie ntre conceptul de organizaie deteapt,
Nivelul de dificultate: uor mediu.
centrat pe construirea unei strategii de marketing, financiare

www.todaysoftmag.ro | nr. 41/noiembrie 2015

eveniment

Cluj IT Days 2015 din perspectiva prezentrilor

sau de tehnologizare, i conceptul de organizaie sntoas, l


plaseaz n avantaj competitiv pe pia pe acesta din urm prin
crearea unui mediu care reduce riscul de a crea confuzie, crete
moralul i productivitatea echipelor, precum i rata de retenie.
Prezentarea va avea dou direcii de analiz:
1. Cum se construiete o echip de leadership coeziv ,
2. Cum se creeaz claritate n organizaie .
Prezentarea este adresat tuturor persoanelor care fac parte
dintr-o echip, fie ea de management sau doar funcional.
Nivelul de dificultate: sczut.

Start-Ups accross cultures- erban r


Prezentarea mea este o perspectiv personal asupra asemnrilor i deosebirilor ntre start-up-uri din diverse culturi din
Occident, SUA i Romnia, pe care le-am remarcat n cursul
experienei mele profesionale.
Cei care vor participa vor avea o mai bun nelegere asupra ceea ce nseamn mecanismele unui start-up. De asemenea
vor primi cteva sfaturi legate de cum s i dezvolte propriul
start-up.
Prezentarea se adreseaz persoanelor care sunt familiare cu
cultura start-up, ct i celor care vor s iniieze un start-up.
Nivelul de dificultate: uor.

Machine Learning in the age of Big Data - Daniel Srbe


O privire de ansambu pe domeniul de Machine Learning
si Big Data, axat n principal pe motivele pentru care Machine
Learning a devenit mai important n epoca BigData, inclusiv un
demo de algoritm de tip online machine learning pe care momentan l dezvoltm la SDL Research.
Participanii vor putea nva ce poi face cu Machine
Learning n contextul de Big and Small Data. Publicul cruia i se
adreseaz: oricine interesat de domeniile BigData/DataSciene/
MachineLearning.
Nivelul de dificultate: avansat.

Using artificial intelligence for automatizing software development


- Rzvan Florian
Se estimeaz c peste cinci ani, deficitul de programatori va
ajunge la nivel global la peste 1 milion de persoane. Sute de miliarde de euro se pierd anual pentru c nu exist cine s scrie tot
codul de care este nevoie. Criza resurselor umane pentru dezvoltarea software este cea mai mare preocupare a persoanelor

nr. 41/noiembrie 2015 | www.todaysoftmag.ro

din conducerea firmelor de IT. Pe de alt parte, tehnologiile de


nvare profund se dezvolt cu repeziciune. Poate inteligena
artificial s creasc eficiena programatorilor disponibili? Ct
de mult se poate automatiza crearea de software? Cum poate
Clujul s participe la urmtoarea revoluie din programare i s
beneficieze de ea? Participanii vor afla despre una dintre cele
mai importante transformri care se prefigureaz n industria de
software.
Publicul cruia i se adreseaz: Prezentarea se adreseaz tuturor programatorilor i persoanelor care lucreaz n industria IT
sau sunt interesate de ea.
Nivelul de dificultate: mediu.

Usable Software Design- Alexandru Bolboac


Usable Software Design pornete de la observaia c programatorul este utilizatorul designului software. Ca urmare, putem
folosi tehnici din UX / Usability pentru a mbunti modul n
care facem software design.
Participanii vor nva o abordare nou a software design,
inspirat din povestea de succes a usability i UX n designul
industrial i grafic. De asemenea, vom discuta despre cum putem
aplica anumite tehnici din UX la software design.
Aceast prezentare se adreseaz n special programatorilor
i liderilor tehnici din organizaii dar i managerilor care vor s
creasc productivitatea sau s scad timpul de integrare al unui
nou programator.
Nivelul de dificultate: mediu.

The Power of Play- Simona Bonghez


Tuturor ne place s ne jucm. Studiile au artat c pe lng
efectul relaxant, jocurile corect utilizate faciliteaz procesul
de nvare i cresc angajamentul participanilor, fie c sunt
angajai, studeni sau clieni. Este ns Gamification un concept
care rezolv toate problemele noastre legate de implicare i angajament? De ce este el astzi un subiect controversat? Sunt doar
cteva dintre ntrebrile la care vom cuta un rspuns n aceast
prezentare.
n prezentare vor fi clarificate conceptele de Playful Design,
Gamification, Experiential Learning i Serious Games. Vor
fi exemplificate modaliti de punere a lor n practic, iar
participanii vor nelege beneficiile acestora i modalitatea n
care pot fi aplicate n companiile lor, pentru situaii concrete cu
care se confrunt.
Prezentarea se adreseaz tuturor celor care sunt dispui s

TODAY SOFTWARE MAGAZINE


ncerce abordri noi, care caut soluii mai puin convenionale.
Nivelul este unul general, nu implic cunotine tehnice.
Nivelul de dificultate: uor mediu.

Programming collaborative robots with ROS - Lszl Tfalvi, Pter


Mag
Facem cunotin cu Baxter un robot de noua generaie.
Acesta ne va arta ce poate s fac i cum se programeaz.
Participanii vor putea nva principii de baz n robotic i
ROS. Vor intra n contact cu provocrile principale din domeniu.
Prezentarea este pentru programatori, entuziati de robotic,
oameni curioi.
Nivelul de dificultate: mediu.

Struggling with Test Automation - Issues and solutions - Gabriel


Fericean
n aceast prezentare am adunat cteva din provocrile
ntlnite cu ocazia implementrii testelor automate pe proiectele pe care am lucrat. Prezentarea o s ating un spectru larg de
tehnologii i tool-uri cum ar fi Selenium WebDriver, UFT sau
CodedUI.
Aceast prezentare le va oferi participanillor ocazia de a-i
mbogi cunotinele despre testarea automat. Prezentarea se
adreseaz tuturor persoanelor interesate de testarea automat,
dar n special celor care lucreaz n acest domeniu.
Nivelul de dificultate: mediu avansat.

Struggling with Test Automation - Issues and solutions - Gabriel


Fericean
n aceast prezentare am adunat cteva din provocrile
ntlnite cu ocazia implementrii testelor automate pe proiectele pe care am lucrat. Prezentarea o s ating un spectru larg
de tehnologii i tool-uri cum ar fi Selenium WebDriver, UFT sau
CodedUI.
Aceast prezentare le va oferi participanillor ocazia de a-i
mbogi cunotinele despre testarea automat. Prezentarea se
adreseaz tuturor persoanelor interesate de testarea automat,
dar n special celor care lucreaz n acest domeniu.
Nivelul de dificultate: mediu avansat.

It is easy to integrate young people in IT companies? - Dan Ionescu

Prezentarea E uor s integrezi noii tineri n firme IT?


i propune s investigheze cteva realiti de pe o pia a forei
de munc extrem de competitiv i dur, n care nevoia de noi
angajai a devenit cronic.
Muli dintre aceti nou venii sunt la primul loc de munc
i sunt foarte tineri. Exist particulariti n abordarea lor? Este
o generaie diferit sau este sindromul clasic tinerii de azi?
Sunt analizate opinii mai generale sau mai concrete, ale celor
care se lovesc de aceast situaie.
Experienele altora, mai bune sau mai rele, sugestii de Aa
DA sau Aa Nu, toate acestea pot s fie food for thinking pentru
participani.
Prezentarea se adreseaz mai ales celor care vin n contact
direct cu noii angajai: manageri din diverse ealoane, cei din
HR. Orice IT-ist poate s valorifice avantajele modului optim de
abordare a unei situaii de acest tip.
Nivelul de dificultate: uor mediu.

www.todaysoftmag.ro | nr. 41/noiembrie 2015

eveniment

How to Web Conference 2015:


produse inovatoare i oportuniti de
networking cu reprezentani relevani
din industrie

ucureti, 13 noiembrie 2015 Axosuits, exoscheletul medical pentru persoanele


cu dizabiliti;Codie, robotul interactiv care ajut copiii s descopere lumea
tehnologiei; Scooterson, primul scuter electric inteligent; Bitdefender Box,

Irina Scarlat

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

dispozitivul care protejeaz toate aparatele


conectate la Internet sau Vector Watch,
ceasul inteligent cu o autonomie de 30
de zile. Acestea sunt cteva dintre produsele tech inovatoare care vor fi expuse
anul acesta la How to Web Conference
2015, eveniment care va aduce mpreun
peste 1000 de profesioniti n domeniul
tehnologiei din regiune. Biletele de tip
Early Bird sunt disponibile pn mari, 17
noiembrie, pe site-ul conferinei.
How to Web Conference 2015 este
cel mai important eveniment dedicat
inovaiei n tehnologie i antreprenoriatului din Europa de Sud-Est fiind organizat
n colaborare cu Telekom Romania, IXIA,
Bitdefender i CyberGhost. Cei peste
1000 de profesioniti n domeniul tehnologiei care vor participa la eveniment vor
cunoate actori importani din industrie,
vor vedea i testa produse inovatoare din
domeniul Internet of Things i vor descoperi unele dintre cele mai promitoare
startup-uri din regiune. Toate acestea
se adaug la prezentrile susinute de
profesioniti cunoscui, care vor avea loc
pe cele dou scene ale conferinei.

10

nr. 41/2015, www.todaysoftmag.ro

Zona de expo pentru produse inovatoare i


demonstraii pe scen
Participanii How to Web Conference
vor avea ocazia s vad i s testeze produse inovatoare din domeniul Internet of
Things vizitnd zona de gadget expo. n
plus, pe scena principal a conferinei va
avea loc o demonstraie a modului n care
funcioneaz o parte dintre aceste produse. Printre acestea se numr:
Axosuits, exoschelet medical pentru persoanele cu dizabiliti, uor
de folosit, care ajut persoanele cu
deficiene locomotorii s i ctige
mobilitatea.
Scooterson, primul scuter inteligent
din lume care utilizeaz o combinaie
unic de cloud, tehnologie smartphone
i analiz de date pentru a mbunti
experiena oferului, maximiznd n
acelai timp sigurana acestuia i eficientiznd consumul energetic.
Bitdefender Box, dispozitiv care
protejeaz de malware toate aparatele
conectate la Internet, de la televizoare
smart pn la frigidere, termostate sau
console de gaming.
Vector Watch, ceasul inteligent cu o
autonomie de 30 de zile, singurul produs din gama sa compatibil cu sistemele
de operare iOS, Android i Windows

TODAY SOFTWARE MAGAZINE


Phone.
Codie, robotul de jucrie interactiv care ajut copiii s descopere lumea
tehnologiei i i nva gndirea logic
i tehnicile de rezolvare a problemelor, cunotine utile mai trziu pentru
programare.
Hirrus mini-UAV, drona de supraveghere care furnizeaz date relevante
n mod rapid, ajutnd oamenii s i
creasc productivitatea, s diminueze
costurile sau s i mbunteasc semnificativ calitatea vieii.
Gravity Lifter, dispozitiv multipremiat la nivel internaional care folosete
cmpul electromagnetic pentru a
produce un efect de levitaie oricrui
produs / obiect cu o greutate maxim
de pn la 3kg.
DreamOC, o piramid de sticl
care emite animaii holografice folosind un fascicul de lumin i un ecran
de proiecie 3D.
Lighty, primul proiector mobil
inteligent care are capaciti robotice:
micare panoramic, conectivitate wireless i control al vocii.
TinTag, dispozitiv rencrcabil
de tracking care ajut utilizatorii s i
gseasc obiectele sau animalele de
companie mai uor.
Sy mmer3D, platform Delta
multifuncional pentru imprimare 3D,
PCB miling i inscripionare cu laser.

Oportuniti de networking cu actori


importani din industrie

How to Web Meet, aplicaia mobil a


conferinei dezvoltat de echipa mReady,
va ajuta participanii s intre n legtur
unii cu alii, s discute n mod direct i s
stabileasc ntlniri. n plus, How to Web
Meet va oferi utilizatorilor recomandri
n funcie de interese i va facilita astfel interaciunile sociale, mbuntind
astfel experiena de networking a acestora. Aplicaia este disponibil acum
n AppStore i pe Google Play, iar
participanii la conferin vor primi individual datele de acces.
n plus, pe toat durata evenimentului dou networking lounges vor gzdui
mese rotunde, sesiuni de Q&A i Ask
the expert n cadrul crora participanii
vor avea ocazia s discute cu invitaii
conferinei.

Studii de caz, discursuri aplicate i bune


practici
Toate acestea se adaug la coninutul
de foarte bun calitate: pe cele dou scene
ale conferinei vor urca antreprenori care
au dezvoltat produse de succes la nivel
global i profesioniti cu experien n
marketing, product sau development.
Acetia vor aborda teme precum crearea
i lansarea de produse cu potenial, organizarea echipelor de produs i metrici,
growth hacking, dezvoltarea unei campanii de marketing digital, cum s creti prin
coninut sau cum s dezvoli o comunitate
n jurul produsului tu. Agenda complet
a evenimentului este disponibil online pe
site-ul conferinei.

Pentru mai multe informaii despre How


to Web:
Irina Nicoleta Scarlat
CMO & Conference Manager
Email: irina.scarlat@howtoweb.co
Telefon: +40 720 034 031
www.howtoweb.co
Twitter: @how_to_web
Facebook: http://www.facebook.com/
howtoweb

How to Web by Night


Oportunitile de socializare continu i dup ncheierea programului
oficial al conferinei, cnd participanii
vor fi invitai s interacioneze ntr-un
cadru informal la evenimentele sociale
organizate special pentru ei. Astfel joi,
26 noiembrie, discuiile vor continua la
networking cocktail, n timp ce vineri,
27 noiembrie, membrii comunitii
profesionitilor n tehnologie sunt invitai
la How to Web Rocks, petrecerea care
ncheie How to Web Conference 2015.
Evenimentul How to Web Conference
2015
organizat n colaborare cu
Telekom Romania, Bitdefender, IXIA
i CyberGhost, cu sprijinul partenerilor Microsoft, Avangate, hub:raum,
Ambasada Canadei n Romnia, Mozilla,
EIT Digital i Okapi Studio, va avea loc
pe 26 i 27 noiembrie la Grand Cinema
& More (Bneasa Shopping City). Biletele
de tip Early Bird sunt disponibile pe siteul conferinei pn mari, 17 noiembrie.

Despre How To Web


How to Web este cel mai nsemnat
eveniment dedicat inovaiei n tehnologie i antreprenoriatului din Europa de
Sud-Est. Conferina se adreseaz inovatorilor n tehnologie, antreprenorilor,
dezvoltatorilor de produse tech, ageniilor
i companiilor de outsourcing interesate
de inovaie, investitorilor i tuturor celor
interesai de tehnologie i inovaie. Mai
multe detalii despre eveniment i lista vorbitorilor confirmai pentru ediia de anul
acesta sunt disponibile online pe site-ul
conferinei.

www.todaysoftmag.ro | nr. 41/noiembrie 2015

11

business

Salariile din IT vor crete

entru c n ultima perioad am auzit frecvent c zilele outsourcing-ului sunt


numrate i c nu mai este loc de creterea salariilor, vreau ca prin acest articol
s v conving c salariile n IT vor crete. Nu e nici o glum! Ecuaia e simpl:
ori inovezi ori dispari de pe pia.
Adrian Lupau
adrian.lupau@fortech.ro
Business Development
Manager
@Fortech

12

nr. 41/2015, www.todaysoftmag.ro

S nu va imaginai ns c dispariia
unei companii se produce peste noapte, s
nu uitm c Yahoo este nc o companie
mare.
Aducei-v aminte exemplul Nokia
care a mizat pe scderea costului de producie n defavoarea inovaiei. Managerii
Nokia urmau mantra japonez din anii
80: dac scdem costul de producie suficient de mult, atunci vom putea accesa o
pia mai larg de clieni i astfel vom face
profituri mai mari. ns piaa le-a demonstrat c oamenii i doresc mai degrab
produse inovative dect produse ieftine.
Cumprarea pe baza de nevoi primare
mai e valabil pentru maxim cinci procente din ceea ce se cumpr, restul sunt
nevoi superioare bazate pe consum, statut,
dorine i aspiraii. Sugestiv n acest sens
exemplul iPhone.

Ani de zile, n outsourcing s-a mers pe


business de volum. Deja exist companii
ce i-au deschis birouri n Cluj Napoca,
eliminnd asfel intermediarii din piaa
forei de munc i anume firmele de outsourcing. Ca firmele de outsourcing s
rmn competitive la Cluj e nevoie s se
reinventeze i s vin cu o abordare nou
a pieei. Practic e nevoie s foloseasc
expertiza acumulat i s vnd produse
n loc de oameni.
Acest lucru e puin mai greu dect
pare, pentru c, dei pare evident, el presupune o schimbare la nivel de mentalitate
nu doar n rndul companiilor ci i n rndul oamenilor ce lucreaz n IT. Practic
se va trece de la vnzarea timpului unei
persoane la vnzarea rezultatului muncii
unei persoane. Capacitile i abilitile
programatorului sunt ieftine sau din ce
n ce mai ieftine. n urm cu civa ani se
gseau puini programatori cu experien

TODAY SOFTWARE MAGAZINE


pe mobile. Implicit se plteau salarii bune. Deja piaa a reacionat i tot mai muli intr n acest segment ceea ce nseamn
un singur lucru: abilitatea unui programator de a cere un salariu
premium pe segmentul mobile se diminueaz pe zi ce trece.
Poi cumpra timpul unei persoane, chiar prezena ei fizic
ntr-un anume loc pentru o perioada de timp i un numr limitat
de micri motrice. Dar niciodat nu vei putea cumpra entuziasmul, loialitatea sau devotamentul. Acestea trebuie ctigate,
spunea Clarence Francis, manager al General Foods. Oamenii
aleg s urmeze anumite companii n principal datorit modului
n care respectivele companii reuesc s i fac s se simt importani. n cele din urm ne petrecem timpul acolo unde simim c
putem aduce valoare i putem schimba lumea n mai bine ns n
felul nostru. Acesta va fi modul n care companiile vor recruta pe
viitor candidai de valoare.
Explozia IT-ului din ultimii ani a fcut ca oricine care are
minime abiliti tehnice s beneficieze de un loc de munc n
IT. Totui, cei care i vnd timpul n schimbul unui salariu, vor
ajunge destul de repede s neleag faptul c timpul devine din
ce n ce mai ieftin, ns competena e un bun din ce n ce mai
scump. Pn la urm un client i indirect un angajator, nu i
dorete un angajat doar de dragul de a-l pune la un birou unde s
munceasc ci i dorete n primul rnd rezultatul muncii acelui
om i expertiza lui.
Gndii-v cnd mergem la un specialist, fie el doctor, avocat
sau arhitect i pltim pentru serviciile acestuia. Nu cred c i
pune cineva problema c un medic ce ne furnizeaz un diagnostic n 15 minute s ne taxeze doar 15 minute din timpul su. La fel
vor evolua i lucrurile n software. Cnd expertiza este elementul
de baz pentru care cineva este pltit, timpul investit deja devine
un subiect de mrime secundar, aceasta dac mai este cumva
luat n calcul. n acest fel vor crete n cele din urm salariile din
Cluj pentru cei care vor nelege aceste aspecte ct mai devreme.

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

www.todaysoftmag.ro | nr. 41/noiembrie 2015

13

comuniti

Comuniti IT

una aceasta ne vedem la Cluj IT Days ! Evenimentul de lansare a revistei i urmeaz imediat, n 26 noiembrie. Totodat, la
Bucureti, n 26-27 noiembrie are loc How To Web. Acestea sunt ultimele dou mari evenimente de IT ale acestui an.

Transylvania Java User Group


Comunitate destinat 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 centrat pe analiza de business
Website: www.meetup.com/Business-Analysts-Cluj
Data nfiinrii: 10.07.2013 / Nr. Membri: 91 / Nr. Evenimente: 8
Cluj Mobile Developers
Comunitate axat pe tehnologiile 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 centrat pe metodologia Agile de dezvoltare software.
Website: www.agileworks.ro
Data nfiinrii: 04.10.2010 / Nr. Membri: 437 / Nr. Evenimente: 93
Cluj Semantic WEB Meetup
Comunitate destinat 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
Comunitatea 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
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

14

nr. 41/noiembrie 2015 | www.todaysoftmag.ro

Calendar
Noiembrie 24-25 (Cluj)
Cluj IT Days
www.itdays.ro
Noiembrie 26 (Cluj)
Lansarea numrului 41 al Today Software Magazine
www.todaysoftmag.ro
Noiembrie 26-27 (Cluj)
How To Web 2015
2015.howtoweb.co
Decembrie 3 (Cluj)
Steps towards automated driving workshop @ Bosch
facebook.com/events/926482357430895/
itdays.ro
Decembrie 3 (Cluj)
Lets meet and talk about Window functions and reducing
SQL Server Contention
meetup.com/SQL-Cluj/events/226808955/
Decembrie 8 (Bucureti)
Angular JS cu Andrei Rinea
m e e t u p. c o m / B u c h a r e s t - A- D - C - E - S - Me e t u p /
events/226695597/
Decembrie 15 (Cluj)
Lansarea numrului 42 al Today Software Magazine
www.todaysoftmag.ro
Decembrie 17(Timioara)
Tabara de Testare Timisoara - Meetup #39
m e e t u p . c o m / Ta b a r a - d e - Te s t a r e - T i m i s o a r a /
events/224894942/

programare

Sistem de poziionare pentru spaii


nchise bazat pe semnal Wi-Fi

robabil majoritatea dintre voi au vzut binecunoscutul film Enemy of the state, film n
care este prezentat ideea conform creia NSA poate afla unde eti localizat, fr ca tu
s tii, doar cu ajutorul telefonului mobil. Ideea filmului lansat n 1998 prea sciencefiction la acea vreme, dar n zilele noastre inclusiv 2-3 oameni pot face un sistem de acest gen,
singura necunoscut fiind accesul la meta-date.

Bogdan Oniga
bognda.oniga@betfair.com
Development Security Testing &
Assurance Analyst
@Betfair

Iacob Nasca
iacob.nasca@betfair.com
Principal Developer
@ Betfair

Acestea fiind spuse, n cadrul evenimentului Fedex Day organizat n cadrul


companiei Betfair din Cluj, am avut i noi
ocazia de a realiza un sistem de acest gen.
Ceea ce a fcut s fie i mai interesant i mai
provocator a fost faptul c evenimentul Fedex
este organizat ntr-un interval de doar 24 de
ore i cu resurse sau instrumentar care nu
sunt ale unei agenii secrete. Cu toate acestea,
ne-am gndit s ncercm.
Problema: Am putea monitoriza diveri
colegi sau dispozitive n cadrul biroului?
Problema cea mai delicat este faptul c, de
cele mai multe ori, aflarea unei poziii n
funcie de semnal (GSM, GPS amd) se face
cu o marj de eroare destul de mare, ceea ce
ntr-un birou nu prea este acceptabil pentru
c spaiul unui office nu poate fi comparat cu
zona geografic a unui ora.
Soluia: Dup cteva ore de cercetare am
descoperit c ar exista deja unele soluii pe
pia, dar c majoritatea nu ne-ar ajuta foarte
mult, deoarece ori sunt sisteme private, ori
sunt contra cost Apoi, cu siguran nu ar fi
la fel de distractiv.

Ceea ce am ncercat noi, era s avem


locaia tuturor dispozitivelor conectate n
reeaua intern pe baza fapului c erau fr
fir i conectate pe Wi-Fi. Biroul nostru are
mai multe puncte de access (AP) fr fir, iar
toate acestea sunt administrate independent
de ctre un panoul de control central.
Primul pas a fost interogarea Wireless
Lan Controller (WLC) prin intermediul
protocolului SNMP i a cuta lista cu toate

www.todaysoftmag.ro | nr. 41/noiembrie, 2015

15

programare
Sistem de poziionare pentru spaii nchise bazat pe semnal Wi-Fi
punctele de acces (AP) Wi-Fi prin intermediul metodei SNMP
Walk pe cLApIfMacAddress. Pentru fiecare AP din list, am extras
toate dispozitivele conectate la el (bsnMobileStationMacAddr +
Adresa MAC a AP-ului n sistem zecimal) i puterea semnalului
(Received Signal Strength Indicator - RSSI) (bsnMobileStationRssiData + Adresa MAC a dispozitivului n sistem zecimal +
Adresa MAC a AP-ului n sistem zecimal). Se pot interoga foarte
multe informaii despre dispozitive (IP, VLAN, metoda de criptare amd), dar noi am mers strict pe variabilele expuse mai sus
pentru a ne atinge scopul.
Puterea semnalului (RSSI) este dat n dBm, deci pasul al doilea ar fi convertirea acestor date n metri.
Pentru a calcula distana n metri dintre AP i dispozitiv
avem nevoie de doi parametri, i anume: puterea semnalului i
frecvena semnalului. Formula de calcul este forma transformat
a Free Space Path Loss (FSPL):

Pentru distana n metri i frecvena n MHz, constanta K are


valoarea -27.55, puterea de emisie (Ptx) peste 20dBm (100mW)
i frecvena de 2412MHz (2.4GHz) de unde reiese o funcie simpl prin care se face transformarea.

unde, n este numrul de AP care recepioneaz semnal de la


dispozitiv (valoarea RSSI), D = (X,Y) este poziia dispozitivului,
APi = (Xi, Yi) poziiile AP-urilor, i Ri este distana msurat
dintre AP i dispozitiv. Este un sistem non linear, dar liniarizarea
este posibil prin substragerea celei de-a i-a ecuaie din toate
cele n-1 ecuaii:

n urma calculelor ne-am ateptat ca toate cercurile s se


intersecteze ntr-un singur punct, ns n cazul real msurtorile
erau afectate de erori, iar cercurile se intersectau n mai mult de
un punct. Toate aceste puncte de intersecie identific o arie iar
precizia soluiei este afectat.

Dm = (Xm, Ym) este poziia estimat a dispozitivului.

De exemplu, pentru signalLevel egal cu -57dBm, rezultatul va


fi 7.000397427391188 metri.
Avnd toate aceste informaii, am avut nevoie de o hart la
scal a locului i locaiile AP-urilor i s transformm distana la
nivel de pixeli. Pentru harta, am folosit o scal de 16px/1m.

Pasul final a fost de a aduga elemente grafice de HTML5


(HTML5 Smoke and mirrors) pentru a afia toate informaiile
obinute de la echipamentul de reea i pentru a vedea micarea
dispozitivului n timp real pe hart.
Din pcate, pentru c informaiile de la AP-uri se actualizau o dat la 3 secunde, poziia afiat n timp real era de fapt
poziia afiat o dat la 3 secunde. Aceast durat de actualizare
poate fi neglijat, deoarece ntr-un birou de dimensiuni mari n 3
secunde nu poi parcurge o distan foarte mare i vei fi localizat
tot n aria de eroare pn la urmtoarea msurare.
Pentru a indica poziia dispozitivului pe hart n funcie
de informaiile disponibile am utilizat multilateraia. Problema
multilateraiei este scris astfel:

16

nr. 41/noiembrie 2015 | www.todaysoftmag.ro

Soluia final arta astfel:

TODAY SOFTWARE MAGAZINE

www.todaysoftmag.ro | nr. 41/noiembrie 2015

17

programare

Proiectarea sistemelor robuste


cteva repere

trategiile de dezvoltare software au fost i vor fi un permanent subiect de dezbateri i contradicii, care creeaz totodat un mediu propice dezvoltrii ideilor
importante. De-a lungul anilor am avut oportunitatea de a ntlni diferite preri
i atitudini pe marginea acestui subiect.

Romulus Bucur
romulus.bucur@siemens.com
Senior .NET developer
@Siemens

18

nr. 41/2015, www.todaysoftmag.ro

Un aspect important, ntr-un mediu


att de dinamic, l constituie filtrarea
informaiei. Apariia zecilor i sutelor de
tehnologii, pe unitatea de timp, necesit
timp de asimilare, criterii de analiz, capacitate de catalogare. De cele mai multe
ori, formatarea noastr profesional este
rezultatul concluziilor altora. mbrim
preferinele tehnologice ale firmelor n
care lucrm, prelum know-how-ul, de
multe ori, n mod automat. Toate acestea formeaz un sistem de valori, de
cunotine,care ne determin capacitatea
de lucru. ncepem s ne maturizm n
momentul n care putem s ne detam de
Fiecare dintre noi ne formm i ne dez- acest ntreg aparat de procesare tehnolovoltm urmnd un traseu anume, fapt care gic i s privim n mod obiectiv lucrurile.
determin formarea unor viziuni diferite
Maturizarea viziunii arhitecturale se
asupra tehnologiei. Universitile pe care
le absolvim, firmele prin care trecem, pro- dobndete o dat cu participarea la un
iectele cu care intrm n contact, studiul numr tot mai mare de proiecte i prin
individual contribuie la formarea unui interaciunea cu echipe de lucru tot mai
pachet de informaii care ne determina diverse. Varietatea proiectelor ne lrs vedem lucrurile fie ntr-un mod, fie n gesc cadrul de percepie a problematicii.
altul. Pe de alt parte, rata evoluiei tehno- Fiecare proiect contribuie la formarea unei
logice face ca fiecare dintre noi s asimilm noi perspective sau la redefinirea uneia
existente.
ntr-o anume msur noutile aprute.
O luare n considerare att a prerilor convergente, ct i a celor divergente n ceea ce
privete o anumit viziune este o condiie
de baz a evoluiei strategiilor de dezvoltare software.
Arhitectura unui sistem nu se poate
defini n mod independent, ea depinde
de un context dat, fapt care l introduce n
ecuaie, pe acesta din urm, ca un aspect
important i definitoriu n alegerea tiparului arhitectural. Analiza elementelor
componente va aduce mai mult claritate
n alegerea formei arhitecturale a soluiei
pe care o construim.

Complexitate vs. simplitate


Apetitul pentru complexitate sau tendina spre simplitate sunt
trsturi care ne caracterizeaz nc din anii de coal. Este lesne
de observat c nc din primii ani de coal unii elevi prefer la
matematic, rezolvri complexe i alii se mulumesc cu drumul
cel mai scurt spre soluia problemei. Aceste tendine sunt determinante pe ntreg parcursul vieii.
Soluiile complexe aduc noi argumente, deschid un cmp de
vizibilitate mai larg, atunci cnd sunt bine alese. Calitile cu care
nzestrm o soluie software pot aduce beneficii directe n scalabilitate sau n robusteea aplicaiei. n schimb, dac relaiile dintre
aspectele importante nu sunt bine definite atunci complexitatea
poate fi o piedic major. Nu de puine ori am ntlnit aplicaii
care ncercau s combine cele mai importante tehnologii ale zilei,
cu cele mai recomandate arhitecturi, n schimb creau un cadru
(sursa https://en.wikipedia.org/wiki/Public_transport)
complex, fr norme bine definite, un soi de ah fr reguli clare.
Procesul de dezvoltare i mai apoi de ntreinere al unei astfel de
aplicaii poate fi extrem de dificil.
Mediu Agile
Sistemele software actuale trebuie s se supun unor cerine
diferite de cele care se produceau cu 20 de ani n urm. Mediul
Agile de dezvoltare aduce cerine extrem de diverse sistemelor,
astfel c apariia unor piese de puzzle, greu de anticipat la startul
unui proiect, devine o aproape eviden.
Nevoile clienilor sunt tot mai ridicate astfel c sistemele
software trebuie s anticipeze i s integreze o arhitectur cu un
nivel ridicat de flexibilitate i de adaptabilitate la un mediu complex. Acest fapt ridic la fileu nevoia de creare a unor sisteme
tot mai complexe i mai inteligente. Inversia controlului (inversion
of control) a devenit o cerin prioritar n proiectarea sistemelor,
fiecare component trebuind s aib capacitatea de a fi bine definit i independent de celelalte. Acelai rol important l joac i
designul orientat pe interfee (interface oriented design), etc. . Din
start putem afirma c aplicaiile care nu respect noile standarde
de abstractizare sunt un trouble maker.
(sursa http://www.makeyourbestself.com/)
Complexitatea poate fi un atribut al haosului sau unul al
evoluiei. Arhitectura sistemului trebuie s aduc claritate, flexi- Time line-ul
bilitate i s nzestreze sistemul cu for. Simplitatea unui sistem
O constrngere important este dat de termenii de livrare
complex const n faptul c un numr mare de piese pe tabl de ai produsului. Acetia pot exercit o presiune considerabil n
joc, creeaz un peisaj limpede, intuitiv.
alegerea elementelor arhitecturale. O arhitectur complex necesit timpi de dezvoltare proporionali, n schimb o arhitectur
prea simplist poate introduce o gama larg de probleme. Astfel

www.todaysoftmag.ro | nr. 41/noiembrie, 2015

19

programare
Proiectarea sistemelor robuste cteva repere
tendina de a sacrifica modulele de unit testing este aproape eviden, n cele mai multe situaii. Exist un impuls subcontient de
a considera faptul c funcionalitatea modulelor create este asigurat doar prin faptul c exist cod scris, aspect cruia trebuie
s i acordm mult atenie.
Mediul Agile de dezvoltare solicit adugarea de noi funcionaliti ntr-un ritm foarte alert, fapt care nu permite o
bun planificare i analiz a tuturor implicaiilor, cum permite Waterfall. Astfel introducerea de erori este aproape
inerent. Odat cu adugarea unui pachet de funcionaliti,
numrul de erori va fi destul de greu de controlat i timpul
alocat evenimentelor neprevzute va fi consumat n mare
parte de repararea de erori introduse pe durata dezvoltrii.

conduce la rezultate foarte bune n etapele urmtoare.

(sursa http://driftingtuning.com the-10-most-unreliable-cars-on-the-market-today/)

fragilitate. Criteriile de formare a arhitecilor sunt foarte complexe. Chiar dac multe companii promoveaz pe astfel de poziii
dezvoltatori cu o experien de mai puin de opt ani, cred c este
un interval prea scurt de formare. Procesul de definire a profilului unui arhitect dureaz o perioad mai mare i implic i
ali factori dect pregtirea pur teoretic. Este important interaciunea cu un numr mare de proiecte pentru a putea nelege
bine concluziile autorilor importani, ct i a raiunii care st la
baza acestora. Maturitatea n proiectarea sistemelor survine n
momentul n care un programator a asistat la dezvoltarea unui
numr consistent de aplicaii astfel nct s poat nelege neajunsurile, dar s fie capabil s defineasc sisteme robuste. Doar o
experien de acest fel poate garanta soliditatea sistemelor create.

Nevoia de a crea module fr erori solicit ancorarea fiecrei


funcionaliti ntr-un sistem care s asigure integritatea comportamentului. O modalitate excelen de design care s permit
asigurarea unui backup de acest fel este oferit de test driven
design. Aceast modalitate de design asigura crearea unor indicatori de stare al fiecrui aspect.
Designul bazat pe testare (impropriu numit testare) imprim
soluiei un traseu oarecum diferit de dezvoltare fa de cel clasic. O minte format pe pricipiile clasice de programare scap
detalii importante n procesul de design, punnd accentul pe alte
componente. Designul bazat pe testare(TDD) permite detectarea elementelor problem nc din faza de proiectare. Chiar dac
pentru muli acest tip de dezvoltare pare atipic, el ofer garania
robusteii. Astfel efortul asimilrii acestui procedeu de design

20

nr. 41/noiembrie 2015 | www.todaysoftmag.ro

Sistemele a cror arhitectur nu se supun unor normative


clare de relaionare a componentelor i straturilor, ct i modulele
al cror comportament nu poate fi garantat n permanent (prin
mecanisme de verificare) constituie un impediment des ntlnit.
Timpii de dezvoltare sunt depii, n general, datorit acestor
dou categorii de probleme. Aceste neajunsuri pot fi uor depite n cazul n care arhitectura sistemelor software este gndit
i realizat cu maturitate.
Proiectarea sistemelor trebuie s ocupe un loc prioritar n
dezvoltarea software, altfel aplicatiile pot avea un grad ridicat de

Acceptance Testing Driven


Development utiliznd SpecFlow cu
Selenium n C#

n ultimii ani, pentru companiile de software devine din ce n ce mai evident c mplinirea cerinelor clientului este esenial. De aceea, procesul de testare a produselor
este orientat tot mai mult n aceast direcie a clientului. Acceptance Test Driven
Development este una dintre practicile eseniale de testare pe care utilizatorii finali ajung
Sebastian Silaghi
sebastian.silaghi
@veinteractive.com
Senior Software
Developer in Test
@VE Interactive

s o valorifice pentru a-i valida produsul. Din acest motiv, aceasta are o mare
importan pentru client i totodat reprezint i ultimul test major nainte de livrare.
n acest articol voi prezenta cum se pot
crea teste pentru Acceptance Testing Driven
Development n .NET, utiliznd SpecFlow i
limbajul Gherkin. Specflow este un instrument open-source, care se integreaz cu
Visual Studio. De asemenea, articolul prezint i cum se poate folosi Selenium Web
Driver pentru a simula interaciunea cu
browser-ul.

Teste automate n Continuous Integration


Pipeline
Un proces de integrare continu reuit
este definit de teste automate care ruleaz
rapid, au o acoperire bun i nu returneaz
rezultate eronate. Testele automate sunt de
obicei mprite n mai multe seturi, fiecare
avnd obiectivul su: teste de unitate, teste
de acceptare, teste de integrare, teste de sistem i teste de securitate.
Testele de acceptare reprezint o etap
crucial n procesul de punere n funciune,
ntruct permit echipelor care se ocup de
livrarea produsului s treac dincolo de
procesul de integrare continu de baz.
Odat ce testele automate de acceptare sunt
implementate, se pot testa criteriile business
de validare pentru aplicaie, adic, se poate
confirma c aplicaia ofer funcionalitate
de valoare utilizatorilor. Testele de acceptare
sunt n mod tipic rulate pe fiecare versiune
a software-ului care trece de testele unitare.
Un test de validare individual are scopul
de a verifica dac criteriile de acceptare a

unei poveti (story) sau cerinele business


au fost ndeplinite. Criteriile de acceptare/
validare apar n multe variante: ele pot fi
funcionale sau non-funcionale. Criteriile
funcionale sunt legate de scenariile utilizatorului final (end-user), fiind strns legate
de procesele business pe care aplicaia le
face posibile. Criteriile non-funcionale
se ocup de operarea unui sistem, mai
degrab dect de comportamentul specific al funciilor. Performana, capacitatea,
disponibilitatea, sigurana, flexibilitatea la
modificri, gestionarea erorilor i utilitatea
sunt exemple bune de criterii de validare
din punct de vedere nefuncional. Ideea
principal este aceea c o poveste sau o
cerin specific este considerat complet
i funcional numai atunci cnd se demonstreaz c trece testul su de acceptare.
Un set de teste de acceptare, nu numai
c asigur furnizarea valorii business
ateptat de ctre utilizatorul final, dar ajut
i la diminuarea potenialelor regresii ale
defectelor sau ale modificrilor neateptate
ale funciilor aplicaiei. Testele automate de
acceptare surprind probleme serioase pe
care testele de unitate sau testele pe componente, orict ar fi de cuprinztoare, nu le-ar
putea niciodat detecta. Din punctul de
vedere al ciclului de dezvoltare, mai exist
un alt avantaj major al testrii pentru acceptare: este unul dintre puinele procese care
garanteaz faptul c toate grupurile sunt
implicate n procesul de livrare clienii,
analitii, managerii de proiect i echipa de
dezvoltare (dezvoltatori, testeri i dev-ops).
Cheltuielile generale pentru a crea i a
menine un set corespunztor de teste de

www.todaysoftmag.ro | nr. 41/noiembrie, 2015

21

testare
Acceptance Testing Driven Development utiliznd SpecFlow cu Selenium n C#
acceptare sunt mai ales la aplicaiile complexe semnificativ mai
mici dect costul efecturii manuale frecvente a testelor de regresie i validare, sau dect acela al alternativei de a scoate pe pia
software de calitate slab. O testare eficient de acceptare ar trebui efectuat pentru fiecare lansare, drept o etap formal odat
ce dezvoltarea a fost finalizat i se apropie lansarea.

Privire de ansamblu asupra SpecFlow


n lumea .NET, SpecFlow reprezint unul dintre pluginurile cele mai cunoscute pentru Acceptance Testing Driven
Development.
SpecFlow are ca scop eliminarea problemelor de comunicare
dintre experii care cunosc domeniul de business al aplicaiei i
dezvoltatori, prin includerea specificaiilor de comportament n
procesul de implementare efectiv, ntr-un limbaj uor de citit
i lipsit de ambiguitate. Este un instrument .NET open source
inspirat de ctre framework-ul Cucumber, care permite scrierea specificaiilor n format Gherkin, fiind succint i uor de
interpretat de ctre o persoan. Gherkin este un limbaj Business
Readable, specific domeniului, care v permite s descriei comportamentul software-ului fr a v ocupa de modalitatea n care
acel comportament este implementat sau de funcionalitatea
cerut pentru un sistem dat.
Cele mai frecvent semnalate avantaje ale utilizrii SpecFlow
sunt :
ncurajeaz colaborarea dintre membrii echipei de profil
tehnic sau business;
caracteristicile sistemului pot fi scrise i/sau nelese de
ctre persoane non-tehnice;
implementarea mai eficient a modificrilor;
calitate mai ridicat a produsului;
mai puin munc refcut.

Utilizarea SpecFlow pentru a executa teste cu Selenium WebDriver


Integrarea SpecFlow cu Visual Studio este simpl i const
n doi pai. Primul pas este s instalai Integrated Development
Environmentul utiliznd opiunea Extensions and Updates din
meniu, dup cum putei vedea pe imaginea de mai jos:

Ultimul pas este s configurai proiectul din Visual Studio,


pentru a funciona cu SpecFlow prin instalarea pachetului NuGet
corespunztor.

SpecFlow suport multiple framework-uri cunoscute de


executare a testelor, precum Nunit i MsTest, dar de asemenea

22

nr. 41/noiembrie 2015 | www.todaysoftmag.ro

vine i cu un engine de executare de teste special creat, numit


SpecFlow+Runner.
Ca i oricare alte teste din familia Cucumber, un test de validare SpecFlow necesit: un fiier de caracteristici (feature file),
definirea pailor i cod business.
Pentru a defini comportamentul sistemului, crearea unui
fiier Feature este obligatoriu. Fiierul acesta conine privirea de
ansamblu asupra funcionalitii din user story i scenariile scrise
n limbaj Gherkin. Este de preferat s avem echipe compuse din
oameni cu diferite roluri n procesul de dezvoltare care s lucreze
la crearea fiierului de caracteristici, deoarece aceasta duce la
mbuntirea integrrii i comunicrii n echip i reduce durata
unui ciclu de dezvoltare pentru funcionaliti noi. Un fiier de
caracteristici de obicei conine o list de scenarii, care ncepe cu
cuvntul Scenariu (Scenario). Folosind etichetarea, se pot grupa
laolalt caracteristici i scenarii i se pot reutiliza pri din scenariile deja definite. Fiecare scenariu este definit printr-o list de
pai, care trebuie s nceap cu unul dintre cuvintele cheie: Given
(Dat), When (Cnd), Then (Apoi), But (Dar) sau And (i).
Iat un exemplu:

Cuvntul cheie Given stabilete precondiii sau context pentru scenariu. Aciunea, comportamentul pe care ne concentrm
este marcat prin When. Validarea scenariului este realizat
utiliznd afirmaia Then; aceasta verific de fapt dac lucrurile corecte s-au petrecut n etapa When. And poate fi folosit
n oricare dintre cele trei seciuni i servete drept o frumoas
prescurtare pentru repetarea lui Given, When sau Then. Exist
anumite situaii n care este necesar un pas negativ, i atunci
poate fi utilizat cuvntul cheie But.
Traducerea liniilor n etape este efectuat prin click dreapta
n fiierul de caracteristici i selectarea Generate Step definition.
Un ghid va crea scheletul fiierului pentru etape.

i nu poriuni ntregi din aplicaie,


ar trebui s foloseasc titluri sau
etichete descriptive i s conin
scenarii care sunt independente i
deterministe.

Etapele ar trebui s fie
buci mici, simple i concise de
cod. Ar fi de dorit ca ele s fie
reutilizabile, s aib o sigur responsabilitate i o separare bun a
preocuprilor (concerns)

Scriei scenarii i pentru

Executarea testelor de acceptare la nivelul UI necesit


interaciune cu browser-ul, iar aici Selenium Web Driver ne
permite s abstractizm comunicarea cu aplicaia web. n interiorul etapelor auto-generate, noi putem executa diferite operaii
bazate pe funcionalitatea Selenium Web Driver, care faciliteaz
interaciunea cu Document Object Modelul unei pagini web.

cazurile non-happy-flow.
Revedei, reutilizai i mbuntii-v scenariile i etapele.

Concluzii

Ca i oricare alt test automat, pentru a se putea ocupa de


iniializarea testului i de curarea sa, SpecFlow expune un set
de evenimente care pot fi interceptate: BeforeScenario (nainte de
scenariu) i AfterScenario (Dup scenariu).
n general, acestea pot fi utilizate pentru a realiza logic
adiional de automatizare pe evenimente specifice. Chiar dac
sunt globale, ele pot fi restricionate pentru a rula numai pentru
funcionaliti sau scenarii specifice. Hook-urile BeforeScenario
i AfterScenario conin logic de automatizare care trebuie s
ruleze nainte/dup executarea fiecrui scenariu ca i n cazul
iniializrii browser-ului la nceputul fiecrui scenariu i dealocarea obiectelor browser-ului dup fiecare executare de test.
Atunci cnd crem un test de validare cu SpecFlow, ar trebui
s lum n considerare urmtoarele drept bune practici:
Fiierele de caracteristici ar trebui s fie de fapt caracteristici

Testele automate de acceptare reprezint un pas important


n procesul de Continuous Integration, sunt nu numai barier
a calitii n procesul de livrare, dar contribuie semnificativ la
crearea documentaiei pentru procesele de business, care ne ajut
s evitm problemele comune de mentenan pe termen lung.
Implementarea testelor de acceptare conduce la formare
de echipe interfuncionale n care testerii, analitii i dezvoltatorii lucreaz mpreun pentru a dezvolta n mod corect
funcionalitile sistemului. Dac comunicarea dintre prile interesate i dezvoltatori este clar, echipele de software funcioneaz
cel mai bine, iar evitarea nenelegerilor prin definirea testelor de
acceptare va crete nivelul de colaborare al echipei.
Implementarea testelor de acceptare folosind instrumentul
SpecFlow ne permite s utilizm exemple i concepte din lumea
real pentru a descrie comportamentul sistemului pe nelesul
acionarilor.

Referine
1. Specification by Example: How Successful Teams Deliver the Right
Software 1st Edition 2011 by Gojko Adzic
2. The Cucumber Book: Behaviour-Driven Development for Testers and
Developers (Pragmatic Programmers) 1st Edition 2012 by Matt Wynne and
Aslak Hellesy
3. http://www.specflow.org/
4. http://www.testdriven.com/
5. http://www.acceptancetesting.info/
6. https://msdn.microsoft.com/en-us/magazine/gg490346.aspx

www.todaysoftmag.ro | nr. 41/noiembrie, 2015

23

programare

Auditul de User Experience

dovad a maturitii domeniului IT din Cluj-Napoca o reprezint nevoia acut


din ultimii ani de designeri UI/UX i implicit contientizarea c eficiena
unui designer se reflect nu doar n procesele de creaie, ci i n analiza i
sintetizarea datelor despre produs. Acest articol i propune s vin att n ajutorul

Mircea Gui
Mircea.Gui@Yardi.Com
UI/UX Designer
@ Yardi Romania

24

nr. 41/2015, www.todaysoftmag.ro

companiilor i produselor care au nevoie arhitectura informaiei i tipare de


de designeri UX, ct i al acestora din utilizare.
urm prin expunerea aspectelor eseniale
ntrebrile la care trebuie s rspund
care caracterizeaz etapa premergtoare
proiectelor IT, cea de analiz i cercetare, auditul de UX sunt:
Care sunt tendinele actuale i
adic auditul de User Experience. Aceast
ateptrile utilizatorilor pentru aceast
etap are scopul foarte clar de a identipia?
fica dac i n ce msur un produs are
Ce am ncercat pn acum? Ce a
nevoie de mbuntiri n ceea ce privete
funcionat i ce nu?
relaia direct cu utilizatorul/clientul.
Ce probleme sau nevoi ale utilizatorilor se regsesc n setul de date
Produsele software trebuie s triasc
studiate?
i s creasc mpreun cu businessul i cu
Dintre acestea, care aspecte pot
clienii acestuia. Cum tim ce componente
fi rezolvate prin designul UI/UX al
trebuie revigorate, refcute sau regndite?
produsului?
Totul debuteaz cu un audit de User
Experience. Acesta nu este un aspect ineAuditul ncepe cu partea de cercetare
dit al procesului de creare de software,
ci mai degrab o component de baz a i documentare. Acest proces va genera
designului industrial nc din stadiile tim- informaii utile pentru realizarea unor
purii ale acestuia. Scopul este crearea unei modele de cercetare ale utilizatorului,
analize detaliate ce contureaz un cadru cum ar fi user persona (profilul utilizatorude intersecie al cerinelor de business cu lui) sau realizarea de sondaje. Majoritatea
cele ale clientului precum i modalitatea companiilor dispun de metode de analiz
de a obine obiective concrete referitoare a datelor de marketing, trafic i utilizarea
la utilizatori. Acesta poate fi un proces produsului. De obicei acest tip de date
istovitor, dar el poate identifica aciuni nu este analizat dintr-o perspectiv cenclare de urmat, precum i un plan de a trat pe utilizator care s ia n considerare
mbunti produsul. Aspectele vizate de mentalitatea utilizatorului n procesul de
o astfel de analiz cuprind: reguli corecte interaciune cu produsul.
de design, conformitate funcional,

TODAY SOFTWARE MAGAZINE

n continuare vom parcurge o list de metode i surse de


colectat informaii i date relevante.
Interviuri cu factorii decizionali - Efectuarea de interviuri cu persoanele aflate n vrful piramidei decizionale, cum
ar fi: efi de departament, manageri de produs, coordonatori
ai echipelor de programatori, etc. . Aceste interviuri ar trebui
s ofere observaii despre utilizatori i componena pietei.
Statistici de vnzri - dei aceste date sunt folosite n principal de ctre departamentul de vnzri, o parte din ele sunt
folositoare auditului de UX. O chestiune de remarcat ar fi, de
exemplu, seciunile care reflect probleme de transmitere ale
unor instruciuni sau informaii utile (caracteristici ale articolelor de pe site-ul unui magazin online) ctre user. Exemplu: un
anumit articol vndut online are o rat foarte mare de returnare
din cauza alegerii la cumprare a unor dimensiuni greite. Dac
aceast rat este mult mai mare dect a aceluiai produs vndut
n magazine, nseamn c ar putea fi o problem cu claritatea
informaiilor de pe site privind dimensiunile acestui produs.
Informaii din Call Center - centrele de asisten (prin
telefon sau online) sunt o surs foarte bun pentru a afla
problemele utilizatorilor. Dei multe dintre aceste informaii
pot fi irelevante, putem afla ce componente ale produselor
software lipsesc sau necesit mbuntire. Exemplu: n cazul
unei pagini de abonare la un serviciu, cu trei variante de abonament, un numr mare de clieni sunau pentru a afla care este
diferena dintre cele trei tipuri de abonament, n ciuda faptului c diferenele dintre abonamente erau prezentate n pagin.
Acest gen de ntrebare recurent reflect foarte clar faptul c
zona de prezentare a abonamentelor necesit mbuntiri.
Web Analytics - Analizele cantitative de trafic pot s ofere
o imagine corect despre cte persoane acceseaz un site, de
unde vin, la ce se uit, precum i statistici pe durate mai lungi
de timp. Se pot utiliza instrumente avansate de monitorizare
pentru a afla n detaliu care este parcursul de navigare al unui
user pe site, n ce locuri acesta va prsi site-ul i unde pleac,
dup ce nceteaz s mai foloseasc produsul. De asemenea,
o alt metod util sunt programele care nregistreaz video
aciunile utilizatorilor pe ecran. n acest fel se pot observa uor
zone n care utilizatorul are probleme sau neclariti. Exemplu:

Se observ c un numr mare de utilizatori cu conturi gratuite


prsesc pagina de cumprare a unui abonament. La o verificare
ulterioar a bazelor de date observm c muli dintre acetia au
cumprat n cele din urm un abonament prin telefon. Aceasta
nseamn ca produsul software nu rspunde cum trebuie necesitilor utilizatorilor.
Sondaje de opinie - departamentele de marketing se
ocup cu realizarea i colectarea sondajelor de opinie ale
utilizatorilor. De obicei, aceste sondaje nu prospecteaz
n mod particular probleme de UX, ns putem afla despre unele preferine sau comportamente ale utilizatorilor.
Social media - site-urile de recenzii, blogurile, Facebook,
Twitter i alte reele de socializare pot s ne ofere informaii
unice i directe despre cum percep clienii un anume produs software. Pentru produsele mari, care genereaz
coninut substanial de social media, exist instrumente de
analiz ale percepiilor utilizatorilor de pe platformele de
socializare. Un numr mare de utilizatori se plng de anumite
funcionaliti ale produselor, dar nu contacteaz departamentul de asisten. Pot fi gsite exemple descrise n detaliu
de ctre utilizatori ce includ capturi de ecran ale problemelor
ntlnite precum i sugestii pentru o experien mai plcut.
Studii de pia - acest gen de materiale trebuie parcurse i
sondate pentru a gsi informaiile relevante. Dei acest tip de
cercetare nu ofer detalii specifice despre designul produselor,
el poate servi ca baz pentru anumite ipoteze funcionale, ct i
pentru crearea de user personas sau user narratives (scenarii de
utilizare). Informaiile utile despre utilizatori ce pot reiei din
studiile de pia sunt: competena tehnologic, ateptri iniiale
sau nivelul de implicare al utilizatorului n efectuarea sarcinilor.
Dup finalizarea documentrii, o regul de baz pentru
realizarea auditului const n parcurgerea contient a produsului prin asumarea rolului utilizatorului i prin ncercarea de a
ndeplini aciunile pentru care a fost proiectat acest produs. Se
abordeaz funcionalitile de baz, pe rnd, folosind parcursuri
realiste ale utilizatorului.
Trebuie s fim ateni la deciziile i reaciile pe care le avem i
s lum notie. Ce obstacole ntlnim? Ce interaciuni ne creeaz
frustrare? Dac este posibil, se repet acest proces cu persoane
www.todaysoftmag.ro | nr. 41/noiembrie 2015

25

programare
Auditul de User Experience
care nu sunt familiare cu produsul. Pe durata acestor interaciuni
cu produsul vom ine cont de urmtoarele aspecte:
Text expresiv i digerabil - nu prea scurt, nu prea lung,
minimul necesar pentru o bun nelegere a informaiei.
Trebuie s ne punem ntrebarea: l ajut acest text pe utilizator s neleag contextul (ex: titlul paginii) n care
se afl sau aciunea pe care trebuie s o ntreprind?
Elemente de indicare a aciunii (call to action) trebuie redate compact, dar suficient de expresiv pentru
ca utilizatorul s neleag urmarea acestei aciuni.
Ab o v e t h e f o l d - c o n i n u t u l r e l e v a n t p e n tru utilizator i care genereaz venit pentru
afacere trebuie s se afle pe ecran la prima afiare a ecranului.
Coninut vizual confortabil - folosirea de imagini simple, relevante pentru baza de utilizatori. Scheme de culori
potrivite pentru scopul i tipul produsului. Elemente
vizuale care s nu obtureze sau s distrag atenia utilizatorului de la elementele de indicare a aciunii (call to action).
Respectarea normelor culturale, sociale i religioase - folosirea
de imagini, simboluri, culori care s nu contravin principiilor culturale sociale sau religioase ale bazei de utilizatori.
Accesibilitate - verificarea valorilor de contrast ale culorilor folosite, precum i a dimensiunilor textului sau ale
elementelor de interaciune. Un alt aspect important este
creterea major a interaciunilor de pe aparatele mobile
(telefoane, tablete). Trebuie s ne asigurm c modelele de navigare sunt compatibile cu aceste aparate
(dimensiuni zone de interaciune, elemente cu hover, etc.).
Rspuns la aciune (feedback status) - sistemul trebuie s menin utilizatorul informat cu privire la ce
se ntmpl: pasul curent n proces, durata de completare, situaia de ncrcare, introducerea corect a datelor.
Gradul de control i de libertate al utilizatorului - prsirea cu uurina a unei stri/ pagini alese din greeal,

26

nr. 41/noiembrie 2015 | www.todaysoftmag.ro

posibilitatea de a repeta sau anula ultima aciune.


Consec ven i standardizare - cuvintele folosite, situaiile i aciunile posibile trebuie s aib
acelai sens n toate strile i scenariile din produs.
Prevenirea erorilor - mai bun dect un mesaj de eroare inteligent ar fi un design atent, care previne nsi apariia erorii. Sunt
de evitat interaciunile ntmpltoare sau repetate prin dezactivarea momentan sau ascunderea butoanelor. Interaciunile
cu potenial destructiv trebuie evideniate corespunztor.
Flexibilitate i eficien - asigurarea mediilor de
interfa diferite, att utilizatorilor nceptori, ct i celor
avansai. Utilizatorii trebuie s aib posibilitatea de personalizare a interfeei sau de utilizare a scurtturilor.
Principii de design - compoziia vizual a interfeelor trebuie s
respecte principiile de contrast, repetiie, aliniere i proximitate.
Recunoaterea, diagnoza i corectarea erorilor - mesajele de
eroare trebuie exprimate ntr-un limbaj direct i simplu, s indice
problema i s sugereze o modalitate de corectare a acesteia.
Asisten i documentaie- uor de accesat i uor de cautat.
Este ideal folosirea instruciunilor de asisten contextual,
concentrate pe aciunile curente ale utilizatorului (tooltips).
Indiferent dac decidei s creai o list detaliat cu elementele nirate mai sus sau doar s facei o trecere n revist succint
a acestora, un audit de UX este primul pas n a nelege procesul
de design al unui produs cu coninut complex. Dei acest proces
pare dificil i laborios, finalizarea lui va oferi percepia corect
i contextul potrivit pentru a lua decizii de design n cunotin
de cauz.
Parcurgerea acestui proces de analiz nu necesit ani de
experien ns va trebui s dai dovad de rbdare, struin,
curiozitate i atenie la detalii, caliti necesare unui designer de
UX.

TODAY SOFTWARE MAGAZINE

ntlnirile OSMTime pentru mbuntirea OSM Data

rept voluntar, eti mereu n cutare de noi resurse care s i satisfac interesul pentru servicii sociale, proiecte civice, caritabile sau umanitare. OpenStreetMap este unul dintre acele proiecte OpenSource care a captat interesul a peste 2.300.000
de oameni pentru a se nregistra pe platform i a contribui la dezvoltarea celei mai mari hri gratuite a lumii - Free Wiki
World Map.Cum proiectul exist din 2004, acum oamenii caut doar modaliti, unelte de a ajunge la o nou piatr de hotar, iar n
aceast privin, unealta drumurilor lips Missing Roads Tool are un cuvnt de spus.

ntlnirile OSMTime pentru


mbuntirea OSM Data

La sfritul fiecrei luni, n birourile


noastre din UE, organizm cte o ntlnire
OSMTime. Similar formatului Maptime, n
cadrul ntlnirii OSMTime, entuziati cartografi locali se adun pentru a mprti
informaii referitoare la iniiativele i
instrumentele OpenStreetMap i pentru a lua parte la activitile de editare a
hrii. n timp ce informaiile i uneltele
legate de GIS se afl n sfera posibilitilor,
scopul principal al acestor ntlniri este
editarea OpenStreetMap sau mai exact,
mbuntirea OSM n imediata vecintate
geografic.

artat cum funcioneaz acesta i cum s l


utilizm, toi cartografii au nceput s editeze n zona cu care rezonau cel mai mult.
Distracia a fost posibil datorit
manualului util scris de Martijn van
Exel pe blogul su. Putei vedea ntreaga
postare pe blog aici, dar pentru comoditate, vom aduga paii de baz care v
vor permite s testai acest instrument.

1. ncepei cu instrumentul web.


Este o modalitate convenabil de a
localiza drumurile care lipsesc dintr-o
zon pentru c i poi face rapid o idee
asupra distribuiei datelor drumurilor
lips.
Dac mreti suficient de mult, poi
s
vezi
chiar i tronsoanele individuale. S
Ce am fcut pn n prezent?
lum
asta
drept exemplu:
Am abordat subiecte diferite precum:
mbuntirea calitii i cantitii datelor
Vei observa c exist culori diferite
de adres din OpenStreetMap ( pe parcursul a 6 luni, n timpul ntlnirilor, am pentru trasee i pentru tronsoane. Exist
adugat i editat adrese din Cluj-Napoca), trei tronsoane de baz care pot fi de asemeam contribuit la eforturile HOT OSM, am nea filtrate dup tipul lor sau dup starea
organizat partide de cartografiere local, lor, dup cum urmeaz: deschise (albasam nvat i am utilizat unelte variate tru), rezolvate (verde), nevalide (rou).
pentru a mbunti harta (ScoutSigns,
MapRoulette, etc.) i ne-am antrenat n 2. Editai harta
Cum instrumentul web este n princitehnici specifice (ex. cum s completm imaginile cu geo-referine i cum s pal destinat activitii de browsing, nu vei
le utilizm drept suport pentru editarea putea modifica statutul tronsoanelor din
acest instrument, n acest moment. Acest
hrilor).
lucru poate fi fcut deocamdat numai
n plugin-ul JOSM. Totui, noi furnizm
Ultima ntlnire OSMTime: testarea instrulinkuri convenabile pentru a edita extinmentului Missing Roads (Drumuri Lips)
La ultima noastr ntlnire, am ncer- derea hrii curente n JOSM i iD.
Observaia 1: Pentru a verifica rapid
cat instrumentul Missing Roads, dezvoltat
dac exist de fapt drumuri n zon, putei
de colegii notri de la Telenav.
Dup o scurt introducere a instru- trece rapid de la nivelul OSM default la un
mentului, n care colegii notri ne-au nivel de imagini din aer, prin amabilitatea

ESRI.
Observaia 2: Interfaa principal pentru datele Missing Roads este plugin-ul
nostru JOSM. El ofer o funcionalitate de
browsing similar cu ceea ce face instrumentul web, dar cu o vizualizare uor
diferit.
Punctele roii reprezint grupuri de
drumuri lips la zoom mai mic. Cnd v
apropiai cu zoom-ul, putei vedea tronsoanele reale i datele coordonatelor.
3. Instalai i activai plugin-ul
Instalai plugin-ul Missing Roads prin
modalitatea obinuit, prin panoul de
preferine al plugin-ului JOSM. Atunci
cnd este instalat, i dup un restart JOSM
rapid, ar trebui s vedei stratul Missing
Roads i panoul.
Nivelul Missing Roads
Nivelul apare ca i oricare alt nivel
JOSM din list, i bineneles pe harta
principal, indicndu-i grupurile de drumuri care lipsesc de fapt.
Ca i orice alt nivel JOSM, acesta
trebuie s fie activ dac doreti s
interacionezi cu el. Deci, dac dorii
s selectai tronsoane, va fi nevoie s
activai mai nti nivelul Missing Roads.
Missing Roads Panel
n panou, putei interaciona cu
tronsonul/tronsoanele selectate n acel
moment. Dac nu vedei panoul, ar trebui
s l putei face vizibil utiliznd ctrl-F3 /
cmd-F3.
Panoul are trei tab-uri cu
cantiti diferite de informaie despre

www.todaysoftmag.ro | nr. 41/noiembrie, 2015

27

programare
ntlnirile OSMTime pentru mbuntirea OSM Data
tronsonul selectat. Dac avei mai mult de un tronson selectat,
vei vedea informaii despre ultimul tronson pe care l-ai selectat.

dar, indiferent de aceasta, fiecare dintre participani a gsit o zon


care avea nevoie de puin dragoste de cartografiere.

Tab-ul Tile arat informaia de baz despre tronsonul selectat.


Tab-ul History arat o istorie a modificrilor de statut i a
comentariilor.
Tab-ul Have a new idea? Are un link la forumul de idei al Missing
Roads. V rugm s trimitei ideile voastre i bug-urile aici!
Panoul mai are i un numr de butoane de aciune n partea
de jos. Acestea sunt pentru filtrare, adugare de comentarii i
rezolvare de tronsoane. Vom discuta aceste funcii n urmtoarele seciuni.

Sfaturi pentru cartografiere

Filtrarea
Similar cu instrumentul web, putei decide ce tronsoane
dorii s vedei n funcie de starea lor i tipul (probabil).
Dac dorii s eliminai toate filtrele, putei face click pe Reset.
Putei filtra numai dup un status sau tip la un moment dat.
Ca i bonus, putei stabili un prag pentru evidena circulaiei.
Aceasta v permite s filtrai tronsoanele care au un numr mai
redus de cltorii peste ele. Putei vedea numrul cltoriilor
pentru tronsonul selectat n tab-ul Tile.

Un demers eficient n utilizarea instrumentului drumurilor


lips este cel mprtit de Martijn: nu ar trebui s adugai drumuri numai pe baza urmelor. Avei nevoie de o a doua surs de
validare. De cele mai multe ori, aceasta va fi o imagine din aer.
Nivelul aerian default n JOSM este Bing. Imaginile Bing pot fi
vechi de civa ani. Pentru anumite regiuni, este posibil s fie disponibile imagini mai recente. Cutai straturi aeriene n meniul
de imagini JOSM. Deci, asigurai-v c verificai meniul de imagini din nou, dac editai ntr-o zon necunoscut.
i pentru c o imagine valoreaz ct o mie de cuvinte, iat
OSMTime:

Comentariile
Dac facei click pe un buton de comentariu, se va deschide o
fereastr de dialog Add Comment, care v va permite s adugai
un comentariu la tronsoanele curent selectate pentru ca tovarii
votri cartografi s le vad.
Dac avei mai multe tronsoane selectate (prin utilizarea
butonului Shift n timpul selectrii), comentariul va fi aplicat fiecrui tronson.
Rezolvarea
n final, exist trei butoane pentru a rezolva tronsonul/ tronsoanele selectate: butonul lock (nchidere) rezolv un tronson i
l marcheaz drept gata, butonul unlock (deschidere) marcheaz
tronsonul drept nerezolvat sau deschis din nou, butonul ! marcheaz tronsonul drept nevalid (se utilizeaz dac acolo nu exist
de fapt un drum).
Simplu, nu?
Deci, pe scurt, ceea ce am descoperit n timpul ntlnirii
noastre OSMTime este c n anumite zone exist multe drumuri
lips deja prezente (n concluzie, comunitatea OSM este activ),

28

nr. 41/noiembrie 2015 | www.todaysoftmag.ro

Drago Andronic
dragos.andronic@telenav.com
Product Manager
@ Telenav

Common misconception:
How many objects does this create?

common question is how many objects or how many Strings does a section of code
create. Often the answer is not what you think nor should you really need to know.
It is useful to have an idea of when an object is created but there is so many other
factors which are often far more important to consider which can mean the total number for
an application is not what you think.
Peter Lawrey
peter.lawrey@
highfrequencytrading.com
CEO @ Higher Frequency
Trading Ltd

String is a not a single object

The JVM uses Strings, lots of them.

A String wraps a char[]. This means that


when you see a new String there could be a
new char[] also involved. If you do + with a
String it could use a StringBuilder (from Java
5.0) which also wraps a char[]. This means
that usually there is more char[] created in
Java than String objects. Sometimes char[] is
the most common object type in a JVM.

The JVM uses Java code and this uses


Strings. The ClassLoader to load your class
uses Strings. The name of the class you want
to load is a String as are all the System properties and all environment variables which
are created so you can run your program
are all Strings, both the values and the key
names.

String literals are still Strings

Let us consider a Hello World program


and
see how many Strings are created so this
A common misconception is that String
literals dont count. They dont add to the program can run. Is it 0, 1 or 2 Strings, see if
total after the code has been run at least you can guess how many are actually created..
once, however most of the time the question public class HowManyStrings {
is about code which is run once. i.e. String
public static void main(String[]
args) throws IOException {
literals still count.
System.out.println(Hello
Another common misconception is when
String literals get loaded. In Java 6 and earlier
they were loaded when the Class is loaded,
however they are now (Java 7+) loaded when
they are first used. This means that a section
of code where String literals appear for the
first time will create new String objects.

world);
System.in.read();
}
}

This program stops on System.in.read();


allowing me to take a dump of the heap. The
utility jmap can give a histogram count of
the number of objects currently on the heap,
assuming there has been no GCs this will be
the number created.

www.todaysoftmag.ro | nr. 41/noiembrie, 2015

29

programare
Common misconception: How many objects does this create?

Escape Analysis
As you can see, the number of Strings was 2490. If I had a few
more environment variables or a different update of Java it would
be a different number.
In short, if you are arguing over 2 to 5 String in the code you
can see, when the code is run once, you may be missing most of
the Strings.

But what if I call the code lots of times?


If you are talking millions of times, it is likely to matter, but
here is the thing. The JVM will optimise code which called this
many times and it can do two things.

Dead Code Elimination


Code which the JIT detects doesnt do anything useful can be
dropped. The JIT is pretty good at this and most likely the example you are looking at doesnt do anything useful either. However
in real world code, hopefully it does something useful which is
where the next optimisation is useful.

30

nr. 41/noiembrie 2015 | www.todaysoftmag.ro

The JIT can look at a method (or what the method would
look like after everything it calls has been inlined) and see if an
object escapes the method. If it doesnt escape the method it
can be placed on the stack, or effectively have its fields unpacked
onto the stack. This means no object is created on the heap, and
in fact the object header doesnt even have to be created, all its
fields, possibly none of its fields need to be created. In short, just
because you see new String in the code doesnt mean the JIT has
to actually create an object, provided it makes no difference to the
result (unless you are counting the number of objects created)

Conclusion
The number of Strings created by even a trivial application is
likely to be far more than you can imagine a use for, but called
enough times and you might find that a method no longer creates
any objects at all.

programare

Logging pe memorii externe


lecii nvate

ogging-ul (nregistrarea) i auditul (verificarea) sunt obligatorii pentru toate aplicaiile.


Fr aceste informaii, echipa de monitorizare i suport nu ar putea s tie dac sistemul funcioneaz corect i s aniticipe anumite stri de fapt. n plus, din perspectiva
siguranei, trebuie verificate la diferite niveluri ale sistemului cine v acceseaz sistemul, care
este aciunea i cnd se manifest ea.
Radu Vunvulea
radu.vunvulea@iquestgroup.com
Senior Software Engineer
@iQuest

Exist multe soluii de-a gata pe pia,


care ne ajut s facem logging i audit n sistemul nostru. Presupun c fiecare dintre noi
am utilizat mcar o dat n via log4net sau
NLog. Sunt situaii n care avei nevoie de loguri persistente n memorie, care nu se afl pe
acelai aparat pe care ruleaz sistemul vostru.
De exemplu, un caz comun de utilizare poate
fi scrierea tuturor acestor informaii pe:
SQL instance,
Azure Blob Storage,
Azure Event Hub.

Azure Event Hub, de unde sunt analizate n


timp real, pentru a detecta problemele de
securitate sau instabilitatea sistemului.

Pentru a reduce ncrctura din reea, a


mbunti performana (viteza) i a controla
costurile, fiecare component are un buffer de
unde sunt scrise log-urile i datele de audit.
Odat ce un buffer a ajuns la o dimensiune
specificat, coninutul este expediat n mod
automat. Aceasta ar funciona perfect atta
timp ct Azure Blob Storage (pentru loguri)
i Azure Event Hub (pentru audit) sunt
Dar v-ai ntrebat vreodat ce se ntmpl disponibile.
cnd nu se poate ajunge la aceast memoObservaii: Vom continua cu situaia n
rie. Acest articol va analiza acest caz. Ce se
ntmpl dac memoria pe care sunt pstrate care utilizai log4net, dar menionm c un
comportament similar se manifest i la alte
log-urile i auditul nu poate fi accesat?
framework-uri de logging.
S ne imaginm un sistem care scrie
Ce se ntmpl cnd una dintre aceste
toate log-urile pe Azure Blob Storage iar
informaiile de audit sunt trimise direct n memorii nu poate fi accesat? Ce credei?
www.todaysoftmag.ro | nr. 41/noiembrie, 2015

31

programare
Logging pe memorii externe lecii nvate
Buffer-ul va deveni din ce n ce mai mare. n mod normal,
acest buffer este inut n memorie, deoarece dorii s avei laten
sczut pentru operaiile de scriere.
Vei ncepe s consumai din ce n ce mai mult memorie i
exist o mare probabilitate s sfrii prin a rmne fr memorie, ceea ce nu doar v va bloca componentele sau aplicaia, dar v
va face s pierdei i log-urile curente i datele de audit.
Pierderea acestor date nu v va ajuta prea mult cnd vei
avea nevoie s descoperii de ce componenta sau aplicaia nu
funcioneaz sau de ce log-urile i datele de audit nu s-au pstrat.

Stocare temporar
n momentul n care mecanismul de logging vrea s fac o
expediere, dar detecteaz c memoria ndeprtat nu poate fi
accesat, ar trebui s fie declanat o aciune. O posibilitate ar
fi s avem un mecanism care s ncerce din nou s expedieze
datele, dar:
Pentru ct timp?
Ce ar trebui s facei cu datele extra?

Un alt lucru pe care trebuie s l lum n considerare este c


atunci cnd scrii pentru o destinaie diferit de cea default (n
special locaii externe), trebuie s te gndeti la cum ar trebui s
gestionezi aceast situaie.

Ct timp ar trebui s rencercai? Nu exist un rspuns de-a


gata. Eu recomand s ncercai numai de cteva ori i, dup aceea,
avei nevoie de o soluie de rezerv. De exemplu, eu a face trei
ncercri (1s, 2s i 4s). Dac memoria de logging sau audit tot
nu rspunde, atunci a trece la soluia de rezerv, pe care o voi
prezenta mai jos.

Ce ar trebui s fac?

Ce ar trebui s facei cu datele extra?

Exist trei operaii importante pe care ar trebui s le facei:

nregistrarea evenimentelor (Event Log)


Ar trebui s v asigurai c toate excepiile i comportamentele ciudate care apar la nivelul nregistrrilor de date sunt
scrise n Event Logger. Scrierea excepiilor n aceast locaie v
va garanta faptul c putei identifica orice tip de probleme ale
mecanismului vostru de logging.
O alt posibilitate este s scriei direct pe disc, ca fiiere,
dar Event Logger este un instrument foarte puternic, iar echipa
de monitorizare i suport poate strnge n mod automat toate
log-urile evenimentelor, poate defini alerte pentru ele i aa mai
departe.
Aceasta ar trebui s fie ultima voastr protecie cnd sistemul
vostru de logging nu funcioneaz cum v-ai ateptat. Nu uitai
s v gndii unde s nregistrai datele din momentul n care
componenta sau aplicaia voastr pornete pn n momentul n
care componenta voastr de logging este iniializat ce se ntmpl dac aceasta eueaz i cum putei detecta asta. Acestea sunt
dou ntrebri pe care ar trebui s vi le punei.

32

nr. 41/noiembrie 2015 | www.todaysoftmag.ro

Nu putei stoca date n buffer, deoarece buffer-ul vostru este


deja plin. S-ar putea s fie posibil s facei asta timp de cteva
secunde sau minute, dar aceasta nu se poate realiza timp de o
or sau patru ore. n aceast situaie, ar trebui s expediai toate
datele pe care le avei n buffer ctre discul vostru local.
n acest fel, v vei cura buffer-ul, iar noile nregistrri i
date de audit pot fi pstrate fr a avea probleme cu cazul de utilizare excepie, n care ai rmas fr memorie. n plus, ar trebui
s v asigurai c, odat ce reuii s scriei log-uri sau audit pe
sisteme de stocare extern - n cazul nostru a fost blob i event
hub-, ar trebui s scriei toate datele care au fost stocate n memoria local pe memoria extern.
Cu aceast soluie, va trebui s luai n considerare cazul
n care memoria extern nu funcioneaz o perioad lung de
timp, iar voi vei rmne fr spaiu n memoria voastr local.
Ar trebui s avei un mecanism de curare pentru aceste situaii.
Soluia cea mai simpl, care poate fi implementat cu succes, este
ca toate nregistrrile sau fiierele de audit mai vechi de X ore sau
zile s fie terse.

TODAY SOFTWARE MAGAZINE

Our core competencies include:

Product
Strategy

Product
Development

Product
Support

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


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

www.3pillarglobal.com

Utiliznd un asemenea mecanism de curare, spaiul local


necesar sistemului vostru poate fi estimat uor i nu vor mai
exista cazurile speciale n care log-urile i fiierele de audit utilizeaz spaiul disponibil care ar trebui s fie folosit de ctre alte
sisteme care ruleaz pe acelai aparat.

Stocare pasiv
n comparaie cu soluiile anterioare, aceasta este o soluie
opional, care ar trebui utilizat numai atunci cnd este crucial s primii log-uri sau date de audit ntr-un interval de timp
anume. Aceast soluie vine cu costuri suplimentare i poate de
asemenea s adauge puin complexitate sistemului care proceseaz i analizeaz urmele log-urilor i auditului.
Aceast soluie nu le exclude pe cele dinainte, deoarece
ambele tipuri de stocare, activ i pasiv, pot s nu funcioneze.
Aceast soluie implic utilizarea a dou tipuri diferite de
stocare: una activ, care este folosit tot timpul i una secundar,
pasiv, care este folosit numai cnd prima nu este disponibil.
n concluzie, v recomand cu cldur s considerai acest caz,
pentru ntregul vostru sistem. Cel puin, scriei n Event Logger
orice eroare sau comportament ciudat al mecanismului vostru
de logging.

www.todaysoftmag.ro | nr. 41/noiembrie 2015

33

programare

V prezentm ironwingjs

e scurt, ironwingjs este o librrie JavaScript lightweight i framework-agnostic. Prin


framework-agnostic nelegem o librrie care nu depinde de un framework anume i
se poate folosi fr nicio dependin n plus. Ironwing ofer manipulare de tip CRUD
peste o interfa REST API pentru datele care vin de pe aceasta.

Andrei Cacio
andrei.cacio@yahoo.com
Web Developer
@ Evozon

Totul a nceput de la simpla necesitate de


a lucra cu datele care vin de pe un API.
Aveam nevoie de o metod destul de simpl
i rapid de a asimila acel API i de a manipula datele ntr-o aplicaie privat. n acel
moment, nu intenionam s folosim un framework JavaScript anume, deoarece doream
s utilizm strict partea de manipulare de
date. Au fost cteva variante open-source, dar
majoritatea aveau alte dependine i era destul de complicat s le foloseti stand-alone.
Astfel, am nceput s scriem propria noastra variant care s funcioneze exact aa
cum ne doream. Dup ce s-a scris o prim
versiune mai complex, i am observat c
funcioneaz exact cum ne-am ateptat,
ne-am gndit c poate ar ajuta i ali programatori. Aa c ne-am hotrt s publicm o
versiune mai finisat sub forma unei librrii
open-source. Aa a luat natere ironwingjs.

baza a cteva concepte precum: adapters,


storage, proxy objects. Aceste concepte abstracte au fost gndite astfel ca ironwing s
fie uor extensibil i practic. Mai mult dect
att, aceast librrie a fost conceput s fie
uor de folosit n orice aplicaie i uor de
adaptat n orice framework. Ideea de baz
este simplitatea.

Instalare
Ironwing poate fi instalat folosind una
din urmtoarele metode afiate mai jos:
$ npm install ironwing
# sau
$ bower install ironwing

n caz c se utilizeaz sistemul de operare Windows, aceste comenzi pot fi rulate n


cadrul consolei git-bash.

Cum funcioneaz

Ironwing este scris conform noilor standarde EcmaScript i se folosete de unele Adapters
implementri populare precum promises.
Un adapter este un obiect scris dup o
Totodat, aceast librrie este construit pe interfa prestabilit pentru putea fi integrat

34

nr. 41/2015, www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE


cu ironwing. Out of the box, ironwing
este livrat cu un adaptor pentru comunicarea cu serverul prin AJAX. Practic
acest adaptor este o interfa intermediar pentru comunicarea cu API-ul oferit
de browser, numit. Acest API ofer o
metod asincron de comunicare cu serverul prin request-uri HTTP de tip JSON.
Programatorul nu interacioneaz cu
adaptorii n mod direct. Acetia sunt folosii de core-ul ironwing. Scopul adaptorilor
sunt de a abstractiza comunicarea cu serverul astfel nct procesul s devin uor
de modificat. Oricine poate s scrie propriul su adaptor. ncrcarea unui adapter
se face folosind metoda astfel:

storage ce se folosete de local storage din


browser.

Proxy objects

Aceast bucat de cod seteaz librria


ironwing s foloseasc request-uri de tip
JSON pentru toate operaiile cu serverul.
Acest tip de adaptor are nevoie de un singur parametru, i anume calea ctre API.

Metoda este de fapt un factory method


care returneaz instane de tip Model.
Fiecare instan expune metode CRUD
pentru manipularea resursei mapped
pe API. Mai mult, ironwing nu modific
n mod direct obiectul deserializat din
JSON. Librria expune un obiect numit
proxy care este de fapt intermediarul.
Acest obiect poate fi accesat prin cheia .
Mai mult dect att, acest obiect este de
fapt o transformare camel cased a denumirilor atributelor originale. Acest format
este de preferat s fie folosit n aplicaiile
JavaScript de accea ironwing transform
automat orice combinaie (pascal case,
uppercase etc.) n formatul camel case.
Orice modificare pe obiectul proxy este
automat sincronizat cu obiectul original
nainte s fie transmis serverului sub forma
serializat. Aceast tehnic ne permite
s avem un control mult mai mare asupra cum este modificat obiectul original.

Storage

Exemplu de folosin

import ironwing from ironwing;


ironwing.useAdapter(JSON, [/
api]);

Prin default, ironwing folosete un storage local (heap). Dup ce librria aduce
de la server una sau mai multe resurse,
aceasta le stocheaz folosind interfaa
storage-ului pentru a putea fi folosite in
viitor. Se poate spune c ironwing cacheuiete resursele. Spre exemplu, dac ar fi
s aducem o resurs folosind urmtoarea
cale de la API: /users/100 vom proceda
astfel:
ironwing(users, 100).then((user)
=> {
console.log(user.attr.name);
});

iar dac dorim s ne folosim de


aceast resurs n alt parte a aplicaiei,
putem avea acces la ea folosind urmtoarea metod:
var userModel = ironwing.storage.
find(users, 100);

sau dac dorim s avem acces la


ntreaga colecie de tip users:
ironwing(users,).then((users)
=> {
console.log(users.length);
});
var usersCollection = ironwing.
storage.findAll(users);

n urmtoarea versiune se dorete


implementarea unui sistem de folosire a
mai multor implementri de tip storage.
Un exemplu bun ar fi o implementare de

rezolva o necesitate de care depindem cu


toii. Scopul i esena librriei este de a
fi ct mai uor de folosit i ct mai uor
extensibil.

Disclaimer
Ironwing a fost dezvoltat iniial pentru
proiectul Trubzi n cadrul Evozon Systems
din Cluj-Napoca. Evozon este o companie de software fondat n 2005 de catre
Gabriel Creu si Robert Masic, cu clieni
de pe toate continentele. Evozon dezvolt
att aplicaii la cerere ct i produse proprii precum Trubzi, Calendis, Hoteliqo i
framework-uri folosite de ctre dezvoltatori din lumea ntreag, precum Essence
i Crux.

import ironwing from ironwing;


var userData = {
first_name: Jon,
last_name: Doe;
};
ironwing.useAdapter(JSON, [/
api]);
ironwing.create(users, userData).then((userModel) => {
/**
* a POST request is sent to
the server
* /api/users
*/
userModel.attr.firstName =
Jon;
userModel.attr.lastName =
Doe;
userModel.update().then(() =>
{
/**
* a PUT request is sent to
the server
* /api/users/:id
*/
});
});

Concluzie
Ironwing este o librrie care poate fi
uor conectat la un RESTful API iar
programatorul are direct acces la o manipulare CRUD asupra resurselor sale. Noi
am decis s publicm aceast librrie
publicului larg cu sperana c poate va
ajuta pe altcineva la momentul oportun.
Deoarece este open source, oricine poate
contribui, s raporteze probleme sau
pur i simplu s vina cu idei noi legate
de cum ar dori s funcioneze ironwing.
Ironwing ofer o viziune diferit de a
www.todaysoftmag.ro | nr. 41/noiembrie 2015

35

educaie

Imaginaie + implicare + piese


LEGO= ajutor reciproc

e poi face din piese LEGO? a fost provocarea pe care am lansat-o acum cteva
sptmani. Eram curioi s aflm ce se poate realiza din piese LEGO, iar imaginaia i implicarea voastr ne-au surprins foarte plcut, motiv pentru care
v mulumim! Astfel, ni s-a confirmat nc o dat ideea c i adulilor le place s se
joace i c, la rndul lor, pot fi foarte creativi. n sprijinul afirmaiei noastre st ca

Ana-Maria Trifan
anamaria.trifan@
happy-employees.eu
PR & Custumer Care Specialist
@ Azimut Happy Employees

36

nr. 41/2015, www.todaysoftmag.ro

astfel de activiti care strnesc imaginaia


i creativitatatea pot aduce rezultate uimitoare de pe urma crora pot beneficia i
alte persoane dect cele implicate. Vznd
mii de participani de-a lungul anilor n
programele nostre de training i team building, care mereu ne surprind prin soluiile
inovative pe care le gsesc la activitile
noastre, am nceput s ne ntrebm dac
am putea duce acest lucru la un alt nivel,
nivel prin care s crem ceva care s aib
un impact mai mare i mai de durat. Aa
am reuit s gndim un nou program care,
bazndu-se pe imaginaia voastr, aduce
rezultate cu impact n comunitate. Acum,
avem nevoie de ajutorul vostru s l i
Se ia o doz de imaginaie...
V putei oare imagina ce am urmrit implementm.
prin lansarea acestei provocri? n primul rnd, aa cum am menionat, am fost Se adaug un praf de implicare...
foarte curioi s aflm ct de inventivi pot
Programul la care ne referim se
fi adulii. n al doilea rnd, am dorit s v numete Toy World i s-a nscut din
implicm ntr-o activitate relaxant care dorina de a ajuta. Pentru c de mult
poate contribui la mbuntirea creativi- vreme ne gndeam s crem un program
tii. Nu n ultimul rnd, scopul campaniei cu impact social, cu resursele pe care
a fost acela de a vedea dac ntr-adevr le avem, ne-a venit ideea s dezvoltm
dovad albumul cu creaiile voastre, pe
care le putei accesa pe pagina noastr de
socializare, unde vei vedea i construciile ctigtoare ale acestei provocri
(Facebook/azimut.teambuilding). Este
de menionat faptul c n mare parte
toate creaiile au fost realizate ntr-un
timp scurt, participanii netiind c o s
le cerem s fac acest lucru. Astfel, ne
ntrebm care ar fi rezultatele dac am
desfura aceast activitate ntr-o form
organizat, avnd mai mult timp la dispoziie i cel mai important, avnd un scop
pentru care facem asta!

TODAY SOFTWARE MAGAZINE


programe de team building n care s implicm att echipele ct i
comunitatea. Aadar, provocm echipele la o zi de teambuilding
la birou, n care i vor testa, printre altele, inventivitatea i unde,
va trebui ca n finalul programului de teambuilding, s realizeze
mpreun construcii din piese de LEGO. Toate piesele utilizate
de echipe n aceast contrucie vor fi donate copiilor din centrele
familiale i de plasament din Cluj-Napoca. Am realizat o list
cu astfel de centre care au fost mai mult dect fericite s aud
de iniiativa noastr, iar companiile care se vor implica n acest
program pot s aduc i noi sugestii.

Se amestec totul cu multe piese LEGO ...


De ce piese LEGO? Am ales s utilizm n acest program piesele de Lego deoarece ofer numeroase beneficii att adulilor, ct
i copiilor. Apoi, trebuie s recunoatem c este o activitate foarte

plcut i provocatoare. Poate c nu mereu am fost contienti de


aportul benefic pe care nite piese de plastic le pot avea asupra
noastr, aa c le amintim pe scurt n cele ce urmeaz.
Beneficiile utilizrii pieselor de Lego la:

i n final, rezult c ne putem ajuta reciproc!


Lund toate acestea n considerare, ne-am dat seama c
att organizaiile, participanii din programele noastre de team
building ct mai ales copiii ar avea numai de ctigat n urma
acestei aciuni. Astfel, s-a nscut primul program de team bulding Azimut Happy Employees ce include astfel de activiti: Toy
World. Programul se poate desfura oricnd n timpul anului,
ns pentru c se aproprie luna decembrie care este una special
pentru copii, ne-am gndit c ar fi un moment oportun n care
i noi s contribuim cu ct mai multe zmbete de fericire. Acest
program nu este gndit ca un produs pe care l vindem pentru
a obine profit, ci ca un program cruia i msurm succesul
prin numrul de copii care au ajuns s beneficieze de construcii
LEGO, ce le vor anima curiozitatea i creativitatea.

V mulumim pentru ajutor i implicare! Ne-ai ajutat s promovm un proiect care nou ne este foarte drag i care sperm s
reueasc s aduc un zmbet i un cadou ct mai multor copii
din Cluj-Napoca. V mulumim i rmne s v inem la curent
cu rezultatele proiectului! Dac vrei s aflai mai multe detalii
despre program sau credei c firma n care lucrai ar fi interesat
s se alture acestei campanii, dai-ne de tire!

www.todaysoftmag.ro | nr. 41/noiembrie 2015

37

management

Time Management: Preia controlul!

odul n care trim i ne desfurm activitatea azi este caracterizat de vitez i


de aglomeraie. Ne confruntm cu un volum copleitor de sarcini i activiti.
n plus, suntem asaltai de un exces de informaii: mesaje email, tiri prin
diverse canale (ziare tiprite, pres online, radio sau TV), apeluri telefonice, mesaje
Skype sau alte soluii de instant - messaging, Facebook, Linkedin, documente primite,
colegi i colaboratori, clieni, reuniuni n diverse variante. Care trebuie s fie atitudinea
i reacia noastr la aceast situaie?

Magnoliu Stan
magnoliu@smart-training.ro
Director
@ Smart HR

V propun trei lucruri:


1. Analiza modului n care v petrecei
timpul.
2. nsuirea i aplicarea unor instrumente moderne de gestionare a
timpului.
3. Simplificare.
Care trebuie s fie rezultatul ateptat?
Simplu - creterea eficienei utilizrii timpului prin:
Simplificarea vieii personale,
Creterea eficienei profesionale.
Ideea de simplitate n plan personal
i profesional este abordat att in filozofia american (Leo Babauta, The Power of
Less), ct i n cea european i se bazeaz

38

nr. 41/2015, www.todaysoftmag.ro

pe identificarea esenialului i pe ideea de a


elimina sau gestiona inteligent restul.
Punctul de plecare este similar pentru
majoritatea dintre noi. Avem un program
de lucru ncrcat, ne lipsete timpul pentru prieteni sau hobby-uri, avem greutate
peste medie, ncepem s avem probleme
de sntate, ducem lips de energie i
tonus. De multe ori ne confruntm cu
o alimentaie nesntoas, haotic. Nu
reuim s facem sport sau micare suficient. Uneori ne confruntm cu un stres
ridicat, avem de ndeplinit multe sarcini
i avem de-a face cu probleme la serviciu.
Sau chiar mai grav, apare fumatul excesiv,
apelm la datorii i credite. Sun cunoscut?

TODAY SOFTWARE MAGAZINE


Avnd n vedere cele scrise mai sus, cred c trebuie s
acionm. S nu lsm lucrurile la voia ntmplrii. S prelum
controlul propriei viei. S prelum controlul timpului!
Un model simplu, uor de neles i pus n practic presupune
cteva etape:
a. Simplificare i reducere la esenial,
b. Planificare i stabilirea n scris a unor obiective clare,
c. Concentrare,
d. Perseveren.
Obiectivele pot fi diferite, att din sfera profesional, ct i
din viaa personal. O list cu obiective posibile, din care recomand s alegei pentru nceput trei, gsii mai jos:
1. S fac sport regulat.
2. S mnnc sntos.
3. S devin mai eficient si productiv la coal sau la serviciu.
4. S alerg, de exemplu s particip la minim un cros sau
maraton anual.

5. S mi cresc veniturile cu un anumit procent sau o anumit


valoare.
6. S m trezesc devreme in fiecare diminea, de exemplu la
ora 6:00 a.m.
7. S not (sptmnal, zilnic sau s particip la diverse
concursruri).
8. S citesc (o carte pe sptman / lun).
9. S scriu un blog.
10. S mi achit toate datoriile
11. S economisesc (un anumit din venituri, sau o anumit
sum lunar).
12. S mi simplific viaa.
13. S eliberez casa i / sau biroul de lucrurile inutile.
14. S slbesc 10 kg in 6 sau 12 luni.
15. S scriu o carte.
16. S am mai mult timp liber.
17. S mi aloc timp pentru un hobby (specific).
18. S vizitez trei locuri noi anual.
19. .
20. .

Ce reprezint de fapt arta limitrii la esenial? S devenim


mai eficieni i productivi, simplificndu-ne viaa. Cum putem
face acest lucru? Iat cteva recomandri:
1. Impunei limite n ceea ce facei.
2. Identificai esenialul, renunai la ceea ce nu este
important.
3. Simplificai.
4. Concentrai-v pe ceea ce facei la un moment dat sau ntro anumit perioad.
5. Creai obiceiuri sntoase.
6. ncepei cu pai mici.
S explicm o parte din ideile de mai sus, pentru a fi mai uor
de neles i aplicat.
Ce fel de limite putem impune? La ce se refer?
La volumul de emailuri trimise i primite, la numrul de proiecte gestionate, la cantitatea de informaii procesat, la cantitatea
de obiecte sau documente cu care avem de-a face, la sarcinile i

responsabilitile curente.
De exemplu, v provoc la un exerciiu de imaginaie: varianta
A, cumprturi fr limit (cumperi orice, fr discernmnt,
fr s fie necesar) vs. varianta B, cumprturi ntr-un buget de
200 RON, cu o list scris, situaie n care aleg doar ceea ce este
important sau necesar, fr lucruri inutile. Aa arat viaa noastr: trim fr limite!
Drept consecine ale unui stil de via haotic, fr limite
sunt stresul, lipsa energiei, scderea eficienei, strile de epuizare, nemairmnndu-ne timp pentru sarcinile cu adevrat
importante.
Metoda simplificare: Un exemplu. n cazul n care ne referim la modul n care gestionm n prezent emailurile, trebuie s
ncepem cu evaluarea situaiei actuale. Probabil n acest moment
verificm emailurile foarte des, de 15 - 20 ori pe zi. Cum putei
simplifica?
1. Analizai frecvena / numrul / timpul / cantitatea actual.
Stabilii o limit mai joas, realist, util.
2. Testai limita stabilit, timp de 1 zi / 1 sptmn. Analizai
rezultatul.
3. Dac nu v mulumete, ajustai limita. Testai o sptmn.
4. 4. Continuai pn stabilii valoarea optim. Dezvoltai un
www.todaysoftmag.ro | nr. 41/noiembrie 2015

39

programare
Time Management: Preia controlul!
obicei, o obinuin.
5. Alegei alt aspect pe care dorii s l mbuntii. Repetai
paii anteriori.

Msurai i nregistrai rezultatele, anunai progresul zilnic sau periodic.


Dup 30 zile: ai dobndit un obicei nou.

Cum identific ce este esenial pentru mine?


Idee: similar cu sculptarea unei statui, ncepem cu un bloc
de piatr, din care ndeprtm ce nu ne este necesar i rmne
statuia.
Ca metod, trebuie s rspundem la cteva ntrebri:
1. Care sunt valorile mele?
2. Care sunt obiectivele mele?
3. Ce mi face plcere?
4. Ce este important pentru mine?
5. Ce aciune are cel mai mare impact?
6. Ce aciune are cel mai mare impact pe termen lung?

Chiar dac pare simplu sunt cteva reguli care trebuie


respectate:
alegei un singur obicei odat.
obiceiul trebuie s fie realist i uor de ndeplinit.
msurabil.
fii perseverent.
raportare zilnic.
menine o atitudine pozitiv.

Simplificai - eliminai ce nu este esenial prin evaluarea


situaiei actuale, eliminai sarcinile neimportante, delegai altele,
amnai, refuzai solicitrile celorlali cnd este cazul.
Concentrarea pe un numr mic de lucruri. Ca o sugestie:
ar trebui s alegem obiectivul unic asupra cruia s ne concentrm. Forme diferite n care se manifest concentrarea pot fi:
concentrare pe un obiectiv,
concentrare pe ce se ntmpl acum / prezent,
concentrarea pe ce ai de fcut n acest moment,
concentrare pe aspecte pozitive,
single tasking.
Formarea de obiceiuri noi este o metod care ne ajut s
dobndim obiceiuri de durat.
Cum putem face acest lucru? Iat civa pai care trebuie
urmai:
Alegei un obicei. Unul singur odat.
Facei un plan: ce fac zilnic, la ce or. Este important ncadrarea ntr-o rutin (exemplu: dup ce m spl pe dini, alerg
20 min sau fac 100 de flotri). Durata recomandat pentru a
implementa acest plan este de 30 zile.
Facei public obiectivul propus ctre colegi, familie, prieteni sau pe Facebook.

40

nr. 41/noiembrie 2015 | www.todaysoftmag.ro

ncepe cu pai mici, cu un obiectiv simplu, ceva uor sau cu


mprirea unui obiectiv ambiios n sub- obiective mici, etapizate. Utilitatea acestei strategii de a ncepe cu pai mici este:
concentrarea ateniei;
pstreaz energia i entuziasmul;
mai uor de gestionat;
asigur succesul la fiecare pas;
schimbarea progresiv are un efect durabil.
n concluzie, timpul nostru este mult prea important i
valoros pentru a ne permite s l irosim. Preluai controlul,
simplificai-v viaa i formai obiceiuri sntoase.
Mult succes!

SoCraTes 2015 Unconference

ceasta este ideea de la care a pornit conceptul de unconference.


Cea mai interesant parte a unei conferine sunt pauzele de cafea
Adic partea de networking i transfer de informaii, se desfoar cel mai
eficient i plcut n pauzele dintre sesiuni.
Mihnea Lazar
mihnea.lazar@
msg-systems.com
Software Developer
@ msg systems

Cunoscut i sub numele de conferin


open space, o ,,neconferin - da, aa s-ar
traduce- se difereniaz de conceptul clasic de conferin cu subiecte stabilite de
dinainte prin urmtoarele caliti:
Participanii propun subiecte proprii de care sunt interesai. Acestea pot fi
subiecte despre care ei au cunoatere i
vor s le arate altora sau subiecte pe care
nu le tiu, dar depre care doresc s afle de
la ali participani.
Non-profit, low-cost. Se aseamn
cu o ieire de weekend la caban, cu
interaciuni puternic colaborative.
Ceea ce se ntmpl acolo e singurul lucru care se poate ntmpla.

SoCraTes 2015 Germania

Ediia din Germania de acest an a avut loc


n Soltau.
Conferina a nceput joi i s-a ncheiat
duminic.
Joi, conferina a nceput spre sear.
S-a inut un World Caf, o ntlnire unde
participanii s-au cunoscut mai bine ntre
ei.
Vineri i smbt s-a inut Open
Space-ul, atracia principal a conferinei.
Duminic, participanii au avut libertatea de a ine workshop-uri unde au putut
aplica sau discuta despre ce au acumulat n
cadrul conferinei, sau de a lucra la diferite
proiecte cu oamenii proaspt cunoscui la
conferin.

Open space

De la prima ediie, SoCraTes s-a


Unealta principal a open space-ului:
extins ca eveniment, desfurndu-se n tabla. n partea stng au fost puse intermai multe ri din lume precum Marea valul de timp disponibil pentru fiecare
Britanie, Belgia, Insulele Canare, Elveia. sesiune (n principiu, o or fiecare), iar n
www.todaysoftmag.ro | nr. 41/noiembrie, 2015

41

programare
SoCraTes 2015 Unconference

partea de sus, erau specificate slile unde conferinele puteau fi


susinute.

n medie au fost 10 participani la fiecare sesiune, ceea ce a


creat o atmosfer destins, asemenea discuiilor de la berea de
Dup World Caf-ul de joi, parcipanii se cunoteau mai bine dup serviciu. Majoritatea subiectelor s-a discutat fr a fi fost
i se simeau mai comozi pentru a-i mpri ideile cu ceilali. pregtite de prezentri prealabile, deci ntrebrile au fost bineveAadar, au fost invitai s formeze o coad pentru a-i prezenta nite oricnd erau necesare clarificri.
ideile de sesiuni.

Unele sesiuni au pornit discuii care s-au ramificat n alte sesiCoada de oameni care ateptau s-i adauge subiectele se
extindea pe ambele pri ale tablei. Aceasta a fost umplut cu uni. n aceste cazuri, fie au fost continuate n curtea hotelului, la
sesiuni, care se ntindeau de la 10:30 pn la 18:00 n ambele zile! teras, sau ntr-o sesiune n urmtoarea zi, fie s-a fcut schimb de
Unele subiecte s-au extins n pe parcursul cinei, dup cin, la bar, adrese de e-mail sau bloguri.
sau au fost repetate urmtoarea zi.

42

nr. 41/noiembrie 2015 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE

Inevitabil, au fost situaii n care un participant dorea s


plece n timpul unei sesiuni, lucru care a fost perfect n regul.
Participanii erau liberi s mearg la mai multe sesiuni ntr-o
fereastr de timp, i puteau s-i noteze cel puin unele informaii
de baz sau adrese de referin n acel timp.

O selecie din subiectele prezentate:


1) Front-end web
A fost prezentat librria Bootstrap. Aceast librrie
simplific designul paginilor web, oferind abloane CSS predefinite, pentru a fi ncorporate div-urilor deja existente din
cadrul paginilor.
Conceptul de grile sau coloane n CSS-uri este o modalitate
prin care paginile web responsive i restructureaz div-urile
pe coloane, n funcie de mrimea ecranului, dup cum a
intenionat programatorul, pentru a oferi o experien ct mai
bun utilizatorului.
2) Administrarea cunotinelor i productivitate
Pune pe blog. Dac ai o idee sau un articol pe care vrei s
l mprteti sau s l ii minte, un blog poate fi un loc foarte
bun pentru a centraliza informaiile.
Cartea Getting things done David Allen.
Aplicaii cu integrare e-mail, pentru a ine cont i a-i reaminti de sarcini. Exemple: Todoist, Evernote.
Tehnica Pomodoro, care presupune alocarea unui interval
de timp limitat pentru rezolvarea unei sarcini definite.
Board-uri personale de Kanban.
Mind mapping tools.
Podcast-uri. Exemple: Turing incomplete, .NET rocks.
Gamificare, prin jocuri care rspltesc juctorii pentru sarcini ncheiate. Exemple: Habit RPG.
3) Introducere n modelarea 3D, cu Blender
Unde un exemplu de model 3D a fost creat n timpul unei
sesiuni, cu ajutorul uneltei Blender.
4) Munca la distan (remote work), unde s-au mprit
idei i experiene despre acest proces. Dintre cei prezeni au fost
unii care lucrau la distan, alii care aveau colegi cu care lucrau
la distan, sau alii care erau manageri peste cei care lucrau la
distan.
Sfaturi:
o
Comunicarea este mbuntit cnd se face i prin
webcam-uri;
o
Comunicarea s fie fcut ct mai des, fie prin email-uri
sau pagini de wiki;
o
Informaia s fie centralizat pe un wiki.
Aplicaii:
o
Skype pentru chat audio;

o
Slack pentru chat scris;
o
VNC pentru mprirea ecranelor;
o
Google Docs.
Dezavantaje:
o
Lucrul de unul singur;
o
Distrageri de acas sau dintr-un mediu care nu e de
birou;
o
Greu de relocat.
Avantaje:
o
Independen la nivelul de timp;
o
Mai mult timp pentru viaa privat;
o
Lipsa distragerilor de la birou;
o
Trecerea napoi la viaa privat se face mai rapid.
5) Pair programming la distan.
S-au prezentat unele unelte pentru mbuntirea acestui
proces
Saros plugin Eclipse, prin care doi utilizatori pot lucra
simultan pe acelai cod. O singur resurs n IDE mprit la
un moment printr-un protocol XMPP, astfel nct utilizatorii
mprtesc text prin acest plugin.
Tmate cross-platform instant sharing pentru terminale;
Screen Hero:
o
Cross platform screen sharing
o
Calitate HD
o
Chat audio
o
Permite mai multe cursoare de mouse pe ecran
6) Codul e muzic.
Unde s-au prezentat exemple de cod care creeaz muzic,
prin setarea frecvenei, amplitudinii, tonalitii i a altor setri
ale sunetului, precum i suprapunerea sunetelor, pentru a se
crea piese muzicale complexe.
Limbajul de programare de baz folosit este SuperCollider.
Acesta are ns librrii i pentru alte limbaje, precum Clojure
(librria Overtone) sau JavaScript (librria Gibber).
7) Monorepos
Cum i distribuie Facebook i Google codul surs ntr-un
singur repository mare.
Folosind un singur repository mare, unde toate sunt conectate, se scurteaz timpul de construire, iar dependinele sunt
mai uor de controlat i administrat.
8) Open salaries
Cum un startup din Berlin experimenteaz avnd toate
salariile cunoscute de ctre toi angajaii.
Cnd persoane noi intr n firm, salariul lor este stabilit prin baza unui grafic bidimensional, unde o ax este
pentru experiena profesional, iar cealalt ax este pentru
www.todaysoftmag.ro | nr. 41/noiembrie 2015

43

programare
SoCraTes 2015 Unconference
responsabilitile acelei persoane. Toi angajaii pot participa
atunci cnd se decide salariul noilor angajai.
La nceput, majoritatea erau pltii mai puin dect ar fi
trebuit s primeasc pe baza graficului.
n prezent, majoritatea sunt pltii mai mult dect ar trebui
s primeasc pe baza graficului.
ntr-un document Excel se gsesc toate salariile care ar trebui s le primeasc oamenii i toate salariile pe care le primesc.
Factori: experiena, rolul n firm, familia, responsabilitatea, distana fa de locuin.
9) Concuren, robustee i Elixir
Elixir este derivat din Erlang
Cantitatea de MHz care poate fi adugat n procesoare nu
mai poate fi extins cu mult, de ctre noi tehnologii, datorit
principiilor fizice. Aadar, paradigmele de programare ar trebui schimbate.
Funcionalitate bun, robustee, VM de categorie uoar,
foarte bun din punct de vedere al concurenei, asincron.
Un ecosistem care permite utilizarea de design patterns
pentru construirea de sisteme robuste.
mbuntiri n Elixir:
o
Sintax mbuntit fa de Erlang, inspirat din
Ruby,
o
Compatibilitate deplin cu Erlang,
o
intete spre productivitate mbuntit.
Procesele n Elixir sunt econome cu resursele sistemelor folosite.
Codul poate fi schimbat n timpul rulrii aplicaiei (hot
code swapping).

Surse:
Poze: https://twitter.com/coderbyheart/
Sesiuni SoCraTes 2015: https://www.socrates-conference.de/wiki/2015/index
Code is music: http://supercollider.github.io/

44

nr. 41/noiembrie 2015 | www.todaysoftmag.ro

workshops
@GrandHotel Italia, Cluj-Napoca
0900-1700

23rd of Nobember

JAVA PERFORMANCE WORKSHOP

LEARNING BY HAVING FUN


PROJECT MANAGEMENT THROUGH
PM GALAXY BOARDGAME

FOR SENIOR JAVA DEVELOPERS

An advanced review of how the JVM really uses memory:


What are references,
What is compressed OOPS,
How are the fields in an object laid out.

FOR TEAM LEADERS & PROJECT MANAGERS


Come to learn and play! Join us on a learning journey, in a workshop about
Project Management. Our guide is the first Romanian Project Management
boardgame.
This workshop is an introduction to project management and offers a clear structuring
of projects: a simple approach, but not simplistic. Its goal is to guide participants through
project management main stages: initiation, planning, executing, monitoring and
controlling, and closing. Traps, challenges and best practices will be experienced with
the help of a boardgame especially designed for this purpose: PM Galaxy.
The game aims to test your project management knowledge and skills on a fun,
challenging route, where the only constant is the struggle for resources. There are five
projects in the game, each coordinated by a player. Projects have their own objectives,
but are interdependent.
The player who completes the project and meets the success criteria listed in the project
description wins the game. The game follows closely a traditional Project Management
approach, suitable for companies developing their own products or services. The players
choose to respond or not to Quizzes, gaining Resources (in exchange for correct
answers) and decide how to deal with Challenges and whether or not helping other
projects.
Resources are shared and as in real life - limited!

Pushing Java 8 Lambdas to their limits and beyond:


How can new features in Java 8 be used to
make writing Low Latency application easier?
How do you tune garbage creation in the use of Lambdas?

Chronicle Engine hands on:


Publish/Subscribe and Key-Value store
It supports building and wiring of objects with a simple configuration
Remote access to those components for Java and C#.
Real time updates to live queries via a streams like API using lambdas.
Write lambdas on the client to be executed on the server atomically or
asynchronously, for any purpose.
Supports clustered applications.
Support for millions of distributed actors per server.

If you want to learn or simply recap your project management


knowledge, join us for a colorful workshop, full of fun, challenges and
AHA! moments related to Project Management best practices.

PETER LAWREY
Higher Frequency Trading

SIMONA BONGHEZ, PHD

He has a popular blog Vanilla Java which gets 120K page views per months, is
3rd on StackOverflow.com for [Java] and 2nd for [concurrency], and is lead
developer of the OpenHFT project which includes support for off heap memory,
thread pinning and low latency persistence and IPC (as low as 100
nano-seconds)

Colors in Projects
Owner of Confucius Consulting, member of the PMI CMAG has over 15 years of
experience as a trainer and consultant in management and project management.
She truly believes that humour, games and metaphors are powerful tools for having
interactive and enjoyable training sessions, thus enforcing the learning process.

Price: 250 euro + TVA

Price: 90 euro + TVA


0900-1700

23rd of Nobember

0900-1700

23rd of Nobember

0900-1700

26th of Nobember

FUNCTIONAL THINKING

JAVA 8, MULTITHREADING AND PROFILING

The most used languages now have functional programming features

Java 8

Multithreading & Currency

FOR MEDIUM & SENIOR DEVELOPERS


Why is that a good thing?
What is functional programming?
How can we take advantage of these features?
How does it relate to reactive programming?

During this workshop we will write and discuss code with a functional style
and see what the advantages / disadvantages are.
The participants can use any of the following languages: Java8, C#, F# ,
Clojure or Scala.

OVIDIU DEAC
Ullink
Ovidiu is a software engineer with a particular inclination towards code quality
and agile development. He worked with imperative languages, C++, Python, Java
and C# for more than 10 years before getting to functional programming. A few
years ago he started the local FP community in Cluj and organized regular
meetups with topics revolving around FP. Currently he works at Ullink,
promoting the functional way of thinking.
Ovidiu also orchestrates regular FP and TDD trainings.

Price: 100 euro + TVA

FOR MEDIUM & SENIOR JAVA DEVELOPERS

How to base line the speed of one thread.


How to identify when using multi-threading makes sense.
What multi-threading model is appropriate for your use case.
How to use thread pools and fork join.

Profiling & Tuning


How to hide problems, how to find problems with performance profiling.
Using JMH for benchmarks.
Writing custom benchmarks, common pitfalls and how to avoid them.

PETER LAWREY
Higher Frequency Trading
He has a popular blog Vanilla Java which gets 120K page views per months, is 3rd
on StackOverflow.com for [Java] and 2nd for [concurrency], and is lead developer of
the OpenHFT project which includes support for off heap memory, thread pinning
and low latency persistence and IPC (as low as 100 nano-seconds)

Price: 250 euro + TVA


WORSKHOP PARTNER:

Partners

Supporters

Organizer

sponsori

powered by

Das könnte Ihnen auch gefallen