Re: Myšlenka - Přednáška na téma Open Office.org

2008-09-23 Tema obsahu Jan Dvořák

Jsem rozhodně pro.

Honza Dvořák

Robert Vojta napsal:

Dobrý den přeji,

když tady tak čtu o problémech s Excelem, zpracováním dokumentů ve
formátu DOC, XLS, ... tak mě napadlo, že bych mohl připravit přednášku
o kancelářském balíku OpenOffice.org a jeho možnostech. Nešlo by o
přednášku pro koncové uživatele a použití OO.o na desktopu, ale o
přednášku na téma použití OO.o na zpracování dokumentů (tisk,
konverze, tvorba reportů, ...), integraci do stávajících informačních
systémů, použití OO.o na serveru jako vzdálenou službu, ...

My takto používáme OpenOffice.org na zpracování a generování dokumentů
denně. Používáme ho vzdáleně jako službu na serveru pro webové
aplikace, lokálně pro desktopové aplikace, atd.

Než to zkusím navrhnout, tak bych se chtěl zeptat, zda-li by o to byl
zájem? Mohlo by se to případně zvrhnout v nějaký workshop, kde si
zkusíme určitou funkčnost naimplementovat from scratch.

  




oracli paranoia

2008-09-05 Tema obsahu Jan Dvořák

Ahoj,

bavim se prenasenim dat z jedne databaze do druhe pomoci javove 
pumpicky. Pri pokusu o prenos blobu z mezi dvema Oracly 10gR2 jsem se 
dockal nasledujici perly:


java.lang.ClassCastException: oracle.sql.BLOB cannot be cast to 
oracle.sql.BLOB


To vylitne v miste, kde se snazim prave takovy cast udelat. Netusite, 
jak takovahle vec muze vznikat? Pumpicka bezi z prikazove radky, zadny 
kontejner. Databazova pripojeni vznikaji pres DriverManager.


Honza Dvorak
MathAn Praha


Re: oracli paranoia

2008-09-05 Tema obsahu Jan Dvořák
Ahoj, diky, to bude ono. Mel jsem za to, ze oracli jdbc driver se sam o 
sobe chova jako obycejna, slusna javova knihovna. Evidentne jsem 
podcenil jeho celkovou entrprajzovost.


Honza

Ladislav Kulhanek napsal:

Ahoj. Muze to byt zpusobeno classloadery. Kazda trida je jednoznacne
urcena svym celym jmenem (napr. java.lang.String) a classloaderm ktery
ji zavedl. Pokud je jedna instance typu oracle.sql.BLOB a zavedl ji
classloadrer1 a chces ji prevest na oracle.sql.BLOB kterou zavedl
classloader2, vyhodi to vyjimku.

2008/9/5 Jan Dvořák [EMAIL PROTECTED]:
  

Ahoj,

bavim se prenasenim dat z jedne databaze do druhe pomoci javove pumpicky.
Pri pokusu o prenos blobu z mezi dvema Oracly 10gR2 jsem se dockal
nasledujici perly:

java.lang.ClassCastException: oracle.sql.BLOB cannot be cast to
oracle.sql.BLOB

To vylitne v miste, kde se snazim prave takovy cast udelat. Netusite, jak
takovahle vec muze vznikat? Pumpicka bezi z prikazove radky, zadny
kontejner. Databazova pripojeni vznikaji pres DriverManager.

Honza Dvorak
MathAn Praha






Re: oracli paranoia

2008-09-05 Tema obsahu Jan Dvořák
Zadny kontejner, zadny framework, proste jenom javova utilitka spustena 
z prikazove radky. Ale ty ruzne classloadery vypadaji jako vysvetleni.


Honza


Jakub Podlesak napsal:

On Fri, Sep 05, 2008 at 03:19:16PM +0200, Jan Dvořák wrote:
  
Tipnul bych si na nejaky problem s pouzitim vice class loaderu (pouzivate napr. OSGi?)


~Jakub
  


Re: Problem s citanim OutputStream-u spojenia s HTTP serverom.

2008-03-14 Tema obsahu Jan Dvořák

Jozef Babjak napsal:

Implementacia v SocketInputStream je podla vsetkeho neblokujuca.
  
Blokuje = ceka, dokud nemuze vratit aspon jeden bajt. Neni pravda, ze 
ceka, dokud nenaplni cely buffer.


Honza Dvorak

P.S.
Kdybych chtel ziskat celou odpoved serveru jako pole bajtu, prekopiroval 
bych si obsah InputStreamu do ByteArrayOutputStreamu a z nej si to pole 
vzal. Usetril bych si tak spoustu starosti se sestavovanim poli bajtu 
dohromady...


Re: JWS: kontrola nove verze pri otevirani souboru s asociovanou priponou

2008-02-05 Tema obsahu Jan Dvořák

Ahoj,

tak problém se rozřešil. Právě pro tyto situace má kořenový element 
jnlp atribut href, ve kterém se říká cesta k tomuto souboru JNLP. Když 
jsme atribut přidali, aktualizace začaly fungovat.


Honza Dvořák
MathAn Praha


Jan Dvořák napsal:

Ahoj,

zdá se mi, že Java Web Start kontroluje aktuálnost verze aplikace na 
serveru pouze při otevření souboru JNLP, ale už ne při otevírání 
souboru, který je přes příponu s touto aplikací asociován.
Nevíte, zda by to nešlo nějak nastavit? Zajímavé kusy souboru jnlp viz 
níže. Vyžadujeme Javu 6.0.


Honza Dvořák
MathAn Praha

?xml version=1.0 encoding=UTF-8?
jnlp spec=1.5+ codebase=$$context
   information
   titleRVV Vklap/title
   vendorMathAn Praha, s.r.o./vendor
   descriptionSada nátrojů pro podporu sběru dat do IS 
VaV/description

   homepage href=http://aplikace.isvav.cvut.cz/vklap//
   icon href=images/icon.gif/
   icon kind=splash href=images/splash.jpg/
   offline-allowed/
   association extensions=vav 
mime-type=application/vnd.mathan.vklap/

   /information
   security
   all-permissions/
   /security
   resources
   j2se version=1.6+ initial-heap-size=120m 
max-heap-size=200m/

   property name=hsqldb.files_readonly value=true/
   jar href=main/cert_MATHANP2/main.jar 
version=1.3.9_20080131174919/

   jar href=lib/cert_MATHANP2/commons-lang.jar version=2.1/
   jar href=lib/cert_MATHANP2/commons-codec.jar version=1.3/
   !-- ... --
   /resources
   application-desc main-class=cz.mathan.vklap.EditorMain
   argument--suppress_next_year/argument
   /application-desc
/jnlp





JWS: kontrola nove verze pri otevirani souboru s asociovanou priponou

2008-02-01 Tema obsahu Jan Dvořák

Ahoj,

zdá se mi, že Java Web Start kontroluje aktuálnost verze aplikace na 
serveru pouze při otevření souboru JNLP, ale už ne při otevírání 
souboru, který je přes příponu s touto aplikací asociován.
Nevíte, zda by to nešlo nějak nastavit? Zajímavé kusy souboru jnlp viz 
níže. Vyžadujeme Javu 6.0.


Honza Dvořák
MathAn Praha

?xml version=1.0 encoding=UTF-8?
jnlp spec=1.5+ codebase=$$context
   information
   titleRVV Vklap/title
   vendorMathAn Praha, s.r.o./vendor
   descriptionSada nátrojů pro podporu sběru dat do IS 
VaV/description

   homepage href=http://aplikace.isvav.cvut.cz/vklap//
   icon href=images/icon.gif/
   icon kind=splash href=images/splash.jpg/
   offline-allowed/
   association extensions=vav 
mime-type=application/vnd.mathan.vklap/

   /information
   security
   all-permissions/
   /security
   resources
   j2se version=1.6+ initial-heap-size=120m max-heap-size=200m/
   property name=hsqldb.files_readonly value=true/
   jar href=main/cert_MATHANP2/main.jar 
version=1.3.9_20080131174919/

   jar href=lib/cert_MATHANP2/commons-lang.jar version=2.1/
   jar href=lib/cert_MATHANP2/commons-codec.jar version=1.3/
   !-- ... --
   /resources
   application-desc main-class=cz.mathan.vklap.EditorMain
   argument--suppress_next_year/argument
   /application-desc
/jnlp



Verzovani konfigurace projektu [bylo: Eclipse a NetBeans]

2007-12-11 Tema obsahu Jan Dvořák

Josef Petrák - KYBERIE napsal:

[...] V závěru, když soubory odesíláte do
CVS/SVN/jiné repository, tak přece odesíláte pouze zdrojáky, ne nastavení
IDE. Tím pádem nikdo z týmu nepozná, jestli jste to psal v Eclipse,
NetBeans, nebo poznámkovém bloku ...
  


