27. July 2010

Zrýchlenie práce s Eclipse

Pokiaľ používate Eclipse, napríklad v kombinácii s Flash Builderom, určite sa pozrite na článok na blogu DevGirl. Nájdete tam veľa užitočných rád, ako zrýchliť prácu s IDE.

Pokiaľ máte čas, určite si pozrite nasledujúce video z konferencie Max 2009 – Flash Builder 4 Advanced Tips and Tricks

30. May 2010

22. 6. stretnutie Agilného konzorcia v Brne

Dobrá správa pre priaznivcov agilných metodík. 22. 6. o 18:30 sa bude konať v Brne stretnutie Agília. Na stretnutí sa diskutuje o úspechoch a úskaliach implementácie metodík ako je SCRUM.

Účasť je bezplatná. Stačí sa len zaregistrovať.

A ešte by som rád upozornil na zaujímavý slovenský portál venovaný agilným metodikám: www.agile.sk .

19. May 2010

Štartuje Firefox čoraz pomalšie?

Typickým problémom pri štarte Firefoxu je jeho pomalší a pomalší štart.

Kde je problém? Nevedia vývojári vyvíjať?

Vývojári vyvíjajú dobre. Aspoň jadro prehliadača má porovnateľnú efektivitu ako u susedných prehliadačov. Problém prinášajú rôzne rozširujúce doplnky. Nie všetky sú úplne ideálne vytvorené. Naviac pri štarte Firefoxu sa postupne inicializujú. Stačí niekoľko chybných alokácii a než sa Firefox spustí, máte 200 MB pamäte preč.

Autorov modulov by som rád požiadal, aby si občas prečítali nejaké to odporúčanie. Tiež je vhodné požiadať o review kódu. Často stačí drobná úprava a modul má mnohonásobne menšiu pamäťovú stopu.

Ako zrýchliť štart Firefoxu z pohľadu používateľa? Skúste vypnúť moduly a sledujte, čo sa deje. Typicky jeden z modulov je nenásytný a stačí ho výpnúť.

18. May 2010

Model driven development s použitím LiveCycle

Model driven development je už na scéne nejaký ten rok. Na stránkach SE-Radio.net je možné nájsť niekoľko podcastov, ktoré sa zaoberajú touto témou.

Podstatnou črtou MDD prístupu je presun zamerania z písania kódu na tvorbu modelov. Všeobecným problémom pri napájaní klientských technológii (napríklad je Flex) na serverové technológie, je veľké množstvo duplicitnej práce, ktoré je nutné spraviť. Typicky je nutné reimplementovať na strane klienta dátové objekty a naimplementovať kvantá prístupov k operáciam. Pri rozsiahlom API je toto veľmi náročné. Naviac táto duplicita silne spomaľuje a komplikuje zmeny v API. Vývojár musí často preniesť zmeny ručne zo servera na klienta.

Model driven development sa zameriava práve na zníženie pracnosti písania kódu. Pokiaľ máme k dispozícii model, je možné z neho vygenerovať veľkú časť kódu. Časť vývojárov prestala čítať tento článok pri slovnom spojení “vygenerovať kód”.  A dobre im tak.

Teraz príde jeden trik a z cteného čitateľa, ktorý vydržal slovné spojenie “vygenerovať kód”, spravím cteného diváka.

Vážený ctený divák, nájdi si hodinku času a pozri si nasledujúce video. Nenechaj sa odradiť možno nudnejším, ale veľmi podstatným začiatkom. Pozeraj. Skutočná akcia a mágia začne keď Christopher Coenraets zapne Flash Builder a napojí ho na LiveCycle.

Upozornenie pre vývojárov a projektových manažérov: netrhajte si vlasy, stačí zastaviť video, vydýchať sa, prípadne si zabehnuť nejaký ten kilometer.

Video záznam je z konferencie Adobe Max 2009. Za link video ďakujem Tomovi Krchovi.

