Documente Academic
Documente Profesional
Documente Cultură
com
TSM
T O D A Y
S O F T WA R E
MAG A Z I NE
Web Services
6
Realizrile din 2014 i
planurile de viitor ale
Today Software Magazin
Ovidiu Man
8
Evenimente i
startup-uri n 2014
Mircea Vdan
10
15 tendine de Marketing Online
i tehnologie pe care
nu vrei s le ratezi n 2015
Clin Biri
12
ACADEMY+PLUS
Daniela Buscan
15
Arhitectura software (I)
Levente Veres
28
Performana n
echipe
distribuite
Tiberiu Cifor
32
Cinci sfaturi practice pentru
Code Review n Scrum
Alexandru Bolboac
34
Convergena documentaiei
ntr-un proiect software
multimodular
Alexandru Albu
38
Clasificare de Text la Scar Larg
Cristian Ra
40
Internet of Things n universul Java
Dnu Chindri
18
JavaFX i comunicarea prin
RESTful Web Services
44
Ce sistem de distribuire de mesaje
din Azure s folosesc?
Radu Vunvulea
22
Competen sau
fraud?
Cristian erban
24
Diminuarea complexitii
cu TDD i Agile
Radu Ometita
47
Noi tehnologii n pragul Data Protection Day 2015
Claudia Jelea
49
Gogu i jocul
alternativelor
Simona Bonghez, Ph.D.
editorial
Ovidiu Man
ovidiu.matan@todaysoftmag.com
Editor-in-chief
Today Software Magazine
a muli ani !!! Pornim la drum n acest an plini de avnt i dornici s facem fa
noilor provocri. Una dintre acestea este atingerea unor noi obiective pe care i
le-a propus TSM. Ne propunem s lansm cardul de membru TSM i o pagin
online dedicat joburilor. Pentru clienii mobile, vom publica n curnd o aplicaie dedicat telefoanelor Windows Phone. Proiectm i organizarea de evenimente noi precum
o conferin dedicat experilor Java, a crei lansare se va desfura probabil n var.
Mai multe informaii despre unele dintre aceste subiecte vei gsi n primul articol din
acest numr. V mulumim c ai fost alturi de noi i de asemenea mulumim companiilor partenere pentru suportul acordat.
n paginile acestui numr am publicat o serie de articole ce v ndrum spre o mai
bun organizare n cadrul echipei dintre care menionez: Cinci sfaturi practice pentru Code Review n Scrum, Diminuarea complexitii cu TDD i Agile, Convergena
documentaiei ntr-un proiect software multimodular i Performana n echipe distribuite.
Articolul denumit Arhitectura software deschide seria de articole dedicate acestui subiect
complex care este arhitectura software . Universul Java este reprezentat de dou articole:
Things n universul Java i JavaFX i comunicarea prin RESTful Web Services, articol
aflat n continuarea seriei despre JavaFX. Securitatea este un domeniu de care trebuie s
se in cont n dezvoltarea oricrui produs software, aa cum argumenteaz i articolul
Competen sau fraud?. Continum cu o analiz a sistemului de mesaje din Azure,
pentru ca la final s v delectai cu lectura ultimului episod din cea mai longeviv serie
TSM dedicat aventurilor lui Gogu.
Ovidiu Man
Lista autorilor
Redacia Today Software Magazine
Tiberiu Cifor
tiberiu.cifor@3pillarglobal.com
Engineering Manager
@ 3Pillar Global
Alexandru Bolboac
alex.bolboaca@mozaicworks.com
Agile Coach and Trainer, with a
focus on technical practices
@Mozaic Works
Radu Ometita
Alexandru Albu
Software engineer
@ Fortech
Senior Developer
@ ISDC
Cristian Ra
Software Developer
@ Yardi
radu.ometita@fortech.ro
alexandru.albu@isdc.eu
Cristian.Rat@Yardi.Com
simona.bonghez@confucius.ro
Silviu Dumitrescu
silviu.dumitrescu@accesa.eu
Java Line Manager
@ Accesa
Mircea Vdan
mircea.vadan@gmail.com
www.clujstartups.com
Diana Blan
Clin Biri
Java developer
@ Accesa
Digital Director
@ Loopaa
Diana.Balan@accesa.eu
calin.biris@loopaa.ro
Radu Vunvulea
Radu.Vunvulea@iquestgroup.com
Senior Software Engineer
@iQuest
Daniela Buscan
dbuscan@pitechnologies.ro
Account Manager
@ PITECH+CONCEPT
Cristian erban
Levente Veres
Application Security
@ Betfair
Design Lead
@ Endava
Claudia Jelea
Dnu Chindri
Lawyer
@ Jlaw
Java Developer
@ Elektrobit Automotive
Cristian.Serban@betfair.com
claudia.jelea@jlaw.ro
Levente.Veres@endava.com
danut.chindris@elektrobit.com
interviu
014 a nsemnat o perioad de maturizare prin creterea numrului i a calitii articolelor publicate. Numeric, aceasta s-a
reflectat n numrul crescut de accesri online care a ajuns la 7000 sesiuni/lun i de participani la evenimentele de lansare care
a atins o medie de 70-80 participani. Momentul maxim a fost la lansarea din septembrie a revistei cnd s-au nregistrat peste
120 de participani, iar online n perioada IT Days-ului cnd am trecut de 10,000 sesiuni / lun.
dedicat training-urilor.
Sperm c v-am fcut curioi i v
ateptm online la evenimentele de lansare,
s devenii membri TSM i poate chiar s
urmrii viitoarea pagin de joburi.
Ovidiu Man
ovidiu.matan@todaysoftmag.com
Editor-in-chief
Today Software Magazine
antreprenoriat
a fel ca n ultimii doi ani, a venit vremea unui review pentru ultimele 12 luni. n general, mi pare c ecosistemul s-a mai aezat.
Micarea brownian,, a iniiativelor de suport pentru startup-uri pare mai clar i mi permit s cred c de-acum vom intra
ntr-o faz de cretere, n care actorii sunt deja relativ cunoscui i i vor juca rolul n continuare.
1 http://cluj.startuppirates.org/
3 http://startuptransilvania.ro/demo-day/
2 http://cluj.startupweekend.org/
4 http://www.techsylvania.co/
10 http://ro.simplon.co/
8 http://clujstartups.com/#events
11 http://spherikaccelerator.com/
9 http://tandem.mygrasp.org/
12 http://startcelerate.com/
Mircea Vdan
mircea.vadan@gmail.com
www.clujstartups.com
marketing
ou cant connect the dots looking forward; you can only connect them looking backwards. So you have to trust that the dots will
somehow connect in your future. You have to trust in something - your gut, destiny, life, karma, whatever. This approach has never
let me down, and it has made all the difference in my life. - Steve Jobs
Dup cum tim i am observat, Facebook i-a schimbat algoritmul pentru newsfeed i a redus foarte mult reach-ul mesajelor
organice (nepltite) postate de ctre branduri. Aceasta este o veste
Tendine de Marketing Online pentru 2015
proast pentru companii.
Ne ateptm ca n acest an s nceap cutarea unui next
1. Prezena pe dispozitivele mobile este un must have.
big (free) thing, sau cel puin businessurile se vor orienta s
n Romnia avem deja 7,5 milioane de utilizatori activi investeasc mai mult n propriile canale de comunicare: blog i
de smartphone-uri, ceea ce reprezint aproximativ 37,5% din newsletter.
populaia rii. n 2014 antreprenorii au realizat c nu pot ignora
40% din potenialii lor clieni i au nceput s gndeasc mobile. 5. LinkedIn va deveni i mai mult o platform de coninut editorial
n 2015 ne ateptm s vedem noi magazine online care s intre de business
pe pia direct cu website-uri reponsive. De asemenea, magazinele
Ai ncercat noua funcionalitate Create a post? Este super!
online care au deja versiuni de site-uri adaptate dispozitive- Orice utilizator al reelei sociale LinkedIn poate acum s scrie artilor mobile, se vor orienta nspre a-i dezvolta propriile aplicaii cole personale care arat foarte similar cu postrile de pe bloguri.
mobile.
Cnd cineva scrie un articol toate conexiunile sale primesc o notificare despre postare. S-ar putea ca n acest an s vedem ca aceast
2. Mai mult coninut cu brand de calitate
opiune s se implementeze i la paginile de business.
De vreme ce peisajul Social Media devine tot mai aglomerat cu
mesaje comerciale dar cu un coninut de slab calitate, companiile 6. Facebook @ Work
detepte vor investi n diferenierea printr-un coninut de calitate.
Facebook a nceput s lucreze la o versiune a platformei sociale
Acest lucru va reprezenta o mare oportunitate pentru ca brandu- adaptat pentru businessuri, care ar putea concura cu Yammer,
rile care au o poveste de spus s arate c Social Media poate aduce Google Groups, LinkedIn sau alte tool-uri colaborative. Ateptm
clieni noi i poate s-i fidelizeze pe cei existeni.
s ncercm o versiune beta.
10
integrat.
Clin Biri
Digital Director
@ Loopaa
calin.biris@loopaa.ro
11
educaie
ezvoltarea sectorului IT creeaz an de an locuri de munc din ce n ce mai interesante i mai atractive pentru tinerii
pasionai de domeniul informaticii. Dar n contextul valului ascendent de angajri din ultimii ani, companiile au nceput s
caute profile din ce n ce mai complexe. n acelai timp, exist i candidai care au neles c pentru a se diferenia au nevoie
de formule complementare de formare profesional.
Din acest motiv, n ultimii ani, la nivel naional au aprut o
serie de metode alternative de nvare care ofer candidailor
experiena unei specializri specifice ntr-o anumit tehnologie,
fie n domenii conexe, cum ar fi marketing, management, design
sau social media.
n momentul de fa exist un gol n zona de resurse umane
specializate n domeniul IT, att n SUA ct i n Europa, respectiv
Romnia, iar acest gol vine pe de o parte din cifrele de colarizare,
iar pe de alt parte din lipsa unor competene calibrate cu
cerinele pieei.
Dac ne raportm la cifre, n Romnia exist aproximativ
100.000 de angajai n domeniul IT la nivel naional, iar cererea
de ocupare n 2014 a fost de 17.148 oferte de munc pe diverse
stadii de specializare n cele mai mari orae din Romnia - conform ofertelor de munc publicate de site-urile de specialitate.
Pe fondul acestor constatri, nu trebuie s ignorm nici faptul c
cei mai strlucii dintre absolvenii de liceu sau facultate cu profil
tehnic, aleg fie s i continue studiile n afar rii, fie s lucreze
pentru companii renumite din strintate.
Pornind de la aceste premise, anul trecut compania
PITECH+PLUS a lansat o metod revoluionar de nvare i
formare profesional n domeniul IT. ACADEMY+PLUS este o
coal nou, bazat pe o program actualizat cerinelor pieei i,
n acelai timp, utiliznd o metod inovativ de nvare pentru
elevi.
Obiectivele colii sunt s rezolve pe de o parte necesitatea
companiilor de IT de a avea angajai capabili s neleag un
12
Daniela Buscan
dbuscan@pitechnologies.ro
Account Manager
@ PITECH+CONCEPT
13
comuniti
Comuniti IT
nul 2015 ne promite o serie de evenimente de calitate i ncepem cum altcumva: Lansarea numrului 31 TSM. V propunem
pentru aceast lun Mobile Monday n Cluj i evenimentele Taberei de testare din Iai i Timioara. Un eveniment nou ce
va fi inaugurat la nceputul acestui an n Cluj este OWASP Cluj-Napoca crora le dorim succes.
14
Calendar
Ianuarie 20 (Cluj)
Lansarea numrului 31 al Today Software Magazine
www.todaysoftmag.ro
Ianuarie 22 (Timioara)
TdT#28 - Cum a fost la EuroSTAR?
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/129617852/
Ianuarie 22 (Iai)
Protractor, end to end testing for AngularJS
meetup.com/Tabara-de-Testare-Iasi/events/218963478/
Ianuarie 26 (Cluj)
Mobile Monday Cluj #15: Mobile game development
meetup.com/Cluj-Mobile-Developers/events/177047022/
Ianuarie 27 (Bucureti)
Intalnirea Clubului Antreprenorilor din ianuarie
m e e t u p . c o m / E n t r e p r e n e u r s C lu b - C lu bu l - A nt re pre n or i l or /
events/219800978/
Ianuarie 29 (Cluj)
OWASP Cluj-Napoca InfoSec Event 2015
owasp.org/index.php/Cluj#tab=Upcoming_events
Februarie 5 (Cluj)
Drupal Cluj Meetup
meetup.com/Drupal-Cluj/
Februarie 10 (Cluj)
UI/UX Cluj Meetup#12
meetup.com/UXUICluj/events/177042112/
programare
Levente Veres
Levente.Veres@endava.com
Design Lead
@ Endava
15
programare
Arhitectura software (I)
Scopul Arhitecturii software.
16
Ecosistemul de arhitectur IT
17
programare
Silviu Dumitrescu
O aplicaie client poate accesa resurse distribuite aflate la distan. Exist mai multe
modaliti de accesare a acestor resurse, dar poate cea mai portabil este cea a serviciilor web. n acest articol vom aduce n discuie serviciile REST (Representational State
Transfer), servicii autodescriptive, moderne, cu un API Java ce are evoluie spectaculoas n ultimele versiuni ale platformei Java Enterprise.
Vom ncepe prin discutarea unor aspecte arhitecturale, care in de nelegerea componentelor ce fac parte dintr-o aplicaie distribuit, ce folosete serviciile web.
silviu.dumitrescu@accesa.eu
Diana Blan
Diana.Balan@accesa.eu
Java developer
@ Accesa
18
sunt:
Este mult mai extensibil dect arhitectura pe un nivel.
Combin ntr-un singur sistem
logica prezentrii, logica business i
resursa de date.
Poate avea un client pe orice host
att timp ct acesta este conectat printro reea la baza de date.
Are mai puine puncte sensibile,
generatoare de erori, dect sistemul pe
trei nivele.
diverse
Servicii Web
19
programare
JavaFX i comunicarea prin RESTful Web Services
class Hello {
cache-ul, a detecta erorile de transmitere, a negocia cel mai potri- public
private String name=;
vit format de reprezentare i pentru autentificare sau controlul
/**
accesului.
* Default constructor.
*/
Orice interaciune cu o resurs este stateless, mesajul este
public Hello() {
aadar self contained. Avem la dispoziie mai multe tehnici de a
// TODO Auto-generated constructor stub
}
trimite starea precum: rescrierea URI-ului, cookie-uri, cmpuri
hidden. Starea poate fi inclus n mesajul de rspuns pentru a crea
/**
* Retrieves representation of an instance of
stri viitoare ale interaciunii.
* Hello
Clienii serviciului web, care doresc s foloseasc aceste
* @return an instance of String
*/
resurse, acceseaz o anumit reprezentare prin transferarea
@GET
coninutului aplicaiei folosind un mic set de metode remote ce
@Produces(text/plain)
public String sayHello() {
descriu aciunea ce trebuie fcut pe resurs.
// TODO return proper representation object
GET este folosit pentru a obine date sau pentru a efectua
return Hello World+name;
}
o cerere pe o resurs. Datele returnate de la serviciul web sunt
o reprezentare a resursei cerute.
/**
* PUT method for updating or creating an
PUT este utilizat pentru a crea o noua resurs. Serviciul
* instance of Hello
web poate rspunde cu date sau cu un status ce indic succesul
* @param content representation for the resource
* @return an HTTP response with content of the
sau eecul.
* updated or created resource.
POST este utilizat pentru a modifica resursele sau datele
*/
@PUT
existente.
@Consumes(text/plain)
DELETE este folosit pentru a terge o resurs sau date.
public void putText(String content) {
}
name=content;
javax.ws.rs.Consumes;
javax.ws.rs.GET;
javax.ws.rs.PUT;
javax.ws.rs.Path;
javax.ws.rs.Produces;
@Path(/hello)
20
}
private static URI getBaseURI() {
return UriBuilder.fromUri(http://localhost:8080/JerseyFirst/).build();
}
}
21
programare
n urm cu zece ani la universitatea unde eram student s-a organizat o miniconferin de securitate. Pentru a fi mai interesant,
organizatorii au creat i o pagin de nregistrare care urma s fie deschis pentru a accepta nscrieri ncepnd cu ora 12 la o anumit dat. M pasiona domeniul i mi-am dorit s particip. Mi-am dorit s m nscriu printre primii pentru a-mi asigura locul
i mai ales c au promis c dau cte un tricou la primii 20 de participani care se nscriu.
La vremea respectiv eu lucram ca programator angajat full time i deja adunasem ceva ore de lucru n tehnologia folosit pentru
dezvoltarea paginii de nscrieri. Aa c nu mi-a luat mult timp s descopr o vulnerabilitate i s reuesc s o exploatez n timp util. Am
reuit s m nscriu puin mai nainte de ora oficial. n urmtoarea zi m-am prezentat la conferin la intrare, am salutat politicos,
mi-am spus numele, colegul m-a cautat pe list i m-a gsit destul
de uor. Am tras puin cu ochiul: eram primul 11:58. Perfect.
Uimit puin, acesta a zis: Ah tu eti la, cum ai reuit?. La
ntrebarea mea dac primesc un tricou, el a rspuns c nu, dar
c o s primesc ceva mai bun. n timpul conferinei m-a anunat
public i mi-a nmnat drept premiu cartea Writing Secure
Code a lui Michael Howard i David LeBlanc.
Puin dezamgit, m-am ntrebat oare de ce mi d mie cartea
aceasta. El avea nevoie mai mare de carte, el avea nevoie s nvee
s scrie cod mai sigur nu eu.
Dac deplasm aceast ntmplare ntr-un cadru puin mai
critic cum ar fi de exemplu un site pe Internet unde clienii i
pot crea cont i s i depoziteze banii n cont cu scopul de a-i
folosi mai trziu, cartea i tricoul de mai devreme se transform
n alte lucruri mai de valoare. n loc de un tricou, atacatorul i
dorete s obin banii clientilor, i primete n loc de o carte, ani
de nchisoare.
De exemplu, un individ pe nume Alistair Peckover a fost condamnat prima dat la 26 de sptmni cu suspendare, avnd doar
20 de ani n 2009, pentru c a furat 39.000 lire. n 2010 a fost condamnat din nou la 20 de luni cu execuie dup ce i-a cumprat
22
programare
Referine
1 h t t p : / / w w w. c r a w l e y n e w s . c o . u k /
Broadfield-hacker-jailed-46-000-fraud/story17502872-detail/story.html
2 http://www.amazon.co.uk/Writing-SecureCode-Best-Practices/dp/0735617228/
r e f = s r _ 1 _ 1 ? i e = U T F 8 & q i d = 1 4 2 11 5 8 8 4 1
&sr=8-1&keywords=writing+secure+code
Cristian erban
Cristian.Serban@betfair.com
Application Security
@ Betfair
23
programare
management
Diminuarea complexitii cu
TDD i Agile
radu.ometita@fortech.ro
Software engineer
@ Fortech
24
Complex
simplu. Dar felul n care transformi o problem complex ntr-una cu un grad mai
redus de dificultate este diferit de modul
n care transformi o problem complicat
ntr-una simpl. n final este vorba de constrngeri. Constrngerea unui domeniu
complex d natere unui domeniu mai
puin complex, iar constrngerea acestuia
rezult unui domeniu simplu.
Desigur, direcia poate fi i invers
(datorita unui eveniment ce proiecteaz
problema n domeniul haotic, o schimbare n specificaii, direcie sau toate cele
menionate mai sus), caz n care ar trebui
s urmrii cu atenie semnele ce v permit
s ncadrai corect problema n domeniul
su de complexitate i s o abordai ntr-un
mod potrivit.
Se va prezenta n continuare o scurt
descriere a domeniilor de complexitate,
conform definiiei Cynefin Framework.
Simplu
Complicated/Sofisticat
25
programare
Diminuarea complexitii cu TDD i Agile
satisfctoare.
Pentru a obine rezultatele dorite trebuie s:
ncurajezi comunicarea n echip.
n acest fel se va putea folosi experiena
colectiv n rezolvarea problemelor.
Creezi bariere. Trebuie stabilit un sistem de constrngeri n interiorul cruia
sistemul poate evolua. Cunoaterea acestor constrngeri clarific ceea ce poate fi
modificat i schimbat, ajutnd n acelai
timp la diminuarea frustrrii generate de
ritmul alert al schimbrilor.
Refoloseti soluii. Se ncearc gsirea unor soluii bune, comune mai
multor probleme i refolosirea lor n
interiorul sistemului. Identificarea acestor soluii ofer o structur mai clar
i un set nou de constrngeri pentru
problem, ajutnd la mutarea problemei dintr-un context complex ntr-unul
complicat.
Haotic
Young spirit
Mature organization
A shared vision
Join our journey!
www.fortech.ro
26
Concluzii
27
management
programare
Tiberiu Cifor
tiberiu.cifor@3pillarglobal.com
Engineering Manager
@ 3Pillar Global
tim cu toii ca n zilele noastre una dintre cele mai folosite metode sau moduri de
lucru pentru a gestiona echipe de proiect este Agile. Agile se poate implementa
cu succes folosind Scrum, Kanban sau altele. Toat lumea face Agile, toat lumea
cunoate principiile Agile i toat lumea l implementeaz. Prin natura jobului am trecut prin multe proiecte, de la cele mai mici pn la cele mai mari, de la cele mai uoare
pn la unele dintre cele mai grele proiecte. De-a lungul timpului am citit foarte multe
despre Scrum, despre cum se implementeaz i despre principiile lui, best practices, etc.
. n toate aceste situaii am gsit foarte puine informaii despre cum se poate optimiza
Scrum lucrnd n echipe distribuite, localizate n diferite zone de pe glob, lucrnd la
acelai proiect i ncercnd s aplice aceste principii ce fac din Scrum una dintre cele
mai populare metodologii.
Dac vorbim de succes, fa de anii
precedeni se observ un trend ascendent
asupra ratei de succes a proiectelor ce
folosesc Agile, dar nu numai n cazul proiectelor ce folosesc Agile se observa acest
trend. Mai jos, avei o statistica a ultimilor
doi ani:
Legenda
28
Sursa: http://www.planittesting.co.nz/
resource/industry-stats-project-outcomesbased-on-primary-methodologies-2013/
Product
Strategy
Product
Development
Product
Support
www.3pillarglobal.com
29
management
Performana n echipe distribuite
foarte mari ca lucrurile s mearg foarte bine n cadrul echipei i comunicarea direct: ai o problem de rezolvat i tii sigur c te
implicit vei avea un client fericit.
poate ajuta cineva de la client, sau cineva din alt locaie, atunci
apeleaz direct la el. Mai mult, ncurajai folosirea comunicrii
Comunicare eficient
directe dac e posibil, adic telefon, skype sau orice alt mijloc
Muli dintre voi poate v ntrebai cteodat cum putem de apelare direct. E-mail-ul s vina ca ultima soluie. Vei fi
s comunicm mai eficient n cadrul echipei i nu numai. surprini de rezultatele ce pot aprea vizavi de comunicare foloComunicarea joac unul dintre cele mai importante roluri ntr-o sind aceast abordare.
echip distribuit. Dac ntr-o echip care se afl localizat n
Active listening, information radiators i negociere- toate
acelai loc, comunicarea vine de la sine, aici n cadrul unei echipe aceste lucruri duc la o comunicare eficient. Dac nelegem puin
distribuite nu mai e aa uor i trebuie s fim ateni cum putem aceste concepte vom putea s gestionm mai uor situaii oarerupe acele bariere care se vor ridica vrnd-nevrnd de-a lungul cum mai tensionate, sau cel puin vom reui s aducem mai mult
dezvoltrii unui produs.
vizibilitate asupra unui status cerut de un manager sau de client.
Dar dac membrii echipei ncep s comunice exagerat de
Information radiators reprezint n mod normal orice ecran
mult, folosind orice oportunitate pentru a comunica orice legat sau tabel care e vizibil tot timpul acolo unde lucreaz echipa. n
de proiect, nu mai suntem eficieni. O comunicare eficient mod normal, dac echipa ar fi ntr-un singur loc un information
implic o comunicare i o abordare ct mai direct prin care radiator poate fi un board din birou vizibil pentru toat lumea.
ncercm s rezolvm orice situaie aprut ntr-un timp ct mai Cum arat acest board cnd lucrm n echipe distribuite? Acest
scurt. Aceasta este o comunicare eficient.
board se transpune n mediul online i este dat de mai multe tipuri
Sunt sigur c v-ai ntlnit cu situaii n care ai simit pe pie- de rapoarte care sunt generate automat de acel instrument fololea voastr sau ai auzit de la alii, cum c pierdem prea mult sit de echip pentru a msura progresul, de exemplu JIRA. n
timpul n conferine i meeting-uri cu clientul. n momentul n acest caz, information radiators pot fi: burn down chart, burn up
care auzii aa ceva, s tii c cel mai probabil avei o problem chart, cumulative flow diagram, velocity chart. Aceste tipuri de
de comunicare. De ce s nu selectam 1-2 membri din echip care grafice i ofer echipei, indiferent unde se afl ea, posibilitatea de
s participe n asemenea edine prin rotaie? Am eficientizat un a vedea progresul unui sprint, de exemplu. Mai mult, tii foarte
pic? Eu zic c da. Sau de ce s nu avem n fiecare sprint, un om din bine ntrebrile de genul cum stm cu sprintul asta? sau sunechip responsabil cu un asemenea task, acela de a lmuri unele tem on track cu sprintul?. Rspunsul la aceste ntrebri l poate
din requirement-uri. Situaiile pot continua. Ideea este c putem obine oricine, dac se va uita la unul din aceste rapoarte, care
fi eficieni doar prin mici ajustri.
sunt sugestiv reprezentate grafic.
Mai mult, naintea unui release major sau a unui deadline
important ncercai s adunai toat echipa ntr-un singur loc. Ce
poate fi mai eficient dect s ai toat echipa n acelai loc s poat
comunica fa n fa? De multe ori e destul de greu s facem
acest lucru, mai ales cnd vorbim de echipe mari. tim foarte bine
c mai sunt i anumite constrngeri de bugete. Acolo unde este
posibil v recomand din toat inima s ncercai s adunai echipa
ntr-un singur loc.
Dac nu este posibil s adunm ntreaga echip ntr-o singur locaie, ncercai n toate conferinele ce le avei online cu
restul membrilor s v pornii camerele web. Uneori ajut foarte
mult s-i vezi interlocutorul, s observi mimica i expresia fetei
persoanei cu care vorbeti. Prin acest lucru discuiile devin mai
amicale, mai deschise i cu siguran o s observai ca devin i
Exemplu de Burn down chart:
mai eficiente.
Vreau s mai fac o sugestie: ncurajai toat lumea din echip
s abordeze direct o persoan care o poate ajuta. Facilitai
Sursa: http://www.agilemodeling.com/essays/communication.htm
30
Menionam mai sus de Active listening. n echipele distribuite acest concept joac un rol consistent. n mod normal cnd
ascultm pe cineva o facem n mod pasiv. n metodologia Agile,
programare
acest mod activ de asculta (Active listening) se refer la faptul
c toat lumea este implicat ntr-o discuie n mod activ, adic
toat lumea trebuie s furnizeze ntrebri i rspunsuri respectnd nite reguli.
Vorbim aici de trei nivele cnd vine vorba de Active listening:
Internal Listening - participanii sunt doar ateni, i de obicei se ntreab dac ce se discut i afecteaz.
Focused Listening - participanii arat c sunt interesai de
discuie i ncearc s se pun n postura celui care vorbete.
Global Listening - participanii arat implicare, pun ntrebri, critic unele raionamente, sunt respectuoi i arat toate
aceste lucruri de obicei prin gesturi i emoii.
31
programare
alex.bolboaca@mozaicworks.com
Agile Coach and Trainer, with a
focus on technical practices
@Mozaic Works
32
programare
virtuos:
Scrie coding guidelines -> F code
rev iew -> Analizeaz gre elile ->
mbuntete coding guidelines.
Persoanele care erau lideri tehnici naintea tranziiei la Scrum tind s devin
gatekeeper-i. O greeal tipic este c vor
s fac toate revizuirile de cod n Scrum
pentru a asigura o calitate nalt.
Dei scopul lor este bun, punerea n
aplicare nu ajut echipa. Un lider tehnic
care insist s valideze singur tot codul
va deveni un bottleneck foarte curnd.
Dezvoltatorii din echip vor fi slab
motivai s i asume responsabilitatea
pentru codul pe care l scriu dac tiu c
cineva l pzete. De asemenea, liderul
tehnic risc s se separe de echip pentru
c el este evident deasupra celorlali colegi.
ncercai s ntoarcei lucrurile pe
dos i vei obine o echip funcional,
productiv care nva mpreun. Un fost
lider tehnic ndrum i ajut toat lumea s
creasc prinpair programming, ajutndu-i
cu sarcini dificile sau oferind minisesiuni
de formare. Dezvoltatorii i asum responsabilitatea pentru codul lor deoarece
i revizuiesc reciproc codul. Toat lumea
are roluri egale, dar toat lumea contribuie
n echip cu ce are mai bun de oferit: programatorii juniori cu abilitile i timpul
lor, dezvoltatorii seniori cu soluii inteligente i liderii tehnici cu creterea fiecrui
membru din echip.
ncrederea n colegii ti va duce echipa
la un mod de lucru mult mai eficient.
33
programare
programare
Context
Alexandru Albu
alexandru.albu@isdc.eu
Senior Developer
@ ISDC
Ce vrem s obinem?
5 http://en.wikipedia.org/wiki/README
6 h t t p : / / e n . w i k i p e d i a . o r g / w i k i /
Technical_documentation
34
programare
index.html (pagina noastr)
[modules]
[module1]
index.html
Readme.html
ReleaseNotes.html
[module2]
index.html
Readme.html
ReleseNotes.html
Abordare
35
programare
Convergena documentaiei ntr-un proiect software multimodular
<dependencies>
...
</dependencies>
<build>
<!- pregtete fiierele Markdown pentru Maven
Site-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>pre-markdown</id>
<phase>pre-site</phase>
<configuration>
<tasks>
<delete dir=${project.basedir}/
src/site/markdown />
<mkdir dir=${project.basedir}/
src/site/markdown />
<copy todir=${project.basedir}/
src/site/markdown>
<fileset dir=${project.basedir}/
src/site/resources includes=**/*.md />
</copy>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
<execution>
<id>post-markdown</id>
<phase>site</phase>
<configuration>
<tasks>
<delete dir=${project.basedir}/
src/site/markdown />
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
<!generatorul de site e legat de
sectiunea de raportare -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.3</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.doxia</groupId>
<artifactId>doxia-module-markdown
</artifactId>
<version>1.5</version>
</dependency>
</dependencies>
</plugin>
</build>
<reporting>
<outputDirectory>${project.build.directory}/site</outputDirectory>
<!configurare pentru alte lucruri legate de
36
maven-javadoc-plugin, maven-jxr-
Urmtoarea faz n atingerea scopului nostru este s mpachetm website-ul generat ntr-un fiier jar care s fie ncrcat n
Maven Repository.
Plugin-ulsitetie cum s creeze un fiier jar pe baza fiierelor
din directorul target/site. Tot ce trebuie s facem este s apelm mvn site:jar, dar cu o singur remarc: fazapre-siteeste
executat doar dac apelm mvn site, fr scopul :jar. Pentru a
fi siguri c fiierele Markdown sunt luate n considerare chiar i
cnd directorul targeteste gol sau inexistent, ar trebui s apelm mvn site site:jar.
Rezultatul este un fiier jar nou,target/module1-site.jar. Ca s
putem considera acest pas complet, mai trebuie s ncrcm acest
fiier jar n Maven Repository. Acest lucru este posibil cu ajutorul
Maven Deploy Plugin9.
Proiectul resurselor
Scopul acestui proiect este agregarea tuturor resurselor disponibile ntr-un singur website. Pe lng documentaiile modulelor,
el poate ine i documente generale, cum ar fi primii pai ai programatorilor care intr pe proiect sau documentaii tehnice de
ansamblu. Pentru acestea, maven-site-pluginpoate fi aplicat
folosind aceeai manier ca i n cazul modulelor.
Pentru a descrca website-urile generate folosim Maven
Dependency Plugin10. Acesta ne ajut s obinem artifactele i
fiierele *-site.jarncrcate la pasul anterior. Scopul nostru aici
este s dezarhivm toate aceste fiiere n interiorul directorului
target/site/modules, iar astfel putem menine structura dorit
pentru website.
Pentru a obine arhivele *-sitepentru module, toate trebuie
declarate ca dependene ale proiectului resurselor n fiierul pom.
xml:
<project .. >
<dependencies>
<!-- module 1 -->
<!-- module 2 -->
<!-...
-->
<dependencies>
<build>
<plugins>
9 http://maven.apache.org/plugins/maven-deploy-plugin/
10 http://maven.apache.org/plugins/maven-dependency-plugin/
index.html>About</a>
<a href=modules/module2-1.5-site-jar/
Readme.html>Readme</a>
<a href=modules/module2-1.5-site-jar/
ReleaseNotes.html>Release Notes</a>
</div>
...
</source>
</configuration>
</execution>
</executions>
</plugin>
Concluzii
37
programare
programare
n ultimii ani numeroase probleme precum detectarea fraudelor, detectarea mesajelor nedorite (spam), clasificarea imaginilor, determinarea subiectului unui articol
.a. au fost rezolvate cu ajutorul inteligenei artificiale. Odat cu creterea numrului
de utilizatori de internet, dimensiunea datelor care trebuie procesate devine tot mai
mare, astfel stocarea i procesarea acestora pe un singur server este foarte dificil, soluia
fiind procesarea lor ntr-un sistem distribuit.
Cristian Ra
Cristian.Rat@Yardi.Com
Software Developer
@ Yardi
38
Transformarea textului n vectori de atribute se face cu ajutorul comenzii seq2sparse care creeaz un fiier SequenceFile de
tip <Text,VectorWritable>:
mahout seq2sparse -i sequencefile -o vectors -wt tfidf
Objective C
jobs-cluj@yardi.com
Yardi Romania
39
programare
programare
xperii din domeniul IT au numit 2014 anul Internet of Things, acesta fiind unul dintre cele mai fierbini subiecte ale anului
care tocmai s-a ncheiat. Titlul atribuit nu este deloc surprinztor dac lum n considerare faptul c site-uri importante precum dzone.com, jaxenter.com sau oracle.com au publicat cteva articole pe sptmn despre tehnologiile din sfera Internet of
Things, iar blogger-ii nu au scpat nicio ocazie s posteze despre ultimele lor proiecte IoT. Nici editurile nu au fost mai prejos, n 2014
fiind publicate zeci de titluri, multe altele ateptnd s vad lumina tiparului anul acesta.
Toate acestea s-au ntmplat n contextul lansrii unei multitudini de noi
gadgeturi sau dispozitive inteligente, dar i
a numeroase platforme software sau implementri ale unor protocoale mai mult sau
mai puin cunoscute. Muli mptimii
ai tehnologiei au auzit de produse populare, lansate n ultimii ani, precum Philips
Hue sau Nest, ns ncepnd cu 2014 e
nevoie de un efort activ s putem ine
pasul cu frecvena apariiei de noi dispozitive, cum ar fi Sen.se Mother, Fitbit
Charge sau SkyBell. IoT influeneaz din
ce n ce mai mult domeniile din viaa de
zi cu zi, precum sntatea cu dispozitive
care monitorizeaz pacienii, ngrijire la
domiciliu, prin gadgeturi pentru un stil de
via sntos, transporturi, cu autovehicule conectate, automatizarea locuinelor,
industrie etc. .
nainte de a discuta despre modalitile
prin care comunitatea Java i poate face
auzit vocea n sfera Internet of Things,
suntem datori s descriem pe scurt ce
nseamn mai exact IoT.
Definiii
40
programare
50 de miliarde de lucruri[6].
41
testare
programare
Internet of Things n universul Java
securitate. Acum c am remarcat seriozitatea acestei chestiuni, putem veni cu o veste
bun pentru dezvoltatorii IoT din universul Java, ntruct aceast platform asigur
securitatea datelor pe ntreaga verticalitate
a sistemului implementat. Securitatea este
o caracteristic nglobat n arhitectura
platformei, fiind dezvoltat i actualizat
constant, cu fiecare nou versiune. Vom
reveni cu detalii referitoare la securitatea oferit de Java ME 8 ntr-unul dintre
paragrafele urmtoare, cnd vom discuta
cteva caracteristici tehnice ale platformei.
Java ME Embedded 8
42
modificarea API-ului.
Alturi de aceste blocuri constructive,
Java ME Embedded 8 vine cu o multitudine de API-uri, precum cel pentru servicii
web sau localizare.
Avnd toate aceste componente
Java ME Embedded la dispoziie, este la
ndemna noastr, a dezvoltatorilor, s
construim aplicaii embedded, contribuind
la spaiul Internet of Things.
n ajutorul nostru vine Java ME
SDK 8, un toolkit complet creat pentru a
ntmpina orice nevoie avem n procesul
crerii i ntreinerii unei aplicaii. Acest
SDK ofer inclusiv un mediu de emulare,
avnd posibilitatea s ne testm aplicaiile
chiar dac dispozitivele pe care vor fi
distribuite nu sunt disponibile n timpul dezvoltrii. De asemenea, putem face
debugging att n modul de emulare, ct
i atunci cnd aplicaia ruleaz pe dispozitiv. Pentru a ntregi acest set de unelte,
Oracle ofer plugin-uri pentru Netbeans
IDE i Eclipse IDE, care ncorporeaz
toate funcionalitile SDK-ului. Vom discuta mai multe detalii i vom exemplifica
modul de utilizare al Java ME SDK 8 ntrunul dintre articolele viitoare.
Java ME Embedded Client este o
implementare CDC (Connected Device
Configuration) care, n principiu, este
configuraia destinat dispozitivelor
mobile cu ceva mai multe resurse, cum
ar fi smartphone-urile. Pentru Java ME
Embedded Client, aceast configuraie a
fost restrns i optimizat, pentru a se
potrivi sistemelor embedded de categorie
joas nspre medie. Dei amprenta acestei configuraii este redus, ofer mare
parte din limbajul Java. Astfel, Java ME
Embedded Client este destinat obiectelor inteligente cu mai puin de 10 MB de
memorie i fr interfa grafic.
Concluzii
Resurse
[1] CASAGRAS, RFID and the Inclusive Model for the Internet of Things
[2] Stephen Haller, Internet of Things: An Integral Part of the Future Internet,
SAP Research, 2009
[3] The Internet of Things: Manage the Complexity, Seize the Opportunity,
Oracle Corporation, 2014
[4] IDC Digital Universe Study, sponsored by EMC, December 2012
[5] Dzone Research, 2014 Guide to Internet of Things
[6] http://share.cisco.com/internet-of-things.html
[7] Benjamin Evans, Martijn Verburg, The Well-Grounded Java Developer,
Manning, 2013
[8] Java Development for the Internet of Things, Oracle Java Magazine,
November/December 2014 Issue
[9] http://www.oracle.com/technetwork/articles/java/ma14-java-me-embedded-2177659.html
Java n lupta care se d ntre soluiile IoT. Mai mult dect att, IoT Picture: http://blog.surveyanalytics.com/2014/09/top-5-infographics-ofcorporaia i-a exprimat dorina de a ctiga aceast btlie, ast- week-internet-of.html
fel nct Java s devin alegerea majoritii specialitilor implicai
n astfel de proiecte. Totui, rspunsul a venit rapid din partea
oponenilor, existnd multe voci care i-au exprimat scepticismul cu privire la potrivirea platformei n sfera IoT. Exist multe
argumente, att pro, ct i contra acestei idei, ns un lucru e cert:
Dnu Chindri
Java a strbtut un drum lung pentru a ajunge la gradul actual
danut.chindris@elektrobit.com
de maturitate, diversitate i aplicabilitate. Eforturile din ultimii
ani au dat natere unei noi familii de produse, care se doveJava Developer
@ Elektrobit Automotive
desc promitoare i, mai mult, ncep s-i dovedeasc valoarea
n cadrul proiectelor reale IoT. Vom vedea clar acest lucru n
43
programare
Ce sistem de distribuire de
mesaje din Azure s folosesc?
n teorie, trimiterea unui mesaj prin cablu nspre un alt dispozitiv este o sarcin simpl. Dar trimiterea unui mesaj ntr-un mod sigur i de ncredere poate fi o sarcin
dificil. n epoca IoT, n care numrul dispozitivelor conectate la internet crete
dramatic n fiecare zi, noi trebuie s gsim diferite mecanisme de comunicare.
Radu Vunvulea
Radu.Vunvulea@iquestgroup.com
Senior Software Engineer
@iQuest
44
45
programare
Ce sistem de distribuire de mesaje din Azure s folosesc?
Capacitile sistemului Event Hub pot
scala destul de interesant, prin adugarea de TU multipli (Throughput Units).
Fiecare TU ne permite 1 MB/s pentru
intrare i 2 MB/s pentru ieire. Retenia
unui mesaj este de o zi, fiind capabil s le
depoziteze pn la 7 zile.
Bineneles c aceasta vine cu anumite
costuri. Caracteristici precum irul scrisorilor moarte, suport pentru tranzacii
sau opiuni TTL nu pot fi gsite pe Azure
Event Hub.
Aceast soluie este perfect pentru
volumuri mari de procesare de mesaje,
cum ar fi telemetria sau n cazurile de utilizare IoT.
46
Concluzie
legal
e vremuri, Arthur C. Clarke, autorul celebrului roman science fiction 2001 Odiseea Spaial, afirma:
Any sufficiently advanced technology is indistinguishable from magic .
3 http : / / w w w. c o e . i nt / t / d g h l / s t an d ard s e tt i ng /
dataprotection/Data_protection_day_en.asp
47
legal
Noi tehnologii - n pragul Data Protection Day 2015
soft-urilor de analytics, a instrumentelor
de online tracking i de geo-localizare pot
prezenta o ameninare major la adresa
datelor clienilor i ale utilizatorilor
din mediul online i, implicit, la adresa
conceptului de data privacy.
De cele mai multe ori, perspectiva
industriei de analytics poate fi c
utilizatorul / clientul este cel care decide
cum folosete tool-urile ce i sunt puse la
dispoziie i la ce date vrea s ofere acces.
ns exist anumite reguli i recomandri
care trebuie luate n considerare, pentru
a se ncerca prevenirea riscului de abuz
(de exemplu, prin informarea corect a
utilizatorilor despre operaiunile n cadrul
crora le pot fi colectate datele i le poate
fi urmrit activitatea online, astfel nct
s poat lua o decizie informat dac
accept sau nu).
48
Iar la final,
jun/02/google-driverless-cars-safety-climate-privacy
Claudia Jelea
claudia.jelea@jlaw.ro
Lawyer
@ Jlaw
management
simona.bonghez@confucius.ro
Speaker, trainer and consultant
in project management,
Owner of Colors in Projects
- No, n sfrit... rsufl Miu uurat vznd numele i mai ales faa lui Gogu pe ecranul
smartphone-ului. N-apuc ns s zic ceva c uvoiul vorbelor lui Gogu se dezlnui prin
micul device de parc se rupsese zgazul1:
- Da ce s-a ntmplat, domle, de suni ca nebunu?! Ori crezi c sunt chior i nu vd c-ai
sunat de prima dat? Cine-o murit, ce-o explodat, c nu mi-e dat i mie s am o zi de linite!
O zi, frate, att mi-am permis i eu s lipsesc. Motivat. O zi! Iar tu suni de cinci ori ntr-o or.
Cinci! Cinci mii de fulgere i tunete abate-s-ar asupra telefonului tu de fiecare dat cnd te
mai ntinzi dup el. Ori eti sinuciga i vrei s-i rezolv eu problema plecrii din snul omenirii, ceea ce m-ar face extrem de fericit n acest moment...
Probabil c i se terminase aerul, c uvoiul se ntrerupse i se auzi cum Gogu i ajusteaz
respiraia. Te-ai fi ateptat ca Miu s se repead asupra ocaziei i s ia cuvntul, dar se pare c
el prevzuse o asemenea reacie, iar acum atepta ca viitura s se domoleasc. i ntr-adevr,
odat plmnii realimentai, Gogu mai pierdu din avntul iniial. Adaug doar:
- Deci?
Zmbetul se li pe faa lui Miu: scpase mult mai ieftin dect i nchipuise. Fr s se
grbeasc deloc, i povesti lui Gogu problema cu care se confrunta i din cauza creia insistase
s-l gseasc, chiar n ziua lui liber. Avu ns grij s nu mai aduc vorba despre acest aspect,
nu era momentul s provoace iar potopul.
- Las-m s vd dac am neles, ncerc Gogu s sintetizeze informaia. Te-a pus efu
s gseti un manager de proiect pentru implementarea cerut de client. Iar tu ai insistat s i
dai rspunsul pe loc, hmm, ceea ce nu e deloc genul de atitudine pe care o adopi tu n mod
normal; iar el n-a fost de acord cu propunerea ta. Iar acum, runda a doua: vrei s mergi s-l
propui pe Tibi, dar nu mai vrei s-i asumi nici un risc i dai ca disperatu telefoane, s-i iau
eu problema asta din crc i s-mi asum eu responsabilitatea n cazul unui posibil, chiar
probabil eec. Mi da ce biat detept te-ai fcut tu peste noapte!
Urm realimentarea plmnilor. Faa spit a lui Miu arta c era pregtit pentru tot
ce era mai ru. Dar ca i data trecut, la captul cellalt al firului lucrurile se linitir. Pentru
cine l cunotea pe Gogu era evident c acesta intrase n modul de cutare soluii. sta era
un alt lucru care i plcea lui Miu la Gogu: invariabil ajungea s se gndeasc la rezolvri.
Era suficient s i ari problema, aa cum i ari cinelui bul. Numai c Gogu nu d din
coad, gndi Miu i ddu la o parte din minte imaginea unui Gogu n patru labe, fericit s
aib ocazia de-a alerga dup b.
- Oare i veni vreo idee, Gogule? ndrzni Miu s sparg tcerea.
- Oare, oare!... m gndeam la Cristina. Este suficient de matur, a dovedit-o n proiectul cu
1
49
management
Gogu i jocul alternativelor
englezii, are experiena lucrului n echip virtual i i i cunoate
deja pe muli dintre cei cu care va trebui s colaboreze. N-o s-i
fie uor cu clientul, dar asta e, dac era uor, o putea face oricine.
Merit o ans.
Miu tcu.
- Ei, zi ceva, insist Gogu. Pn i la viteza ta de reacie,
informaia tot trebuia s-i ajung deja la creier. Pmntu ctre
Miu: Alo! Sau crezi c nu e pregtit nc?
Miu chiar era ncurcat:
- Da io am zis de Tibi... Tibi i mult mai experimentat.
- Pi da, mi mechere, da dac te duci iar cu o singur
opiune la efu, iar i dai de ales ntre a face ceva i alternativa s nu faci. i dac rspunsul e cu nu, iar te dai de ceasul
morii. Trebuie s i dai dou variante viabile lui efu, el va cumpni propunerile i va alege cea mai bun dintre ele. Nu mai riti
astfel s pleci de la el fr s rezolvi problema. Mintea uman aa
funcioneaz: compar alternative, opiuni; dac i dai lui efu
aceast posibilitate, mintea lui va exploata oportunitatea de a
compara i a alege cea mai bun dintre alternativele prezentate.
Pricepi? Tibi sau Cristina. Tibi mai experimentat, dar cu un proiect dificil deja pe cap, bla-bla-bla, versus Cristina, fr prea mult
experien, dar dornic s nvee, s demonstreze, s se afirme.
Bla-bla-bla, mai adaugi tu.
- Ce adaug? Bla-bla? l lu Miu peste picior.
- Hai c m enervezi. Neles?
- Am neles, Gogule, da dac cumva chestia asta nu ine? C
efu i mai nedus la biseric... Te sun oricum dup ce vorbesc
cu el...
- Nu m mai suna! Gogu silabisi apsat ultimele cuvinte. Cred
c nici nu voi mai avea semnal, deja nu te mai aud, Miule, alo,
alo, ies din zona cu semnal i revin mine diminea. Pa.
Gogu ntrerupse convorbirea, zmbi n sinea lui i i relu
tacticos meteritul la biciclet.
- Tat...
- Ah, nu! Ce-avei azi cu mine?! Tu ce mai vrei? se ntoarse
disperat Gogu ctre fiul lui. Nu mi-e dat azi s m bucur de ziua
frumoas, de biciclet, de meterit, de nimic. Zi, mi, ce mai e?
Numai c fi-su i tia rolul de morocnos de serviciu i nu i
lu n serios bombnitul teatral. Continu fr a fi descurajat de
atitudinea fals neprietenoas:
- A vrea s merg la petrecerea de ziua lui Andu. Ce zici, vii s
m iei pe la 11-12? Sau, ca s nu te mai deranjez, mai bine dorm
la el. Ne mai jucm Assassins Creed, mai povestim...
- Poftim? Cum s dormi la Andu, ce tu n-ai cas? Asasini deia te poi juca cu el i de-acas. Mai bine ai juca Fifa2014.
50
sponsori
powered by