Archív kategorie 'Programování'

Vášniví uživatelé

Wednesday, May 21st, 2008

Nedávno jsem poslouchal záznam z přednášky, kterou měla Kathy Sierra na konferenci OOPSLA v roce 2007. Kathy Sierru pravděpodobně budete znát podle její práce - je
spoluautorkou řady knih o Javě ze série Head First
. Myslím, že mezi Javisty nechodí mnoho těch, kteří by o Head First nikdy neslyšeli a mnoho z nás se podle nich připravovalo na rozličné certifikace. To co je na sérii Head First výjimečné je přístup k prezentaci informací - jistě mi dáte za pravdu, když řeknu, že tato forma je, byť zpočátku vypadá tak trochu dětinsky, velmi přitažlivá a velmi dobře se z ní učí.

Dohaduji se, že zmíněná přednáška byla jedna z posledních, které Kathy uskutečnila, jelikož posléze jí bylo na jejím vlastním blogu vyhrožováno smrtí. Po této odsouzeníhodné záležitosti se Kathy stáhla do soukromí a přestala vydávat nové příspěvky. Je to velká škoda pro komunitu, ale přesto za sebou zanechala plno článků, knih a myšlenek, ze který lze čerpat i dnes.

(more…)

Podcast: Záznam z přednášky Automatické testování v praxi

Friday, May 9th, 2008

Na dovolené se mi podařilo vyšetřit čas na sestříhání záznamu z přednášky Automatické testování v praxi, která se konala dne 21.4.2008 na Univerzitě Hradec Králové. Na přednášce se sešlo přes 30 posluchačů převážně z řad studentů univerzity. Přesto že jsem původně anoncoval, že se pokusím zabrousit i do pokročilejších témat, jako jsou testovací patterny a antipatterny, nástroje apod. musel jsem svůj záměr přehodnotit. V takovém případě bych se s přednášením dostal na dobré tři hodiny, přičemž na přednášku bylo vyhrazeno pouze minut devadesát. Přednáška se tedy zaměřuje na základy testování a bude pro Vás nejzajímavější tehdy, pokud s testováním teprve začínáte. S Tomášem Kozlem (garant za UHK) jsme se tedy předběžně dohodli na “pokračovací” přednášce na podzim tohoto roku, kde bychom se soustředili pouze na tato pokročilejší témata. Pokud tedy vše půjde dobře, dočká se tento “podcast” druhé části za několik málo měsíců.

(more…)

PermGenSpace problem? No problem!

Friday, April 11th, 2008

Tento článek vyšel na našem firemním intranetu. Jelikož je jeho obsah velmi přínosný ve své jednoduchosti a agregace poznatků z řady roztříštěných zdrojů po internetu, požádal jsem autora Michala France o svolení k jeho zveřejnění. Jak to dopadlo, můžete vytušit už sami. Výsledkem je že se s Vámi mohu podělit o zkušenosti s (vy)řešením problémů OutOfMemory v oblasti PermGenSpace při redeploy našich aplikací v aplikačních kontejnerech. Před aplikací těchto znalostí jsme vcelku pravidelně po dvou “redeployích” restartovali celý server, protože docházela PermGenSpace. V současném stavu aplikační server žije i po několika desítkách redeployů.

A nyní slíbený článek

Každého programátora to jednou čeká. Jeho aplikace začne padat na OutOfMemoryError. Dá se krčit rameny se slovy “já vážně nevím čím to je”, nebo s tím něco udělat.

(more…)

Blog v pavučině - zajímavůstky o JavaScriptu

Friday, April 11th, 2008

V odkazech na sledované blogy se mi objevil Blog v pavučině, který píše můj kolega z web designerského oddělení Forrestu. Blog je zaměřen na JavaScript a webdesign, což je oblast, kterou možná jako Javisti orientovaní na web nemáme úplně rádi, ale je pro naši práci nezbytně potřeba (i když s nástupem jQuery se můj pohled na JavaScript radikálně změnil :-) ). Vypíchnu jen pár jeho článků a názor si udělejte sami:

Přeji příjemné čtení.

Pozvánka na přednášku na Univerzitě Hradec králové - Automatické testování v praxi

Wednesday, April 2nd, 2008

Rád bych vás touto cestou pozval na přednášku, kterou pořádá Univerzita Hradec Králové ve spolupráci s naší firmou při příležitosti vyhlášení vítězů soutěže Best Programmer. Na zmíněné přednášce budu rozebírat zkušenosti s automatickým testováním při vývoji web aplikací. Přednáška bude zaměřena především na vývojáře s malou zkušeností s automatickými testy, ale rád bych se dostal i k pokročilejším tématům jako jsou:

Plakát

  • Základy a obecný úvod do TDD
  • Rozdíly mezi 3.x a 4.x řadou jUnitu
  • Pozitivní a negativní dopady na proces vývoje
  • Techniky testování (patterns, antipatterns, code smell)
    • Business layer
    • Data layer
    • User interface layer
    • řešení problémových oblastí (SMTP, java.util.Date)
  • Nástroje
    • IntelliJ Idea, NetBeans
    • TeamCity
    • Reporting
    • Ant, Maven

