December 14, 2010

Bez testů do vývoje nelez

Parafráza na: Bez peněz do hospody nelez 😉

Príklad z praxe: Finálny výsledok bol zle generovaný. Asi 50 krát som prešiel kód. Prešiel som všetky vrstvy. To proste nebolo možné, výsledok sa musí generovať správne!

Pozorný čitateľ iste poznamenal: Nemusí. 😛

Presne tak. Výsledok sa generoval nesprávne. A to aj napriek mojej utkvelej predstave, že všetko je napísané správne.

Tak som sa zamyslel, napísal som 5 testov, ktoré sa spustili za menej než jednu sekundu. Nad testami som pustil debugger, predebuggoval som chybný test.

Ajhľa. Bug. Miniatúrny. Fakt malý. Chýbajúci jeden riadok v štvrtej vrstve.

Preto nezabudnite písať testy a hlavne nezabudnite na to, že testy sa dajú ľahšie debuggovať než finálna aplikácia. 🙂

Ešte poznamenám, že pre vývoj na Pythonierskom Googliom AppEngine, je Intellj IDEA 10 (s Python pluginom) parádny nástroj. Pri unittestoch je potrebné správne nastaviť PYTHONPATH, a to nie len do google_appengine, ale aj do google_appengine/lib/webob.

November 29, 2010

Materiály z prednášky – Vývoj v C++

Aj tento rok som mal možnosť odprednášať jednu prednášku vrámci kurzu C++ na FI MUNI v Brne. Ďakujem Petrovi Švendovi za pozvanie.

Pribudlo niekoľko noviniek.

Predovšetkým kontinuálna integrácia, profiling a debugging. Zo zaujímavostí pribudlo Adobe Alchemy – kompilátor z C++ do ActionScript Virtual Machine2.

K dispozícii sú materiály z prednášky vo formáte PDF a ukážky vo formáte Tar.gz.

September 19, 2010

Záznam z prednášky – Když něco rozeberem, tak leda debuggerem

Záznam z mojej minuloročnej prednášky z WebExpa 2009 – Když něco rozeberem, tak leda debuggerem. Ďakujem tímu WebExpa za spracovanie záznamu.

BTW: Nezabudnite sa zúčastniť aj WebExpa 2010, ktoré sa bude konať už za pár dní.

Február 27, 2010

IntelliJ IDEA 9.0 na Linuxe nefunguje sieť. Pozor na IPv6.

Potreboval som nejaké rozumné prostredie, v ktorom je možné pohodlne vyvíjať Flex na Linuxe. Adobe Flex Builder 3 alpha 5 nie je úplne dobre použiteľný. Nefunguje tam Design view na kreslenie GUI. To by mi až tak nechýbalo. Horšia je chyba v otváraní MXML dokumentov.

Tým pádom aplikáciu, ktorá pozostáva nie len s ActionScriptu, nie je možné ladiť. Tento problém s ignorovaním supportu Flex Buildra (Flash Buildra) na Linuxe, sa dostal na prvé miesto v rebríčku najsledovanejších bugov. Predbehol dokonca aj FP-40.

Pustil som sa teda do hľadania iného nástroja. Vo fóre niekto odkazoval na IntelliJ IDEA 9.0. Stiahol som toto IDE, stiahol som Flex SDK z Opensource.adobe.com. Vytvoril som projekt. Nádherne všetko fungovalo. Niektoré vlastnosti má IDEA podstatne lepšie spracované než Eclipse. Proste Wow. A teraz prišlo na lámanie chleba.

Naštartujem debugger s náhonom na všetky 4… Nič… Waiting for AIR of Flash player to connect.

Ughm… Flex Debugger Startup Error

O 5 hodín neskôr.

Myslíte, že sa mi to podarilo rozbehať? Nie.

Tu som si všimol niečo čudné. IntelliJ IDEA sa vôbec nechcela pripojiť na sieť. Napríklad zlyhal aj update zoznamu pluginov. List of plugins was not loaded: Network is unreachable. Čudné.

A potom mi to došlo. Ten nešťastník sa pokúšal pripájať cez IPv6 na internet, čo sa mu nepodarilo.

Na základe návodu som v /etc/default/grub.conf zmenil parameter pre štart jadra a deaktivoval IPv6

GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 quiet"

a zaktualizoval Grub 2

update-grub

