abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 10:44 | Zajímavý článek

    Alyssa Rosenzweig se v příspěvku na svém blogu Vulkan 1.3 na M1 za 1 měsíc rozepsala o novém Vulkan 1.3 ovladači Honeykrisp pro Apple M1 splňujícím specifikaci Khronosu. Vychází z ovladače NVK pro GPU od Nvidie. V plánu je dále rozchodit DXVK a vkd3d-proton a tím pádem Direct3D, aby na Apple M1 s Asahi Linuxem běžely hry pro Microsoft Windows.

    Ladislav Hagara | Komentářů: 0
    dnes 01:00 | Nová verze

    Byla vydána (𝕏) květnová aktualizace aneb nová verze 1.90 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Ve verzi 1.90 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 0
    dnes 00:44 | Nová verze

    Byla vydána (Mastodon, 𝕏) nová verze 2024.2 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem nových nástrojů v oficiálním oznámení.

    Ladislav Hagara | Komentářů: 0
    včera 16:44 | IT novinky

    Počítačová hra Tetris slaví 40 let. Alexej Pažitnov dokončil první hratelnou verzi 6. června 1984. Mezitím vznikla celá řada variant. Například Peklo nebo Nebe. Loni měl premiéru film Tetris.

    Ladislav Hagara | Komentářů: 10
    včera 10:44 | Nová verze

    MicroPython (Wikipedie), tj. implementace Pythonu 3 optimalizovaná pro jednočipové počítače, byl vydán ve verzi 1.23.0. V přehledu novinek je vypíchnuta podpora dynamických USB zařízení nebo nové moduly openamp, tls a vfs.

    Ladislav Hagara | Komentářů: 0
    včera 10:22 | Nová verze

    Canonical vydal Ubuntu Core 24. Představení na YouTube. Nová verze Ubuntu Core vychází z Ubuntu 24.04 LTS a podporována bude 12 let. Ubuntu Core je určeno pro IoT (internet věcí) a vestavěné systémy.

    Ladislav Hagara | Komentářů: 2
    včera 01:00 | Nová verze Ladislav Hagara | Komentářů: 0
    4.6. 19:55 | IT novinky

    Intel na veletrhu Computex 2024 představil (YouTube) mimo jiné procesory Lunar Lake a Xeon 6.

    Ladislav Hagara | Komentářů: 0
    4.6. 13:44 | IT novinky

    Na blogu Raspberry Pi byl představen Raspberry Pi AI Kit určený vlastníkům Raspberry Pi 5, kteří na něm chtějí experimentovat se světem neuronových sítí, umělé inteligence a strojového učení. Jedná se o spolupráci se společností Hailo. Cena AI Kitu je 70 dolarů.

    Ladislav Hagara | Komentářů: 0
    4.6. 13:22 | Nová verze

    Byla vydána nová verze 14.1 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    Rozcestník

    Strucna historie Swingu

    23.5.2008 12:51 | Přečteno: 1839×

    Java Swing je tak trochu osirele dite Netscapu. Dnes budi rozporuplne emoce i svych vyvojaru.

    Puvodni GUI toolkit pro Javu bylo AWT. V podstate se jednalo o C/Java rozhrani pro nativni komponenty operacniho systemu. AWT melo hromadu chyb, v podstate zpusobenych prilis casnym uvedenim. Misto opravovani AWT se ale Sun dal jinou cestou.

    Najal cloveka z firmy zabyvajici se Smalltalkem a udelal z neho sefa GUI vyvoje. Tento clovek pak protlacil Swing jako hlavni GUI toolkit v Jave. Swing byl v dobe uvedeni jeste vice bugy nez AWT a v podstate nemozny pouzivat. Na rozdil od AWT se ve Swingu o vsechno staral Java kod. To zpusobovalo jeho pomalost. Nektere veci pak nebylo z duvodu vykonu mozne delat vubec, napriklad rendering fontu.

    Je zajimave ze na vyvoji Swingu se podilele take Netscape. V dobe kdy je valcoval Microsoft se rozhodl cely browser prepsat do Javy. Swing pak mel byt GUI toolkit pro novy browser. Dalsi pozustatek je treba Rhino - javascript engine spravovany Mozillou.

    Swing byl hodne bugy a navic opravdu pomaly. To se zmenilo s Javou 1.4, kde je opravena cela rada chyb a vylepsen vykon. Java 5 pak pridava nativni zvhled pro Microsoft. Java 6 pak vylepsuje nativni vzhled, vylepsil vykon a 2D akceleraci vykreslovani. Dnes je Swing odladeny a dobre pouzitelny. Podle nekterych testu ma rychlejsi vykreslovani nez GTK...

    Zakladnim problemem Swingu je jeho slozitost. I primitivni JButton ma stovky metod. Dale existuji mnozstvi layout manageru, listeneru apod. Pro zacatecniky je tezke zacit. Trva to tak rok, nez se dostavi dobra produktivita. Na druhou stranu je jako 'svycarsky nuz premenitelny na tank'. Pri dobrem zvladnuti ma Swing velmi siroke moznosti.        

    Hodnocení: 86 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    23.5.2008 13:11 changeit | Bratislava
    Rozbalit Rozbalit vše Re: Strucna historie Swingu
    swing nie je zly, na vsetko si mozem urobil vlastny model,renderer, atd... Ale niekedy ma nebavi ze pre zobrazeie udajov v tabulke si musim spravit vlastny model,rovnako sortovanie.
    Luk avatar 23.5.2008 13:26 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Strucna historie Swingu
    Byl jsem zvyklý dělat ve Swingu. Pak jsem byl nucen začít tvořit v MFC. Bylo to jako kopanec do zubů. Čistota psaní kódu byla pryč, pořád jsem narážel na to, že to či ono nešlo. Musel jsem si vytvořit spoustu vlastních tříd, abych byl vůbec schopen rozumně vyvíjet GUI. Swing není vůbec špatný - má některé neduhy, ale nedám na něj dopustit.
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    finc avatar 23.5.2008 13:54 finc | skóre: 8 | blog: Finc | Kolín
    Rozbalit Rozbalit vše Re: Strucna historie Swingu
    Az na nektere komponenty (typu JTree a JTreeModel, implementace listu a vubec vsude, kde je "Vector") je to velice pouzitelne.

    Myslim, ze dnes jiz neni pravda, ze by java desktop nemela sanci. I kdyz se Sun spise zameruje na server-side, je videt velky pokrok v rychlosti. Driv jsem swing aplikace pouzival z nutnosti, dnes mi je jiz jedno, zda je to GTK aplikace ci java aplikace. Jsem dost zvedavej, zda JavaFX nejak zamicha timto segmentem.

    Jinak pri spojeni s NetBeans platformou je mozne tvorit skutecne kvalitni a profesionalni aplikace. Takze, kdo ma moznost, at nevaha :))
    Kdo Vam dal pravo ty lidi urazet? A kdo ti dal pravo cumet z okna, ty kr.vo!
    alblaho avatar 23.5.2008 14:32 alblaho | skóre: 17 | blog: alblog
    Rozbalit Rozbalit vše Re: Strucna historie Swingu
    Momentálně Javu na desktopu zabíjí delší start aplikací a nutnost "rozehřátí" (jit), než to začne opravdu šlapat.

    Takový Python je mnohem pomalejší, než Java. Ale Python+(GTK|Qt) je super, protože a) nativní toolkit je nativní toolkit, b) rychle to startuje.
    23.5.2008 14:03 bořek
    Rozbalit Rozbalit vše Re: Strucna historie Swingu
    Este bych dodal, ze nejvetsi vyhodou Swingu proti AWT je, ze Swing je navrhnuty podle patternu Model-View-Controler.
    alblaho avatar 23.5.2008 14:28 alblaho | skóre: 17 | blog: alblog
    Rozbalit Rozbalit vše Re: Strucna historie Swingu
    Tak SWING je v něčem rychlejší než GTK?

    Tak zaprvé, opravdu věřím, že SWING a nové verze JVM doznaly opravdového zrychlení.

    Zadruhé, GTK bývá kritizován za pomalost a v benchmarcích se třeba s Qt asi nemůže moc srovnávat.

    Ale stejně je pro mě GUI ve SWINGu subjektivně pomalejší. Podle mě za to může GC, který způsobí občasné zaseknutí (i když samotné překreslení je třeba rychlé dost). GUI to je v podstatě soft-realtime záležitost, sice opravdu nehrozí, že při nedodržení deadlinu spadne letadlo, ale hrozí, že lidské oko zachytí záškub.

    Tuhle smělou teorii podporuje i fakt, že SWT eclispu taky nějakou zázračnou rychlost nepřinesl.
    23.5.2008 14:38 Trained.Monkey | skóre: 12 | blog: monkey
    Rozbalit Rozbalit vše Re: Strucna historie Swingu
    Swing mel rychlejsi vykreslovani komponent. Uznavam ze ten test nebyl zcela ferovy, GTK v te dobe nemelo 2D akceleraci...

    Ad GC, myslim ze soucasny je ve vlastnim threadu a nezpusobuje zamrzani. Spis bych vydel ze neco delsiho se deje v AWT threadu a GUI nemuze prekreslovat.
    23.5.2008 17:09 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Strucna historie Swingu
    Ad GC, myslim ze soucasny je ve vlastnim threadu a nezpusobuje zamrzani.
    Defaultní GC je pořád jednovláknový Stop The World. Ale můžu si vybrat i paralelizovanou variantu, a dokonce i variantu, která ostatní vlákna neblokuje. Tedy na víceprocesorovém stroji, mám pocit, že jeden procesor si v takovém případě vlákno GC uzurpuje pro sebe :-)
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    alblaho avatar 23.5.2008 18:58 alblaho | skóre: 17 | blog: alblog
    Rozbalit Rozbalit vše Re: Strucna historie Swingu
    To jako JVM umí tech algoritmů několik a při startu se to dá opšnou nastavit? Já žiju v tom, že je tam jenom stop-the-world mark'n'sweep. Ono udělat paralelní GC (natož pak realitmový) asi nebude žádná prdel.

    Python má obyčejné počítání referencí a žije. A je to docela deterministické. Tedy do té doby, než se pustí detekce cyklů.
    23.5.2008 21:38 Kyosuke | skóre: 28 | blog: nalady_v_modre
    Rozbalit Rozbalit vše Re: Strucna historie Swingu
    Ono to těch parameetrů má docela dost. ;-) Jinak třeba RScheme by mělo mít deteministický GC úplně - nějak mi není jasné, jak to dělají, ale prý to nějak funguje. :-)
    24.5.2008 10:37 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Strucna historie Swingu
    Já mám radši tenhle seznam :-)
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    24.5.2008 10:36 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Strucna historie Swingu
    To jako JVM umí tech algoritmů několik a při startu se to dá opšnou nastavit? Já žiju v tom, že je tam jenom stop-the-world mark'n'sweep.
    Přesně tak. Teda ne úplně přesně, ony ty algoritmy jsou v podstatě pořád stejné, akorát si můžeš vybrat, jestli chceš jedno- nebo vícevláknový a blokující nebo neblokující ostatní vlákna. Jinak GC je generační, pro první generaci se používá něco na způsob kopírovacího algoritmu, pro druhou mark and sweep.

    No a aby toho nebylo málo, tak teď vyvíjejí ještě úplně jiný (G1).
    Ono udělat paralelní GC (natož pak realitmový) asi nebude žádná prdel.
    No to není. On i ten "neblokující" algoritmus na dvě krátké chvilky všechna ostatní vlákna zablokuje :-) A už se mi jednou stalo, že kvůli nějaké chybě v jeho implementaci JVMko spadlo.

    Jak to řeší v realtime Javě, tak to už vůbec netuším.
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    23.5.2008 15:35 Karel
    Rozbalit Rozbalit vše Re: Strucna historie Swingu
    Me se porad zda je java je v gui pro desktop tak 5 let za .NETem... viz GUI komponenty od devexpress.com a infragistics.com, to ekvivalent v jave proste nema
    23.5.2008 15:46 changeit | Bratislava
    Rozbalit Rozbalit vše Re: Strucna historie Swingu
    suhlasim, este aj stare delphi 7 bolo na desktop RAD lepsie ako java.
    23.5.2008 16:05 Karel
    Rozbalit Rozbalit vše Re: Strucna historie Swingu
    Ale proc s tim nekdo (SUN) neco nedela???
    23.5.2008 16:09 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Strucna historie Swingu
    S tím, že nějaká firma svoje komponenty neportovala i do Javy? Třeba proto, že na tu firmu nemá Sun žádné páky, a asi ty komponenty nikomu tak moc nechybí (jinak by je naprogramoval).
    23.5.2008 16:14 Karel
    Rozbalit Rozbalit vše Re: Strucna historie Swingu
    Ne, ze kdyz uz ty komponenty pro javu nejsou, ze je SUN nenapise
    23.5.2008 16:26 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Strucna historie Swingu
    Asi ty komponenty nikomu tak moc nechybí (jinak by je naprogramoval).
    23.5.2008 16:33 Karel
    Rozbalit Rozbalit vše Re: Strucna historie Swingu
    Hm, a pro .NET je tech firem asi 20, co vyviji takoveto komponenty (co znam ja....),takze je to mozna opravdu spis o nevhodnosti javy pro desktop app.... nemluve o treba GIS pro .NET: http://www.geoframeworks.com/Products/GIS/
    23.5.2008 16:39 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Strucna historie Swingu
    Co je na těch komponentách tak extra? Existují desítky nebo stovky projektů s komponentami pro Swing. GIS komponenty pro Javu také existují. Takže asi bude potřeba napsat, v čem je rozdíl – z jednoho screenshotu se opravdu nepozná, co je na té které komponentě tak úžasného.
    23.5.2008 16:45 Karel
    Rozbalit Rozbalit vše Re: Strucna historie Swingu
    no, ono se to blbe popisuje, ale obecne mi java komponenty pro deskop prijdou na 1/2 cesty, nic moc vzhled, 1/2 moznosti, proste celkova "profesionalita" tech komponent je nizsi. Pro .NET vetsiou najdu firmu, jejiz komponenty v dane oblasti jsou opravdu spicka (viz tento GIS, nebo devexpress, infragistics, telerik, xceed pro GUI), kdyz chci neco obdobneho pro javu, tak to 1/2 veci neumi a stejne funkcni app v tom budu vyvijet 3x delsi dobu... ted se nebavim o jave na serveru,kde ma opravdu sve misto, sam v ni delam v SAP Netweaver developer studiu
    23.5.2008 19:09 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Strucna historie Swingu
    Já právě nevím, co by mělo být to navíc. Existuje pár základních komponent, které představují jakési GUI vzory, které uživatelé znají a umí je ovládat. Všechny takové komponenty Swing má, a můžete je dál hodně rozšiřovat. Vymýšlet novou komponentu je dost riskantní podnik a nedaří se to ani takovým třídám jako je MS. Já netvrdím, že nemohou existovat komponenty, které pro Swing nejsou a chybí – ale vždycky, když se začne mluvit o desítkách výborných komponent, vybaví se mi desítky líbivých zbytečných komponent.

    Pak jsou samozřejmě další komponenty vzniklé poskládáním dílčích komponent, typicky kalendář. Ale i na to má Swing myslím dost komponent. Třeba MiG calendar nebo komponenty od JIDE software. Možná jsou ty .NET komponenty lepší, nedokážu to posoudit, protože jsem tenhle typ komponent kromě těch nejjednodušších (jako kalendář) nikdy nepotřeboval.
    23.5.2008 19:57 Karel
    Rozbalit Rozbalit vše Re: Strucna historie Swingu
    No prave M$ na to ma ty dalsi firmy, MS udela zakl. balik. Ja netvrdim, ze se ty komponenty v jave nedaji napsat, samo daji,ale mozna o neco hur nez pro .NET, mozna, pokud by meli mit stejny vzhled, tak zaplati dan za multiplatformnost javy v podobe rychlosti, takze vysledek je ten, ze tyto "pekne" GUI komponenty pro RAD pro javu nikdo moc nepise, pac vi, ze .NET v tomto mozna bude lepsi....
    23.5.2008 22:16 podlesh | skóre: 38 | Freiburg im Breisgau
    Rozbalit Rozbalit vše Re: Strucna historie Swingu
    Hm, a pro .NET je tech firem asi 20, co vyviji takoveto komponenty (co znam ja....),takze je to mozna opravdu spis o nevhodnosti javy pro desktop app....
    Je to především tím, že .NET je v současné době primárním prostředím pro psaní Windows aplikací. Což má vliv jak nepřímý (tj. firmy dělají komponenty), tak přímý (tj. Microsoft si s tím dáva opravdu velkou práci - je to důležitější než celý kernel Windows a Office dohromady).
    23.5.2008 16:05 Trained.Monkey | skóre: 12 | blog: monkey
    Rozbalit Rozbalit vše Re: Strucna historie Swingu
    Delam s Jide components, www.jidesoft.com. V cem konkretne zaostava?
    23.5.2008 16:30 Karel
    Rozbalit Rozbalit vše Re: Strucna historie Swingu
    No, devexpress poskytuje opravdu komplexni balik komponent pro GUI (jak pro winforms, tak pro asp.net)

    konkretne treba xtragrid: kompletni zdrojovy kod

    velice snadny design-time binding na data

    design time designer gridu, primo ve visual studiu: http://www.devexpress.com/Help/?document=XtraGrid/CustomDocument805.htm&levelup=true

    podpora master-detail podpora skinovani (pro vsechny komponenty od devexpress) velice snadno zmenite vzhled cele aplikace moderni vzhled - gradient prechody velice privetivy programovy model gridu

    a tohle vsechno plati pro dalsi komponenty od devexpress napr. zajimavy je lookupedit: http://www.devexpress.com/Help/?document=XtraEditors http://www.devexpress.com/Help/Content.aspx?help=XtraEditors&document=clsDevExpressXtraEditorsLookUpEdittopic.htm

    xtrareports, dalsi perfektni nastroj: http://www.devexpress.com/Products/NET/WinForms/XtraReports/features_allinone.xml http://www.devexpress.com/Products/NET/WinForms/XtraReports/features_layoutoptions.xml http://www.devexpress.com/Products/NET/WinForms/XtraReports/features_enduserdesigner.xml

    a tuna dalsich veci....

    Myslim, ze pokud si to poradne projdete, zjistite, jako ja, ze java v tomhle opravdu zaostava....
    Pavel Stárek avatar 24.5.2008 13:25 Pavel Stárek | skóre: 44 | blog: Tady bloguju já :-) | Kolín
    Rozbalit Rozbalit vše Re: Strucna historie Swingu
    podpora skinovani (pro vsechny komponenty od devexpress) velice snadno zmenite vzhled cele aplikace moderni vzhled - gradient prechody
    Ano, toto je opravdu "strašně důležité". Jestli by nebylo lepší se zabývat funkční stránkou aplikace, než tím, že si potencionální uživatel bude moci změnit skin v aplikaci. Nedalo mi to, ale musel jsem si rýpnout. Povšechně v Javě mě chybí (i když teď už sem v ní nic desktopového nedělal, takže nevím kam se hnul vývoj) nějaké rozumné swing komponenty s databázovým bindingem - svého času byly relativně rozumné součástí borlandího JBuilderu.
    Kdo chce, hledá způsob; kdo nechce, hledá důvod.
    24.5.2008 13:47 Karel
    Rozbalit Rozbalit vše Re: Strucna historie Swingu
    Ano, krasne jste vypichl jednu z mene dulezitych veci meho postu, s ostatnimi tedy souhlasite? ;-) (i kdyz na vzhledu app taky zalezi, podivejte treba na iPhone manii), jenze u tech komponent jde o vice veci (treba ten binding, ktery zminujete je u devexpress docela promakany, dale treba nastaveni masky editoru, podpora regexu, je toho opravdu strasne moc, co ty komponenty umi), ktere vyvoj app pote strasne zjednodusuji a ulehcuji...validace napr.. Jasne, vsechno napisu i v jave, ale takovou typickou kancl app. s napojenim na DB napisu proste v .NET 2x,3x (hruby odhad, prosim nekamenovat!!!) rychleji (a tudiz levneji), mam ji driv nez konkurence treba (coz muze rozhodovat o uspechu)
    24.5.2008 15:24 alkoholik | skóre: 40 | blog: Alkoholik
    Rozbalit Rozbalit vše Re: Strucna historie Swingu
    No a tom uz by se dalo hadat. Ja jako byvaly programator po par letech sahnul na Javu a Hibernate.
    Clovek napise par anotaci a o databazi se uz nemusi v jednoduche kancelarske aplikaci dal starat. Dokonce to mi vytvori podle trid tabulky.
    V Netbeansech je GUI pres klik klik klik a hotovo.
    A flamovat nebudu, naposledy jsem psal velke veci pred 5 lety. Adminovani je vetsi zivacka, stejne placena, tak jsem utekl.
    :P
    24.5.2008 15:30 Karel
    Rozbalit Rozbalit vše Re: Strucna historie Swingu
    Tak ja v praci taky adminuju SAP, obcas teda napisu neco ve webdynpru Java, ale tak bokem pisu nejake kancl app a prave v .NET no :) zivit se je potreba ;-) hadat se nechci, spis jen se treba dovedet, ze java je v tomto dal, nez si myslim a nez jsem objevil
    23.5.2008 16:00 Trained.Monkey | skóre: 12 | blog: monkey
    Rozbalit Rozbalit vše Re: Strucna historie Swingu
    Delam s Jide components, www.jidesoft.com. V cem konkretne zaostava?
    xkucf03 avatar 25.5.2008 21:01 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Strucna historie Swingu
    Zakladnim problemem Swingu je jeho slozitost. I primitivni JButton ma stovky metod.
    Na tom nesejde, SWING je taková knihovna, ze které si člověk vyzobává to, co zrovna potřebuje. To že má tlačítko x metod, nevadí. Nejjednodušší aplikaci prostě začneš s jedním tlačítkem, textovým polem, metodami getText(), setText() a jednou událostí.

    S těmi správci rozvržení je to trochu pravda, ale pokud člověk používá NetBeans, tak se s tím velmi rychle vyrovná.

    Pokud jde o nevýhody Swingu, tak vidím dvě: dost komponent člověk musí suplovat knihovnami třetích stran (třeba open source SwingX) a to, že pod Windows vypadá nativně, zato v Linuxu je to pořád dost mizerné, zvlášť v KDE. Ale vynahradit se to dá look&feely, takže ty aplikace pak vypadají dobře, jen trochu jinak.
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.