28. April 2010

Softvérová archeológia

Na SE-Radiu som narazil na jeden veľmi dobrý diel podcastu – Software Archeology s Daveom Thomasom, hovoril o softvérovej archeológii. Tento diel je podľa mňa esenciálny a softvérová archeológia by mala byť súčasťou vývojárskych kurzov.

Dave rozdelil softvérovú archeológiu na dve skupiny. Prvá skupina sa zaoberá výhradne len čítaním a snahám porozumieť dávno zaniknutým vývojárskym civilizáciam. Vyžaduje to trpezlivosť, znalosť jazykov a technológii.  Druhá skupina zahŕňa už aktívny prístup ku kódu a jeho modifikácie.

Softvérová archeológia je celkom nešťastne zamieňaná za prístup Indiana Jonesa, teda zahrabať sa do kódu a víťazoslávne z neho vytiahnuť artefakty. Artefakty sú dôležité. Avšak tak ako v archológii, to podstatné spočíva v snahe porozumieť kontextu a pochopiť kultúru.

Dave spomínal jednu zaujímavú techniku: zobrať zdrojový kód, otvoriť ho v editore a zmenšiť písmo na 2px. Stratí sa síce čitateľnosť, ale na povrch vypláva štruktúra kódu. Dokonca je ľahko odpozorovateľné, ktorý kód bol skopírovaný. Pri tak malom písme začnú byť zjavné opakujúce sa vzory v štruktúre kódu.

Dobrá bola aj jeho poznámka k písaniu dokumentácie. Pri archeologickej výprave je dôležité si uvedomiť, že dokumentácia klame. Často sa stane, že po zmene kódu už nie je aktualizovaná. Siahodlhé litánie v docstringu funkcie sú absolútne zbytočné, pretože sa nikto neunavuje to opravovať.

A teraz jeden veľmi zlomový postreh k písaniu dokumentácie v kóde: Pokiaľ dokumentujete ČO funkcia robí, tak je to zbytočné, tieto informácie odvodíte z kódu a z parametrov. Samozrejme krátky náčrt sa hodí, ale nemá význam popisovať všetko a podrobne. Dôležité je dokumentovať PREČO funkcia robí, to čo robí. Relatívne malý rozdiel v písaní textu, kompletné mení jeho kvalitu.

Pokiaľ neviete napísať PREČO funkcia má vôbec niečo robiť, nie je náhodou zbytočná? Nemáte náhodou nejasné zadania? Viete vôbec prečo to celé píšete? Tento prístup veľmi pripomína knihu od Simona Sineka – Start with Why.

Podľa Davida sú veľmi dôležité testy. Pretože testy, na rozdiel od dokumentácie, tak výrazne neklamú.

Pokiaľ sa niekto vydáte na púť archeológa, jednoznačne musíte byť vyzbrojený grepom. Asi najdôležitejší parameter grepu je pre archeológa -v, ktorý neguje výsledok vyhľadávania.

grep -r artefakt * | grep -v Indiana

Uvedený príklad vám pomôže násť všetky riadky so slovom artefakt, pričom tam nebude slovo Indiana.

Pokiaľ aktívne modifikujete kód, tak ako správny archeológ si najskôr nachystáte svoje prostredie a dáte kód do version control (napríklad Git).

Teraz sa môžete pustiť do modifikácii a testovania. Pokiaľ softvér vyžaduje veľa závislostí, uistite sa, že máte bootstrap skript, ktorý vám umožní OPAKOVANE vytvoriť prostredie pre archeologické pokusy. Ak takýto skript neexistuje, je vašou úlohou ho zostaviť. Vývojár/archeológ, ktorý príde po vás, vám nechá vyrobiť minimálne sochu na vašu počesť.