My si v SVN schováváme i eclipsí .project, .classpath, adresář .settings 
s informacemi o kódování textových souborů i všechny jen trochu užitečné 
launchery (ty dáváme do adresáře .eclipse). I knihovny máme ve 
verzovacím systému, namísto různě rozesetých někde na disku. Výrazně se 
tím omezí čas strávený konfigurací prostředí do stejného tvaru, jako u 
kolegy. Pracovali jsme i na projektech, které tyto informace nesdílely, 
a z tohoto hlediska to bylo utrpení.


Ve verzovacím systému mohou být uloženy konfigurace i více vývojových 
prostředí - za předpokladu, že soubory s konfiguracemi se v každém 
prostředí jmenují jinak a že IDE nestrká nos do těch souborů, kterým 
nerozumí. Je pak sice třeba například doplňovat nově přidanou knihovnu 
do cesty projektu pro každé vývojové prostředí, ale to je pořád méně 
práce, než kdyby to musel dělat každý vývojář.


Takže si myslím, že verzování konfigurace projektu je velmi vhodné. 
Vývojářům tím odpadne část překážek, přes které se musí prodrat, aby se 
dostali k vlastnímu programování. Může to být zásadní rozdíl při práci z 
domova, která se zhusta odehrává v časech, kdy nelze spoléhat na 
pohotovou pomoc ostatních členů týmu.


Jak to děláte u vás?

Honza Dvořák
MathAn Praha


Vyroba sestavy v Excelu

2007-12-10 Tema obsahu Jan Dvořák

Ahoj,

zkoumam moznosti, jak v javove aplikaci na serveru vyrabet sestavy, 
ktere by si uzivatele stahli a otevreli v Excelu. Zatim sice jen 
tabulky, ale nepochybuji o tom, ze zacnou chtit i grafiky. Rysuji se mi 
tri mozne pristupy:


1. Jakarta POI - rucne si sestavu sestavovat v javovem kodu. To vypada 
jako dost pracne, ale zase je vcelku dobra kontrola nad tim, co vznikne.


2. Eclipse BIRT - klikaci navrhar sestav. Od verze 2.2 udajne umi 
delat vystupy do formatu XLS. Akorat se mi nedari najit, jak se to dela. :-(


3. zapojit OpenOffice v bezhlavem (headless) rezimu - mit pripraveny 
sesit s dotazy, ten programove otevrit, dat mu pokyn, at se obnovi z 
databaze, posleze jej ulozit a odeslat.


Ruznych druhu sestav budou do budoucna desitky. Mnozina uzivatelu je 
omezena, rychlost generovani neni prilis vyznamnym kriteriem. Chtel bych 
vsak minimalizovat slozitost udrzby.


Co si o tom myslite?

Honza


Hleda se sefredaktor pro java.cz

2007-09-21 Tema obsahu Jan Dvořák

Ahoj,

portal java.cz se rozrusta a hleda sefredaktora, inzerat viz 
http://www.java.cz/detail.do?articleId=7684 .
Pokud byste o nekom vedeli ci sami meli zajem, ozvete se prosim na 
[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] .


Honza Dvorak
MathAn Praha


Re: kodovani cestiny v ruznych jazykovych sadach

2007-09-20 Tema obsahu Jan Dvořák
Ano, knihovnu ICU4J od IBM pouzivame pro odstranovani diakritiky s 
uspechem uz par let.


Honza Dvorak
MathAn Praha


Josef Cacek napsal:

Ahojte,

On 9/19/07, Petr Burdik [EMAIL PROTECTED] wrote:
  

Jeste jednou moc diky. to odstraneni diakritiky nijak moc nespecha, ale
mrknu urcite.



Zkuste mrknout tady:
http://www.rgagnon.com/javadetails/java-0456.html

  

Pekny den
Pet



-- pepa cacek
  




kontextova napoveda k nasim antovym taskum v eclipsu

2007-09-13 Tema obsahu Jan Dvořák

Zdar,

nevite nahodou, jak zpusobit, ze eclipse bude zobrazovat kontextovou 
napovedu k nasim rozsirujicim antovym taskum?

Pripadne by rovnou ty atributy nabizel?

Honza Dvorak
MathAn Praha


Re: copy paste adresare v eclipse(pluginem subclipse), jez je v subversion

2007-09-02 Tema obsahu Jan Dvořák

Ahoj Tomasi,

s nasim problemem nejsme sami. Tohle jsem nasel, kdyz jsem hledal neco 
jineho: 
http://www.danlance.co.uk/index.cfm/2007/8/17/Do-not-copy-SVN-working-folders-to-another-location-in-project 
.
Zda se, ze pro uplne reseni se bude muset ponekud hrabnout do par 
zakladnich veci v eclipsu, jako je treba podpora copy-paste.


Honza


Tomáš Chudlarský napsal:

Ahoj,
presli jsme ve firme ze cvs na subverion.

Zahy jsme narazili na nasledujici problem, pokud v eclipse (s pluginem 
subclipse 1.2.3) zkopirujeme adresar (copy  paste), tak ze vytvori 
kopie i podadresaru .svn . To nasledne vede k tomu, ze nove soubory 
komitujeme do puvodnich v svn, coz neni dobre.


1)
Nenarazili jste nekdo na tento problem a jak ho resite?

Nas nenapada nic lepsiho nez .svn rucne mazat, coz neni moc pohodlne.
Nebo vubec copypaste nepouzivat. I kdyz nejsme nejsme zastanci 
duplikace kodu, nekdy preci jen muze byt ucelne neco zkopirovat a 
upravit.



2) Jake jine pluginy nez subclipse pouzivate pro subverion a jak jste 
s nimi spokojeni?


Diky
Tomas




Re: drill-down tabulky

2007-08-27 Tema obsahu Jan Dvořák

Dobrý den,

myslím, že kromě vlastních reportů musíte mít ve vaší databázi nějak 
popsanou i navigaci mezi nimi.
Při přechodu k novému reportu musíte zjistit, které parametry už znáte z 
předchozího, a které je potřeba vykoukat z pozice buňky, na kterou bylo 
kliknuto.
Potřebujete tedy u každého dotazu vědět, které sloupce z jeho výsledku 
tvoří klíč. To odnikud nevytáhnete, musíte to mít zapsané u své definice 
reportu.


Pokud dáte uživateli možnost přechodu jen k jednomu dalšímu reportu, 
máte situaci snažší.
Pokud však zjistíte, že drill down může jít různými směry (a velmi by mě 
překvapilo, kdyby tomu tak nebylo),
tak musíte uživatele ještě nechat vybrat, podle čeho si chce report 
nechat rozpadnout.


Honza Dvořák
MathAn Praha


Vladimír Náprstek napsal:

Dobrý den,
pracuji na jednom reportovacím nástroji a nyní potřebuji trochu poradit.
Nástroj je obecný s tím, že předem netuším, jaká data mi z DB polezou
(report je definovaný SQL dotazem, uloženým v DB). Na začátku uživatel
zadá kritéria (cca 5 předem daných a společných pro všechny reporty).
Zobrazí se sumární tabulka. A teď je třeba se dostat na detailní pohled.
Uživatel může kliknout na libovolné číslo v tabulce a detailní pohled
zobrazí data. Problém je v tom, že detail přebírá nejen původní
parametry, ale omezení vzniká navíc na základě vybraného řádku i
sloupce. A tady nevím jak problém uchopit. Řádek může být definován
vícero hodnotami v prvních sloupcích (závisí na konkrétním reportu) a
který detailní report bude použit zase závisí na sloupci, ve kterém je
číslo, na které uživatel kliknul.

Možná to zní zmateně, tak raději přidám příklad. Mějme report, kde jsou
sloupce: rok, stát a následují nějaké prodávané komodity. Uživatel si
klikne na nějaké číslo a detailní report mu ukáže data pro rok a stát
(první dva sloupce) a danou komoditu (sloupec, ve kterém kliknul na
číslo). A tohle musím nějak zajistit pro libovolný report (není dáno,
kolik úvodních sloupců je klíčových) a navíc každý report má jiný
detail).

Máte nějaký nápad, jak toto filozoficky uchopit?

  




Re: locales v XSLT transformaci

2007-02-14 Tema obsahu Jan Dvořák

Tomas Zverina napsal:

No nic. Nejaky workaround se udela, ale koukam na to jako blazen - jak
to, ze nejde tak trivialni a pomerne dulezita vec udelat ciste? Proc tam
ten format davali, kdyz se neda pouzit?
Tipoval bych, ze to je kvuli jinym programovacim jazykum, jako C++ a 
podobne, kde Locale neni nebo je nejak jinak. Efekt nejnizsiho 
spolecneho zakladu. Je to asi podobne jako W3C DOM - ten taky v Jave 
pusobi jako mamut v porcelanu, protoze si dela kolekce po svem.


