Nr. 40 • www.todaysoftmag.ro • www.todaysoftmag.com No. 36••Octombrie 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
lui – Îmblânzirea Elefană tu Cum Funcționeaz Hadoop
PHP 7 - O privire în viitor Connected home
Securitatea Datelor în era Cloud Computing
Cum comunicăm eficient cu colegii noștri?
Taking responsive website to the next level
De ce să participi la Cluj IT Days 2015?
An introduction to optimising a hashing strategy Pe scurt, despre brevete în industria IT&C Business growth hacking
Cum putem crea spațiul de lucru perfect?
iTdays
lnnovation, entrepreneurship and technology 24-25 November 2015, Cluj-Napoca
Cluj Arena, Conference Room & Multifunctional Hall
www.itdays.ro
2 days access - 80 euro+ TVA
November24
November25
Conference Room
Conference Room
Multifunctional Hall
Trends & Leadership Sessions
Startups & Entrepreneurship
Software Architecture
09:00
Coffee & Registration
09:00
Coffee & Registration
09:00
Coffee & Registration
09:30
Opening Remarks Cluj IT Cluster 8: Ovidiu Măţan (Organizer of IT Days)
09:30
09:30
10:00
VectorWatch in the Context ofWearable Fashion Trends Rareş Florea (Country Commercial Manager Vector Watch)
Driving innovation - Techleague Diana Tîrnovan (Accesa) Florin Pascaru (Accesa)
On synchronizing data in distributed applications Sergiu Damian (iQuarc)
10:10
10:40
lnnovation in Product Development and Future ofWork Christoph Steindl (CEO Catalysts Software)
Growth Hacking and Lean Canvas Christoph Steindl (CEO Catalysts Software)
10:40
Start-Ups accross cultures Şerban Ţîr (CT O Gemini Solutions)
11:10
Coffee & Networking Break 11:10
LocalProductlaunches 11:30
Beyond reality. Virtual Reality. T he future of gaming and information visualization Robert Mureşan (CEO Exosyphen)
12:00
T he Power of Play Simona Bonghez (CEO Colors in projects)
12:30 13:00
Launch of Programez.ro Ovidiu Măţan (TSM) and Vlad Derdeicea (Subsign) Lunch Break
Multifunctional Hall Management
14:00
Work with Hundreds of HotTerabytes in JVMs Peter Lawrey (Higher Frequency Trading)
14:00
Let's "GamEventify"! Adina Grigoriu (Colors in projects)
15:00
Be Fast, be Off-JVM, be Chronicle- Queue Vasile Mihali (AROBS)
14:30
Make itWarmer Dan Suciu (3Pillar Global)
15:00
Building a Strong Employer Brand T hrough Organizational Culture Cristian Philipp (Essential Training and Consulting)
jOOQ - an object oriented abstraction interacting with relational databases Silviu Dumitrescu (Telenav)
16:00
Pizza Break
15:30
Big Data 16:00
16:20
Evolving ldeas with BigData tools Tudor Mărghidanu (Yardi)
16:50
Data modeling inApache Hadoop Tudor Lăpuşan (Telenav)
17:00
Machine Learning in the age of Big Data Daniel Sârbe (SOL)
17:50
Networking & wine
Seedfortech Mircea Vădan (Fortech)
12:00
Roxana Rugină (Simplon)
12:30
Local startup pitches
13:00
Lunch Break
14:00
Usable Software Design A Management Perspective Alexandru Bolboacă (Mozaic Works)
14:30
Using artificial intelligence for automatizing software development Răzvan Florian (Romanian Institute of Science and Technology) Reliable Chip Designs from Low- Powered Unreliable Components Sorin Coţofană (Delft University) Driver assistance systems and outlook into automated driving Cătălin Golban (Bosch)
16:00
Pizza break
16:50
Large- scale DataAnalytics for Smart City and lndustrialApplications Dan Puiu (Siemens)
17:50
Networking & Wine
Performance testing how the needs for efficiency dictate theAutomation Process Codruţa Bunea (Yonder)
17:20
Struggling with TestAutomation -lssues and solutions Gabriel Fericean (Siemens)
17:50
Networking & wine
Partners
Coffee & Networking Break
11:30
How to manage one million messages per second usingAzure Radu Vunvulea (iQuest)
12:00
lmplementing Ports-And-Adapters [in the .NET ecosystem] Andrei Larionescu (Yonder)
12:30
ASP.Net 5 (vNext) Performance Characteristics Cătălin Pop (iQuarc)
13:00
Lunch Break
Hands on Lab 14:00
Low Latency in Java 8 Peter Lawrey (Higher Frequency Trading)
15:00
(reating things with a 30 printer Mihai Oltean (Babeş-Bolyai University)
15:30
How to build your own Smart House Călin Bunea (Gemini Solutions)
16:00
Pizza break
16:20
CrouchingAdmin, Hidden Hacker Teodor Oltean (Betfair)
16:50
Healthy Organizations Andreea Pârvu (Endava)
17:20
ls it easy to integrate young people in IT companies? Dan Ionescu (Danis)
17:50
Networking & Wine
Supporters
�YARD/
GEMINI :ft
SOLUTIONS
® !!:D!!:nm:m1c: --=--------
Decisions inArchitecture Florin Cardasim (Endava)
HR & Management
SeleniumWebDriver patterns for maintanability Vasile Pop (Intel)
16:50
10:40
.NET
15:30
Pizza break
Automated Testing 16:20
Startups & Entrepreneurship 11:30
What is Reactive Programming and why should you care Robert Cristian (3Pillar Global)
11:10
Research
Conference Room Java
15:30
Coffee & Networking Break
10:10
BANCA TRANSILVANIA'
Ve
SUBSIGN
..
.,.....�
colors in projects
>
accentu re TELEN
v·
·cLUJ
ţ
softlead
Loopaa
cl'd"ubC
Organizer FREE WIFI
(AD)HUGGER" ,:U:•R'·1 poţisiJtli!
I'
:HANNEJ,
DA DC' N•,c,;J
6 De ce să participi la Cluj IT Days 2015? Ovidiu Măţan
8 How to Web Conference 2015 Alexandru Botez
10 Business growth hacking Tudor Bîrlea
12 HackTM 2015 Patricia Borlovan
13 Mobile Operating Systems (MobOS) Community Andreea Pârvu
15 Îmblânzirea Elefantului – Cum Funcționează Hadoop Alexandru Păcurar
18 Connected Home - Provocări și tendințe în domeniu Kovacs Zsolt
22 Să ducem responsive website la următorul nivel Paul Axente
24 PHP 7 – O privire spre viitor Radu Murzea
26 An introduction to optimising a hashing strategy Peter Lawrey
29 Securitatea Datelor în era Cloud Computing Angela Lepădatu
31 Trăim într-o lume în care suntem distrași în mod constant Oliver Heath
33 Când tribunele sunt pline… Alice Mogojan
35 Cum comunicăm eficient cu colegii noștri? Ana-Maria Trifan
37 Pe scurt, despre brevete în industria IT&C Claudia Jelea
editorial
P
Ovidiu Măţan
ovidiu.matan@todaysoftmag.com Editor-in-chief Today Software Magazine
oate mai mult decât în alte domenii, în IT contează să ai o viziune clară asupra modului în care proiectul tău își trăiește existența, dovedindu-și plenar rostul și utilitatea. Deși afirmația mea are un ton cam sentențios, ea pornește de la o experiență personală banală: pornirea centralei termice. Nu știu dacă știți, dar pentru a porni o centrală termică este de ajuns să conecteze două fire. Practic orice termostat pornește un circuit atunci când temperatura coboară sub X grade și îl oprește atunci când se ajunge la Y + delta. Este atât de simplu încât un copil ar putea programa acest lucru în pseudocod, iar unui programator i-ar lua 1-2 ore să realizeze un astfel de circuit funcțional cu un Arduino. Deja obișnuita centrală termică se poate număra printre exemplele de produse de succes care demonstrează cât de mult contează viziunea. Gândiți-vă acum la Nest care este cel mai bun termostat conform topurilor și reviewurilor, compania fiind cumpărată cu 3.2 miliarde de dolari de către Google la începutul anului 2014. Produsul lor realizează aceleași lucruri de bază într-un mod mai inteligent și cu un pic mai mulți senzori, compania fiind privită în continuare ca un lider în ceea ce privește inovația. Întrebându-ne ca la școală, ce învățăminte putem trage din aceste exemple, răspunsul corect este că viziunea este cea care contează înainte de toate cerințele și condiționările tehnice. Vă invităm să parcurgeți articolele acestei ediții care a ajuns la cifra rotundă 40, publicând din februarie 2012 peste 700 de articole, marea lor majoritate scrise de programatori din România. Dintre articolele tehnice din acest număr, Îmblânzirea Elefantului – Cum funcționează Hadoop vă invită la o introducere ceea ce înseamnă funcționarea Apache Hadoop. În Connected Home (Casa Conectată) - Provocări în domeniu și ce urmează puteți afla despre principalele trenduri în ceea ce privește un Smart House. Să ducem responsive website la următorul nivel propune schimbarea paradigmei prin care un utilizator se adaptează web site-ului, în schimb web site-ul se adaptează automat la preferințele utilizatorului. Articolul Joe. PHP 7 – O privire spre viitor expune principalele caracteristici ale următoarei versiuni a popularului limbaj PHP. Publicăm din partea lui Peter Lawrey, invitat principal la Cluj IT Days 2015, un nou articol pentru programatorii de Java avansați despre optimizarea strategiei de hashing: An introduction to optimising a hashing strategy. Dat fiind că prevenirea furtului de date reprezintă o problemă reală în special pentru companiile de software, articolul Securitatea Datelor în era Cloud Computing are meritul de a vă propune o soluție la această problemă. Încheiem cu un articol util despre brevete: Pe scurt, despre brevete în industria IT&C.
Ovidiu Măţan
Fondator Today Software Magazine
4
nr. 40/2015, www.todaysoftmag.ro
Redacţia Today Software Magazine Fondator / Editor in chief: Ovidiu Mățan ovidiu.matan@todaysoftmag.com Graphic designer: Dan Hădărău dan.hadarau@todaysoftmag.com Copyright/Corector: Emilia Toma emilia.toma@todaysoftmag.com Traducător: Roxana Elena roxana.elena@todaysoftmag.com Reviewer: Tavi Bolog tavi.bolog@todaysoftmag.com
Lista autorilor Ovidiu Măţan ovidiu.matan@todaysoftmag.com
Radu Murzea rmurzea@pentalog.fr
Editor-in-chief Today Software Magazine
PHP Developer @Pentalog
Irina Scarlat
irina.scarlat@howtoweb.co PR Manager @ How to Web & TechHub Bucharest
Peter Lawrey peter.lawrey@ highfrequencytrading.com CEO @ Higher Frequency Trading Ltd
Tudor Bîrlea
Angela Lepădatu angela.lepatadu@cososys.com
Contabil : Delia Mircea delia.mircea@todaysoftmag.com
Fondator @This Is Not a Storm
Marketing Professional and Account Manager @CoSoSys
Programator junior: Alexandru Diniș alexandru.dinis@todaysoftmag.com
Alexandru Păcurar alexandru.pacurar@ propertyshark.com
Marketing specialist și tehnoredactor: Ana-Maria Bivol anamaria.bivol@todaysoftmag.com
System Administrator @ Yardi România
Tipar realizat de Daisler Print House Produs de
Today Software Solutions SRL str. Plopilor, nr. 75/77 Cluj-Napoca, Cluj, Romania contact@todaysoftmag.com
www.todaysoftmag.ro www.facebook.com/todaysoftmag twitter.com/todaysoftmag ISSN 2284 – 6352
t@thisisnotastorm.com
Kovacs Zsolt kovacs.zsolt@accenture.com
Oliver Heath Founder @ Heath Design Ltd
Alice Mogojan alice@antoma.ro
Mobile Applications Capability Group Lead @ Accenture
Marketing @ U Cluj Handbal Masculin
Paul Axente paul.axente@3pillarglobal.com
Ana-Maria Trifan anamaria.trifan@happy-employees.eu
Senior UX Engineer @3Pillar Global
PR & Custumer Care Specialist @ Azimut Happy Employees
Patricia Borlovan
Claudia Jelea
Coordonator @ HackTM
Avocat & Consilier în domeniul marcilor @IP Boutique
patricia@hacktm.ro
claudia.jelea@jlaw.ro
Andreea Pârvu
Andreea.Parvu@endava.com Organizator @ MOBOS
Copyright Today Software Magazine Reproducerea parțială sau totală a articolelor din revista Today Software Magazine fără acordul redacției este strict interzisă. www.todaysoftmag.ro www.todaysoftmag.com
www.todaysoftmag.ro | nr. 40/octombrie, 2015
5
eveniment
De ce să participi la Cluj IT Days 2015?
A
m primit recent această întrebare de la un programator web care ajunge în Cluj în perioada evenimentului. Ar trebui să vină la IT Days în condițiile în care nu există un track destinat tehnologiilor web ? Răspunsul este afirmativ. În calitate de specialist într-un domeniu este relativ ușor să înțelegi celelalte tehnologii, iar cultura IT trebuie să cuprindă mai multe arii, nu doar cea în care lucrăm în mod curent. De altfel, marea majoritate a prezentărilor se adresează programatorilor indiferent de specializare. Avem astfel secțiunile big data, management, arhitectură software, produse, startup-uri și cercetare. De asemenea, cei de la Hands On Lab vor face trimitere la concepte și nu neapărat la un limbaj anume. Singurele track-uri orientate către specialiști sunt cele de Java și .NET. unde este recomandat să existe o bază în aceste domenii. Așadar, conferința va fi accesibilă tuturor specialiștilor. Dar ceea ce ne dorim ca organizatori este ca fiecare prezentare să transmită în mod clar un mesaj, o tendință și o lecție pe care participanții să o poată învăța. Nu în ultimul rând, ITdays poate fi și o invitație la discuții tehnice sau un prilej de revedere cu colegii care lucrează în alte companii. Vă invit în continuare la o scurtă prezentare a speakerilor și a Motors. Prezentarea sa are titlul Evolving ideas with BigData tools. subiectelor tehnice ce vor fi la Cluj IT Days, www.itdays.ro, 24-25 Tudor Lăpușan, inițiator al grupunoiembrie: lui Big Data Cluj, este un admirator al tehnologiile Big Data, în special al tehJava nologiilor Apache Hadoop. Prezentarea Peter Lawrey este un invitat special, care participă pentru a sa va fi despre modelarea datelor în doua oară la conferință. Acesta are un blog popular de Vanila Java Apache Hadoop: Data modeling in Apache Hadoop care a ajuns de curând la 4 milioane de Daniel Sârbe coordonează grupul de Big Data și Machine vizualizări. Proiectele open source la care Translation din cadrul SDL Research lucrează OpenHFT, Chronicle-Queue și Cluj, unde lucrează la o soluție de Chronicle-Engine au acum și o compoprelucrare a datelor nestructurate, nentă orientată spre companii. Peter va în condițiile unui volum de ordinul susține separat și un workshop pentru programatorii avansați de petabiților cu ajutorul tehnologiilor Java. Prezentarea sa, Work with Hundreds of Hot Terabytes in Hadoop. De asemenea, el este implicat ca speaker și organizator JVMs, care este prezentată zilele acestea și la conferința JavaOne în comunitatea Big Data. Prezentarea sa va fi Machine Learning din San Francisco, demonstrează cum se pot accesa terabiți de in the age of Big Data date și se pot obține folosind limbajul Java update-uri în timp real de la baza de date SQL. Software Architecture Vasile Mihali, un pasionat software, Sergiu Damian, arhitect software, se remarcă printr-o în special de Java, a lucrat în proiecte înțelegere clară a arhitecturii sistemelor, distribuite cloud folosind zeci de mașini practicilor și a proceselor de dezvoltare și terabiți de date. Prezentarea sa, Be software. Inițiativa sa, RABS, se bucură Fast, be Off-JVM, be Chronicle-Queue de un real succes în rândul specialiștilor, va folosi librăriile scrise de Peter pentru având un rol activ în comunitățile locale. a demonstra o optimizare a aplicațiilor și a folosirii resurselor În cadrul Cluj IT Days va vorbi despre sincronizarea datelor în hardware prin intermediul Chronicle-Queue. sisteme distribuite într-o prezentare cu titlul: On synchronizing Silviu Dumitrescu este un vechi colaborator al revistei TSM, data in distributed applications. Lipsa unei modalități stabile care a predat mulți ani la universitatea și reutilizabile în sincronizarea datelor între aplicațiile client din Oradea, începând recent și colabora- și server se constituie ca o problemă frecvent întâlnită în frarea cu companii din Cluj. Pasionat de Java mework-urile și aplicațiile moderne. Prezentarea sa va dezbate și având certificare de trainer acordată de tocmai această problemă, oferind posibile soluții și rezolvări. Oracle, Silviu va vorbi despre experiența Robert Cristian este directorul grupului de tehnologie avansa practică cu JOOQ în prezentarea: jOOQ - an object oriented sată din cadrul sucursalei din România a abstraction, interracting with relational databases 3Pillar Global. El are rolul de a conduce efortul de R&D, iar domeniile sale de Big Data interes sunt arhitectura software, sisteme Tudor Mărghidanu, software devereactive și programarea funcțională. lopment manager și arhitect software la Prezentarea sa, What is Reactive Programming and why you Yardi România, este un pasionat de calshould care? , va aduce în discuție programarea reactivă, un conculatoare, care își găsește timp în ciuda cept la modă în ultimii ani. programului încărcat să se exprime și Florin Cardașim vine din Iași și conduce echipa de dezvolprin muzică, fiind toboșar în două trupe locale: Relative și Holy tare din cadrul Endava. În afară de cunoștințele sale tehnice este
6
nr. 40/octombrie, 2015 | www.todaysoftmag.ro
programare și un trainer care activează frecvent în cadrul comunităților locale. Este totodată co-fondator al CodeCamp Iași, una dintre cele mai mari comunități IT din România. El ne va prezenta Decisions in Architecture unde vor fi incluse și studii de caz care analizează impactul pozitiv sau negativ al unor decizii luate prea târziu sau repede.
.NET
Radu Vunvulea este un vechi colaborator al revistei TSM, remarcându-se prin cele mai multe articole publicate. Pasionat de tehnologiile Microsoft, a primit pentru cel de-al patrulea an consecutiv distincția Microsoft MVP. Prezentarea din acest an, How to manage one million messages per second using Azure, va arăta cât de ușor este să construiești o soluție care poate procesa un milion de mesaje pe secundă. Sesiunea va începe cu un demo real time și va continua cu conceptele construirii unui astfel de sistem în mai puțin de 8 ore folosind serviciile Azure. Andrei Larionescu, software architect la Yonder, cu mai mult de 8 ani de experiență pe tehnologii Microsoft, este pasionat de tehnologie și mereu în căutarea unor provocari tehnice în proiectele curente. Prezentarea sa, Implementing Ports-And-Adapters [in the .NET ecosystem], va prezenta cum putem să construim produse software fără a depinde de un anumit vânzător (vendor) de servicii sau de întreruprea unui proiect open-source. Cătălin Pop are peste 12 ani de experiență în tehnologiile Microsoft. Este foarte pasionat de tehnologie, iar de-a lungul timpului a introdus noi tehnologii în proiecte sau la nivel de companie precum: Entity Framework, WCF, Silverlight, ASP.Net MVC, WF, Rx-Framework și MEF. De asemenea, Cătălin este trainer de SQL Server, Entity Framework, ASP.Net, WPF, WCF, Workflow Foundation și alte tehnologii. Prezentarea sa, ASP.Net 5 (vNext) Performance Characteristics, va acoperi principalele caracteristici care vor apărea în următoarea platformă .NET
Cercetare
TODAY SOFTWARE MAGAZINE Prezentarea sa se intitulează Using artificial intelligence for automatizing software development și va arăta una dintre preocupările cercetărilor sale: crearea de sisteme inteligente capabile să scrie în mod autonom software. Dr. Sorin Coțofană vine din Olanda, de la Universitatea Delft, unde este profesor asociat la Facultatea Electronică, Matematică și Calculatoare. Este autor și coautor a peste 300 de lucrări de specialitate. A primit 12 premii de cea mai bună lucrare în cadrul conferințelor internaționale precum: 2012 IEEE Conference on Nanotechnology, 2012 ACM/ IEEE International Symposium on Nanoscale Architectures, 2005 IEEE Conference on Nanotechnology, 2001 International Conference on Computer Design. He served as Associate editor for IEEE Transactions on CAS I (2009-2011), IEEE Transactions on Nanotechnology (2008-2014), Chair of the Giga-Nano IEEE CASS Technical Committee (2013-2015), și IEEE Nano Council CASS representative (2013-2014). De asemenea, este editor asociat și senior editor la IEEE Transactions on Nanotechnology și membru în comitetul director la IEEE Transactions on MultiScale Computing Systems. La acestea se adaugă și calitatea de membru HiPEAC și membru senior în IEEE (Circuits and System Society (CASS) and Computer Society). Prezentarea sa cu titlul Reliable Chip Designs from Low-Powered Unreliable Components, va prezenta cercetările sale privind construirea unor unități de procesare și de stocare pornind de la componente nesigure din domeniul nanotehnologiei. Cătălin Golban și-a terminat studiile de master în 2008 la Universitatea Tehnică Cluj-Napoca în departamentul Procesare și recunoaștere de imagini. Din 2013 conduce un grup de cercetare și dezvoltare din cadrul Bosch, realizând sisteme de asistență a șoferului prin algoritmi de procesare video și dezvoltarea unei platforme software. Toate acestea sunt un pas înainte în ceea ce privește mașinile autonome. Acesta este de fapt și subiectul prezentării sale: Driver assistance systems and outlook into automated driving, în care va fi prezentată soluția de siguranță și confort din acest domeniu.
Dr. R ăzvan Fl ori an, d i re c tor al Institutului Român de Știință și Tehnologie (RIST), este autorul mai multor lucrări desSperăm că subiectele care vor fi abordate și calitatea profesipre a treia generație de rețele onală a speakerilor v-au convins să participați la Cluj IT Days! neuronale. Florian a fondat două companii Arxia și Epistemio.
www.todaysoftmag.ro | nr. 40/octombrie, 2015
7
eveniment
Comunitatea profesioniștilor în tehnologie se întâlnește în noiembrie la How to Web Conference 2015
P
este 1000 de profesioniști în domeniul tehnologiei vor participa pe 26 & 27 noiembrie la ediția cu numărul șase a How to Web Conference, cel mai important eveniment dedicat inovației și antreprenoriatului din Europa de Sud-Est.
Irina Scarlat
irina.scarlat@howtoweb.co PR Manager @How to Web & TechHub Bucharest
Aceștia vor avea ocazia de a cunoaște profesioniști de excepție din regiune, de a învăța bune practici din experiența invitaților, dar și de a se conecta la ecosistemul antreprenoriatului în tehnologie la nivel global. În paralel, se va desfășura și a patra ediție Startup Spotlight, competiție și program de mentorat pentru 32 de startup-uri cu potențial din CEE cu premii în valoare totală de 20.000 USD oferite de IXIA România.
Bune practici de la antreprenori și profesioniști cunoscuți la nivel global Pe scena principală a conferinței vor urca antreprenori consacrați și profesioniști cunoscuți la nivel global care vor împărtăși bune practici, vor prezenta studii de caz și vor aborda teme precum lansarea de produse cu potențial, metrici de produs, product marketing, content marketing, creșterea ratelor de conversie prin growth hacking, sau formarea și managementul echipelor.
Organizat în colaborare cu Telekom Romania, IXIA și Bitdefender, cu spriPrintre invitații care au confirmat parjinul partenerilor Microsoft, Avangate, ticiparea la How to Web Conference 2015 hub:raum, Amb as ada C anadei în se numără: România, Mozilla și Okapi Studio, How • Jan Reichelt, Co-Fondator & to Web Conference 2015 aduce împreună Președinte, Mendeley, companie care a peste 1000 de fondatori de startup-uri, transformat comunicarea în cercetarea product manageri, programatori, desigștiințifică, a crescut la 50 de angajați și neri, specialiști în marketing și lideri de câteva milioane de utilizatori, și a fost comunități din Europa Centrală și de Est. ulterior cumpărată de Reed Elsevier în Aprilie 2013; Pe lângă conținutul de calitate, care • Larry Gadea, Fondator & CEO, include studii de caz și discursuri practice, Envoy, startup care ajută companiile să participanții beneficiază de oportunități de își gestioneze vizitatorii și care a ridicat networking excelente cu actori importanți recent o rundă de finanțare de 15 milidin industria de tech și precum și de ocaoane USD de la Andreessen Horowitz; zia de a descoperi tendințele actuale. • Martin Eriksson, Co-Fondator, Mind the Product și Product Tank, profesionist cu peste 18 ani de experiență în
8
nr. 40/2015, www.todaysoftmag.ro
TODAY SOFTWARE MAGAZINE dezvoltarea de produse tech; • Kalman Kemenczy, Director of Product, Prezi.com, creatorii unuia dintre cele mai cunoscute produse din regiune; • Edial Dekker, Co-Fondator Gidsy & Hack de Overheid și ex-Senior Product Manager Eventbrite; • Bram Kanstein, Fondator Startup Stash, director de resurse pentru startup-uri care a ajuns la 230.000 vizualizări în doar 48 ore de la lansare, și ex-European Community Manager, Product Hunt; • S u j a n P a t e l , C o - F o n d a t o r, ContentMarketer.io și autor al cărții “100 Days of Growth” care a fost vândută în peste 10.000 de exemplare. Lista completă a invitaților la eveniment este disponibilă online pe site. Scena secundară a conferinței va aborda teme de interes pentru startup-uri și va aduce în discuție subiecte precum obținerea de investiții de la investitori de tip angel și/sau fonduri de venture capital, relația cu investitorii înainte și după investiție, evaluarea unui startup sau experiența într-un program de accelerare. La acestea se adaugă o serie de paneluri cu profesioniști din regiune, moderate de liderii comunităților locale.
Oportunități de networking cu actori importanți din industrie Unul dintre beneficiile principale oferite de How to Web Conference constă în oportunitățile de networking excelente pe care le oferă participanților, aceștia având ocazia să cunoască și să interacționeze în mod direct atât cu invitații speciali, cât și cu profesioniști de excepție, antreprenori și lideri de comunități din Europa Centrală și de Est. Aceștia vor intra în legătura unii cu alții, vor stabili întâlniri și vor primi recomandări de persoane în funcție de interese
folosind How to Web Meet, aplicație mobilă dezvoltată de echipa mReady special pentru conferință. În plus, ei se vor putea alătura meselor rotunde și sesiunilor de Q&A și “Ask the expert” care vor fi organizate în cele două networking lounges pe toată durata conferinței. Oportunitățile de networking vor continua și după finalizarea programului oficial al conferinței, la cocktailurile, evenimentele și petrecerile cu circuit închis organizate cu această ocazie.
Descoperă tendințele actuale & modul în care tehnologia schimbă lumea Nu în ultimul rând, participanții la How to Web Conference 2015 vor avea ocazia să descopere tendințele actuale în industrie vizitând zona de gadget expo unde vor fi expuse produse inovatoare din domeniul IoT și aparate care folosesc inteligență artificială. O demonstrație a felului în care funcționează o parte dintre aceste produse va avea loc și pe scena principală a conferinței. “How to Web este un eveniment care a crescut organic de la an la an cu sprijinul comunității profesioniștilor în tehnologie. Ne dorim să aducem cât mai multă valoare adăugată, așa că am adăugat, pe lângă conținutul practic pe care audiența noastră îl cunoaște deja, o gamă de activități de networking dedicate și prezentări de produse inovatoare. Toate acestea pentru a ne asigura că participanții la How to Web Conference 2015 au parte de o adevărata experiență!”, a declarat Daniel Dragomir, CEO, How to Web.
Ajuns la cea de-a patra ediție, programul oferă echipelor finaliste oportunitatea unică de a intra în legătură cu potențiali parteneri de distribuție, investitori și programe de accelerare, ajutându-le în același timp să câștige vizibilitate și expunere media în presa de profil. Participarea la Startup Spotlight este gratuită, iar echipele finaliste sunt selecționate de un juriu format din experți internaționali în domeniu. Aplicațiile sunt deschise până vineri, 30 octombrie, și se realizează prin completarea formularului disponibil online pe site-ul programului. „Pentru noi Startup Spotlight a fost momentul în care am prezentat public pentru prima dată produsul nostru, am urcat pe scenă în fața audienței și am primit feedback de la mentori cu experiență relevantă în domeniu. A fost practic punctul de plecare în călătoria noastră”, a declarat Cristiana Bogățeanu, Co-Fondator & CMO, Devicehub.net. How to Web este cel mai important eveniment dedicat inovației în tehnologie și antreprenoriatului din Europa de Sud-Est.
Oportunități pentru startup-uri la Startup Spotlight Participând la Startup Spotlight, 32 de startup-uri care dezvoltă produse tech cu potențial la scară globală vor beneficia de sesiuni de mentorat adaptate nevoilor proprii și vor intra în cursa pentru premiile în valoare totală de 20.000 USD oferite de IXIA, partener principal al programului.
www.todaysoftmag.ro | nr. 40/octombrie, 2015
9
business
Business growth hacking
S
au cum un program de inovaţie poate fi modul prin care să atragi oameni talentaţi, să creezi un mediu de lucru unic, să dezvolţi produse noi şi să deschizi oportunităţi de business în pieţe variate.
Tudor Bîrlea
t@thisisnotastorm.com Fondator @This Is Not a Storm
Sunt sigur că toată lumea a observat că industria de IT din Cluj are de un an încoace câteva iniţiative foarte interesante: Imprezzio Idea Challenge, Seed4Tech şi foarte curând acceleratorul de cultură Life is Hard. Pe cât de diferite par a fi aceste iniţiative, toate fac parte din conceptul de inovaţie deschisă. Vom încerca să expunem trendurile care au provocat nevoia pentru aceste programe: • concurenţa pentru forţa de muncă. Industria de IT are nevoie de mai mulţi oameni cu înaltă pregătire tehnică în comparaţie cu disponibilitatea pe care o oferă în momentul actual piaţa. Aceasta creează un context în care companiile concurează între ele pentru a atrage talent, mizând în primul rând pe pachete salariale atractive. Totuşi, oamenii talentaţi nu caută doar atât; negăsind companiile cu viziune dincolo de salariul de sfârşit de lună, aleg să lucreze pentru ei înşişi, mergând pe drumul antreprenoriatului, ceea ce acutizează criza forţei de muncă. • trecerea de la servicii la produs. Modelul de outsourcing nu permite scalarea veniturilor companiei, iar cheltuielile crescânde cu personalul reduc profitabilitatea. Acestea din urmă sunt costuri fixe, dar câştigurile acumulate din proiectele clienţilor oscilează. Peste
10
nr. 40/2015, www.todaysoftmag.ro
toate acestea, contextul global aduce mult mai multe opţiuni pentru un client ce vrea să externalizeze un proiect software. Natural, companiile de IT s-au orientat spre produse. Crearea şi extinderea portofoliului reprezintă priorităţi în agendele lor, dar aceasta se poate întâmpla doar dacă lângă talentul tehnic vine şi o componentă de business. • marketing şi branding. Capacitatea de a intra pe pieţe noi şi de a te menţine în atenţia clienţilor pe pieţele în care activezi consumă resurse serioase. Dar trebuie să recunoaştem că este loc de îmbunătăţire aici pentru noi toţi. Toate aceste trenduri au soluţii consacrate. Problema este că toată lumea ştie de aceste soluţii şi atunci ROI-ul lor este din ce în ce mai scăzut. Dar acesta nu este singura problemă: soluţiile sunt de cele mai multe ori orientate către simptome şi evită abordarea cauzelor. În fine, majoritatea consultanţilor vând soluţii bazate pe tehnologii depăşite: managementul ştiinţific aplicat în majoritatea afacerilor din România a fost dezvoltat în 1850. Câteva companii mizează pe soluţii ce în loc să lupte cu trendurile, creează contexte unde soluţiile să vină spre ele tocmai datorită trendurilor existente. Revin la conceptul de inovaţie deschisă, concept care spune că inovaţia poate apărea mai rapid, mai uşor şi cu un consum de resurse mai scăzut, într-un
context colaborativ, unde compania se coordonează cu parteneri externi experţi, companii şi antreprenori - şi interni - angajaţii cu spirit antreprenorial şi viziune - pentru a-şi atinge obiectivele strategice de inovaţie. Forward Partners, unul dintre studiourile de startupuri din UK, atrage antreprenori cu produse la stadiul de idee şi participă la construcţia businessului cu resurse, capital şi servicii - în calitate de investitori. Beneficiile modelului sunt multiple: compania construieşte doar produse validate de către antreprenori, îşi formează o imagine şi cultură unică şi are două surse de venit - produsele profitabile şi vânzarea participaţiilor la capital, în cazul unui exit. Un alt model este Rocket Internet. Diferenţa majoră este că în acest caz compania nu se mai comportă că un investitor ci deţine majoritatea participaţiei în produsul nou creat. Antreprenorii sunt atraşi din rândurile celor cu ani buni de experienţă de piaţă în diferite verticale sau ideile sunt formulate intern (uneori chiar “împrumutate” din alte pieţe.) Există o singură diferenţa majoră între cele două abordări, într-un caz compania comportându-se că un investitor, în celălalt internalizând ideea. De notat este, că pentru a canaliza lead-urile, startup studio-ul poate debuta printr-un hackathon sau un alt tip de eveniment care să antreneze oamenii interesaţi. Un aspect interesant este extinderea acestor modele, fiind active peste 110 startup studios global. Poate să apară o problemă legată de terminologie, pentru
că aceste programe de inovaţie poartă şi alte denumiri: startup foundry, product lab, venture studio, company builder. Pentru companiile ce au un proces bine pus la punct prin care să poată valida viabilitatea ideii de produs - cum este Fastlane Ventures din Rusia, care lansează o companie de la zero în 50 de zile - studioul de startup-uri reprezintă cel mai rapid şi simplu mod de a genera noi produse. Notabil este că aceste programe de inovaţie sunt avantajate de existenţa unor parteneriate cu sindicate de investitori sau fonduri de investiţii de tip seed. O astfel de alianţă este mutual avantajoasă - compania nu mai este nevoită să investească lichidităţi iar fondul de investiţii are o sursă de companii investibile. O companie ce are şi un astfel de studio este fără îndoială mult mai atractivă pentru programatorii talentaţi. Mai lipseşte o componentă aici, componentă ce poate influenţa decisiv succesul programelor de inovaţie - cultura. Validarea şi lansarea de produse noi este o activitate ce presupune un mod diferit de organizare a personalului şi a resurselor. Apoi, mai este necesară adopţia unor metodologii ce ţin de construcţia de business. În aceste condiţii cum putem dezvolta o cultură în care toţi membrii echipei comunică şi colaborează mult mai eficient? Cum putem să construim un context în care oamenii sunt cu iniţiativă şi nu au nevoie de supervizare pentru a rezolva problemele ce apar? Răspunsul este un nou model de program de inovaţie: acceleratorul de cultură. În cadrul acceleratorului membrii echipei experimentează cu trei aspecte: • noi moduri de organizare şi
colaborare - flat teams, open allocation, agile teams, holacracy; • noi metodologii - lean startup, customer development, staged rollout; • noi instrumente - OKR-uri şi instrumente specifice startup-urilor pentru vânzări şi marketing. Toate bune şi frumoase, dar de unde pot începe? Un program de inovaţie presupune trei paşi precişi pentru a fi bine setat de la început. Este important să îi urmărim dacă dorim ca rezultatele să fie predictibile şi măsurabile. Primul pas este setarea strategică a programului. Acest pas presupune precizarea obiectivelor, a rezultatelor dorite şi a tipului de program ce va fi implementat. Al doilea pas presupune planificarea detaliată a programului: activităţile şi persoanele implicate, agenda şi modul de desfăşurare al programului. Cel de-al treilea pas este implementarea. Din experienţele anterioare am învăţat că este de preferat să se pornească cu un program pilot, care să ruleze la scară mică pentru o perioada determinată de timp. Un MVP, dacă doriţi. Pe baza lucrurilor învăţate, programul de inovaţie se va adapta sau scala pentru a aduce maximul de valoare. Dacă doriți să înţelegeți mai bine cum puteți beneficia de pe urma unui program de inovaţie şi ce presupune acesta, vă invit să intrați în conversaţie cu noi. Ne găsiți pe thisisnotastorm.com. Pentru că suntem o companie deschisă, toate resursele, studiile de caz şi instrumentele ce le folosim pot fi descărcate de pe site-ul nostru.
Young spirit Mature organization A shared vision Join our journey! www.fortech.ro
www.todaysoftmag.ro | nr. 40/octombrie, 2015
11
eveniment
Cel mai mare hackathon din zona de sud-est a Europei revine la Timișoara cu ediția a doua
Î
n perioada 6-8 noiembrie, Timișoara Startup Hub, Asociația Banat IT, împreună cu rețeaua de comunități IT locale și o echipă de voluntari motivați și entuziaști, organizează cea de-a doua ediție a HackTM, cel mai mare hackathon de software și hardware din sud-estul Europei, sperând să adune din nou, peste 500 de participanți.
HackTM este un hackathon de dimensiuni mari în domeniul software & hardware, ce își propune încă de la prima ediție, să fie un eveniment cu tradiție, ce are loc în fiecare toamnă la Timișoara. Pa r t i c ip a nț i i î n s c r i ș i l a a c e s t eveniment, pasionați de inovațiile tehnologiei actuale: elevi, studenți, angajați sau specialiști din domeniul IT vor dezvolta proiecte individuale sau grupați în echipe. Domeniile principale de acțiune sunt: city projects, automotive, eHealth, game development, open (IoT, hardware, mobile development și web development, etc.), dar și junior league coding. Cele mai bune proiecte dezvoltate în cadrul hackathon-ului vor fi premiate cu diferite gadgeturi, bilete la conferințe internaționale, dispozitive hardware și o serie de alte premii speciale oferite de către sponsorii noștri.
de co-working (spațiu de lucru colaboraPentru mai multe informații, vă rugăm tiv) ce oferă servicii care includ accesul la accesați: săli de conferințe, servicii de consultanță 1. http://hacktm.ro/2015 și contactul cu mediul de afaceri local și 2. https://w w w.faceb o ok.com/ regional,training-uri de specialitate sau hacktm2015 networking. Misiunea StartupHub este 3. https://twitter.com/HackTM2015 de a facilita dezvoltarea unui ecosistem al antreprenoriatului în domeniul tehnologiei și al industriilor creative din Timișoara. Banat IT este o asociație înființată în anul 2013 cu scopul de a menține comunitatea IT informată și conectată la diverse oportunități de a conduce această industrie spre mobilizarea continuă a elementor de valoare, asemeni unui pol de excelență. Asociația Banat IT inculde și o largă comunitate în social media, menită să servească și să vină în ajutorul tuturor părților interesate din industria IT locală și regională.
Co-organizatorul evenimentului, Aries-TM și partenerul principal Audials by Rapid Solution vor oferi tuturor membrilor echipei câștigătoare a marelui premiu câte un bilet la Mobile World Congress din Barcelona, în valoare de 800 EUR. Este important de menționat, faptul că biletul la conferința din Barcelona permite și participarea la marile hackath-oane din cadrul evenimentului. Persoanele interesate se pot înscrie începând de luni, 26.10.2015 accesând pagina evenimentului1. Despre echipa de organizare Timișoara Startup Hub este un spațiu 1 h t t p : / / w w w . e v e n t b r i t e . c o m / e / hacktm-2015-tickets-18846888551
12
nr. 40/octombrie, 2015 | www.todaysoftmag.ro
Patricia Borlovan patricia@hacktm.ro Coordonator @ HackTM
eveniment
TODAY SOFTWARE MAGAZINE
Mobile Operating Systems (MobOS) Community
M
obile Operating Systems (MobOS) Community are ca scop consolidarea unei comunități în jurul domeniului de dezvoltare de aplicații pentru telefoanele mobile – Android și iOS. Pe lângă comunitatea virtuală existentă care contribuie cu articole și studii de caz, ne propunem să facilităm interacțiunea fizică sub formă de evenimente periodice specializate pe teme specifice. În data de 6 octombrie 2015 am organizat unul din aceste evenimente cu tema ”IoT” și ”Robots”, deoarece este clar identificat un interes ridicat pe piață pentru aceste concepte. Evenimentul a facilitat desfășurarea a trei prezentări: • Prima, cea a lui Laszlo Tofalvi, a fost despre ROS *Robot Operating System – sistemul de operare folosit pentru manevrarea roboților moderni industriali 4.0 într-o industrie în continuă evoluție. • Ioan-Paul Pirau și Roman Reaboi a prezentat o soluție implementată de Accenture și Intel pentru a oferi o idee inovativă de a crea o bucătărie inteligentă. • În final, Liviu Stirb ne-a împărtășit din experiența pe care a avut-o construind o dronă funcțională. Evenimentul a fost găzduit de Accenture, deoarece IoT/IIoT Lab este un concept pe care Accenture îl promovează pe lângă deja cunoscutele Tech Labs și Ionnovation Lab unde tehnologii noi sunt testate cu scopul de a dezvolta competențe și proof of concepts. Accenture Industrial Software Solution (AISS) axată pe IoT Industrial a lansat la mijlocul lunii septembrie 2015 IoT/IIoT Lab, care va deveni un
loc unde persoane pasionate precum cei de la G.R.E.E.N și persoane din IT entuziasmate vor avea ocazia să pună în practică ideile tehnice pe care le au. G.R.E.E.N are deja membri și din afara AISS care au stabilit întâlniri regulate. Laboratorul are deja câteva dispozitive precum Baxter, TurtleBot, Double, Lego Mindstorms, Parot drone, senzori și alte echipamente electrice pentru a putea construi propriile circuite. Pe lângă acești roboți, laboratorul beneficiază de Google Glass, Vuzix, Oculus Rift, ceasuri inteligente Moto 260, Apple Watch și o varietate de alte instrumente și echipamente. ”Sunt încântat că am putut participa la un eveniment în care atât de multă pasiune plutea în aer. S-a văzut asta din expresiile și întrebările audienței, din discuțiile aprinse în laboratorul IoT prelungite chiar și după terminarea programului, din investițiile personale de mii de EUR a unora fără să aibă în vedere recuperarea banilor precum și din detaliile fine cu care au descris unele ”jucării” care de fapt erau tehnologii state-of-the-art. Nu în ultimul rând, din reacția rapidă a altora care au asamblat sisteme întregi pe ultima sută de metri ca participanții să poată înțelege mai bine ce înseamnă IoT & Robotics. Mulțumim Accenture că investește în laboratorul IoT și-l deschide și comunităților din Cluj, dându-ne ocazia să ne întâlnim într-un grup așa de frumos. De asemenea, mulțumim prietenilor de la MobOS că ne-au ales! ” (Kovacs Zsolt, Mobile Applications Capability Group Lead, Accenture)
“O introducere foarte bună a tematicii IoT și roboți industriali. Bineînțeles să nu uităm ”quadcopters”, care sunt mereu amuzanți. De mult îmi doresc să experimentez folosirea Intel Edison și Raspberry Pi și pot spune că prezentările au fost foarte folositoare și motivante. Mulțumesc pentru oportunitatea de a afla și învăța mai multe despre fascinanta lume IoT”. (Valentin Radu, Mobile Consultant, Participant, Endava) Despre Mobile Operating Systems (MobOS) Conference – Ediția 2016 MobOS găzduiește anual cea mai mare conferință dedicată pasionaților de dezvoltare de aplicații mobile. Conferința are două obiective majore: (1) împărtășirea cunoștințelor tehnice de către experți în domeniu – vorbitori internaționali reprezentativi pentru aria lor de expertiză și (2) punerea în practică a cunoștințelor prin oferirea de ateliere personalizate nevoilor participanților – dezvoltare de mini-aplicații și demonstrații ale unor dispozitive deja folosite în afara țării. MobOS 2016, eveniment ajuns la a treia ediție, va aduce un concept nou: pe lângă ziua de conferință și ziua pentru ateliere, vom avea și un stand expozițional cu dispozitive de ultima generație. Echipa MobOS este o echipă experimentată și cu siguranță va oferi calitate și de această dată. Evenimentul va avea loc în perioada 18-19 Februarie 2016. Vă invităm să participați! Andreea Pârvu
Andreea.Parvu@endava.com Organizator @ MOBOS
www.todaysoftmag.ro | nr. 40/octombrie, 2015
13
comunități
Comunităţi IT
C
alendarul paginii de comunități a devenit neîncăpător pentru toate evenimentele lunii noiembrie. Vă recomandăm să mergeți la toate dacă aveți timp. Dacă sunteți în Cluj pe finalul lunii vă recomandăm bineînțeles Cluj IT Days. Un alt proiect pe care îl lansăm este implicarea comunităților tehnice, dorim să le promovăm mai mult pe cele active, vă invităm să ne scrieți pentru a începe o colaborare prin publicarea de articole. Transylvania Java User Group Comunitate dedicată tehnologiilor Java. Website: www.transylvania-jug.org Data înfiinţării: 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 înfiinţării: 06.02.2012 /Nr. Membri: 2424/Nr. Evenimente: 32 Cluj Business Analysts Comunitate dedicată analizei de business Website: www.meetup.com/Business-Analysts-Cluj Data înfiinţării: 10.07.2013 / Nr. Membri: 91 / Nr. Evenimente: 8 Cluj Mobile Developers Comunitate dedicată tehnologiilor mobile Website: www.meetup.com/Cluj-Mobile-Developers Data înfiinţării: 05.08.2011 / Nr. Membri: 264 / Nr. Evenimente: 17 The Cluj Napoca Agile Software Meetup Group Comunitate dedicată metodelor Agile de dezvoltare software. Website: www.agileworks.ro Data înfiinţării: 04.10.2010 / Nr. Membri: 437 / Nr. Evenimente: 93 Cluj Semantic WEB Meetup Comunitate dedicată tehnologiilor semantice. Website: www.meetup.com/Cluj-Semantic-WEB Data înfiinţării: 08.05.2010 / Nr. Membri: 192/ Nr. Evenimente: 29 Romanian Association for Better Software Comunitate dedicată oamenilor cu experiență din IT indiferent de tehnologie sau specializare. Website: www.rabs.ro Data înfiinţării: 10.02.2011 / Nr. Membri: 251/ Nr. Evenimente: 14 Tabăra de testare Comunitate formată din testeri și alți profesioniști din industria IT care, în cadrul unor întâlniri informale lunare, împărtășesc din cunoștințele proprii și învață din experiențele profesionale ale celorlalți membri. Website: www.tabaradetestare.ro Data înfiinţării: 15.01.2012/Nr. Membri: 1243/ Nr. Evenimente: 107
14
nr. 40/octombrie, 2015 | www.todaysoftmag.ro
Calendar Octombrie 28 (Cluj) Lansarea numărului 40 al Today Software Magazine www.todaysoftmag.ro Noiembrie 3 (Cluj) Conferinta SAP Business Intelligence eventbrite.com/e/conferinta-sap-business-intelligenceregistration-18669807898 Noiembrie 6-8 (Timișoara) HackTM hacktm.ro/2015/ Noiembrie 11 (Cluj) Startup Grind Cluj-Napoca Hosts Bogdan Herea meetup.com/StartupGrindClujNapoca/events/225737432/ Noiembrie 11 (Cluj) Emerson IT Conference eventbrite.com/e/emerson-it-conference-registration18954055089 Noiembrie 13-14 (Cluj) Typo3 conference t3ee.org Noiembrie 14 (Cluj) Global Day of Coderetreat 2015 - Cluj-Napoca coderetreat.org/events/global-day-of-coderetreat-2015 -cluj-napoca-romania Noiembrie 14 (Cluj) Hello Reactive World! eventbrite.com/e/hello-reactive-world -cluj-napoca-tickets-19252484700 Noiembrie 24-25 (Cluj) Cluj IT Days 2015 - recomandarea TSM itdays.ro Noiembrie 26-27 (București) How To Web 2015 2015.howtoweb.co
programare
Îmblânzirea Elefantului – Cum Funcționează Hadoop
B
ig Data a devenit unul dintre cele mai folosite cuvinte din domeniul IT; poate fi considerat chiar un buzzword, iar pe internet găsim sute de articole care definesc cuvântul și îi stabilesc sensurile. Dar trecând peste toate acestea, noile paradigme impuse de acest concept și tehnologia care îl face posibil continuă să se dezvolte ca exponenți, ducând și la dezvoltarea companiilor care le adoptă. Alexandru Păcurar alexandru.pacurar@propertyshark.com System Administrator @ Yardi România
Dacă vorbim despre Big Data și despre tehnologiile din spate, trebuie să vorbim și despre Hadoop, care este baza pentru multe dintre acestea. Hadoop este unul dintre proiectele principale ale Apache Software Foundation și există pe piața IT de aproape zece ani. Inițial, a fost proiectat pentru a distribui un alt proiect născut în incubatorul de idei Apache, un web-crawler numit Nutch, fiind inspirat de progresul de la Google, care a devenit public datorită articolului MapReduce: Simplified Data Processing on Large Clusters din 2004. Zece ani mai târziu, această pagină reprezintă dovada că Hadoop a fost adoptat pe piața tehnologică din prezent. Scopul acestui articol prin urmare, având în vedere că a fost conceput din perspectiva unui administrator de sistem, este de a clarifica unele aspecte legate de instalarea, configurarea și administrarea unui cluster Hadoop, dar și de a sublinia progresul uimitor înregistrat în acest domeniu, care face ca adoptarea unei asemenea tehnologii să fie mult mai simplă.
Cum funcționează? O scurtă introducere Să luăm lucrurile pe rând. Cum funcționează ? Acest articol se va axa pe ramura 2.x a Hadoop deoarece are cea mai activă comunitate în prezent și deoarece pe aceasta ramură s-a dezvoltat ecosistemul cel mai mult. Hadoop are două componente principale: HDFS (Hadoop Distributed File System) și YARN (Yet Another Resource Negotiator) și, după cum am lăsat să se înțeleagă mai sus, folosește paradigma computațională MapReduce. Această paradigmă reprezintă baza Hadoop, deoarece sistemul a fost conceput în jurul ideii de data locality, în sensul că este mult mai rapid și mai ușor să trimiți computații - gândiți-vă la jars sau chiar scripturi bash- unde se află datele decât să aduci sau imporți datele - gândiți-vă la dimensiuni de ordinul terabiților- prin rețea unde se află aceste scripturi. Prin urmare, decizia de design de a avea două subsisteme principale devine mai clară, deoarece ai nevoie de un sistem care să se ocupe de date și un altul care să se ocupe de computație, dar și de managementul resurselor, după cum vom
www.todaysoftmag.ro | nr. 40/octombrie, 2015
15
programare Îmblânzirea Elefantului – Cum Funcționează Hadoop vedea imediat. Fără a mai face alte precizări, să discutăm puțin despre componenta HDFS. După cum sugerează și numele, HDFS este un sistem distribuit de fișiere care implementează un standard POSIX „relaxat” și care a fost conceput pentru a fi rulat pe commodity hardware. Cea mai simplă versiune a unui cluster HDFS are două tipuri de daemons: Namenode și Datanode, într-o arhitectură de tip master-slave. HDFS expune fișierele care sunt păstrate ca blocuri de 128MB pe Datanodes. De obicei, în cluster există un singur Namenode, al cărui rol este de a păstra metadata din sistemul de fișiere. El reglementează accesul utilizatorilor la fișiere, dar și operațiuni precum deschiderea, închiderea și numirea de fișiere. Totodată, menține o mapare a blocurilor aflate pe Datanodes. Datanodes mențin toate block-urile din care este compus sistemul de fișiere și sunt responsabili pentru managementul cererilor de scriere și de citire.
HDFS a fost conceput cu o mare toleranță la greșeli și este implementat după cum puteți vedea în imagine, prin replicarea de block-uri între Datanodes, un concept de design care ajută și la distribuția computațiilor, dar despre acest subiect vom vorbi mai târziu. HDFS poate fi configurat cu High Availability, care presupune posibilitatea de „rolling restarts” și totodată împiedică apariția de downtime în cazul unui downtime neplănuit al Namenode-ului. A doua componentă Hadoop, care se ocupă de computații, este YARN (cunoscută și sub numele de MapReduce 2.0). Este disponibilă doar în varianta 2.x. YARN își împarte funcționalitatea între trei tipuri de daemons: ResourceManager, NodeManager și ApplicationMaster. Arhitectura YARN funcționează de asemenea pe principiul master/slave deoarece cluster-ul are un singur ResourceManager care deservește nevoile resurselor (memorie și CPU-uri de la 2.6) pentru întregul cluster, pe când NodeManager-ii sunt răspândiți la nivelul tuturor host-urilor din cluster. În linii mari, ne putem gândi la ResourceManager ca la planificatorul CPU al unui sistem de operare și la NodeManagers ca la procesele unui sistem, care cer timp pe procesor, un concept cunoscut și ca Datacenter as a Computer. Pentru a vedea toate părțile ca ansamblu, putem analiza ciclul de viață al unui task din YARN. Unitatea computațională din YARN este container-ul care este un JVM în esență. Acest container poate prelua două funcții: poate fi un mapper sau poate fi un reducer. Odată ce task-ul este trimis spre execuție, ResourceManager alocă un ApplicationMaster pe unul din nodurile din cluster, care devine la rândul său responsabil de execuția task-ului. ApplicationMaster negociază cu ResourceManager pentru și mai multe resurse, dar și cu NodeManagers care lansează container-ele necesare pentru a finaliza task-ul. Din cauza principiului de locație a datelor, ApplicationMaster poate cere ca diferiți NodeManagers să lucreze la același task (dacă NodeManagers se găsesc pe noduri cu date duplicat). Această abordare este și mai utilă în cluster-e mari, care au o rată de
16
nr. 40/octombrie, 2015 | www.todaysoftmag.ro
eșec mai mare, deoarece face ca aceste eșecuri să fie invizibile pentru task-urile date. Și NodeManagers interacționează cu ResourceManager, dar numai pentru a oferi informații despre resursele disponibile.
Unele trăsături ale YARN care merită amintite sunt posibilitatea de configurare a cluster-ului, cu High Availability, o posibilitate care, începând cu lansarea 2.6 transferă și statutul task-urilor de la ResourceManagerul activ la cel pasiv în cazul unui eșec; aceasta înseamnă că acel cluster poate opera la parametri normali în timpul unui rolling restart sau al unui downtime neprevăzut. O altă trăsătură ar fi existența cozilor care permit cluster-ului să fie folosit în echipe diferite deodată, cu unele garanții.
Tool-uri din ecosistem După o introducere mai extinsă, ajungem la miezul problemei: crearea unui cluster Hadoop și menținerea lui, sau cu alte cuvinte provocarea infrastructurii. Această provocare poate fi împărțită în trei provocări mai mici: instalarea cluster-ului, configurarea lui și nu în ultimul rând menținerea lui. Aici avem mai mulți competitori care oferă soluții menite să rezolve această problemă, cum ar fi Hortonworks, Cloudera și chiar Oracle. Eu am ales soluția oferită de Hortonworks, numită Ambari. Să începem cu instalarea cluster-ului Hadoop. Ambari se bazează pe o arhitectură de tip master/slave, unde master-ul are o interfață care permite utilizatorului să controleze cluster-ul, pe când „sclavii” sunt poziționați pe toate nodurile care compun cluster-ul Hadoop și care execută acțiunile comandate de master. Instalarea Ambari e destul de simplă, în sensul că trebuie să adaugi „the repository” pentru distribuția linux și apoi să instalezi pachetul Ambari-server prin managerul de pachete. Odată instalat, trebuie să configurați autentificarea prin chei ssh de la host-ul ambari spre toate nodurile din cluster, iar de aici înainte toate interacțiunile vor fi făcute prin interfața web Ambari. Dacă aveți un cluster deja configurat și trebuie să adăugați mai multe noduri, interacțiunea este aceeași: adăugați cheia ssh publică pe noul server (sau faceți un deploy cu ajutorul puppet) și apoi din interfața web Ambari, trebuie doar să adăugați nodul la cluster și Ambari are grijă de partea de deployment. Acestea fiind spuse, prima dintre provocări este rezolvată. Pentru partea de configurare, Ambari expune toate fișierele de configurație prezente într-un cluster Hadoop în interfața sa web, oferindu-vă posibilitatea de a le edita. Începând cu versiunea 2.1.2 de la Ambari, unele proprietăți sunt prezentate într-o manieră mai prietenoase utilizând slider-e. O caracteristică menită să ușureze munca de integrare necesară pentru cluster
TODAY SOFTWARE MAGAZINE este versionarea configurațiilor Ambari. Orice modificare adusă configurațiilor generează o nouă versiune a acelei configurații, deci poți să mergi înapoi și prin câteva click-uri recuperezi totul dacă a apărut o eroare. Acestea fiind spuse, am acoperit și cea de-a doua provocare mai mică. Ultimul aspect analizat este legat de mentenanța cluster-ului, aspect pe care Ambari încearcă să îl simplifice. Permite un control granulat asupra tuturor proceselor și serviciilor ce funcționează în cluster, astfel că poți să le pornești sau să le oprești, dar oferă și posibilitatea de a porni și de a opri componente mai mari, cum ar fi subsistemul YARN sau HDFS. Orice modificare a configurației necesită un restart de la daemon-ii corespondenți și Ambari îi marchează pe cei care rulează cu stale configs și furnizează și posibilitatea de a restarta numai componentele afectate. Adăugarea unui serviciu nou (cum ar fi Spark, Oozie, Scoop) se face din cadrul interfeței web într-o manieră foarte directă și simplă. Începând cu versiunea 2.0, are un sistem de monitorizare și alertă integrat, numit ambari-metrics, care din nou ușurează munca de integrare care ar fi fost necesară dacă foloseam Nagios sau Graphite. Metricile poti fi adaptate și organizate în interfața web. Un alt avantaj al Ambari care merită menționat este că are suport pentru actualizarea stack-ului Hadoop în timp ce rulează, ușurând mult sarcina unui cluster maintainer. Având în vedere toate acestea putem considera provocarea infrastructurii drept rezolvată, sau cel puțin adusă foarte aproape de finalitate.
aceasta ar presupune niște script-uri sau comenzi de la linia de comandă sau niște task-uri duse la capăt cu Jenkins, dar cu Hue puteți să încărcați script-urile pe HDFS și să creați un workflow de tipul drag and drop, care poate fi salvat și rulat de mai multe ori. Oferă și posibilitatea de a planifica joburi prin coordonatorul său. Alte avantaje care sunt foarte folositoare ar fi: o interacțiune a sistemelor de fișiere mult mai bună de la interfața web decât cea oferită de Hadoop, dar și controlul asupra task-urilor oferit prin interfața web, care la fel este mult mai bun decât ceea ce oferă Hadoop by default, deoarece îți permite să oprești task-uri folosind interfața. Hue poate fi integrat cu LDAP, ceea ce înseamnă că fiecare developer care interacționează cu cluster-ul prin Hue vede doar propriul context, adică propriul lui home directory în HDFS și propriile task-uri în YARN.
Concluzii Scopul acestui articol a fost acela de a oferi o privire de ansamblu asupra cerințelor de arhitectură implicate de un cluster Hadoop și de a propune o soluție pentru a le rezolva în ideea de a încuraja și de a ușura adoptarea acestei tehnologii noi. Era o părere personală a mea că oamenii sunt interesați de Hadoop și MapReduce, dar că se simt intimidați de necesitățile de infrastructură pentru a rula un cluster. Consider că am demonstrat că datorită ecosistemului care s-a format în jurul Hadoop, aceste necesități nu mai pot fi privite ca impedimente.
Hue Ca un bonus, aș dori să menționez un alt tool care există în ecosistemul Hadoop și acesta este Hue. Hue este un proiect opensource al cărui scop este de a simplifica interacțiunile cu cluster-ul din punctul de vedere al unui developer. Integrează multe dintre proiectele dezvoltate sub Hadoop într-o singură interfață și îi permite developer-ului să lucreze mai repede și într-un mod mai vizual. Trăsătura care este cea mai importantă din punctul de vedere al unui developer este integrarea cu OOZIE. Să presupunem că ați vrea să folosiți un cluster Hadoop și să rulați o serie de task-uri care presupun mai mulți pași , cum ar fi obținerea de date din surse externe, prelucrarea lor și apoi transmiterea lor înapoi într-o sursă externă. Într-un setup Hadoop normal,
www.todaysoftmag.ro | nr. 40/octombrie, 2015
17
programare
Connected Home Provocări și tendințe în domeniu
S
mart Home (Casa inteligentă) este unul dintre cazurile de utilizare cele mai cunoscute ale Internet of Things (IoT) în spațiul consumatorului, cu o mare expunere pentru inginerii software datorită numărului în creștere al producătorilor de produse care sunt obligați să ofere servicii cu valoare adăugată pentru a ține pasul cu competiția. Smart Home este mai mult decât Home Automation (Automatizarea locuinței): are în plus broadband, entertainment, optimizarea energiei, sănătate și siguranță pe lângă automatizare. Kovacs Zsolt kovacs.zsolt@accenture.com Mobile Applications Capability Group Lead @ Accenture
Ca actor important în domeniul IoT și IoT industrial (IIoT), Accenture are deja o contribuție majoră în domeniul Smart Home oferind soluții cap-coadă și platforme clienților săi sub denumirea de Connected Home. În acest articol vom analiza provocările întâmpinate de clienți, producători, dezvoltatori și alți stakeholderi. Provocările variază de la interconectivitatea hardware și software la probleme de utilizare pe tot parcursul. Între acestea, problemele de monetizare și securitate joacă un rol major. În final, vom încerca să ghicim pe baza tendințelor actuale ce se așteaptă în continuare în acest domeniu. Prezentăm în rândurile de mai jos o mostră de caz de utilizare pentru a înțelege mai bine contextul.
Exemplu caz de utilizare Michael locuiește în Germania rurală. El are o casă echipată cu o mașină de spălat Miele, termostat Nest, boiler Bosh Buderus, jaluzele-role automate și întrerupătoare electrice cu conexiune pentru a controla dispozitivele. Pentru siguranță, el are senzori de mișcare instalați în diferite încăperi, combinați cu o cameră Samsung SmartCam. El are nevoie de o stație meteo pentru exterior, așa că va cumpăra una de la Netatmo. Pentru a fi autosuficient din
18
nr. 40/2015, www.todaysoftmag.ro
punct de vedere energetic și pentru a-și reduce facturile, Michael achiziționează panouri solare și baterii pentru a înmagazina energia suplimentară. Cu toată această tehnologie în jurul său, lui Michael îi este greu să își amintească unde și-a lăsat telecomanda pentru jaluzelele-role și trebuie să facă față constant provocărilor legate de cablare pentru echipamentele cu cablu. El trebuie să deschidă diferite aplicații pentru a controla luminile Philips Hue și camera SmartCam, iar Nest și Buderus nu reușesc să comunice între ele. Michael află că există furnizori de platforme care rezolvă unele din problemele sale, așa că telefonează unui specialist binecunoscut, Louis, pentru ca acesta să îi ofere cea mai bună alternativă pentru situația sa. Louis îi propune să instaleze Revolv pentru a integra întregul hardware sub o singură mantie. El repară, de asemenea, și problema de conectivitate a lui Michael dintre Buderus și Nest, prin instalarea unui panou releu pe boilerul său. Acum Michael poate folosi sistemul. După câteva luni, Michael își dă seama că facturile sale pentru energie scad considerabil, după ce a implementat sugestiile furnizorului său de energie Smart Grid. Nu mai este îngrijorat în legătură cu siguranța casei sale pe perioadele în care este plecat
TODAY SOFTWARE MAGAZINE și chiar primește un bonus de la compania sa de asigurări. El a adăugat confort prin faptul că și-a putut conecta toate dispozitivele într-un mod care îi aduce valoare, ca de exemplu: alarma sa este reglată în funcție de condițiile de vreme și de trafic și, printre altele, jaluzelele sale coboară într-o zi însorită, astfel încât soarele să nu încălzească locuința în mod inutil. Va urma…
Pot face și eu la fel? Unele dintre cazurile de utilizare depind de context, altele pot fi reconstituite oriunde. Smart Grid nu este încă prezent peste tot și nu toate companiile de asigurări oferă acest serviciu. Informațiile de trafic nu sunt încă monitorizate pe toate drumurile. Totuși, toate aceste servicii câștigă teren și în viitorul apropiat va fi posibil să integrăm câteva, în timp ce altele, doar pe termen mai lung.
Provocări din diferite puncte de vedere:
Consumatorii: După cum am putut vedea, Michael preferă soluțiile ”instalează și uită” (ca și 60% dintre clienți). Dispozitivele ar trebui să fie autonome din punct de vedere energetic și oamenilor nu ar trebui să le pese de actualizările de securitate. Michael are nevoie de un mecanism de control simplu și ușor care să permită majoritatea cazurilor sale de utilizare în continuă schimbare, mai ales că el vrea să își păstreze opțiunile deschise când vine vorba de HW. I-ar plăcea să evite neplăcerile care pot să apară dacă unul dintre dispozitivele sale existente este sau nu compatibil cu cel pe care dorește să îl cumpere. Dezvoltatorii și integratorii de servicii: Louis, pe de altă parte, se confruntă cu o provocare mult mai mare. Există protocoale diferite, implementări de protocoale în forma bibliotecilor și definiții ale obiectelor inteligente astfel încât aceste dispozitive inteligente să își poată transmite capabilitățile și să poată conlurca. Din aceste motive, soluțiile dezvoltate în zilele noastre au un Smartphone sau un Home Controller în centrul ecosistemului, formând o rețea-stea în ambele cazuri. Pe partea de protocol, XMPP, MQTT, LwM2M, 6LoWPAN, CoAP, IPSO, ZDO sunt cei mai mari actori, iar partea de bibliotecă se întinde de la jucători importanți precum Apple cu a sa implementare IoT HomeKit până la standarde deschise precum Open IoT stack Eclipse SmartHome care are implementările LwM2M, MQTT și CoAP. Din perspectiva abilităților, Louis înfruntă o altă provocare: sunt necesare seturi de abilități variate de la dezvoltarea de software embedded la wearables/ mobile/ bigscreen/ mașină, API & microservice și analitică pentru a dezvolta soluții Connected Home complete. Louis trebuie să învețe toată viața sa. El trebuia să cunoască 6LoWPAN și Nest cloud API pentru a integra tehnologiile Nest, XMPP și P2P pentru SmartCam. Netatmo a fost integrat utilizând un REST API, la fel ca și Philips Hue, MQTT a fost de asemenea utilizat. Producătorii: Adam rămâne apropiat de clienții săi. El
Termeni
IoT: Internet of Things, interconectarea dispozitivelor inteligente pentru a oferi soluții cu valoare adăugată. Smart Device (Dispozitiv inteligent): în mod tipic, un produs care este conectat la internet și la alte dispozitive inteligente și care are pe el software care poate fi actualizat over the air (OTA). CoAP: înlocuiește protocolul HTTP în cazuri de utilizare IoT. XMP, /MQTT, LwM2M: protocoale IoT utilizate pentru configurarea, monitorizarea și actualizarea firmware a dispozitivelor inteligente. IPSO, ZDO: specificație pentru descrierea capacităților dispozitivelor inteligente și a interacțiunii cu ele, similare profilelor Bluetooth. Smart Grid: rețea electrică care permite consumatorilor să genereze electricitate și oferă tarife bazate pe consum pentru ora din zi. Smart Meters (Contoare inteligente) sunt folosite pentru a raporta consumul de energie și anumiți furnizori de energie oferă rapoarte de optimizare a energiei drept serviciu cu valoare adăugată. produce Nest și oferă actualizări gratuite clienților săi și le promite să le păstreze datele personale în siguranță. El realizează că Nest nu este încă suficient de inteligent pentru a comunica local cu toate dispozitivele posibile, așa că oferă API-uri cloud pentru a integra restul dispozitivelor utilizatorului. În afara Smartphoneurilor, majoritatea dispozitivelor nu sunt încă inteligente, iar producătorii lor oferă pentru a se evidenția servicii cloud cu valoare adăugată pe lângă produsele lor. Philips Hue, Nest sunt bune exemple în acest sens. Majoritatea acestor dispozitive sunt construite pe ZigBee open source stack, integrează Z-Wave chipul brevetat sau expun o interfață BLE. Este ușor de înțeles cum interconectivitatea are de suferit. Pentru a face bani, Adam trebuie să născocească niște opțiuni inteligente, de la freemium, achiziționarea in-app, bazată pe subscripție, plată per utilizare până la modele premium. Furnizorii de servicii: Alex este deținătorul platformei și el are de înfruntat provocarea de a uni toate cele de mai sus într-un sistem funcțional. Platforma sa este utilă în special atunci când există atât de multe probleme de interoperabilitate între dispozitive. Alex se chinuie să îl aducă pe Michael pe platformă, să suporte toate dispozitivele și cazurile de utilizare ale lui Adam, să îi ofere ușurință în integrare și opțiuni bune de monetizare, în timp ce își păstrează diferențierea. El nu este neapărat de acord cu Louis. Mai există și alți acționari în acest ecosistem. Guvernul furnizează infrastructura prin SmartGrids și reglementările prețului energiei. Mai sunt și industriile diferite care sunt interesate să interacționeze, precum Asigurările, Energia și Telecom.
Liantul. Ce face o platformă connected home? Alex crede că are o opțiune mai bună la ceea ce a propus Louis. Haideți să vedem ce face platforma sa. Descoperirea dispozitivelor. Home Controller implementează Z-Wave, ZigBee, WiFi, BLE și este capabil să identifice toate dispozitivele care sunt în raza sa de acțiune și se comportă ca o gateway spre internet sau ca un controller de rețea pentru www.todaysoftmag.ro | nr. 40/octombrie, 2015
19
programare Connected Home (Casa Conectată) - Provocări în domeniu și ce urmează
cele care nu se conectează la un serviciu cloud. Rețelele stea și conexiunea client-server sunt tipice în zilele astea, rețelele mesh și conexiunea coleg-cu-coleg (peer-to-peer) sunt conectivitatea între rețelele de mâine. Securizarea logică și fizică pentru anti-furt. TLS este utilizat în principal drept un canal de comunicare sigur pentru securizarea senzorilor și a dispozitivelor de acționare, MD5 hashing poate fi de asemenea utilizat. Totuși, se dorește o semnare/verificare semidescentralizată, precum Blockchain Certification Protocol care va ajuta comunicarea în siguranță între dispozitive, chiar fără o platformă sau o autoritate de management la dispoziție. Configurarea dispozitivelor. Fiecare dispozitiv are diferite posibilități - gândiți-vă la panoul solar și la mașina de spălat- și feluri diferite de configurare. Anumite configurări sunt comune, precum frecvența extragerii datelor, altele sunt dependente foarte tare de dispozitiv și descrise în Smart Objects (Obiecte inteligente) precum IPSO, ZDO. Un aspect particular la un dispozitiv cu baterie este să cunoști și să îmbunătățești durata de viață a bateriei; cum să operezi într-un mod de operare în stadiu critic.
20
nr. 40/octombrie, 2015 | www.todaysoftmag.ro
Sistemele de siguranță sunt un bun exemplu. Monitorizarea dispozitivelor. Vizualizarea datelor curente (ex. stația meteo Netatmo, SmartCam) sau vizualizarea datelor din trecut. Integrarea dispozitivelor în cazuri de utilizare: creați scenarii sau scene (termen Z-Wave) care sunt personale și relevante. Drept exemplu, ajustarea ceasului deșteptător al lui Michael; HVAC schimbă modul de operare declanșat de încuierea ușii, ajustarea luminii și a jaluzelelor, scena pentru privitul la televizor cu unele lumini stinse, altele parțial aprinse, jaluzelele lăsate jos și nivelul de volum până la o limită, etc. . Actualizarea firmware a dispozitivelor de pe teren. Aceasta se întâmplă în mod tipic fără intervenția utilizatorului atunci când este abonat la un serviciu. Anumiți producători oferă actualizări gratuite și rămân aproape de clienții lor, alții nu sunt atât de apropiați și s-ar putea chiar să pretindă taxă pentru actualizări. Achiziționarea in-app a dispozitivelor fizice reale, a pachetelor sau elementelor software (ex. pachet 100 SMS pentru
TODAY SOFTWARE MAGAZINE notificări), garanție/ mentenanță extinsă, servicii integrate (ex. Apigee, Critercism) pentru o valoare adăugată suplimentară.
Ce urmează? Este o piață revoluționată în continuu. Noile startup-uri introduc noi produse revoluționare, deschizătoare de drumuri, intensificând competiția. Există 120 de companii furnizoare de Home Energy numai pe piața Nord Americană. (sursa: studiu GTM, 2015) Potrivit unui procent de 90% din proprietarii caselor inteligente au cumpărat tehnologia pentru a-și satisface obiectivul de siguranță în primul rând. Optimizarea energiei se numără și ea printre motivele invocate frecvent. Entertainment-ul este un caz de utilizare în tendințe și aceasta este zona în care marile companii își concentrează în prezent eforturile. Este de așteptat ca numărul celor care își doresc o casă inteligentă să crească pe măsură ce consumatorii vor vedea reducerile considerabile ale consumului lor de energie și confortul sporit pe care le poate oferi o locuință conectată (Connected Home). 50% din consumatorii din USA/CAN spun că plănuiesc să cumpere cel puțin un dispozitiv smart home în anul următor (raport iControl). Cei care cunosc pe cineva cu Connected Home sunt de două ori mai motivați să cumpere decât restul. Gartner prezice că o locuință de familie tipică va putea conține mai mult de 500 de smart devices (dispozitive inteligente) până în 2022, dar în prezent cei mai mulți clienți văd Connected Home drept un termen nebulos fără o valoare clară. În privința protocoalelor, este de dorit ca o implementare de protocol să câștige, astfel încât să se reducă fragmentarea și să se crească interconnectivitatea. Va fi oare Thread? Sau viitorul este open source? Cu privire la energie, implementările Smart Grid se mișcă mult mai încet. Investițiile publice sunt necesare, iar acestea nu sunt unde ar trebui să fie încă, în cele mai multe țări. Deci, nu m-aș aștepta să le avem în România în următoarea decadă, când construirea autostrăzilor reprezintă încă o provocare pentru noi…
În ceea ce privește entertainment-ul, Apple trage tare cu Apple TV. Ei spun că aplicațiile sunt viitorul televiziunii. Este posibil ca aceasta să fie încercarea lor de a prelua controlul nu numai asupra sufrageriei noastre, ci și asupra întregii noastre case? Acest articol a fost realizat și cu contribuția lui Alex Cornea, Catalin Andrei și a lui Omer Budak.
www.todaysoftmag.ro | nr. 40/octombrie, 2015
21
programare
Să ducem responsive website la următorul nivel
R
esponsive web design a început în urmă cu trei ani, când media queries a ajuns în standardul recomandat W3C’s în iunie 2012. A fost cea mai anticipată caracteristică CSS la acea vreme, cea care a pus responsive înainte de web design și a schimbat regulile jocului, deschizând o ușă pentru posibilități infinite atât pentru designeri cât și pentru dezvoltatori. Cea mai importantă tendință care a urmat la scurt timp după introducerea sa a fost mobile first. Paul Axente paul.axente@3pillarglobal.com Senior UX Engineer @3Pillar Global
După trei ani în care am realizat responsive websites, cred că ar trebui să ne oprim o clipă pentru a fixa direcția corectă spre care vrem să pornim. Până acum, singurul lucru responsive la website-ul nostru este felul în care arată și cum se simte pe un dispozitiv mobil și ocazional la imprimare. Dacă, o abordare device-first este calea de urmat, atunci ar trebui să avem în minte faptul că am putea să facem mult mai mult pentru a-i ajuta pe utilizatorii noștri. Am putea să profităm de toate lucrurile bune pe care le oferă API-urile HTML5 (status baterie, informații rețea, etc.) pentru a răspunde și a ne adapta anumitor evenimente cum ar fi: căderea rețelei, descărcarea bateriei în timp ce navigăm pe un website, etc. Dar de ce să ne oprim aici? Un responsive website ar trebui să răspundă în timp real cu o soluție pentru problema utilizatorului. Există multe moduri de a sprijini acest tip de responsiveness (capacitate de reacție) și chiar mai multe beneficii care vin din acest răspuns. Dar pentru a obține aceasta,
22
nr. 40/2015, www.todaysoftmag.ro
va trebui să ne gândim la ce încercăm să facem. Să facem ca website-urile să arate bine pe dispozitive mobile este ușor, dar să le facem să reacționeze la modul în care un utilizator interacționează cu ele, este o altă poveste întreagă care necesită cunoașterea anumitor informații despre utilizator. De obicei, adunarea acestor informații ar fi interzisă prin lege, dar, deoarece noi folosim aceste informații pentru a îmbunătăți experiența utilizatorului, putem în continuare să facem website-uri.
Exemplu de responsive website Cum fiecare dintre noi utilizează webul într-un mod diferit, atunci de ce să nu facem un website care să răspundă comportamentului nostru și să se adapteze între anumite limite modului nostru unic de a utiliza web-ul? De prea mult timp, utilizatorii au fost cei care au trebuit să se adapteze felului în care funcționează un website; este timpul ca website-urile să se adapteze comportamentului utilizatorului. Nu ar trebui să împiedicăm anumite tipuri
programare
TODAY SOFTWARE MAGAZINE
de utilizatori să ne utilizeze site-urile pentru simplul motiv că nu aparțin grupului țintă; ei ar putea totuși să ajungă să utilizeze site-ul, dar să devină frustrați dacă nu pot naviga ușor pe el. În loc să îndepărtăm poate utilizatorii care nu fac parte din grupul pentru care a fost creat website-ul, noi ar trebui să ne concentrăm pe crearea unui website care să răspundă tuturor. Angry Joe, o persoană hiperactivă și un jucător pasionat, poate reprezenta un exemplu sugestiv de analiză. Angry Joe adoră să își descarce nervii jucând, dar de obicei sfârșește partidele printr-un abandon plin de furie dacă lucrurile nu merg conform planului. Joe a început recent să facă cumpărături online, dar are dificultăți la utilizarea unui magazin de jocuri bine cunoscut, deoarece el are un mouse high DPI, care îl face să navigheze prea repede pe ecran și să dea click pe lucruri de care nu este interesat. În plus, fiind un fan PS4 avid, Joe nu dorește să vadă bara laterală vizibilă mereu care face reclamă unor jocuri învechite pe care el știe că nu va dori să le cumpere. În acest moment, chiar dacă lui Joe îi place cu adevărat această companie, website-ul îl descurajează să mai cumpere de acolo.
activitatea pe acest website. El îl recomandă chiar unor noi clienți, deoarece îi place tare mult experiența de utilizator per ansamblu și serviciul pentru clienți. Chiar dacă Joe este numai un exemplu, mai există mulți alți utilizatori online care au probleme similare cu navigarea web. Mai sunt multe alte lucruri pe care am putea să le facem pentru utilizatorii noștri, dacă suntem dispuși să acordăm mai multă atenție unor mici detalii. A face un website care să arate bine pe diferite dispozitive este doar vârful aisbergului. În schimb, haideți să începem să facem website-uri inteligente care să răspundă cu o soluție unei probleme a utilizatorului, nu numai să își adapteze conținutul pentru a se potrivi pe diferite dispozitive.
Atunci cum ar trebui un responsive website să îi răspundă lui Joe și să îl convingă să rămână? Prima lui problemă este navigarea pe site, care probabil că nu reprezintă o problemă pentru un utilizator obișnuit. Totuși, Joe și mouse-ul său highly responsive de obicei navighează într-un ritm foarte rapid și haotic și își pierde răbdarea de fiecare dată când face un click greșit. Pentru a rezolva această problemă, website-ul ar răspunde prin mărirea dimensiunilor butoanelor și a marginilor pe întreaga pagină, pentru a minimiza riscul de mai da un click greșit. A doua problemă a lui Joe este neplăcerea cauzată de faptul că website-ul nu îi recunoaște dragostea pentru jocuri PS4. Pentru a remedia asta, website-ul va răspunde prin afișarea categoriei PS4 drept primul obiect din meniu care apare și va arăta lista jocurilor PS4 înaintea oricărui alt tip de produs. În plus, Joe nu a dat niciodată click pe bara laterală, deci nu este nevoie ca aceasta să mai fie păstrată activă. Îndepărtarea barei laterale, nu numai că reduce șansele ca Joe să dea click greșit, dar de asemenea, permite website-ului să afișeze cinci produse pe un rând în loc de numai patru. În acest moment, am reușit să îmbunătățim experiența lui Joe și să concentrăm totul în jurul lucrurilor care îi plac lui, doar prin urmărirea tiparelor sale de interacțiune și răspunzând punctelor dureroase. Acum Joe este un client mulțumit și își continuă 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 offerings are business focused, they drive real, tangible value.
www.3pillarglobal.com
www.todaysoftmag.ro | nr. 40/octombrie, 2015
23
programare
PHP 7 – O privire spre viitor
L
imbajul PHP a început ca o simplă colecție de mici programe scrise în C și folosite pentru mentenanța unei simple pagini web. Astăzi, PHP-ul rulează pe milioane de servere web și a ajuns foarte sus pe lista celor mai populare limbaje de programare1.
1 http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Radu Murzea rmurzea@pentalog.fr PHP Developer @Pentalog
24
nr. 40/2015, www.todaysoftmag.ro
Perioada cea mai mare de creștere a popularității a fost în prima jumătate a anilor 2000, urmând ca în ultimii ani framework-urile și uneltele din acest ecosistem să cunoască o foarte accelerată maturizare și dezvoltare. Acum, în 2015, odată cu introducerea noii generații a limbajului (PHP 7), e un moment bun să încercăm să prezicem ce ne va aduce viitorul, cu un accent pe noile facilități introduse de PHP 7. I). Reputație proastă. Creșterea popularității împreună cu o ușoară curbă de învățare, a atras foarte mulți programatori începători care au popularizat multe practici ineficiente de programare. Aceasta, împreună cu multe deficiențe de implementare a platformei, a atras păreri proaste asupra PHP-ului, fiind considerat un soi de limbaj “de mâna a 2-a” care “nu e folosit de programatorii adevărați”. II). Situația actuală. Ecosistemul de acum este unul foarte diferit față de cel descris mai sus. După cum am menționat și în introducere: în ultimii ani, foarte multe framework-uri și unelte din ecosistemul PHP s-au dezvoltat, evoluând spre calitate, eficacitate și în special maturitate.
Cel mai bun exemplu pentru o astfel de dezvoltare este apariția proiectului Composer2 în 2011, o unealtă inspirată din “npm” care permite managementul dependințelor unui proiect. Acesta are o mare contribuție la maturizarea PHP-ului, pentru că a permis folosirea unor practici moderne, ușoare, robuste și corecte în dezvoltarea proiectelor PHP. Cam toate framework-urile moderne folosesc Composer (Symfony 2, Zend Framework, CakePHP, CodeIgniter, etc.). Un alt exemplu este concentrarea pe folosirea corectă a conceptelor de programare orientată pe obiecte, cele mai multe framework-uri și librării migrând spre astfel de cod și încurajând utilizatorii să facă la fel. III). Facilități majore PHP 7. Noua versiune majoră PHP 7 este planificată să fie lansată3 în Noiembrie 2015. Vom enumera principalele facilități pe care le aduce4, urmând să încercăm o prezicere, pe baza lor, a direcției în care se va îndrepta limbajul și ecosistemul PHP. 2 https://getcomposer.org/ 3 https://wiki.php.net/todo/php70#timetable 4 https://wiki.php.net/rfc#php_70
programare a). Compilare AST. Având în vedere natura limbajelor interpretate (precum PHP-ul), este de așteptat ca o critică comună a implementării să fie legată de viteza de execuție. Această schimbare a fost inspirată din proiectul HipHop VM5 a celor de la Facebook. Ea va permite o mai ușoară mentenanță a implementării PHP, performanța crescută și posibilitatea implementării facilității de la punctul b. b). Uniform Variable Syntax. Această facilitate permite de-referențierea consistentă a variabilelor de la stânga la dreapta pentru a permite folosirea unor expresii complexe în cadrul limbajului. Niște exemple ar fi conținutul câmpurilor ca nume de obiect sau rezultatul unei funcții anonime în locul unei nume de clasă. c). Declarații de Tip. O facilitate inspirată din limbajul Hack 6 a celor de la Facebook este declararea tipurilor de date primite și returnate de către funcții sau metode. Până acum, doar tipul “array” sau nume de clase erau suportate ca tip pentru parametrii unei funcții/metode, iar tipul returnat nu era suportat deloc. Dacă programatorul dorea astfel de informații, singura lui șansă era să folosească documentarea PHPDoc. Însă acum aceste declarații se pot adăuga, pentru orice tip de date (primitive, clase, etc.), atât pentru parametri cât și pentru tipul returnat. d). Clase Anonime. PHP-ul a avut până acum suport doar pentru funcții anonime, nu și clase, spre deosebire de alte limbaje de programare, care suportă așa ceva de mulți ani. Sintaxa declarării unei clase anonime este extrem de asemănătoare cu cea din alte limbaje (Java, C# etc.), cazurile de folosire fiind și ele similare. e). Excepții în loc de Erori. În multe situații excepționale (parsare invalidă, operații aritmetice incorecte, tipuri greșite, etc.), PHP aruncă erori sau avertismente, ceea ce previne execuția blocurilor “finally” sau a destructorilor. Tocmai din aceste motive, multe erori au fost înlocuite cu excepții. Limbajul oferă deja elemente sintactice bune pentru tratarea excepțiilor, fiind mai natural și ușor de scris decât prinderea și tratarea erorilor. f ). Context Sensitive Lexer. Permiterea designului unor API-uri cât mai naturale a fost principala motivație pentru această facilitate, fiind posibilă datorită compilării AST descrisă
la punctul a. De exemplu: acum se pot declara metode folosind nume precum “list”, “and” sau “for”; până acum așa ceva nu era posibil pentru că acele nume sunt de fapt cuvinte cheie ale limbajului. Lexer-ul va detecta contextul în care se face declarația (de unde și numele facilității) și va determina dacă folosirea acelui nume este validă în acel context. g). Unicode Code Point Escape Syntax. Această facilitate adaugă o sintaxă corectă de declarare a caracterelor Unicode. Sintaxa e de forma “\u{xxxxx}”, unde lungimea caractelor este variabilă, permițând o dimensiune mai mare de 16 biți pentru lungime. IV). Specificația limbajului PHP. Am fi neglijenți dacă nu am menționa un milestone important al limbajului PHP: specificația formală7. Chiar dacă PHP are 20 de ani de la apariție, până acum nimeni nu a scris o specificație formală a limbajului. Anul trecut însă, un grup de oameni8 au decis că e timpul pentru așa ceva și au făcut-o. V). Viitorul PHP-ului. Compilarea AST și noile declarații de tipuri sugerează o concentrare pe performanță și pregătirea terenului pentru compilare JIT, PHP-ul fiind influențat puternic în acest sens de Hip-Hop VM. Înlocuirea multor erori cu excepții și introducerea claselor anonime ne asigură că facilitățile orientate pe obiect vor continua să se dezvolte puternic în următorii ani. De asemenea, un suport mai robust pentru caractere Unicode confirmă necesitatea accesibilității site-urilor web în mai multe limbi, în special cele asiatice și africane, unde penetrarea conexiunilor la Internet, și prin urmare a noi consumatori, este în creștere rapidă. VI). Concluzie. După cum arată noul PHP 7, limbajul și ecosistemul din jurul acestuia merg într-o direcție bună. Dezvoltarea puternică și maturizarea din ultimii ani a framework-urilor, librăriilor și uneltelor este încă o dovadă puternică în acest sens. Noua versiune majoră nu e o revoluție, ci doar o evoluție, dar aduce multe îmbunătățiri care vor face viața programatorilor mai ușoară.
5 http://www.todaysoftmag.ro/article/779/masina-virtuala-hiphop
7 https://github.com/php/php-langspec
6 http://www.todaysoftmag.ro/article/1011/limbajul-hack
8 http://hhvm.com/blog/5723/announcing-a-specification-for-php
www.todaysoftmag.ro | nr. 40/octombrie, 2015
25
programare
An introduction to optimising a hashing strategy
T
he strategy that’s used for hashing keys, can have a direct impact on the performance of a hashed collections such as a HashMap or HashSet. The built-in hashing functions are designed to be generic and work well in a wide range of use cases. Can we do better, especially if you have a good idea of the use case? Peter Lawrey peter.lawrey@ highfrequencytrading.com CEO @ Higher Frequency Trading Ltd
Testing a hashing strategy
I just need unique hash codes don’t I?
In a previous article I looked at a number of ways to test hashing strategies and in particular looked at a hashing strategy which had been optimised for „Orthogonal Bits” which looked at making sure each hash result was as different as possible based on just one bit changing. However, if you have a known set of elements/keys to hash you can optimise for that specific use case, rather trying to find a generic solution.
A common misconception is that to avoid collisions all you need to have unique hash code. While unique hash codes is highly desirable, it is not enough. Say you have a set of keys and all of them have unique 32-bit hash codes. If you then have an array of 4 billion buckets, each key will have its own bucket, and there is no collisions. It is generally undesirable to have such large arrays for all hash collections. In fact HashMap and HashSet are limited by the largest power of 2 size you can have for an array which is 2^30 or just over one billion. What happens when you have a more realistically sized hashed collection? The number of buckets needs to be smaller and the hash codes are modulo-ed to the number of buckets. If the number of buckets is a power of two, you can use a mask of the lowest bits.
Minimising Collisions One of the main things you want to avoid in a hashed collection is collisions. This is when two or more keys map to the same bucket. These collisions mean you have to do more work to check the key is the one you expected as there is now multiple keys in the same bucket. Ideally there is at most 1 key in each bucket.
26
nr. 40/2015, www.todaysoftmag.ro
programare
TODAY SOFTWARE MAGAZINE
Lets look at an example, ftse350.csv If we take the first column Note: the implementation for String is defined in the Javadoc as a key or element, we get 352 strings. These strings have unique so there is little chance we can change it but we could define a String.hashCode()s, but say we take the lower bits of these hash new hashing strategy. code. Do we see collisions?
Components of a hashing strategy.
The size of the HashMap for a load factor of 0.7 (the default) is 512 which uses a mask of the lower 9 bits. As you can see around 30% of keys have a collision even though we started with unique hash codes.
There is two parts I look at in a hashing strategy. • The magic numbers. You can try different numbers to find the best result. • The structure of the code. You want a structure where you get a good result for any sane choice of magic number. While magic numbers matter, the reason you don’t want them to be too important is that there is always a chance that your choice of magic number wasn’t right for a given use case. This is why you also want a code structure which has a low worst case outcome even for a poorly chosen magic number. Lets try some different multiplying factors instead of 31.
The code for HashTesterMain is here. To reduce the impact of a poor hashing strategy, the HashMap uses an agitating function. In Java 8 it is fairly simple. From the source for HashMap.hash You can read the Javadoc for more details
You can see that the choice of a magic number matters, but also there is lots of numbers to try. static final int hash(Object key) { We need to write int h; return (key == null) ? 0 : (h = key.hashCode()) ^ a test to try out a (h >>> 16); good random selec} tion. The source for This mixes the high bits of the hash code with the low bits, HashSearchMain to improve the randomness of the lower bits. For the case above where there is a high collision rate, there is an improvement. See the third column.
A look at the hash function for String The code for String.hashCode() public int hashCode() { int h = hash; if (h == 0 && value.length > 0) { char val[] = value; for (int i = 0; i < value.length; i++) { h = 31 * h + val[i]; } hash = h;
}
} return h;
The key code to look at is public static int hash(String s, int multiplier) { int h = 0; for (int i = 0; i < s.length(); i++) { h = multiplier * h + s.charAt(i); }
www.todaysoftmag.ro | nr. 40/octombrie, 2015
27
programare An introduction to optimising a hashing strategy return h;
} private static int xorShift16(int hash) { return hash ^ (hash >> 16); } private static int addShift16(int hash) { return hash + (hash >> 16); } private static int xorShift16n9(int hash) { hash ^= (hash >>> 16); hash ^= (hash >>> 9); return hash; }
As you can see the repeated multiplication of each hash plus the next character is reasonable if you provide a good multiplier, or a multiplier which happens to work well with your key set. If you compare 130795 as a multiplier instead of 31, you get only 81 collisions instead of 103 collisions for the key set tested. If you use the agitation function as well you can get around 68 collisions. This is getting close to the same collision rate as doubling the size of the array. i.e. an improved collision rate without using more memory. But what happens when we add new keys to the hash collection, will our magic number still be good for us? This is where I look at the worst collision rates to determine which structure is likely to produce good results for a wider range of possible inputs. The worst case for hash() is 250 collisions, That is 70% of keys colliding which is pretty bad. The agitation function improves this a little however it’s still not great. Note: if we add the shifted value instead of xor-ing it we get a worse result in this case. However if we do two shifts, to mix not just the top and bottom bits, but bits from four different portions of the hash code generated, we find that the worst case collision rate is much lower. This indicates to me that should the selection of keys change, we are less likely to get a bad result as the structure is better and the choice of magic number or choice of inputs matters less.
What if we have add instead of xor in the hash function? In the agitation function using xor was perhaps better than using add. What happens if we change this h = multiplier * h + s.charAt(i);
with h = multiplier * h ^ s.charAt(i);
The best case numbers are slightly better, however the worst case collision rate are notably higher. This indicates to me that the choice of magic number matters more, but it also means that choice of keys will matter more. This would seem a risky choice as you have to consider that the keys may change over time.
Why do we chose odd multipliers? When you multiply by an odd number the lower bit of the result has an equal chance of being 0 or 1. This is because 0 * 1 = 0 and 1 * 1 = 1. However, if you multiply by an even number
28
nr. 40/octombrie, 2015 | www.todaysoftmag.ro
the lower bit is always going to 0. i.e. it is no longer random. Say we repeat the earlier test but only using even numbers, how does this look?
If you are lucky and have the right input for your magic number the results are just as good as for odd numbers, however if you are unlucky, the results can be pretty bad. 325 collisions means that only 27 out of 512 buckets are being used.
How do more advanced hashing strategies differ? For the hashing strategies we use based on City, Murmur, XXHash and Vanilla Hash (our own) • The hashing strategy reads 64-bits at a time which is faster than reading byte-by-byte. • The working value computed is two 64-bit values. • The working value is reduced to a 64-bit long. • More multiplying constants are used as a result. • The agitation function is more complex. We use long hash codes in our implementation as; • we optimise for 64-bit processors, • the longest primitive data type is 64-bit in Java, and • if you have large hash collections (i.e. millions) 32-bit hashes are unlikely to be unique.
In summary By exploring how we generate the hash code, we have found ways to reduce the number of collisions for 352 keys down from 103 collisions to 68 collisions but also have some confidence than should the key set change, we have reduced the impact this might have had. This is without using more memory, or even much more processing power. We still have the option of utilising more memory. For comparison, you can see that doubling the size of the array can improve the best case, but you still have the problem that a miss match between the key set and the magic number can still have a high collision rate.
Conclusion In situations where you have a stable key set you can get a significant improvement in the rate of collisions by tuning the hashing strategy used. You also need tests which indicate how bad things are likely to get if the key set changes without re-optimisation. Using these two in combination you can develop new hashing strategies to improve performance without having to use more memory or much more CPU.
programare
Securitatea Datelor în era Cloud Computing
C
ând vine vorba de securitatea datelor personale sau ale companiei, ne gândim de obicei la folosirea unui antivirus și la evitarea navigării pe site-uri susceptibile de viruși. Nu este greșit să facem acest lucru, dar contextul în care folosim datele și evoluția tehnologiei au determinat apariția unor noi amenințări.
Angela Lepădatu angela.lepatadu@cososys.com Marketing Professional and Account Manager @CoSoSys
Dacă în trecut cea mai frecventă cauză pentru o breșă de date era un atac din exterior, astăzi cea mai slabă verigă o reprezintă chiar membrii organizațiilor și proprietarii informațiilor prin erorile accidentale și de puține ori intenționate. Consecințele pot fi dezastruoase: de la pierderea încrederii clienților, prejudicii de imagine, până la costuri de remediere a breșei de securitate, perioadă de inactivitate și altele. Cloud computing a avut cel mai mare impact în dezvoltarea soluțiilor de securitate a datelor. În ultimii ani, numărul utilizatorilor de aplicații cloud și al dezvoltatorilor acestora a crescut considerabil. Conform Wall-Street.ro, piața de servicii de tip cloud computing din România va crește cu 20% în 2015, atât pentru utilizatori individuali cât și pentru companii. Aplicațiile precum Google Drive, Dropbox, OneDrive, iCloud, Box, etc., sunt cele mai populare în rândul utilizatorilor datorită ușurinței folosirii și spațiului mare de stocare. Desigur, cântărește mult și faptul că aceste aplicații se pot folosi indiferent
de sistemul de operare sau de broswer, de pe orice calculator sau dispozitiv mobil cu conexiune la Internet. Dar care sunt amenințările pentru securitatea datelor în acest caz? O cercetare realizată de CoSoSys asupra clienților noștri a dezvăluit că 7 din 10 angajați au acces la documente confidențiale pentru companie și le folosesc în sarcinile lor zilnice. Un exemplu simplu este încărcarea documentelor precum liste cu clienți pe Google Drive, un mediu asupra căruia compania nu are control. Așa cum s-a întâmplat în 2012 cu Dropbox, datele stocate sunt expuse riscului de a fi furate. Specialiștii în securitate consideră aplicațiile de stocare de date în cloud container-e publice și recomandă utilizatorilor și companiilor să nu salveze sau să transfere prin intermediul acestora informații precum date financiare, datele clienților, planuri de marketing și alte date confidențiale dacă vor să aibă control total asupra ce se întâmplă cu acestea. Aceeași recomandare o fac pentru datele personale. Să ne amintim de breșa de iCloud din 2014
www.todaysoftmag.ro | nr. 40/octombrie, 2015
29
securitate Securitatea Datelor în era Cloud Computing
în urma căreia poze nud ale vedetelor de la Hollywood au ajuns publice. Ca metode de a preveni pierderea și furtul de date, organizațiile trebuie să se asigure că angajații și colaboratorii au cunoștințele necesare cu privire la bunele practici de securitate a datelor, precum folosirea unor parole sigure și evitarea folosirii aceleiași parole pentru mai multe conturi. De asemenea, persoana responsabilă cu securitatea datelor sau managerul departamentului de IT, trebuie să specifice foarte clar care sunt datele confidențiale și să reglementeze folosirea acestora. De cele mai multe ori angajații semnează un contract de confidențialitate la venirea în companie, dar acestea nu corespund contextului actual și mai mult decât atât, foarte puțini angajați îl citesc. E o formalitate pe care știu că trebuie să o îndeplinească. O soluție ce complementează educația angajaților este tehnologia Data Loss Prevention (DLP) sau Prevenirea Pierderilor de Date. Este o tehnologie dezvoltată din 2007-2008 pentru controlul și blocarea dispozitivelor portabile de stocare, precum stick-uri USB în vederea evitării copierii datelor confidențiale. Între timp a evoluat concomitent cu apariția aplicațiilor cloud și a altor aplicații online, precum e-mail, mesagerie instantanee, aplicații pentru partajarea de fișiere.La CoSoSys, companie româno-germană cu sediul la Cluj-Napoca, dezvoltăm soluții pentru securitatea datelor din 2004 și am intrat pe piața de DLP în 2008. Produsul nostru, denumit Endpoint Protector este singurul de acest gen dezvoltat în România. Acesta permite Administratorilor de rețea să controleze printr-o arhitectură server-client ce fișiere se pot
30
nr. 40/octombrie, 2015 | www.todaysoftmag.ro
transfera atât prin dispozitive portabile de stocare cât și prin diferite aplicații online, printre care și cele menționate anterior. Un exemplu clar ar fi definirea unor politici prin care documentele ce conțin informații confidențiale nu se pot transfera de către persoanele ce nu sunt autorizate. Filtrele se pot defini în funcție de tipul de date confidențiale precum numere de carduri de credit, adrese de e-mail, informații de identificare personală, anumite cuvinte cheie, sau chiar anumite tipuri de fișiere precum MS Office, de programare, grafice și altele. Este o metodă eficientă de a asigura continuitatea afacerii și în același timp că secretele companiei sunt în siguranță. Mai mult decât atât, în cazul unui furt sau pierderi de date, administratorul poate detecta vinovatul consultând rapoartele detaliate ale softului. Poate ști exact cine, ce, de pe ce calculator și când a realizat transferuri neautorizate de date confidențiale. Cererea pentru soluțiile de Prevenire a Pierderilor de Date este în continuă creștere datorită amenințărilor actuale și creșterii numărului de breșe cauzate de insider-i. În era cloud computing, organizațiile și persoanele fizice ar trebui să prețuiască mai mult securitatea datelor, ar trebui să fie conștiente de consecințele unei breșe a datelor și ar trebui să pună în aplicare strategii solide de securitate a datelor. Succesul afacerii, siguranța personală și reputația depind acum mai mult ca niciodată de capacitatea de protejare a datelor contra pierderii sau furtului.
diverse
Trăim într-o lume în care suntem distrași în mod constant
C
onectarea digitală permanentă prin accesul la e-mailuri, social media, Internet, precum și alți factori perturbatori dintr-un birou – conversațiile colegilor din jur, telefoanele care sună constant sau sunetul traficului – ne fac imposibilă concentrarea pe sarcini.
Oliver Heath Founder @ Heath Design Ltd
Profesorul Gloria Mark, de la University of California, cercetează conceptul de „întrerupere”. Într-un studiu condus cu angajați din domeniul high-tech, a constatat că oamenii analizați în decurs de trei zile și jumătate treceau în medie de la o sarcină la alta la fiecare trei minute și cinci secunde, jumătate reprezentând auto-întreruperi. În cadrul studiului a descoperit că întreruperile relevante pot fi benefice cu condiția că acestea să fie scurte și prove n it e d i n automatism. Îns ă , d a c ă ele necesită o schimbare în funcționarea cognitivă, individului îi este foarte greu să își recâștige
concentrarea. În continuare, Gloria Mark a observat că 82% din munca întreruptă a fost reluată în aceeași zi, dar le-a luat angajaților în medie 23 minute și 15 secunde pentru a reveni la ceea ce făceau. În mod surprinzător, cei care au fost întrerupți au lucrat mai repede, fără nicio diferență semnificativă a numărului
www.todaysoftmag.ro | nr. 40/octombrie, 2015
31
diverse Trăim într-o lume în care suntem distrași în mod constant de erori în activitate. Totuși, aceste întreruperi au implicații mai grave, deoarece cresc îngrijorător nivelul de stres. Stresul excesiv sau prelungit poate duce la boli, epuizare fizică și emoțională și depresie. El poate afecta comportamentele și factorii care cresc riscul de boli de inimă. De fapt, Organizația Mondială a Sănătății consideră că bolile de inimă și depresia cauzate de stres vor deveni cauze principale de îmbolnăvire până în 2020. Ținând cont că 90% din costurile operaționale ale unei afaceri sunt legate de personal, comparat cu 10% pentru spațiul de lucru, este important să ne gândim cum poate fi proiectat un birou de companie pentru a sprijini angajații să se concentreze mai ușor pe sarcinile în desfășurare. În același timp, să reducă riscurile reprezentate de stresul prelungit, cum ar fi sănătatea, puterea lor de muncă și costurile companiei. Deci, cum putem crea un mediu armonios de lucru, ce ajută angajații să rămână concentrați și atenți? Designul inspirat din natură oferă câteva răspunsuri valoroase, prin apelul la simțurile noastre.
Vederea Prin creșterea cantității de lumină naturală și crearea de priveliști naturale, angajații capătă o mai mare conștientizare a momentului prezent, fie că vorbim de un anumit moment din zi sau an. Partițiile sunt foarte utile în birourile de tip open space, nu numai că blochează distragerile vizuale, dar în cazul în care sunt făcute din materiale naturale (de exemplu plăci de lemn), pot bloca sunetele, având efecte pozitive asupra sănătății și confortului.
Mirosul Plantele pot îmbunătăți calitatea aerului și cresc nivelul de oxigen, iar plantele în ghiveci și pereții vii emană un miros subtil ce sporește confortul olfactiv.
Atingerea Texturile naturale ale mobilierului de lemn sau gamele de mochetă cu design inspirat din natură, cum sunt Human Nature sau Urban Retreat de la producătorul Interface, creează medii plăcute la atingere, cu impact imediat în starea de bine a angajaților.
Auzul Sistemul de mascare a sunetului poate fi introdus atunci când este imposibil să blochezi zgomotul din exterior și funcționează ca o metodă de reducere a stresului. Sunetele naturale înregistrate - de exemplu un râu care curge- pot masca zgomotele perturbatoare, cum ar fi traficul din apropiere sau conversațiile altora. Panourile fonoabsorbante din materiale naturale ca lâna sau pereții vii absorb zgomotul în exces din birouri, servind și ca elemente decorative.
32
nr. 40/octombrie, 2015 | www.todaysoftmag.ro
Temperatura Optimizarea ventilației și a controlului termic permit angajaților să fixeze temperatura și fluxul de aer după nevoile lor. O soluție în acest sens sunt ferestrele ce pot fi deschise și termostatele localizate accesibil. Din aceasta perspectivă, birourile minimaliste cu suprafețe lucioase și netede, prin care se dorea încurajarea eficienței, se dovedesc de fapt mult mai puțin eficiente. Aceasta din cauza faptului că stimularea senzorială în spațiul de lucru ne poate face susceptibili la distrageri și întreruperi în fluxul activității. Tu ai fost întrerupt în timp ce citeai acest articol? Mediul tău de lucru ar putea fi îmbunătățit, pentru a-ți permite să fii mai concentrat și implicat?
comunitate
Când tribunele sunt pline…
O
are ne putem gândi cum arătau începuturile handbalului în anii ‘20? Și aici nu ne referim la faptul că se juca în 11 jucători pe terenul de fotbal, iar pasele se dădeau cu mâna, nu cu piciorul; ci la faptul că scorurile erau ținute pe cartoane scrise, nu tipărite. Ne mai putem imagina o astfel de lume?
Alice Mogojan alice@antoma.ro Marketing @ U Cluj Handbal Masculin
Faulturile și eliminările erau consemnate pe foi, numele jucătorilor erau notate cu creionul într-un tabel prestabilit, iar timpul de joc era ținut de ceasul de mână al arbitrilor. Totuși, tribunele erau pline. Lumea mergea la spectacol, galeriile erau coordonate și se compuneau cântece de susținere. Odată cu trecerea timpului, ne-am dezvoltat și am ajuns să trăim într-o lume digitală. Sala Polivalentă din Cluj-Napoca are o tabelă care arată fiecare greșeală sau punct marcat al fiecărui jucător. Datorită multitudinii de posibilități pe care le avem zilnic, tribunele au tot mai puține scaune ocupate. La început, a fost o provocare pentru noi să găsim legătura dintre sport și IT. Modul în care a evoluat acestă industrie, tehnologiile avansate și softurile din spatele lor, de care ne folosim zilnic, ne oferă soluția favorabilă la găsirea acestei legături. În plus, scorurile le vedem online, dăm refresh peste refresh la LiveScore App, iar promovarea o facem tot online. Totuși, cel mai puternic motiv
este faptul că sportivii au nevoie de tine. Au nevoie de tine, de mine, de noi toți pentru a face performanță. Nu știu dacă tu ești un mare fan al sportului, nu știu dacă mergi la meciuri, dacă ai vreo pasiune sportivă, dacă te gândești la sănătatea și corpul tău, dar știu că sportivilor le pasă de tine. Sportivii au nevoie de tine în tribună; au nevoie de tine și de toți prietenii tăi. Gândește-te la tine în școala generală când trebuia să treci proba de rezistență la educație fizică. Parcă dacă erau trei colegi pe margine și îți scandau numele încurajândute, era și mai mare voința ta de a merge mai departe. Nu puteai să îi dezamagesti pentru că ei credeau în tine. Atât în sport, cât și în IT ai nevoie de câteva aptitudini pentru a reuși; pentru a câștiga un meci sau pentru a finaliza un proiect cu brio. Succesul necesită multă muncă, perseverență și să gândești cu un pas înainte. Dar ca toate acestea să se întâmple firesc, ai
www.todaysoftmag.ro | nr. 40/octombrie, 2015
33
comunitate Când tribunele sunt pline…
nevoie de suportul și sustinerea celor din jur. Cei din jur îți pot da imboldul și puterea de a merge mai departe, de a trece peste orice obstacol. În acest moment, echipa U Cluj Handbal Masculin nu este în plin success, dar vrea sa răzbată. Avem un plan strategic pentru patru ani; proiectele mari se desfășoară în pași mici. Știm că pentru a ajunge la performanță ne trebuie mult antrenament, răbdare și timp, dar peste toate acestea avem nevoie de multă susținere atât morală, cât și financiară. Dacă pe lângă susținere, există și dorința de implicare, putem face lucruri extraordinare împreună. Ce zici dacă facem un antrenament împreună? Hai să creștem împreună, hai să învățăm să fim sănătoși, să ne dezvoltăm spiritul competititv în campionate între companii, să mergem la team-building-uri împreună, să ne îndreptăm oasele și să alegem un stil de viață sănătos. De azi începând, dacă ai ajuns până la finalul articolului, și tu susții handbalul și îți mulțumim pentru asta. Împreună prindem viitorul din urmă!
34
nr. 40/octombrie, 2015 | www.todaysoftmag.ro
marketing
Cum comunicăm eficient cu colegii noștri?
A
Ana-Maria Trifan anamaria.trifan@ happy-employees.eu PR & Custumer Care Specialist @ Azimut Happy Employees
r fi simplu dacă oamenii, la fel ca și tehnologiile, ar veni la pachet cu un set de instrucțiuni pe care le putem urma pentru a nu da vreodată greș în interacțiunile cu ei și pentru a ști direct cum să îi abordăm. Din păcate sau fericire, știm cu toții că aceasta nu se întâmplă și câteodată colegii sau apropiații noștri pot constitui un adevărat mister. În ceea ce privește comunicarea, există totuși o soluție salvatoare: stilurile comportamentale. Fiecare persoană se încadrează preponderent în unul dintre aceste stiluri și este cu adevărat benefic să le cunoaștem și să ne adaptăm formularea mesajelor în funcție de tipologia predominantă a fiecăruia.
1. Partenerul:
2. Încurajatorul:
Cum îl recunoaștem? Cum îl recunoaștem? Partenerul este persoana Încurajatorul este caracechilibrată, stabilă, pacifiterizat prin: entuziasm, catoare, care se face ușor pasiune, spontaneitate, plăcută și la care apelăm comunicare bună, persucu încredere deoarece asiune, creativitate, simțul știm că ne ascultă mereu. Tinde să fie preo- dezvoltat al umorului. Este sociabil, bun precupat de cei din jurul său, de ceea ce este etic zentator, cu abilitatea de a motiva și a inspira și nu de puține ori termină acțiunile sau sar- pe cei din jurul său. cinile pe care alții le-au început și abandonat, însă nu îi plac foarte mult schimbările. Cum comunicăm cu el? În interacțiunile cu o persoană de acest Cum comunicăm cu el? gen, ne sunt de folos atitudinea pozitivă, Într-o conversație cu un partener putem zâmbetul și simțul umorului. Dacă vrem să îmbunătăți comunicarea dacă definim îi captăm atenția, este recomandat să încerașteptările pe care le avem și îi spunem și căm să îi creăm o emoție, utilizându-ne chiar motivația din spate- de ce facem/ ne dorim de story telling, însă nu trebuie să uităm că îi un anumit lucru. Mai mult, o atitudine empa- place să fie în centrul atenției. De aceea, ne tică, prin care să le arătăm interesul pentru putem aștepta ca discuțiile să se îndepărteze ceea ce spun și pentru ei ca persoane, alături puțin de subiect- moment în care ar trebui să de o ascultare activă, ne pot fi de mare folos. acționăm și să readucem discuția în parameDe asemenea, este de preferat să le adresăm trii inițiali. Nu în ultimul rând, ne pot ajuta întrebări relevante și să prezentăm situația micile întrebări de socializare și întrebările logic, punctând fiecare etapă a procesului. prin care să îi cerem opinia. www.todaysoftmag.ro | nr. 40/octombrie, 2015
35
marketing Cum comunicăm eficient cu colegii noștri? 4. Conducătorul: 3. Gânditorul:
gânditor.
Cum îl recunoaștem? Dacă avem un coleg care este precis, clar, logic, centrat pe fapte, prudent, ordonat, corect, punctual, disciplinat, convențional, care apreciază regulile și își dorește standarde înalte, atunci știm clar că avem de-a face cu un
Cum comunicăm cu el? Având în vedere că ne referim la o persoană analitică, comunicarea eficientă în acest caz presupune informații exacte, logice, care se pot dovedi, procese sau proceduri specifice și un deadline. Trebuie să conștientizăm că un gânditor va avea nevoie de timp ca să analizeze informațiile noastre și de aceea este de preferat să nu îl grăbim și să îi dăm timpul de care are nevoie. Ne va pune multe întrebări de lămurire pe parcursul interacțiunii noastre și ne va cere mereu detalii! Ne vom înțelege perfect cu el dacă îi oferim toate acestea, plus timpul necesar de gândire.
36
nr. 40/octombrie, 2015 | www.todaysoftmag.ro
Cum îl recunoaștem? Indiciile care ne ajută să recunoaștem un conducător sunt: personalitate puternică, orientarea către rezultate și acțiune, dinamismul, determinarea, competitivitatea, mobilitatea și implicarea sunt elementele caracteristice acestei tipologii. Dacă le regăsim predominante la câțiva dintre colegii sau apropiații noștri, este ușor să ne dăm seama cu ce tipologie lucrăm. Cum comunicăm cu el? Înainte de orice, în interacțiunile cu un conducător trebuie să insistăm pe rezultate. Este recomandat să fim scurți și la obiect și să discutăm din perspectiva de win-win. Trebuie să încercăm să facem față ritmului lui alert, să fim profesionali și să nu batem câmpii. Cu ce ne ajută aceste stiluri comportamentale: În primul rând sunt utile în a ne face să înțelegem că suntem diferiți, reacționăm diferit și avem nevoi diferite inclusiv când vine vorba de comunicare. Dacă reușim să identificăm tipologia dominantă a interlocutorilor noștri, ne vom putea personaliza modul de comunicare conform nevoilor fiecăruia. Astfel, ne creștem șansele ca interacțiunile noastre să fie pozitive și comunicarea mai eficientă.
legal
Pe scurt, despre brevete în industria IT&C
U
n cuvânt des vehiculat în companiile din domeniul IT&C este ”brevet” sau “patent”. Iar în ultimii ani, odată cu posibilitatea de a accesa mai ușor anumite fonduri nerambursabile, acest cuvânt se strecoară și mai frecvent în discuție. Dar am constatat că, în practică, nu se cunoaște prea bine pentru ce anume poate fi obținut un brevet.
Claudia Jelea
claudia.jelea@jlaw.ro Avocat & Consilier in domeniul marcilor @IP Boutique
În mod eronat, multe persoane consideră că orice aplicație sau program software poate fi brevetat dacă există interes și resurse. V-ați întrebat vreodată de ce obținerea unui brevet sau măcar depunerea unei cereri de brevet este deseori, o condiție pentru obținerea unor anumite tipuri de finanțări pentru sectorul IT&C? Pentru că se urmărește inovarea. Iar inovarea este strâns legată de brevetabilitate – noutatea fiind una din condițiile pe care o invenție trebuie să le îndeplinească pentru a putea fi brevetată. Cu alte cuvinte, la momentul depunerii cererii de brevet, ar trebui ca respectiva invenție să nu existe deja în stadiul tehnicii.
pentru orice invenție cu caracter tehnic având ca obiect un produs sau un procedeu, dacă îndeplinește următoarele condiții: este nouă, implică o activitate inventivă şi este susceptibilă de aplicare industrială. Dacă vreuna din condiții nu este îndeplinită, recomandabil ar fi să nu porniți pe un drum lung și costisitor.
Cum se poate obține un brevet în industria software?
În general, în România, programele de calculator, luate ca atare, nu pot obține protecție prin brevet deoarece nu sunt considerate invenții în sensul legislației aplicabile. Brevetul este o temă foarte generoasă și Același lucru este valabil și pentru brevetul cu multe lucruri de luat în considerare. Mai european. jos expunem doar câteva aspecte de bază care să vă ajute să vă faceți o imagine de ansamblu. Dar aceasta nu înseamnă că nu există situații în care o soluție sau tehnologie IT De unde pornește discuția? ar putea fi patentată - de exemplu, dacă este Pentru ce anume vreți să obțineți bre- vorba despre o invenție realizată cu ajutorul vetul? Aceasta e prima întrebare pe care ar calculatorului (în engleză, computer-impletrebui să v-o adreseze un expert în domeniul mented inventions 1); doar că respectiva brevetelor, ca să înțeleagă în ce mod vă poate invenție ar trebui să întrunească în mod ajuta. Ideal ar fi să aveți pregătită o descriere cumulativ condițiile legale- dar acest lucru a invenției pentru că următorul pas constă în este dificil, de multe ori. a verifica în primul rând, dacă poate fi considerată invenție în sensul legislației aplicabile În practică, pot exista soluţii IT care și în al doilea rând, dacă îndeplinește toate 1 Potrivit Oficiului European al Brevetelor, dacă invenția condițiile legale pentru a fi brevetată. „[…] involves the use of a computer, computer network or other proPotrivit legii nr. 64/1991 privind breve- grammable apparatus, where one or more features are realised wholly / tele de invenție, un brevet poate fi acordat partly by means of a program.” www.todaysoftmag.ro | nr. 40/octombrie, 2015
37
legal Pe scurt, despre brevete în industria IT&C - deși nu se califică pentru protecție prin brevet – ar putea fi înregistrate ca modele de utilitate, dacă respectă legislația aplicabilă modelelor de utilitate: de exemplu, o soluție IT care aduce o îmbunătățire unei alte tehnologii. Cert este faptul că analiza și estimarea șanselor de brevetabilitate se vor face mereu de la caz la caz, luând în considerare - printre altele - efectul tehnic și funcționalitățile tehnice, aspectul inovator și aplicabilitatea practică a respectivei invenții. De asemenea, chiar dacă ați obține brevetul, este important să rețineți că acesta nu ar proteja programul de calculator, ci soluția tehnică pe care acel program o aduce unei probleme tehnice.
funcție de anumite criterii, de exemplu, valoarea venitului mediu brut lunar (pentru persoane fizice) sau cifra de afaceri (pentru societăți comerciale). Iar la final, pentru curiozitatea dumneavoastră, puteți citi aici2 despre câteva invenții din domeniul tehnologic. Totuși, aveți în vedere faptul că, cel mai probabil, sunt invenții patentate în SUA, unde legislația este diferită față de cea din Europa, iar brevetele în domeniul IT pot fi ceva mai accesibile. Pentru a vedea exemple de invenții brevetate în România și în Europa, puteți accesa acest link3 și acest link4 .
Brevetul nu e valabil oriunde Brevetul vă conferă douăzeci de ani de protecție, doar în țara sau țările în care l-ați obținut, cu condiția să plătiți taxele pentru menținerea lui în vigoare. Cu alte cuvinte brevetul ca și marca este teritorial. De aceea, trebuie să luați în considerare încă de la început unde depuneți cererea de brevet și în ce țări vreți ca invenția dumneavoastră să fie protejată.
2
The 21 coolest inventions of 2015: http://money.cnn.com/gallery/techno-
logy/2015/08/18/coolest-inventions-2015/index.html
O societate din România sau un inventator român poate solicita protecție prin brevet: • Pe cale națională, în România, la Oficiul de Stat pentru Invenții și Mărci (OSIM); • Pe cale regională, la Oficiul European al Brevetelor (EPO); • Pe cale internațională, la Organizația Mondială a Proprietății Intelectuale (WIPO). Procedura de obținere a brevetului diferă în funcție de calea pentru care optați. Dar este întotdeauna complexă și destul de lungă. De exemplu, un brevet, care îndeplinește toate condițiile cerute de lege, se poate obține la OSIM în aproximativ 2 – 5 ani și în aproximativ 3– 5 ani la EPO. Există și cazuri în care procedura se poate complica, ceea ce înseamnă că poate dura mai mult. De asemenea, aspectul costurilor este de luat în seamă atunci când vă propuneți să obțineți un brevet. Acestea pot fi considerabile, dar este bine de știut că puteți beneficia de anumite reduceri la taxele pentru obținerea unui brevet la OSIM, în
38
nr. 40/octombrie, 2015 | www.todaysoftmag.ro
3
Baza de date OSIM: http://bd.osim.ro/cgi-bin/invsearch8
4 http://worldwide.espacenet.com/searchResults?submitted=true&locale=en_EP&DB= EPODOC&ST=advanced&TI=software+program&AB=&PN=&AP=&PR=&PD=&PA=&IN=&CPC =&IC
(y)
g
� o
[@]
@
ays
� �
d
�
8
[SJ [Sl
workshops
JAVA PERFORMANCE WORKSHOP FOR SENIOR JAVA DEVELOPERS An advanced review of how the JVM really uses memory:
(i[SJ-�
� OC:::::::::,00
o=oo
OC:::::::::,00
i--------1 -----
()
� o
�
LEARNING BV HAVING FUN PROJECT MANAGEMENT THROUGH PM GALAXY BOARDGAME FOR TEAM LEADERS & PROJECT MANAGERS
What are references, What is compressed OOPS,
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.
How are the fields in an object Laid aut.
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 stare lt 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.
This workshop is an introduction to project management and offers a clear structuring of projects: a simple approach, but nat simplistic. lts 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 nat to Quizzes, gaining Resources (in exchange for correct answers) and decide how to deal with Challenges and whether or nat helping other projects. Resources are shared and - as in real Life - Limited!
lf 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.
SIMONA BONGHEZ, PHD
PETER LAWREY Higher FrequencyTrading
Colors in Projects
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 ineludes support for off heap memory, thread pinning and low latency persistence and IPC (as low as 100 nano-seconds)
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
Partners
Supporters
�YARD/
GEMINI :ft
SOLUTIONS
® !!:D!!:nm:m1c: --=--------
BANCA TRANSILVANIA'
Ve
SUBSIGN
..
.,......�
colors in projects
>
accentu re TELEN
v·
"CLUJ
ţ
softlead
Loopaa
cl'd"ubC
Organizer FREE WIFI
(AD)HUGGER" ,:U:•R'·1 poţisiJtli!
I'
:HANNEJ,
DA DC' N•,c,;J
sponsori
powered by