6.11.2007
IPC 2007 - Dan 1 in 2
Za vse tiste, ki vas zanimajo le povzetki predavanj in se vam ne da brati mojih dogodivščin izven predavanj.. poscrolajte navzdol
Nedelja, 4.10.2007
V nedeljo se je bilo potrebno zbuditi že kar zgodaj, saj se je registracija za konferenco začela že ob 8:30, prej pa je bilo potrebno iti še na zajtrk. Tako dobrega zajtrka še nisem jedel! Ogromno izbire, od raznih salam, do pohanih malih kosov piščanca (kot chicken mcnugets), itd. Res dober zajtrk, za vsakega nekaj. NH Hoteli rulz!
Takoj po zajtrku sva odšla do recepcije po torbo, majico in kartico za dostop do konference, saj sva se bala da bo česa zmanjkalo. Dobila sva vse.. v majici pa sem se pozabil slikati, trenutno nisem v sobi in se mi ne da iti nazaj gor slikati majico

Moja kartica..
..in moja torba
V nedeljo smo imeli celoten dan 1 workshop in jaz sem bil na..
Agile development
Lars Jankowfsky je predaval o tem kako poteka hiter in efektiven razvoj spletnih aplikacij v malih skupinah programerjev.
Nasvet dneva je bil:
Using your brain while developing is very helpful.
(Prevod: Uporabljati možgane medtem, ko programirate je zelo uporabno)
Pri agile developmentu je kot da bi streljali v tem vrstnem redu:
- Pripravi!
- STRELJAJ!
- Nameri.. nameri.. nameri..
In tako v resnici je, pravzaprav podjetja ponavadi ne vedo točno kaj želijo, hitro se mora nekaj narediti in nato se stvari dodajajo, odvzemajo in spreminjajo. Če bi imela podjetja za projekte perfektne dokumentacije, npr. 1000 strani za nek projekt, natančno opisano kaj mora biti na kateri strani, procesi kako točno se bo uporabljala aplikacija, itd. potem ta podjetja nebi rabila programerjev, ki smo vedno na voljo, ampak bi le poslala tak dokument v Indijo in njihovi programerji bi naredili aplikacijo10x ceneje.
Pri agile developmentu so pomembne 4 stvari:
- Komunikacija! Najbolj pomembna med vsemi je komunikacija med zaposlenimi na projektu, mora biti čimbolj enostavna.
- Keep it simple! Ne komplicirajte, vse mora biti čimbolj enostavno.
- Feedback! Vedno je potrebno dobivati sprotni odziv od naročnika projekta, ne more pričakovati, da bo nekaj hitro narejeno brez njegovega sodelovanja na tem projektu, le naročnik projekta točno ve kaj hoče.
- Courage! Potrebno je imeti jajca in povedati tistim, ki delajo narobe, da delajo narobe. Crappy developery don’t know they’re crappy.
Tukaj je primer kako si vodilni predstavljajo AD ![]()
(klikni tu za večjo sliko)
Obstaja več načinov vpeljave agile developmenta v skupino, najbolj pa Lars priporoča eXtreme Programming. Primeren je za ekipe od 2 do 12 ljudi. Več o tem si lahko preberete na: http://www.extremeprogramming.org
Za vse, ki vas zanima še več, si preberite Agile Manifesto.
Glede na to da je bila delavnica, smo dejansko naredili tudi pravi primer uporabe agile developmenta. Nekdo izmed poslušalcev se je spomnil spletne aplikacije, ki jo je želel imeti in mi smo začeli delati na tem.. več o tem pa kdaj drugič
Dogajalo se je zelo veliko, zanimivi primeri, natipkal sem 7 strani zapiskov.. mislim, da sem vseeno s tem kratkim opiskom predavanja malo pomagal vsem, ki vas zanima agile development. Kogar pa zanima še več, naj pa poklika povezave, ki sem jih dodal temu delu vnosa
Ponedeljek, 5.10.2007
Unit testing
Sebastian Bergmann je predaval o tem kako pisati php kodo, da lahko izvedete avtomatske teste ali koda deluje pravilno. Npr. naredite nek razred in nekako ga uporabljate, vendar pa lahko kdaj kdo kaj spremeni in potem aplikacija preneha delovati. Ponavadi debagiranje vzame kar nekaj časa. Temu se je možno izogniti s test driven developmentom php aplikacij.
Dejansko je tako da za vsako funkcijo oz. metodo razreda napišemo tudi test, ki testira če metoda deluje pravilno. Programirali naj bi v tem vrsten redu:
- Napišemo definicijo metode/funkcije (brez kode znotraj {})
- Napišemo test, ki bo testiral funkcijo ali deluje pravilno (če je več možnih rezultatov, napišemo več testov, saj moramo testirati ali funkcija res deluje pravilno in kako se odziva, če ji damo primerne in neprimerne parametre)
- Napišemo funkcijo (kar smo izpustili v prvem koraku)
Na koncu imamo ogromno testov, vendar lahko vedno avtomatsko testiramo celotno aplikacijo ali deluje pravilno oz. če kaj ne deluje pravilno, dobimo poročilo kje je šlo kaj narobe.
Pravzaprav je tema preobširna in samo kratek opis bi mi vzel več strani texta, tako da vam bom postregel raje s ključnimi informacijami in povezavami
Sebastian je avtor orodja, ki pomaga pri test driven developmentu in temu orodju je ime PHPUnit. Več o brezplačnem opensource orodju si lahko preberete na uradni strani: http://www.phpunit.de/
Za vse tiste, ki mislite, da se testov v brskalnikih ne da avtomatizirati, naj vam povem da se motite. Orodje Selenium je namenjeno prav temu, da testirate več brskalnikov avtomatsko in primerjate rezultat v brskalniku s tistim kar bi moralo biti tam. Tako sedaj lahko avtomatizirate tudi form submission, ajax klice skript, itd. Če pride do napake sistem naredi tudi screenshot. Deluje tudi remote, tako da lahko testirate brskalnike na windows in linux operacijskem sistemu, vse avtomatsko. Najbolj pri vsem je, da je Selenium zastonj.
Test driven development vzame okoli 15 % več časa pri razvoju, vendar je produktivnost 20 - 30 % večja in v kodi je 40 - 60 % manj bugov (od tod tudi večja produktivnost). Kvaliteta kode je seveda na višjem nivoju.
Na koncu imamo ogromen sistem, ki nam neprestano testira aplikacije in sporoča, ko se kaj pokvari. Tako zelo hitro najdemo bug, ko nekdo spremeni nekaj na eni strani sistema, kar pa vpliva na nekaj čisto drugaga. Tako debagiranje lahko vzame veliko časa, vendar če imamo narejene teste, nam sistem sporoči napako sam in takoj vemo kaj je potrebno popraviti.
Richer User Interfaces
Martin Buchmann iz Adobeja je delil z nami informacije o novih tehnologijah v njihovem podjetju. Predavanje je bilo zelo kratko in 2 novi stvari za katere bi se morali vsi web developerji zavedati so:
Martin prikazuje primer Flex aplikacije
Več si lahko preberete na povezavah in predlagam, da si ogledate primere (en od primerov so grafi na google finance)
Database and SQL (un)patterns
Lukas Smith je predaval o tem kako izboljšati strukturo baze podatkov, kaj deluje počasi in kaj hitro, razlike med različnimi storage engini, itd.
Nekaj hitrih nasvetov:
- ko delate SELECTe izberite le tiste stolpce, ki jih potrebuje, SELECT * FROM table deluje zelo zelo počasi in se ga nebi smelo nikoli uporabljati
- indexi so super, pohitrijo iskanje po bazi, sortiranje, itd. Če imate vse stolpce iz querja v indexu, baza podatkov ne bo šla gledati izvorne tabele, ampak bo že vse podatke dobila iz tabele indexov, kar je zelo hitro.
- Full-text indexi delujejo le v myisam tipu tabel
- FK (Foreign Keys - tuji ključi) so zelo uporabni, lahko dodate dogodke kaj se zgodi, ko nekdo zbriše nekaj iz parent tabele kar se nanaša na child tabelo, vendar FK delujejo le v InnoDB tabelah.
- ko izvajate performance teste uporabite resnične podatke (in ne nekih random generiranih)
- query cache je uporaben, če izvajate veliko enakih queryev
- prepared statmenti so uporabni (in hitrejši), ko izvajamo veliko podobnih queryev, kjer se spreminjajo le parametri, če pa en prepared statement uporabimo le enkrat, potem je celoten proces počasnejši
- (mysql) ON DUPLICATE KEY UPDATE je bolje kot REPLACE INTO
- LOAD DATA INFILE iz CSV datotek deluje hitreje kot če pripravimo veliko INSERT stavkov
Lukas Smith
CodeCamp @ Night
Na codecampu smo izdelovali PHP5 Extension v Cju. Predavanje je bilo malo manj zanimivo, saj sem nekako na C v teh nekaj letih odkar sem ga zadnjič uporabljal, že čisto pozabil, sem se pa spomnil kako je PHP super, ker ti tako veliko stvari poenostavi
Ta 2 tipa razvijata in testirata tudi PHP 5.3 in PHP 6!
Po predavanju je sledilo ogromno pice (nismo pojedli vsega, pa smo jo jedli 3 ure preden so jo odnesli) in pivo. Zanimivo, dejansko je bil pivo edina free pijača, očitno so v Nemčiji vajeni programerji kombinacije pizza+beer, nekako pri nas mislim da je pizza+cocacola oz. pizza+enery drink, mogoče smo pač malo manj alkoholni developerji pri nas
Mi je zelo žal, ampak pica je šla hitreje v moj želodec, kot pa hitro slikam
CodeCamp je bil zelo zanimiv in se je zavlekel pozno v noč. Prvič je tudi internet povezava delala tako kot mora, tako da sem si seveda downloadal nov Stargate Atlantis in ga z veseljem pogledal pred spanjem
O današnjem dnevu pa jutri, danes je bilo drugače, niso bili workshopi, ampak veliko enournih predavanj, kar pomeni da vas jutri tukaj čaka še več različnih tem
Sicer pa je neprecenljivo biti tu, na International PHP Conference 2007, ker lahko vprašaš vsakega od predavateljev kako bi on rešil kak tvoj problem oz. ti vedno da odgovor, ko ga kaj vprašaš. Spoznaš tudi veliko ljudi iz celotne evrope in vidiš kakšno je stanje v drugih državah, v večjih in manjših podjetjih.


Torej si se imel lepo :D.
kar zanimive teme. upam da bodo ju3 tudi.
lp
Kolk mi je žal da nisem šel :/ oz. čisto sem pozabil. Imel sem pa živ namen da grem letos :/ Tako da … Drugo leto se vidimo
a torbo lohk obdržiš ? jokeee
Igre & Jure: jp
BlazS: se mogoče vidimo
Mactron: veš na katere vse načine znamo developerji zlorabit torbe.. le kdo bi hotel potem torbo nazaj
Anze lahko bi objavil, da bos predaval na meetingu
Super poročilo!
Tadej: sem napisal
Marko: hvala, si mi dal malo matovacije da napišem še ostale dni počasi, gotovo jutri dan 3