Documente Academic
Documente Profesional
Documente Cultură
com
TSM
T O D A Y
S O F T WA R E
MAG A Z I NE
6
Cluj IT Days 2014, www.itdays.ro
Ovidiu Man
8
Invitaie la a III-a ediie a
conferinei Gemini
Solutions Foundry
Ovidiu Man
9
Cu Smilestone la
Imagine Cup 2014
Dan Suciu
12
Interviu cu Chris Heilmann
de la Mozilla
Ovidiu Man
14
Visul mplinit al unei coli de
var - Fortech hiSchool
Training Program
Sorina Mone
16
How to Web 2014:
un nou nceput
25
Livrarea continu
Dan Danciu
29
Detectarea
fraudelor
cu Titan
Florin Mguran
31
Pragmatism n
programare
Mihnea Lazr
34
Clean code
Funcii
Radu Vunvulea
36
Integrarea client server
cu ajutorul
RestKit
Mihai Fischer
38
Cum poi testa
conferine de testare
Irina Scarlat
Alexandra Casapu
17
Invitaie la TYPO3
East Europe 2014
41
Tranziia de la
QA la BA
Daniel Homorodean
19
JavaFX n Platforma
Java Standard 8
Silviu Dumitrescu i Diana Blan
22
Avantajele folosirii SVG
(Scalable Vector Graphics)
Peter Krejcik
Monica Petraru
42
Time Dude, un joc
3D cross mobile platform
Liviu Boar
44
Cum batei palma
pe un contract
Claudia Jelea
46
Gogu n oc... cultural
Simona Bonghez, Ph.D.
editorial
Ovidiu Man
ovidiu.matan@todaysoftmag.com
Editor-in-chief
Today Software Magazine
Ovidiu Man
Lista autorilor
Dan Suciu
dan.suciu@3pillarglobal.com
Director of Technical Training
@ 3Pillar Global
Daniel Homorodean
daniel.homorodean@arxia.com
CEO
@ Arxia
Florin Mguran
Irina Scarlat
PR Manager
@ How to Web & TechHub Bucharest
Dan Danciu
Mihnea Lazr
Software Architect
@ ISDC
Java Developer
@ msg systems
Peter Krejcik
Sorina Mone
florin.maguran@betfair.com
dan.danciu@isdc.eu
irina.scarlat@howtoweb.co
mihnea.lazar@msg-systems.com
peter.krejcik@yardi.com
Web Designer
@ Yardi Romnia
simona.bonghez@confucius.ro
Speaker, trainer i consultant n
managementul proiectelor,
Owner al Colors in Projects
Mihai Fischer
mihai.fischer@gmail.com
iOS developer
@ Dens.io
Claudia Jelea
Silviu Dumitrescu
Consultant Java
@ msg systems Romania
claudia.jelea@jlaw.ro
silviu.dumitrescu@msg-systems.com
Alexandra Casapu
Liviu Boar
Software Tester
@ Altom Consulting
alexandra.casapu@altom.ro
monica.petraru@urss.ro
Senior Business Analyst
@ UNIQA Raiffeisen
Software Service
Marketing manager
@ Fortech
Monica Petraru
sorina.mone@fortech.ro
liviu.boar@reea.net
Diana Blan
Diana.Balan@accesa.eu
Java developer
@ Accesa
Ovidiu Man
ovidiu.matan@todaysoftmag.com
Editor-in-chief
Today Software Magazine
www.todaysoftmag.ro
www.todaysoftmag.com
eveniment
venimentul IT days a fost organizat anul trecut de revista Today Software Magazine ca o ncercare de a-i reuni pe aproape
toi cei care se implic n dezvoltarea comunitii IT locale. Fiecare dintre acetia sunt animai, dincolo de specificul domeniului n care activeaz, de interese fundamentale asemntoare, respectiv eficien maxim i susinerea comunitii IT
locale. Conturarea unor principii de baz care s devin repere n dezvoltarea IT-ului local, a fost unul dintre principalele obiective
pe care le-a intit evenimentul.
Anul acesta, ne propunem s realizm
nc o ediie a IT Days, impulsionat de
acelai obiectiv al coagulrii unor direcii
de dezvoltare. Evenimentul care se va
desfura n 25-26 noiembrie va oferi
ocazia de a-i ntlni invitai speciali precum i pe cei mai buni specialiti care au
publicat de-a lungul anului n revista noastr. Un fapt inedit este proiectul editrii
crii Cum s construieti un produs, n
care toi cei care vor susine o prezentare
n cadrul evenimentul vor avea ocazia s
scrie un capitol. Aceasta va fi inclus n
preul biletului conferinei IT Days 2014,
participanii avnd ocazia s citeasc mai
multe detalii despre domeniile de interes.
Iulian Iuga
Dan Ionescu
Simona Bonghez
ovidiu.matan@todaysoftmag.com
Editor-in-chief
Today Software Magazine
eveniment
rupul de firme Gemini Solutions mpreun cu Gemini Foundry Inc, organizeaz n data de 23 Septembrie 2014, la Bucureti, a
treia ediie a Conferintelor Foundry, avndu-l ca invitat special pe Romain Lavault, partener Partech Ventures. Aceast ediie
a evenimentului aduce un nou investitor important n Bucureti pentru startup-urile romneti dup ce n ediiile anterioare
am avut ocazia s i vedem pe Nicolas El Baze, partener Partech Ventures i pe Romain Niccoli, co-fondator i CTO Criteo, una dintre
cele mai importante startup-uri europene.
Pentru cei interesai, accesul se face de tip seed anual avnd valoarea medie de
Ceea ce cutm sunt startup-uri care pot
pe baz de invitaie, iar pentru obinerea 500,000 dolari1. Antreprenorii prezeni la fi scalabile la nivel global, care favorizeaz
acesteia v invit s accesai site-ul Gemini eveniment vor avea, de asemenea, posibil- schimbarea i revoluia pieei. Noi le vom
Solutions Foundry www.gemsfoundry. itatea de a-i prezenta ideile de business, ajuta s se pregteasc pentru investiii i s
com. Locul de desfurare este etajul 34 al ntr-o sesiune interactiv de pitching. i dezvolte infrastructura care le va permite
Sky Tower, n Bucureti, n data de 23 sep- Astfel, n a doua parte a conferinei, vor s se reintegreze n Silicon Valley, n timp ce
tembrie de la ora 16:30.
fi expuse cele mai interesante proiecte ale i pstreaz echipele tehnice n Romnia.
participanilor nscrii.
Suntem interesai n mod special de domenii precum cel al mobilelor, Internetul
obiectelor, big data, domeniul social, comer
electronic, pli i multe altele. Atept cu
interes s demonstrm acest model i s
ajutm antreprenorii romni s obin succes la scar mondial.
ovidiu.matan@todaysoftmag.com
Editor-in-chief
Today Software Magazine
concurs
magine Cup este o competiie anual IT care se adreseaz studenilor i elevilor din
ntreaga lume. Competiia este organizat de Microsoft i are ca scop dezvoltarea de
soluii software care s vizeze cele mai importante probleme ale omenirii i care au anse
reale de a deveni produse soft comerciale.
Dan Suciu
dan.suciu@3pillarglobal.com
Director of Technical Training
@ 3Pillar Global
Descriere general
concurs
Cu Smilestone la Imagine Cup 2014
i soluia ct de ct schiat, ei se pot
nscrie pe site-ul www.ImagineCup.com
Anumite universiti pot organiza
competiii interne, locale, atunci cnd
din instituiile respective se nscriu
mai multe echipe n competiie. n trecut att Universitatea Babe-Bolyai ct
i Universitatea Tehnic au organizat
astfel de sesiuni, echipele situate pe primele 2-3 locuri urmnd a se califica la
faza naional. n 2014 acest lucru nu
s-a repetat i s-a nceput direct cu o faz
online, de selecie a soluiilor ce urmau
s participe la faza naional (cte trei
soluii pentru fiecare seciune). Pentru
fiecare soluie echipele participante
trebuiau s trimit o documentaie i
orice materiale (filme, kituri de instalare
etc.) care s ajute la o mai bun evaluare
(pentru acest faz soluia putea fi doar
parial implementat) .
La faza naional (desfurat n
acest an n incinta Politehnicii Bucureti)
fiecare dintre echipele calificate au avut
ocazia s-i descrie live soluia, s fac
un demo (10 minute) i s rspund la
ntrebrile juriului (n alte 10 minute).
Faza regional a fost din nou una
online, materialele menionate mai sus
fiind actualizate i trimise juriului regional. Romnia intr n regiunea Europa
Central i de Est mpreun cu alte peste
20 de ri. n urma seleciei, 6 soluii
au fost selectate pentru a merge mai
departe la Seattle.
La faza mondial au avut loc timp
de dou zile dou sesiuni de jurizare
(una de prezentare, de 10 minute i
una hands-on n care fiecare membru al
juriului putea petrece 15 minute cu soluia i putea s pun ntrebri de detaliu)
la care s-au prezentat cte 10 echipe la
seciunile Innovation si Games i 14
echipe la seciunea World Citizenship.
10
Participarea Romniei
n loc de concluzii...
c procesul de testare va fi unul complin foarte puine cuvinte, aceasta a cat. Sperm ns ca i rezultatele s fie pe
fost soluia propus de Romnia n acest msura efortului.
an la finala mondial Imagine Cup de la
Seattle. Chiar dac nu a fost unul dintre
proiectele premiate, considerm c are un
imens potenial. Ceea ce s-a realizat pn
acum este doar un prim pas: am reuit s
construim algoritmi de detectare a primicipalilor muchi ai feei implicai n
activitatea de recuperare a limbajului.
Urmeaz implementarea unor exerciii
specifice i gsirea de parteneri ce vor dori
s se implice n etapa de testare clinic a
sistemului. Spre deosebire de alte exerciii
de recuperare, recuperarea limbajului este
complicat i delicat, de aceea anticipm
Product
Strategy
Product
Development
Product
Support
www.3pillarglobal.com
11
interviu
m avut plcerea de a realiza un interviu cu Chris Heilmann, Principal Developer Evanghelist la Mozilla Developer Network,
Londra. Chris va fi unul dintre principalii speakeri la IMWorld 2014, www.imworld, 8-9 octombrie, Bucureti.
Le poi spune cititorilor notri cteva cuvinte despre Mozilla Corporation?
oriunde i scopul lui este s fac lumea mai mic i un loc mai
bun pentru a comunica unii cu alii fr griji legate de siguran
sau confidenialitate. De aceea crem servicii i produse i educm oamenii despre ce nseamn s intri online i cum s fac
trecerea de la stadiul de consumator la cel de productor. Noi
suntem aici pentru a v ajuta s intrai online fr a trebui
s subscriei la un singur ecosistem nchis sau s mprtii
informaii personale n schimbul posibilitii de a vorbi cu
familia voastr.
Firefox OS este ceva despre care nu auzim toat ziua, de
fapt, Romnia nici nu se afl pe lista locaiilor disponibile.
Putem utiliza dispozitivele noastre existente pentru a porni
Firefox OS? Ct de uor pot dezvoltatorii s scrie cod pentru
el, cci, dup cum tim, este bazat pe HTML5?
Scrierea aplicaiilor n HTML5 nseamn c putei deja
susine Firefox OS (i toate celelalte platforme). Ceea ce face
Firefox OS este s v ofere acces deplin la hardware-ul unui
telefon i astfel s faciliteze realizarea unor produse foarte
captivante. Gndii-v la el drept platforma care ndeplinete
promisiunile pe care alte platforme ni le-au fcut atunci cnd
HTML5 a fost prima dat definit. Poi ncepe s dezvoli o
aplicaie Firefox OS chiar n browser-ul Firefox acum se
transfer cu App Manager / Web IDE direct n instrumentele
dezvoltatorului. De acolo poi porni un dispozitiv simulat pe
computerul tu, care servete scopului tu n proporie de
90%. Dac dezvoltatorii doresc s aib un dispozitiv pe care
s testeze aplicaiile lor, exist dispozitivul dedicat dezvoltatorilor telefonul de referin al dezvoltatorului, Flame1.
Acesta se livreaz n ntreaga lume pentru 170$, incluznd
taxele potale i ambalajul. Este un dispozitiv de nivel mediu
care i permite s simulezi diferite specificaii ale telefonului
direct pe el. Exist o serie video care i explic cum s faci
asta.
1 bit.ly/flamedevice
12
Ovidiu Man
ovidiu.matan@todaysoftmag.com
Editor-in-chief
Today Software Magazine
6 www.mozilla.org/en-US/contribute
13
educaie
rganizarea unor cursuri practice pentru elevi a fost unul dintre primele repere
ale viziunii pentru Fortech cu care am fcut cunotin la venirea n companie. A rmas pe agenda firmei n anii ce au urmat, pn cnd momentul i
condiiile au fost oportune.
Mutarea la noul sediu ne-a deschis perspective frumoase pentru astfel de iniiative
Sorina Mone
sorina.mone@fortech.ro
Marketing manager
@ Fortech
14
ce necesit o logistic aparte, oameni uneia dintre cele mai importante decizii
dedicai i parteneri cu deschidere.
de via.
n continuare vom reda jurnalul a 13
Astfel c prin eforturile echipei noas- zile petrecute mpreun cu elevii notri.
tre de HR, ale unui grup de profesori din
cadrul liceului teoretic Avram Iancu i Ziua 1 - Cariere n IT
ale unor oameni pasionai din Fortech,
Ne cunoatem ... actual i viitor analist
a fost pus pe roate programul hiSchool de business, manager de proiect, proTraining.
gramator, designer. Peste 40 de elevi n
Happy Bistro la Fortech, timizi la primul
Ce este Fortech hiSchool Training?
rendez-vous cu inginerii. Am povestit
O iniiativ comun a Fortech i a lice- despre ce nseamn o cariera n IT din
ului Avram Iancu ce vizeaz organizarea perspective diferite, care mpreun ncuunor cursuri practice de tip workshop nuneaz echipa unui proiect: a analistului
pentru elevii de liceu care au interes de business, a project managerului, a pronspre zona de IT. Scopul este de a com- gramatorului, a QA-ului, a inginerului de
pleta cunotinele dobndite n coal i de sistem, a designerului.
a facilita contactul cu mediul real n care
Pe majoritatea dintre noi, aceste
elevii vor activa, ntr-o etap n care se discuii ne-au motivat i ne-au ndrumat
ia practic decizia de carier prin alegerea s alegem un drum n IT. Ne-au lrgit orifacultii i pregtirea pentru aceasta.
zontul, avnd ocazia s ne formm o idee
Ne propunem s fim acea organizaie despre munca n acest domeniu spun Alex,
care aduce un aport nu doar pentru a aco- Rares, Beatrice i Adina.
peri necesarul de specialiti IT pentru a
doua jumatate a anului 2014 sau pentru
2015, ci pe urmtorii 10-20 de ani.
Credem cu trie n ideea c pentru a
pregti specialitii de mine, trebuie investit n copiii i tinerii de azi. De asemenea,
credem c pentru a excela ntr-un domeniu, oricare ar fi acesta, ntlnirea cu acel
domeniu trebuie s se produc ct mai
devreme. n acest context, contactul cu
modele sau repere veritabile este cel mai
valoros. Nu avem un Steve Jobs care s
Ne-am bucurat nespus cnd deja la
se adreseze unei naiuni spunnd c fie- workshop-ul cu nr. 2 a trebuit s suplimencare copil trebuie s nvee s programeze tm cu nc o sesiune, ntruct numrul de
pentru c l nva cum s gndeasc (i.e. elevi nscrii depea numrul maxim de
Code Starts). Dar avem oameni pasionai 20 pe care ni-l propusesem pentru urmn Fortech care i-au luat din timpul lor de toarele ntlniri. Au urmat aadar primele
munc pentru a-l dedica unor tineri la fel ntlniri de lucru:
de pasionai, curioi i n curnd n pragul
Ce urmeaz?
Young spirit
Mature organization
A shared vision
Join our journey!
www.fortech.ro
15
eveniment
ucureti, 3 septembrie 2014 A cincea ediie internaional a How to Web, cel mai important eveniment dedicat inovaiei,
antreprenoriatului i tehnologiei din Europa de Sud-Est, va avea loc pe 20 i 21 noiembrie n Bucureti. Avnd un nou format,
conferina va aduce n faa unei audiene estimate de peste 1000 de persoane profesioniti n tehnologie recunoscui la nivel
internaional. n plus, cele mai performante 32 de startup-uri din regiune vor concura pentru premiile n valoare total de 20.000
USD oferite n cadrul celei de a treia ediii a competiiei i programului de mentorat Startup Spotlight.
Ediia din 2014 a How to Web marcheaz un nou nceput pentru conferin
i propune participanilor un format mai
complex. Astfel, evenimentul va aborda
teme precum antreprenoriatul n tehnologie, dezvoltarea de produse cu potenial
disruptiv la nivel global, tendine ale industriei, obinerea de investiii sau crearea de
jocuri i va aduga noi elemente adresate
unor categorii specifice de audien.
Pe scenele How to Web 2014 vor urca
i de aceast dat personaliti marcante
n domeniul tehnologiei la nivel mondial.
Printre invitaii care au confirmat pn
n prezent participarea la eveniment se
numr: Paul Papadimitriou, expert n
revoluia digital i efectele sale transformatoare asupra afacerilor, i invitat special
al celor mai importante evenimente n
tehnologie din lume; Chris Chabot, Head
of International Developer Relations
Twitter, care ajut companiile i dezvoltatorii s redefineasc viitorul prin crearea
de conexiuni valoroase ntre oameni i
prin susinerea proceselor inovative, sau
Florian Meissner, Co-Fondator i CEO
EyeEm, care este o platform pentru noua
generaie de fotografi care utilizeaz dispozitivele mobile, avnd peste 10 milioane de
utilizatori i care a obinut pn n prezent
finanri de 6 milioane de dolari.
irina.scarlat@howtoweb.co
PR Manager
@ How to Web & TechHub Bucharest
16
eveniment
coninut.
espre TYPO3, soluia entreprise CMS open source care a cucerit Germania, am mai vorbit n paginile Today Software Magazine
acum un an, cu prilejul pregtirii primei ediii a conferinei TYPO3 East Europe precum i n numrul din august al revistei,
cnd colegul meu Tomi Militaru a prezentat TYPO3 Neos, noul CMS care promite s revoluioneze experiena editrii de
Daniel Homorodean
daniel.homorodean@arxia.com
CEO
@ Arxia
17
comuniti
Comuniti IT
una septembrie vor avea loc o serie de conferine astfel nct spaiul evenimentelor din calendar a devenit foarte mic pentru a
le putea enumera pe toate. V invitm ca de obicei la evenimentele de lansare a revistei din Cluj dar i la cea din Trgu Mure.
De asemenea, n Bucureti au loc n perioada urmtoare SmartWebConf, Internet & Mobile World i SeeTest iar n Iai vom
avea o nou ediie a ..even mammoths can be Agile, un eveniment care s-a bucurat de un real succes anul acesta n Cluj.
Transylvania Java User Group
Comunitate dedicat tehnologiilor Java.
Website: www.transylvania-jug.org
Data nfiinrii: 15.05.2008 / Nr. Membri: 586 / Nr. Evenimente: 46
Comunitatea TSM
Comunitate construit n jurul revistei Today Software Magazine.
Website: www.facebook.com/todaysoftmag
www.meetup.com/todaysoftmag
Data nfiinrii: 06.02.2012 /Nr. Membri: 1746/Nr. Evenimente: 22
Cluj Business Analysts
Comunitate dedicat analizei de business
Website: www.meetup.com/Business-Analysts-Cluj
Data nfiinrii: 10.07.2013 / Nr. Membri: 87 / Nr. Evenimente: 8
Cluj Mobile Developers
Comunitate dedicat tehnologiilor mobile
Website: www.meetup.com/Cluj-Mobile-Developers
Data nfiinrii: 05.08.2011 / Nr. Membri: 236 / Nr. Evenimente: 15
The Cluj Napoca Agile Software Meetup Group
Comunitate dedicat metodelor Agile de dezvoltare software.
Website: www.agileworks.ro
Data nfiinrii: 04.10.2010 / Nr. Membri: 442 / Nr. Evenimente: 86
Cluj Semantic WEB Meetup
Comunitate dedicat tehnologiilor semantice.
Website: www.meetup.com/Cluj-Semantic-WEB
Data nfiinrii: 08.05.2010 / Nr. Membri: 191/ Nr. Evenimente: 28
Romanian Association for Better Software
Comunitate dedicat oamenilor cu experien din IT indiferent de
tehnologie sau specializare.
Website: www.rabs.ro
Data nfiinrii: 10.02.2011 / Nr. Membri: 248/ Nr. Evenimente: 14
Tabra de testare
Comunitate format din testeri i ali profesioniti din industria
IT care, n cadrul unor ntlniri informale lunare, mprtesc
din cunotinele proprii i nva din experienele profesionale ale
celorlali membri.
Website: www.tabaradetestare.ro
Data nfiinrii: 15.01.2012 / Nr. Membri: 1186/ Nr. Evenimente: 33
18
Calendar
Septembrie 18 (Cluj)
Lansarea numrului 27 a Today Software Magazine
www.todaysoftmag.ro
Septembrie 22-23 (Bucureti)
SmartWebConf
smartwebconf.com
Septembrie 23 (Bucureti)
A III-a ediie a conferinei Gemini Solutions Foundry
www.gemsfoundry.com
Septembrie 24 (Trgu Mure)
Lansarea numrului 27 a Today Software Magazine mpreun cu Cluj IT Cluster
www.todaysoftmag.ro
Septembrie 25-26 (Bucureti)
SEETEST
seetest.org
Octombrie 1-2 (Iai)
Business Days Iai
www.businessdays.ro/Evenimente/Iasi-2014/
Octombrie 5 - 2 Noiembrie (online)
Cursul Black Box Software Testing
altom.training/bbst-foundations/
Octombrie 8-9 (Cluj)
Internet & Mobile World
imworld.ro
Octombrie 10 (Iai)
...even mammoths can be Agile
facebook.com/events/820690977965456
Noiembrie 25-26 (Cluj)
Cluj IT Days
itdays.ro
management
programare
-am uitat la ceas. 21.15, afar e ntuneric bezn. Brrr! Vine toama. Ct ine?
Enorm...Pn la primvar. Pentru zile ceoase i reci, pentru cei care simt nevoia
de studiu i perfecionare,voi aduce n atenie un topic nou, neabordat de mine
n articolele anterioare, JavaFX. Sper c prin aceasta s trezesc interesul cititorilor revistei
pentru aceast tehnologie, pe care o consider cu adevrat remarcabil.
Silviu Dumitrescu
silviu.dumitrescu@accesa.eu
Java Line Manager
@ Accesa
Diana Blan
Diana.Balan@accesa.eu
Java developer
@ Accesa
19
programare
JavaFX n Platforma Java Standard 8
primaryStage.setTitle(Hello World!);
launch() i suprascrie metoda abstract start(). Ca bun prac-
Button btn = new Button();
tic apelul metodei launch() este singurul apel din main()
btn.setText(Say Hello World);
btn.setOnAction(new
Un stage primar ce este vizibil, ca argument al metodei
EventHandler<ActionEvent>() {
start()
@Override
Avem trei tipuri de aplicaii JavaFX:
public void handle(ActionEvent event) {
Aplicaii propriu zise, ce folosesc sintaxa Java tradiional
System.out.println(Hello World!);
}
i API-ul JavaFX.
});
Aplicaii FXML. FXML se bazeaz pe XML i este folosit
StackPane root = new StackPane();
pentru a defini interfee-utilizator n aplicaii JavaFX. Cu FXML
root.getChildren().add(btn);
vom defini layout-uri statice precum formulare, controale sau
primaryStage.setScene(new Scene(root, 300,
tabele. Putem construi, de asemenea, layout-uri dinamice prin 250));
primaryStage.show();
includerea unui script.
}
Aplicaii preloader, folosite n procesul de deployment.
import javafx.application.Application;
import javafx.stage.Stage;
public class JavaFXApplication extends Application {
@Override
public void start(Stage stage) {
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
javafx.application.Application;
javafx.event.ActionEvent;
javafx.event.EventHandler;
javafx.scene.Scene;
javafx.scene.control.Button;
javafx.scene.layout.StackPane;
javafx.stage.Stage;
20
management
a stage-ului i pentru lansarea aplicaiei. Una dintre aciunile prefWidth=69 fx:id=label />
</children>
importante este dat de secvena urmtoare:
</AnchorPane>
Parent root=null;
try {
root = FXMLLoader.load(getClass().
getResource(Sample.fxml));
} catch (IOException e) {
e.printStackTrace();
}
stage.setScene(new Scene(root));
java.net.URL;
java.util.ResourceBundle;
javafx.event.ActionEvent;
javafx.fxml.FXML;
javafx.fxml.Initializable;
javafx.scene.control.Label;
21
programare
programare
VG (Scalable Vector Graphics) se impune drept unul dintre cele mai importante
trenduri din domeniul web designului pentru anul 2014. Este recomandat de W3C
(World Wide Web Consortium) nc din 2003, dar nu a fost foarte folosit, nefiind suportat n totalitate pe browser-e cum ar fi pe Internet Explorer. ns lucrurile au
nceput s se schimbe
Peter Krejcik
peter.krejcik@yardi.com
Web Designer
@ Yardi Romnia
Ce este SVG?
Explicarea codului:
Graficul SVG este declarat folosind t ag-ur i le <svg>...</svg> .
22
Uor de creat
Uor de editat
Sunt scalabile
Cel mai mare avantaj al graficii vectoriale este posibilitatea de a scala imaginile la orice dimensiune fr s pierdem
din calitate (exemplificare n imaginea de mai jos). Acesta
este motivul principal pentru care SVG este ideal pentru crearea de logo-uri de companii sau alte elemente grafice care
necesit multe redimensionri. Orice designer trebuie s
acorde atenie capacitii de scalabilitate a produsului finit.
Totodat, independena rezoluiei n cazul graficii scalabile este
Objective C
jobs-cluj@yardi.com
Yardi Romania
23
programare
Avantajele folosirii SVG (Scalable Vector Graphics)
Dimensiuni mai reduse
Grafice
Hri
24
Elemente UI complexe
Linkuri utile
Principii de baz pentru folosirea SVG : http://
www.w3schools.com/svg/svg_intro.asp
Folosirea SVG, un ghid practic: http://css-tricks.
com/using-svg/
Workflow SVG: http://danielmall.com/articles/
svg-workflow-for-designers/
O colecie de informaii SVG: http://css-tricks.
com/mega-list-svg-information/
Despre animaii SVG: http://24ways.org/2013/
animating-vectors-with-svg/
Responsive SVG :http://demosthenes.info/
blog/744/Make-SVG-Responsive
SVG Vs Canvas: http://www.sitepoint.com/7-reasons-to-consider-svgs-instead-of-canvas/
SVG i SEO: http://www.rocketmill.co.uk/
exploiting-svg-images-for-seo
Exemple de SVG: http://www.creativebloq.com/
design/examples-svg-7112785
programare
programare
Livrarea continu
n ultima perioad suntem bombardai din toate prile de ideea c trebuie s ncepem
s folosim Continuous Delivery (Livrare Continu), adic s ncepem s punem aplicaia
mai repede n producie i cu frecven mai mare. Da, ntr-adevr, s mergem live cu
aplicaia n producie de zece ori pe zi e distractiv i cool. Dar atunci de ce am avut nevoie de
aa muli ani? Livrarea continu este menionat nc din primul principiu agil:
Dan Danciu
dan.danciu@isdc.eu
Software Architect
@ ISDC
Prioritatea noastr este satisfacia clientului prin livrarea rapid i continu de software
valoros.
Conteaz pentru c toat lumea face sau
pentru c este distractiv i interesant? Nu
aceasta este abordarea corect. n tot ceea ce
facem trebuie s ne asigurm de ceea ce este
corect pentru companie, trebuie s nelegem
ce trebuie fcut i poate cel mai important
lucru este cum putem s aducem valoare
companiei.
Prin acest articol intenionez s prezint de
ce este important ca oamenii de business s
fie de acord cu livrarea n mod continuu, care
sunt diferenele dintre aceasta i alte practici
i cum s ncepem a o realiza. Pe lng toate
cele de mai sus, vor fi observaii cu privire la
contextul dezvoltatorilor software din outsourcing, mediu care este considerabil diferit.
Pentru c am vzut o mulime de prezentri, bloguri, filme n ultima vreme care omit
ntru totul s menioneze c nu doar tu, gurul
tehnic, trebuie s nvei ce presupune livrarea continu ci i oamenii de business. Dar
dincolo ce surprind aceste prezentri, ese
important de subliniat c tu, omul tehnic,
poi face ceva pentru a schima lucrurile.
Este necesar utilizarea i a practicilor de
integrare continu i deployment continuu
pentru a avea success n practica de livrare
continu, dar de foarte multe ori oamenii
folosesc termenul continuous delivery cnd se
refer la continuous deployment, iar mai jos
v voi arta ce neleg eu prin aceti termeni.
Integrarea continu este practic a dezvoltrii software n care membrii unei echipe
integreaz ceea ce livreaz des, de obicei fiecare
Este mai mult dect continuous depersoan integreaz munca proprie cel puin o
ployment
dat pe zi - ceea ce conduce la mai multe inteUitndu-ne la tirile din mediul IT apar grri pe parcursul unei zile.
tot mai multe instrumente care s faciliteze
accesul n etapa numit livrare n mod con- Continuous Delivery vs. Continuous Deploytinuu. Cnd voi putea s nv toate aceste ment, Martin Fowler
instrumente dintre care menionez cteva
Livrarea continu se refer la ideea c
precum puppet, chef, varant, Go CI ? i mai aplicaia este n permanent ntr-o stare n
mult, cine ne va pune la dispoziie timp pen- care poate fi pus n producie. Deployment
tru a le integra n proiectele noastre care sunt continuu este de fapt punerea n producie a
deja n urma fa de planificarea managerilor aplicaiei la fiecare schimbare de cod, n fiecare
notri.
zi sau chiar mai des.
Eu cred c trebuie s ne ntrebm ce vom
Atunci cnd am citit primul fragment
ctiga prin a implementa primul dintre mi-am spus: Interesant, deployment contiprincipiile agile, iar rspunsul este feedback. nuu e mai bun decat livrare continu! i acum
Pentru a ne asigura c recunoatem valoare civa ani s-ar putea s fi avut dreptate. Jez
aa cum este specificat n primul principiu, Humble a spus la un moment dat c livrarea
trebuie s nvm ce neleg clienii i busi- continu nu are nevoie de deployment conness-ul prin valoare, exact la fel cum facem tinuu, iar vice-versa nu e neaprat adevrat.
i cu atributele de calitate. De fapt, n acest ns acum eu cred c este mai important s
context valoare este calitate i vice-versa. De fii alturi de business, iar utilizarea de deployce trebuie s recunoatem valoarea? Deoarece ment continuu doar n mediul de acceptan
trebuie s ne dm seama cnd am reuit s o nu este suficient. A acorda businessului
atingem sau mcar ct mai avem nevoie pn dreptul de a pune aplicaia n producie este
o vom atinge.
ceea ce nseamn de fapt livrare continu.
Dar de ce afirm toate aceste lucruri? Chiar mai mult, unele companii au diminuat
www.todaysoftmag.ro | nr. 27/septembrie, 2014
25
programare
Livrarea continu
rolul sau chiar ndeprtat ntru totul mediul de acceptan,
punnd aplicaia direct n producie, doar cu o testare minim
din partea developer-ului - ceea ce pentru mine nseamn c cei
doi termeni au fuzionat, motiv pentru care m simt mai n largul
meu s utilizez termenul de livrare continu.
Feedback n CI/CD
i totui, ce ar putea face un dezvoltator care lucreaz ntro firm de outsourcing? De cele mai multe ori nu are acces la
oamenii din business, n cel mai bun caz poate doar acces limitat, pentru c de cele mai multe ori interacioneaz cu analiti
funcionali. Pn recent am crezut c este suficient s faci
curenie n curtea proprie i c atunci cnd cei din jurul tu vor
vedea c modificarea aduce o mbuntire, atunci se vor schimba
i ei, n consecin mbuntind ntreaga companie. i nu este
chiar greit, dar ideea are o capcan: aduce cu adevrat valoare
dac eu l vd ca un beneficiu? Probabil de multe ori nu suntem
oameni tehnici, de multe ori am petrecut ore n ir lefuind ntrun diamant o poriune de cod care deja funciona. Util pentru
business poate ar fi fost ca acel cod s ruleze deja n producie.
Consider c trebuie s ntrebm oamenii din business care
sunt valorile pe care ei le urmresc n luarea deciziilor. De fapt
noi facem acest lucru deja atunci cnd ntrebm despre atributele de calitate. Dac ai fost la unul din cursurile lui Tom Gilb cu
siguran eti deja convins c primul lucru pe care trebuie s l
faci este s ntrebi businessul care sunt primele lor zece valori; i
ne vom focaliza asupra soluiei care va avea ROI-ul cel mai mare
(ROI - return of investment), o vom implementa, dup care trecem la urmtorul, i urmtorul i tot aa.
26
27
programare
Livrarea continu
funciona totul corect. Pentru a obine aceast lucru va trebui
s versionam totul, nu doar codul, ci i configurrile, cerinele
funcionale, scripturile de instalare, API-urile, i orice altceva ne-am putea gndi; chiar mai mult, ar fi util s putem s
relaionm modificrile ntre ele.
Dac o activitate este dureroas, atunci cu att trebuie fcut
mai des. Am putea ncepe cu procedura de deployment, dar nu
se limiteaz doar la aceasta. Gndete-te la problemele ce pot
aprea n producie, poi organiza exerciii pentru a repeta procedura de recuperare n diferite scenarii de failure, n acest mod
vei putea fi pregtit pentru momentul n care o situaie real va
aprea, mai mult, cu timpul vei avea mai multe cunotine despre
procedur i o vei putea automatiza. Dup cum cei de la Netflix
au fcut cu Chaos Monkey, care oprete aleatoriu noduri n
producie i monitorizeaz stabilitatea sistemului, i mai trziu
cu ntreaga Symian Army, care oprete instane la diferite nivele
ale infrastructurii.
Cu toate cele menionate mai sus, nu poti spune gata, am
terminat!. Pentru c toate fac parte dintr-o munc continu i
trebuie s vezi cum poi mbunti fiecare pas.
28
Concluzii
programare
programare
florin.maguran@betfair.com
Senior Java Developer
@ Betfair
Am ales Titan
dar n final, noi am ales Titan. Este un graphDB nou; proiectul a fost nceput n 2012
de ctre Aurelius1 i a fost conceput cu gndul la scalabilitate i performan. Este bazat
pe Java i cteva dintre caracteristicile sale
includ:
Integrare uoar este de fapt un
artefact maven, un simplu jar pe care l
incluzi n proiectul tu i gata! l ai acolo
(bineneles, trucurile apar mai trziu, cnd
ai nevoie de un comportament specific).
Gratuitate (licen Apache).
TinkerPop stack (deoarece Titan
este bazat pe Blueprints API, poi uor
s conectezi TinkerPop stack pentru
a facilita lucruri precum fast traversal
(traversare rapid), gremlin shell pentru
cercetarea graficelor, rexter pentru vizualizarea graficelor).
Performan bun cnd este utilizat
cu Cassandra backend (scalabilitate i
decuplare).
Accesibilitate ridicat, fr nici un
defect i opiune de scalare orizontal (n
comparaie cu Neo4J, de exemplu)
ElasticSearch utilizat pentru a indexa
nodurile i muchiile (i cum ES este reunit
n fascicul, noi putem oricnd s scalm
orizontal prin adugarea mai multor VM)
Pentru a completa imaginea, trebuie de
1 thinkaurelius.github.io/titan/
29
programare
Detectarea fraudelor cu Titan
asemenea s menionm i slbiciunile lui Titan. Cteva dintre
acestea sunt:
Tehnologie nou (prima versiune n 2012).
Se bazeaz pe clustering (grupare) ambele Cassandra i ES
funcioneaz n propriul lor cluster (fascicul), astfel oferindu-v
o abordare diferit a infrastructurii aplicaiei voastre.
Nu sunt prea muli utilizatori; suport limitat de la Aurelius
(o comunitate semi-activ cu rspunsuri de la creatori/ dezvoltatori unde chiar dac rspunsul este prompt, este nevoie de
timp pentru a face toate modificrile) .
Bine, poate c am triat puin, deoarece noi deja lucram cu
Elastic Search i am vrut s ncercm i Cassandra, dar, per total,
Titan este o alegere redutabil pentru reprezentri grafice i ne
satisface nevoile foarte bine.
Pe la mijlocul proiectului am descoperit c PayPal a dezvlui ntr-un comunicat de pres c i ei utilizeaz Titan pentru a
descoperi frauda, deci, din pcate, nu ne putem luda c suntem
primii care folosesc Titan pentru acest scenariu anume. Totui, n
industria jocurilor, putem afirma cu mndrie c suntem prima
companie care i scaneaz clienii dup o multitudine de reguli
pentru a preveni i detecta frauda.
Singura problem pe care am ntlnit-o n mijlocul procesului de implementare a fost cnd am realizat c avem nevoie de o
versiune specific a Elastic Search i am fost obligai s ramificm
codul baz al Titan pentru a reconcilia versiunile.
30
programare
programare
Pragmatism n programare
Mihnea Lazr
mihnea.lazar@msg-systems.com
Java Developer
@ msg systems
ragmatismul ca termen general se refer la abordarea unei sarcini ntr-o manier care
urmrete aspectul practic i util al abordrii, pentru a o face ct mai eficient.
n domeniul programrii, acest termen este adesea cunoscut sub numele de bune
practici ale programrii. Acestea se refer adesea la scrierea unui cod curat i gestionarea
codului ntr-o form ct mai eficient, lizibil, att pentru persoana care scrie codul, ct i
pentru persoanele care vor citi codul n viitor. Articolul de fa va prezenta o serie de idei, care
au ca scop mbuntirea modului de scriere a codului i a modului n care tratm proiectele
la care lucrm.
Duplicare
31
programare
Pragmatism n programare
Documentarea codului, prin comentarii sau
documentaie;
Comunicarea mersului i a problemelor
aprute, fie n form personal, prin edine
periodice, fie n mediu virtual, prin descrierea
problemelor ntr-un mediu centralizat;
Implementarea unui comportament generic,
reutilizabil pentru mai multe tipuri de obiecte.
Ortogonalitate.
CONFERENCE2014
ndeajuns de bun
Contracte
32
Cunoaterea IDE-ului.
Comunicare
Limbaje de programare;
Cri tehnice;
Cri non-tehnice (management, finane, auto-dezvoltare,
etc.);
Evenimente, prezentri din domeniu;
Publicaii, reviste, site-uri de tiri tehnice;
Mentori, pentru a cere sfaturi i sugestii.
n acest articol sunt prezentate doar cteva idei asupra
mbuntirii muncii depuse n domeniul software ntr-o manier
pragmatic. Sunt idei accesibile, de care este important s inem
cont pentru a ne putea face ct mai bine munca i a avea ct mai
multe rezultate bune.
Bibliografie
The Pragmatic Programmer: From Journeyman to Master Andrew Hunt,
David Thomas
http://www.manhattan-institute.org/pdf/_atlantic_monthly-broken_windows.pdf
Geanta de cunotine
33
programare
n ultimul articol din TSM, am descoperit mpreun universul codului curat, prin ,,Clean Code scris de Robert C. Martin. Am
avut ocazia s aprofundm subiectul denumirilor i s vedem ct de uor pot lucrurile mici precum numele funciilor sau al
variabilelor s mbunteasc calitatea i lizibilitatea codului nsui.
O poveste vesel
Aceasta este prima i cea mai important regul legat de funcii. Ar trebui s
le pstrai ct mai scurte posibil. Explicaia
este destul de simpl: o funcie scurt va
face mai puin (numai un singur lucru
simplu). n plus de asta, va fi mai uor de
neles i de lucrat cu ea.
ntrebarea normal care ne vine n
minte este ,,Ct de scurte?
100 de linii?
50 de linii?
10 linii?
5 linii?
Din pcate, nu putem avea un numr
magic cum ar fi 5 sau 20, pentru c este
destul de greu s generalizezi. Lungimea
unei metode depinde de factori multipli,
cum ar fi conveniile codului. De exemplu, ct de des apei enter pentru a aduga
o nou linie (pentru fiecare { sau pentru
fiecare afirmaie logic i aa mai departe).
n general, dac sfreti prin a avea o
metod mai lung de 10 15 linii de cod,
atunci ar trebui s arunci o privire peste ea
ca s vezi de ce este aa de lung. Este din
cauza conveniilor codului sau din cauz
c exist prea mult logic acolo?
34
Argumentele funciei
Fr efecte secundare
Nu v repetai
Lucruri mrunte
Radu.Vunvulea@iquestgroup.com
Senior Software Engineer
@iQuest
35
programare
n momentul de fa exist foarte multe servicii web la care te poi conecta pentru a obine date folositoare. De exemplu Instagram,
Twitter pentru imagini sau tweeturi sau n cazul meu personal Foursquare, de unde pot obine o list cu barurile din zon. n
general ai putea s te conectezi direct la servicii de genul acesta cu NSURLRequest sau cu o librrie precum AFNetworking. Aici
intervine RestKit, care te scutete de cteva bti de cap i parsri de JSON.
Ce este RestKit?
Ce conine?
36
Exemplu
Voi extrage doar partea legat de RestKit din proiectul
meu. Pornind de la o aplicaie simpl cu o list, pe care o vrem
populat cu locaiile dorite oferite de serviciul de la Foursquare.
Aceasta const din doua view controller-e mai importante, un
UITableViewController pentru list i un UIViewController pentru
detaliile fiecrei dintre locaii. Nu voi intra n detalii despre cum
ar trebui s se fac aceasta sau cum ar trebui s arate, deoarece nu
este subiectul articolului.
Dup ce avem proiectul pregtit, sunt dou modaliti de a
aduga RestKit ntr-un proiect: CocoaPods sau Git submodule.
Din motive de simplitate i rapiditate am ales CocoaPods , instalarea pods-urilor fiind doar cteva linii de comand n terminal:
$ sudo gem install cocoapods
$ pod setup
$ cd /calea/catre/ProiectulVostruCuBaruriApropiate
$ touch Podfile
$ [edit] Podfile (using your preferred editor; vim,
nano, etc)
platform :ios, 5.0
pod RestKit, ~> 0.20.0
$ pod install
arhitectur
meta: {
code: 200
},
notifications: [
{
item: {
unreadCount: 3
},
type: notificationTray
}
],
response: {
confident: true,
neighborhoods: [],
venues: [
{
categories: [
{
icon: {
prefix: https://
ss1.4sqi.net/img/categories_v2/food/bar_,
suffix: .png
},
id: 4bf58dd8d48988d1e0931735,
name: Bar,
pluralName: Bars,
primary: true,
shortName: Bar
}
],
contact: {
formattedPhone: (408) 4469000,
phone: 4084469000,
twitter: jackslongdrinks
},
hereNow: {
count: 0,
groups: []
},
id: 51630409498eedc7dd88e60b,
location: {
address: 20686 Stevens Creek
Blvd,
cc: US,
city: Cupertino,
country: United States,
crossStreet: De Anza Blvd,
distance: 936,
lat: 37.32246179607897,
lng: -122.03470838696346,
postalCode: 95014,
state: CA
},
name: Jacks Cocktails,
referralId: v-1390061483,
specials: {
count: 0,
items: []
},
stats: {
checkinsCount: 3790,
tipCount: 40,
usersCount: 1460
},
verified: true
},
{
categories: [
{
icon: {
prefix: https://
ss1.4sqi.net/img/categories_v2/food/bar_,
suffix: .png
},
id: 4bf58dd8d48988d1e0931735,
name: Bar,
pluralName: Bars,
primary: true,
shortName: Bar
}
],
contact: {
formattedPhone: (650) 3212161,
phone: 6503212161,
twitter: downtown_coffee
},
hereNow: {
count: 0,
groups: []
},
id: 4dd1580eb3adb047f5024231,
location: {
address: 101 Forest Ave,
cc: US,
city: Palo Alto,
country: United States,
crossStreet: at Alma St.,
distance: 17063,
lat: 37.442086282055726,
lng: -122.16159119091502,
postalCode: 94301,
state: CA
},
name: Downtown Coffee,
referralId: v-1390061483,
specials: {
count: 0,
items: []
},
stats: {
checkinsCount: 14168,
tipCount: 118,
usersCount: 4044
},
verified: true
Partea de cod
Acum c avem toate piesele la un loc, putem ncepe s construim aplicaia. Pentru acest articol ne vom lega doar de dou
componente mari ale RestKit: Network i Object Mapping.
Pentru Network, definim baza URL-ului pentru API-ul Forsquare
(https://api.foursquare.com) i trimitem/primim mesajele. Pentru
Object Mapping vom defini un model pe care l vom mapa la valoriile JSON returnate de catre serviciu.
Dup ce examinm un pic JSONul de mai sus, putem crea
o clasa Locatie care s extind NSObject. De dragul simplitaii,
pentru moment, i adugm o singur proprietate:
@interface Venue : NSObject
@property (nonatomic, strong) NSString *name;
@end
[self configureRestKit];
[self loadVenues];
}
// initialize RestKit
RKObjectManager *objectManager = [[RKObjectManager alloc] initWithHTTPClient:client];
www.todaysoftmag.ro | nr. 27/septembrie, 2014
37
programare
RestKit pentru iOS
path-
keyPath:@response.venues
statusCodes:[NSIndexSet indexSetWithIndex:200]];
[objectManager addResponseDescriptor:responseDes
criptor];
}
@end
38
@implementation MasterViewController
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusabl
eCellWithIdentifier:@Cell forIndexPath:indexPath];
return cell;
}
Mihai Fischer
mihai.fischer@gmail.com
iOS developer
@ Dens.io
evenimente
ou conferine de testare internaionale i destul de cunoscute la care am participat au fost Eurostar n 2012 i 2013 (n
Amsterdam i Gteborg) i CAST n 2014 (n New York). Cu experiena de la CAST nc proaspt, am ajuns la concluzia
c a merge la astfel de evenimente e o ocazie bun pentru a avea o experien benefic.
39
evenimente
Cum poi testa conferine de testare
Prezentatul la conferine
40
Alexandra Casapu
alexandra.casapu@altom.ro
Software Tester
@ Altom Consulting
41
programare
diverse
Tranziia de la QA la BA
ragi colegi din IT, m-am tot gndit ce lucruri interesante s v mprtesc din
experiena mea profesional i, din fericire, rspunsul era chiar sub nasul meu:
v voi povesti cteva episoade din viaa mea de analist business care ar putea s
v ofere o mai bun nelegere i un sprijin n munca voastr din prezent.
Monica Petraru
monica.petraru@urss.ro
Senior Business Analyst
@ UNIQA Raiffeisen
Software Service
42
43
programare
44
Liviu Boar
liviu.boar@reea.net
2d/3d artist, animator
@ ReeaAnimation
45
testare
n domeniul IT ca, de altfel n orice afacere din orice domeniu v vei gsi n
situaia de a semna contracte cu partenerii dumneavoastr : contracte de dezvoltare
website, contracte pentru externalizarea software sau pentru dezvoltarea de aplicaii.
Dar pn s ajungei la momentul semnrii uneori trebuie s negociai cu partenerul
anumite aspecte ale contractului, pentru a v concilia interesele.
Claudia Jelea
claudia.jelea@jlaw.ro
Avocat & Consilier in
domeniul marcilor
@ Jlaw
Claudia este specializat pe
aspecte juridice ce implic
mediul online, comerul
electronic i IT&C, protecia
datelor cu caracter personal
i proprietatea intelectual.
46
testare
pentru ali clieni sau pentru alte scopuri.
Negociai!
Apelai la specialiti
47
management
48
simona.bonghez@confucius.ro
Speaker, trainer and consultant
in project management,
Owner of Colors in Projects
sponsori
powered by