Kde: Univerzita Hradec Králové - Fakulta informatiky a managementu
Místnost: B9
Kdy: 21. dubna 2008, od 10:00 do 11:30
Garant: Tomáš Kozel (UHK)
Přednášející: Jan Novotný (FG Forrest)

Vzhledem k tomu, že přednáška je především určena studentům UHK a tudíž bude již část místnosti obsazená studenty, rád bych vás požádal, abyste mi, pokud plánujete na přednášku přijít, napsali jen krátce počet osob na můj email ‘novotnaci[zavináč]gmail.com’.

Přednášku bych rád zaznamenal a zveřejnil na blogu jako podcast. Nicméně plánuji i živá dema, která ve formě audia nebudou příliš srozumitelná. Navíc jsem doposud nesehnal rozumnější nahrávací zařízení než je můj Ericson, takže výsledná kvalita může být poměrně špatná. Slyšet přednášku na živo je prostě jistota.

Update k 9.5.2008 : Na blogu byl zveřejněn audio záznam z této přednášky.

Spring AOP - Pozor na AspectJExpressionPointcut!

Friday, March 7th, 2008

Tento týden jsem řešil problém s nedostatkem paměti při spouštění testů jednoho projektu. Pro běh testů nestačilo výchozích 64MB paměti Javy na heapu, což mi připadlo v porovnání s velikostí projektu podezřelé. Začal jsem profilovat a jelikož mne výsledky poněkud překvapily, chci se s Vámi o ně v tomto článku podělit.

Hned na úvod řeknu, že jádrem problému byla třída AspectJExpressionPointcut. Tato třída je ve Spring dokumentaci zmiňována hned několikrát, velmi jednoduše se používá a ze všech dostupných materiálů jsem dospěl k názoru, že se jedná o doporučovaný a běžně používaný standard.

(more…)

Acegi Captcha způsob integrace a možnosti použití

Friday, February 29th, 2008

V tomto příspěvku se nechci věnovat popisu zprovoznění jCaptchy v bezpečnostní frameworku Acegi Security, jelikož toto je velmi dobře popsáno již v existujícím článku na MoroSystems weblogu. Spíš se chci zaobírat způsobem, jakým se k integraci do Acegi frameworku autoři postavili. Tento způsob mi přijde totiž přinejmenším neobvyklý. Zachovává sice zavedené principy Acegi, ale ten neodpovídá mým (ale řekl bych vcelku přirozeným) představám o tom, jak by měla captcha ve web strákách fungovat.

Princip práce s captchou v Acegi je podobný principu standardního přihlašování. Acegi při přístupu na “chráněné url” kontroluje ověření uživatele v SecurityContextu a pokud uživatel není ověřen, přesměruje tok aplikace na přihlašovací formulář nebo v případě captchy na formulář obsahující obrázek a textové pole pro vepsání rozpoznané captchy. Pokud řešíme přihlašování, je tento způsob přirozený - v případě captchy však očekávám, že captcha bude rovnou součástí formuláře, který je “hlídán”. Tak ale integrace jCaptchy v Acegi ve svém základu nefunguje.

Pokud Vám tento způsob připadne taky trochu podivný a zajímá Vás, jak si s tím poradit, čtěte dál.

(more…)

Ještě pořád se držíte JDK, když je po ruce Joda Time?

Wednesday, February 13th, 2008

Po delší době jsem měl zase čas podívat se na zoubek v mém TODO listu. Tentokrát jsem si vzal na paškál poměrně malou knihovnu s názvem Joda Time. Cílem této knihovny je reimplementace Java API pro práci s datumy a časem. Každý z nás, kdo pracuje s Javou nějaký ten čas, se tu a tam potýká s tímto těžkopádným API. Joda Time přinesl poměrně hodně nových myšlenek a stal se základem pro JSR 310, které by mělo být součástí nové Javy 7. Často na toto téma naráží i pánové z Java Posse. Co je tedy na knihovně tak úžasného? Čtěte dál …

(more…)

Running AJAX with jQuery in Stripes Framework

Friday, January 25th, 2008
Though most of articles at this blog are written in my native language - Czech, this one will be different. I have chosen an English to address wider community of Stripes developers - I think there would’nt be enough readers in our beautiful small country. So, please, excuse possible errors and mistakes in the article, I will try my best :-) .

Common introduction to AJAX in Stripes

Stripes framework offers basic but sufficient support for AJAX that is covered with article at official web site. Article recommends using commonly known PrototypeJS AJAX client side library. On the server side, request is processed by Stripes themselves by standard population and execution as any other http request (that means that data from client to server are sent as a standard URL encoded parameters). What you get is correctly populated and validated action bean - and until now you haven’t even recognize, that request is made by JavaScript on the client side not even you have to care of it. You can access session, exchange cookies and so on.

(more…)

Podcast: Jak se žije českému vývojáři v Dublinu?

Thursday, January 10th, 2008

Po necelých třech letech v Irsku se zpět do Čech vrací můj kamarád Pavel Jetenský a tak jsem se chopil příležitosti a vyzpovídal jsem ho z jeho zážitků. Z našeho rozhovoru vznikl podcast, ve kterém se dozvíte něco málo o přestěhování se do Irska, hledání práce tam, cestování, technologiích, kontraktování a tak podobně.

(more…)