flickr galerie | Twitter @Padáček | Facebook profil | Foursquare profil | LinkedIn profil

Zápisky.info


24.07. 2006

Tour de Austria 2006 (2.)

A naše cesta pokračuje. Právě by jsme měli vystupovat na nádraží v Zell am See. Zbytek dne se budeme pohybovat kolem jezera, které se nachází v údolí, a na jehož břehu město stojí. Snad vyjdou nějaké „pikantní“ fotografie.

Vložil Padacek v 12:42 | About | Přidej svůj komentář!

Tour de Austria 2006 (1.)

Pokud se České dráhy a Österreische Bundesbahnen snažily, a nevzniklo žádné zpoždění na trase Ostrava–SvinovBřeclavWien Südbahnhof, právě jsem dojel s vlakem R 203 Chopin do Vídně. Tímto mi začíná 4 denní dovolená v Rakousku s Lukim. Více se zde objeví v jejím průběhu a po mém návratu. Za hodinu nám jede spoj dál na západ do Tyrol.

Vložil Padacek v 06:03 | About | Přidej svůj komentář!

17.07. 2006

DocBook a věčné zaklínání XML

Za rok, co studuji na Vysoké škole ekonomické v Praze, si cením tří zápočtů, jež jsem získal. Prvním je předmět Základy softwarového inženýrství, kde jsem měl tu čest se setkat s Rudolfem Pecinovským a ověřit si to, co se píše v mnoha knihách a praví nejedna lidová moudrost, tj. „V jednoduchosti je krása!“ a „Dvakrát měř, jednou řež!“ (a také, že být dobrý vývojář v objektově–orientovaných jazycích není vůbec jednoduché). Zbývající dva předměty – XML – Teorie a praxe značkovacích jazyků, Využití XML při tvorbě webových aplikací v PHP – přednášel známý guru Jirka Kosek. V podstatě šlo o intenzivní kurz a poskytnutí přehledu všeho, co se jen trochu XML týká. Ještě teď se divím, kde mi jaký detail, jaká zajímavé technologie unikla …

Jednou z mnou stále nedoceněných technologií je schéma DocBook, které p. Kosek tak usilovně propaguje a sám je důkazem, že jeho používání má své výhody. Protože jsem nikdy moc neholdoval programu MS Word, i když jeho použití je tak snadné, rozhodl jsem se prozkoumat všechny možnosti, které výše zmíněný formát pro tvorbu dokumentů poskytuje. Dokonce mě napadla myšlenka vytvoření nějakého „systému pro správu obsahu“ (CMS), který by jako vstupní a interní datový formát používal právě DocBook, ale o tom později.

Pokud chcete začít a nemáte schopnosti XML guru, doporučuji stáhnout XMLmind XML editor. Ač jde o WYSIWYG editor, jeho podpora tvorby validních dokumentů ve formátech XHTML a DocBook je dobrá. Má v sobě rovněž zabudovaný nástroj pro použití XSLT transformačních stylů a sám obsahuje styly pro převod z formátu DocBook do HTML. Styly sice nejsou dokonalé, ale pro začátek to stačí. Zkušenější si je mohou upravit nebo použít externí nástroje pro transformaci s vlasními styly. Výstup do dalších formátů je podmíněn instalací dalších nástrojů jako FOP, XEP, XFC

Ale pozor! V současné době se dokončuje vývoj verze DocBook 5, která je normativně definována pomocí jazyka Relax NG. Pokud jste uživatelé verze 4, kterou primárně výše zmíněný editor podporuje, není vůbec špatné si přečíst The Transition Guide, která popisuje hlavní rozdíly (asi nejdůležitějším je zmiňované použití Relax NG a s ním umožňuje modularizace/rozšiřování, a také použití jménného prostor). Velice dobrým návodem je kniha DocBook 5: The Definitive Guide, kterou v tištěné podobě vydává nakladatelství O'Reilly, ale můžete si ji také stáhnout ve formátu HTML. V případě, že se chcete trochu více ponořit do transformace vašich dokumentů do jiných formátů, pomůže vám kniha DocBook XSL: The Complete Guide (Third Edition) volně dostupná ve formátu HTML.

A co dál? Trochu si pročtu vše, co je dostupné k tomuto formátu a začnu oprašovat vědomosti získáné ve výše zmíněných předmětech tak, abych (až na výjimky) nebyl závislý na aplikaci Word a naopak naplno využil přednosti formátu DocBook.

Poznámka: A ptáte se, co je s tím CMS? Dostal jsem nápad, který zde někdy možná popíšu, ale bohužel nemám čas na jeho realizaci (zatím). Škoda, hodilo by se to.

Vložil Padacek v 16:09 | <XML /> | Komentáře: 3 [18.07.06 11:15]

