Re: hashset contains wtf

2007-05-24 Thread Martin Kuba
Rudolf PECINOVSKÝ wrote:
>> Děkuji za objasnění, už rozumím (naprosto dokonale). 
>> Jednoznačně je to chyba v javadoc. 
> 
> Možná se moje odpověď nebude někomu líbit, ale podle mne v javadoc chyba
> není. Toto chování vyplývá z vlastností hešových tabulek a měla by to proto
> vysvětlit učebnice (nebo lektor) jako obecnou vlastnost všech objektů
> využívajících hešových tabulek. Jestli k vám takováto informace ještě
> nepronikla, spílejte svým učitelům a autorům učebnic, z nichž jste se Javu
> učili.

Dovolil bych si nesouhlasit. Javadoc tvrdí, že metoda contains()
u HashSet používá pouze equals(), což není pravda, a proto
je to chyba dokumentace. To, že používá hashovací tabulku,
přece neznamená, že contains() nemůže hrubou silou projít
všechny položky. Sice by to nebylo moc efektivní, ale
neporušovalo by to kontrakt zděděný z Set.

Čili javadoc naznačuje, že implementace contains vypadá
nějak takto:

boolean contains(Object o) {
for(Iterator i = this.iterator();i.hasNext();) {
   Object e = i.next();
   if(o==null) {
if( e==null) return true;
   } else {
if(o.equals(i.next())) return true;
   }
}
return false;
}

což není pravda.

Makub
-- 
~~
Supercomputing Center Brno Martin Kuba
Institute of Computer Scienceemail: [EMAIL PROTECTED]
Masaryk University http://www.ics.muni.cz/~makub/
Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775
--



smime.p7s
Description: S/MIME Cryptographic Signature


Re: Plneni sestav

2007-05-24 Thread Roman Pichlik


1.) panovac uloh by mel spis bezet na serveru ne, co kdyz bude 
napalnovana uloha u zivatel zrovna bude mit vypnuty pocitac.


2.) EJB definuje pro planovani uloh Timer Service, kazdopadne bych asi 
sahnul po nejakem poradnem reseni jako je jiz zminovany Quartz 
scheduler. Urcite bych se snazil od toho vseho odprostit klienta a 
vsechno bych resil na strane serveru.



Ales Dostal napsal(a):

Zdravim,
mam nekolik otazek :)
Potrebuji vytvorit aplikaci, ktera bude slouzit k plneni sestav z jinych zdroju 
(Oracle, textove soubory, atd.) do MySQL.
Aplikace by mela byt desktopova (Swing). Server SJSAS 9 s pouzitim EJB3 a 
vzdaleneho volani na klienta. (toto jiz vyreseno mam).
Nyni bych potreboval nasledujici:
V desktopove aplikaci mit nejaky planovac uloh, kde naplanuji, kdy se budou 
dane ulohy pro plneni sestav spoustet (neco jako Crone).
Dale potrebuji v desktop aplikaci miti nejaky prehled o tom, ktera sestava se zrovna plni. 
Nejaky swing listener na sluzbu na serveru, ktera mi bude hlidat, co se zrovna plni.


Momentalne nevim, jakym zpusobem postupovat.
Vim, ze existuje nejaky Timer pro EJB, ale nevim, jestli je to presne to, co 
hledam. Na internetu jsem nenasel prilis materialu.
Dale nevim jak udelat dany posluchac do Swingu. Existuje EJB Driven Message, 
ale zase nevim, jestli to slouzi k tomuto ucelu.
Pri davkovem plneni nevim, zda muzu pouzit JPA a TopLink. 
Duvod je ten, ze se bude plnit treba milion radku a nektera data jsou chybova, ktera se ulozi do error tabulky. 
Pri davkovem zpracovani mi asi budou vadit automaticky rizene transakce. Nechci kvuli jednomu radku rollbacknout celou davku.