Mozne reseni tveho problemu:
V XSLT cisla neformatovat, pouze oznacit - napr. specialnim elementem z 
nejakeho tveho namespace. Z transformace bude vystupem SAXResult, ktery 
napojis na specialni SAXFilter, ktery oznacena cisla naformatuje podle 
libosti a oznaceni znici. Pokud potrebujes serializovat do streamu, pak 
muzes na vystup napojit jeste identickou transformaci (new 
Transformer()), ktere das za vystup StreamResult. Jak SAXFilter, tak 
identicka transformace obvykle bezi svizne.


Honza


Re: databáze

2007-02-07 Tema obsahu Jan Dvořák

Dobrý den,

s úspěchem používáme hsqldb. Java DB (dříve Derby, předtím Cloudscape, 
...) je určitě mocnější, zároveň však je větší (data i jar, ale ten s 
1.6 to netřeba řešit, leda byste narazili na bugu) a nabíhá pomaleji - 
vyzkoušeno na našem specifickém případě.


Data ve vaší aplikaci budou ležet někde na uživatelově disku? Nebo budou 
read-only a distribuována s aplikací? Nebude pár uživatelů chtít stejná 
data sdílet?


Honza Dvořák
MathAn Praha


Pavel Nemec napsal:

Dobrý den,
pro jeden svůj projekt bych potřeboval použít nějakou velice malou databáze. 
Databáze bude součástí programu a není podstatné aby byla rychlá, ale spíše 
aby byla malá (jak do velikosti v paměti, tak potřebná velikost na disku).

Našel jsem několik kandidátů (všechny pod GPL licencí) a všechny v jave.
HSQL
DB4o

Pokud mátě někdo zkušenosti s databázemi, prosím podělte se. (mám na mysli 
zkušenosti s malými embeded databázemi ;) )


Pavel
  




Re: digitální certifikát

2007-01-30 Tema obsahu Jan Dvořák
Ne, tak to není. Podpis kódu je speciální účel, který by musel být 
uveden v certifikátu. Je to jiný účel než obecné podpisy nebo 
prokazování identity. Pokud vím, žádná z akreditovaných CA v ČR vám 
nevydá certifikát, který by měl podpis kódu mezi svými účely.


Honza Dvořák


Tomáš Procházka napsal:

