Professional Documents
Culture Documents
com
TSM
T O D A Y
S O F T WA R E
MAG A Z I NE
6
Ecosistemul IT Clujean din
perspectiva startup-urilor
Ovidiu Man
10
RICAP: drumul inovaiei de la
laborator ctre piee globale
Silvia Ursu
11
ZenQ
Mihai Costea
12
Despre relevana
practicii studeneti
Andrei Kelemen
14
Drive Your Community
for Better, alturi de tineri
antreprenori clujeni
24
Du-te (GO) i
gsete instrumentul
Marius Ciotlos
26
Scrum cu
Programare Extrem
Alina Chereches
29
Principii de design Agile
Dumitria Munteanu
34
iOS 7
blur
Mihai Fischer
35
Integrarea datelor
ntre sisteme cu
Talend Open Studio
Paula Beudean
Dnu Chindri
17
IT-ul romnesc quo vadis
37
AOP i LinFu
Ovidiu Simionica
Radu Vunvulea
19
Java 8, nouti i mbuntiri
Silviu Dumitrescu
21
Suportul JSON n PostgreSQL
Raul Rene Lepsa
40
Securizarea codului Open source (II)
Raghudeep Kannavara
43
Gogu i Btrnu lui Miu
Florin Asavoaie
editorial
Ovidiu Man
ovidiu.matan@todaysoftmag.com
Editor-in-chief
Today Software Magazine
ltima noutate local din Cluj este achiziionarea LiveRail de ctre Facebook.
Toate ziarele au publicat aceast informaie i sunt convins c deja muli dintre
cititorii revistei tiu detaliile despre aceast tranzacie. La ora apariiei acestei
tiri ncheiasem deja articolul despre ecosistemul de IT Clujean din perspectiva startupurilor pe care l-am ncheiat ntr-o not de optimism reinut. Principalul motiv era lipsa
unui succes real, ce ar fi putut fi dat ca un exemplu. Acum ns, descoperind LiveRail ca
o companie a crei valoare a fost confirmat prin achiziia de ctre Facebook, lucrurile
stau mult mai bine, cel puin pe hrtie.
Rmnem tot n zona promovrii IT-ului romnesc i mi face plcere s v spun
n premier despre o a doua ediie a IT Days, www.itdays.ro, 3-4 decembrie 2014. Un
eveniment organizat de ctre Today Software Magazine i care pune pe scen cei mai buni
specialiti locali din zona IT-ului. Vom avea dou seciuni dedicate prezentrilor tehnice,
una dedicat trendurilor i una pentru startup-uri i proiecte universitare. Primii invitai
care au acceptat s ni se alture sunt: Bogdan Iordache - organizator How To Web i cofondator TechHub Bucharest, Josef Dunne - co-fondator Babelverse i Silviu Dumitrescu
- specialist Java i Line Manager Accesa. Lista este doar la nceput i vom reveni cu detalii.
Deoarece este vacan, am pregtit pentru cititorii notri un concurs alturi de Honda
Cluj. Este vorba de posibilitatea de a ctiga pe durata unui week-end o main pentru o
drumeie plus un plin de benzin. Extragerea ctigtorului va avea loc la evenimentul
de lansare a numrului 25 TSM.
n acest numr vei gsi o serie de articole despre startup-uri. Ecosistemul IT clujean
din perspectiva startup-urilor v prezint elementele principale implicate n suportul ideilor inovative precum i o list a celor mai promitoare startup-uri. ZenQ, un nou startup
v propune o nou modalitate de a mulumi prietenilor. Programul RICAP invit startupurile la un program de coaching, iar Fundaia Danis prezint realizrile programului de
educaie financiar pentru tinerii antreprenori Drive your community for better. Studenii
sunt n prim plan, iar Cluj IT Cluster propune o structurare a practicii universitare n
Despre relevana practicii studeneti.
Trecem n revist articolele tehnice din acest numr: Java 8, nouti i mbuntiri
prezint o parte din noile schimbri din Java 8 care ne vor schimba modul n care scriem
cod Java. Suportul JSON n Postgress descrie abordarea inedit adugat n ultima versiune de Postgress. Principii de design Agile v supune ateniei o serie de design pattern-uri
care s se poat adapta arhitectura claselor la principiile Agile.
V dorim o lectur plcut !!!
Ovidiu Man
Lista autorilor
Silviu Dumitrescu
silviu.dumitrescu@accesa.eu
Java Line Manager
@ Accesa
Radu Vunvulea
Marius Ciotlos
Delivery Manager
@ Betfair
Alina Chereches
Andrei Kelemen
Director executiv
@ IT Cluster
Dnu Chindri
Mihai Fischer
Java Developer
@ Electrobit Automotive
iOS developer
@ Dens.io
Mihai Costea
mihai.costea@gmail.com
iOS Developer
@ Zenq
Radu.Vunvulea@iquestgroup.com
marius.ciotlos@betfair.com
alina.chereche@yardi.com
danut.chindris@elektrobit.com
andrei.kelemen@clujit.ro
mihai.fischer@gmail.com
simona.bonghez@confucius.ro
Paula Beudean
paula.beudean@fundatiadanis.ro
Coordonator Proiecte
@ Fundaia Danis
Ovidiu Simionica
ovidiu.simionica@fortech.ro
Team Lead
@ Fortech
Raghudeep Kannavara
Silvia Ursu
Communications Coordinator
@RICAP
raghudeep.kannavara@intel.com
silvia.ursu@cridl.org
Ovidiu Man
ovidiu.matan@todaysoftmag.com
Editor-in-chief
Today Software Magazine
analiz
ermenul ecosistem din titlul este utilizat ca o metafor a contextului economic clujean care stabilete relaii strnse ntre
organisme precum comunitatea IT, universiti i sursele de finanare. Fiecare dintre acestea, comunitatea IT prin execuie,
universitatea prin cercetare, iar sursele locale de finanare prin susinerea primelor dou, sunt implicate n crearea unei reele
de interdependene i condiionri. Apariia startup-urilor n acest ecosistem este interpretat ca un instrument de msurare a inovaiei
i a culturii antreprenoriale.
Dei primii pai fcui n aceast direcie sunt relativ
timizi, importana acordat acestora i susinerea local sunt n
cretere. Multe dintre evenimentele locale din zona IT-ului au o
seciune dedicat startup-urilor: Cluj Innovation Days, IT Days,
Techsylvania. Acelai trend l regsim chiar i n cadrul unor evenimente cu caracter mai extins precum Cluj Business Days sau
TedX. Toate acestea arat importana acordat de comunitate
dezvoltrii unor produse locale, generarea acelui IP (Intellectual
Property) ce ofer local o mai bun stabilitate i un mare potenial
de dezvoltare. Pentru succesul unui startup ntr-o pia global
este nevoie ns de un ntreg ecosistem care s ajute creterea acestuia de la idee pn la implementare, vizibilitate i profit. Victor
Hwang a definit ntr-un mod foarte plastic imaginea de ansamblu. Industria clasic de outsourcing poate fi considerat o ferm
n care seminele plantate cresc foarte repede, au toate aceeai
dimensiune, excepiile sunt puine i n general nu reprezint un
lucru benefic. Alternativ, ntr-o pdure, seminele plantate dei au
o mic ans de supravieuire, pot ajunge nite copaci masivi, care
s existe pentru mult vreme. n acest mediu, este n regul s dai
gre, iar acest lucru duce la diversitate, n opoziie cu ferma unde
toate seminele trebuie s devin plante mature. n ambele exemple, ceea ce conteaz cel mai mult este solul n care aceste semine
cresc i care pentru noi reprezint ecosistemul. Dezvoltarea unor
produse noi nseamn comunicare, ncredere i mprtirea
experienelor acumulate.
Vom analiza n continuare principalii factori ce definesc ecosistemul de IT clujean.
startup-urilor locale este relativ sczut. ncercm prin evenimentul anual IT Days, www.itdays.ro i de asemenea prin revista
Today Software Magazine s promovm cunotiinele i proiectele
realizate de universiti. Acestea trebuie s se transforme ntr-un
motor al inovaiei i a ultimelor tehnologii, similar cu ceea ce face
Standford pentru Silicon Valley.
Investitorii
Proiecte sociale
O alternativ mai popular n special pentru companiile de
IT ce activeaz n zona outsourcing-ului i doresc orientarea ctre
produse o reprezint proiectele sociale. Astfel se realizeaz un proiect gratuit pentru comunitate. Un exemplu sugestiv este aplicaia
Statui de daci, care promoveaz lucrarea istoricului Leonard
Velcescu.
Pe plan local se poate profita de oportunitatea oferit anul viitor de Cluj, atunci cnd acesta va avea titlul de Capitala European
a Tineretului.
Realizarea unui astfel de proiect va nsemna un plus pentru
comunitate, dar i un mod simplu de a promova un brand i de a
trece prin provocrile dezvoltrii unui produs.
Investiiile principale realizate pn acum n zona startupurilor au fost reprezentate de ctre cele dou acceleratoare din
Bulgaria: Eleven i LAUNCHub. Cinci startup-uri locale au primit investiii de aproximativ 30,000 euro, dar din pcate toate au
fost nchise. Dintre nvmintele pe care le putem valorifica din
aceast abordare le semnalm pe acelea c banii acordai au fost
insuficieni pentru atingerea pragului de afacere profitabil, ideal Alte structuri
la un nivel internaional i pe acela c necesitile proiectelor nu
au fost acoperite n ceea ce privete partea de development, mar- Cluj IT Cluster
keting sau legal.
Este alctuit dintr-un grup de companii romneti, avnd
ca scop principal atragerea unor mari proiecte ce nu ar putea fi
Crowdsourcing
realizate de o singur companie. n acelai timp se realizeaz o
Reprezint o alternativ simpl de finanare. Cele dou plat- comunicare eficient ntre companiile implicate, crendu-se
forme locale, Cretem Idei i Multifinanare, nu reuit s atrag condiiile pentru o mai bun coordonare mai bun a aciunilor.
publicul larg ntr-o msur mare. Proiectele i sumele finanate Evenimentul anual organizat de ctre cluster, Cluj IT Innovation
astfel fiind la un nivel redus. Recent proiectul Multifinanare a rea- Days a adus mpreun companiile locale, reprezentani ai guverlizat o colaborare cu Universitatea Babe-Balyai prin crearea unui nului, ai Uniuni Europene precum i proiecte de cercetare. Recent,
portal pentru sprijinirea proiectelor academice.
revista Today Software Magazine mpreun cu Cluj IT Cluster am
organizat n Braov evenimentul: IT-ul Braovean: Oportuniti de
Angel investors
colaborare. Acesta s-a bucurat de un interes real din partea publiDac facem o paralel cu alte centre de dezvoltare, o parte din cului i intenionm s mai avem astfel de evenimente.
sumele cu care sunt finanate iniiativele locale vin de la cei ce au
realizat un exit. Putem s i enumerm astfel pe Phillip Kandal, StartupWeekend
unul dintre cei patru fondatori ai Skobbler, i pe Daniel Metz, cel
Este un eveniment dedicat 100% crerii startup-urilor. Dac
care a vndut compania EBS ctre NTT Data. Deocamdat cei doi nu ai participat pn acum la un astfel de eveniment, v sugerez
nu au anunat vreo investiie n zona de IT dar ne ateptm ca s o facei. Sunt acceptate doar ideile noi, iar echipele se formeaz
acest lucru s se ntmple n urmtorul an.
n jurul celor mai populare pitch-uri. Este un fenomen global i
multe startup-uri au luat natere n felul acesta. Ctigtorii din
Acceleratoare
ultimi trei ani sunt Mircea Vdan cu platforma UseTogether,
Gemini Solutions Foundry vine cu o abordare diferit. echipa Cloud Copy, iar ctigtoarea de anul acesta a fost o veche
Acceleratorul ofer tot ce este nevoie pentru a aduce startup-ul la colaboratoare a revistei, Antonia Onaca cu o idee ce ar trebui s
stadiul de MVP. Aceasta nseamn suport tehnic, mentorat, suport schimbe modul n care sunt evaluai angajaii.
legal, chiar i spaiu de lucru central n Bucureti, Cluj sau Iai.
Scopul acestui MVP este prezentarea startup-urilor unor mari Hackaton-ul Techsylvania
fonduri de investiii din SUA n vederea obinerii finanrii. n
Organizat n cadrul primei ediii a Techsylvania, acesta a pus
momentul de fa cutrile i selecia candidailor este n plin la dispoziia participanilor diverse dispozitive mobile precum
desfurare.
Google Glasses, Leap Motion, Sphero, Little Printer, Pebble i
www.todaysoftmag.ro | nr. 25/Iulie, 2014
analiz
Ecosistemul IT Clujean din perspectiva startup-urilor
multe altele. Rezultatul a fost spectaculos, miniproiectele realizate fiind cu adevrat interesante. Acestea au combinat folosirea
Google Glasses mpreun cu Leap Motion pentru realizarea unui
joc sau tastarea unui cod la bancomat prin monitorizarea micrii
ochilor. Probabil o combinaie de Startup Weekend i hackaton n
care sunt puse la dispoziie ultimele gadget-uri disponibile ar duce
la crearea unor startup-uri cu adevrat inovative.
Concluzii
Startup-uri clujene
5 http://www.evolso.com
2 http://hackaserver.com
6 http://www.mirarehab.com
3 http://ctf365.com
7 https://moqups.com
4 https://www.hipmenu.ro
eveniment
a nceputul lunii iunie, s-au lansat aplicaiile pentru cea de-a doua ediie a Programului de Asisten n Comercializarea Inovrii
din Romnia (RICAP)!
Prima ediie a RICAP a avut loc n perioada ianuarie mai 2014. n acest timp, 15
inovatori au lucrat alturi de o echip dedicat de mentori i advisori extraordinari
ntr-un program de mentorat personalizat,
10
Cine suntem
startups
oi credem c fiecare om n parte este extraordinar i ar trebui s aud acest lucru mai des. De aceea construim ZenQ: modul
de a spune mulumesc i de a-i aprecia prietenii i colegii extraordinari. Pe mobilul tu. n secunde.
final, fiecare dintre noi dobndete un profil n care i poi descoperi punctele forte prin ochii prietenilor ti. Deci, n esen, ZenQ
nseamn rspndirea vibraiilor pozitive, distracie, bucurie.
Din spatele cortinei, ZenQ este acionat de un backend Django
care utilizeaz informaiile de login pe Facebook acumulate de
clieni pentru a obine prietenii utilizatorului de pe Facebook i
a-i oferi din nou clienilor la cerere. Lista trsturilor este de asemenea furnizat de serviciul backend, fcnd-o uor de actualizat
pe baza feed-back-ului de la utilizatori. Aceste informaii sunt apoi
folosite pentru a crea profilele utilizatorilor care acum arat o list
de trsturi cu care a fost nvestit un utilizator, ordonate dup
numrul de susintori.
Faa ZenQ o constituie clienii mobili: iOS i Android.
Interfaa utilizeaz o paradigm de navigare foarte simpl care
necesit maxim dou atingeri pentru a ajunge oricnd la orice
ecran. Totui, atenia se concentreaz n mare parte pe ecranul
ZenQify, care este primul ecran pe care l vede utilizatorul atunci
cnd deschide aplicaia. Mai mult, utilizatorul se poate ntoarce
uor la el dup ce a deschis alte ecrane, fcnd din acesta punctul central al aplicaiei. Utilizatorii pot de asemenea s susin
anumii prieteni, cutndu-i i accesndu-le profilul, unde pot
lsa i mesaje legate de trstura pentru care doresc s subscrie.
Mihai Costea
mihai.costea@gmail.com
iOS Developer
@ Zenq
11
business
na dintre preocuprile constante ale Cluj IT Cluster este resursa uman din industrie. Este de notorietate faptul c IT-ul
clujean, nc n mod substanial bazat pe servicii de outsourcing, are nevoie constant de oameni ct mai bine pregtii i ct
mai numeroi.
12
pe piaa muncii.
Cadrul n care evolum n Romnia
nu este, dup cum se poate constata, unul
foarte favorabil, dar acest lucru nu ne
descurajeaz. Ca parte a eforturilor de a
aduce n atenia tinerilor, dar nu numai, a
oportunitilor de carier i de via pe care
industria noastr le ofer, Cluj IT Cluster
a demarat un program prin care ncercm
s realizm acel nivel de cunoatere necesar
pentru o decizie informat asupra pregtirii
i dezvoltrii profesionale, mai ales n cazul
tinerilor care urmeaz studii superioare sau
intenioneaz s se nscrie la o unviersitate.
Programul este mai amplu, cuprinde mai
multe etape i niveluri de aciune, unele n
faz mai avansat de pregtire, altele nc
n faz de idee. Nu este nici locul i, probabil, nici momentul pentru a intra n detalii,
ns, un prim pas a fost deja fcut. Cluj IT
Cluster este partener ntr-un proiect cu
finanare nerambursabil european cu
Universitatea Babe-Bolyai prin care vom
facilita accesul la stagii de practic organizate cu precdere la companii i organizaii
membre ale Cluj IT Cluster pentru un
numr de 400 de studeni provenind de la
Facultile de Matematic i Informatic
i Facultile de tiine Economice i
Gestiunea Afacerilor (FSEGA). Proiectul
este intitulat Creterea oportunitilor
de ocupabilitate prin practic de success (PRACT-IT) i este cofinanat din
Fondul Social European prin Programul
Op erational S ec tor ial D ezvolt are a
Resurselor Umane 2007 2013.
Dincolo de declaraie de intenie i de
obiectivele seci ale unui proiect, aceast
iniiativ dorim s fie una prin care reuim
s facem mai bine neleas industria de IT,
13
startups
a final de iunie, Deutsche Welle publica o analiz economic artnd cum Germania e n continuare o ar cu dou economii,
din cauza diferenelor uriae de venit dintre Germania de Vest i Germania de Est (http://www.dw.de/mapping-differencesin-two-german-economies/a-17734799). Toate acestea s-au ntmplat, dup eforturi uriae fcute de guvernul federal, precum
transferul a aproape trei trilioane de euro dinspre Vest spre Est.
Banii s-au dus cel mai mult n infrastructur i nu n a porni motorul
dezvoltrii iniiativele antreprenoriale, spune profesorul Gerald Braun, de la
University of Rostock, citat n articol. Cu
alte cuvinte, antreprenoriatul face diferena iar Fundaia Danis pentru
Dezvoltare Managerial crede i promoveaz ideea c o comunitate puternic se
bazeaz pe afaceri profitabile i stabile.
Cel mai recent proiect al Fundaiei
Danis de educaie antreprenorial este
Drive Your Community for Better.
Proiectul sprijin tineri antreprenori
clujeni i, n acelai timp, mobilizeaz
comunitatea pentru recunoaterea rolului important pe care antreprenoriatul de
succes l joac n dezvoltarea economic a
unei societi. Astfel, proiectul este finanat
exclusiv de donatori individuali peste 100
de oameni, pn acum!
14
capital.ro/un-imm-din-treimoare-in-primul-an-dela-infiintare-183199.html ).
Aproape 10% din firmele din
Romnia se nchid n primul an
de activitate i aproximativ 30%
dintre cele care rmn nfiinate
Paula Beudean
paula.beudean@fundatiadanis.ro
Coordonator Proiecte
@ Fundaia Danis
15
comuniti
Comuniti IT
una iulie vine cu mai puine evenimente. V propunem Cluj Business Days i bineneles v ateptm n 22 iulie la lansarea
numului 25 TSM.
16
Calendar
Iulie 9-10 (Cluj)
Cluj Business Days - recomandarea TSM
businessdays.ro/Evenimente/Cluj-2014
Iulie 19 (Iai)
Iasi Inaugural MUG mongostat
meetup.com/Iasi-MongoDB-User-Group/events/191672362/
Iulie 14 (Cluj)
Personalized information discovery
meetup.com/Cluj-Semantic-WEB/events/186829692
Iulie 19-20 (Bucureti)
Startcelerate
bucharest.startcelerate.com
Iulie 22 (Cluj)
Lansarea numrului 25 a Today Software Magazine (Cluj)
www.todaysoftmag.ro
Iulie 23 (Cluj)
Requirements Engineering - Factor of successful projects
meetup.com/Business-Analysts-Cluj/events/192771622/
Iunie 28 (Cluj)
Mobile Monday Cluj #10
meetup.com/Cluj-Mobile-Developers/events/177046842/
programare
Ovidiu Simionica
ovidiu.simionica@fortech.ro
Team Lead
@ Fortech
Versioning tool
Versionarea codului surs n IT-ul romnesc a devenit de ceva vreme status quo,
n mare parte datorit dinamicii echipelor
de dezvoltare, dar i cerinelor clienilor.
Singurul sfat ar fi s nu rmnei n urm cu
tendinele, nu folosii CVS cnd la mod este
GIT.
17
programare
IT-ul romanesc quo vadis
Project documentation & issue tracking
Continuous integration
Code review
Testare automat
Metrici de calitate
Young spirit
Mature organization
A shared vision
Join our journey!
www.fortech.ro
18
1 http://en.wikipedia.org/wiki/SOLID_%28object-oriented_design%29
programare
programare
silviu.dumitrescu@accesa.eu
Java Line Manager
@ Accesa
return a.getName().
compareTo(b.getName());
La un constructor:
Arrays.sort(basket,
(a,b)->myComparison.
compareByName(a, b));
Supplier<Product> s =
Product::new;
java.util.function.Supplier;
19
programare
Java 8, nouti i mbuntiri
utilizabilitatea interfeelor. Dac adaugm noi semnturi n API-urile folosite n discuiile anterioare.
interfaa atunci clasele ce o implementeaz ar trebui rescrise.
java.util.function, ce furnizeaz interfeele funcionale
Pentru a evita procesul rescrierii s-au introdus metodele default.
ce sunt returnate ca tip prin intermediul expresii lambda.
Pe lng semnturi i constante, interfeele vor conine astfel i
Interfeele funcionale reprezint concepte abstracte precum
implementri.
funciile, aciunile sau predicatele.
Voi da un exemplu simplu, care s evidenieze noile abordri:
java.util.stream, ce furnizeaz clase pentru operaii pe
stream-uri
de elemente. Stream-urile difer de colecii prin:
public interface MyInterface {
void myClassicMethod();
stream-ul nu este o structur de date, ci transform o
structur de date ntr-un pipeline de operaii.
default void myDefaultMethod() {
System.out.println(hello default!);
o operaie pe un stream produce o operaie, dar nu
}
modific
sursa.
static void myStaticMethod(){
Operaiile pe stream-uri sunt implementate lazy, ceea ce
System.out.println(hello static!);
nseamn c pot expune oportuniti de optimizare.
}
}
stream-urile sunt practic infinite. Exist i operaii
Respectiv clasa ce implementeaz interfaa:
de scurtcircuitare care s produc ieiri ntr-un timp finit
(limit(), findFirst())
public class MyClass implements MyInterface {
@Override
stream-urile sunt consumabile, adic elementele sunt
public void myClassicMethod() {
vizitate
o singur dat. Pentru o revizitare trebuie creat un
System.out.println(hello classic!);
alt stream.
}
toate clasele wrapper (Boolean, Integer, etc.) au fost mbu}
ntite cu metode care folosesc expresiile lambda i referine
Ca test avem:
de metode.
public static void main(String[] args) {
MyInterface mine = new MyClass();
mine.myClassicMethod();
mine.myDefaultMethod();
MyInterface.myStaticMethod();
}
20
management
programare
De ce nu 2 n 1?
Companii precum IBM i Oracle au nceput s ofere metode prin care Sistemele de
Baze de Date Relaionale (RDBMS) i cele
non-relaionale s coexiste. PostgreSQL ofer
o alternativ prin tipuri de date speciale, cu
o structur mai liber i flexibil, care imit
comportamentul NoSQL ntr-un RDBMS.
ncepnd cu versiunea 8.3, PostgreSQL a
introdus tipul de date hstore, care este folositor pentru rnduri cu multe atribute care
sunt rar examinate i date semi-structurate.
Permite stocarea de perechi cheie-valoare
(similar cu unele NoSQL-uri), suport diferite
operaii i ofer funcii pentru manipularea
lor. n versiunea 9.2 a fost introdus tipul de
date JSON, cruia i s-au adus mbuntiri n
21
programare
Suportul JSON n PostgreSQL
facei o idee, am enumerat cteva pe care
dezvoltatorii n general omit s le ia n
calcul:
numele oamenilor pot conine
numere;
oamenii pot avea un numr nedefinit
de nume;
oamenii pot s nu aib un prenume
sau nume de familie;
oamenii pot avea mai mult de un
nume canonic complet;
numele nu sunt neaprat n ASCII i
nu sunt neaprat scrise ntr-un singur set
de caractere;
oamenii pot s nu aib nume.
first_name : Ronaldo,
mother_name: de Assis,
last_name : Moreira,
nicknames :[Ronaldinho,
Gacho]
}
Funcii i Operatori
Product
Strategy
www.3pillarglobal.com
22
Product
Development
Product
Support
Dezavantaje
Concluzii
n general, nu putem fi siguri c numrul de telefon de tip primary se afl pe prima poziie a tabloului, acest lucru fiind subiectiv
i dependent de sistem. Cu toate acestea, impunerea unor astfel de
constrngeri pot duce la interogri simplificate, avnd operatorul
-> pentru a accesa direct elementul de pe poziia n a unui tablou.
De asemenea, important de notat este c exemplul precedent prezint un caz simplu de stocare de numere de telefon. Interogrile
devin cu att mai complicate cu ct datele stocate n tablourile
JSON sunt mai complexe, n special cnd apare nevoia de a face
join acestor date din cadrul tabloului cu alte tabele.
23
programare
testare
Marius Ciotlos
marius.ciotlos@betfair.com
Delivery Manager
@ Betfair
24
utilizare ntr-o Etap diferit sau la un Produs n dezvoltare diferit. Imaginai-v un script care genereaz un binar temporar de
care ai nevoie mai ncolo n cursul dezvoltrii produsului. Ai putea
utiliza artefacte pentru a nu mai avea nevoie de un repo extern
pentru ceva care este att de volatil. De asemenea, Artefactele Test
sunt felul n care GO poate interpreta rezultatele testelor pentru
o Etap.
Pe baza artefactelor poi avea nite tab-uri speciale care s
ncarce HTML-ul pe care l-ai generat cu o comand, pentru a-l
vedea direct n instrument.
Configuraia XML
25
management
anagementul unei echipe de dezvoltare software este o meserie pe care trecerea timpului nu a transformat-o, aa cum se ntmpl de obicei, ntr-una
mai uoar. De la publicarea lucrrii Agile Manifesto, n 2001, multe companii
i echipe care dezvolt produse soft au practicat i testat metodele i tehnicile Agile cu
succes.
Alina Chereches
alina.chereche@yardi.com
Senior Software Developer
& Scrum Master
@ Yardi
Echipa Agile
26
management
Dimensiunile Agile
Provocarea
Objective C
jobs-cluj@yardi.com
Yardi Romania
27
management
Scrum cu Programare Extrem
dezvoltarea unui proiect. Desigur, cu toii
i fac treaba n cel mai bun mod posibil i
neleg i respect Scopul Proiectului Agile
(ce software trebuie construit i livrat). Dar,
n timp ce membrii echipei sunt interesai
de metodele de inginerie i de practicile
Extreme Programming (XP), precum i de
scrierea de cod de calitate, Scrum Master se
axeaz pe adaptarea la cerinelor de sistem
imprevizibile, n acelai timp fiind capabil
s msoare viteza de lucru a echipei. Pe
de alt parte, Product Owner-ul nu este
interesat ns nici de viteza echipei, nici de
calitatea codului. El ar dori ca echipa s fie
n msur s fac estimri exacte privind
termenul de finalizare a proiectelor. Cu
alte cuvinte, Product Owner-ul, precum i
ali Stakeholders, ar dori ca echipa s fie ...
previzibil.
Pentru a putea prezice lansarea produsului, o echip trebuie s fie capabil s
estimeze, n primul rnd, etapele de dezvoltare. Pentru aceasta avem instrumentele
Scrum pentru managementul de proiect:
Poker Planning, Velocity Tracking i Sprint
Retrospectives.
V voi prezenta n continuare cteva
exemple concrete despre cum Scrum i XP
pot conlucra pentru a ne ajuta s atingem
scopul predictibilitii.
De obicei, vei gsi mai multe articole care vorbesc despre diferenele dintre
Scrum i XP. Dei ambele se concentreaz
pe producerea de software funcional n
cel mai scurt timp posibil i pun accentul
pe importana comunicrii ntre echipe,
ele sunt descrise mai degrab ca abordri
opuse n dezvoltarea de produse soft.
Acum c am vzut care sunt diferenele
dintre Scrum i XP, ne vom axa pe instrumentele care mbin avantajele celor dou
metodologii.
Documentare i Testare
Msurarea vitezei
n Scrum, viteza este reprezentat de
ct de mult poate dezvolta o echip n
cadrul unei iteraii. Acest lucru poate fi
estimat analiznd iteraii anterioare, presupunnd c membrii echipei i durata
sprintului rmn aceleai. Rapoartele de
vitez sunt folosite la edinele de planificare, cu scopul de a defini urmtorul sprint.
Odat stabilit, viteza va fi folosit pentru
planificarea livrrilor.
Grafice de msurarea a vitezei unei
echipe:
Burndown Chart
Velocity Tracking
Cu XP, sprint-urile sunt flexibile i noi
task-uri pot fi integrate pe msur ce apar,
n timpul unei iteraii. Aceast abordare
ngreuneaz procesul de msurare a vitezei
i face aproape imposibil folosirea unui
Burndown Chart.
Atunci cnd un nou task este adugat
n timpul unui sprint, un altul ar trebui s
se ntoarc n backlog. n acest fel, numrul
de puncte (story points) stabilite pentru un
sprint rmne aa cum a fost plnuit iniial.
Dac acest lucru nu se ntmpl i taskuri noi sunt adugate la volumul de lucru
existent, echipa nu va putea s completeze
sprint-ul conform planului i, prin urmare,
nu-i va putea respecta angajamentele.
Ecuaia Velocity Tracking:
28
arhitectur
rogramarea agile se bazeaz pe dezvoltarea produsului software n blocuri mici i incrementale, n care cerinele clienilor i
soluiile oferite de programatori evolueaz simultan.
Concluzii
29
arhitectur
Principii de design Agile
poate fi extins cu implementarea noilor
cerine, adic se poate modifica comportamentul modulului deja existent.
nchis pentr u modific ri.
Implementarea noilor cerine nu necesit
modificri asupra codului deja existent.
Abstractizarea este metoda care permite modificarea comportamentului unui
modul software, fr a modifica i codul
deja existent al acestuia. n C++, Java sau
oricare alt limbaj orientat obiect, este posibil s se creeze o abstractizare care ofer
o interfa fix i un numr nelimitat de
implementri, adic de comportamente
diferite [2].
n Fig. 2 este prezentat o diagram de
clase care nu respect principiul deschisnchis. Att clasa Client ct i clasa Server
sunt clase concrete. Clasa Client folosete
clasa Server. Dac mai trziu se dorete ca
aceast clas Client s foloseasc un alt tip
de server, va fi nevoie s se modifice clasa
Client astfel nct s utilizeze noul server.
30
Figura 4
Concluzii
Figura 5
Design by Contract
Concluzii
Figura 7
Concluzii
Figura 6
31
arhitectur
Principii de design Agile
32
Figura 8
Bibliografie
[1] Robert Martin. Agile Software Development:
Principles, Patterns, and Practices. Editura Prentice
Hall. 2012.
[2] Gamma, et al. Design patterns. reading Ma:
Addison-Wesley, 1998.
[3] Liskov, Barbara. Data Abstraction and Hierarchy. SIGPLAN Notices, 23.5 (May 1988)
[4] Meyer, Bertrand. Object oriented software construction, 2nd ed. upper Saddle River, Nj: Prentice
Hall, 1997.
Figura 9
Concluzii
Dumitria Munteanu
dumitrita.munteanu@arobs.com
Software engineer
@ Arobs
programare
iOS 7 blur
Introducere n flat design
n ultimul an toat lumea mobile a adoptat conceptul de flat design, fie vorba de Android, iOS sau Windows, fiecare dintre sisteme
cu variaiunile proprii. n esena scopul e acelai: o mai bun nelegere a interfeei grafice de ctre utilizator.
where you are astfel ca utilizatorii s aib o mai bun nelegere a
contextului n care se afl. Cel mai bun exemplu este Notification
Center, care odat deschis, blureaz coninutul din spatele su.
Acest lucru permite vederea noului coninut peste vechea pagin
fr s blocheze vederea Home View-ului. Un alt exemplu bun ar fi
atunci cnd vrem s afim o alert: blurnd coninutul din spatele
ei va conduce natural atenia utilizatorului spre mesajul primit,
fr a-l scoate ns din contextul n care se afla anterior.
Soluie
ntr-una dintre metodele de lifecycle ale controlle-rului adugm urmtoarele linii i avem deja cea mai simpl modalitate de a
obine un fundal blurat:
-(void)viewWillAppear:(BOOL)animated {
UIImage *snapshot = [self takeScreenSnapshot];
www.todaysoftmag.ro | nr. 25/Iulie, 2014
33
programare
iOS 7 blur
UIColor *tintColor =
[UIColor colorWithWhite:0.2 alpha:0.15];
self.view.backgroundImage = [snapshot
applyBlurWithRadius:8 tintColor:
tintColor saturationDeltaFactor:
1.8 maskImage:nil];
}
- (UIImage *)takeScreenSnapshot {
UIGraphicsBeginImageContext(self.bounds.size);
if([self respondsToSelector:@selector(
drawViewHierarchyInRect:afterScreenUpdates:)]){
[self drawViewHierarchyInRect:
self.bounds afterScreenUpdates:NO];
}
else{
[self.layer renderInContext:
UIGraphicsGetCurrentContext()];
}
UIImage *image =
UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData *imageData =
UIImageJPEGRepresentation(image, 0.75);
image = [UIImage imageWithData:imageData];
return image;
}
1. applyBlurWithRadius este
numrul de pixeli luai n calculul blur-ului. Cu ct mai
mare numrul, cu att vei avea
o imagine mai blurat.
2. tintColor este nuana care
va fi adaugat imaginii procesate. n exemplul de mai sus,
am optat pentru un tint mai
ntunecat.
3. saturationDeltaFactor este
nivelul de saturaie de culoare
aplicat imaginii procesate.
maskImage dei nil n
exemplul de mai sus, are
ntrebuinri folositoare n
momentul n care vrem s blurm doar o parte din imagine
ca n exemplul de mai jos:
n detaliu
Pentru cei care vor performa mai bun sau un altfel de blur
putem arunca o privire n interiorul UIImage+ImageEffects.h i
s facem cteva modificri.
typedef enum {
NOBLUR,
BOXFILTER,
TENTFILTER
} BlurType;
@import UIKit;
@interface UIImage (ImageEffects)
- (UIImage
- (UIImage
- (UIImage
- (UIImage
dius;
- (UIImage
tintColor;
*)
*)
*)
*)
applyLightEffect;
applyExtraLightEffect;
applyDarkEffect;
applyDarkEffectWithTent: (CGFloat) ra-
*) applyTintEffectWithColor:(UIColor *)
- (UIImage *)applyBlurWithRadius:(CGFloat)blurRadius
blurType: (BlurType) blurType tintColor:(UIColor *)
tintColor saturationDeltaFactor:
(CGFloat)saturationDeltaFactor maskImage:(UIImage *)
maskImage;
@end
34
Mihai Fischer
mihai.fischer@gmail.com
iOS developer
@ Dens.io
programare
a cum meniona Jonathan Bowen n cartea sa, Getting Started with Talend Open Studio for Data Integration, de ndat ce
a aprut cel de-al doilea calculator, integrarea sistemelor a devenit o parte esenial a muncii echipelor IT.
Talend Open Studio este reprezentat de modelarea grafic a proceselor pe care dorim s le definim. n tot acest timp, platforma
i face treaba de zidar n background, genernd cod Java. n fond,
fiecare component pe care o utilizm are asociat un comportament, descris prin intermediul codului Java.
Avnd n vedere faptul c acesta este un tool grafic, produsul
poate fi utilizat att de programatori, ct i de persoane care nu au
cunotine de programare. Totui, pentru a putea defini anumite
comportamente complexe, este nevoie s scriem din cnd n cnd
cod Java, lucru care ne determin s concluzionm c utilizatorii
care nu cunosc programare se confrunt cu anumite limitri.
Talend Open Studio este relativ uor de folosit, este o modalitate rapid de a modela scenarii de integrare, de cele mai multe
ori reducnd timpul de implementare de la sptmni sau luni, la
zile sau chiar ore, n funcie de complexitatea proiectului. Totui,
trebuie s avertizm cititorii c, asemeni multor altor domenii,
dac din cauza excesului de zel sau a unui design nepotrivit facem
overengineering, riscm s obinem o soluie complex, greu de
neles pentru ali utilizatori sau chiar ineficient. Exist i aici
necesitatea respectrii unor bune practici, care s asigure calitatea
soluiei noastre.
Printre alte beneficii ale utilizrii Talend Open Studio, trebuie
s remarcm c acesta este un produs open source, care permite
utilizatorilor s extind platforma dup nevoie. De asemenea,
utilizndu-l crete productivitatea, deoarece dezvoltatorii se pot
concentra mai mult la definirea procesului dect la implementarea
tehnic a acestuia. Ne sunt puse la dispoziie o mulime de componente, potrivite situaiilor mai mult sau mai puin obinuite, cu
Un overview al mediului Talend Open Studio
care putem opera pentru a ne defini procesele. n plus, comunitaTalend Open Studio for Data Integration este un mediu de tea utilizatorilor Talend este activ i gata s ofere sfaturi tehnice.
dezvoltare grafic care, dup cum spune i numele acestuia, este
specializat n integrarea datelor ntre sisteme. La baza sistemului Scenarii de utilizare
open source st mediul Eclipse. Alturi de crearea soluiilor de
Dup cum am menionat n seciunea anterioar, cele mai
integrare, Talend Open Studio cuprinde i mecanismele necesare obinuite scenarii de utilizare a proiectului Talend Open Studio
livrrii acestora job-urile pot fi rulate att din interiorul mediu- sunt urmtoarele:
lui, ct i ca script-uri de sine stttoare.
Transfer ntre baze de date: Atunci cnd sunt create sisteme
Pentru modelarea proceselor, sistemul utilizeaz conectori.
noi sau cele existente sunt actualizate, este nevoie ca datele s fie
Dezvoltatorii produsului ne ofer peste 800 de astfel de conectori,
migrate ntr-o nou baz de date. Aceasta poate s aib aceeai
care ne dau posibilitatea s conectm cu uurin baze de date,
schem sau una diferit, iar Talend Open Studio ne ofer conecs citim informaii din diverse surse, s transferm fiiere i s
torii i aciunile necesare acestui proces.
efectum operaii asupra lor. De asemenea, avem posibilitatea de a
Schimb de fiiere: Sarcinile de integrare pot necesita tranconecta componente specializate pentru a defini procese complexe
sferuri de date n cantiti mari. Acest lucru se realizeaz adesea
de integrare.
prin intermediul fiierelor. Un exemplu de astfel de fiier este
O bun parte din munca pe care o ndeplinim cu ajutorul
clasicul CSV (comma separated values). De asemenea, este
www.todaysoftmag.ro | nr. 25/Iulie, 2014
35
programare
Integrarea datelor ntre sisteme cu Talend Open Studio
posibil ca sistemul care primete fiierul de transfer s aib
nevoie de date ntr-un alt format. i acest caz este acoperit de
ctre Studio, fiindc ne d posibilitatea s definim procese care
efectueaz transformri asupra datelor transferate. n plus,
avem la dispoziie capabiliti de management al fiierelor, prin
operaii cum ar fi transferul prin FTP sau arhivarea.
Sincronizare: Sistemele care colaboreaz nu sunt conectate
ntotdeauna la acelai data repository, ceea ce nseamn c anumite informaii pot fi duplicate ntr-un ecosistem. n consecin,
avem nevoie s ne asigurm c acestea sunt sincronizate periodic. Acesta este cazul datelor despre clienii unei companii,
care pot fi prezente, spre exemplu, n sistemul de finane, cel de
distribuie sau n platforma CRM. Talend Open Studio poate
fi folosit pentru a realiza sincronizarea sistemelor, cu ajutorul
unor job-uri care automatizeaz procesul.
ETL: Acesta este un acronim pentru Extract, Transform,
Load, termeni care descriu un proces de baz pentru sistemele
data warehouse. Un astfel de proces extrage date din sisteme
operaionale, le transform aplicnd reguli sau funcii, iar apoi
le ncarc n data warehouse. Din nou, Talend Open Studio ne
face viaa mai uoar, ajutndu-ne substanial la implementarea
acestui tip de proces.
Concluzii
Exemplu
36
Dnu Chindri
danut.chindris@elektrobit.com
Java Developer
@ Electrobit Automotive
programare
AOP i LinFu
n ultimele trei numere ale TSM, am descoperit lumea AOP folosind trei stack-uri diferite - .NET, Unity i PostSharp. Dac ne uitm
la aceste framework-uri cu un ochi critic, putem s observm c PostSharp este un framework extrem de robust care face magia
AOP-ului n momentul compilrii. Pe cnd Unity sau .NET stack insereaz toat aceast funcionalitate la runtime.
Run-time vs Build-Time
Ce este LinFu
37
programare
AOP i LinFu
DynamicProxy
Da, codul de mai sus nu arat tocmai foarte frumos, dar poate
foarte s fie foarte uor pus ntr-o metod generic i s nu mai fie
nevoie s ne batem capul cu acest setup. Odat ce avem o referin
la customFoo putem s apelm fr nici o problem metoda Do.
Dup cum putem observa din definiia celor doua interfee,
Se poate observa foarte clar diferena major ntre PostSharp i
putem doar s interceptm apelul sau s avem un control direct LinFu. PostSharp nu cere folosirea unui proxy, deoarece face totul
nainte de apel, dup apel sau chiar n momentul apelului i s n momentul compilrii genernd un cod IL care are deja acest
apelm cu totul alt metod.
hook. Pe cnd LinFu are nevoie de o configurare din cod.
n exemplul de mai jos interceptm metoda Do din clasa Foo
i logm apelul, far s apelm o alt metod, dect cea original IProxy
din clasa Foo.
Un lucru foarte interesant la LinFu este interfaa IProxy i n
public class Foo
special
proprietatea Interceptor. n momentul n care generm
{
public virtual int Do(int a, int b)
un proxy avem o referin la aceast interfa. Folosind proprieta {
tea amintit mai sus, putem s schimbm la runtime interceptorul,
return a+b;
}
fr s fim nevoii s generm un nou proxy sau s schimbm ceva.
}
public class FooInterceptor : IInvokeWrapper
{
private Foo _target;
public FooInterceptor(Foo target)
{
_target = target;
}
public void BeforeInvoke(InvocationInfo info)
{
Trace.WriteLine(Before Do() called);
}
}
}
Performan
38
LinFu
Castle
(Sprint .NET)
Unity
M e t h o d
Interception
Yes
Yes
Yes
Yes
Private/Sealed
Member Interception
Yes
Yes
No
No
E v e
Interception
Yes
No
No
No
M e m b e r
Introduction
Yes
No
No
No
Radu Vunvulea
Radu.Vunvulea@iquestgroup.com
Senior Software Engineer
@iQuest
39
programare
up cum am menionat anterior n aceast lucrare, rulm Klocwork Insight peste nucleul Linux (versiunea 2.6.32.9) i analizm rezultatele analizei noastre. Versiunea Klocwork Insight utilizat pentru aceast analiz a fost 9.2.0.6223. Figura 3 arat
verificatorii Klocwork pe care i-am utilizat pentru a analiza codul surs C/C++. Acestea sunt de fapt ,,familii de verificatori
sau ,,categorii, deoarece fiecare dintre aceste 3 elemente (din figura 3) conine un numr de verificatori individuali.
Aceti verificatori au fost validai pe Klocwork pentru analiza
noastr pentru a identifica toate problemele semnificative din
codul surs care este analizat. Metricile proiectului raportate de
Klocwork dup analizarea codului Linux kernel (2.6.32.9) sunt
indicate n tabelul 1.
TABELUL 1
METRICILE PROIECTULUI RAPORTATE PENTRU SCA A
NUCLEULUI LINUX
Numr total de fiiere
13999
13868
131
4309863
1358746
944835
162814
42797
Analiza vulnerabilitii
40
Figura 4. Numrul vulnerabilitilor per categorie semnificativ a Linux Kernel (v2.6) publicat n NVD (anii 2010- 2011).
Analiza complexitii
s le repari.
Pentru a analiza ce componente ale nucleului Linux au mai
mare incidena de vulnerabiliti raportate, separm fiierele
nucleului n ase categorii importante, care sunt urmtoarele (12):
Core (Nucleu): Acesta include fiierele din subdirectoarele
init, block, ipc, kernel, lib, mm i virt.
Drivers (Drivere): Acesta include fiierele din subdirectoarele crypto, drivers, sound, security, include/acpi, include/
crypto, include/drm, include/media, include/mtd, include/pcmcia, include/rdma, include/rxrpc, include/scsi, include/sound, i
include/vide.
Filesystems (Sisteme fiiere): Acesta include fiierele din subdirectorul fs.
Networking (Reea): Acesta include fiierele din subdirectoarele net i include/net.
Architecture-specific (Specifice arhitecturii): Acesta include
fiierele din subdirectoarele arch, include/xen, include/mathemu, i include/asm-generic.
Miscellaneous (Diverse): Acesta include tot restul fiierelor
41
programare
Securizarea codului Open source (II)
Numrul metodelor cu o complexitate mai mare de 20
coninute n componentele nucleului Linux este ilustrat n figura
5. Raportul de complexitate medie (Complexitatea maxim a
metodelor / Numrul total de metode) pentru metodele cu o
complexitate mai mare de 20 per categorie semnificativ a nucleului Linux este ilustrat n figura 6. Prima coloan din figura 6
reprezint complexitatea medie pentru ntregul nucleu Linux
(v2.6.32.9), n timp ce restul coloanelor reprezint complexitatea
medie pentru componentele semnificative coninute de nucleul
Linux. Din figura 6 reiese n mod evident faptul c complexitatea
medie pentru componentele individuale importante din Linux
kernel este mult mai mare (peste 2x) dect complexitatea medie
pentru ntregul Linux kernel. O privire rapid prin NVD arat c
cele mai multe vulnerabiliti publicate pentru nucleul Linux se
gsesc n componentele care conin un numr mare de metode
de complexitate crescut care cel mai adesea includ componentele ,,drivers, ,,filesystems i ,,networking, dup cum se arat
n Figura 4.
Mrimea procentului per categorie semnificativ din nucleul
Linux (versiunea 2.6) este ilustrat n figura 7. Numrul de linii
modificate per categorie important din nucleu Linux (versiunea 2.6) este artat n figura 8. Este interesant de observat c, n
ciuda faptului c componenta ,,networking a nucleului Linux
conine un numr mai mic de metode de complexitate ridicat
( din figura 5) i mai puine Linii de Cod (LOC) (din figura 7) n
comparaie cu componentele ,,drivers i ,,filesystems, o majoritate a vulnerabilitilor publicate n NVD au loc n componenta
,,networking (din figura 4). Motivul pentru aceasta a fost discutat
n seciunea anterioar despre analiza vulnerabilitii. Mai mult,
chiar dac componenta ,,networking a nucleului Linux conine
mai puine linii de cod, complexitatea medie (din fig.6) pentru
componenta ,,networking este cea mai ridicat n comparaie cu
alte componente ale Linux kernel, ceea ce sugereaz c componentele ce au o complexitate ridicat tind s conin un numr
mai mare de erori. Un alt lucru interesant de notat se refer la
componenta ,,architecture-specific a nucleului Linux care are un
numr mai mic de metode de complexitate ridicat (din fig.5), are
mai multe linii de cod (din fig.7) i a suferit un numr important
de modificri n liniile de cod (din fig.8). n plus, complexitatea
medie (din fig.6) pentru componenta ,,architecture-specific este
ridicat, ceea ce sugereaz c acele componentele care primesc un
numr mare de modificri n liniile de cod tind s aib o complexitate mai mare.
Raghudeep Kannavara
raghudeep.kannavara@intel.com
42
diverse
43
diverse
Gogu i Btrnu lui Miu
da numa 4 s-mi ntind braul i s te pocnesc n plin figur...
Gogu se uit rapid la el dar se liniti, Miu era n continuare
cu zmbetul pe fa. Mda, cnd n-o mai zmbi, vom avea cu toii
de furc, gndi Gogu, calculndu-i ansele n faa unei posibile
locomotive Miu, concluzionnd rapid c nu i-ar dori nimeni
s-l enerveze vreodat pe colosul ardelean. Care colos tie ns
s se joace cu atta dezinvoltur cu copiii, i aduse aminte Gogu
vacana ce abia se terminase. i atunci avu revelaia!
- Auzi, Miule, ii minte cum te-ai jucat sptmna trecut de-a
castelanul care i repar fortificaiile nainte de atacul inamicului?
Uor surprins de ntorstura discuiei, Miu i reveni repede
i ddu vesel, dar i foarte mndru, din cap a aprobare. Fuseser
mpreun n concediu la mare, prima ieire a lui Miu la soare grecesc, mare turcoaz i nisip alb, strlucitor. Intervenise o situaie i
soia lui Gogu fusese nevoit s rmn acas, iar Gogu nu avusese
sufletul s i refuze copilului o vacan la care cel mic visa de luni
de zile. Aa c i propuse lui Miu s-i nsoeasc. i ceea ce fusese
o invitaie fcut mai mult ntr-o doar, devenise o super vacan
pentru Miu i copil, care s-au distrat mpreun incredibil de
bine.
Miu rememor secvena cu reparatul fortificaiilor n nisipul
grecesc i faa i se lumin.
- Adic, zici tu, c ce-a mers cu fi-tu, merge i-aici? Pi e
corect, sigur c-ar merge, stai aa, c tiu exact ce trebe s fac... i
se ntoarse spre calculator, ignorndu-l total pe Gogu.
- Mai concret, ce-a fcut Miu cu fi-tu? Gogu l vzu pe efu
cu o secund nainte ca acesta s-i fac cunoscut prezena prin
ntrebarea aruncat optit, parc fr a vrea s-l deranjeze pe Miu.
Nu c sta ar auzi ceva dac se afund el ntr-ale lui, poi s tragi
cu tunu la urechea lui i el te ignor total, remarc Gogu n gnd,
apoi continu cu voce tare:
- Ei, m czneam s-l scot din ap pe copil, iar el nu i nu,
c de-aia merge omu la mare s fac baie. i di cu vorba bun,
d-i cu ameninri, s-a ajuns la strigte (eu) i ignorare complet
(el), cuvinte grele (eu), las c-i spun eu mamei ce-ai zis (el), ce
mai, rzboi total. i n mijlocul luptei, numai ce-l aud pe Miu,
cu calmul la de ne scoate pe noi din mini, spunndu-i copilului
c are nevoie de ajutor la construcia lui mirific din nisip, c nu
se mai descurc singur cu nu--ce fortificaie, ori zid de aprare,
ce-o fi fost. Iar al meu iese instant din ap i se apuc de lucru.
Abia peste vreo cinci minute mi-am revenit i mi-am aezat la loc
falca czut... Evident, seara mi-am avut poria de introducere n
psihologia copilului, viziunea Miu sle Btrnu lui Miu...
-Hmm, nu e rea viziunea asta, zmbi efu. Presupun c pn
desear avem i poria de Introducere n viziune... S m ii la
curent.
***
Introducerea n viziune veni ns mult mai trziu, respectiv la edina de nchidere a proiectului, la vreo dou sptmni
dup lansarea oficial a noului produs; o lansare ncununat de
succes i care a adus felicitri ntregii echipe coordonate de Miu.
La edin, Miu a cerut fiecrui membru al echipei s spun trei
44
simona.bonghez@confucius.ro
Speaker, trainer and consultant
in project management,
Owner of Colors in Projects
sponsori
powered by