Kód je síce digitálny, ale hnije. Pokiaľ necháte rok stáť kód bez údržby, tak vám proste zhrdzavie.  Je veľmi dôležité si tento fakt uvedomiť. Rozbehnutie zhrdzaveného a zhnitého kódu môže stáť niekoľko dní práce. Dokonca v prípade, že neexistuje bootstrap skript, tú starú herku ani nerozbehnete.

Dave odporučil začínajúcim arechológom, aby si prešli kód interpretera pre jazyku, v ktorom píšu. Napríklad Perl, Python, Ruby alebo PHP. Takáto znalosť umožní lepšie pochopiť fungovanie a štrukturovanie kódu.

Z podcastu som vypichol tie body, ktoré ma najviac zaujali. Určite odporúčam, aby ste si vypočuli tento diel o Softvérovej arecheológii. Ušetrí vám to hodiny frustrácií z nezrozumiteľného kódu.

Niekedy to v archeológii môže dopadnúť aj takto – utekajúci developer opúšťa na svojom prskolete rútiace sa dátové centrum.

25. January 2010

Kompletný ebook – Vymyslite svoju vlastnú hru s Pythonom

Ani to nie je tak dávno, čo som tu písal o dôležitosti počítačových hier pre developerov a čuduj sa svete. Na internete je k dispozícii plná verzia elektronickej knihy Invent Your Own Computer Game with Python.

Kniha vás prevedie rôznymi oblasťami, ako napríklad detekcia kolízie objektov, sonar, grafika, animácia a zvuky. Je prehľadne spracovaná a zrozumiteľná pre laika. Je publikovaná pod licenciou Creative Commons.

Prajem príjemnú zábavu. Ak vytvoríte nejakú hru, nezabudnite poslať na ňu odkaz ;)

23. December 2009

Flixel vytvorte si hru pomocou Flexu

Flex je pekná technológia. Naprogramujete aplikáciu a funguje na všetkých bežných operačných systémoch. Dokonca pomocou Adobe AIR môžete aplikáciu preniesť na desktop.

Dlho mi chýbala nejaká rozumná jednoduchá knižnica, ktorá by sa dala použiť pri tvorbe jednoduchých hier. Niečo ako Allegro pre C++ alebo PyGame pre Python. Už som sa vzdával nádeje a tu zrazu..

Tu sa objavil Flixel. Malá knižnica, možno lepšie povedané sada zdrojových kódov. Flixel rieši všetky bežné veci, s ktorými sa vývojár stretne. Napríklad detekcia kolízie objektov, prepínanie medzi herným menu a hrou alebo animácie postavičiek.

K dispozícii je aj podrobný tutoriál, ako si postaviť hru. Jediný problém je, že je trošku zastaralý a tak záujemcom odporúčam sledovať GIT repository.

Naviac pre vývojárov hier je tu ďalšia novinka. Adobe spustilo oficiálne Flash Platform Game Technology Center.

Ak máte nejakú zaujímavú Flash/Flex hru, dajte o nej vedieť ;-)

10. December 2009

Príručka vývojárskeho evangelistu

Na WebExpe 2009 som si nenechal ujsť prednášku Christiana Heilmanna – Cleverly lazy (Jak z vás lenost může udělat lepšího vývojáře). Bola skutočne vydarená.

Christian zastáva rolu vývojárskeho evangelistu (developer evangelist) vo firme Yahoo.  Developer evangelist je dôležitá rola, ktorá umožňuje premostiť bariéry medzi technickou časťou firmy a netechnickými ľuďmi. Veľmi častým problémom je, že tieto dve strany nevedia medzi sebou komunikovať. Prípadne im kompletne uniká pointa toho, čo sa druhá strana snaží povedať. To je samozrejme veľmi drahé, neefektívne a unavujúce.

Developer evangelist je vlastne niečo ako prekladateľ. Prekladá správy z jazyka domorodcov technického kmeňa, do jazyka zákazníka a naopak. Nie je to jednoduchá úloha. Vzhľadom na rastúce množstvo zmien a technologických pokrokov, je táto rola kľúčová.