Ahoj,
odpovídám na zprávu ze čtvrtka, 25. ledna 2007,
kterou Jan Dvořák napsal(a) v 15:07:34:

   Tohle je o ničem :-(

   PostSignum tam má na výběr buďto osobní a nebo serverový certifikát, tak 
bych čekal, že podepisování osobního kódu by mohlo patřit do té kategorie 
osobní.

--- Původní zpráva ---
 Odesilatel: Jan Dvořák [EMAIL PROTECTED]
Předmět: digitální certifikát
  Datum: 25. ledna 2007, 15:07:34 (GMT +0100)
Přílohy: none
  msgid:[EMAIL PROTECTED]

J Ahoj,


J Kvalifikovany certifikat od PostSignum (stejne jako od zbyvajicich dvou
J akreditovanych CA v CR) nema ve svych ucelech podpis kodu.
J I kdyby mel, korenove certifikaty techto CA jsou JRE-ckum i prohlizecum
J vesmes nezname, takze se k takto podepsanym apletum budou chovat jako k
J podezrelemu kodu.
J Leda byste presvedcil vase uzivatele, aby si hodili korenovy certifikat
J mezi duveryhodne CA, ale to podle mne zacne delat jen zlomek z nich, a
J uspesne dokonci jen zlomek z toho zlomku.

J Pro nasi webstartovanou aplikaci jsme nakonec sahli po certifikatu pro
J podpis kodu od Thawte.
J Nebyl uplne levny. Firma to unesla, ale jako jednotlivec bych sel cestou
J Thawte Free Mail certifikatu.

J Podle mne potrebujete certifikaty dva: jeden pro zabezpeceny styk se 
J statni spravou, a druhy pro podpis kodu.


J Mimochodem, nevite nekdo jeste o jine CA nez Thawte a Verisign, ktere by
J vydavaly certifikaty pro podpis javoveho kodu a mely korenovy certifikat
J mezi duveryhodnymi?

J Honza Dvorak
J MathAn Praha


J Tomáš Procházka napsal:
  

Ahoj,
odpovídám na zprávu ze čtvrtka, 25. ledna 2007,
kterou Rastislav Rehak napsal(a) v 10:39:06:
  


  

   No, já bych měl konkrétně zájem asi o http://qca.postsignum.cz/, je to skoro 
za pakatel a nemusím objíždět žádné notáře, což by časově vyšlo stejně dráž.
  


  

   Ale to zda mají ty certifikáty podepsané někým, koho Java považuje za 
důvěryhodného je určitě docela rozhodující fakt.
  


  

   Má někdo zkušenosti přímo s tím?
  


  

   Pro server certifikát skutečně nechci, ale pro podepisování emailů, styk s 
úřady a podepisování aplikací ano.
  


  

--- Původní zpráva ---
 Odesilatel: Rastislav Rehak [EMAIL PROTECTED]
Předmět: digitální certifikát
  Datum: 25. ledna 2007, 10:39:06 (GMT +0100)
Přílohy: none
  msgid:[EMAIL PROTECTED]

R Pre zaciatok by som vyskusal Thawte Free Mail certificate. Ked sa 
R prihlasite do TFM mozete si nechat vygenerovat mailovy certifikat vhodny

R aj na podpisovanie kodu.
R Tento certifikat bude mat meno drzitela Thawte free mail member co nie
R je zrovna to prave, ale na druhej strane je root CA je importovana v 
R JRE, takze to funguje.
R Dalej je mozne navstivit aspon dvoch notarov zo siete Thawte Web of 
R Trust  overit totoznost, ziskat aspon 50 bodov a potom si budete moct 
R vygenerovat tento certifikat na vase meno. Tak daleko som sa este 
R nedostal, lebo okolo mna je malo notarov a nechce sa mi cestovat len pre

R certifikat. Mozno ked pojdem do Prahy tak to vyskusam.
  


  

R Popis najdete tu: http://www.dallaway.com/acad/webstart/  aj ked linky
R sa uz zmenili. 
  


  
R Na slovensku existuje system CA ( napriklad EVPU Nova Dubnica ) ktora 
R vydava certifikaty na komunikaciu so statnou spravou. Tieto certifikaty

R NEBRAT. Su uplne k nicomu, lebo ich root je NBU ( to su ti co maju heslo
R nbusr123 )  a tento pravdaze nie je nainstalovany v ziadnom JRE alebo 
R browsery. Tazko presvedcite cloveka na druhom konci sveta, aby si ich 
R certifikat importoval do trusted storu.
  



  

R Bye Ra100
  


  

R Tomáš Procházka wrote:
  
  

Zdravím
  
  


  
  
  

Chci se jen ujistit. Potřebuji si pořídit digitální certfikát mimo jiné také 
pro podepisovaní java aplikací. Je potřeba při pořízení dávat na něco pozor, je 
potřeba něco speciálního? Já myslím, že ne, už párkrát jsem s certifikáty 
pracoval a nikdy jsem problém neměl.
  
  


  
  
  

Jen mi není jasné to, proč se ty certifikáty ukládají na tolik míst. Něco je v 
C:\Documents and Settings\Tomas\.keystore a přes to GUI v ovladácích panelech 
se to přidává se zase někam jinam :-(
  
  


  
  
  

Jo a ještě jedna věc. Když podepíšu applet a certifikát vyprší bude to dál 
fungovat nebo budu muset pokaždé všechny své aplikace znovupodepisovat. Podle 
mě by to mělo být důležité datum podpisu.
  
  


  
  
  
   
Datum: 20:08:1224. ledna 2007
  
  
  




  

 Konec původní zprávy

Re: digitální certifikát

2007-01-25 Tema obsahu Jan Dvořák

Ahoj,

Kvalifikovany certifikat od PostSignum (stejne jako od zbyvajicich dvou 
akreditovanych CA v CR) nema ve svych ucelech podpis kodu.
I kdyby mel, korenove certifikaty techto CA jsou JRE-ckum i prohlizecum 
vesmes nezname, takze se k takto podepsanym apletum budou chovat jako k 
podezrelemu kodu.
Leda byste presvedcil vase uzivatele, aby si hodili korenovy certifikat 
mezi duveryhodne CA, ale to podle mne zacne delat jen zlomek z nich, a 
uspesne dokonci jen zlomek z toho zlomku.


Pro nasi webstartovanou aplikaci jsme nakonec sahli po certifikatu pro 
podpis kodu od Thawte.
Nebyl uplne levny. Firma to unesla, ale jako jednotlivec bych sel cestou 
Thawte Free Mail certifikatu.


Podle mne potrebujete certifikaty dva: jeden pro zabezpeceny styk se 
statni spravou, a druhy pro podpis kodu.


Mimochodem, nevite nekdo jeste o jine CA nez Thawte a Verisign, ktere by 
vydavaly certifikaty pro podpis javoveho kodu a mely korenovy certifikat 
mezi duveryhodnymi?


Honza Dvorak
MathAn Praha


Tomáš Procházka napsal:

Ahoj,
odpovídám na zprávu ze čtvrtka, 25. ledna 2007,
kterou Rastislav Rehak napsal(a) v 10:39:06:

   No, já bych měl konkrétně zájem asi o http://qca.postsignum.cz/, je to skoro 
za pakatel a nemusím objíždět žádné notáře, což by časově vyšlo stejně dráž.

   Ale to zda mají ty certifikáty podepsané někým, koho Java považuje za 
důvěryhodného je určitě docela rozhodující fakt.

   Má někdo zkušenosti přímo s tím?

   Pro server certifikát skutečně nechci, ale pro podepisování emailů, styk s 
úřady a podepisování aplikací ano.

--- Původní zpráva ---
 Odesilatel: Rastislav Rehak [EMAIL PROTECTED]
Předmět: digitální certifikát
  Datum: 25. ledna 2007, 10:39:06 (GMT +0100)
Přílohy: none
  msgid:[EMAIL PROTECTED]

R Pre zaciatok by som vyskusal Thawte Free Mail certificate. Ked sa 
R prihlasite do TFM mozete si nechat vygenerovat mailovy certifikat vhodny

R aj na podpisovanie kodu.
R Tento certifikat bude mat meno drzitela Thawte free mail member co nie
R je zrovna to prave, ale na druhej strane je root CA je importovana v 
R JRE, takze to funguje.
R Dalej je mozne navstivit aspon dvoch notarov zo siete Thawte Web of 
R Trust  overit totoznost, ziskat aspon 50 bodov a potom si budete moct 
R vygenerovat tento certifikat na vase meno. Tak daleko som sa este 
R nedostal, lebo okolo mna je malo notarov a nechce sa mi cestovat len pre

R certifikat. Mozno ked pojdem do Prahy tak to vyskusam.

R Popis najdete tu: http://www.dallaway.com/acad/webstart/  aj ked linky
R sa uz zmenili. 

R Na slovensku existuje system CA ( napriklad EVPU Nova Dubnica ) ktora 
R vydava certifikaty na komunikaciu so statnou spravou. Tieto certifikaty

R NEBRAT. Su uplne k nicomu, lebo ich root je NBU ( to su ti co maju heslo
R nbusr123 )  a tento pravdaze nie je nainstalovany v ziadnom JRE alebo 
R browsery. Tazko presvedcite cloveka na druhom konci sveta, aby si ich 
R certifikat importoval do trusted storu.



R Bye Ra100

R Tomáš Procházka wrote:
  

Zdravím
  


  

Chci se jen ujistit. Potřebuji si pořídit digitální certfikát mimo jiné také 
pro podepisovaní java aplikací. Je potřeba při pořízení dávat na něco pozor, je 
potřeba něco speciálního? Já myslím, že ne, už párkrát jsem s certifikáty 
pracoval a nikdy jsem problém neměl.
  


  

Jen mi není jasné to, proč se ty certifikáty ukládají na tolik míst. Něco je v 
C:\Documents and Settings\Tomas\.keystore a přes to GUI v ovladácích panelech 
se to přidává se zase někam jinam :-(
  


  

Jo a ještě jedna věc. Když podepíšu applet a certifikát vyprší bude to dál 
fungovat nebo budu muset pokaždé všechny své aplikace znovupodepisovat. Podle 
mě by to mělo být důležité datum podpisu.
  


  
   
Datum: 20:08:1224. ledna 2007
  
  




 Konec původní zprávy 

  




Re: Java Web Start

2006-10-11 Tema obsahu Jan Dvořák

Dobry den,

mozne to je. Akorat az budete chtit delat verze svoji aplikace a 
knihoven, budete si muset poradit sam, nebudete moci pouzit ten zpusob 
verzovani, ktery je zadefinovan v prislusnem JSR a popsan v JWS guide.
Muzu se zeptat, jaka potreba vede k tomu, ze byste to chtel spoustet i z 
filesystemu?


Honza Dvorak


Jaroslav Matej napsal:

Dobry den,

Ak som spravne pochopil tutorialy, JWS stiahne a naistaluje app z 
netu. Rozmyslam nad JWS ako nahradou appletu, avsak je potrebne, aby 
JWS instalacia fungovala aj z lokalneho fs aj z netu. Je to vobec 
mozne (bez instalacie lokalneho webservera) ?


Vdaka,
MJ




Re: java.lang.String.intern()

2006-10-01 Tema obsahu Jan Dvořák
Na druhe strane, divil bych se, kdyby vam intern()-ovani _dat_ ve vasich
programech neco vyznamneho prineslo.
Jednak String.intern() nejakou dobu trva, jednak je nejasne, jak se ten
pool chova. Tady se nabizeji dve moznosti:

1. Jednou intern()-ovany retezec zustava v poolu do konce vesmiru (cti:
spustene instance JVM).
Pak Vam snadno muze dojit pamet, zejmena pokud jste na serveru.
Efektivne si omezujete bud pocet obslouzenych pozadavku, nebo velikost
dat, se kterou muzete pracovat, ikdyz mate nakrasne algoritmy s
konstantni pametovou narocnosti.

2. Intern()-ovany retezec zustava v poolu jen dotud, dokud jsou na nej
reference.
Pak je Vam takove intern()-ovani napriklad radku souboru CSV (nebo radku
vysledku dotazu JDBC, nebo libovolneho jineho najednou zpracovavaneho
useku dat) vcelku na nic. Nez prejdete k novemu radku, pool zapomene
veci z radku stareho. Pak Vas to intern()-ovani jenom zdrzuje.

Sun Java 1.5.0 se, zda se, chova druhym z uvedenych zpusobu. Ale
specifikaci takoveto chovani dane neni, takze na ne neni dobre spolehat.

Myslim, ze intern() ma cenu pouzivat jen, pokud vite, ze v tom kusu dat,
ktery musite mit najednou v pameti, se budou retezce vyznamnou merou
opakovat. Z hlediska aplikacniho programatora to podle mne patri do
podobne kategorie krehotinek jako java.lang.System.gc().

Jinak pokud vsude pisi, ze objekty se na rovnost maji porovnavat metodou
equals(), tak bych se toho drzel i u Stringu. I kdyz se je nyni
rozhodnete intern()-ovat. JVM-ko bude na equals() optimalizovano, takze
ve vysledku strojove cykly treba ani neusetrite, nebo jen zanedbatelne.
Co je vsak dulezitejsi, vas kod bude standardni a vy se muzete
spolehnout, ze dokud bude Java Javou, nebudete na tomto aspektu vaseho
kodu muset nic menit. I kdyz se treba v budoucnu rozhodnete
ne-intern()-ovat, nebo to intern()-ovani na jednom z x mist zapomenete.

Ale co je ze vseho nejdulezitejsi, takovy kod bude daleko
srozumitelnejsi ostatnim.
Pocitaje v to vas po pul roce. :-)

Honza Dvorak


ales napsal:
 Myslim si, ze ano. Aj ked zmysel by to malo hlavne v tom pripade keby
 vstup z konzoly obsahoval duplicitne retazce. Nieco v zmysle kodu
 krajiny v CSV subore. V pripade, ze by boli hodnoty vzdy ine tak to
 zmysel nema.

 Ales



 Kamzik-II  wrote / napísal(a):
 Dobre, rekneme, ze budu od uzivatele
 nacitat nejake retezce z konzole a budu je ukladat
 do nejakeho Listu, ale do Listu budu pridavat
 internovane retezce, tak usetrim pamet a muzu pouzivat
 porovnavani pomoci ==, je to tak?

 - Original Message - From: ales [EMAIL PROTECTED]
 To: Java konference@java.cz
 Sent: Thursday, September 28, 2006 12:15 PM
 Subject: Re: java.lang.String.intern()


 Ahoj,
 je to presne tak. Nasledujuci kod:

String helloWorld = HelloWorld;
String hello = Hello;
String world = World;
System.out.println(helloWorld == (hello + world).intern());

 vypise true. Metoda intern existuje z optimalizacnych dovodov (vid
 http://en.wikipedia.org/wiki/String_intern_pool).

 Ales



 Ing. Jan Novotný  wrote / napísal(a):
 Nejsem si jistý, ale nezajistí se touto metodou, že konkrétní
 string bude na haldě pouze jednou? Tzn. že je teoreticky možné toto:

 String a = ahoj;
 String b = ahoj;
 if (a != b) System.out.println(a different from b); //mohlo by se
 vypsat
 a.intern();
 b.intern();
 if (a == b) System.out.println(a same as b); //musí se vypsat

 Nejsem si tím jistý, ale myslím, že takhle to funguje ... equals
 samozřejmě vrátí v obou případech true (imlementace equals u
 stringu myslím interně to intern právě volá).

 Honza

 Kamzik-II napsal(a):
 Zdravim diskuzi, mam opet jeden zacatecnicky dotaz :)
 Tentokrat by me zajimalo, jake vyuziti ma metoda intern ()
 tridy java.lang.String, zaujalo me tohle:
  String helloWorld = HelloWorld;
 String hello = Hello;
 String world = World;
  helloWorld == ( hello + world ).intern ();
  mohl by mi nekdo vysvetlit k cemu je tato
 metoda dobra? :)



Re: java na multicorovem sunu/solarisu

2006-09-21 Tema obsahu Jan Dvořák

Ahoj Tomucho,

1. Tak dva roky nazpatek se ukazalo, ze Suni jvm-ko pro Solaris beha je 
v nekterych situacich o dost pomalejsi nez porty pro jine platformy, 
ktere Sun dela. Ted uz by to melo byt spravene 
(http://news.com.com/2100-1001-984529.html), ale neni jasne, co je nutno 
upgradovat - zda OS, JRE, nebo oboji.


2. Podobnou zkusenost, jakou mas ty, jsme pozorovali pred asi peti lety 
se serverem od HP. Uuuuzasne zelezo, ale zakaznik nikdy nemel dost penez 
na to, aby konfigurace byla vyvazena. Tu bylo malo pameti, pak zas malo 
disku, nakonec by to bylo byvalo chtelo pridat procesory, ale k tomu uz 
nastesti nedoslo. Nez se na to nainstaloval vsecek potrebny software 
(Oracle db a Oracle Application Server) a zacalo to realne chodit, to 
trvalo tak dlouho, ze stroj uz byl zastaraly. Nakonec se podarilo 
zakaznika premluvit, at tuhle nadheru vycleni na dulezitejsi ukoly 
(... samba ;-) ), nam ze by vlastne stacil uplne obycejny pececkovy 
server. Od tech dob vse chodi bez problemu, pochopitelne.


3. Nedavno jsem byl pritomen slavnostnimu vypinani sunovskeho 
databazoveho serveru (databaze Informix). Je to v podstate stejna story. 
Na dva roky starem pececkovem serveru to chodi nekolikrat rychleji. 
Myslim si, ze dnes uz je investice do podobneho zeleza obhajitelna jen 
ve vyjimecnych pripadech. Ale to jsem se dostal ponekud off the topic.


4. Podle znameho, ktery delal v Telecomu a sunovske servery spravoval, 
ma Solaris povest, ze kdykoli po nem neco chces, tak je to pomale. 
Posles dva pozadavky zaraz, je to pomale. Posles deset pozadavku 
najednou, je to pomale. Posles sto soubeznych pozadavku, je to pomale. 
Ale je to pomale porad stejne!   Nutno samozrejme zvazit, jestli tento 
druh skalovatelnosti mas vubec sanci vyuzit - v malych ceskych pomerech 
jsou i ty urady jaksi mensi, ze ;-)


