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čí.
Tento problém je starý jako Windows samy. Při jakékoliv změně rozlišení obrazovky a někdy i jen tak z legrace, Windowsy sesypou ikonky na ploše. Neexistuje žádná systémem podporovaná funkce, která by si uměla pozice ikonek zapamatovat a následně obnovit. S příchodem nadupaných notebooků s vysokým rozlišením, které tu a tam napojíte na projektor nebo klasické LCD s nižším rozlišením tedy pravideně přicházíte o rozložení ikonek. Někomu to nevadí, ale já potřebuju mít svých 20 ikonek na ploše na správných místech.
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.
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 "
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:
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:
Základy a obecný úvod do TDD Rozdíly mezi 3.x a 4.
Nedávno jsme celá firma obnovili notebookový park a přešli na Windows Vista. Při zprovozňování infrastruktury jsem narazil na problém s instalací MySQL server verze 5.1. Instalace serveru jako taková proběhla bez potíží, když se ale měl nastartovat konfigurační průvodce pro zprovoznění serveru k ničemu nedošlo. V event logu windows jem narazil pouze na tuto hlášku:
Activation context generation failed for "C:\Program Files\MySQL\MySQL Server 5.1\bin\MySQLInstanceConfig.exe".Error in manifest or policy file "C:\Program Files\MySQL\MySQL Server 5.
English translation Tímto příspěvkem bych chtěl poděkovat pánům ze Sun Microsystems za uspořádání tohoto školení. Přestože mým oborem jsou výhradně server side aplikace, rád jsem si rozšířil obzory v oblasti desktopu. Z tohoto důvodu se z mé strany pravděpodobně nedočkají významné kontribuce, a proto se snažím jim námahu vrátit alespoň touto reklamou na jejich edukační program.
Celkový dojem z dvoudenního školení je veskrze pozitivní - pokud bylo záměrem dostat do nás základní principy a procesy, které jsou pro další studium platformy třeba, myslím, že se dílo podařilo (alespoň v mém případě :-) ).
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.
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.
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.
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.
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ě.
Pokud vás budou zajímat podrobnosti o některých věcech, které se v podcastu probírají, napište dotazy do diskuse pod příspěvkem.
Řada z vás si určitě řekne, co to ten Fura vytahuje za prehistorická témata. V době, kdy se už živě diskutuje o tom, co bude v Javě 1.7, rozebírá přechod z verze 1.4 na verzi 1.5. Možná vás to překvapí, ale v našem prostředí (server web aplikace), provozujeme ještě řadu instalací na verzi 1.4 a možnosti upgradu v nedohlednu. Proto je pro nás stále aktuální udržovat / vytvářet sdílené knihovny i pro 1.
Je to neuvěřitelné, ale je to právě rok od prvního příspěvku s názvem Z ilegality do legality na tomto blogu. V tomto příspěvku, bych se s vámi chtěl podělit o pár zkušeností a pár čísel z pozadí tohoto blogu a také vám poděkovat za váš zájem o něj.
Počet příspěvků: 32 = 1 příspěvek každé 2 týdny Počet unikátních návštěvníků: 1739 (listopad 2007) Počet odběratelů RSS: +/- 125 Počet přečtených příspěvků: 3093 (listopad 2007) - max.
Nedávno mě při poslechu JavaPosse zaujala zmínka o Google Collections. Jedná se o knihovnu doplňující funkcionalitu třídy Collections ze standardní Javy. Knihovna obsahuje řadu utility tříd, které zpříjemňují život s generikami v kolekcích, vytváření kolekcí v kolekcích a další manipulaci dat v kolekcích. Jelikož mě knihovna zaujala hned na první pohled, rozhodl jsem se podívat se jí na zoubek a podělit se s vámi o své zkušenosti.
Zkrácení zápisu pro vytvoření nových kolekcí s generikami Jedná se možná o drobnost, ale natolik častou, že i drobné vylepšení přinese celkové zpřehlednění zápisu a zrychlení práce.
Nedávno jsem se zamýšlel, co v mém případě činilo rozdíl mezi tím, kdy mě bavilo co jsem dělal a tím, kdy jsem pouze docházel do "práce". Co dělá člověka kreativním a co naopak pasivním. Uvědomil jsem si, že je v mém nejlepším zájmu přičinit se o to, aby v práci vzniklo kreativní prostředí, protože jenom tak budu mít pocit, že práce, kterou dělám má smysl. K tomu, aby bylo možné tento stav ovlivňovat, je však nutné rozlišit faktory, které na něj působí a na jejich základě zjistit, zda s těmito faktory dokážeme ze své pozice hnout, nebo nikoliv.
Poměrně pravidelně dojíždím z Pardubic do Hradce Králové dopravou a docela často používám server http://jizdnirady.idnes.cz/JRCis.asp na vyhledávání spojů. Nemohl jsem si nevšimnout, že nedávno tento server přešel pod správu společnosti MAFRA, a.s.. Všimnul jsem si a musím tedy kroutit hlavou.
Celý portál je kompletně zahlcený reklamou na další web projekty této společnosti a to velmi nevkusně a nepříjemě. V záplavě blikajících obrázků a linků kamsi, člověk jen obtížně nachází to, kvůli čemu na portál přišel - vyhledávací formulář.
Před tím, než jsem mohl ozkoušet maven-release-plugin, na který jsem si stěžoval v článku Co bych rád slyšel v září na CZJUG, musel jsem rozchodit přístup do našeho CVS skrze SSH s přihlašováním pomocí privátního klíče. Po zkušenostech můžu říct, že to byla práce nelehká a musím potvrdit negativní ohlasy ostatních, že v některých případech dokumentace k Mavenu (respektive k jeho konkrétním pluginům) je opravdu nedostatečná. Oříšek jsem nakonec rozlousknul díky zdrojákům a oddebugování.
Kamarád mi poslal odkaz na zajímavý článek. Jistě všichni znáte ochranu zneužití veřejně dostupných formulářů pomocí CAPTCHA. Koneckonců je většina z nás má na svých blozích po tom, co nám začaly chodit spamové komentáře k článkům. Pánové z Carnegie Mellon University však našli způsob, jak tento otravný fenomén převést na něco, co je užitečné.
Na světě existuje ohromné množství tištěné literatury, které se snaží archiváři digitalizovat, aby se zachovaly pro budoucí generace.