04.07. 2006

Naše další společné prázdniny

… právě začínají – tedy už začaly, v pátek 30. To jsem brzo ráno spěchal do Svitav, abych stihnul před školou moji šikovnou školačku. Pršelo :-( ale vlak mi neujel. Katka měla vskutku krásné vysvědčení, za které dostala ode mě takový malý dáreček (ale o tom až později). Taky jsme koupili dárky pro mého bráchu a bratrance, protože všichni tři slaví v posledních červencových dnech narozeniny. A gumovými bonbóny žádný prcek nepohrdne. Oběd uvařila Katka a byl moc dobrý! A, „nečekaně,“ bylo kuřecí …

Celý den jsme trávili odpočinkově, když máme na dva měsíce od školy pokoj. Střídavě jsme hráli naši oblíbenou hru Open Transport Tycoon a váleli se, což nám moc líbí. V sobotu jsme tuto zábavu doplnili o balení věcí na cestu a pobyt v Hranicích.

Cesta byla nádherná,“ říká Katka. Nadělil jsem jí totiž za vysvědčení jízdu v první třídě vlakem EC 107 Praha a navíc v tom nejlepším voze, jaký mají České dráhy v provozu (lepší než Pendolino!). Cestou jsme zdokonalovali naše kolejiště a trochu i fotili. Kupodivu jsme dorazili včas (což se mi v tomto vlaku během několika předchozích jízd nepoštěstilo).

Doma se slavily narozeniny bráchy a bratranců. Byl to zase blázinec, ale tuna LEGO® kostek mé hyperaktivní bratrančata zklidnila – jen později Katce s velkým nadšením radili, kudy a jak má vést další trasy na našem kolejišti. „Už se mě nebojí! Škoda,“ říká Katka s povzdechem.

V neděli jsme zase jen odpočívali a užívali si jeden druhého, protože, i když jsme se snažili spolu být přes školní rok co nejvíce, bylo to málo! Ach jo, ten vztah na dálku!!! Ale když je to jinak trak moc krásné!!! Mé rodiče jsme tím sice trochu štvali, přece si sebe musíme co nejvíc užít! Jen jeden malý problém se v neděli vyskytl: „Já nejím králíka,“ povídá mi Katka, když se dozvěděla, co to bude k obědu. Ale musím ji pochválit, zdolala vše! A moc jí to chutnalo.

V pondělí s námi zůstala doma už jen mamka. Ráno jí nikde nebyl konce, až brácha prozradil, že aktivně odpočívá na zahrádce … tak jsem Katce udělal další vtipnou snídani. Ne, instantní kávu už nefiltruju. Tentokrát jsem krájel nožem příliš tenké plátky chleba, tj. cca 3 až 5 mm. Ale co, aspoň není nuda!

Teď (v 17:57) jsme už zase na cestě ke Katce domů, který se postupem času stává tak trošku i mým domovem. Jedeme IC 588 Leoš Janáček. Taky docela pěkný, ale ten vagónek ze soboty byl daleko hezčí!

Kaťulinka staví kolejiště cestou do Hranic

Zítra ráno vyrážíme pro změnu do práce do Prahy a Katka jede se mnou, protože večer jdeme na firemní narozeninovou oslavu – firma Kyberie existuje již 2 roky. A ve středu se chceme trochu mrknout po Praze. Takže nás čeká pár perných dnů, ale oba věříme, že si je, jako všechno, užijeme co nejvíc a bude nám spolu dobře jako vždy!

Pepan a Kaťulinka

Vložil Padacek v 13:29 | About | Komentáře: 3 [07.07.06 22:28]

29.06. 2006

Aristo instaloval Enterprise Javu

… a dost se přitom zapotil on, i jeho notebook. Jelikož jeho stroj obsahuje klasický desktopový procesor Celeron™, tak se nějak v poslední době přehřívá a počítač se pak sám od sebe vypne (zřejmě ochrana proti kritickému přehřátí procesoru). Když včera Aristo instaloval Java™ Enterprise Edition napotřetí a počítač se mu v půlce instalace vypnul, začal uvažovat nad ďábelským řešením. A stalo se, že dnes vyskládal obsah ledničky, dal do ní počítač a bylo to!

Aristův notebook v ledničce

Sorry, ari100, tohle jsem si prostě nemohl nechat pro sebe …

Vložil Padacek v 17:28 | About | Komentáře: 6 [01.07.06 17:52]

MVC trochu hudebně

Kdo četl knihu Head First Design Patterns od nakladatelství O'Reilly a nemohl se následně dopátrat na Internetu nahrávky Model–View–Controller, tak pozor, našel jsem ji! Stahujte hned skvělý „MVC song“!!!

A tady je i text písně.

Vložil Padacek v 10:52 | Vývoj softwaru, Java | Komentáře: 2 [29.06.06 21:07]

28.06. 2006

JDeveloper – UML návrhář

Ve včerejším příspěvku jsem krátce představil nové vývojové prostředí Oracle JDeveloper 10g pro implementaci aplikací v Javě, které podporuje také technologie Java™ Enterprise Edition. Dnes se podíváme na vizuální návrhář UML diagramů.

Po krátkém shlednutí seznamu „pomocníků“ (tj. „wizardů“) lze tvrdit, že aplikace podporuje Diagram tříd (a jeho mutaci speciálně upravenou pro podporu Javy), Diagram uživatelských případů, Sekvenční diagram, Diagram aktivity. Dále podporuje také Diagram business komponent, Diagram pro databáze (pokud se nemýlím, jde o klasický ER diagram), a také EJB diagram, který však nepodporuje verzi 3.0.

Asi největší pozornost jsem věnoval tvorbě diagramu tříd. Pro ukázku jsem v něm zpracoval část návrhu druhé semestrální práce, kterou jsem psal s ari100em – slovník. Návrhář funguje tak, že entity nakreslené do schématu okamžitě vytváří a jejich změny promítá do zdrojového kódu, resp. diagramu (i když v druhém případě se občas projevil jako „mírně natvrdlý“ a změnu se podařilo do diagramu zobrazit, až když jste příslušný objekt smazali a přetáhli z nabídky Applications. Podporuje všechny rysy jazyka Java 5, tedy generické datové typy, výčtové typy, anotace (reprezentované jako rozhraní). Takto vypadá ukázkový projekt:

Oracle JDeveloper 10g – diagram tříd ukázkového projektu

Nezobrazuje se použití anotace u třídy, metody či atributu. Pro všechny diagramy platí, že aplikace okamžitě vytváří jejich fyzické reprezentace, tj. soubory *.java, apod. Jen si říkám, že tohle by se nemělo dít automaticky, protože ve chvíli, kdy tvoříte návrh (např. architekturu tříd), tak asi nechcete okamžitě přemýšlet nad detaily implementace. Trochu mi to připomíná školní editor BlueJ, který má rovněž implementovaný jednoduchý editor diaramů tříd jako základní pohled na projekt. Co je zábavné pro okolí a iritující pro uživatele, je mírně nedoladěné umísťování spojnic (šipek, čar). Občas, když se snažíte ji umístit podle vlastní představy, aby diagram nějak vypadal, nedaří se a začne se vám různě zalamovat, cestovat po celém diagramu … když jsem to včera zkoušel, docela jsem s tím pobavil Arisťáka.

Návrhář neumí vyznačit vztahy použití výčtového typu, nezvýrazňuje finální či abstraktní metody, ale jinak podporuje (snad) vše. Umí i násobné vztahy mezi třídami (třeba 1:n). Výsledný erdikt nad tímto návrhářem je, že sice má určité mouchy, ale rozhodně stojí za vyzkoušení! Pokud chcete porovnat, co obsahovaly za kód mé třídy a jak se do diagramu promítl, můžete si stáhnout zdrojové kódy projektu.

Zdrojové kódy ukázkového projektu „Slovník“

Sada souborů *.java v archivu ZIP, 2,1 kB

27.06. 2006

Krátké představení IDE JDeveloper

Přečetl jsem si krátké představení Oracle JDeveloper 10g napsané Tomášem Koubou na Java.NET weblogu a rozhodl jsem se připsat pár mých postřehů.

Po dlouhé době mám možnost se opět pořádně ponořit do programování webových aplikací, a protože PHP považuji skutečně jen za jazyk pro prototypové implementace, rozhodl jsem se naučit maximum z technologií Java Enterprise EditionJava Servlets, JavaServer Pages a JavaServer Faces. Vývojové prostředí JDeveloper práci s těmito technologiemi podporuje souborem „průvodců“ a také vizuálními návrháři, kde si navrhnete vše od layoutu stránky, její styl v CSS, doplníte jednotlivé JSF komponenty, vizuálně navrhnete konfinguraci aplikace (soubor faces-config.xml atd.

I když svižnost aplikace je o poznání menší, než u Eclipse, není to tak hrozné (a občas potěší zjištění, že jste rychlejší, než počítač :-)). Velice potěší automatické napovídání importů, kdy pak jen stisknete Alt + Enter a naimportuje se vhodná třída/rozhraní/anotace/výčtový typ, resp. nabídne seznam kandidátů (pokud jich vyhovuje více). JDeveloper napovídá parametry anotací, což se hodí zejména při programování s pomocí Java™ Persistence API.

Velmi kvalitní je editor UML diagramů tříd – škoda, že jsem jej neměl před měsícem, kdy se ve škole začínalo pracovat na semestrálních pracech do předmětu Základy softwarového inženýrtsví a připravovaly se návrhy aplikací, protože jsem v té době nic lepšího k dispozici neměl. Existující třídy, rozhraní, výčtové typy, atd. lze přidat do diagramu přetažením z okna Applications a namapují se také vztahy s ostatními třídami.

Více jsem toho zatím nevyzkoušel – už jen proto, že pořádně ani nevím, kam dříve šáhnout. Java Enterprise Edition 5 a její technologie jsou pro mě zatím z velké částí neznámé. Přesto se nevzdávám a budu pokračovat v testování.

Na následujícím screenshotu je vidět pracovní prostředí, kde se právě edituje EJB Entity Bean – zobrazeno je i napovídání parametrů anotace javax.persistence.Table.

Oracle JDeveloper 10g – editace EJB Entity Bean

Poznámky:

  1. V případě, že jste dříve vytvořili nějakou JSP/JSPX stránku a pak teprve chcete začít konfigurovat aplikaci ve faces-config.xml, můžete tyto existující stránky přidat do diagramu konfiguračního souboru přetažením z navigační komponenty Applications.
  2. Pokud máte projekt, kde používáte JSF jako pohled a kontroler, a EJB jako model, nebudete mít při základním nastavebí tyto dvě součásti projektu navzájem provázané v „buildpath“ – je nutné přidat model do buildpath pohledu/kontroleru. Kliknete pravým tlačítkem myši na složku ViewController, zvolíte Project Properties … > Dependencies a přidáte Model.jpr.
Vložil Padacek v 09:04 | Vývoj softwaru, Java | Komentář: 1 [03.11.06 14:02]

19.06. 2006

Singleton a jiné (návrhové vzory)

O tom, že používat návrhové vzory není jednoduché, jsem se v průběhu tohoto semestru přesvědčil hned několikrát. Zneužití se trestá, tedy alespoň ve škole. V praxi je to bohužel jinak … až se z toho chudáku Filemonovi udělalo špatně. Já s Ari100em válčime s jedním jediným, a to se Singletonem, který má zajistit jedinečnost instance. Otázky jsou dvě: a) jak správně Singleton implementovat; b) kdy je správné jej použít.