Po štarte systému som sa presvedčil príkazom o deaktivovanej podpore pre IPv6:

ip a | grep inet6

Žiadny riadok na výpise. Úspech, nebeží žiadne IPv6 rozhranie.

A výsledok? IntelliJ IDEA 9.0 funguje perfektne a výborne debugguje aj Flexové aplikácie.

Október 27, 2009

Zdroják.cz – napísali o mne

Rád by som sa pochválil referenciou z portálu zdrojak.cz – Střípky z WebExpo 2009.

Ďakujem za referenciu. 🙂

Október 16, 2009

WebExpo 2009 – prednáška – Když něco rozeberem, tak leda debuggerem

Materiály z prednášky sú k dispozícii. Ak sa vám prednáška páčila a niečo vám priniesla, tak je to veľmi dobre 😉 Nezabudnite hodnotiť prednášku na stránkach konferencie WebExpo 2009. Ďakujem všetkým, čo prišli. 🙂

September 22, 2009

WebExpo 2009 – prednáška o debuggovaní

16. 10. 2009 o 17:30 budem prednášať v Prahe na konferencii WebExpo 2009. Tento rok sa pozrieme na možnosti ladenia server side aplikácií a ako ich písať o kúsok kvalitnejšie. Prednáška má titul: Když něco rozeberem, tak leda debuggerem. Ctený čitateľ určite bystro sporozoval malú paralelu. 😉

Tak prídite, ocením každú mexickú vlnu počas prednášky. A ako vždy, malý bonus pre čitateľov. Pokiaľ sa za mnou zastavíte po prednáške s heslom: “Aj ja si kúpim báger.” Čaká vás malá odmena 😉

August 9, 2009

Ladenie PHP aplikácie v Eclipse

Eclipse je výborné IDE, ktoré môže ušetriť veľa času. Napríklad v prípade, že pracujete súčasne na projektoch vo viacerých jazykoch ako Java, Python, Perl, či nebodaj PHP. S konfiguráciou Eclipse a PDT pluginom som dlho nemal úspech. Vždy došlo k nejakej neočakávanej chybe. Problémy boli rôzne, nedostupný server, halušky v Eclipse. Ale to už bolo dávno. Tak som sa pustil do zisťovania, či sa v tomto smere niečo nezmenilo. Milé deti, zmenilo a k lepšiemu. 😉

Lokálne ladenie PHP aplikácie v Eclipse je brnkačka, nepotrebujete ani nainštalovaného Apache, či inú web potvoru. Postup je jednoduchý, ale zradný. Ak šliapnete mimo vyznačenej cesty, hrozí vám prepad do bažiny, kde vás zožerie nejaká chyba.

  1. stiahnite Eclipse for PHP developer (návod je písany na Eclipse 3.5)
  2. rozbaľte ho, vytvorí sa adresár eclipse (pre Windows odporúčam použiť na rozbaľovanie 7zip, natívny rozzipátor akosi nefunguje správne, aspoň mne nerozbalil všetko)
  3. doinštalujte Zend Debugger, EclipseHelpInstall new softwareAdd
  4. Name: PDT, URL: http://downloads.zend.com/pdt, Ok, vyberte Zend Debugger a pokračujte v inštalácii
  5. presvedčte sa, že po reštarte Eclipse máte zvolený správny debugger, EclipseWindowPreferencesPHPPHP Executables, mali by ste mať zvolené niečo ako PHP 5.2.9 CGI z adresára, kde je Eclipse

A hurá debuggovať. EclipseNewPHP Project – zadať Project name – Finish. Pozor! Ak dáte Next namiesto Finish, je možné, že skončíte s chybovým hlásením duplicated entry. Pravdepodobne chyba vo workflow.

Vytvorte si nový PHP súbor, napríklad pozdrav.php:

<?php
echo “Ahoj Georgik!”;
?>

Dvojkliknite na pásik panelu vľavo na riadku 2, čím nastavíte break point.

eclipse-php-break-poing

A môžeme s chuťou debuggovat. Pravý klik v editovacom okne – Debug asPHP script. Eclipse sa prepne do PHP Debug perspektívy a zastaví sa na break pointe. Ovládanie debuggera som už popisoval :-).

Takto nastavený Eclipse môžete použiť na lokálne ladenie. Nezabudnite používať vhodný framework na písanie PHP aplikácii. Skupina zubných lekárov odporúča framework Nette. 😉