Novi Sad je okupio veliki broj ljubitelja PHP programskog jezika i time pokazao da ni malo ne zaostaje za prestonicom. Mi kao organizatori bili smo prinuđeni da u dva navrata zaustavljamo prijave jer je interesovanje posetilaca bilo iznad kapaciteta sale koju smo mogli da obezbedimo. Jeste, priznajemo bile su to slatke muke :) Novosadski Spens ugostio je dve stotine programera koji su imali priliku da slušaju predavanja na veoma aktuelne teme.
Podsetićemo vas da se u Beogradu Aprila ove godine okupilo blizu 300 posetilaca na prvom meetupu koji smo organizovali za sve one koji u svom radu koriste PHP jezik. Posetioci, sponzori, prijatelji i energija koju smo okupili govore nam da je došlo vreme da PHP Srbija organizuje konferenciju posvećenu PHP programskom jeziku. Ovaj cilj ćemo dostići zajedno sa svima vama koji nas pratite i podržavate.
Kada smo iz Beograda krenuli ka Novom Sadu, znali smo da nas osim lepog vremena očekuje dobra ekipa koja je uvek raspoložena za druženje. Novi Sad se pokazao kao dobar domaćin za sve goste iz svih delova Srbije i prijatelje iz Hrvatske PHP zajednice.
Svi koji 16. novembra 2013. godine nisu mogli da dođu u Spens sva dešavanja mogli su da prate preko društvenih mreža i live bloga koji je iz minuta u minut prenosio dešavanja iz prepune sale.
Đorđe Ungar radi za deviantART – najveću zajednicu umetnika na svetu. On je programere najpre upoznao sa svojom kompanijom. DeviantART ima preko 30 miliona korisnika, 250 miliona devijacija (radova). Svaki dan se objavi 80 hiljada novih devijacija. Ceo sistem pokreće preko 250 servera - jednu trećinu čine web serveri, drugu trećinu DB serveri a na file servere odlazi jedna petina. Ostatak čine serveri za memcached, search itd… Peak ka serverima je 1800 zahteva u sekundi. Ceo kod sadrži preko 2 miliona linija koda. devianART koristi veliki broj alata u svakodnevnom radu. Svi ti alati su homegrown tj napravljeni su konkretno za taj sistem. Budući da je deviantArt počeo da radom početkom prethodne decenije i da ima delova koda koji datiraju iz tog perioda ceo sistem je teško menjati i nadograđivati.
Link ka prezentaciji.
Rastko Vukašinović je govorio o workflow-u za distribuirane timove. U osnovi workflowa koji je Rastko predstavio nalazi se git kao jedan od omiljenih SCM sistema u php zajednici. Ako je i neko i koristio SVN nakon Rastkove prezentacije git branching modela sigurno već razmišlja o prelasku na git. Rastkov tim u razvoju koristi Capistrano alat za automatizaciju pisan u Ruby jeziku. Može se koristiti za deploy aplikacija na neograničeni broj servera, ili za provisioning servera. Sledeći alat koji je predstavljen jeste JenkinsCi, koji se koristi za autimatizaciju build procesa. PHP programerima će biti zanimljiv projekat http://jenkins-php.org/ koji će vam uštedeti vreme u kreiranju XML-a za build koji je najpotrebniji upravo na PHP projektima.
Link ka prezentaciji.
Ilija Studen je govorio o tehničkoj strani svog novog projekta manageprojects.com. Da bi izbegli probleme sa različitim konfiguracijama koje hosting kompanije nude svojim klijentima, rešili su da svojim korisnicima ponude Active Collab u oblaku. Sve što je potrebno jeste da se klijenti registruju, bez ikakve potrebe za instalacijom ili zakupom hosting servera. Za sve tehničke detalje brine se Studenov tim. Hardver koji hostuje manageprojects je poslat u Čikago, odakle se opslužuju svi korisnici. U produkciji se koristi Apache, PHP 5.4 + APC + memcached. PHP 5.5 + OPcache se još uvek testira. Što se tiče baza podataka koristi se MySQL 5.6.10 – Master/Slave sa odloženom sinhronizacijom. ManageProjects nema ograničenja u verziji PHP-a na kojoj se pokreće koju ima ActiveCollab tako da će sama optimizacija i poboljšanja dolaziti brže i lakše.
Link ka prezentaciji.
Srđan Vranac je predstavio Vagrant, alat koji olakšava i ubrzava rad. Svima se desilo da čuju rečenicu “Ali to radi na mojoj mašini”. Vagrant omogućava da svi programeri u timu razvijaju kod u istom okruženju koje pokreće produkcioni kod.
Vagrant će vam kreirati virtuelnu mašinu koristeći VirtualBox ili VMware koji se u nekim testovima pokazao brži. VirtualBox je znatno popularniji zato što ga Vagrant podržava od samog početka i zato što je besplatan.
Kada prvi put pokrećete Vagrant mašinu, potrebna je samo jedna komanda `vagrant up` koja će pokrenuti magiju. Da bi Vagrant kreirao okruženje koje želite on koristi provision alate, od kojih su najpopularniji Puppet i Chef. Provision alati instaliraju pakete i pokreću skripte koje će uobličiti okruženje.
Sam provision može potrajati, pa se zato mažina može gasiti sa `vagrant suspend` a podizati sa `vagrant resume` i nakon nepunog minuta mašina će biti spremna za korišćenje.
Link ka prezentaciji.
Robert Bašić je predstavio Mockery biblioteku. Veliki broj učesnika je pisao unit testove što je bilo pozitivno iznanađenje za sve nas. PHPUnit ima podršku za mokovanje objekata ali nam je Robert predstavio lakši i lepši način za mokovanje objekata.
Kako bismo maksimalno izolovali biblioteku/klasu koju testiramo potrebno je mokovati sve ostale objekte koji se instanciraju u metodi koju testiramo. Na ovaj način, ni jedna metoda objekta koji smo mokovali zapravo neće biti pozvana, jer smo mokovanjem zamenili instancu objekta sa mock objektom. Nakon ovoga, kada se pokrene test objekat koji se testira će pozivati svoje metode, a mockovani objekti će pozivati “lažne metode” koje sada ne mogu uticati na unit test. Ovim se postiže izolovanost jednog objekta od drugih od kojih je zavistan u realnom izvršavanju aplikacije.
Robert je istakao da unit testovi ne treba da pozivaju bazu podataka ili eksterni servis koji obezbeđuje podatke za aplikaciju, već da se takvi objekti obavezno mockuju.
Publika je imala priliku da vidi i nekoliko primera koji su pokazali lakoću korišćenja ove biblioteke. Što je programeru teže da napiše unit test manje su šanse da će biti napisan. Upravo zbog ovoga ova biblioteka jeste omiljena među PHP programerima koji koriste TDD.
Link ka prezentaciji.
Luka Mužinić je podelio svoje iskustvo u borbi sa preambicioznim zahtevima klijenta. I ova priča nam je pokazala da mi developeri uvek na kraju izlazimo kao pobednici. Luka je dobio zahtev da omogući 110 miliona geotargetiranih banera sa VPS-a za mesec dana. U tom trenutku njegov sistem je mogao da podrži čitavih 7 zahteva u sekundi. Najpre su pokušali da optimizuju kod. Rezultat i nije bio baš impresivan - 8 zahteva u sekundi. Zatim su pokušali sa keširanjem upita – 9 zahteva. Budući da sistem koristi Sphinx, keširali su i njegove upite – rezultat 12 zahteva u sekundi. Kao spasonosno rešenje pojavio se Nginx. Primarni cilj je bio 45, a dobijeno je ni manje ni više nego 1500 zahteva u sekundi i sve to na VPS, 4 core, 8 GB sa zanemarljivim loadom uz peak od 50-60 zahteva u sekundi. Pored tehničkog dela, Luka je dao vrlo korisne savete kako komunicirati sa klijentima i kako naći kompromis sa njima. Naglasio je da ne treba biti fokusiran na samo jednu stvar već je potrebno stvarati i druga interesovanja kao što je razvoj soft skills-a. “Da li ste videli u teretani tipa koji vežba samo bicepse - ne budite taj tip - biti najbolji developer više nije dovoljno”. Luka je često prekidan aplauzima i smehom publike i pokazao da je definitivno najbolji developer među standup komičarima i najbolji standup komičar među developerima.
Link ka prezentaciji.
Udruženje PHP Srbija se ovom prilikom zahvaljuje svim sponzorima i prijateljima (MediaInLimited, TopTal, JetBrains, GitHub, Atlassian, ActiveCollab, BrandSupply, Vivify Ideas, AdriaHost, HomePage, CyberTec Security, Code4Hire), medijskim partnerima, predavačima i posetiocima jer svi smo mi zajedno zaslužni za ovakav jedan događaj. Nadamo se da ćemo u vremenu koje nas očekuje organizovati slične događaje što češće. Da bismo u tome uspeli potrebna nam je pomoć svih vas. Ukoliko imate volju i želju da drugima prenesete svoje znanje iz PHP-a i srodnih tehnologija - javite se - udruženje vam uvek stoji na raspolaganju. Budite spremni - konferencija nas uskoro očekuje.