Mam zakladni znalosti o EJB, ale tohle uz presahuje muj ramec znalosti a navic 
na internetu jsem k tomuto ucelu moc informaci nenasel :(

Diky vsem za nakopnuti.




--
S pozdravem Roman "Dagi" Pichlik

/* http://www.sweb.cz/pichlik/ Blog pro kodery */


Re: hashset contains wtf

2007-05-24 Thread Jiri Mares

Dovolil bych si nesouhlasit ... protoze pak by metoda contains byla treba v 
rozporu s metodou remove, protoze contains
by vracela true a remove false, protoze objekt se zmenenym hashem z hashset 
nesmazete ...

Jirka

Martin Kuba napsal(a):
> Rudolf PECINOVSKÝ wrote:
>>> Děkuji za objasnění, už rozumím (naprosto dokonale). 
>>> Jednoznačně je to chyba v javadoc. 
>> Možná se moje odpověď nebude někomu líbit, ale podle mne v javadoc chyba
>> není. Toto chování vyplývá z vlastností hešových tabulek a měla by to proto
>> vysvětlit učebnice (nebo lektor) jako obecnou vlastnost všech objektů
>> využívajících hešových tabulek. Jestli k vám takováto informace ještě
>> nepronikla, spílejte svým učitelům a autorům učebnic, z nichž jste se Javu
>> učili.
> 
> Dovolil bych si nesouhlasit. Javadoc tvrdí, že metoda contains()
> u HashSet používá pouze equals(), což není pravda, a proto
> je to chyba dokumentace. To, že používá hashovací tabulku,
> přece neznamená, že contains() nemůže hrubou silou projít
> všechny položky. Sice by to nebylo moc efektivní, ale
> neporušovalo by to kontrakt zděděný z Set.
> 
> Čili javadoc naznačuje, že implementace contains vypadá
> nějak takto:
> 
> boolean contains(Object o) {
> for(Iterator i = this.iterator();i.hasNext();) {
>Object e = i.next();
>if(o==null) {
> if( e==null) return true;
>} else {
> if(o.equals(i.next())) return true;
>}
> }
> return false;
> }
> 
> což není pravda.
> 
> Makub

-- 
Jiří Mareš (mailto:[EMAIL PROTECTED])
ČSAD SVT Praha, s.r.o. (http://www.svt.cz)
Czech Republic


Re: hashset contains wtf

2007-05-24 Thread Jozef Babjak
> Mo?n? se moje odpov?? nebude n?komu l?bit, ale podle mne v javadoc chyba
> nen?. Toto chov?n? vypl?v? z vlastnost? he?ov?ch tabulek a m?la by to proto
> vysv?tlit u?ebnice (nebo lektor) jako obecnou vlastnost v?ech objekt?
> vyu??vaj?c?ch he?ov?ch tabulek. Jestli k v?m takov?to informace je?t?
> nepronikla, sp?lejte sv?m u?itel?m a autor?m u?ebnic, z nich? jste se Javu
> u?ili.
> 
> Rozli?ujte javadoc a u?ebnici. Kdyby se m?ly d?vat do javadoc i takov?to
> v?ci, tak tam za chv?li n?kdo bude cht?t vysv?tlit, jak funguje interface
> nebo jin? jazykov? konstrukt. Pro javadoc by m?lo sta?it prohl??en?, ?e dan?
> kontejner je definov?n pomoc? he?ov?ch tabulek, a to tam je.
> 
> T?m nechci ??st, ?e by javadoc n?jakou drobnou zm?nku na toto t?ma nesnesl,
> ale ch?pu, pro? se Sun?m nechce do n?j d?vat v?ci, kter? maj? b?t prim?rn?
> vysv?tleny jinde. J? bych jim sp?? vy??tal, ?e tuto informaci nedali do
> tutori?lu (leda bych ji tam ve sv? slepot? nena?el) - tam podle mne pat??.
> J? bych tam za?adil kapitolku o he?ov?ch tabulk?ch, na kterou by se pak
> odvol?valy v?echny kapitoly pojedn?vaj?c?ch o kontejnerech, kter? jsou na
> he?ov?ch tabulk?ch zalo?eny.

  ^-- To by bolo vsetko pekene, keby sa javadoc uspokojil so
vseobecnym tvrdenim, ze contains() vracia true, ak sa objekt
v mnozine nachadza; v tom pripade je na javadoc-u triedy HashSet
oznamit ze ako backend pouziva HashMap a ze treba vziat na zretel
z toho plynuce konsekvencie (co javadoc triedy HashSet robi), ked
hned aj "z toho plynuce konsekvencie" maju byt priemernemu programatorovi
zname. Zasadna chyba je, ze javadoc triedy contains() ODHALUJE 
IMPLEMENTACIU, zial taku, ktoru samotna metoda neimplementuje. 

Javadoc metody contains() v triede HashSet JE chybny.

J. 



RE: hashset contains wtf

2007-05-24 Thread Podlesak Kamil

To neni pravda, Javadoc o implementaci vubec nic nehovori. Pouze zcela presne 
definuje, co mini pojmem "obsahuje" a jak se prvky porovnavaji s predanym 
parametrem.
Naopak, ona definice s equals je tam zcela nutna - plyne z ni, ze pokud se 
zmeni vysledek hashCode() a equals(), tak se jiz nejedna o stejny objekt!  Jak 
jiz v diskusi padlo, do mnoziny byl totiz vlastne pridan jiny objekt nez ktery 
je potom porovnavan pomoci contains().

Co tam chybi je jen upozorneni na vyse zmineny fakt - ze implementace Map/Set 
si muze identitu cachovat a pokud se objekt "promeni" na jiny, chovani je 
obecne nepredvidatelne.

Kamil Podlesak

> -Original Message-
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> Behalf Of Jozef Babjak
> Sent: Thursday, May 24, 2007 11:34 AM
> To: Java
> Subject: Re: hashset contains wtf

> Zasadna chyba je, ze javadoc triedy contains() ODHALUJE 
> IMPLEMENTACIU, zial taku, ktoru samotna metoda neimplementuje. 
> 
> Javadoc metody contains() v triede HashSet JE chybny.
> 
> J. 
> 
> 


Re: hashset contains wtf

2007-05-24 Thread Jiri Mares

Tak mi to nedalo a koukl jsem se na javadoc. K JDK 5:

Returns true if this set contains the specified element.

a k JDK 6:

Returns true if this set contains the specified element. More formally, returns 
true if and only if this set contains an
element e such that (o==null ? e==null : o.equals(e)).

Rekl bych ze formulace je diky "if and olny if" skutecne zavadejici. Ale jak 
bych rekl jiz po Xte, zdrojak hovori jasnou
reci!

Jirka

Jozef Babjak napsal(a):
>> Mo�n� se moje odpov�� nebude n�komu l�bit, ale podle mne v javadoc chyba
>> nen�. Toto chov�n� vypl�v� z vlastnost� he�ov�ch tabulek a m�la by to proto
>> vysv�tlit u�ebnice (nebo lektor) jako obecnou vlastnost v�ech objekt�
>> vyu��vaj�c�ch he�ov�ch tabulek. Jestli k v�m takov�to informace je�t�
>> nepronikla, sp�lejte sv�m u�itel�m a autor�m u�ebnic, z nich� jste se Javu
>> u�ili.
>>
>> Rozli�ujte javadoc a u�ebnici. Kdyby se m�ly d�vat do javadoc i takov�to
>> v�ci, tak tam za chv�li n�kdo bude cht�t vysv�tlit, jak funguje interface
>> nebo jin� jazykov� konstrukt. Pro javadoc by m�lo sta�it prohl�en�, �e dan�
>> kontejner je definov�n pomoc� he�ov�ch tabulek, a to tam je.
>>
>> T�m nechci ��st, �e by javadoc n�jakou drobnou zm�nku na toto t�ma nesnesl,
>> ale ch�pu, pro� se Sun�m nechce do n�j d�vat v�ci, kter� maj� b�t prim�rn�
>> vysv�tleny jinde. J� bych jim sp� vy��tal, �e tuto informaci nedali do
>> tutori�lu (leda bych ji tam ve sv� slepot� nena�el) - tam podle mne pat��.
>> J� bych tam za�adil kapitolku o he�ov�ch tabulk�ch, na kterou by se pak
>> odvol�valy v�echny kapitoly pojedn�vaj�c�ch o kontejnerech, kter� jsou na
>> he�ov�ch tabulk�ch zalo�eny.
> 
>   ^-- To by bolo vsetko pekene, keby sa javadoc uspokojil so
> vseobecnym tvrdenim, ze contains() vracia true, ak sa objekt
> v mnozine nachadza; v tom pripade je na javadoc-u triedy HashSet
> oznamit ze ako backend pouziva HashMap a ze treba vziat na zretel
> z toho plynuce konsekvencie (co javadoc triedy HashSet robi), ked
> hned aj "z toho plynuce konsekvencie" maju byt priemernemu programatorovi
> zname. Zasadna chyba je, ze javadoc triedy contains() ODHALUJE 
> IMPLEMENTACIU, zial taku, ktoru samotna metoda neimplementuje. 
> 
> Javadoc metody contains() v triede HashSet JE chybny.
> 
> J. 
> 

-- 
Jiří Mareš (mailto:[EMAIL PROTECTED])
ČSAD SVT Praha, s.r.o. (http://www.svt.cz)
Czech Republic


Plneni sestav

2007-05-24 Thread Ales Dostal
Zkousel jsem ten TimerService. Vypada to, ze to bude v poradku. 
Na klientovi nastavim, odkdy a jak casto se bude metoda spoustet.
I po schozeni klienta dany proces bezi, takze neni vazan na klienta. Slo mi jen 
o to, aby uzivatel byl schopen dane joby spravovat.
Problem mam spise s jinou veci, ve chvili, kdy provedu deploy nove ejb verze na 
server, vsechny tyto informace ztratim. 
Napadlo me, ze bych dane naplanovane ulohy ulozil do databaze. 
Ted ale nevim, jak pri deploy aplikace provest to, aby si sahnul do DB a 
nastavil dane timeservices podle dat v DB.



Re: Plneni sestav

2007-05-24 Thread Jiri Frydek
Nevim jak se to resi u TimerService (a jestli to vubec jde), ale  
Quartz ma moznost si tyto informace ukladat do db. Viz napriklad  
http://wiki.opensymphony.com/display/QRTZ1/ConfigJobStoreCMT



Cituji Ales Dostal <[EMAIL PROTECTED]>:


Zkousel jsem ten TimerService. Vypada to, ze to bude v poradku.
Na klientovi nastavim, odkdy a jak casto se bude metoda spoustet.
I po schozeni klienta dany proces bezi, takze neni vazan na klienta.  
 Slo mi jen o to, aby uzivatel byl schopen dane joby spravovat.
Problem mam spise s jinou veci, ve chvili, kdy provedu deploy nove   
ejb verze na server, vsechny tyto informace ztratim.

Napadlo me, ze bych dane naplanovane ulohy ulozil do databaze.
Ted ale nevim, jak pri deploy aplikace provest to, aby si sahnul do   
DB a nastavil dane timeservices podle dat v DB.









Re: hashset contains wtf

2007-05-24 Thread Martin Kuba
Jiri Mares wrote:
> Dovolil bych si nesouhlasit ... protoze pak by metoda contains byla treba v 
> rozporu s metodou remove, protoze contains
> by vracela true a remove false, protoze objekt se zmenenym hashem z hashset 
> nesmazete ...

Nebyla. Javadoc k contains() i remove() se dedi ze Set,
a o hashCode() v obojim neni ani zminka. Tedy pokud by
se obe chovaly podle javadocu, musely by projit celou
kolekci prvku, aby hledany prvek nasly.

Problem IMHO spociva v tom, ze HashSet dedi javadoc ze Set,
ktera mluvi pouze o equals().

A kdyz si prectete javadoc k Object.equals() a Object.hashCode(),
tak se tam rika, ze pokud dva objekty davaji equals() true,
tak musi davat i stejny hashCode(), ale zmeny v case se tam neresi.
Tento kontrakt equals() a hashCode() vkladane mutovatelne kolekce v kazdem
okamziku splnuji.

Tedy to, ze HashSet hleda objekty podle hodnoty hashCode()
v okamziku vlozeni, a nikoliv prohledanim vsech prvku kolekce,
je implementacni detail HashSet, kterym se lisi od Set,
a nemela by tedy od ni dedit javadoc.

Makub
-- 
~~
Supercomputing Center Brno Martin Kuba
Institute of Computer Scienceemail: [EMAIL PROTECTED]
Masaryk University http://www.ics.muni.cz/~makub/
Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775
--


smime.p7s
Description: S/MIME Cryptographic Signature


Re: hashset contains wtf

2007-05-24 Thread Tomas Zverina

Martin Kuba napsal(a):

A kdyz si prectete javadoc k Object.equals() a Object.hashCode(),
tak se tam rika, ze pokud dva objekty davaji equals() true,
tak musi davat i stejny hashCode(), ale zmeny v case se tam neresi.


A co teda rika prvni bod tady:

http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#hashCode()

? Je fakt ze casti:

"..., provided no information used in equals comparisons on the object 
is modified"


prakticky nerozumim. Ale rekl bych, ze to pozadavek na chovani v case 
popisuje.


--
S pozdravem,

   Tomas Zverina

Multimedia atelier s.r.o.
Na Dolinách 4
147 00 Praha 4
IČO: 25127071
tel.: 241 433 120
e-mail: [EMAIL PROTECTED]
http://www.m-atelier.cz/

Společnost Multimedia atelier s.r.o. je zapsána u rejstříkového soudu v
Praze, oddíl C, vložka 51961.


Zapisovanie GIFov

2007-05-24 Thread Peter Stibrany

Prajem pekny den,

ktoru kniznicu pouzivate na zapisovanie obrazkov vo formate GIF v Jave
1.5, cez ImageIO API?

Nasiel som viacero kniznic, ale tie dobre vyzerajuce (Gif4J PRO) su komercne.
Okrem toho ma zaujalo gif-plugin.dev.java.net, ale cislo verzie 0.1 z
roku 2005 nie je velmi povzbudive.
Zial prejst na Java6 zatial nemozeme.

Ktoru kniznicu pouzivate vy?

-Peter Stibrany


Re: hashset contains wtf

2007-05-24 Thread Jiri Mares

Pozor, spor je zrejme nad javadoc k jdk6 ...

Tomas Zverina napsal(a):
> 
> Martin Kuba napsal(a):
>> A kdyz si prectete javadoc k Object.equals() a Object.hashCode(),
>> tak se tam rika, ze pokud dva objekty davaji equals() true,
>> tak musi davat i stejny hashCode(), ale zmeny v case se tam neresi.
> 
> A co teda rika prvni bod tady:
> 
> http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#hashCode()
> 
> ? Je fakt ze casti:
> 
> "..., provided no information used in equals comparisons on the object
> is modified"
> 
> prakticky nerozumim. Ale rekl bych, ze to pozadavek na chovani v case
> popisuje.
> 

-- 
Jiří Mareš (mailto:[EMAIL PROTECTED])
ČSAD SVT Praha, s.r.o. (http://www.svt.cz)
Czech Republic


Re: hashset contains wtf

2007-05-24 Thread Jiri Mares

> Javadoc k contains() i remove() se dedi ze Set,

To neni pravda. Vynatek ze zdrojaku JDK6 k tride HashSet:

/**
 * Returns true if this set contains the specified element.
 * More formally, returns true if and only if this set
 * contains an element e such that
 * (o==null ? e==null : o.equals(e)).
 *
 * @param o element whose presence in this set is to be tested
 * @return true if this set contains the specified element
 */
public boolean contains(Object o) {
return map.containsKey(o);
}

/**
 * Removes the specified element from this set if it is present.
 * More formally, removes an element e such that
 * (o==null ? e==null : o.equals(e)),
 * if this set contains such an element.  Returns true if
 * this set contained the element (or equivalently, if this set
 * changed as a result of the call).  (This set will not contain the
 * element once the call returns.)
 *
 * @param o object to be removed from this set, if present
 * @return true if the set contained the specified element
 */
public boolean remove(Object o) {
return map.remove(o)==PRESENT;
}

Ja tu nic o dedeni javadocu nevidim.

-- 
Jiří Mareš (mailto:[EMAIL PROTECTED])
ČSAD SVT Praha, s.r.o. (http://www.svt.cz)
Czech Republic


Re: Zapisovanie GIFov

2007-05-24 Thread Rastislav Rehak

|ImageIO.write(img, "GIF", *new *File("obr.gif"));

|
Peter Stibrany  wrote / napísal(a):

Prajem pekny den,

ktoru kniznicu pouzivate na zapisovanie obrazkov vo formate GIF v Jave
1.5, cez ImageIO API?

Nasiel som viacero kniznic, ale tie dobre vyzerajuce (Gif4J PRO) su 
komercne.

Okrem toho ma zaujalo gif-plugin.dev.java.net, ale cislo verzie 0.1 z
roku 2005 nie je velmi povzbudive.
Zial prejst na Java6 zatial nemozeme.

Ktoru kniznicu pouzivate vy?

-Peter Stibrany




--
Rastislav Rehák
EEA communication solutions
Hattalova 12, 831 03 Bratislava, Slovakia

tel/fax: +421 2 4445 3690
mobile: +421 918 619 891
icq:466031223 
http://www.eea.sk




Re: Zapisovanie GIFov

2007-05-24 Thread Richard Malaschitz

Uz desat rokov tento programik:

http://www.gurge.com/amd/old/java/GIFEncoder/src/GIFEncoder.java


Dňa 24.5.2007, Peter Stibrany <[EMAIL PROTECTED]> napísal(a):


Prajem pekny den,

ktoru kniznicu pouzivate na zapisovanie obrazkov vo formate GIF v Jave
1.5, cez ImageIO API?

Nasiel som viacero kniznic, ale tie dobre vyzerajuce (Gif4J PRO) su
komercne.
Okrem toho ma zaujalo gif-plugin.dev.java.net, ale cislo verzie 0.1 z
roku 2005 nie je velmi povzbudive.
Zial prejst na Java6 zatial nemozeme.

Ktoru kniznicu pouzivate vy?

-Peter Stibrany



Re: hashset contains wtf

2007-05-24 Thread Martin Kuba
Jiri Mares wrote:
>> Javadoc k contains() i remove() se dedi ze Set,
> 
> To neni pravda. Vynatek ze zdrojaku JDK6 k tride HashSet:
> Ja tu nic o dedeni javadocu nevidim.

Aha, omlouvam se za nepresnost, nedival jsem se do zdrojaku.
Nicmene javadoc ke contains() u HashSet jsou *stejne* jako u Set
a dokonce u Collection. A podle mne contains u HashSet porusuje
kontrakt od Collection. Zkuste si tohle:


import java.util.*;
import java.util.concurrent.CopyOnWriteArraySet;

public class MutovaniHash {
public static void main(String[] args) {
List list;
Set> set;

list = new ArrayList();
set = new HashSet>();

test(set, list);

list = new ArrayList();
set = new CopyOnWriteArraySet>();

test(set, list);
}

private static void test(Collection> collection, List
list) {
collection.add(list);
list.add(1);
System.out.println("collection = " + 
collection.getClass().getSimpleName());
System.out.println("collection.contains(list) = " +
collection.contains(list));
for(List prvek : collection) {
if(prvek.equals(list)) {
System.out.println("list je obsazen ");
System.out.println("prvek.hashCode() = " + prvek.hashCode());
System.out.println("list.hashCode() = " + list.hashCode());
}
}
}
}


Dostanete:

collection = HashSet
collection.contains(list) = false
list je obsazen
prvek.hashCode() = 32
list.hashCode() = 32

collection = CopyOnWriteArraySet
collection.contains(list) = true
list je obsazen
prvek.hashCode() = 32
list.hashCode() = 32


Cili HashSet ten zmutovany list *obsahuje* (contains),
protoze ho muzu najit iteratorem, pri porovnani equals()
dostanu true a hashCode() vraci to same, cili plni kontrakt.

Ale zaroven jeji metoda contains() vraci false, ackoliv jine
implementace Set se chovaji korektne.

IMHO tedy je javadoc ke contains() u HashSet spatne.

Makub
-- 
~~
Supercomputing Center Brno Martin Kuba
Institute of Computer Scienceemail: [EMAIL PROTECTED]
Masaryk University http://www.ics.muni.cz/~makub/
Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775
--


smime.p7s
Description: S/MIME Cryptographic Signature


Re: Zapisovanie GIFov

2007-05-24 Thread Peter Stibrany

Vdaka za odpoved,

presne tento postup pouzivam, avsak zapisovanie GIFov je v standardnej
Jave az od verzie 1.6. Preto hladam kniznicu, ktora by to rovnakym
sposobom zvladla aj v 1.5.

-ps

On 5/24/07, Rastislav Rehak <[EMAIL PROTECTED]> wrote:


 ImageIO.write(img, "GIF", new File("obr.gif"));


 Peter Stibrany  wrote / napísal(a):
Prajem pekny den,

 ktoru kniznicu pouzivate na zapisovanie obrazkov vo formate GIF v Jave
 1.5, cez ImageIO API?

 Nasiel som viacero kniznic, ale tie dobre vyzerajuce (Gif4J PRO) su
komercne.
 Okrem toho ma zaujalo gif-plugin.dev.java.net, ale cislo verzie 0.1 z
 roku 2005 nie je velmi povzbudive.
 Zial prejst na Java6 zatial nemozeme.

 Ktoru kniznicu pouzivate vy?

 -Peter Stibrany



 --
Rastislav Rehák
EEA communication solutions
Hattalova 12, 831 03 Bratislava, Slovakia

tel/fax: +421 2 4445 3690
mobile: +421 918 619 891
icq:466031223
http://www.eea.sk



Re: Zapisovanie GIFov

2007-05-24 Thread Peter Stibrany

Vdaka za tip. Skoda, ze nepodporuje ImageIO interfejs, takto to bude
chciet viac uprav.

-ps

On 5/24/07, Richard Malaschitz <[EMAIL PROTECTED]> wrote:

Uz desat rokov tento programik:

http://www.gurge.com/amd/old/java/GIFEncoder/src/GIFEncoder.java


 Dňa 24.5.2007, Peter Stibrany <[EMAIL PROTECTED]> napísal(a):
> Prajem pekny den,
>
> ktoru kniznicu pouzivate na zapisovanie obrazkov vo formate GIF v Jave
> 1.5, cez ImageIO API?
>
> Nasiel som viacero kniznic, ale tie dobre vyzerajuce (Gif4J PRO) su
komercne.
> Okrem toho ma zaujalo gif-plugin.dev.java.net, ale cislo verzie 0.1 z
> roku 2005 nie je velmi povzbudive.
> Zial prejst na Java6 zatial nemozeme.
>
> Ktoru kniznicu pouzivate vy?
>
> -Peter Stibrany
>




Re: Plneni sestav

2007-05-24 Thread Roman Pichlik
timer service objekt je persistentni, to znamena, ze jeho nschedulovani 
prezije restart.


Ales Dostal napsal(a):
Zkousel jsem ten TimerService. Vypada to, ze to bude v poradku. 
Na klientovi nastavim, odkdy a jak casto se bude metoda spoustet.

I po schozeni klienta dany proces bezi, takze neni vazan na klienta. Slo mi jen 
o to, aby uzivatel byl schopen dane joby spravovat.
Problem mam spise s jinou veci, ve chvili, kdy provedu deploy nove ejb verze na server, vsechny tyto informace ztratim. 
Napadlo me, ze bych dane naplanovane ulohy ulozil do databaze. 
Ted ale nevim, jak pri deploy aplikace provest to, aby si sahnul do DB a nastavil dane timeservices podle dat v DB.


--
S pozdravem Roman "Dagi" Pichlik

/* http://www.sweb.cz/pichlik/ Blog pro kodery */


RE: hashset contains wtf

2007-05-24 Thread Karel Tejnora
Opomenuti obecnych pravidel

hashCode musi odpovidat chovani equals tj. A.equals(B)== true pak
A.hashCode()==B.hashCode() a zaroven A.equals(B) == false pak
A.hashCode()!=B.hashCode()

a vysledek hashCode() se pro stejny objekt se nemeni od spusteni JVM.

Nekde v archivu konference je odkaz na Bloch Effective programming in
Java (nebo jak se to jmenuje), kde se Bloch venuje efektivni metode pro
hash a equals.

karel

On ??t, 2007-05-24 at 11:47 +0200, Podlesak Kamil wrote:
> hashCode() a equals()



RE: hashset contains wtf

2007-05-24 Thread lukas
On Thu, 24 May 2007 17:10:03 +0200, Karel Tejnora wrote
> Opomenuti obecnych pravidel
> 
> hashCode musi odpovidat chovani equals tj. A.equals(B)== true pak
> A.hashCode()==B.hashCode() a zaroven A.equals(B) == false pak
> A.hashCode()!=B.hashCode()

Ta druha podminka prae platit nemusi.

A.equals(B)==false neznamena, ze maji ruzne hashovani.
Tj. muzou existovat kolize :-)
Doporucuji precist nejakou teorii k hashovani :-)

  Lukas



Re: hashset contains wtf

2007-05-24 Thread Filip Jirsák

Javadoc k java.util.Set říká:

Note: Great care must be exercised if mutable objects are used as set
elements. The behavior of a set is not specified if the value of an object
is changed in a manner that affects equals comparisons while the object is
an element in the set.

V dokumentaci podle mne nikde není, že pro prvek, který nalezne iterátor,
musí contains() true. Stejně tak tam není uvedeno, zda ona metoda equals()
se volá na aktuální instanci nebo na instanci, která byla do Setu vložena
(přestože ve skutečnosti toto nejsou dvě různé instance). To všechno jsou
sice logické předpoklady, ale v dokumentaci je jasně napsáno, že na
proměnlivé objekty je třeba si dávat pozor, takže by člověk neměl očekávat,
že se to bude chovat logicky.

Nicméně zmínka o tom, že HashSet nějak souvisí s hashCode, by jistě v
dokumentaci být mohla.

Filip Jirsák


2007/5/24, Martin Kuba <[EMAIL PROTECTED]>:



Cili HashSet ten zmutovany list *obsahuje* (contains),
protoze ho muzu najit iteratorem, pri porovnani equals()
dostanu true a hashCode() vraci to same, cili plni kontrakt.

Ale zaroven jeji metoda contains() vraci false, ackoliv jine
implementace Set se chovaji korektne.

IMHO tedy je javadoc ke contains() u HashSet spatne.

Makub
--
~~
Supercomputing Center Brno Martin Kuba
Institute of Computer Scienceemail: [EMAIL PROTECTED]
Masaryk University http://www.ics.muni.cz/~makub/
Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775
--





--
Filip Jirsák
[EMAIL PROTECTED]