Prečo spomínam Christiana? Na webe developer evangelism je možné nájsť jeho publikáciu The Developer Evangelism Hanbook, ktorá sa zameriava práve na oblasť softvérovej evangelizácie. Jej obsah je zdarma on-line k dispozícii. Veľmi dobre sa číta. Odporúčam.

8. October 2009

Básnik alebo Vývojár?

Mal som opäť tú česť, stretnúť sa s veľmi zaujimavou kompozíciou zdrojového kódu. Bolo potrebné doplniť veľmi jednoduchú funkciu. To však samo o sebe nebolo jednoduché.

Pri pohľade na dadaisticko abstraktný zhluk tisícov písmen som zostal chvíľku vydesene sedieť a rozmýšľal som, či sa nenechať zamestnať radšej v jednotke špeciálneho nasadenia alebo v továrni na pyrotechniku. Život by bol asi podstatne bezpečnejší. Už drobná zmena jedného riadku môže spôsobiť obrovský zosuv funkcií a na povrch by mohli vyliezť noví kostlivci, ktorí sa doteraz pokojne ukrývali pod marastom.

Vravím si. Nebudem sa báť. Trochu to tu prevetráme. Zobral som Eclipse s CDT pluginom a hovorím mu: “Naformátuj ten kód, lebo sa v tom ani kompilátor nevyzná!”. Eclipse schramstol súbor. Začal pracovať. Jedno jadro procesora – plný výkon. Druhé jadro procesora – plný výkon. Kačička začína loziť po strope, tak ako postupne dochádza pamäť. Voda fialovie, tak ako dochádza swap. Vetráky zvyšujú obrátky, tak  ako sa zvyšuje teplota procesoru. Po chvíli Eclipse pustil obe jadrá a kód bol krásne naformátovaný.

Listujem kódom a hľadam jeho význam. Jednoznačne som identifikoval autorov sklon využívaniu refrénu a tajomna, ktoré dosahoval nedokumentovaním funkcií a kryptickými premennými typu: _nFlag. Ďalší zaujímavý literárny prvok bolo otváranie nových tém, bez dokončenia predchádzajúcich. Tento prvok bol dosiahnutý pomocou vnárania obrovského množstva ifov s náhodným returnom.

Nehovoriac o tom, že autor bol skutočným majstrom inotajov. Väčšina básnikov by mu mohla len závidieť. Inotaj bol často tak tajný, že som jeho význam našiel až po dvoch hodinách študovania autorovho rukopisu.

Celé dielo sa svojím rozsahom blížilo hrdinskému eposu. Menšie funkcie dosahovali len tri tisíc riadkov husto písaného kódu.

Pokiaľ sa autorovi podarilo identifikovať jeho skrytý talent, musí byť dnes jedným z najuznávanejších svetových básníkov. Pokiaľ pracuje naďalej ako vývojár, tak je to jeho škoda, lebo mohol zarobiť podstatne viac.

A ako to celé dopadlo? Najskôr som sa pokúsil použiť obojručný debugger, proti ktorému sa kód úspešne bránil využitím forkovania a spúšťaním nových procesov. Nezostávalo nič iné, len porozumieť celému dielu a s presnosťou chirurga odstraňovať kusy mŕtveho kódu a ten živý kód reimplentovať na lepšie miesto.

Nakoniec to všetko otestovať pomocou BOOSTu a švajčiarského nožíka medzi sieťovými nástrojmi: netcat.

  • Babel fish

      Translate from:

      Translate to:

  • Where’s the fish?

  • Starfish

  • Fish for you

  • Further info

  • Badges

  • Video channel

  • Learning

    Grow your brain.
  • Tags

  • Topics

  •  

    May 2012
    M T W T F S S
    « Apr    
     123456
    78910111213
    14151617181920
    21222324252627
    28293031  
  • Comments