První utázku nám zodpověděl Rudolf Pecinovský a potvrdil i článek Double–checked locking and the Singleton pattern na IBM DeveloperWorks. Pokud si nemůžete vybrat, které z těch řešení je to správné, nabízím „střední cestu“, kterou nám nabídl právě p. Pecinovský:

public class Inst {
  private static volatile Inst instance;

  private Inst() {}

  public static Inst getInstance() {
    if (inst == null) {
      synchronized (Inst.class) {
        if (inst == null) {
          inst = new Inst();
        }
      }
    }
    return inst;
  }
}

Vysvětlení, proč je to takto správně, najdete ve výše zmíněném článku.

A řešení druhé otázky? Přečtěte si Use your singletons wisely.

Takže ať už se rozhodnete používat návrhové vzory, nebo je zatracovat, tento mějte na paměti a používejte jej správně!

Vložil Padacek v 21:19 | Vývoj softwaru, Java | Komentář: 1 [19.06.06 23:52]

13.06. 2006

Párové programování

… může být směšně jednoduché, i když není kolega vedle Vás, ale třeba 1000 km daleko. Stačí připojení k Internetu a paste your bin.

Vložil Padacek v 18:30 | WWW | Komentáře: 3 [18.06.06 13:40]

Navigace

Vyhledávání

 Vyhledávání 

Povolené operátory: AND, OR a NOT

Kategorie

Nejčtenější

Poslední komentáře

  • Jirka Hradil: Ten překlad je dobrá práce, jednoduché, srozumitelné :)....
  • honza: Diky autore, ani nevis jak moc jsi mi timhle clankem pomohl. Porad mi kod nefungoval, vymyslel jsem kdeco, ale reseni...
  • Milan: [2] Místo řádku: class SampleConfigKeyNotDefinedException extends Exception má zřejmě být řádek class SampleTemplatedNotFoundException extends Exception...
  • Josef Petrák: [1] Máš data v databázi, třeba Oracle, a chceš z nich udělat nějaký report a ten nabídnout v různých formátech...
  • havlikp: proč nepoužít excel? ;-)...

Odkazy

Statistiky návštěvnosti [TOPlist]
PageRank Checking Icon
Valid XHTML 1.0 Strict

Obsah © 2004 – 2006 Josef Petrák

Grafika © 2004 Dlouhý Webdesign

Redakční systém BLOG:CMS