5. JDBC driver pro Oracle nemival uplne nejlepsi povest. Nedivil bych 
se, kdyby nekde uvnitr synchronizoval vic, nez je nezbytne potreba, coz 
muze byt zadrhel prave pro to solarisi jvm-ko. Nedalo by se vyzkouset, 
zda by treba zmeny fetchSize u ResultSetu nebo Statementu nemely nejaky 
efekt? Predpokladam, ze ovladace mas posledni verzi...


Honza


Tomas Zverina napsal:

Mila konference,

muj krasny projekt trpi tim, ze je v produkcnim prostredi ($SUBJ) 
nesnesitelne pomaly, predevsim v situacich, kdy se mezi DB - serverem 
- klientem, prenasi/zpracovavaji nejaka vetsi data - ne moc velka, 
treba desitky kilo nafetchovanych radku vysledku dotazu.


Nemusim jiste rikat, ze na Linoxuvo/Windowsovo/FreeBSD strojich, na 
kterych to vyvijime, bezi vsechno bez problemu. Konkretni uloha trva 
vsude kolem 300ms, tam 3000ms.


Nepotkal jste nekdo takovy fenomen?

Siti to nebude, ta je celkem normalni, ty stroje jsou sice pomalejsi 
nez normalni zelezo (alespon v neparalelizovatelnych ulohach), ale ne 
zase tolik. Prislusne dotazy jsou odladeny a odpovidaji zhruba stejne 
rychle tam i jinde.


Je to poskladano z Oracle, Tomcat, Spring, RMI.

Diky za tip, mate-li.



dbtools-20060915a: lepsi vypis parametru dotazu

2006-09-15 Tema obsahu Jan Dvořák

Ahoj,

v teto verzi dbtools je zapracovana nasledujici uprava:

@ SqlString vznikajici z dotazu bude na volani metody toString() vydavat 
parametry dotazu vhodne escapovane, tedy napr. retezce v apostrofech, a 
to podle SqlDialectu toho dotazu (nebo insertu, updatu, deletu).


Rekl bych, ze se to hodi Hyperionu, a potrebuje to taky Mirek ke svemu 
ukoliku (tak ho prosim kdyztak navedte, at si updatne dbtools - dnes 
odpoledne se mozna objevi).


Honza


Re: dbtools-20060915a: lepsi vypis parametru dotazu

2006-09-15 Tema obsahu Jan Dvořák
Omlouvam se za preklep v adrese, ten mail nebyl urcen az tak verejnemu 
foru :-)


Honza Dvorak

Jan Dvořák napsal:

Ahoj,

v teto verzi dbtools je zapracovana nasledujici uprava:

@ SqlString vznikajici z dotazu bude na volani metody toString() 
vydavat parametry dotazu vhodne escapovane, tedy napr. retezce v 
apostrofech, a to podle SqlDialectu toho dotazu (nebo insertu, updatu, 
deletu).


Rekl bych, ze se to hodi Hyperionu, a potrebuje to taky Mirek ke svemu 
ukoliku (tak ho prosim kdyztak navedte, at si updatne dbtools - dnes 
odpoledne se mozna objevi).


Honza






Re: dom4j a mixed content

2006-08-25 Tema obsahu Jan Dvořák

Martin Kuba napsal:

Petr Šimek wrote:

Dobry den,
snazim se pomoci dom4j prochazet existujici xml soubor, ale mam 
problem, kdyz narazim na element, ktery obsahuje mixed content.

Napr.
sekceAuto empje/emp cervene./sekce

Pak mi u sekce element.getText(); vrati cely text elementu, bez 
vnoreneho emp, tj. vrati:

Auto cervene.
Ale ja bych potreboval v tu chvili v necem dostat informaci, ze jsou 
tam tri potomci, tj. nejdriv text Auto, pak element emp a pak text 
cervene.


Ale k tomu se nemuyu dopracovat, poradite mi?

SAXReader reader = new SAXReader();
Document document = reader.read(pokus.xml);

Element root = document.getRootElement();

for ( Iterator i = root.elementIterator(); i.hasNext(); ) {
  Element element = (Element) i.next();
  // do something
}


Neznam sice DOM4J, ale dle svych zkusenosti s JDOM bych si tipnul,
ze chyba je ve volani getText(). Podle rychle vygooglovaneho javadocu
dela Returns the text value of this element without recursing through 
child elements. This method iterates through all Text,CDATA  and 
Entitynodes that this element contains and appends the text values 
together.

Spravny postup bude zavolat selectNodes(*), coz vraci seznam
uzlu, jenz jsou potomky.

Jadro zakopaneho pudla je v tom, ze texty jsou uzly (Node), ale nejsou
elementy (Element), takze elementIterator() je nemuze vratit.
Zkuste tedy neco jako:

for(Iterator i = root.selectNodes(*).iterator();i.hasNext();) {
 Node node = (Node).i.next();
 if(node.getNodeType()==Node.TEXT_NODE) {
 ...
 } else if(node.getNodeType()==Node.ELEMENT_NODE) {
 ...

}

Jen pro srovnani, v JDOMu bych zavolal Element.getChildren(),
coz je jednodussi o ten XPath vyraz.
V dom4j si iterator poridis jako element.nodeIterator(). Tahle vecicka 
je v Branch, ze ktere Element dedi.


Honza Dvorak




Re: for vs. while - problemy s SQL Drivery

2006-08-25 Tema obsahu Jan Dvořák
My jsme se s tim setkali u oracliho thin driveru pro 9.2. Kdyz clovek 
nezaviral resultsety, za chvili se server zacal zdrahat odpovidat na 
dotazy - stezoval si, ze Too many open cursors.


Myslim, ze uzitecna sablona kodu je:

final ResultSet rs = stmt.executeQuery();
try {
   while ( rs.next() ) {
  processRow( rs );
   }
} finally {
   rs.close();
}

Osetrovani SQLException zaridite v nejakem vnejsim bloku try, prece to 
nebudete psat nekolikrat.
Kdyz vylitne vyjimka v prvnim radku, nemate resultset a neni tedy ani co 
zavirat. Jakmile vsak resultset mate, tak ho urcite zavrete.

Ciste, prehledne.

Obcas se vidi takove veci jako:

ResultSet rs = null;
try {
   rs = stmt.executeQuery();
   while ( rs. next() ) {
  processRow( rs );
   }
} catch ( SQLException e ) {
   e.printStackTrace();  
} finally {

   if ( rs != null ) {
  try {
  rs.close();
  } catch ( SQLException e ) {
 e.printStackTrace();
  }
   }
}

- coz je proste silene.

Honza


Moravec Jan napsal:

U jakeho presne driveru jsem se s problemem nezavirani RS setkal si jiz 
nepamatuji. Dost mozna i ten zminovany Oracle OCI driver.

Ono zavisi hodne na kontextu a zpusobu pouziti PS a RS. Pokud napriklad otevirate z jednoho PS vice result setu, 
jak intepretovat ponekud vagni javadoc u Statement.close When a codeStatement/code object 
is closed, its current codeResultSet/code object, if one exists, is also closed.

Jaky z tech x otevrenych RS je ten current? Jsou to 


a) vsechny
b) posledni otevreny
c) posledni iterovany

Jak jsem psal, PS jsou navic casto cachovany, takze pokud volate PS.close ve 
finaly, nemusi to ale VUBEC znamenat, ze se Vam zavrou result sety asociovane s 
tim PS, protoze jeho close metoda se v zaveru ani nezavola (zavola se close na 
nejakym wrapperu, ktere ten PS POUZE vrati do poolu).

Tj. shrnuto podtrzeno, RS zavirat vzdy explicitne a neni problem. Spolehat na 
PS.close/finalizator apod - povesit programatora za usi do pruvanu.

Off topic: S tim Oracle driverem jsme mi pripomnel jinou perlu jejich driveru. 
Pri praci s LOBy se musely PS castovat na Oracle specificke implementace, aby 
bylo mozne volat metody pro praci s LOBy. Standardni java.sql.Clob/Blob 
nefungovaly. Doufam, ze uz s tim neco udelali... toto bylo pred cca 3 roky.

Honza

-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Behalf Of Artur Linhart - Java Communication
Sent: Thursday, August 24, 2006 10:46 AM
To: Java
Subject: Re: for vs. while - problemy s SQL Drivery


.Myslim, ze s nejakym podobnym nestandardnim chovanim jsme se setkali v
pripade Oracle 9.2.0.1 driveru, ktere obsahovaly mimo jine i nekolik chybek
v tehle oblasti. Uz je to dele, ale problem byl mam dojem nejen s uzaviranim
pripojeneho resultsetu, ale i s tim, ze se sam statement neuvolnoval
korektne ackoliv by podle standardu mel pote co se spusti garbage
collector - urcite se vyplaci volat close primo na statementu stejne jako
predtim na resultsetu ktery byl pres statement vytvoren.

Prestoze javadoc u metody java.sql.Statement.close() tvrdi
 A codeStatement/code object is automatically closed
 * when it is garbage collected. When a codeStatement/code object is
 * closed, its current codeResultSet/code object, if one exists, is
 * also closed.  
- nemusi byt obecne pravda ani prvni, ani druha veta, holt jako vzdy zalezi
na tom, jak se ten interface naimplementuje. Takze pokud si nejste
stoprocentne jisti (coz neni asi nikdy :-) ) tak by se ten close mel asi
volat vsude kde to jde...
Jinak - slo o oci8 driver, mozna ze u nativniho, ktery bohuzel pouzivat
nemuzeme, to funguje spravne, to nevim...

Uz je to sice hodne off topic od puvodniho tematu, ale napada mne napr.
mimodek i dalsi chyba na kterou jsme narazili v Oracle driverech se kterou
jsme se opravdu hodne hodne vyvztekali nez jsme na ni prisli - a to je
problem s datovym typem timestamp a jeho prevodem na javovsky Timestamp, u
ktereho se v pripade, ze je pocet milisekund nacteny z databaze 0 jako pocet
milisekund naindukuje jine cislo nezli 0.
Jinymi slovy, jak mi pomohl kolega Michal s upresnenim: pri cteni Timestamp
s 0 ms je vracena hodnota ms z posledniho cteneho Timestampu ktery mel ms 
0. Jednoduse, pokud tam bylo 0 ms, tak ten driver jakoby ten udaj ms nijak
nemenil, takze tam zustala predesla hodnota.

 - tzn. pokud napr. pouzivate Oracle timestampy k overeni, jestli se Vam
zaznam nezmenil v mezidobi mezi dvema selecty, je dobre na podobne policko
pripojit primo na urovni databaze trigger, ktery nejenom ze pri updatu
nastavuje vzdy aktualni hodnotu casu, ale v pripade, ze pocet milisekund je
0, tak je trosicku postrci o milisekundu, aby nacitani pres JDBC do typu
Timestamp potom fungovalo spravne - my to delame momentalne takhle:

create or replace trigger TU_BC_COUNTRY
before update on BC_COUNTRY
for each row
declare
  locMs int;
  loc_current_GMT_timestamp TIMESTAMP(3);
begin
  loc_current_GMT_timestamp := current_timestamp at time zone 'GMT';

Re: Literatura

2006-08-14 Tema obsahu Jan Dvořák
Podle mne je kniha Myslíme objektově v jazyku Java 5.0 od Rudy 
Pecinovského (Grada 2004) opravdu dobrá učebnice programování.


Honza Dvořák


Rudolf PECINOVSKÝ napsal:

[...]

Vynechám-li tu svoji, tak knihy, které se snaží naučit opravdu objektově 
programovat [...]
  




Re: DataConnection pooling in Tomcat

2006-02-21 Tema obsahu Jan Dvořák

Dobry den,

tohle je podle mne pekny, cisty kod. Jeste jsem si zvykl ty promenne 
con, st, rs delat final. Nechci prece zavirat jiny objekt (spojeni, 
prikaz, vysledek), nez s jakym se do kazdeho toho bloku try vstupovalo.


V tehle trojici Connection - Statement - ResultSet je z hlediska 
zivotniho cyklu ten Statement tim nejmene zajimavym clenem (pokud to 
nahodou neni opakovane volany PreparedStatement). Obcas povazujeme za 
uzitecne metody, ktery mezi svymi parametry dostavaji Connection, neco 
vyselekti a vrati ResultSet. Zodpovednosti klienta takoveto metody je 
zavrit ten ResultSet. Ten Statement, ze ktereho ten ResultSet vznika, 
tak trochu visi ve vzduchu. Neni dulezity, vyjma toho, ze je treba jej 
ve spravny okamzik zavrit. Ten okamzik nenastava uvnitr selektici 
metody, ale az pote, kdy je ResultSet zkonzumovana. Rozresili jsme to 
specialni tridou StatementClosingDelegatingResultSet (nazev rika vse a 
je priblizne stejne dlouhy jako implementace), ktera pri uzavirani 
ResultSetu uzavre i ten Statement. Timto zpusobem se nam dari clenit i 
pomerne rozsahlou databazovou praci do snesitelne dlouhych metod.


Honza Dvorak


Michal Palička napsal:


Dobry den,

ten ukazkovy kod vypada teda dost brutalne.

Mne se osvedcilo pouziti vnorenych try-finally bloku.
Myslim, ze je to prehlednejsi a elegantnejsi.

Priklad:

void myMethod() throws SQLexception {
   Connection con = ds.getConnection();
   try {
   Statement st = con.createStatement();
   try {
   ResultSet rs = st.executeQuery();   
   try {
   ... // zpracovani dat z 'rs'
   } finally {

   rs.close();
   }
   } finally {
   st.close();
   }
   } finally {
   con.close();
   }
}

Vyse uvedeny kod predpoklada, ze objekt (con, st, rs) je bud vytvoren
uspesne anebo je vyhozena vyjimka (tj. nenastane situace, ze napr. metoda
ds.getConnection() sice skonci bez vyjimky, avsak vrati null).
To by u JDBC melo platit.

