today software magazine n10/2013

Upload: serghei-cebotari

Post on 03-Apr-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/28/2019 Today Software Magazine N10/2013

    1/52

    T O D A Y

    S O F T W A R E

    No. 10 Aprilie 2013 www.todaysoftmag.ro www.todaysoftmag.com

    M A G A Z I N E

    BigDa

    ta:Radiogr

    afeHBaseHTM

    L5:WebAu

    dioAPICucli

    pboard-ul

    nnori-ctigtor

    iiStartupW

    eekend

    Interviu cu Tim Huckaby

    Bazele de date NoSQL -o analiz comparativ

    Comunitile de practic,nvare prin aciune i explorare

    Recenzia crii: Thinking in Javade Bruce Eckel

    Provocrile unui Business Analyst

    WordPress i spiritul comunitii

    Sindromul Superman

    NoSQL - Introducere

    Provocrile unui lider (III)

    Istoria IT-ului Clujean (V)

    Comparare ntre diferite soluiiNoSQL

    Prezentarea crii: Going Agilede Gloria J Miller

    Enterprise Application Development

    Aspect Oriented Programming

  • 7/28/2019 Today Software Magazine N10/2013

    2/52

  • 7/28/2019 Today Software Magazine N10/2013

    3/52

    6

    Cu clipboard-ul n nori laStartup Weekend Cluj

    M M

    8

    Startup Live, un eveniment carenu trebuie ratat

    M M

    9

    Istoria IT-ului Clujean (V)- Proiectul Timeline

    M M

    10

    Interviu cu

    Tim HuckabyM T T D

    12

    Liberty Technology ParkCluj

    E L T P C

    15

    HTML5:

    WA APIR O

    18

    Enterprise ApplicationDevelopment

    L C

    21

    Aspect Oriented Programming

    K A

    24

    Provocrile unuiBusiness Analyst

    D H

    27

    Comunitile de practic,nvare prin aciune i

    explorare

    C D

    30

    NoSQL -Introducere

    R V

    33

    Bazele de date NoSQL -o analiz comparativ

    T F B F

    37

    Big Data:Radiografie HBase

    C R

    39

    Migrare website MVC 3 + DB

    n AzureD A

    41

    Provocrile unui lider -partea III

    M M

    43

    Prezentarea crii:

    Going AgileG J. M

    46

    Recenzia crii: Thinking inJava de Bruce Eckel

    S D

    48

    Sindromul Superman

    A O

    50

    WordPress i spiritulcomunitii

    C S

  • 7/28/2019 Today Software Magazine N10/2013

    4/52

    4 nr. 10/Aprilie, 2013 | www.todaysoftmag.ro

    A

    m ajuns la numrul 10 al revistei oday Soware Magazine i ne bucurm c njurul ei se dezvolt o comunitate real care are ca pasiune comun dezvoltareade soware. Am avut o lun a mriorului cu un eveniment special, este vorba

    de ..even mammoths can be Agile, unde am ost alturi de Colors in Projects, re-branding-ulcompaniei Conucius Consultingcondus de Simona Bonghez. Ea este cunoscut ncadrul revistei prin seria de articole Gogu dar i ca trainer experimentat deproject mana-gement. Gogu este n vacana de Pati n luna aceasta, dar avem promisiunea reveniriisale n curnd. Evenimentul a ost un real succes. n Cluj am avut 230 de participani cumuli speakeri locali dar i internaionali. A dori s o menionez pe Gloria Miller care aavut o prezentare tehnic pe tema Agile. n acest numr publicm un articol n care ea iprezint cartea Going Agile. l elicit pe Dan Suciu pentru prezentarea cut n cadrulevenimentului, aceasta conducnd n topul de vizionrilor de pe canalul nostru de you-tube cu 1,300 de minute cumulate. La o sptmn distan, n Bucureti, s-a remarcatcu o prezentare de excepie David J. Anderson, cunoscut drept printele metodologieiKanban-ului. Am ost impresionai de simplitatea acestei metodologi i de eciena apli-

    crii sale n anumite domenii cum ar media.Un alt eveniment deosebit al lunii martie a ost prima ediie a I Cluster Cluj-

    Innovation Days. Evenimentul de deschidere a adus mpreun lumea de business i ceapolitic. S-a vorbit despre proiecte de dezvoltare local i despre modul de colaborare dincadrul unor companii globale precum IBM. Este o noutate pentru Romnia, iar interesulcrescut al companiilor locale de a lua parte la acesta este un prim pas spre o mai bunnelegere i cretere comun. elul proiectului este dezvoltarea unui ecosistem ce vaavea n centru inovaia prin colaborarea I-ului i mbinarea acestuia cu diverse domeniiconexe cum ar medicina.

    Planicarea evenimentelor lunii mai trebuie s considere I Camp, un evenimentde amploare pe teme Microso i nu numai. Organizatorii acestui eveniment au realizatpentru SM un interviu cu im Huckaby, specialist n NUI (Natural User Interace)

    olosind stimuli tactili, gesturi i neuronale. Avem promisiunea lor de a-l putea revedeape im la Cluj i anul acesta n cadrul evenimentului.SM pornete o nou iniiativ, proiectul imeline, prin care vrem s punem ntr-un

    grac datele despre companiile dezvoltatoare de soware din Romnia. Vom reprezentamomentul de ninare al unei companii, proiectele principale realizate de-a lungul tim-pului, atingerea anumitor criterii cum ar numr de angajai sau cira de aaceri. Astelse va putea urmri grac aceast evoluie i arta mai bine maturitatea companiilor localei de ce nu, o istorie contemporan a acestora.

    La nal, elicitm echipa Cloud Clipboard, ctigtoarea de la ultima ediie a StartupWeekend-ului. Ne bucurm s putem promova iniiativele romneti prin publicarea pelarg a experienelor acestora din cadrul evenimentului i le urm mult succes n conti-nuare. De altel, tot n luna mai, vom avea un eveniment similar dedicat celor ce vor spun o idee n practic, este vorba de Startup Live. Mutndu-ne n sera managementu-

    lui organizaional, vom alturi de Dan Ionescu, www.danis.ro, n iniiativa de a stabiliun set de best practice-uri pentru managementul companiilor romneti unde nu ntot-deauna se pot aplica reetele de succes ale companiilor americane.

    n paginile acestui numr gsii tema NoSQL abordat pe larg n trei articole scrisede autori dierii: NoSQL - Introducere, Bazele de date NoSQL - o analiza comparativa iBig Data: Radiograe HBase. Articolele tehnice continu cu HML5: WebAudio API,Aspect Oriented ProgrammingiMigrare website MVC 3 + DB n Azure. De asemenea,doresc s menionez recenzia crii Tinking in Java de Bruce Eckel, o carte att de cunos-cut i apreciat de programatorii Java. Comunitile n diverse orme sunt prezentaten Comunitatile de practic, nvare prin aciune i explorare i WordPress i spiritulcomunitii.

    V dorim o lectur plcut !

    Ovidiu ManFondator i CEO al Today Sofware Magazine

    Ovidiu Man, [email protected]

    Fondator i CEO al

    Today Sotware Magazine

    editorial

  • 7/28/2019 Today Software Magazine N10/2013

    5/52

    5www.todaysoftmag.ro | nr. 10/Aprilie, 2013

    TODAY SOFTWARE MAGAZINE

    Redacia oday Soware Magazine

    Fondator / Editor n chie: Ovidiu [email protected]

    Editor (startups i interviuri): Marius [email protected]

    Graphic designer: Dan [email protected]

    Colaborator marketing: Ioana [email protected]

    Colaborator social media: Rodica [email protected]

    raductor: Cintia [email protected]

    Reviewer: avi [email protected]

    Reviewer: Adrian [email protected]

    Produs deoday Soware Solutions SRL

    str. Plopilor, nr. 75/77Cluj-Napoca, Cluj, [email protected]

    www.todaysomag.rowww.acebook.com/todaysomag

    twitter.com/todaysomag

    ISSN 2284 6352

    Copyright oday Soware Magazine

    Reproducerea parial sau total a articolelordin revista oday Soware Magazine

    r acordul redaciei este strict interzis.

    www.todaysomag.rowww.todaysomag.com

    Silviu [email protected]

    Consultant Java@ .msg systems Romania

    Marius [email protected] senior sotware developerin cadrul Nokia, n prezentondatorul platormei MintakaResearch

    Radu [email protected]

    Senior Sotware Engineer@iQuest

    Lista autorilor

    Martin [email protected]

    CEO @ Neverail Group.

    Daniela [email protected]

    Business Analyst@ Endava Iai

    Antonia [email protected] aproape 10 ani trainer, psi-holog, consultant sub ormde antreprenor, intraprenori antreprenor din nou

    Ctlin [email protected]

    Sotware Architect@ Nokia, Berlin

    Mircea [email protected]

    Sotware storyteller@ Cloud Clipboard

    Marius [email protected]

    Fondator @ TransylvaniaInnovation VenturesOrganizator @ OpenCoeeClub Cluj-Napoca

    Mihai [email protected]

    Microsot MVPCodeCamp

    Co-ondator ITCamp

    Tudor [email protected]

    Microsot MVPITSpark

    Co-ondator ITCamp

    Radu [email protected]

    Senior Sotware Developer@ Small Footprint

    Lucian [email protected]

    Server AutomationFunctional Architect@ HP Sotware Cluj

    Knall [email protected]

    Java Team Lead@ .msg systems

    Drago [email protected]

    CTO@ TXTFeedback

    Cristina [email protected]

    HR Specialist@ ISDC

    Traian [email protected]

    Sotware Engineer@ 3Pillar Global

    Bogdan [email protected]

    Sotware Engineer@ 3Pillar Global

    Gloria J. [email protected]

    Fondator@ MaxMetrics

    Cornelia [email protected]

    Copywriter/Organizator @WordCamp Transylvania

  • 7/28/2019 Today Software Magazine N10/2013

    6/52

    6 nr. 10/Aprilie, 2013 | www.todaysoftmag.ro

    Cu clipboard-ul n nori

    la Startup Weekend Cluj

    startups

    Pure cross platorm ile system. Nuera o idee pentru un startup. Pentru c lamomentul respectiv, nici nu tiam ce e unstartup. Am alat ulterior... e o idee caredorete s ie un produs. Nu e ceva legat

    exclusiv de lumea I, ns n mediul nostrue oarte uor s aci un prototip i studiude pia. Mai e un lucru esenial: potenialoarte mare de cretere - indice, spirale,sector i ali termeni la care m uit ca labibelouri. Eorturile prezentatoarei de arevigora publicul i de a domina sala au avuteectul invers dorit, dar ntr-un nal a nce-put ocul depitch-uri (pitchre). Au ost 36depitchuri. Reaciile au oscilat ntre hai,i serios!, hmm, interesant, s-ar puteas uncioneze. Am remarcat: Catwalk15,FridgeChe, DoItForMe, CloudClipboard.

    n continuare, unii pitcher i s-au aezatlng aele care le aparineau ncercnds conving lumea s voteze ideea lor. Astanu trebuia s se ntmple, pitch-ul trebuias e sucient. Dar... se pare c mult lumeera hotrt s ctige.

    Oare chiar sta s e secretul succesu-lui? Sper c pn la sritul articoluluis rspund la ntrebarea asta. 17 idei au tre-cut de etapa de votare i echipele au nceputs se ormeze. Piki (Istvan Hoka), pe care ltiam de la un CodeRetreat, se uit la mine,

    arat spre una din echipe, i m ntreabCloudClipboard?. Pitch-ul lui Clin ar pe scurt: Seamlessly copy/paste acrossdevices. As simple as CRL+C, CRL+V.Nu cred c exagerez dac spun c a rostit

    seamlessly de cel puin o sut de ori pedurata celor trei zile.

    i aa a nceput...Clin s-a dovedit de un entuziasm

    contagios. Ne-a primit oarte ncntat nechipa lui. Ne-am prezentat, ne-am spuspe scurt background-ul, iar pe msur ces-au mai alturat oameni echipei, Clin neprezenta pe ecare. Ne-a memorat numelei lucrurile la care ne pricepem imediat.Ne-a mai i complimentat: artai ca nitetipi detepi. Astea ind spuse, am trecutla treab. Am nceput cu un brain dump.Pe parcurs ni s-a mai alturat Kamillia (dinState) i udor. udor e developer, dar i-aexprimat intenia de a n echipa market-ing de la bun nceput. Am aat c udor

    are deja startup-ul lui KeenSkim - cu carea participat la acceleratorul de bussinessEleven din Bulgaria. udor trgea de noi,s ne concentrm pe business, pe produs,nu doar pe un eature cool. Cam greu cuapte developeri a cror expresie era: Lasastea, hai s hackuim ceva!. Am convenitasupra produsului minim viabil; pentruprezentarea nal s putem ace copy depe un device urmat de paste pe altul. S-auconturat echipele: marketing, backend,Android, Windows, Linux i catalistul (mai

    precis Clin.)Ne-am spus ecare ideile i am dezb-tut pn n jurul orei 23:30. Spre deliciulmajoritii, planul era unul oarte sim-plu: mine scriem cod. Java, C#, Ruby,

    Vineri, ziua de mrior, 19:30. 150 de oameni ntr-un local care gzduiete nuni,

    de obicei. Atmosera era destul de apstoare. De cum am intrat, am tiut c nuo s pitch-uiesc. Nu doar att, dar m ntrebam ce caut acolo. Aveam o idee,

    i mi-am cut o scurt prezentare n minte n zilele precedente, dup care am leuit-opn a ajuns prezentarea la un minut. Iniial nu tiam dac vreau sau nu s o prezint, daram czut de acord cu mine c o s iau decizia nal cnd vom ajunge la eveniment, nuncie de atmoser.

    Mircea [email protected]

    Sotware storyteller@ Cloud Clipboard

  • 7/28/2019 Today Software Magazine N10/2013

    7/52

    7www.todaysoftmag.ro | nr. 10/Aprilie, 2013

    TODAY SOFTWARE MAGAZINE

    Publish/subscribe, Pubnub API.Localul urma s se nchid la miezul

    nopii aa c am rmas n aa restau-rantului s povestim. Ce altceva dect...detalii de implementare. Pairing, backend,parazitare pe Google Docs sau Dropboxpentru transer de iere, descoperire ntredevice-uri.

    Smbt dimineaa am pornit cu multenergie. Pna la ora 13:00 aveam un cha-troom pe Campire, repository Github,documente cu descrierea mentorilor cucare urmam s stm de vorb i organi-zarea echipelor. Pe la prnz, prototipulnostru prindea contur, primele mesaje aunceput s circule pe canalul de Pubnub.

    Dar lsnd un pic la o parte entuzi-asmul tehnic, vom meniona cteva dinsaturile pertinente primite de la mentori.

    Ibrahim Evsan ne-a ncurajat s almcomportamentul utilizatorilor, ce el deinormaii au n clipboard i ne-a recoman-dat s sumarizm ce ace produsul nostru,s ajungem la un use case. Ne-a sugeratchiar i c putem construi un nou tip desearch engine n jurul conceptului nos-tru. David Zwelke a ost genial. Irumpeacu idei i dup ct timp ne-a alocat, suntconvins c i-a cut plcere s povesteasccu noi. Ne-a sugerat mpachetarea produ-sului n Goldsh i Elephant edition,

    idee care a ajuns n planul nal de aaceri.Ne-a oerit recomandri legate de encrip-ie, metode de pairing(bump, QR code,Bluetooth-likepairing), securitate, aspectelegale i cum putem aduga latura social.Ne-a sugerat un punct dureros pentru careprodusul nostru putea s e o soluie: rus-trarea de a nu putea mprti inormaierapid. A mai subliniat c e important s nediereniem de competiie. A ost delicioscomentariul, care a sunat cam aa: oitipii ai cu barb pe gt, mptimii Linuxvor zice: puteam s ac pipe la clipboard

    prin SSH nc din 92. Dup care se uitla mine i mi spune Barba ta arat maibine dect a lor.

    ine minte totul ce obinuiai s uiipn acum a ost o sugestie de motto,iar la eature-uri s adugm autoillntre device-uri,plugin-uri,pullla lucruripredenite.

    Sebastian Presecan ne-a sugerat ctevantrebri la care trebuie s rspundem:cine ne e grupul int, cum transeroamenii inormaii acum, ct timp pierd

    cu asta, de ce s olosim copy/paste de labun nceput, cum se rezolv problema nmod actual. De asemenea ne-a sugerat sevitm termenii prea tehnici, s comuni-cm n limbajul publicului larg. Christoph

    Raethke ne-a sugerat s direcionm solu-ia noastr ctre corporaii sau s o oerimla pachet cu soluii existente. Pe de altparte Simon Obstbaum ne-a spus c e unissue care ine de utilizator, nu e problemaunei corporaii.

    n jurul orei 15, echipa de marketingera n discuii cu Bradley Kirkham. i ntre-rup Deci, live demo! Iniial Clin a rs,creznd c glumesc... Serios?! Piki acecopy la un text de pe Mac, eu ac pastepe laptop-ul meu cu Linux, aa lui Clinse lumineaz i Bradley exclam Tats socool! n urma discuiilor cu mentorii euunul m-am simit descurajat. Lumea s-aartat ncntat de idee, dar chiar aveamun produs? Ne-am petrecut restul zileidiscutnd i... de amar, mai cutam oareceeature-uri pe care s le mai implemen-

    tm pn mine. Optimizri, vizualizareai agregarea datelor etc. Nu s-a ales marelucru i pe la 21:30 am pus punct.

    Duminic.udor: Cui se adreseaz produsul?Clin: Mie.

    Aceast conversaie s-a repetat de vreotrei ori. Dup un timp lucrurile a nceputs sune mai bine. O pia ormat dintineri proesioniti I, n proporie 90%

    brbai, programatori, jurnaliti care vors ie productivi i s lucreze organizat,n contextul n care sar des de la o idee laalta. Aveam publicul int denit, strategiede rollout( ediia Goldsh i Elephant )iar din punct de vedere al execuie un pro-totip uncional pe 3 platorme, o echipi un model de ctig clar i realist (saumcar credibil, n orice caz.)

    CloudClipboard propune un procesdin doi pai pentru transerul de date,iar combinaia de taste e impregnat nmemoria muscular a oricrui utilizator.

    Un clipboard inteligent, global, sensibilla tipul de date. Exist soluii similare darmarele lor neajuns este c ac sincroni-zare olosind o intera (Evernote) sau erestricionat la un OS (de pild iOS deoa-recere sincronizarea se ace via iCloud.)

    Suna bine, aa c am nceput s acemprezentarea i slide-urile. Am ilmat undemo: copy la un numr de pe un teleoni paste ntr-un chat de skype. Am cut untestdrive la prezentare lui Philip Kandall(Skobbler) care ne-a sugerat s gsim

    numere mai realiste legate de grupul int(numrul total de persoane care lucreazn I nu e credibil) i ar trebui s ranmaspectul ast. Aadar, am studiat piaaEvernote i Dropbox i am inclus asta.

    Prezentarea a mers brici, iar Christoph(Berlin Startup Academy) a venit naintede premiere s ne invite la Berlin, indie-rent de rezultatul care urma s e anunat.Cei de la SM au cut un sondaj de popu-laritate ntre participani i am vzut caveam n jur de dublu numrul de voturia de urmtoarea echipa. Am simit clucruri ncep s se ntmple, dar tot mabineam s m gandesc c vom ctiga.Nici nu a pomenit nici unul din noi asta.

    Dar, poate deloc suprinztor. . .CloudClipboard a ctigat.

    Ne-am completat. Acesta a ost imotivul pentru care s-a ormat o echipbun; ne-am simit inteniile i am rezo-nat ca i abordare. Ne-am organizat repedei iniial nu ne-a psat de nimic. Pe lng

    asta, am avut dorina sincer s ne simimbine. Nu ne-am gndit la ctig, dar ne-amcut bine treaba pentru c aa ne e rea.

    i am urmat saturile. Una din conclu-ziile pe care le-a tras Clin sun cam aa:ascult ntotdeauna, nu te preace doar.Plus c ne-am distrat. Pentru prototip nuavem pairing. Eram toi conectai la ace-lai canal. Aa s-a nscut paste roulette.Dai paste i nu tii sigur ce obii i dinclipboard-ul cui. A ost cel mai mare eve-niment startup din Romnia de pna

    acum, iar Cristoph a armat pe blogul suc potenialul pe care l-a vzut la SWCluj,e precum cel din lumea startup-urilordin Germania. A intuit i oarte bine cirmele de outsourcing nu las nimicn arurie cnd vine vorba de oamenitalentai. Aadar lucrurile sunt promi-toare, nu ducem lips de talent i e deateptat s auzim din ce n ce mai des des-pre startup-uri. Ct despre petrecerea dedup eveniment, Cristoph a sumarizat-ocam aa: the participating geek girls hadrevamped into bombshells.

    Pentru echipa Omnipaste (redenu-mit din cauza unui nameclash cu o altaplicaie) distracia ncepe cu patru zile nBerlin.

  • 7/28/2019 Today Software Magazine N10/2013

    8/52

    8 nr. 10/Aprilie, 2013 | www.todaysoftmag.ro

    startups

    Startup Live, un eveniment care nu trebuie ratat

    OpenCoee din Cluj-Napoca, l-a cunoscutpe Mihai Dan Nad, CO-ul Yonder, unadintre companiile importante din indus-tria I Sotware clujean. n septembriecei doi au pus bazele IV, cu misiunea dea transorma oraul Cluj-Napoca pn n2022 n polul inovaiei i antreprenoriatu-

    lui n domeniile I soware i tehnologicdin Romnia. Cu alte cuvinte visul on-datorilor este ca n anul 2022 orice tnrdin Romnia care dorete s porneasc unstartup tehnologic s vin n Cluj-Napoca,unde s gseasc toate resursele de care arenevoie pentru a reui.

    Unul din primele proiecte importanteale IV este Startup Live. Acest eveniment,care se va desura ntre 17 i 19 mai,este organizat mpreun cu Start Europe,organizaie care e n spatele Pioneers

    Festival, una din cele mai mari conerinededicate antreprenoriatului tehnologic lanivel european, care se desoar la Viena.Startup Live este un eveniment care sedesoar n peste 30 de orae europene.

    Dar ce este Startup Live? Este un eveni-ment care se desoar pe parcursul unuiweekend, n timpul cruia participaniiau ocazia de a transorma o idee ntr-un startup sau pot lucra la un proiectdeja existent. De asemenea, ei vor avea ladispoziie mai muli mentori de la care

    pot primi saturi sau rspunsuri pentruntrebrile lor. Mentorii sunt tineri care nultima perioad au trecut prin experienatransormrii unei idei ntr-un produs, dari experi tehnici din comunitatea local.Printre acetia se numr: Cosmin Mihaiu,co-ondator i CEO al MIRA Rehab, com-

    panie clujean care a primit o investiiedin partea acceleratorului Healthbox dinLondra; udor Vlad, ondator i CEO alKeenSkim, o alt companie clujean ncare a nvestit acceleratorul Eleven dinSoia; Victor Popescu, ondator i CEOal Gameleon, care a ctigat Startup LiveBucureti, Innovation Award la How toWeb Bucureti (cea mai mare conerin deprol din Romnia i susintor al StartupLive Cluj-Napoca), a primit o investiie dinpartea acceleratorului Eleven din Soa i

    este prima echip romneasc care a ostselectat n cadrul acceleratorului MozzilaWebFWD; Ciprian Mardare, co-ondator iCO al Nexi.me, care a primit o investiiedin partea acceleratorului Rockstart dinAmsterdam i alii.

    Vestea acestui eveniment nu a rmasr ecou n comunitatea local. Yonder,unul dintre susintorii activi ai inovaiein Cluj-Napoca, a hotrt s se alturenc de la nceput evenimentului i va asi-gura spaiul de desurare. O alt surpriz

    plcut a ost cut de Skobbler, companiecare, dei a investit masiv la nceputul luimartie n organizarea Startup Weekend,este hotrt s susin i acest eveniment.Un alt partener important este BarandiSolutions, o mic companie local carepe lng susinerea pe care o oer eve-

    nimentului va alege una dintre echipeleparticipante, care va decide s continueproiectul nceput i o va ajuta s dezvolteun MVP. Mai trebuie menionat echipaKlain, care se ocup de dezvoltare web,strategii de marketing online i promovare,oerindu-ne o parte din experina lor peparte de comunicare i prezen n socialmedia. Acetia sunt doar o parte din sus-intorii acestui eveniment, lista ind multmai lung.

    Pentru mai multe inormaii v rugm

    s urmrii site-ul oicial (http://startu-plive.in/cluj-napoca/2/) i pagina deFacebook (https://www.acebook.com/startupliveclujnapoca)

    n ultimii ani au nceput s apar i n Cluj-Napoca tot mai multe persoane interesate de antreprenoriat n zona soware. Odatcu aceast tendin au aprut dierite organizaii i persoane care i ajut pe tinerii care vor s urmeze aceast cale. Una dinaceste organizaii este i ransylvania Innovation Ventures (IV). Povestea IV a nceput n vara anului 2012, n Bucureti, la

    unul dintre colocviile Caesar organizate de Liga Studenilor Romni din Strintate. Acolo, Marius Mocian, organizatorul ntlnirilor

    Marius [email protected]

    Founder @ TransylvaniaInnovation VenturesOrganizer @ OpenCoeeClub Cluj-Napoca

    Startup Live

    Cluj Napoca

    17 - 19 Mai 2013 2

    StartupLiveClujNapoca startuplive.in/cluj-napoca/2/

    Detalii despre eveniment

    Klain

  • 7/28/2019 Today Software Magazine N10/2013

    9/52

    9www.todaysoftmag.ro | nr. 10/Aprilie, 2013

    TODAY SOFTWARE MAGAZINE

    Istoria IT-ului Clujean (V)Proiectul Timeline

    istorie

    Propunerea din acest numr esteoarte simpl. Vrem s construimun timeline comun al ct mai mul-tor companii de I din peisajul clujean.

    Am plecat de la ideea alctuirii uneiliste, pentru popularea hrii I (din num-rul trecut), olosind surse oarte variate,

    nestructurate, r a ncerca s explorezexhaustiv mediul de business. De exemplulista de membrii ai Cluster I, ARIES, rmeprezente la JobShop, anunuri pe BestJobs,contacte de pe LinkedIn, cri de vizitstivuite pe birou, etc. Iar pentru c acest

    proiect aparine comunitii, SM avnddoar un rol catalizator, am decis s v pre-zentm aceast list iniial, nsoit de ocerere de ajutor n a o extinde i eventualcorecta. Dei majoritatea numelor olosite

    au ost validate online pe site-urile com-paniilor, totui sunt anse s existe uneledierene a de brandul ocial sau cel pre-zent n cultura popular, cum ar Betair

    vs. SE Development, Nethrom Sowarevs . Yond er, ORA vs . ora radi ngServices, etc. Pentru a acilita eedback-ul

    a luat natere wordlet-ul alturat.n ncercarea de a combate ineria tipic

    a cititorilor notri i a explora tema istorica seriei, v provocm s ataai iecruinume din acest wordlet un timeline succintal companiilor dumneavoastr. Exemple

    de evenimente ce pot popula acest timelinear : ondarea companiei, depirea unuinumr de clieni, angajai, cir de aa-ceri, schimbarea brandului, parteneriate,evenimente, lansri de produse, contracte

    majore, etc. . Noi promitem s combinmtoate timeline-urile primite ntr-unul sin-gur, care s prezinte o perspectiv comuni succint asupra evoluiei I-ului local.

    Considerm acest exerciiu util i indi-vidual, prin caracterul auto-explorator irezultatul inal simplu, ce poate nlocui

    cartea de vizit a oricrei companii. Sper sv plac aceast provocare i s rspundein numr ct mai mare.

    Marius [email protected]

    Fost senior sotware developerin cadrul Nokia, n prezentondatorul platormei MintakaResearch

  • 7/28/2019 Today Software Magazine N10/2013

    10/52

    10 nr. 10/Aprilie, 2013 | www.todaysoftmag.ro

    Interviu cu Tim Huckaby

    im, cnd ai nceput cariera de proesi-onist I?

    [im]: depinde cum denim proesi-

    onist. n mod cert mi-am ctigat o partedin banii necesari studiilor universitareprin consultan i proiecte de dezvoltaresoware. Dup absolvire m-am angajat laEDS ... asta pe cnd era condus nc deRoss Perot.

    Ce te-a acut s alegi aceasta meserie?[im]: asta e o poveste interesant.

    Eu am studiat la un liceu catolic pentrubiei. Nu studiam tmplria; studiamlatina. Nu aveam calculatoare; aveam cal-cul dierenial i integral. Nu m-am atins de

    programare pn la primul curs de Pascaln acultate. M-am indrgostit de progra-mare din cauza acelui curs. Dup aceea amurmat toate cursurile de programare dinacultate, absolut toate.

    Eti autorul unor cri pe tehnologii

    Microso. Cum ai reuit s ai att de multsucces?

    [im]: succesul e relativ. nc mai amoarte multe de realizat pe plan proesio-nal. nc scriu articole pentru reviste si untutorial lunar de dezvoltare de aplicaii, dar

    mi-ar greu s scriu inc o carte. Pe aceleale-am scris pentru c lucram n echipele deprodus la Microsot. tiam produsele dela cap la coad i a ost doar o munc dea le explica. Expertiza pe care o am acumeste n zona experienei utilizatorilor, NUI(Natural User Interace), implicarea utili-zatorilor. E greu s scrii despre aa ceva. Emult mai ecient s o ari. Ceea ce explicde ce ac att de multe prezentri.

    u i compania ta, Interknowlogy,

    suntei oarte specializai pe tehnologiiMicroso. Cum reueti s rmi la curentcu tehnologia innd cont de viteza cu careprogreseaz?

    [im]: nu reuesc. tiam toat

    platorma Microsot de la cap la coada.Acum doar m menin la curent cu prilecare m intereseaz. Am atia colegi

    inteligeni n companie pe care pot s mbazez, iar atunci cnd am nevoie s nelegceva m adresez lor. Platorma Microso eoarte mare acum. Nimeni nu o poate ti pede-a-ntregul.

    Cum i petrece im Huckaby o zi tipicde lucru? nc mai ai timp pentru muncatehnic?

    [im]: Cred c de asta viaa mea e oartecaptivant: nu am o zi tipic. Niciodata nurepet aceeai zi. ind s cltoresc oarte

    mult ceea ce mi ace viaa interesant. i,evident, apare o criz n ecare sptmn.Ct despre tehnologie: nc o iubesc. Dar,aa cum am menionat anterior, nclin smi petrec zilele tehnice avnd o vedere deansamblu i nu n detalii aa cum mi-amnceput cariera. Iar Interknowlogy este ocompanie de proiecte custom care dez-volt aplicaii pentru toate industrii le, dela cercetare n domeniul cancerului, laretail, pn la NASA. Deci, munca e chiarinteresant. Dar, pe masur ce avansez nvrst sunt tot mai mult angrenat n com-

    plexitatea business-ului. Iar provocrile debusiness sunt la el de complexe ca cele deprogramare ... dac nu mai mult.

    Care sunt hobby-urile tale? Mai ai timp

    pentru ele?[im]: niciodat nu este sucient timp

    ntr-o zi ... mi-a luat 10 ani s construiescInterKnowlogy aa cum este acum. Iar la 15ani de via, este o companie excepionalcondus de oameni excepionali. Acumciva ani m-am dat la o parte din poziia

    de CEO i am promovat numrul 1 deatunci. Asta mi-am propus dintotdeauna.mi lipsesc rdcinile din dezvoltarea deproduse, i dei nc dein InterKnowlogyi sunt preedintele companiei, nu mai sunt

    implicat n operaiunile zilnice la el de

    mult. Petrec mai mult timp cu start-up-ulmeu. Se numete Actus i dezvolt produseinteractive de aiaj electronic (conduseprin gesturi i voce cu Kinect). Dar, crederm n amilie i hobby-uri. Nu prea m uitla V (cu exceptia sportului i comediei) inu m joc pe xBox. Dar, iubesc natura. miiau cu mine un snowboard sau o undide pescuit la musc n ecare cltorie debusiness pe care o am. Se ntmpl oarterar s nu mi rezerv cteva ore de pescuitla musc ntr-o cltorie de business. Mi-arplace oarte mult s ac asta i n munii din

    Romnia.Dac ai avea din nou 25 de ani, ce ai

    ace proesional?[im]: greu de rspuns. ntotdeauna

    mi-a plcut soware-ul, dar uneori simt cmi-am ratat chemarea n tiinele naturii.Mi-ar i plcut s iu un biolog de teren.Din cauza pescuitului la musc tiu maimulte despre entomologie (tiinta insec-telor) dect cei mai muli oameni. n plus,ntotdeauna am simit c a avea nclinaii

    muzicale. Nu mi s-a permis niciodat scnt la un instrument; cred c dac mi s-ar permis, a ost bun la asta. Cnd o sm pensionez, cred c o s nv s cnt laun instrument atunci cnd nu voi skia sau

    im Huckaby este un specialist n NUI (Natural User Interace) olosind stimuli tactili, de micare i neuronali. A ost numitPionier al Smart Client Revolutions de ctre presa internaional i este cunoscut pentru calitatea prezentrilor tehnice pecare le susine la conerine din ntreaga lume. Va prezent la I Camp unde vei putea asista timp de dou zile la trei track-uriparalele ce vor cumula peste 30 de ore de prezentri, dezbateri i workshop-uri .

    Tim Huckaby

    Microsot RD, MVPInterKnowlogy

    interviu

  • 7/28/2019 Today Software Magazine N10/2013

    11/52

    11www.todaysoftmag.ro | nr. 10/Aprilie, 2013

    TODAY SOFTWARE MAGAZINE

    pescui.Asta va a doua vizit a ta in Romnia.

    Ce tiai despre ara noastr nainte de primavizit? Care e prerea ta acum?

    [im]: ei bine, sunt norocos. n ultimii15 ani Microso m-a trimis n toat lumea.Deci, am ost peste tot n Balcani, peste totn Europa de Est i niciodat nu avusesemocazia s vd Romnia. Aa c atunci cndoportunitatea s-a ivit am acceptat imediat.Foarte interesant e c soia mea Kelly esteinvitat i ea n aceste cltorii cu mine, dardin cauza copiilor i a treburilor n gene-ral, vine oarte rar. Dar, a venit anul trecutn Romania i s-a distrat de minune. Amnchiriat o main i am condus prin ar.

    Ce aventur! Hai s spunem doar c GPS-ulne-a dus pe drumuri care sunt mai reledect cele pe care le-am vzut n Mexic. n

    plus, oerii conduc nebunete! i am con-dus n Roma ... dar nu am vzut niciodatoeri mai nebuni dect n Romnia. O s-oaduc pe Kelly i n acest an. Abia ateptm!

    Cum vezi proesionitii I din Romnia?

    Att bine ct i ru.[im]: nu prea vd lucruri rele. Vd

    programatori entuziasmai. Avem angajain Estul Europei. Este enorm de mult talentde inginerie sotware n Estul Europei.Avnd n vedere inrastructura, economia,cultura, etc. - poate c evoluia tehnolo-gica a ost rnat n cteva locuri. Dar serecupereaz ... rapid. Oricum, i noi avemprobleme destule n SUA. Peste tot nlume sunt probleme care rneaz evoluia

    tehnologiei. ns tehnologia n sine nu eproblema.

    Mihai [email protected]

    Microsot MVPCodeCamp

    Co-ondator ITCamp

    Tudor [email protected]

    Microsot MVPITSpark

    Co-ondator ITCamp

  • 7/28/2019 Today Software Magazine N10/2013

    12/52

    12 nr. 10/Aprilie, 2013 | www.todaysoftmag.ro

    business

    Liberty Technology Park Cluj

    Silicon Valley, un model demn de urmat

    Imaginai-v c acem un salt n tre-

    cut, n urm cu 60 de ani, n S.U.A, lngStandord University i privim cum subochii notri ia via comunitatea ce astzieste cunoscut sub numele de SiliconValley, primul i n continuare cel mairenumit parc tehnologic dedicat cercetriii inovaiei tiiniice. Pentru a rspundenevoilor inanciare, dar i educaionaleale centrului universitar Stanord imediatdup cel de-al Doilea Rzboi Mondial ipentru a oeri oportuniti de angajareabsolvenilor, s-a propus ca o parte dinterenurile aparinnd universitii s ie

    date spre nchiriere doar companiilor dindomenii conexe, cu scopul de a deveni unparc de birouri. Iniial s-a numit StanordIndustrial Park, iar ulterior a primit denu-mirea de Stanord Research Park.

    Premisele care au stat la baza orm-rii conceptului de parc tehnologic i careau condus la materializarea acestuia nmai multe locuri din lume sunt legatede dorina de a angrena oameni caremprtesc aceleai interese pentru dez-voltarea domeniilor de activitate n care

    proeseaz ntr-un mod creativ. La loc decinste se a schimbul de idei i implica-rea oamenilor tineri cu potenial n gsirearesurselor necesare pentru o dezvoltareructuoas a noilor tehnologii.

    Un ecosistem dinamic n inimaTransilvaniei

    Revenim n prezent. Suntem pe stradaGrii, n Cluj-Napoca, pe platorma osteiabrici de mobil Libertatea, locul undes-au pus bazele parcului tehnologic Libertyechnology Park Cluj, un proiect gndit pebaza acelorai premise ca i conglomeratulSilicon Valley.

    Situat n Cluj-Napoca, cel maiimportant ora al ransilvaniei, Libertyechnology Park Cluj i propune s inter-vin n peisajul local la un nivel pround,oerind un loc n care mai multe companiidin domeniile I&C i R&D conecteaz,

    angreneaz i ncurajeaz oameni motivaii idei creative ntr-un ux perpetuu de dez-voltri inovatoare. Liberty echnology ParkCluj este menit s uncioneze asemeniunui ecosistem dinamic pentru companiiI&C i R&D locale i internaionale, bazatpe un concept inedit i alimentat de aceaviziune aparte care ace ca ideile s prindvia i aacerile s prospere.

    Conceput pe amplasamentul os-tei abrici de mobil Libertatea, Libertyechnology Park Cluj reinventeaz iden-

    titatea acesteia utiliznd patrimoniulindustrial primit odat cu terenul ntr-unmediu destinat pentru a rspunde nevoilorunei companii I&C i R&D. Din punct devedere arhitectural, principiul central pe

    Este primul parc tehnologic din Romnia, un parc de idei plasat ntr-un spaiurevoluionar, creat pentru a oeri condiii excepionale de cretere i dezvol-tare companiilor din domeniile I&C i R&D ntr-un areal inedit din punctde vedere conceptual i arhitectural.

    Echipa Liberty Technology Park [email protected]

  • 7/28/2019 Today Software Magazine N10/2013

    13/52

    13www.todaysoftmag.ro | nr. 10/Aprilie, 2013

    TODAY SOFTWARE MAGAZINEbusiness

    care l-au urmrit arhitecii de la Chapmanaylor are n vedere reconvertirea spaiilorexistente ntr-un parc tehnologic ce vareecta energia companiilor tech alimen-tate de potenialul uman pe care oraulCluj-Napoca l are de oerit.

    Habitatul Tech Ideal

    n cadrul acestui habitat tech o partedin eorturi se vor concentra pe creareacelui mai complex accelerator business dinRomnia: Spherik. Spherik va prima plat-orm de acest el pe plan naional, menits ajute, s creasc i s dea via aacerilorcu potenial, o platorm destinat dezvol-trii i implementrii de aaceri pe planlocal, dar i internaional.

    Cea mai mare parte a eorturilor seva concentra ns pe crearea unui mediuct mai stabil i valoros pentru angajaii

    companiilor din I&C i R&D, un mediu ncare accentul este pus din start pe inovaiei creativitate, pe gsirea celor mai ecientesoluii i nu n ultimul rnd pe valorica-rea potenialului de resurse umane. Pentrua reui, Liberty echnology Park Cluj punela dispoziie mai multe tipuri de spaiiconcepute pentru a crea locul de muncideal. De la spaiul de birouri eectiv pnla tot ce ine de timpul petrecut n aaralocului de munc, ntreg habitatul a ostgndit la standarde nalte pentru a ntlnitoate nevoile unei companii din I&C iR&D, inclusiv gama complet de servicii iaciliti premium.

    Parcul va integra spaii de organizareevenimente, sli de conerine, o zon deleisure ce include un restaurant cu teras,

    o caenea, sal de tness, spaii verzi ame-najate, terenuri de sport multiuncionale,grdini interioare, dar i o zon de retaili

    ngrijire medical, toate concepute pentrua crea un habitat tech ideal.

    Liberty echnology Park Cluj este unproiect dezvoltat de Fribourg Developmenti urmrete intensiicarea conexiuni-lor i a comunicrii ntre companii dindomenii conexe prin crearea unui spaiurevoluionar ce va genera inovaie iprogres.

  • 7/28/2019 Today Software Magazine N10/2013

    14/52

    14 nr. 10/Aprilie, 2013 | www.todaysoftmag.ro

    oarte implicat, organizatorii au avut de urc doar cu succesul lapublic i, implicit, numrul mare de participani (provocare pe careo dorim ecrui eveniment de prol). Cluj I Innovation Days asemnat mai degrab a eveniment aristocratic n I-ul local. Attorganizarea evenimentului, dar mai ales publicul: un mixt de guripolitice, reprezentani ale celor mai mari companii I, invitai dinalte orae, proesori universitari i organizatori de evenimentemajore din I, au compus o atmoser de business de nivel nalt.Dovada c ecosistemul a acumulat sucient mas critic i a reali-

    zat saltul la un nou nivel de colaborare n comunitate.

    ransylvania Java User Group

    Comunitate dedicat tehnologiilor Java.Website: http://www.transylvania-jug.org/Data ninrii: 15.05.2008 / Nr. Membri: 533 / Nr. Evenimente: 41

    Comunitatea SM

    Comunitate construit n jurul revistei oday Soware Magazine.Website: http://www.todaysomag.roData ninrii: 06.02.2012 / Nr. Membri: 520 / Nr. Evenimente: 8

    Romanian esting CommunityComunitate dedicat QA.Website: http://www.romaniatesting.roData ninrii: 10.05.2011 / Nr. Membri: 582 / Nr. Evenimente: 1

    GeekMeet Cluj

    Comunitate dedicat tehnologiilor web.Website: http://geekmeet.ro/Data ninrii: 10.06.2006 / Nr. Membri: 533 / Nr. Evenimente: 16

    Cluj.rb

    Comunitate dedicat tehnologiilor Ruby.Website: http://www.meetup.com/cluj-rb/

    Data ninrii: 25.08.2010 / Nr. Membri: 133 / Nr. Evenimente: 33

    Te Cluj Napoca Agile Soware Meetup Group

    Comunitate dedicat metodelor Agile de dezvoltare soware.Website: http://www.agileworks.roData ninrii: 04.10.2010 / Nr. Membri: 297 / Nr. Evenimente: 24

    Cluj Semantic WEB Meetup

    Comunitate dedicat tehnologiilor semantice.Website: http://www.meetup.com/Cluj-Semantic-WEB/Data ninrii: 08.05.2010 / Nr. Membri: 137/ Nr. Evenimente: 21

    Romanian Association or Better SowareComunitate dedicat oamenilor cu experien din I indierent detehnologie sau specializare.Website: http://www.rabs.roData ninrii: 10.02.2011 / Nr. Membri: 208/ Nr. Evenimente: 11

    Dintre evenimentele I ale ultimei luni vom selecta dou, plasate la capete opuse ale spectrului de dezvoltare business, darasemntoare prin calitatea atmoserei i mai ales a participanilor. StartupWeekend este adresat celor la nceput de drum ndenirea i ormarea unei aaceri. Motiv pentru care atmosera a ost plin de agitaie i entuziasm, susinut de o concuren

    sntoas i politicoas ntre echipe, att ct s existe tensiunea i bucuria ctigrii. Alturi de o echip de mentori numeroas i

    Calendar

    Aprilie 4

    Lansarea numrului 10 SMwww.todaysomag.ro

    Aprilie 4

    Ruby pe iOS: Introducere in RubyMotion

    www.meetup.com/cluj-rb/

    Aprilie 9

    Jim Bagnola Lead the Change, Cluj-Napocawww.jimbagnola.ro/evenimente/cluj/

    Aprilie 9

    AgileWorks Remote Open Spacewww.meetup.com/he-Cluj-Napoca-Agile-Sotware-Meetup-Group/

    Aprilie 10

    Facebook graph searchwww.meetup.com/Cluj-Semantic-WEB/

    Aprilie 10

    Functional Programminghttp://lnkd.in/CijSms

    Aprilie 26

    Romanian Progress User Group

    http://it-events.ro/events/romanian-progress-user-group/

    Aprilie 27

    Windows Azure Bootcamp

    it-events.ro/events/windows-azure-bootcamp-at-cluj-napoca/

    Mai 16-17

    Romanian esting Community Conerence 2013

    http://www.romaniatesting.ro/

    Mai 23-24

    ICAMP 2013 - Recomandat de SM

    http://itcamp.ro

    Joi/sptmnal

    OpenConnectwww.acebook.com/groups/355893314491424/

    Miercuri/bilunar

    OpenCoeewww.acebook.com/opencoeecluj

    Comuniti IT Cluj-Napoca

    comuniti

  • 7/28/2019 Today Software Magazine N10/2013

    15/52

    15www.todaysoftmag.ro | nr. 10/aprilie, 2013

    TODAY SOFTWARE MAGAZINE

    Noutatea multimediaHML5 vine cu o mare surpriz pen-

    tru dezvoltatorii de aplicaii multimedia.Deja tim pe de rost c exist tagul audio i

    video. Nu vom vorbi despre ele n acest arti-col. O examinare supercial arat c tagulaudio nu este sucient pentru aplicaii seri-oase, ind gndit s ascund complexitatearedrii sunetelor. agul asigur eventual unbackground muzical excelent pentru nos-talgicii site-urilor din anii 90. Pentru cei cevor s dezvolte procesoare de sunet n timpreal, HML5 descrie o intera special:WebAudio.

    WebAudio permite poziionareasunetelor ntr-un spaiu tridimensional,mixarea surselor multiple de sunet redate

    simultan i rutarea lor printr-un sistemmodular puternic de procesare. Eecteleaplicabile includ un motor de calitate naltpentru reverberaii i simulare complet aspaiului de audiie. De asemenea, dateleaudio pot analizate n timp real.

    Aceste aciliti au o int oarte spe-ciic: jocurile i aplicaiile de procesareaudio. Staiile de procesare audio sowareau ost strict de domeniul desktopului.Niciodat nu s-a pus problema ca un artists porneasc browserul pentru a executa o

    perorman live. Nici nu s-a crezut c vaavea vreodat sens ca o claviatur MIDI scomunice cu un browser web. Ei bine, totuls-a schimbat cu apariia WebAudio.

    Inrastructur mai sofsticatPentru a ridica standardul multimedia

    n browsere att de sus, WebAudio nece-sit o undaie special. Pentru nceput,

    datele audio exist ntr-un thread separatde restul aplicaiei deci orice procesareeste erit de intererenele aplicaiei web.Datele audio, sursele, destinaiile sunete-lor i nodurile de procesare exist ntr-uncontext independent, cu un timp de sin-cronizare independent, asigurnd pstrareacontrolului asupra mai multor seturi desurse audio sincronizate.

    n clipa n care se instaniaz un aseme-nea context, deja se pot specica surse desunet, destinaii i se pot deni procesoarede sunet conectate n dierite conguraii:var context = new AudioContext();var source = context.createBufferSource();var volume = context.createGainNode();

    source.buffer = buffer;volume.gain.value = 0.6;source.connect(volume);volume.connect(context.destination);source.start(0);

    Arhitectura este de tip plugin: sunetuleste ncrcat ntr-un bufer(vom vedea maitrziu cum), bufer-uleste trimis la o sursde date, apoi la un procesor de sunet, iar nnal la o destinaie. Destinaia implicit acontextului audio este cea standard con-

    gurat n sistemul de operare de obiceiieirea line out a plcii de sunet.Dincolo de sintaxa intuitiv, procesarea

    sunetelor este eectuat direct de driverul

    HTML5: WebAudio API

    n aceti ani aplicaiile online au mpins tot mai departe limitele platormei web.

    Probabil cu toii am ost iritai la un moment dat de aplicaiile web. Cu toii amsperat c pn la urm lumea se va liniti, se va vedea clar c webul nu poate suporta

    aplicaii serioase i Universul i va reveni la normal. Aplicaiile mari sunt pentru desktop,iar aplicaiile web sunt doar visele doctoranzilor entuziati de la Google.

    Dar apoi a aprut parc de nicieri HML5. i HML5 a revoluionat nu doar web-ulaplicaiilor business, ci a deschis larg porile web-ului aplicaiilor multimedia n speciala jocurilor.

    programare

    Radu [email protected]

    Senior Sotware Developer@ Small Footprint

  • 7/28/2019 Today Software Magazine N10/2013

    16/52

    16 nr. 10/Aprilie, 2013 | www.todaysoftmag.ro

    audio. Dac sistemul deine o plac desunet proesional, driver-ulva executainstruciunile olosind hardware-uldedicatal plcii de sunet. Dac este vorba doar deun codec, rularea va regresa spre micro-procesor. Indierent de situaie, arbitrulnal este browser-ul. Modul n care browse-rul compileaz, execut i decide rulareainstruciunilor determin soarta dateloraudio. O implementare bun ns va tindes oloseasc resurse dedicate i s eviteblocajele din uxul de procesare i redarea datelor audio.

    Noduri i grauri orientateIniierea unui lux audio se ace prin

    deinirea unei surse de sunet. Aceastapoate o intrare live a plcii de sunet (unmicroon), un iier audio existent sau

    un sintetizator de sunet (un oscilator).Desigur, n gra pot exista mai multe sursede sunet e generate, e iere, e live.oate sursele de sunet pot redate simul-tan sau la cerere (la apsarea unei taste deexemplu sau la primirea unui mesaj MIDI).

    Mai departe sunetul poate trimis spredierite noduri de procesare. Procesoareleaudio includ localizare n spaiu, eectespecice sunetelor aate la distan, eectedoppler, ltre, reverberaii, ecouri, altele.Orice nod suport mai multe intrri i mai

    multe ieiri, permind legturi n serie in paralel.Exist inclusiv un context audio oine,

    deconectat de o surs hardware de redare asunetelor, ce poate olosit pentru gene-rarea datelor audio independent de timp.Contextul red sunetele ca pachet de date,accesibil ntr-o uncie callback:callback OfineRenderSuccessCallback = void(AudioBuffer renderedData)

    interface OfineAudioContext : AudioContext {void startRendering();attribute OfineRenderSuccessCallback

    onComplete;}

    Surse audio i conexiuni n graGraul de procesare audio primete

    inormaii de la surse audio. Datele care

    trec prin gra sunt sunete reormulate ntr-o orm accesibil browserul-ui pentruprocesare i redare ulterioar. Exist maimulte tipuri de surse audio, n uncie demetoda de achiziie a sunetului: ier exis-tent pe disc, sample-uri generate n cod,oscilatoare i intrri hardware ale plcii desunet. Dup achiziia i ormatarea sunetu-lui, acesta poate trimis mai departe spreprocesoare sau spre destinaia audio.

    AudioBuerBuer-ele audio codiic sunetele

    n sample-uri, cum sunt iierele audio.Caracteristica de baz a unui buer audiose numete sample rate recvena cu caresunetul pstrat n buer a ost analizatpentru a obine inormaii utile procesriiaudio. Aceste valori sunt specice proces-

    rii digitale audio i intr ntr-un domeniude cunotine mai vast, despre care nu vomvorbi aici.

    Pentru a olosi un ier audio, acesta sencarc ntr-un bufercare apoi este conec-tat la destinaia unui context audio:var request = new XMLHttpRequest();request.open(GET, sound.mp3, true);request.responseType = arraybuffer;request.onload = function() {

    audioContext.decodeAudioData(request.response, function(buffer) {

    // buffer conine un obiect de tipAudioBuffer

    });}

    Bufer-ulpermite accesarea sample-uri-lorn mod direct:var buffer = audioContext.createBuffer(1, 5,44100);var bufferData = buffer.getChannelData(0);

    bufferData[i] = 0.3;

    Codul de mai sus creeaz un buer cuun singur canal audio (mono), care coninecinci sample-uri cu sample rate de 44100Hz. Datele din buer sunt accesibile ntr-un vector olosind metoda getChannelData vector n care apoi se poate scrie. n acestmod se pot construi sunete olosind ecuaiisau alte generatoare.

    n i n e , r e d a r e a u n u i b u e raudio se ace olosind nodul de tipAudioBuerSourceNode:var source = audioContext.createBuffer-Source();

    source.buffer = buffer;source.connect(audioContext.destination);source.start(0);

    OscillatorO alt surs audio este oscilatorul.

    Oscilatorul codiic sunetele n unciiperiodice, repetate apoi la innit astelcaracteristica sa de baz este uncia gene-ratoare. Exist patru tipuri de oscilatoarepredenite: sinusoidal, ptrat, triunghiularisoscel i triunghiular drept. Oscilatoarelepot conectate n paralel pentru a com-pune uncii, genernd astel sunetecomplexe.var source = context.createOscillator();

    source.type = 0; // oscilator sinusoidalsource.connect(context.destination);source.start(0);

    De asemenea, se pot ormula oscila-toare particulare prin compunerea maimultor uncii matematice ntr-un singur

    generator:var rst = new Float32Array(100);var second = new Float32Array(100);

    for (var i = 0; i < 100; i++) rst[i] = Math.sin(Math.PI * i / 100);for (var i = 0; I < 100; i++) second[i] =Math.cos(Math.PI * i / 100);

    source.setWaveTable(context.createWaveTable(rst, second));

    LivePentru olosirea surselor audio live

    cum ar un microon, browser-ultrebuies obin un ux audio de la sistemul deoperare. Din acest motiv, aceste surse sunt

    accesibile doar din obiectul Javascript cereprezint browser-ul:navigator.getUserMedia( { audio: true },function(stream) {

    var context = new audioContext();var source = context.createMediaStreamSo

    urce(stream);

    source.connect(context.destination);});

    Fluxul audio nu poate alterat n moddirect cum este cazul bufer-elorsau a osci-latoarelor dar, ca i celelalte surse audio,poate i conectat la oricare din nodurileprocesoare deinite n gra. Acest tip desurs audio depinde direct de hardware

    i de driverele instalate, iar achiziia date-lor audio poate ntrzia sau poate intereracu alte procese care s aecteze claritateasemnalului.

    Browser-ulChrome optimizeaz nmod special achiziia datelor audio livei permite crearea unor adevrate proce-soare de sunet n timp real. Implementarease bazeaz pe rutarea execuiei ct mairapid spre driverul audio. Dac sistemulconine o plac de sunet dedicat, prelu-crarea audio va avea ntrzieri minime. n

    seciunea Resurse exist cteva link-uri cedemonstreaz viteza de execuie n Chromea platormei WebAudio.

    programare

    Figura 1 - Context audio

    HTML5: WebAudio API

  • 7/28/2019 Today Software Magazine N10/2013

    17/52

    17www.todaysoftmag.ro | nr. 10/Aprilie, 2013

    TODAY SOFTWARE MAGAZINE

    Modifcarea volumului audioExist o serie de procesoare ale semnalului audio, ecare cu

    specicele ei, dar n acest articol ne vom reeri doar la modicareavolumului audio. Modicarea volumului se ace conectnd unasau mai multe surse audio la un nod de tip GainNode. Surseleaudio pot cele descrise mai sus sau alte procesoare audio careprimesc date audio:var gainNode = context.createGainNode();

    source.connect(gainNode);gainNode.connect(context.destination);gainNode.gain.value = 0.8;

    Modicarea volumului se poate automatiza i sincroniza cualte evenimente dependente de timp:var envelope = context.createGainNode();var now = context.currentTime;

    source.connect(envelope);envelope.connect(context.destination);envelope.gain.setValueAtTime(0, now);envelope.gain.linearRampToValueAtTime(1.0, now + 2.0);

    n acest mod se pot stabili crossade-uri ntre dou surse desunet de exemplu.

    TendineSituaia actual a platormei WebAudio nu este tocmai eri-

    cit. Practic ea este suportat n mod complet doar de browser-ulChrome i doar pe desktop. Doar ultimele versiuni de Chromede pe platorma Android 4 suport WebAudio, iar browser-ulimplicit din Android nu este inclus aici. WebAudio mai estesuportat de iOS6, de ChromeOS i de ChromeFrame.

    ns platorma este denit i acceptat n standardul HML5,ceea ce nseamn c viitorul nu poate dect strlucit pentrudezvoltatorii de so multimedia. Deja se pot construi sintetiza-toare audio i procesoare n timp real a sunetelor analogice, iar ncurnd Chrome va implementa comunicarea cu dispozitive MIDI,

    permind compoziia audio olosind claviaturi i alte dispozitiveproesionale.i ca o inovaie, standardul WebAudio alturi de WebSockets

    permite pentru prima dat crearea perormanelor audio n moddistribuit, pe web. Utilizatorii se pot conecta la un singur site webi pot crea mpreun, simultan, piese audio de nalt calitate prima demonstraie a acestui tandem de tehnologii ind site-uljamwithchrome.

    Resurse i reerinehttp://dashersw.github.com/pedalboard.js/demo

    http://www.jamwithchrome.com

    http://kevincennis.com/mix

    http://www.tenthcirclesound.com/sympyrean

    http://docs.webplatorm.org/wiki/apis/webaudio

    http://webaudio-io2012.appspot.com

    https://dvcs.w3.org/hg/audio/raw-le/tip/webaudio/specication.html

  • 7/28/2019 Today Software Magazine N10/2013

    18/52

    18 nr. 10/Aprilie, 2013 | www.todaysoftmag.ro

    ntr-un mod similar, irmele desoware care nainte livrau aplicaii sim-ple au nceput s se auto-intituleze calivrnd Aplicaii Enterprise.

    Nu alegem calea controversat de adeni ce este o aplicaie de nivel enterprise,n schimb vom puncta cteva trsturiimportante ale modului de lucru al echi-pelor noastre i al unei aplicaii pe care odezvoltm n Cluj.

    n HP Sotware Cluj-Napoca, con-

    struim aplicaii cu echipe specializate:lsm programatorii i testerii s se dedicecodului, n timp ce documentaia ociala produsului este scris de InormationEngineers. Avem grij ca utilizatorul snu streseze mouse-ul i tastatura pentrua realiza ce dorete i pentru asta colabo-rm cu UI Design-eri. Echipa de ProductManagement este prima linie de contactcu clientul, ei au rolul cel mai impor-tant n crearea viziunii pentru versiunileurmtoare ale produselor. Folosim o liniesuplimentar de meninere a calitii prin

    echipa est Automation, a crei responsa-bilitate este acoperirea produselor cu testeuncionale automate (pe lng cele scrisede programatori).

    Recomand ca programatorii s i scriesinguri testele automate ... Recomand ca untester independent s scrie testele de inte-grare- Kent Beck

    Ca s putem lucra ecient n SCRUMdeparte de clienii inali, avem cte un

    Functional Architect care joac rolul deProduct Owner n ecare echip. Lucrmn sprinturi scurte ca s avem posibili-tatea s reacionm rapid la schimbri.Fiindc SCRUM pune accent pe ideea de

    mbuntire continu, acem cursuri despecializare n SCRUM cu consultaniexterni recunoscui n domeniu.

    Du p l iv rare , rezo lv m es c a-lrile prin echipa de Suport i letraducem n uncionaliti noi, schim-bri de ucionalitate i hot x-uri cnd enevoie. n aceeai idee de a ajuta clienii,echipele de Suport i Current ProductEngineering (CPE) particip activ norum-urile publice ale produselor.

    Interpunem ntre Client i echipa deDezvoltare ambele echipe de Suport iCPE tocmai pentru a diminua riscul caincidente neprevzute s interereze cubuna desurare a SCRUM-ului.

    Avem o echip dedicat denumitProessional Services care ajut clieniicu instalarea i congurarea produselor nmedii complexe (vezi mai jos topologii deinstalare pentru Server Automation) sau ncazul n care se dorete adaptarea diverseloraspecte ale produsului.

    Vrem s tim ce cred clienii despre

    versiunea urmtoare a produsului, aa c ncadrul Design Partner Program prezentmi le cerem prerea despre uncionalitileplanicate. Dm o mn de ajutor echipe-lor de vnzri prin demonstraii detaliateale versiunii urmtoare a produsului ncadrul Early Program Release.

    Avem sute de clieni activi care se reg-sesc ntre companiile mari ale lumii. Iarmuli clieni nseamn mai multe cerine, omai mare varietate a nevoilor i multe ideide uncionaliti noi pentru versiunea

    urmtoare: clienii sunt n denitiv cei carepun produsul la lucru ntr-un mediu real,nu doar n laborator.

    Nevoile de perorman, scalabilitatei varietate sunt proporionale cu mrimea

    Enterprise ApplicationDevelopment

    S

    pre sritul anilor 90 majoritatea CD-urilor ataate crtilor erau CD-uri multi-media: trei poze, dintre care un GIF animat, dac erai norocos, i un ier audiocare transormau orice CD cu 600 de pagini de text ntr-un CD multimedia.

    tehnologii

    Lucian [email protected]

    Server AutomationFunctional Architect

    @ HP Sotware Cluj

  • 7/28/2019 Today Software Magazine N10/2013

    19/52

    19www.todaysoftmag.ro | nr. 10/Aprilie, 2013

    TODAY SOFTWARE MAGAZINE

    i logistica acestor companii. Ca exemplu,produsul Server Automation este olositn centrele de date ale clienilor pentru aace management la zeci de mii de servere.Suportm peste 90 de combinaii de sistemede operare n dieritele lor versiuni instalatepe arhitecturi ca x86, x64, IA64, IBM zSe-ries, Solaris SPARC i PowerPC, aa nctpentru dezvoltare olosim un laborator

    virtualizat cu aproximativ 1500 de mainipentru a suporta aceast varietate.

    Prin Server Automation oerim oaplicaie pentru managementul si auto-matizarea centrelor de date. ncepndchiar cu descoperirea mainilor pe reeai instalarea sistemului de operare, listade uncionaliti continu cu instalareai congurarea aplicaiilor, a patch-urilor,realizarea de audituri, managementul att

    al mainilor zice ct i al celor virtuale iintegrarea cu soluii de virtualizare de laOracle, VMware si Microso.

    Instalm Server Automation n diverse

    topologii pentru a ace managementulcentrelor de date distribuite n mai multelocaii. O astel de instalare este ilustrat ngura de mai jos:

    opologie Multimaster: Noduri SA(SA Core-s) care asigur replicarea com-plet a datelor

    Instalrile Satelit sunt potrivite pen-tru centre de date mai mici unde nu estejusticat o instalare complet a unui SACore. De asemenea, traicul dintre core-urile SA i Satelit poate limitat pentru anu interera cu traicul principal de datede la acea locaie. n imaginea urmtoarese observ un detaliu de arhitectur olositpentru a putea conecta centre de date aate

    la distane mari, n reele locale dierite:gateway-uri sunt instalate la ambele capeteale ecrui canal de comunicare:

    Utilizatorii inali ai aplicatiei sunt n

    principal administratori de sistem: i ascul-tm i tim c le place lumea Unix, aa csimulm o consola de acest tip (SA Global

    Shell) prin care acemv i z i b i l nt re a g ainrastructura suborma unui sistemvirtual de iiere. SAGlobal Filesystemuniic pentru uti-lizator modelul de

    date din SA (servere,pachete, clienti, cen-tre de date, politici deaudit) cu coninutulserverelor (sistemulde iere etc.).

    U r m t o a r e l ecomenzi aieaz listade servere vizibile uti-

    lizatorului curent i sistemul de operare alunuia dintre ele:$ ls /opsw/Server/@abc.hp.com m33.hp.com gist.hp.com$ cat /opsw/Server/@/abc.hp.com/attr/osVersion

    Microsoft Windows 2000 Advanced Server ServicePack 4 Build 2195

    Putem expune chiar i coninutulregitrilor unui server Windows n aceastconsola Unix:$ ls /opsw/Server/@/abc.hp.com/registry/Admin-istratorHKEY_CLASSES_ROOT HKEY_CURRENT_CONFIG HKEY_CURRENT_USER HKEY_LOCAL_MACHINE HKEY_USERS

    Interoperabilitatea aplicaiilor areo importan extrem n lumea enter-prise, aa c expunem uncionalitatea SAprintr-un API pe care-l acem accesibilurmtoarelor tipuri de clieni: Java RMI,

    Python, SOAP, C# i script-urilor careruleaz n Global Shell.Folosim javadoc-ul nu doar ca metod

    standard de documentare a API-ului, ci ica o modalitate de a explora i apela API-uldin browser, wister iind aplicaia carepermite asta.

    Respectm utilizatorii n orice rol ar ei, nali sau ai API-ului, aa c un grupdedicat de programatori experimentai aumisiunea s asigure compatibiltatea binari uncionala a API-ului cu versiunile saleanterioare.

    Ne uitm la multe aspecte cnd testmperormana produsului, iat cteva grace

    Topologie Multimaster: Noduri SA (SA Core-s)

    care asigura replicarea completa a datelor

  • 7/28/2019 Today Software Magazine N10/2013

    20/52

    20 nr. 10/Aprilie, 2013 | www.todaysoftmag.ro

    recente pentru Server Automation produse

    de o echipa dedicata testarii aspectelornon-uncionale:

    Server Automation : t e s tareaperormanei.

    (Not: Imaginile au ost editate pentrua terge inormaiile condeniale la aceastdat)

    Server Automation este doar una

    dintre cele patru aplicaii enterprise pecare le dezvolt n HP Sotware Cluj oechip de 150 de angajai. Aici sprijiniminovaia printr-un program global la nivelHP (InnoStream) i la nivel local n HPSoware Cluj prin Vibrant Day o zi pelun n care eti liber s lucrezi la orice

    proiect, personal sau al companiei, singursau n cadrul unei echipe. Ideile tale se potmaterializa n unctionaliti noi pentruproduse, iar dac sunt ntr-adevr deose-bite, te susinem s le prezini n orumultehnic anual al HP, echCon.

    Enterprise Application Development

    tehnologii

    Server Automation: testarea perormanei.

    (Not: Imaginile au ost editate pentru a terge inormaiile confdeniale la aceast dat)

  • 7/28/2019 Today Software Magazine N10/2013

    21/52

    21www.todaysoftmag.ro | nr. 10/aprilie, 2013

    TODAY SOFTWARE MAGAZINE programare

    Urmtoarele exemple ilustreaz ntr-omanier simpl cteva situaii n care uti-lizarea a AOP ntr-o aplicaie soware arputea ace dierena:

    Am preluat o aplicaie Java existentde la un alt urnizor iar aplicaia nu areimplementat nici un el de mecanism delogging. Acest exemplu va abordat ntr-o orm mai simplicat.

    n aplicaia mea Java doresc sa vali-dez parametrii tuturor metodelor dinlayer-ul de service a aplicaiei. Intenionez s rempachetez anu-

    mite excepii n layer-ul de servicenainte ca acestea s e transerate ctreclient. De obicei o excepie specic Javaeste convertit ntr-o excepie specicaplicaiei.

    Desigur n practic se gsesc o sume-denie de altel de situaii de genul celorde sus, dar cele de sus au ost alese tocmai

    pentru c au toate cel puin dou lucrurin comun. n primul rnd toate acestesoluii cad n aceai categorie de crosscutting concerns. Aceast sintagm acopertoate uncionalitile care sunt comuneunui set de clase, dar care reprezint ouncionalite secundar a acestor clase. Pelng exemplele prezentate anterior, adicloggingi error handling, se pot admite ialte uncionaliti cum ar i autorizareasau aspecte legate de securitatea aplicaiilor.Rolul acestor uncionaliti nu este mini-

    malizat, dar sunt considerate uncionalitisecundare, necnd parte din logica debusiness. n al doilea rnd, presupunnd cavem de-a ace cu o aplicaie tipic enter-prise, este clar c implementarea oricreia

    din ideile prezentate mai sus, implic deregul intoducerea de cod, n mai multelocuri din aplicaie, codul iind aproapeindentic n toate aceste locuri. Cu altecuvinte avem un potenial mare de codduplicat. O soluie elegant ar i creareaa unui singur bloc de cod pentru iecareproblem prezentat i olosirea acestuibloc de cod oriunde este necesar n cadrul

    aplicaiei. Pentru aceast categorie de pro-bleme, AOP poate i soluia salvatoare.nainte de a prezenta un exemplu concretde AOP voi trece n revist noiunile carestau la baza acestei paradigme.

    A d v i c e . U n a d v i c e e s t euncionalitatea noastr de tip cross-cutting concernpe care dorim s oaplicm unor secvene de cod. Join Points. Un Join Point este un

    punct bine identicat n codul nostru, ncadrul cruia poate invocat un advice.Practic, n acest punct este executat

    codul care denete un advice. Pointcut. Un Pointcut este un mod

    de a cuantiica i de a identiica JoinPointurile. Aspect. Un Aspect este combinaia

    ntre un Advice i un Pointcut.

    Aceasta paradigm va avea diverseimplementri n diverse limbaje de pro-gramare, n lumea Java existnd mai multeramework-uri care oer aciliti AOP.Dintre limbajele i ramework-urile care

    oer aciliti AOP, ar de amintit urm-toarele: .NE FRAMEWORK, Java, Cobol,Javascript. Dac vorbim n particular des-pre Java, cele mai populare ramework-uricare aduc uncionaliti AOP sunt AspectJ

    Aspect Oriented ProgrammingO introducere i cteva idei

    P

    aradigme precum MDD (model driven development) sau DD (test driven deve-lopment) joac un rol important n dezvoltarea sotware n ziua de astzi, oparadigm nou, numit AOP (aspect oriented programming) a nceput s devin

    din ce n ce mai popular n ultima perioad. AOP are rolul de a modulariza anumiteaspecte centrale ale unei aplicaii, numit n limbajul de specialitate i cross cutting concern.

    Knall [email protected]

    Java Team Lead@ .msg systems

  • 7/28/2019 Today Software Magazine N10/2013

    22/52

    22 nr. 10/Aprilie, 2013 | www.todaysoftmag.ro

    i Spring AOP. De reinut este aptul cimplementrile AOP pot avea un modelde baz uor dierit sau mai evoluat dectcel reprezentat de cele patru elementeprezentate anterior (advice, join points,pointcut i aspect). oate implementriledier una de alta, unele oerind soluiicomplete AOP, precum AspectJ, iar alteledoar uncionaliti de baz. Pentru aexemplica acest lucru se vor prezenta celepatru tipuri de advice-uri pe care le oerSpring AOP, descrierea lor succint indurmtoarea:

    Beore advice Un advice este olo-sit nainte de execuia unei metode. Aer returning advice Un advice

    este olosit dup ce o metod returneazun rezultat. Aer throwing advice Un advice

    este olosit dup ce o metod arunc oexcepie. Around advice Aceast opiune

    mbin toate cele 3 variante descrise maisus.

    Dup cum se poate bine observaSpring AOP oer doar posibilitatea de aaduga un advice unei metode. Alte ra-mework-uri, AspectJ ind probabil cel maipopular, oer i posibilitatea de a adugaun aspect membrilor de clas. Mai mult

    dect att, AspectJ oer o gam larg deuncionaliti, de exemplu un Aroundadvice pentru metode, dar doar dac acesteaau un anumit tip de parametri. Continumcu prezentarea unui exemplu concret deolosire a AOP, prin implementarea AOPaparinnd ramework-ului Spring. Amales Spring, innd cont de popularitatea isimplitatea acestui ramework, ceea ce per-mite o nelegere mai acil a exempluluidat. Exemplul se olosete de toate concep-tele prezentate anterior (advice, join points,pointcut i aspect) i asigur o acilitate

    de logging pentru clasele de DAO dintr-oaplicaie Java enterprise.

    Presupunem n continuare c avemurmtorul obiect de DAO (data accesobject), BookDAO, care are rolul de a citicri din baza de date i de a insera crin baza de date. Metoda de citire arunc oexcepie specic aplicaiei n momentul ncare nu a ost gsit cartea cutat.

    public class BookDAO{public BookEntity ndBookById(Long name)throws ItemNotFoundException {

    //Finding Book code}

    public BookEntity saveBook(){//Saving Book code}

    }

    Entitatea Book, n orma ei simplicatarat n elul urmtor:

    public class Book{private Long id;private String name;public void setName(String name) {this.name = name;

    }public void setId(Long id) {this.id = id;}public Long setId(){return id;}

    public String geName(){return name;}}

    Dac clasa Book are o orm simpl, nschimb implementarea advice-ului nostrupentru logare este puin mai complicat,implementat n clasa MyAroundMethod.Pentru a oeri un exemplu ct se poate

    de concret am decis s implemen-tez un advice de tipul Around Advice.Pentru a realiza acest lucru clasa noastrMyAroundMethod va trebui s implemen-teze interaa MethodInterceptor.

    public class MyAroundMethod implements Method-Interceptor {@Overridepublic Object invoke(MethodInvocation methodInvocation) throws Throwable {

    System.out.println(Numele Metodei in care ne aam : + methodInvocation.getMethod().getName());

    System.out.println(Parametrii metodei in care ne aam :

    + Arrays.toString(methodInvocation.getArguments()));

    System.out.println(MyAroundMethod: Interceptie inaintea+ executiei metodei);

    try {Object result = methodInvocation.proceed();System.out.println(MyAroundMethod : + Interceptie dupa executarea metodei);

    return result;

    } catch (ItemNotFoundException e) {

    System.out.println(MyAroundMethod :+Interceptie in urma aruncarii unei +exceptii);

    throw e;}}}

    MainClass, precum sugereaz numeledeja, este clasa care ruleaz aplicaia noas-tr mic. Scenariul pe care l urmrim esteurmtorul: cutm o carte din baza de date,i modicm numele i o salvm din noun baza de date. Apoi ncercm s ncrcmdin baza de date cartea cu Id-ul 2, care desi-gur pentru a un exemplu reuit nu existn baza de date.

    public class MainClass {

    public static void main(String[] args) {ApplicationContext appContext =new ClassPathXmlApplicationContext(

    new String[] { Spring-DAO.xml });BookDAO bookDAO = (BookDAO) appContext

    .getBean(BookDAOProxy);try {System.out.printn(*******************);

    BookEntity bookEntity = bookDAO.ndBookById(new Long(1));

    bookEntity.setName(Nume nou de carte!);System.out.println(********************);

    bookDAO.saveBook(bookEntity);System.out.println(*********************);

    BookEntity bookEntity = bookDAO.ndBookById(new Long(2));

    } catch (Exception e) {//prinde o exceptie

    }}}

    Coniguraia Spring, prezent prinierul Spring-DAO.xml este ierul caredenete pentru exemplul nostru toate ele-mentele AOP prezentate anterior. Cititorulcare nu este amiliarizat cu elemente-tele specice Spring poate s neleag cuuurin punctele eseniale din acest ierde coniguraie urmrind comentariileelementelor.

    // Aici este denit beanul Book

    // Aici este denit Advice-ul nostru ca si// bean, si este folosit la denirea aspectului

    // Aici denim un proxy care indic pentru// beanul nostru BookDAO aspectul sau aspectele// folosite. Prin setarea proprietatii target// indicm beanul vizat de aspect,care este// ulterior indicat prin setarea proprietatii// interceptorNames.

    myOwnAdvisor

    // Aici este denit Ascpectul, care este format// din pointcut si advice// Aici este implementat pointcutul nostru.*URL.*

    // Aici denim advice-ul nostru in cadrul// aspectului

    Ceea ce se observ este lipsa din ierulde congurare a unei liste explicite de joinpoint-uri. Aceste puncte nu se denesc deregul n ierele de congurare, ele indun rezultat al deinirii a unui sau a maimultor pointcut(uri) . n cazul de a amdenit unpointcutolosind regular expre-

    ssion Java. Acestepointcut-uri se pot denin mai multe eluri, depinznd evident desoluia AOP aleas. Am optat pentru vari-anta cu expresia regular pentru a ilustract de puternic este totui aceast acilitate

    Aspect Oriented Programming

    programare

  • 7/28/2019 Today Software Magazine N10/2013

    23/52

    23www.todaysoftmag.ro | nr. 10/Aprilie, 2013

    TODAY SOFTWARE MAGAZINE

    de a indenticajoin point-urile , cunoscut ind puterea i exi-bilitatea regular expressions Java. n cazul exemplului nostrujoinpoint-urile sunt cele dou metode denite n BooksDAO.

    Ceea ce se poate vedea n urma execuiei codului n consoleste urmtoarea secven de mesaje.

    *************************Numele metodei in care ne aam : ndBookById

    Parametrii metodei in care ne aam: [Long(1)]MyAroundMethod : Interceptie nainte executiei metodeiMyAroundMethod : Interceptie dupa executarea metodei*************************Numele metodei in care ne aam: saveBookMethod arguments : [Book]MyAroundMethod : Interceptie nainte executiei metodeiMyAroundMethod : Interceptie dupa executarea metodei*************************Numele metodei in care ne aam: ndBookByIdParametrii metodei in care ne aam: [Long(2)]MyAroundMethod : Interceptie nainte executiei metodeiMyAroundMethod : Interceptie in urma aruncarii unei exceptii

    Aadar olosind AOP am reuit s introducem un mecanismde logare n toate clasele noastre DAO, r a scrie mult cod, cares e mprtiat prin toat aplicaia. Analog ecare cross-cuttingconcern din aplicaia voastr poate implementat ntr-o maniertransparent, n propria lui clas (separate de logica de business)

    i olosit n toate locurile n care este necesar.n ultima parte, dorim s v expunem anumite idei care s-au

    cristalizat de-a lungul timpului n jurul conceptului de AOP, pre-cum i puncte de vedere pe care echipa noastr le-am acumulatdin olosirea AOP.

    Cel mai important lucru de reinut este aptul c AOP nu esteo soluie universal pentru multe din problemele care apar pe par-cursul dezvoltrii soware. Este o abordare relativ nou, care nunele situaii ne poate ajuta, dar n altele nu.

    Bineneles, sunt i dezavantaje, iar acestea sunt legate n prin-cipal de dou aspecte importante. Primul este legat de perormann momentul n care ntr-o aplicaie mare sunt olosite multe

    aspecte, care pot posibil interaciona. De aceea, este de preerat cadoar anumite uncionaliti ale unei aplicaii, i aici ne reerimla cele cu adevrat importante, s e modelate i modularizate cuAOP.

    Un al doilea dezavantaj l constituie organizarea si executa-rea codului, care prin introducerea AOP ngreuneaz procesul dedebugging. Prezentm un scenariu, care pare a des ntlnit cndse olosete o astel de abordare. Imaginai-v o aplicaie mediespre mare, de tip enterprise, n care o serie de aspecte acopermare parte din uncionalitatea secundar, iar membrii echipeide dezvoltare care nu sunt obinuiti cu AOP ac debuggingpe ouncionalitate relativ complex. n astel de cazuri se ntmplca membrul(i) echipei de dezvoltare s nu i poat explica u-

    xul codului n totalitate ceea ce poate duce la apariia unor eectecel puin bizare la execuia codului. Misterul poate greu eluci-dat dac aspectele nu sunt denite prin intermediul anotrilor ciprin iere de congurare bine ascunse i neamiliare. Chiar iatunci cnd se trece peste aceste inconveniene iniiale i se olo-sesc tool-uri specializate, debugging-ul poate , prudent ormulat,neplcut, iar uxul codului n continuare greu de urmrit. n acestpunct trebuie amintit c exist dierite orme sub care elementede AOP pot denite. De exemplu un advice poate denit can exemplul nostru, stil old schoolprin intermediul unui ier decongurare sau ntr-un mod mai actual, anume prin adnotri. Dardin nou e de amintit c aceste elemente dier de la implementare

    la implementare.

    ConcluzieAm expus olosirea AOP pe baza unui scurt exemplu bazat pe

    Spring AOP. Ce ar trebui s reinem? AOP este o nou paradigm,cu multiple implementri, care, dac este olosit cu cap poateaduce avantaje majore dezvoltrii soware.

  • 7/28/2019 Today Software Magazine N10/2013

    24/52

    24 nr. 10/Aprilie, 2013 | www.todaysoftmag.ro

    Atingerea obiectivelor propuseDe cte ori nu ai ost nevoii s

    organizai diverse ntlniri, avnd obiec-tive dierite? i cumva r s v dai seama

    ai ajuns n urmtoarea situaie: ne-amntlnit, am vorbit dou ore pe subiectulstabilit i nu am hotrt nimic? Indierentde obiectivul dorit a realizat (identicareaoportunitilor sau a persoanelor interesate,documentarea cerinelor, analiza procese-lor) este recomandat ca nainte de orice, savei o imagine de ansamblu asupra nevoiide business i a obiectivelor proiectului.Mai exact, unde anume v situai, sau nce aza a proiectului suntei. E bine s tiinainte de a ncepe edina ce anume vreis obinei n timpul propus. E bine s v

    concentrai pe ceea ce putei realiza, nuncie de prioriti, iar lucrurile nerezol-vate care necesit o analiz mai amnunits le stabilii ntr-o viitoare sesiune.

    Stabilirea unei relaii de colaborare cupersoanele interesate

    Una dintre marile provocri cu care seconrunt un Business Analyst este aceea dea nltura barierele de comunicare (e dincadrul echipei, e din cadrul organizaiei).i pentru a reui, Business Analyst-ul tre-

    buie s depun un eort suplimentar ca sae rspunsuri la toate problemele.Ce se poate ace n aceast situaie?

    Identiicai acele persoane interesatecare deinesc nevoia de business, care

    dein inormaii importante sau care auun cuvnt de spus cu privire la soluiaimplementat. Simplul motiv c acesteanu vor s mprteasc inormaii, ar

    trebui s ridice un semn de ntrebare. ieste de datoria Business Analyst-ului sneleag motivele care stau la baza acestuicomportament:

    Sunt ele rezistente la schimbare?Sunt obinuite cu modul lor de lucru ide aceea nu accept sau nu sunt conor-tabile cu noul sistem? Avem de-a ace cu probleme legate

    de orgolii sau chestiuni politice? Sau pur i simplu nu neleg de ce

    procesul schimbrii se ntmpl cum sentmpl.

    nelegnd motivele care stau n spa-

    tele acestui comportament, putei sacionai n consecin! Ceea ce trebuies acei i uncioneaz n cele mai multecazuri, este s ctigai ncrederea clien-tului. Acest lucru de regul se ntmpldup cteva sesiuni de lucru mpreun.O dat iniiat contactul cu clientul, existi comunicare mai bun. n cazul n carenu se poate comunica direct (se recurge lacomunicare la distan), atunci este nevoie

    de ceva abiliti i caliti suplimentaredin partea unui Business Analyst precum:atitudine pozitiv, comunicare eicient,orientare spre rezolvarea problemelor,spirit de echip, ncredere, lexibilitate,

    Responsabilitatea unui Business Analyst const n nelegerea nevoii de business,analiza i modelarea proceselor de business, asociate dezvoltrii proiectelelor

    soware. De regul aceste proiecte sunt complexe, iar Business Analyst-ul tre-buie s obin inormaii din toate sursele disponibile. i nu este o sarcin uoar. ntregulproces de dezvoltare al proiectelor, pune Business Analyst-ul n situaia de a se conruntacu o serie de provocri. Care este cea mai mare provocare? Probabil ar dicil de stabilit,dar am putea arma c urmtoarele provocri au o greutate semnicativ i un impactdirect, pozitiv sau negativ, n activitile zilnice ale unui Business Analyst.

    management

    Provocrile unuiBusiness Analyst

    Daniela [email protected]

    Business Analyst@ Endava Iai

  • 7/28/2019 Today Software Magazine N10/2013

    25/52

    25www.todaysoftmag.ro | nr. 10/Aprilie, 2013

    TODAY SOFTWARE MAGAZINE

    adaptabilitate. Pentru a acilita o conexi-une cu clientul, putei ncerca replici degenul: ce ai mai acut, de cnd nu am maivorbit? ; cum e vremea?. Apropia i-vclientul! Ctigai ncrederea clientului istabilii relaii de lung durat. Implicai-lactiv n dezvoltarea proiectului, ascultai-l!

    Facilitarea edinelorAvnd responsabilitate de lider, cte-

    odat Business Analyst-ul este nevoit sndeplineasc mai multe roluri. De exem-plu s aciliteze edina i n acelai timps noteze ideile eseniale. Se ace o greealcnd se asociaz rolul de scribe cu rolul deacilitator.

    Cteva trucuri care v ajut s iiecieni:

    Folosii o agenda listat cu spaiilibere ntre subiecte/ntrebri, pen-tru a putea completa cu rspunsurilecorespunztoare; Folosii template-uri; Folosii acronime (NC noi cerinte); Imediat dup edin notai toate

    ideile importante; n timpul edinei lsai-v cteva

    minute pentru a verica dac a ost aco-perit tot ceea ce v-ai propus; Stabilii un timp necesar i ncercai

    s v ncadrai n acest timp - ce e multstric; Concluzionai cu sublinierea ideilor

    principale asupra crora toat lumeas-a pus de acord - acest apt reect cobiectivul edinei a ost atins. De multeori ceea ce vi s-a prut c ai neles poates e total dierit de ceea ce au neles cei-lalti participani la edin.

    Investiie n cerine de calitateExist o abul veche care vorbete des-

    pre ase orbi care ntlnesc pentru primadat un eleant. Dei acetia nu puteauvedea eleantul, doreau oarte mult s tiecum arat unul. Fiecare din cei ase au pusmna pe eleant, pe o dierit parte a elean-tului. Primul cuprinde cu minile un picioral eleantului i spune: A, eleantul e exactca un copac. Nu-i adevarat, spune celde-al doilea care inea eleantul de coad.Eleantul e ca o ranghie. Cel de-al treileaorb a ost lsat mai de o parte, si replic:Eleantul e ca un perete. Al patrulea, cumna pe tromp, se bag i el n seam izice.Nu avei dreptate. Eleantul e ca unarpe. Al cincilea atinge colii eleantuluii spune c este o sulia pe cnd ultimul,

    hotrt, spune c toi ceilali se neal ic eleantul e de apt un ventilator (acestainnd eleantul de ureche)1.

    Morala abulei i legtura cu temanoastr de astzi? oi cei ase au dreptate.Eleantul are toate cele ase caracteristicidescrise de ei , dar nici una nu descrie nansamblu ceea ce reprezint un eleant,pentru c iecare a descris eleantul dinpropriul lui punct de vedere.

    Acelai raionament se poate aplica i ncazul documentrii cerinelor. E o practic

    bun de urmat s dezvoltai/s analizaicerinele din unghiuri dierite. FolosiiDE CE ntrebri (DE CE/DE CE acum/DE CE nu). Evitai pot/a putea/ar trebui,sau alte ntrebri care pot conduce la unrspuns. Care este scopul? S comparaicerinele provenite de la dierite persoaneinteresate i s revelati erori/dupliciti sau

    1 sursa: www.modernanalyst.com

    interpretri dierite. Dac exist , atuncireprezint probleme ce trebuie rezolvateimediat.

    Alinierea dieritelor viziuniS-a expus anterior cum aceeai

    uncionalitate a sistemului poate aveanelesuri dierite, reprezentnd viziunidierite, din perspective dierite. Acesteaprovin de regul din domeniul de activi-tate al persoanelor cheie (ntr-un el vedeprodusul angajatul din departamentul demarketing i n alt el cel din I). Aliniereaviziunilor ntr-o singur direcie reprezinto adevrat provocare, pentru c de acestlucru depinde dac proiectul va avea successau nu.

    Ce se poate ace? Business Analyst-ul

    trebuie s realizeze o viziune de ansamblu antregului business, avnd mereu n vederecare este nevoia real de business ce trebuiesatiscut; s ia n considerare toate per-spectivele, s cunoasc organizaia (mediul,produsul, piaa, competitorii), i persoaneleinteresate (care sunt, nivelul de putere/interes), atitudinea lor vazavi de soluiaimplementat ( vor susine soluia sau vor total mpotriv i vor crea blocaje?).

    Business Analyst-ul trebuie s deadovad c este un bun mediator i un bun

    negociator, astel nct s aciliteze drumulspre o nelegere/compromis.Lipsa de angajament a persoanelor

    cheieParticiparea persoanelor interesate

    este esenial, cci acestea dein inormaiirelevante asupra business-ului, cu impactasupra dezvoltrii proiectului, dar i pentru

  • 7/28/2019 Today Software Magazine N10/2013

    26/52

    26 nr. 10/Aprilie, 2013 | www.todaysoftmag.ro

    c trebuie s aprobe cerinele. Dac nuavem acordul lor iar colaborarea este unadiicil, atunci proiectul poate i ntr-unimpas.

    Iat cteva situaii, mai des ntlnite, nrelaia Business Analyst Stakeholders:

    1. Persoane cheie neimplicate suntcei care n trecut au ost implicai n pla-nicarea i congurarea unui proiect carenu s-a nalizat tocmai n cele mai bunecondiii, i care acum prezint temeri nasumarea responsabilitilor asupra eta-pei de documentare a cerinelor (dacnu s-a luat ceva n considerare?, dacam omis ceva?). Acest lucru pune iBusiness Analyst-ul ntr-o situaie di-cil, pentru c nici el la rndul lui nu

    vrea ca ceva important s e scpat dinvedere. Ce se poate ace? Dac este timp,olosii tehnici de descoperire a cerinelor(brainstorming, workshop-uri) i maipuin interviuri, observri. Aceste teh-nici antreneaz idei noi i creativitatean grup. Asigurai persoanele interesatec dac ceva a aprut pe parcurs, sau nua ost luat n considerare pn n acelmoment, respectivele cerine vor primiprioritate maxim i vor i implemen-tate n urmtoarele versiuni/build-uri ale

    sistemului.2. Persoane cheie care ajung greu laun compromis sunt cei cu personlitiputernice, cu viziuni dierite asupra uneicaracteristici ale sistemului. Ce se poateace? Subliniai aptul c dac nu seajunge la un acord comun, acest lucrunseamn un risc pentru c se pierdetimp, i pot s apar presiuni i rus-trri n cadrul echipei. Asigurai-i c ailuat n calcul toate prerile/punctele devedere i compromisul n sine nu le vaaecta perormana sau sigurana locului

    de munc.3. Persoane cheie dezinteresate

    sunt cei care consider c proiectulnu este important. Ce se poate ace?

    ncercai diplomaia. De exemplu, dacv adresai direct persoanei, (teleon/e-mail): Andrei, nici un alt angajatdin aceast companie nu cunoate sis-temul la el de bine ca tine. i din acestmotiv, chiar avem nevoie de tine. Aiavea o contribuie semniicativ dacai participa activ la edine, i ne-aimprti din cunotinele tale. Aa neputem asigura c totul este la locul lui,i uncioneaz corespunztor. Daclipsa participrii acestui stakeholderareo inuen major asupra viitorului pro-iectului, atunci e bine s implicai i opersoana cu putere de inuen/deciziedin cadrul organizaiei sau managerul deproiect.

    Un Business Analyst tehnic sau non-tehnic

    rebuie un Business Analyst s deincunotine despre ultimele tehnologii, des-pre detaliile tehnice ale sistemului? i dacda, care ar gradul de nelegere al acestorlucruri? Ct de tehnic ar trebui s ie unBusiness Analyst? Prerile sunt mprite.Dar ceea ce este sigur i toat lumea este deacord cu, este c un Business Analyst ar tre-bui s dein suciente cunotine tehnicesau competene tehnice ct s-i aciliteze

    comunicarea cu echipa de dezvoltare. nceea ce privete relaia cu clientul, BusinessAnalyst-ul trebuie s neleag n ce el teh-nologia poate mbunti business-ul, astelnct s poat contribui la gsirea celei maipotrivite soluii. La el de important estec ehnologia nu trebuie s dicteze nici-odat direcia n care merge business-ul!.Din acest motiv rspunsul la ntrebareaEste posibil s i o persoan non-tehnici totusi s excelezi ca i Business Analysteste cu siguran DA. Desigur, n acestcaz trebuie s compensezi cu alte abiliti

    precum: gndire critic i analitic, comu-nicare ecient, abiliti de leadership.

    Nu uitai

    Literatura de specialitate ct i ceice i desoar activitatea ca BusinessAnalyst recomand s investigm ntot-deauna cauzele problemelor, s nu tratmdoar simptomele. S alegem agilitatea i nupereciunea, mai exact organizaiile s ereceptive la presiunile externe astel nct srecunoasc din timp importana soluiiloroportune i relevante.

    Dar mai presus de toate, se recomands m mereu exibili i adaptabili oricreisituaii sau audiene. Putem avea concepte,practici bune de urmat, experien, ns,pentru c este imprevizibil i pentru cpoate avea un impact att pozitiv ct inegativ n toate nivelurile de uncionare,actorul uman rmne, din punctul meu devedere, cea mai mare provocare.

    Provocarile unui Business Analyst

    management

  • 7/28/2019 Today Software Magazine N10/2013

    27/52

    27www.todaysoftmag.ro | nr. 10/aprilie, 2013

    TODAY SOFTWARE MAGAZINE HR

    n istoria omenirii, educaia i nvareaau avut o valoare adaptativ incontestabil.nc din antichitate, procesul de nvarebenecia de o atenie deosebit, modelele iprincipiile utilizate ind extrem de diversei dinamice. Acestea stimulau imaginaia,creativitatea i implicarea nvcelului,avnd un caracter ludic, imagistic, prac-tic, respectnd modul natural de nvare

    a creierului. Chiar dac nu este primullucru la care ne gndim, decderea meto-delor holistice n cadrul educaiei a nceputodat cu invenia lui Johannes Gutenberga mainii de tiprit din 1440. Acest lucru aavut diverse repercusiuni asupra educaiei,printre care:

    Procesarea predominant a cuvinte-lor, mai puin a imaginilor; Accentuarea nvrii individuale, n

    deavoarea celei de tip colaborativ; Operarea cu concepte abstracte,

    latura practic i concret ind redus la

    minim; Separarea minii i a corpului n pro-

    cesul de nvare.

    Aceste eecte se pstreaz pn n zilelenoastre i, din pcate, sunt baza sistemu-lui romnesc de nvmnt tradiional.Din acest motiv programele de trainingau beneciat de un succes oarte mare, iarprincipiile i contextele de nvare necon-venionale au avut mare aderen n rndulcursanilor.

    Predare vs. nvare autenticPredarea nu este nvare. Acest lucru

    banal, care poate i trecut cu vederea ineglijat, este unul de baz pentru orice

    activitate de instruire i dezvoltare reu-it. Deseori trainerii se orienteaz ctreconinut i aloc aproximativ 80% dintimpul total pregtirii materialelor de curs(suporturi de curs, handout-uri, slide-uri).nvarea autentic are loc n momentul ncare cursantul este implicat activ, dinamici total, mai puin atunci cnd doar audiazo prezentare. n ISDC, motto-ul procesului

    de training este ocalizarea ctre nvare,nu ctre instruire. De apt, cursanii suntcei care trebuie s e pe scen n luminareectoarelor, s e proprii stpni ai pro-cesului de nvare. Rolul acilitatoruluieste s iniieze procesul de nvare i ulte-rior s se retrag (John Warren). De multeori cursanii sunt tratai ca i consumatoride inormaie, de cunotine, de abiliti,bombardai cu modele i teorii pe care leuit odat ieii din sala de curs. Sau nu leolosesc niciodat. Revoluia educaionalpropune tratarea cursanilor n calitate de

    creatori i stpni ai propriului proces denvare, ai propriului coninut de inorma-ie, de cunotine i abiliti noi. Procentuloptim pentru ponderea n cadrul uneiexperiene de nvare a activitii de pre-dare versus exersrii este de 30% - 70%.

    Oamenii i amintesc, n medie:20%dinceeacecitesc

    30%dinceeaceaud

    40%dinceeacevd

    50%dinceeacespun

    60%dinceeacefac90%dinceeacevd,aud,spunifac

    Sursa: Rose, C., & Nicholl, M.J.,Accelerated Learning or the 21st Century.

    D

    ei multe aspecte ale evoluiei omului sunt controversate, un lucru este unanimacceptat de ctre antropologi: Ne micm (Brain Rules, John Medina; 2008). Peparcursul a sute de mii de ani, de la Homo Habilis la Homo Erectus i, ulterior,

    Homo Sapiens, creierul s-a dezvoltat parcurgnd distane ntre 10 i 20 km pe zi pentrubrbai i cam jumtate n cazul emeilor, arma antropologul Richard Whrangham.

    Comunitile de practic, nvare prinaciune i explorare

    Implicarea min