Osetreni vyhozene vyjimky (SQLException) muzete resit bud v metode volajici 
anebo cele telo metody myMethod obalit jeste jednim blokem (try-catch).


Pokud takovych metod budete mit vice, budou se v podstate lisit jenom kodem
v tom nejvnitrnejsim bloku. Opakujici se kod by se asi dal dale eliminovat.
(template method pattern, command pattern).

mp.

 






Re: centralni generator cisel v sekvenci

2005-12-06 Tema obsahu Jan Dvořák

Dobrý den,

ano, UUID jsou výborná a na jiném místě toho projektu je používáme.
Tady však máme na rozlišení různých objektů sedm znaků.
Do toho celé UUID nedostanemene a
použít ho jenom část mi přijde křehké.

Myslím, že se do toho generátoru sekvencí pustím.

Honza Dvořák


Michal Palička napsal:


Dobry den,

pokud netrvate na sekvenci cisel (integer, long), daly by se mozna
vyuzit jednoznacne identifikatory:

java.rmi.server.UID
java.util.UUID (since 1.5)

Databaze by mohla uplne odpadnout.
Pri pouziti UUID anebo kombinace (UID + IP adresa) teoreticky 
nepotrebujete pro generovani sekvenci ani centralni server, 
nebot identifikator by mel byt vzdy jedinecny...


mp.

-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Jan Dvořák
Sent: Tuesday, December 06, 2005 9:06 AM
To: Java
Subject: Re: centralni generator cisel v sekvenci

Ahoj,

ano, je to udelatelne i s chlupama za jeden pulden.
Ale nebylo by spatne, kdyby se ten pulden dal usetrit - ted pred Vanoci.

Honza


Pavel Kolesnikov napsal:

 


ahoj,

mozna mi neco uniklo, ale prijde mi to vlastnimi silami velmi snadno 
spichnutelne, kdyz vezmes treba mysql s tim, ze pro kazdou sekvenci das 
tabulku


create table record (
id integer auto_increment primary key
ts timestamp
);  -- pseudokod, spravna syntaxe bude asi trochu jina, dulezity je ten 
auto_increment


a nad tim trivialni servlet, ktery dela insert a vraci vytvorene id (a 
nad nim nejspis nemene trivialni j2ee security nastaveni).


konkurentni hity si osetri mysql databaze. pokud bys chtel databazi 
clusterovat, nejjednossi reseni bude netrvat na cislech, ale spokojit 
se s jednoznacnymi identifikatory (id instance databaze + sekvencni 
cislo).


samozrejme stejne bude fungovat kterakoli jina relacni databaze schopna 
generovat sekvence.


jestli neco takoveho existuje nevim, ale podle vyse popsaneho scenare 
by to rozhodne nemusela byt prace na vic nez hodinu.


mozna mi ale neco unika - v cem spatrujes hlavni problem?

pavel

On 05/12/05, Jan Dvořák [EMAIL PROTECTED] wrote:


   


Vážená konference,

potřebujeme centrální službu, která bude vydávat sekvenčně generovaná 
čísla v několika sekvencích, které se rozlišují jménem.
Volání bude obsahovat jméno sekvence jako parametr a odpovědí bude 
hodnota dalšího čísla v takto pojmenované sekvenci.
Takovouto věc bychom potřebovali dostupnou přes web: web service nebo 
i jen jednoduchý servlet.
Podkladová data by si to pamatovalo ve vcelku libovolné relační 
databázi sestávající ze dvou tabulek: sekvence (s aktuální nejvyšší 
hodnotou) a log vydaných čísel.
Není potřeba žádná podpora transakčního zpracování - dokonce by byla 
nevhodná.


Nevíte, zda něco takového už neexistuje?


Honza Dvořák
 





JavaHelp z OpenOffice Writeru?

2005-12-03 Tema obsahu Jan Dvořák

Vážená konference,

potřebujeme připravit nápovědu jako JavaHelpový HelpSet a zároveň jako 
dokument v PDF.

Může se mi podařit ten JavaHelp z dokumentu, který mám v OpenOffice Writeru?
Je rozumná cesta přes DocBook?

Co používáte pro průchod bažinatými oblastmi dokumentace?

Honza Dvořák



Re: Konstruktory

2005-11-21 Tema obsahu Jan Dvořák

Ja jsem si to pro sebe vyresil tak, ze validaci delam az po volani super().
A to jen u tech parametru, ktere vyuzivam jeste jinak, nez jen tim, ze 
je predam volani super() - u nich je zodpovednost za validaci na predkovi.
Pravda, je v tom skryta mirna neefektivita, ale nechci prece 
optimalizovat tridy na situace, kdy z jejich konstruktoru litaji 
vyjimky, ze...


Kdyz jsem se vyrovnal s tim, ze validaci budu delat az po volani 
super(), tak jsem uz nikdy nic jineho pred volanim super() v 
konstruktoru delat nepotreboval. Vsechny pripady, kdy to na to vypadalo, 
se po lepsim rozmysleni ukazaly jako suboptimalne navrzene.


Honza Dvorak


Goo GGooo napsal:


Ahoj vsichni,

uz jsem se pri svem seznamovani s Javou stacil dozvedet ze volani
konstruktoru nadrazene tridy (tedy super(...)) musi byt v novem
konstruktoru hned jako prvni prikaz. Netusite nekdo  jaky to ma duvod?
Ted jsem chtel vytvorit konstruktor ktery by pred zavolanim sveho
super()  vykonal validaci parametru, ale tvrde jsem narazil takze
musim pouzit nehezky workaround. Vrta mi hlavou jake tohle omezeni
muze mit duvod...?

Dik

Goo
 





Odstraneni diakritickych znamenek

2005-11-04 Tema obsahu Jan Dvořák

Vazena konference,

mam odstranit diakriticka znamenka ze vsech pismen v retezci, ktera jsou 
v latince.
Nejen ceska diakritika, ale vsechny mozne akcenty nad pismeny anglicke 
abecedy.

Verze Javy je 1.5.

Nevite lepsi zpusob nez prevodni tabulku?

Honza Dvorak



Re: Memoryleak v jstl?

2005-10-03 Tema obsahu Jan Dvořák

Ja myslim, ze kdysi to byla platna optimalizace,
ale protoze to nebylo dotazene (viz. maily Jirky Haniky), je to dnes 
spis k zlosti.


Zrovna v patek jsem cetl, ze alokace je cim dal tim rychlejsi,
a tak se vyplati poolovat jen ty objekty, jejichz vytvareni opravdu trva 
(jako treba pripojeni k databazi).

http://www-128.ibm.com/developerworks/java/library/j-jtp09275.html?ca=dnt-639

Honza Dvorak

Richard Malaschitz napsal:


Myslim, ze to suvisi s tym, ze webovy kontajner kvoli rychlosti
pouziva stale tie iste objekty. Vytvaranie objektov a ich rusenie by
asi znacne zatazovalo server.

2005/9/30, Jirka Hanika [EMAIL PROTECTED]:
 


Je mozne, ze Tomcat (5.5. na WinXP, JSTL 1.1.2) recykluje nejake tagy a
pritom neuvolni jejich obsah?
 


Je to mozne a nerekl bych, ze je to specificke pro Tomcat.
Kdyz si programujete vlastni tagy s nepovinnymi atributy,
tak je toto chovani zdrojem spousty prekvapeni.  Bohuzel.

Jirka


   





Re: dynamicke sestavovani xml souboru antem (web.xml)

2005-09-29 Tema obsahu Jan Dvořák

Tomas Zverina wrote:

xslt ... no to je asi nejcistsi reseni, asi jsem zaspal dobu - umi 
pracovat nad vice dokumenty najednou?


Ovsemze, dokonce i v antu.
http://ant.apache.org/manual/CoreTasks/style.html
viz. ten stek s vnorenym elementem mapper

S uspechem pouzivame XSLT na ruzna priohybani XML.
Zakladem je vzdycky identicky stylesheet (kopiruje vstup na vystup), 
ktery importujeme do nasich stylesheetu.

V nich pak mame jen templaty pro ty upravy, ktere potrebujeme udelat.

Kdyz pak nakonec potrebujeme sehrat vic XML dohromady, udelame to opet 
pomoci identickeho XSLT nad souborem, ktery ma v sobe instrukce XInclude.


Honza Dvorak



Re: Embedded databaze pres Java Web Start [SOLVED]

2005-08-22 Tema obsahu Jan Dvořák
Tak to opravdu funguje. Hsqldb podporuje specialni tvar JDBC URL 
jdbc:hsqldb:res:/dbpathname, pri kterem pak hleda data na classpathu.


Mimochodem, data (jedna tabulka o cca 2000 zaznamech), ktera v DBF 
zaberou 1,2 MB, maji v jaru rozkompresenou velikost 0,55 MB, 
zakompreseno pouhych 40 KB. Pouzivame zde tabulky typu MEMORY, takze 
data jsou ve skutecnosti ve skriptu, ktery si databaze vzdycky znova 
prehraje. Take bychom dokazali smenit cas za prostor, kdybychom pouzili 
tabulky typu CACHED. Vytvorit java.sql.Connection s vyse uvedenym URL 
trva na pocitaci s procesorem s efektivni frekvenci 3 GHz od 600 ms do 1 s.


Jsem nadsen!

Honza Dvorak


Jan Dvořák wrote:

Take jsem o ni premyslel.
Zkusim si vyrobit nejake hezke URL k databazovym souboru pres 
classloader...


Honza

Tomas Zverina napsal:

hsqldb? Ta jiste pujde omezit tak jak potrebujete...

Jan Dvořák wrote:


Ahoj,

delame aplikaci, ktera se bude startovat pres Java Web Start.
Ta ke sve funkci potrebuje i nejaka pomocna data - ta se pri praci 
aplikace nemeni.

Nejradeji bychom s daty dodali i embedded databazi,
abychom se v nich mohli prehrabovat pomoci SQL a ne rucne.

Nezkouseli jste nekdo podobnou vec?
Jak bychom mohli namirit databazi na data v jaru?
Jak databazi zakazat vytvaret jakekoliv soubory?

Honza Dvorak




Re: OT: vyplati se 64b. na Javu?

2005-08-18 Tema obsahu Jan Dvořák

Souhlasim. Uz rok mam notes se stolnim AMD64
- pravda, je tlusty jako spalek a vazi skoro 4 kg, ale ja taky nejsem 
zadne tintitko ;-) -

a nakonec jsem dokonvergoval k pouzivani 32-bitove distribuce linuxu.
Jsem vsak typicky uzivatel, uz jsem si nic nekompiloval, ani nepamatuji.

Eclipse pod 64-bitovou Javou sice chodil, ale zral tolik pameti,
ze jsem mu ji nemohl dat dost, a tak byl ve vysledku pomalejsi.
A kdyz jsem si potreboval vedle rozbehnout jeste JBosse...
Ta zravost v mensi mire platila i pro zbytek linuxove distribuce - KDE 
napriklad.


Na druhou stranu, AMD64 je podareny procesor,
i kdyz ho pouzivate jen na 32-bitove ulohy.
Urcite bych si ho dal do desktopu nebo serveru.
V mobilnich verzich se vsak neorientuji.

Honza Dvorak


Martin JANDA wrote:

Uz nejaky mesic provozuju 64bit Linux na AMD procesoru.

 - Linux
Hodne linuxovych aplikaci funguje bez problemu, nektere nebezi vubec a
ani nejdou zkompilovat, protoze tvurci si nikdy nemysleli ze by mohlo
existovat vice nez 32 bitu.

 - Java 64bitu.
Jestli se nepletu tak SUN ma implementovanou pod 64bitama v linuxu pouze
SERVERovou virtualni masinu (nevim jak je to pod windows). To vysvetluje
pomale reakce desktopovych aplikaci jako je napr. IDEA nebo NetBeans.
 Neni problem si nainstalovat 32bit VM a bezet aplikace pod ni. Ta v
sobe normalne obsahuje i CLIENTskou VM, ktera je nastavena jako vychozi.

 - Java 64bit vs 32bit
Co jsem vycetl na internetu tak 64bit java je rychlejsi zejmena v
operaci System.arraycopy a pak muze byt rychlejsi spis v operacich s
typy long, ktere maji 64bitovou velikost.
64bit ma hlavne vyznam na linux + solaris, kde je mozne alokovat vice
pameti.

 PS pro 32bit windows Javu jste omezeni teoreticky jen na 2GB vic se z
windows vymacknout neda.

 Martin JANDA


Petr Fischer wrote:
 

Zdravim, neustale tapu, jestli poridit notebook s Turionem nebo Sonomou
- nemate nekdo v praxi odzkouseno, jestli 64b Turion nejak exceluje s
64b Javou od Sunu oproti 32b? OS bude Linux (Fedora nebo CentOS).

Diky moc za jakoukoli informaci, pf

   


Re: Volania test metod vs. konstuktor

2005-08-18 Tema obsahu Jan Dvořák

My jsme ty inicializacni veci, ktere by se mely spustit jednou,
zacali delat ve statickem bloku te testovaci tridy.

Honza Dvorak


Jozef Babjak wrote:
Pred kazdym testom sa spusta setUp() a po nom tearDown(). Konstruktor 
by mal byt obligatny 


public TestClass(String name) {
	super(name); 
}


Robite v konstruktore nieco viac? Preco Vam vytvaranie istancii pre kazdy 
test prekaza? I ked to vytvaranie sa mi nezda, ale vyvratit ho neviem, 
nikdy som sa tym nezaoberal. 

J. 



On Thu, Aug 18, 2005 at 09:01:30AM +0200, Horvath Bystrik wrote:
 

Zdravim konferenciu!

Mam nasledovny problem. Pri testovani pomocou junit som zistil, ze ak ma
trieda odvodena od TestCase viac testXxx metod, tak pred kazdym volanim
takejto metody sa vola konstruktor danej triedy, co rezultuje vo vytvorenie
viacerych instancii triedy TestCase (jej derivatu). Junit zrejme interne pre
kazdu testXxx metodu vytvori interne instanciu triedy v ktorej je metoda
deklarovana a potom invokuje metodu testXxx. Ocakaval som, ze na jendej
instancii TestCase sa invokuju vsetky testXxx metody. Da sa toto chovanie
junit-u nejako ovpyvnit?

Diky,
Bystro Horvath
   




Re: Embedded databaze pres Java Web Start

2005-08-17 Tema obsahu Jan Dvořák

Take jsem o ni premyslel.
Zkusim si vyrobit nejake hezke URL k databazovym souboru pres classloader...

Honza

Tomas Zverina napsal:

hsqldb? Ta jiste pujde omezit tak jak potrebujete...

Jan Dvořák wrote:


Ahoj,

delame aplikaci, ktera se bude startovat pres Java Web Start.
Ta ke sve funkci potrebuje i nejaka pomocna data - ta se pri praci 
aplikace nemeni.

Nejradeji bychom s daty dodali i embedded databazi,
abychom se v nich mohli prehrabovat pomoci SQL a ne rucne.

Nezkouseli jste nekdo podobnou vec?
Jak bychom mohli namirit databazi na data v jaru?
Jak databazi zakazat vytvaret jakekoliv soubory?

Honza Dvorak




Re: Mirne OT: Skoleni UML

2005-08-12 Tema obsahu Jan Dvořák

Ahoj,

pana Kravala mohu doporucit, pred ctyrmi lety jsem skoleni u nej absolvoval.
Mimochodem, odkaz na www.objects.cz vede k nemu.

Honza Dvorak

Roszynec, Jiri (EOP) wrote:


Ahoj vsichni,
dost dobre je skoleni od Ilji Kravala je to clovek s praxi a veci dobre rozumi. 
Nabidka - http://www.objects.cz/nabidkaskoleni.html

Dobře bude asi skoleni i od DigiTrade  - Rene Steina, ale nebyl jsem tam tak 
nevim. Rene Stein je osobnost konference .NET na emwac.cz

Jirka


-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] 
Sent: Thursday, August 11, 2005 10:46 AM

To: Java
Subject: Re: Mirne OT: Skoleni UML

Ja som bol spokojny so skolenim CIS (www.cis.sk).
Neviem, ci robia skolenia aj do ciech. Vysvetloval to
Pavol Diveky a jeho vyklad bol vyborny. Ukazal cely
postup navrhu (kroky),  naco je to dobre (filozofia),
... + pribehy zo zivota, atd. 


Vsetko vysvetluje aj odbornym, ale aj takym
zdravym rozumom, aby clovek pochopil
celkovy vyznam a vyuzitie UML a nie iba kreslit
diagramy.

Juro

 


-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On
Behalf Of Tomas Hubalek
Sent: Thursday, August 11, 2005 9:52 AM
To: Java
Subject: Mirne OT: Skoleni UML

Ahoj vsichni,

mam takovy dotaz: byli jste nekdo na nejakem dobre skoleni UML, ktere 
muzete doporucit. Nejde mi ani tak moc o popis jednotlivych diagramu, 
ale spise o vyklad filozofie, tj. jak postupovat pri navrhu, jednotlive 

   



 


kroky, co z ktereho kroku vypadne, atd.

Diky moc
Tom