Re: smerovanie javy 7,8

2011-07-21 Tema obsahu Tomas Studva
Tu by som suhlasil, ale Java sa vlece ako slymak (hlemyzd). Vacsina
konstrukcii je uz preverenych v inych jazykoch ako napriklad funkcionaly v
Lispe, ... Suhlasim ze Java si udrziava kompatibilitu na urovni byte kodu.

Co sa tyka technologii, tak nie je smerodajny iba vyvoj. V mnohych firmach
sa uvazuje komplexny pohlad na vec, co sa tyka dostupnych ludi, resoursov
(pocitace, software), deployment(OS, runtime, ...).

Ked by sme porovnali Javu a PHP, tak su to dva rozne svety. Ja som napriklad
zazil vyvoj webovych aplikacii, kde nebolo presne jasne co to bude a ako to
bude fungovat. Pisali sme to v Jave + Struts a bola to urcite strata casu,
lebo tam sa veci tazko menia. Bezalo to na linuxoch, v applikacnom servery
co bola tiez chyba, potrebovalo to vela RAM. Programator v Jave je triez
obvykle drahsi. Bol to kandidat skor na to PHP alebo ROR.

Na druhej strane v Jave sa rodia skvele myslienky, super frameworky.
Castokrat su to aj interne frameworky vo firmach, ktore su vseobecne, aby
prezili niekolko rokov az 10 rokov. Podla mna vo vseobecnosti Java ma navrh,
ak sa jedna o system s velmi dlhou zivotnostou (a zaroven velkeho rozsahu) a
naopak ak ide o nieco velmi kratkodobe, tak Javu skor nie. Priklad system na
50 rokov - urcite nie ROR, PHP aj keby vyvoj bol o 30% lacnejsi.

Vela tiez zavisi od konkretnej firmy/korporacie a kulture. Ak sa niekdo
napr. spoji s IBM, tak moze cakat ze bude stale pozadu o 5 rokov oproti
zvysku sveta. Ak to porovname s Microsoftom ako partnerom, tak tam je to
omnoho prijemnejsie.

Najlepsie je mat expertov na vsetko so skusenostami so vsetkym dobrym a
progresivnym :).

2011/7/19 Zdeněk Troníček troni...@fit.cvut.cz

 Tohle platí nejen v oblasti frameworků, ale třeba i pro vlastnosti jazyka.
 Do produkčního jazyka jako je Java by neměly být přidávány neprověřené
 konstrukce, protože to může napáchat více škody než užitku. Lepší je
 počkat, zda se tyto osvědčí jinde (např. v nějakých experimentálních
 jazycích) a přidat je později. Kritici budou poukazovat na to, že Java
 není na špici. Není. Ale od produkčního jazyka bychom to ani neměli
 očekávat.

 V oblasti frameworků je situace analogická. Experimentální frameworky
 přicházejí s novými myšlenkami, z nichž některé zapadnou a jiné přežijí.
 Ty, které přežijí, se pak vyplatí integrovat např. do JEE či Springu.
 Navíc experimentální frameworky mohou rychleji inovovat a často se nestydí
 zapomenout na zpětnout kompatibilitu. Takže možná trochu paradoxně tato
 roztříštěnost žene Javu kupředu.

 Myslet si, že nějaký osvícený guru pozná, které myšlenky se osvědčí a
 které ne, je naivní a vede často ke zklamání. Viz např. checked exceptions
 v Javě, které byly zavedeny aniž by prošly zkouškou.

 Z.
 --
 Zdenek Tronicek
 FIT CTU in Prague


 Ondra Medek napsal(a):
   Hlavnym konkurentom javy je podla mna ozaj .net ten ma ten korporatny
  support, a nema javovsku vlastnost roztriestenost ktora ubera podla
  mna
  energiu jave. Energia sa nedeli ako je to u Javy ale ide jednym smerom.
  A v
  konecnom dosledku je asi vyvoj rychlejsi, a teda tiez
  lacnejsi(technologie
  frameworky tam nieje tak casto potrebne integrovat=menej potencialnych
  problemov atd.).
 
  Roztristenost je v dlouhodobem hledisku vyhoda, viz napr. Linux vs.
  Windows. Ano, Windows jsou dobre na PC, ale napr. rozjezd netbooku,
  tabletu a smart phone zaspaly. Taky starsi z nas si vzpomenou, ze
  rozjezd Internetu Widle zaspaly take. Ta roztristenost prave prinasi
  treba Grails, Spring a podobne projekty, diky kterym se Java drzi na
  spici, i kdyz u Sunu nebo Oraclu jsou krapet pozadu :-).
 




Re: javac vs. Eclipse - čísla řádků v .class u víceřádkových výrazů

2011-04-26 Tema obsahu Tomas Studva
Ja len doplnim. Eclipse kompilator dokaze kompilovat aj projekty (defacto
adresare so zdrojakmi) s cyklickymi zavislostami, co sa s antom, mavenom
alebo javac robi velmi tazko (vlastne to nepodporuju). V tomto smere
podporuje viacprechodovu kompilaciu. Eclipse kompilator sa da pouzivat aj
ako standalone kompilator. Je to asi pat pluginov, ktore treba mat a je
nejaka classa cez ktoru sa to spusta. Da sa to najst na nete.

Co sa tyka inkrementalnych buildov, tak tie su podporovane aj mavenom, ale
neviem co to znamena pre kompilaciu. V ideckach okrem inkrementalnych
buildov, co je pre mna samozrejmost, by mal byt este specialny parser java
zdrojakov as you write. To napr. eclipse ma. Je to vyhoda, lebo programator
vidi co pise este pred ulozenim (save), co moze byt niekedy pekna otrava.

Ak sa spravne pamatam, tak sun javac vyvijal javac iba ako zakladnu
implementaciu kompilatora, teda urcite nie na integraciu do IDE.

Tomas
2011/4/26 Robert Novotny robert.novo...@upjs.sk

 Informacii o tom kompilatore nie je vela. Prakticky sa vie len to, ze
 Eclipse Compilator (ECJ) sa hrdi inkrementalnou kompilaciou, co znamena, ze
 v ramci projektu sa udrziava mnozina zmien v suboroch, ktora nastala od
 poslednej kompilacie. Pri rekompilacii sa zisti len zoznam zmenenych /
 novych suborov od predoslej kompilacie a z nich sa vyrobia .class subory. Ak
 je nejaky .java subor vymazany, prislusny .class sa pri inkrementalnej
 kompilacii vymaze tiez.

 ECJ tiez udrziava komplexny strom zavislosti medzi .java zdrojakmi, cim
 adresuje napr. pripady, ked sa niektore zmenene subory daju skompilovat a
 niektore kvoli chybam nie a minimalizuje pocet suborov, ktore treba skutocne
 prekompilovat.

 Tato featura bola dost vyznamna v casoch, ked este NetBeans nemal
 compile-on-save a nesiel cez Ant, ale dnes aj Ant kompiluje len zmenene
 subory (hoci netusim, ako je to v NetBeans a megaprojektoch).

 ECJ ma zrejme lepsiu integraciu s reportovanim chyb, mozno sa navesat cez
 listenery a dostavat kompilacne chyby a varovania, ktore mozno programovo
 spracovat. Dnes uz samozrejme existuje javax.tools, ale to je len zalezitost
 JDK1.6+ a predtym to zdaleka nebol standard

 A ako povedal kolega, Eclipse kompilator ma ine spravanie v pripade chyb:

 public class Thing {
 public void getSecret() {
 return x;
 }

 public static void main(String[] args) {
 new Thing().getSecret()
 }
 }

 ECJ to radostne skompiluje a za behu metoda getSecret() hodi
 java.lang.Error: Unresolved compilation problem.

 Javac to odmietne skompilovat.

 Inak ECJ sa uz od nepamati pouziva v Tomcate na kompilaciu servletov, ktore
 vzniknu z JSP stranok.

 RN


 On 25. 4. 2011 22:17, Libor Jelinek wrote:

 Já patřím mezi asi tu masu co nikdy nekompilovala ničím jiným, než Oracle
 javac (taky mi to nejde z pusy, ale snažím se :-)). Nikdy jsem se nesetkal s
 Blackdown, Ice, gjc apod. kompilátory.

 A NetBeans používá taky vlastní kompilátor?

 Když dám v Eclipsech Build, tak mi to přeloží jakým kompilátorem? Když
 (jako ve zmíněném příkladu z Stackoverflow) Eclipse zkompiluje, ale
 Sun/Oracle nikoli, tak jak se to pak chová při běhu oproti Sun/Oracle JRE?

 2011/4/25 Ladislav Thon ladi...@gmail.com

   Já kupříkladu narazil na rozdíly v kompilaci při volání metody se
 signaturou používající Enum?, Eclipsí kompilátor to zvládl na jedničku,
 javac měl problémy, viz diskuze na stackoverflow.com:


 http://stackoverflow.com/questions/2220763/java-specific-enums-and-generic-enum-parameters


 Překladače mohou odvozovat parametrizované typy nad rámec minimálních
 požadavků. Suní překladač (hádám, že Oraclí začnu říkat nejdřív za pět
 let) se moc nesnaží, překladač z Eclipsu toho zvládne odvodit víc. Neznamená
 to, že některý z překladačů je vadný, jenom že o tom lidi moc neví.

 LT




 Ovšem pokud používáte Maven, musíte se stejně podřídit standardnímu javac
 (tedy pokud neexistuje nějaký Maven plugin, který by uměl použít pro
 kompilaci Eclipse -- a i kdyby existoval, ani bych ho snad nechtěl použít).

 Martin Schayna




 On 04/25/2011 02:25 PM, Libor Jelinek wrote:

 To jsou tedy vlastnosti s ohledem na IDE. Já stejně většinou používám
 javac z Oraclího JDK přes Ant, tak jsem jen chtěl vědět, zda náhodou není
 Eclipse compliter třeba několikanásobně rychlější/lepší apod. :-)

 Díky.
 Libor

 Dne 25. dubna 2011 11:17 Filip Jirsák fi...@jirsak.org napsal(a):

 Kompilátor eclipse například umožňuje přeložit i třídu s chybou (chyba
 v syntaxi v nějaké metodě apod.), jenom místo kódu dané chybné metody
 vloží vyhození nějaké runtime výjimky. K tomu asi sunovský kompilátor
 nedonutíte. Eclipse (IDE) pak ten přeložený kód používá pro code
 completion a spol., kde je užitečné, aby jedna chybná metoda
 nezabránila získávat informace o zbytku třídy a ostatních třídách. Na
 druhou stranu je potřeba si na to dávat pozor a finální verzi přeložit
 s plnou kontrolou chyb, aby se ten kód, kde se místo nějaké metody
 bude vyhazovat výjimka na řádku 353 chybí 

Re: javac vs. Eclipse - čísla řádků v .class u víceřádkových výrazů

2011-04-26 Tema obsahu Tomas Studva
To co ecj povazuje za chybu sa da nastavit. Vid nasledovny obrazok
http://www.informit.com/content/images/chap6_0321288157/elementLinks/06fig10.jpg
.
Normalne ked clovek kodi, tak by kazdy projekt mal byt bez cerveneho znaku
error, takze je lahko viditelne ci nejaky kompilacny problem existuje alebo
nie. Niekedy sa vsak stava, ze projekt je natrvalo oznaceny ako chybny, lebo
chyba je niekde v xmlka alebo j2ee alebo v jsp a neda sa jej rozumne zbavit.
Potom sa mierne straca prehlad volnym okom.

Vseobecne sa tu vsak bavite o dvoch roznych veciach. Ecj je totiz normalny
kompilator, ale eclipse spracovava jeho vystup (vola ho priamo) a zobrazuje
ho strukturovane, vizualne. Druha vec je ze eclipse je schopny kompilovat a
spustat java classy s chybami. Tuto ficuriu som vyuzil velmi velmi
zriedkavo, ked som mal zrovna nieco rozrobene a nieco ine som potreboval
ukazat.

BTW som si spomenul ze ECJ by mal byt schopny vyuzivat viac jadier pri
kompilacii. Dokaze to aj javac?
2011/4/26 Robert Novotny robert.novo...@upjs.sk

 Zrejme to ma prinos pri rychlosti buildov a podla mna pred vekmi to bola
 zrejme jedine riesenie problemu, ako pouzivat kompilator krizom cez rozne
 virtualmachiny a rozumne s nim interagovat. A este mi napadlo, ze realne je
 mozne pouzivat i metody triedy, ktora ma syntakticke chyby (zrejme vhodne vo
 vyvoji).

 Inak ja som si toto spravanie kompilatora paradoxne uvedomil az pri pisani
 predoslych mailov a nikdy mi to neprekazalo. Chybny zdrojak Eclipse sice
 skompiluje, ale okamzite su cervene podciarknute nespravne konstrukty a vo
 view Problems vidim prehladne vsetky chyby. Ak spustate projekt s chybami,
 dostanete hlasku, ci ho naozaj chcete spustit a ide sa.

 View Problems je vsak standardne nastaveny dost divne, pretoze ukazuje
 chyby v celom workspace (to je tych Vasich 400 errorov) a i pre mna je to
 chaos. Ja si standardne nastavujem zobrazovat len problemy v aktualne
 zvolenom elemente v potomkoch, t. j. ked klikam po packagoch, tak sa mi
 zobrazuju kumulativne chyby za cely balicek a ked editujem zdrojak, vidim
 len chyby v nom. Da sa to nastavit vo vlastnostiach viewu, Configure
 Contents, vytvorit novy Configuration, pomenovat ho, nastavit Scope na
 ,,Selected item and its children.

 Volitelne si este mozete vypnut grupovanie a potom vidite presne to, co v
 NetBeansackej konzole, ale v ovela prehladnejsej forme, pretoze si to mozete
 triedit, grupovat, filtrovat podla povodu a podobne.

 Mimo Eclipse asi ECJ nema valny zmysel, resp. nevidim ho. (V buildovacich
 nastrojoch obvykle ide i tak postupnost clean, build).

 RN


 On 26. 4. 2011 17:01, Dusan Msk wrote:

 Ahoj.

 2011/4/26 Robert Novotny robert.novo...@upjs.sk


 A ako povedal kolega, Eclipse kompilator ma ine spravanie v pripade chyb:

 public class Thing {
 public void getSecret() {
 return x;
 }

 public static void main(String[] args) {
 new Thing().getSecret()
 }
 }

 ECJ to radostne skompiluje a za behu metoda getSecret() hodi
 java.lang.Error: Unresolved compilation problem.


 Aky to ma realny prinos mimo jsp? Momentalne nedobrovolne prechadzam na
 eclipse a tato vlastnost eclipse kompilatoru
 mi nesmierne vadi *1 ( ked sa teda oprostim sprostych slov ). Z netbeans
 som zvyknuty pri neuspesnom builde hodit zrak do konzoly a hned opravit
 problem, v eclipse ziadnu konzolu nevidim, zato mam akusi zalozku problems
 a v nej svieti 400 error-ov :-)

 Na spolupracu eclipse-maven to takisto neprida, eclipse si tam cosi kdesi
 chrousta a ja potom na hudsone mozem
 cumiet ako pako, preco to nefunguje :-)

 *1 - predpokladam, ze sa to da niekde vypnut, zatial som to neskumal

  Javac to odmietne skompilovat.

 Inak ECJ sa uz od nepamati pouziva v Tomcate na kompilaciu servletov,
 ktore vzniknu z JSP stranok.

 RN


 On 25. 4. 2011 22:17, Libor Jelinek wrote:


 A NetBeans používá taky vlastní kompilátor?


 AFAIK pouziva z JDK.



 Když dám v Eclipsech Build, tak mi to přeloží jakým kompilátorem? Když
 (jako ve zmíněném příkladu z Stackoverflow) Eclipse zkompiluje, ale
 Sun/Oracle nikoli, tak jak se to pak chová při běhu oproti Sun/Oracle JRE?

 2011/4/25 Ladislav Thon ladi...@gmail.com

   Já kupříkladu narazil na rozdíly v kompilaci při volání metody se
 signaturou používající Enum?, Eclipsí kompilátor to zvládl na jedničku,
 javac měl problémy, viz diskuze na stackoverflow.com:


 http://stackoverflow.com/questions/2220763/java-specific-enums-and-generic-enum-parameters


 Překladače mohou odvozovat parametrizované typy nad rámec minimálních
 požadavků. Suní překladač (hádám, že Oraclí začnu říkat nejdřív za pět
 let) se moc nesnaží, překladač z Eclipsu toho zvládne odvodit víc. Neznamená
 to, že některý z překladačů je vadný, jenom že o tom lidi moc neví.

 LT




 Ovšem pokud používáte Maven, musíte se stejně podřídit standardnímu
 javac (tedy pokud neexistuje nějaký Maven plugin, který by uměl použít pro
 kompilaci Eclipse -- a i kdyby existoval, ani bych ho snad nechtěl použít).

 

Re: Java fór

2011-04-12 Tema obsahu Tomas Studva
Ano, to bol zjednoduseni priklad, nechcel som zverejnit original kod, ale
sak preco nie, aj tak bude kazdemu na dve veci, za formatovanie sa
ospravedlnujem, rozpadlo sa:

*static* Token Scan() {

*int* state, *apx*;

*StringBuffer* buf;

*while* (*ignore*.get((*int*)*ch*)) *NextCh*();

*if* ((*ch* == '/')  *Comment*()) *return* *Scan*();

*t* = *new* Token();

*t*.pos = *pos*; *t*.col = *pos* - *lineStart* + 1 - *offset*; *t*.line = *
line*;

buf = *new* StringBuffer();

state = *start*[*ch*];

apx = 0;

loop: *for* (;;) {

buf.append(*strCh*);

*NextCh*();

*switch* (state) {

*case* 0:

{*t*.kind = *noSym*; *break* loop;} // NextCh already done

*case* 1:

*if* (*ch* == '-'

|| *ch* = '0'  *ch* = '9'

|| *ch* = 'A'  *ch* = 'Z'

|| *ch* == '_'

|| *ch* = 'a'  *ch* = 'z') {*break*;}

*else* *if* (*ch* == '/') {state = 15; *break*;}

*else* {*t*.kind = 1; *CheckLiteral*(buf); *break* loop;}

*case* 2:

*if* (*ch* = '0'  *ch* = '9') {state = 3; *break*;}

*else* {*t*.kind = *noSym*; *break* loop;}

*case* 3:

*if* (*ch* = '0'  *ch* = '9') {*break*;}

*else* *if* (*ch* == '.') {state = 4; *break*;}

*else* {*t*.kind = *noSym*; *break* loop;}

*case* 4:

*if* (*ch* = '0'  *ch* = '9') {state = 5; *break*;}

*else* {*t*.kind = *noSym*; *break* loop;}

*case* 5:

*if* (*ch* = '0'  *ch* = '9') {*break*;}

*else* {*t*.kind = 3; *break* loop;}

*case* 6:

*if* (*ch* = 9

|| *ch* = 11  *ch* = 12

|| *ch* = 14  *ch* = '!'

|| *ch* = '#') {*break*;}

*else* *if* (*ch* == '') {state = 8; *break*;}

*else* {*t*.kind = *noSym*; *break* loop;}

*case* 7:

*if* (*ch* = 9

|| *ch* = 11  *ch* = 12

|| *ch* = 14  *ch* = ''

|| *ch* = '(') {*break*;}

*else* *if* (*ch* == 39) {state = 8; *break*;}

*else* {*t*.kind = *noSym*; *break* loop;}

*case* 8:

{*t*.kind = 4; *break* loop;}

*case* 9:

*if* (*ch* = '0'  *ch* = '9') {*break*;}

*else* *if* (*ch* == '.') {state = 4; *break*;}

*else* {*t*.kind = 2; *break* loop;}

*case* 10:

{*t*.kind = 7; *break* loop;}

*case* 11:

{*t*.kind = 12; *break* loop;}

*case* 12:

{*t*.kind = 13; *break* loop;}

*case* 13:

{*t*.kind = 14; *break* loop;}

*case* 14:

{*t*.kind = 15; *break* loop;}

*case* 15:

*if* (*ch* == 'F') {state = 16; *break*;}

*else* {*t*.kind = *noSym*; *break* loop;}

*case* 16:

*if* (*ch* == 'I') {state = 17; *break*;}

*else* {*t*.kind = *noSym*; *break* loop;}

*case* 17:

*if* (*ch* == 'N') {state = 18; *break*;}

*else* {*t*.kind = *noSym*; *break* loop;}

*case* 18:

*if* (*ch* == 'P') {state = 19; *break*;}

*else* {*t*.kind = *noSym*; *break* loop;}

*case* 19:

*if* (*ch* == 'E') {state = 20; *break*;}

*else* {*t*.kind = *noSym*; *break* loop;}

*case* 20:

*if* (*ch* == 'R') {state = 21; *break*;}

*else* {*t*.kind = *noSym*; *break* loop;}

*case* 21:

*if* (*ch* == 'I') {state = 22; *break*;}

*else* {*t*.kind = *noSym*; *break* loop;}

*case* 22:

*if* (*ch* == 'O') {state = 23; *break*;}

*else* {*t*.kind = *noSym*; *break* loop;}

*case* 23:

*if* (*ch* == 'D') {state = 24; *break*;}

*else* {*t*.kind = *noSym*; *break* loop;}

*case* 24:

{*t*.kind = 19; *break* loop;}

*case* 25:

{*t*.kind = 27; *break* loop;}

*case* 26:

{*t*.kind = 28; *break* loop;}

*case* 27:

{*t*.kind = 29; *break* loop;}

*case* 28:

{*t*.kind = 30; *break* loop;}

*case* 29:

{*t*.kind = 0; *break* loop;}

}

}

*t*.str = buf.toString();

*t*.val = *t*.str.toUpperCase();

*return* *t*;

}


2011/4/11 Zdeněk Troníček troni...@fit.cvut.cz

 Ahoj,

 automat by měl mít číst něco ze vstupu. Nechybí tam někde vstup?

 Z.
 --
 Zdenek Tronicek
 FIT CTU in Prague


 Tomas Studva napsal(a):
   Dobry den,
  vedeli by ste si precitat nasledovny program. Nie je to priklad zo skoly
  ale
  z praxe. Implementacia stavoveho automatu, kod je stary 10 rokov a
  samozrejme ze to je len nezmyselny uryvok.
 
  state = -1;
 
  loop: *for* (;;) {
 
  state = state + 1;
 
  *switch* (state) {
 
  *case* 0: state = 1; break;
 
  case 1: state = 0 *break*;
 
  case 2: break loop;
 
  }
 
  }
 
  Pre mna to je nieco velmi vynimocne, lebo je tam navestie a tiez ten for.
 
  S pozdravom Tomas
 




Re: Java fór

2011-04-12 Tema obsahu Tomas Studva
Tak, tak. Urcite aby ma povodny programator co najviac potrapil :). Je to
tak ako pisete, for(;;) je while(true) a break vyskoci iba zo switchu. break
look, skoci na navestie. Som zvedavy ake perly ma este cakaju. Inak v
dnesnej dobe pisat parser ak sa jedna o nieco zlozitejsie je vhodne pomocou
lexem a gramatiky definovanej v nejakom jazyku.

2011/4/11 Robert Novotny robert.novo...@upjs.sk

 Break z loopu sa da pouzit na vyskocenie z vnorenych cyklov cez viacero
 urovni. Nie je to nahodou preto, ze klasicky break by vyskocil zo switchu,
 ale nie z loopu?

 Otazka je, preco je tam break z poslednej vetvy switchu, ked za nou uz
 nejde nic?

 A preco je tam c-ckarsky for(;;) namiesto while(true)?

 Je pozoruhodne, ze

 On 11. 4. 2011 16:57, Tomas Studva wrote:

 Dobry den,
 vedeli by ste si precitat nasledovny program. Nie je to priklad zo skoly
 ale z praxe. Implementacia stavoveho automatu, kod je stary 10 rokov a
 samozrejme ze to je len nezmyselny uryvok.

 state = -1;
 loop: *for* (;;) {

 state = state + 1;

 *switch* (state) {
 *case* 0: state = 1; break;

 case 1: state = 0 *break*;

 case 2: break loop;

 }

 }

 Pre mna to je nieco velmi vynimocne, lebo je tam navestie a tiez ten for.

 S pozdravom Tomas





Re: Java fór

2011-04-12 Tema obsahu Tomas Studva
Ja ked som potreboval lexer, tak som si ho nechal vygenorovat, lebo bolo
treba aj parser (to je aj tento pripad). Ale je to zaujimavy postreh.
Myslite jednotlive stavy definovat ako metody?

2011/4/12 Ladislav Thon ladi...@gmail.com

 Hm, není mi jasné, proč si autor zavádí vlastní stavovou proměnnou, lexer
 se dá triviálně napsat i bez ní (resp. stavovou proměnnou je program
 counter), několikrát jsem to tak dělal. A tohle nevypadá jako něco, co by se
 za dvě hodiny nedalo napsat ručně.

 LT


 2011/4/12 Tomas Studva tstu...@gmail.com

 Tak, tak. Urcite aby ma povodny programator co najviac potrapil :). Je to
 tak ako pisete, for(;;) je while(true) a break vyskoci iba zo switchu. break
 look, skoci na navestie. Som zvedavy ake perly ma este cakaju. Inak v
 dnesnej dobe pisat parser ak sa jedna o nieco zlozitejsie je vhodne pomocou
 lexem a gramatiky definovanej v nejakom jazyku.

 2011/4/11 Robert Novotny robert.novo...@upjs.sk

 Break z loopu sa da pouzit na vyskocenie z vnorenych cyklov cez viacero
 urovni. Nie je to nahodou preto, ze klasicky break by vyskocil zo switchu,
 ale nie z loopu?

 Otazka je, preco je tam break z poslednej vetvy switchu, ked za nou uz
 nejde nic?

 A preco je tam c-ckarsky for(;;) namiesto while(true)?

 Je pozoruhodne, ze

 On 11. 4. 2011 16:57, Tomas Studva wrote:

 Dobry den,
 vedeli by ste si precitat nasledovny program. Nie je to priklad zo skoly
 ale z praxe. Implementacia stavoveho automatu, kod je stary 10 rokov a
 samozrejme ze to je len nezmyselny uryvok.

 state = -1;
 loop: *for* (;;) {

 state = state + 1;

 *switch* (state) {
 *case* 0: state = 1; break;

 case 1: state = 0 *break*;

 case 2: break loop;

 }

 }

 Pre mna to je nieco velmi vynimocne, lebo je tam navestie a tiez ten for.

 S pozdravom Tomas







Java fór

2011-04-11 Tema obsahu Tomas Studva
Dobry den,
vedeli by ste si precitat nasledovny program. Nie je to priklad zo skoly ale
z praxe. Implementacia stavoveho automatu, kod je stary 10 rokov a
samozrejme ze to je len nezmyselny uryvok.

state = -1;

loop: *for* (;;) {

state = state + 1;

*switch* (state) {

*case* 0: state = 1; break;

case 1: state = 0 *break*;

case 2: break loop;

}

}

Pre mna to je nieco velmi vynimocne, lebo je tam navestie a tiez ten for.

S pozdravom Tomas


Re: Rich frontend gwt,zk,flex, pripadne iny

2011-03-14 Tema obsahu Tomas Studva
Dakujem za cenne info,
k bodu 2, ano ten sampler som pozeral, vsetko sa mi zdalo ok, az na tie
tabulky, ale lokalne som to neskusal. Ono to je predsa dost rozdiel keby to
bezalo niekde na intranete, co si myslim ze je najvhodnejsie nasadenie a v
mojom pripade sa jednalo o intranet.
Tomas
2011/3/14 Dusan Msk msk.c...@gmail.com

 Ahoj,

  ad 3.

 ja som pod Vaadin naprogramoval akusi evidenciu skladu. Mne osobne, ako
 programatorovi webom nedotknutemu Vaadin ohromne vyhovoval, pretoze
 zamaskoval velke mnozstvo know-how, ktore by som bez neho musel absorbovat.
 Vyvoj by sa dal prirovnat programovaniu klasickych desktop aplikacii ( mam
 skusenosti s QT(Jambi), ale v diskusiach som cital, ze je to tak isto
 ekvivalentne praci so swing-om ), clovek nemusi vobec nic tusit o html, css,
 javascripte ( aspon na zaciatok ). Vsetka logika aplikacie sa odohrava na
 serveri, klientsky kod sluzi len ako zobrazovadlo ( co moze v niektorych
 zlozitejsich pripadoch byt limitujuce kvoli vykonu, ale v realnej situacii o
 tom dost pochybujem. Koniec koncov pokial je potrebne spracovat nejaku ulohu
 priamo na klientovi, ta moznost hrabnut priamo na gwt/javascript tam zostava
 ). Eventy typu klik, mouseover, submit a tak podobne takisto letia priamo na
 server a obsluhuju sa v Java kode.

  ad 1
 Co sa tyka rychlosti, nedokazem sa fundovane vyjadrit, pretoze moj projekt
 pouzivaju paralelne 2 ludia. Odporucam si pozriet ich sampler (
 http://demo.vaadin.com/sampler/ ) a trochu poklikat, popripade checkoutnut
 a spustit nejake example aplikacie. Sampler zaroven obsahuje aj zdrojaky
 jednotlivych ukazok, takze sa da z neho dost inspirovat. Pokial by sme sa
 bavili o rychlosti tabuliek, strasne zavisi, akym sposobom je implementovany
 model. Pokial tabulu naplnim milionmi zaznamov, ktore musi klient drzat v
 pamati, bude sa to dlho nacitavat a praca s tym bude otrasna. Pokial sa
 spravne pouzije prislusny container, data si klient nacitava postupne a
 nevyskytuju sa desiatky sekund dlhe lagy. Samozrejme sa od toho neda
 ocakavat rychlost desktop aplikacie, kedze eventy mozu letiet cez pol sveta,
 ale to je asi u web aplikacie pochopitelne.

  ad 2.
 Flow vaadin aplikacie je odlisny od flow klasickej webovej aplikacie. Bez
 dodatocneho usilia sa vsetko odohrava v jednom okne na jednej url, pricom je
 mozne jeho obsah rozne menit. Ja mam napriklad okno rozdelene na 2 polovice,
 v lavo klasicky strom, kde si uzivatel vybera cinnost, ktoru chce vykonavat
 ( prezerat zaznamy, vytvorit novy atd ... ), v pravo samotny obsah. Na tomto
 strome mam obsluzny event, ktory podla toho, na ktory element uzivatel
 klikol, zmeni obsah pravej polovice okna. Po chvilke tapania si na to clovek
 spravi nejaku generiku, ktoru potom uz len recykluje.

 Clovek musi ale absorbovat je fakt, ze vaadin nie je web framework, ale ria
 framework, defaultne sa odohrava vsetko na jednej URL a bez dodatocnej
 obsluhy nefunguje back/forward button web browsera a tak podobne ( je to ale
 riesitelne a popisane vo vaadin book ). Proste vaadin aplikacia je desktop
 aplikacia v browseri. Urcitym minusom takisto je, ze neexistuje pouzitelny
 layout designer, takze si clovek musi dost kreslit na papier a potom to
 pozicovat rucne v java kode. Kedze je to ale silne komponentovo orientovane,
 tak sa to vacsinou pozicuje len raz a potom sa to akurat recykluje.

 Takze nejake subjektivne resume - ak o webe clovek nic nevie a ma
 naprogramovat RIA, ktorej feeling ma blizsie k desktop aplikacii ako k web
 portalu, vaadin je dobra volba. Pokial to ma byt ale klasicka web
 aplikacia/portal s webovym flow, bolo by to dost znasilnovania a je lepsie
 sa poobzerat niekde inde ( wicket? ). Mne ako byvalemu QT-ckarovi vaadin
 dokonale vyhovoval.

 --
 Dusan




 Dňa 11. marca 2011 15:46, Tomas Studva tstu...@gmail.com napísal(-a):

  Dobry den,
 chcem sa spytat na ten vaadin, kedze s nim mate skusenosti:
 1, je to dostatocne rychle? Napr. co som pozeral tabulky, tak tie sa mi
 zdali nepouzitelne pomale
 2, ako sa vo vaadin riesi flow control aplikacie
 3, ak sa nemylim, tak vadin ma abstraktnu vrstvu nad gwt, je to tak? Je to
 lepsie ako priamo pouzit GWT?

 Inak, naposledy ked som sa na vaadin pozeral, vyzeral ako velmi dobry
 framework, ale nezahrnal vsetky oblasti ktore by som od frameworku ocakaval.

 Tomas
   2011/3/8 Robert Slama rsl...@spiritline.org

 a co vaadin ? ten som pouzil na par projektoch a az na nejake
 drobnosti neboli nejake velke problemy s tym a pokial mas skusenosti
 so swingom tak to je ako cez kopirak.
 r^

 2011/3/8 Petr Prikryl peter.prik...@gmail.com:
   http://www.zive.cz/default.aspx?article=156146
  Adobe uz ten compiler ma v public tests.
 
  Jinak hodne se da vykouzlit s richfaces prip primefaces, ale nepodarilo
 se
  mi oba spojit...
  PP
 
 
  On 03/08/2011 02:05 PM, Marek wrote:
 
  Este som zabudol na dolezity faktor a to biedne vyhliadky pre flash do
  buducna, vzhladom na kombinaciu JS,html5. Mozno adobe zachrani niejaky
  compiler z flexu do js

Re: Rich frontend gwt,zk,flex, pripadne iny

2011-03-11 Tema obsahu Tomas Studva
Dobry den,
chcem sa spytat na ten vaadin, kedze s nim mate skusenosti:
1, je to dostatocne rychle? Napr. co som pozeral tabulky, tak tie sa mi
zdali nepouzitelne pomale
2, ako sa vo vaadin riesi flow control aplikacie
3, ak sa nemylim, tak vadin ma abstraktnu vrstvu nad gwt, je to tak? Je to
lepsie ako priamo pouzit GWT?

Inak, naposledy ked som sa na vaadin pozeral, vyzeral ako velmi dobry
framework, ale nezahrnal vsetky oblasti ktore by som od frameworku ocakaval.

Tomas
2011/3/8 Robert Slama rsl...@spiritline.org

 a co vaadin ? ten som pouzil na par projektoch a az na nejake
 drobnosti neboli nejake velke problemy s tym a pokial mas skusenosti
 so swingom tak to je ako cez kopirak.
 r^

 2011/3/8 Petr Prikryl peter.prik...@gmail.com:
   http://www.zive.cz/default.aspx?article=156146
  Adobe uz ten compiler ma v public tests.
 
  Jinak hodne se da vykouzlit s richfaces prip primefaces, ale nepodarilo
 se
  mi oba spojit...
  PP
 
 
  On 03/08/2011 02:05 PM, Marek wrote:
 
  Este som zabudol na dolezity faktor a to biedne vyhliadky pre flash do
  buducna, vzhladom na kombinaciu JS,html5. Mozno adobe zachrani niejaky
  compiler z flexu do js,html5 ale to je len moj nazor.
 
 
 
 
  2011/3/8 Marek ma...@gmail.com mailto:ma...@gmail.com
 
 Zdravim,
 
 Ktory z vyssie uvedenych frameworkov by ste odporucili na RichUI.
 Ide o B2B aplikaciu s javovskym backendom, desiatky max stovky
 uzivatelov.
 Moje pozorovanie:
 GWT- vyzera zaujimavo, no vraj strma learning curve
- potreba pouzit dalsi widget framework, pre vecsie
 mnozstvo widgetov
- pristupnot na mobiloch
 
 Flex- mnozstvo komponentov, vyzera ze sa v tom dobre,efektivne
 vyvyja, menej strma learning curve
   - moze byt problem s pristupnostou z mobilov napr. i*
   - vyssia narocnost flashu oproti javascriptu
 
 zaujimalo by ma porovnanie vykonu javascriptu,flashu, z mojich
 pozorovani je flash v priemere velmi narocny na klientske PC
 
 ZK- server side framework, neviem onom vela, nieje taky rozsireny
 
 
 
 
 -- M^2
 
 
 
 
  --
  M^2
 
 
  --
  Petr Prikryl
  ---
  petrprik...@centrum.cz
  prik...@admin24.cz
  www.admin24.cz
 
 



Java webstart

2011-02-24 Tema obsahu Tomas Studva
Dobry den,
snazim sa rozbehat tucneho klienta cez java webstart. Podla specifikacie je
mozne v jnlp subore nastavit java-vm-args, ale tie su obmedzene a nie je
mozne tam nastavit classpath, endorsed dirs ani ext.dirs (jedna sa o
rozsirenie tazkeho clienta o nejake IBM ... veci).

Zistil som ale ze java webstart aplikaciu mozem spustit z prikazoveho riadka
pomocou javaws a tam mozem nastavit vm options cez prepinac -J.
Takze som to skusil mam batch file ktory to tam setuje:

%JAVA_HOME%\bin\javaws -J-Djava.class.path=%JAVA_CLASSPATH%
-J-Djava.endorsed.dirs=%SN_ENDORSED_DIRS%
-J-Djava.ext.dirs=%JAVA_EXTENSION_DIRS% url

url je samozrejme cesta k jnlp suboru. Vsetko sa zda OK, az na to ze to
nefunguje a nikde neviem najst dokumentaciu k javaws a k tomu co je povolena
nastavit cez -J. Pravdepodobne je to rovnako obmedzene.

Ak niekto mate skusenosti s niecim podobnym prosim o kazdu radu/napad pre
distribuciu cez javaws. (runtime sa da predpripravit u klienta aby nebolo
potrebne nastavovat taketo veci, ale to nechceme, chceme ho dynamicky
konfigurovat)

Tomas


Re: Java webstart

2011-02-24 Tema obsahu Tomas Studva
Mate pravdu, no rozhodnutie uz padlo, nebolo moje a zasiahne celu firmu. Ale
inak napady mate dobre.
Tak zatial.

2011/2/24 Ondra Medek xmed...@gmail.com

 Ano javaws je nekdy spise naobtiz, to zde na konferenci probehlo
 nekolikrat. Nahradni reseni jsou:
 1. napsat si vlastni servlet + client, ktery stahne ze serveru novu
 verzi a spusti
 2. jako 1. ale ten maly client se instaluje pres JWS. Tedy pres JWS
 nainstalovat jen maleho clienta, ktery stahne vse ostatni a spusti.

 2011/2/24 jan_bar herkul...@yahoo.com:
   In article AANLkTim6kALMdrDJPB_UDUQg_3iTUpW32UAY-0NYA7d7
  @mail.gmail.com, tstu...@gmail.com
  says...
 
  Dobry den,
  snazim sa rozbehat tucneho klienta cez java webstart. Podla specifikacie
 je
  mozne v jnlp subore nastavit java-vm-args, ale tie su obmedzene a nie je
  mozne tam nastavit classpath, endorsed dirs ani ext.dirs (jedna sa o
  rozsirenie tazkeho clienta o nejake IBM ... veci).
 
  Zistil som ale ze java webstart aplikaciu mozem spustit z prikazoveho
 riadka
  pomocou javaws a tam mozem nastavit vm options cez prepinac -J.
  Takze som to skusil mam batch file ktory to tam setuje:
 
  %JAVA_HOME%\bin\javaws -J-Djava.class.path=%JAVA_CLASSPATH%
  -J-Djava.endorsed.dirs=%SN_ENDORSED_DIRS%
  -J-Djava.ext.dirs=%JAVA_EXTENSION_DIRS% url
 
  url je samozrejme cesta k jnlp suboru. Vsetko sa zda OK, az na to ze to
  nefunguje a nikde neviem najst dokumentaciu k javaws a k tomu co je
 povolena
  nastavit cez -J. Pravdepodobne je to rovnako obmedzene.
 
  Ak niekto mate skusenosti s niecim podobnym prosim o kazdu radu/napad
 pre
  distribuciu cez javaws. (runtime sa da predpripravit u klienta aby
 nebolo
  potrebne nastavovat taketo veci, ale to nechceme, chceme ho dynamicky
  konfigurovat)
 
  Tomas
 
  Tipoval bych ze to je tim, ze javaws pusti jnlp jako separatni process
  ktery ma svuj classpath. Schvalne se podivejte na pid javaws a
  spusteneho procesu.
 
  Pokud nemusite, javaws nepouzivejte. Krom omezeni, ktere jste popsal
  vyse jsou i dalsi, napr. javaws nema classpath tak jak ho znate, ma jen
  seznam jaru ktere prohledava ve vami neovlivnitelnem poradi (jen v main
  se hleda driv).
 
  Honza
 
 
 



 --
 Ondra Medek



Re: Cim logujete v ee aplikaciach

2010-10-15 Tema obsahu Tomas Studva

To ma pobavilo ze plnotucne aplikacne servery :).


Filip Jirsák  wrote / napísal(a):

Zdravím,
Logback ( http://logback.qos.ch/) má DBAppender už v základní 
distribuci, podobně jako SMTPAppender (pošle e-mail), SocektAppender 
nebo JMSAppender.  Možná by vás mohla zajímat i komerční nadstavba 
Logback-Audit.


S pozdravem

Filip Jirsák


2010/10/15 msk.conf msk.c...@gmail.com mailto:msk.c...@gmail.com

 Ahoj.

Zaujimalo by ma, cim logujete vo Vasich enterprise systemoch,
najma s pohladu na nejaky ten aktivny dohlad nad beziacim
prostredim.

Vacsina veci, s ktorymi som sa stretol, pouziva nejaky ten log4j a
fileAppender-y.
To mi pride ako relativne neosobne logovanie s nemoznostou
zasahu v rozumnom case.

Ja osobne koketujem s myslienkou logovat do sql databaze ( co nie
je sice nic vynimocne,
aj ked najst pouzitelny sql appender nie je jednoduche ), pricom
pridanou hodnotou by mohol
byt dohladovy system na tu tabulku zaveseny. Predstavujem si to
nejak tak, ze kazdy event
s (=warn) by musel byt vyrieseny ludskou interakciou v dohladovom
centre ( aj ked by mal
dotycny pracovnik len nastavit ignore ) tak, aby sa v tabuli
nevyskytovali neriesene chyby.

Druha vec, co ma napada je, ze predsa plnotucne aplikacne servery
toto uz musia mat nejak poriesene.

Kedysi davnejsie som si nejaky sqlappender nakodoval, ale nemam k
tomu ten zvysok ( dohlad ),
tak robim prieskum, ci nahodou neobjavujem koleso. Inak si to
spravim ako take mensie cvicenie ...

Diky

--
Dusan






Re: Jeden beziaci proces

2010-09-07 Tema obsahu Tomas Studva

Mysli Vam to podobne ako mne. Dakujem za vsetky prispevky.

Holý Jiří wrote / napísal(a):


Flag se musí v db updatovat prostě jinou transakcí. Zároveň se hodí 
přidat timestamp atribut, do kdy je ten zámek aktivní - v praxi pak 
spuštěný timer může ten timestamp updatovat (prodlužovat jeho 
platnost, aby nedošlo k opětovnému spuštění). Podmínkou pro spuštění 
„nového“ timeru je neexistující zámek, nebo vyexpirovaný (tj. ošetření 
případu, že server spadne a zámek existuje).


Jiří Holý

*From:* konference-boun...@java.cz [mailto:konference-boun...@java.cz] 
*On Behalf Of *Tomas Studva

*Sent:* Monday, September 06, 2010 1:24 PM
*To:* Java
*Subject:* Re: Jeden beziaci proces

Asi myslite explicitny DB zamok. To sa mi nezda celkom idealne, lebo 
taky zamok je viazany na tranzakciu a teda ta by musela byt otvorena 
po celu dobu. Tomuto som sa vyhol, lebo sa neda zarucit dlzka behu 
toho procesu, v zlom pripade to moze bezat aj 30 minut. No na druhej 
strane, nemam ziadne ine proti :).


Moje riesenie cez flag teda stlpec v tabulke ma inu nevyhodu, ktora je 
ale ovela viacej bolestivejsia. Ked sa restartne server alebo vypadne 
elektrina pocas behu procesu, tak sa flag nezmeni na false.


Dakujem, zvazim to.

2010/9/6 Kamil Podlesak kamil.podle...@gmail.com 
mailto:kamil.podle...@gmail.com


Dobrý den,

Zámek v databázi má výhody:
- bude fungovat i v clusteru
- lze ho sledovat administračními nástroji databáze a případně i 
násilně zrušit


Kamil Podlešák

2010/9/6 Tomas Studva tstu...@gmail.com mailto:tstu...@gmail.com:

 Dobry den,
 v nasej aplikacii mame periodicky spustany proces. Tento proces je
 schedulovany Jbossom, a moze trvat od niekolko sekund az po niekolko 
minut.

 Spustany je asi kazde tri minuty. Potrebujem zarucit aby bezal iba 1 na
 celom servery. Momentalne to riesim flagom v databaze, ak je flag 
true, tak

 proces sa hned ukonci.

 Chcem sa spytat, ci nie je aj jednoduchsie riesenie a ako by to bolo s
 implementaciou. Ten zamok naozaj suvisi s datami, teda s databazou a
 aplikaciou. Ako druhe riesenie mi napada lockovat sa na nejakom 
objekte v

 aplikacii.

 Tomas Studva





Jeden beziaci proces

2010-09-06 Tema obsahu Tomas Studva
Dobry den,
v nasej aplikacii mame periodicky spustany proces. Tento proces je
schedulovany Jbossom, a moze trvat od niekolko sekund az po niekolko minut.
Spustany je asi kazde tri minuty. Potrebujem zarucit aby bezal iba 1 na
celom servery. Momentalne to riesim flagom v databaze, ak je flag true, tak
proces sa hned ukonci.

Chcem sa spytat, ci nie je aj jednoduchsie riesenie a ako by to bolo s
implementaciou. Ten zamok naozaj suvisi s datami, teda s databazou a
aplikaciou. Ako druhe riesenie mi napada lockovat sa na nejakom objekte v
aplikacii.

Tomas Studva


Re: Jeden beziaci proces

2010-09-06 Tema obsahu Tomas Studva
Asi myslite explicitny DB zamok. To sa mi nezda celkom idealne, lebo taky
zamok je viazany na tranzakciu a teda ta by musela byt otvorena po celu
dobu. Tomuto som sa vyhol, lebo sa neda zarucit dlzka behu toho procesu, v
zlom pripade to moze bezat aj 30 minut. No na druhej strane, nemam ziadne
ine proti :).

Moje riesenie cez flag teda stlpec v tabulke ma inu nevyhodu, ktora je ale
ovela viacej bolestivejsia. Ked sa restartne server alebo vypadne elektrina
pocas behu procesu, tak sa flag nezmeni na false.

Dakujem, zvazim to.
2010/9/6 Kamil Podlesak kamil.podle...@gmail.com

 Dobrý den,

  Zámek v databázi má výhody:
 - bude fungovat i v clusteru
 - lze ho sledovat administračními nástroji databáze a případně i násilně
 zrušit

 Kamil Podlešák

 2010/9/6 Tomas Studva tstu...@gmail.com:
   Dobry den,
  v nasej aplikacii mame periodicky spustany proces. Tento proces je
  schedulovany Jbossom, a moze trvat od niekolko sekund az po niekolko
 minut.
  Spustany je asi kazde tri minuty. Potrebujem zarucit aby bezal iba 1 na
  celom servery. Momentalne to riesim flagom v databaze, ak je flag true,
 tak
  proces sa hned ukonci.
 
  Chcem sa spytat, ci nie je aj jednoduchsie riesenie a ako by to bolo s
  implementaciou. Ten zamok naozaj suvisi s datami, teda s databazou a
  aplikaciou. Ako druhe riesenie mi napada lockovat sa na nejakom objekte v
  aplikacii.
 
  Tomas Studva



Re: Jeden beziaci proces

2010-09-06 Tema obsahu Tomas Studva
Jboss interne pouziva Quartz, nabuduce pouzijem priamo quartz. Teraz sa mi
to neche menit a ani na to nie je cas.
2010/9/6 Rastislav Siekel sie...@prosoft.sk

 Na toto používam Quartz - http://www.quartz-scheduler.org/.

 Výlučnosť na jeden bežiaci proces sa nastavuje v konfigurácii ako:

 property name=quartzProperties
 props
 prop key=org.quartz.threadPool.threadCount
 1
 /prop
 /props
 /property

 Rastislav Bedo Siekel


 --
 Ing. Rastislav Siekel
 Prosoft s.r.o., Kuzmányho 8, 010 01 Žilina, Slovakia
 E-mail : sie...@prosoft.sk sie...@prosoft.sk
 Tel : 041/562 54 91
 Fax : 041/562 54 97
 Mobil : 0905 34 00 20

 On 6. 9. 2010 11:56, Tomas Studva wrote:

 Dobry den,
 v nasej aplikacii mame periodicky spustany proces. Tento proces je
 schedulovany Jbossom, a moze trvat od niekolko sekund az po niekolko minut.
 Spustany je asi kazde tri minuty. Potrebujem zarucit aby bezal iba 1 na
 celom servery. Momentalne to riesim flagom v databaze, ak je flag true, tak
 proces sa hned ukonci.

 Chcem sa spytat, ci nie je aj jednoduchsie riesenie a ako by to bolo s
 implementaciou. Ten zamok naozaj suvisi s datami, teda s databazou a
 aplikaciou. Ako druhe riesenie mi napada lockovat sa na nejakom objekte v
 aplikacii.

 Tomas Studva




Re: Modulární aplikace

2010-09-02 Tema obsahu Tomas Studva
Zdravim,
my pouzivame tiez myslienku cislo jedna, teda dotazy vo forme in
obmedzeni. Tie in obmedzenia, kym sa nejedna o tisicky idciek su uplne
vpohode.

Ale mame aj vinimku, mame totiz modul, ktory potrebuje citat udaje z mnohych
modulov naraz a ma vselijake svoje obmedzenia. Konkretne tento modul
exportuje data do ineho systemu a bol navrhnuty genericky. S pomocou malej
konfiguracie sa da rozsirit export, niekedy vsak to nejde, lebo su tam
nejake podmienky, takze sa napise sql. Exportuju sa cele siete objektov.
Ak by to malo byt modularne, tak kazdy modul by mal exportovat svoje data,
svoju siet. No to by chcelo ovela viacej premysleny navrch, kedze
exportovane udaje nie su cela DB, ale cielom je exportovat mininum dat a dba
sa na performanciu, robia sa teda aj joiny medzi modulmi. Cize kedze tento
Export robi iba citanie, tak ma dovolene sahat do lubolnej tabulky.

Ale tym ze modul ma vsetky query u seba, vznika aj duplicita niektorych
dotazov, no nie je toho vela.

Zaver z tohoto prikladu znie, ze moze nastat pripad, ked by sa implentacia
stazila resp. aj znizila performancia pri dodrzani modularneho dizajnu, ak
by sa dobre nepremyslel dizajn.

2010/9/2 Ing. Jan Novotný novotn...@gmail.com

 Ahoj,

my jedeme na modulárním systému asi 2 roky (s tím rozdílem, že nemáme
 OSGI, ale jen zřetězené aplikační konexty Springu na stejné classpath -
 nicméně už to k zavedení modulárnosti stačí). Řešili jsme stejný problém a
 obávám se, že neexistuje ideální řešení. Základní pravidlo spočívá ve
 správném řezu modulů - každý by měl mít jednoznačnou odpovědnost a funkci.
 Moduly by se měly vzájemně doplňovat spíš než ve funkcionalitách překrývat.
 Prostě příliš malé moduly nejsou dobré, protože mají potom mnoho závislostí
 ven, velké moduly také nejsou dobré, protože se tím zase snižuje jejich
 použitelnost. Na správném řezu funkcionalitou prostě záleží hodně.
Pokud by jeden modul sahal do dat jiného modulu přímo a nikoliv přes
 jeho API povede toto porušení zapouzdřenosti k: svázanosti (couplingu)
 těchto dvou modulů, zhoršení testovatelnosti, problém se samostatným
 rozvojem modulů (vždy se na ně bude muset pohlížet jako na nějaký provázaný
 celek).
My jsme došli ke dvěma možným technikám v těchto případech (naštěstí
 těch případů není zase až tak moc).

 1) obětování výkonu - tj. každý modul udržuje pouze svá data a pokud z
 nějakého důvodu potřebuje vrátit či pracovat s daty jiného modulu, jde přes
 jeho API - tím se ale samozřejmě nedá využít JOINů a platíme výkonem. Tyto
 mezimodulové dotazy se alespoň snažíme optimalizovat na metodách API tím,
 že tam máme metody pro hromadné načítání dat - např. ListData
 getDataById(Integer... id), která může všechna potřebná data načít
 jednorázově přes WHERE id in (...)

 2) porušením normální formy db - kromě přímého volání mezi moduly na úrovni
 API máme ještě jednu formu komunikace postavenou na observer patternu,
 která vychází ze Springu, tj. moduly v důležitých okamžicích své
 funkcionality publikují tzv. eventy do systému, na které pak mohou reagovat
 listenery v jiných modulech. Tímto způsobem je možné distribuovat některá
 důležitá (i agregovaná) data do zbytku systému. Uvedu příklad - máme tzv.
 hodnotící modul, který umožňuje hodnotit libovolný obsah kdekoliv (např. ve
 formě hvězdiček na nějaké škále), tento modul samozřejmě o obsahu samotném
 nic neví - naopak jiný modul, který spravuje daný obsah (třeba články) chce
 při vracení článku vracet aktuální hodnotu průměrného hodnocení. Hodnotící
 modul vždy po přepočtení aktuálního hodnotícího čísla po daný obsah vyhodí
 událost do systému, na kterou může kterýkoliv jiný modul naslouchat. Modul
 starající se o články tuto událost odchytí a k článku si uloží dodatečný
 údaj o aktuálním hodnocení (již vypočtený, hotový k zobrazení). Tímto
 způsobem je porušena normální forma - jeden údaj je v DB uložen 2x, nicméně
 data jsou potom již hezky po ruce (bez výkonnostní penalizace) a nedochází k
 narušení zapouzdřenosti modulů - jeden může bez problému fungovat bez
 druhého, pokud běží oba - spolupracují.

  Pokud existuje ještě nějaký jiný způsob komunikace rád se jej dozvím.
 Jak říkám, ani jedna z výše uvedených praktik není úplně ideální, ale na nic
 lepšího jsme za ty roky nepřišli :(.

 Honza

 --
 --
 Ing. Jan Novotný
 @@
 http://blog.novoj.net
 Myšlenky dne otce Fura
 --

 2010/9/1 David Mach m...@alis.cz

  Zdravím všechny!

 V naší firmě jsme doposud vyvíjeli klasické aplikace na jedné classpath
 (typu vidím vše, volám vše, využívám vše, čili občas pěkná prasárna). Nyní
 vyvíjíme novou modulární aplikaci postavenou na OSGi, přičemž naše původní
 vize byla ta, že jednotlivé moduly mezi sebou budou komunikovat výhradně
 prostřednictvím API. To by ale například znamenalo, že pro získání dat z
 modulu A (která potřebuji 

Re: Modulární aplikace

2010-09-02 Tema obsahu Tomas Studva
Mate pravdu, no upozornim este na porovnanie join vs in z pohladu 
performancie.


Potencionalny problem in dotazov moze byt, ak by sa databaza rozhodla 
prechadzat tabulku sekvencne namiesto pouzitia indexu. Ten index tam 
urcite je, kedze sa jedna o foreign key. Popravde ale ocakavam, ze na 
sekvencne citanie sa prejde iba ak rozsah ocakavaneho vysledku bude 
velky (skoro cela tabulka) a teda performancia bude vychadzat narovnako.


Na Vasom mieste by som spravil test na databaze, ktoru budete pouzivat s 
nejakymi rozumne velkymi tabulkami s nejakym beznym query. Staci to 
spravit z konzoly, netreba z aplikacie.


Tomas Studva

Oto Buchta  wrote / napísal(a):

Při návrhu modulární architektury je třeba brát na zřetel jiná možná
použití dat z konkrétního modulu a umožnit zásuvné či rozšiřující
submoduly do střev každého modulu.
Jestli se použije vzor Listener, Observer a nebo eLISPové hooky je
celkem buřt. Potom není nutné si tolik hrát s API, jenom nechat data
uvnitř modulu bezpečně (myšleno odolně proti nekonzistencím dat) a
správně (dva klíčové termíny Hrubozrnný a Volná vazba) protékat přes
ony pluginy. Není ale potřeba se nějak dramaticky zaobírat bezpečností
(myšleno přístupovými právy), neboť každý modul bude mít VŽDY možnost
sáhnout si do DB ;-)

2010/9/2 Tomas Studva tstu...@gmail.com:
  

Ale mame aj vinimku, mame totiz modul, ktory potrebuje citat udaje z mnohych
modulov naraz a ma vselijake svoje obmedzenia. Konkretne tento modul
exportuje data do ineho systemu a bol navrhnuty genericky.



Toto je typický kámen úrazu návrhu modulárních systémů.
Generický modul může přímo záviset na zase jen na generických
modulech. Pokud chcete v generickém modulu volat něco z  negenerického
modulu, musíte použít nějaký metajazyk, kterým se deklarativně
(typicky pomocí konfigurace) na něj či do něj dostanete.

  

S pomocou malej
konfiguracie sa da rozsirit export, niekedy vsak to nejde, lebo su tam
nejake podmienky, takze sa napise sql. Exportuju sa cele siete objektov.
Ak by to malo byt modularne, tak kazdy modul by mal exportovat svoje data,
svoju siet. No to by chcelo ovela viacej premysleny navrch, kedze
exportovane udaje nie su cela DB, ale cielom je exportovat mininum dat a dba
sa na performanciu, robia sa teda aj joiny medzi modulmi. Cize kedze tento
Export robi iba citanie, tak ma dovolene sahat do lubolnej tabulky.



Ano, SQL se typicky jako metajazyk pro přístp do negenerických modulů
používá a pak zde opravdu není problém. Typické nasazení je právě pro
statistiky. Exporty bych se snažil řešil jinak a ideálně via pes
Partes až na konec kompletace. Export miliónů záznamů se asi nebude
dělat každou minutu a každou minutu se nebude dělat export miliónů
záznamů, takže tím pádem JOINy určitě oželím.


  

Ale tym ze modul ma vsetky query u seba, vznika aj duplicita niektorych
dotazov, no nie je toho vela.



V tomto problém nevidím. Implementátor při konfiguraci ví, jaké verze
negenerických modulů používá a může tedy separátně nastavit dotazy.

  

Zaver z tohoto prikladu znie, ze moze nastat pripad, ked by sa implentacia
stazila resp. aj znizila performancia pri dodrzani modularneho dizajnu, ak
by sa dobre nepremyslel dizajn.



Tak toto je téměř tautologie ;-)

  

2010/9/2 Ing. Jan Novotný novotn...@gmail.com


Ahoj,
   my jedeme na modulárním systému asi 2 roky (s tím rozdílem, že nemáme
OSGI, ale jen zřetězené aplikační konexty Springu na stejné classpath -
nicméně už to k zavedení modulárnosti stačí). Řešili jsme stejný problém a
obávám se, že neexistuje ideální řešení. Základní pravidlo spočívá ve
správném řezu modulů - každý by měl mít jednoznačnou odpovědnost a funkci.
Moduly by se měly vzájemně doplňovat spíš než ve funkcionalitách překrývat.
Prostě příliš malé moduly nejsou dobré, protože mají potom mnoho závislostí
ven, velké moduly také nejsou dobré, protože se tím zase snižuje jejich
použitelnost. Na správném řezu funkcionalitou prostě záleží hodně.
   Pokud by jeden modul sahal do dat jiného modulu přímo a nikoliv přes
jeho API povede toto porušení zapouzdřenosti k: svázanosti (couplingu)
těchto dvou modulů, zhoršení testovatelnosti, problém se samostatným
rozvojem modulů (vždy se na ně bude muset pohlížet jako na nějaký provázaný
celek).
   My jsme došli ke dvěma možným technikám v těchto případech (naštěstí
těch případů není zase až tak moc).
1) obětování výkonu - tj. každý modul udržuje pouze svá data a pokud z
nějakého důvodu potřebuje vrátit či pracovat s daty jiného modulu, jde přes
jeho API - tím se ale samozřejmě nedá využít JOINů a platíme výkonem. Tyto
mezimodulové dotazy se alespoň snažíme optimalizovat na metodách API tím,
že tam máme metody pro hromadné načítání dat - např. ListData
getDataById(Integer... id), která může všechna potřebná data načít
jednorázově přes WHERE id in (...)
2) porušením normální formy db - kromě přímého volání mezi moduly na
úrovni API máme ještě jednu formu komunikace postavenou na observer
patternu, která vychází ze Springu

Re: Zkušenosti s Apache Wicket

2009-11-20 Tema obsahu Tomas Studva

Martin Kuba  wrote / napísal(a):

Jak tak čtu tuhle diskuzi, tak mi přijde, že se potvrzuje stará pravda o tom,
že HTML bylo navrženo pro dokumenty, ne pro aplikace.
  
Tak to je uplna pravda, az na to ze to casom prestava viac a viac 
platit, vid HTML 5.



Sice jsem to sám nezkoušel, ale pro skutečné aplikace s bohatým GUI na webu mi 
přijde
lepší použít skutečné aplikační prostředí, totiž Flex. Pak aplikace běží
ve Flash pluginu, který sice v polovině 90. let byl navržen pro animovanou
vektorovou grafiku, ale postupem doby se z něj stala platforma
velmi podobná Javě, s bajtkódem, garbage collection a silným typováním
v ActionScriptu.

Zatím hledám nějakou komplikovanou aplikaci, abych měl důvod si ho vyzkoušet
naostro. Nicméně pokud bych takovou našel, dal bych rozhodně přednost Flexu
před AJAXem, protože v JavaScriptu jsem si už své odprogramoval, a vždycky s ním
byly jenom problémy.

Makub
  
Aj ja mam podobny nazor vyhybat sa javascriptu. A este bvy som dodal, ze 
urcite nerobit priamo s javascriptom a HTML, aj koli nekompatibilite. 
Mne to pripomina programovanie v C - tiez bolo vela kompilatorov ako je 
vela browserov a kazdy sa spraval mierne odlisne. To je podla mna uplne 
zakladny problem, ktory v dnesnej dobe uz skoro vsetci musime riesit.


Re: Zkušenosti s Apache Wicket

2009-11-18 Tema obsahu Tomas Studva
S tym GWT je to zlozitejsie, lebo GWT nie je framework ale toolkit. GWT 
riesi iba komponenty pre zobrazovanie a ich model a par veci okolo. Ked 
v tom clovek chce nieco webove, tak ku GWT podla mna je potrebny nejaky 
dalsi framework. Mna celkom zaujal ExtGWT, ale ten je momentalne naskodu 
plateny. Celkom ma zaujima, ze ci ste to s niecim integrovali?


Chcel by som sa tiez opytat, ze ci v GWT  pouzivate prechody medzi 
strankami , t.j. take klasicke redirecty a ci to nesposobuje problemi s 
dlhym loadovanim js kniznic na klientovi?


Ak viete o nejakych klasickych webovych aplikaciach napisanych v GWT, 
ktore by som si mohol ako pouzivatel pozret, tak budem vdacny za link.


Ladislav Thon  wrote / napísal(a):

Ahoj,

Zkuste Google Web Toolkit.


GWT je určitě super, ale IMHO to má ještě do produktivity ostatních 
frameworků daleko. Nicméně, pro všechny, kdo mají o GWT zájem, jako 
_naprostou_nutnost_ považuju tuhle přednášku: 
http://code.google.com/intl/cs-CZ/events/io/2009/sessions/GoogleWebToolkitBestPractices.html 
Její obdobu jsem slyšel na letošním Google DevDayi a opravdu, 
kdybychom tohle slyšeli o pár let dřív, naše aplikace v GWT by 
vypadala (zevnitř, pochopitelně) mnohem líp. I když postupem času jsme 
se dopracovali k věcem, které tyhle best practices aspoň trochu 
vzdáleně připomínají.


LT




Re: Ako zabranit Castor XML escapingu

2009-08-12 Tema obsahu Tomas Studva
Dakujem za nasmerovanie. Serializer, ktory sa podhodi Castorovi sa da
nakonfigurovat pomocou formatu:

OutputFormat format = new OutputFormat(Method.XML, UTF-8, true);

String[] cdata = {contentBefore, contentAfter, content};
format.setCDataElements(cdata);
format.setNonEscapingElements(cdata); // Those elements should NOT be
escaped..

Ja vlastne ani nechcem aby som tam mal tie CData uzly, cize relevatne bude
nastavit tie elementy iba ako non-escaping. Musim to vyskusat.

2009/8/11 Petr Prochazka petrpro...@gmail.com

 Castor nepouzivam, ale poohledl bych se v dokumentaci po CDATA
 marshalling
 Petr Prochazka

 2009/8/11 Tomas Studva tstu...@gmail.com

 Dobry den,
 pouzivam Castor na serializaciu objektov do XML a jeden z atributov
 objektu je String. Tento string je XML. Ako sa da ocakavat castor to za
 string povazuje a tak vy-escapuje vsetky xml znaky.

 Z p sa stane lt;pgt;.

 Ja sa snazim tomu zabranit a neviem na to prist ako. Co som pozeral na
 nete, tak Castor nie co take nepodporuje.

 Tomas Studva





Re: Ako zabranit Castor XML escapingu

2009-08-12 Tema obsahu Tomas Studva
Nie som si celkom isty s tou validitou. Podla mna to validne moze byt, len
zalezi od schemy, ale to je jedno, lebo ja to nechcem validovat.
Tomas

2009/8/12 Jiří Mareš jiri.ma...@svt.cz


 No obavam se, ze to jinak, nez vlozit do CDATA elementu nepujde, protoze to
 pak neni validni XML :-(

 S pozdravem

 Tomas Studva napsal(a):
  Dakujem za nasmerovanie. Serializer, ktory sa podhodi Castorovi sa da
  nakonfigurovat pomocou formatu:
 
  OutputFormat format = new OutputFormat(Method.XML, UTF-8, true);
 
  String[] cdata = {contentBefore, contentAfter, content};
  format.setCDataElements(cdata);
  format.setNonEscapingElements(cdata); // Those elements should NOT be
  escaped..
 
  Ja vlastne ani nechcem aby som tam mal tie CData uzly, cize relevatne
  bude nastavit tie elementy iba ako non-escaping. Musim to vyskusat.
 
  2009/8/11 Petr Prochazka petrpro...@gmail.com
  mailto:petrpro...@gmail.com
 
  Castor nepouzivam, ale poohledl bych se v dokumentaci po CDATA
  marshalling
  Petr Prochazka
 
  2009/8/11 Tomas Studva tstu...@gmail.com mailto:tstu...@gmail.com
 
 
  Dobry den,
  pouzivam Castor na serializaciu objektov do XML a jeden z
  atributov objektu je String. Tento string je XML. Ako sa da
  ocakavat castor to za string povazuje a tak vy-escapuje vsetky
  xml znaky.
 
  Z p sa stane lt;pgt;.
 
  Ja sa snazim tomu zabranit a neviem na to prist ako. Co som
  pozeral na nete, tak Castor nie co take nepodporuje.
 
  Tomas Studva
 
 
 

 --
 Jiří Mareš (mailto:jiri.ma...@svt.cz)
 ČSAD SVT Praha, s.r.o. (http://www.svt.cz)
 Czech Republic




Re: Ako zabranit Castor XML escapingu

2009-08-12 Tema obsahu Tomas Studva
Dobra poznamka, mozno aj je ten pozadavek divny.

Vytvaram pdf report pomocou XSLT, tento report je zavisli na datach z tych
marschallovanych objektov. Vtip je vtom, ze jeden ten objekt je dokument
obsahujuci HTML. Toto HTML je nutne tiez preformatovat do FO, aby vo
vyslednom pdf, bol formatovany text namiesto HTML. Teda ano, pouzivam tu
property na doplnenie vysledneho XML o dalsie tagy.

Je mi jasne, ze by sa to HTML dalo formatovat samostatne a potom priamo
embednut do toho FO dokumentu, no zda sa mi to komplikovanejsie.

Tomas

2009/8/12 Tomas Hubalek tomas.huba...@onsemi.com

  Celkove se mi ten pozadavek zda nejaky divny. To pouzivate tu String
 property na doplneni vysledneho XML o nejake dalsi uzly? Nebo proc nechcete
 escapovat obsah toho stringu?

 Tom

  --
 *From:* konference-boun...@java.cz [mailto:konference-boun...@java.cz] *On
 Behalf Of *Tomas Studva
 *Sent:* Wednesday, August 12, 2009 10:12 AM
 *To:* Java
 *Subject:* Re: Ako zabranit Castor XML escapingu

 Dakujem za nasmerovanie. Serializer, ktory sa podhodi Castorovi sa da
 nakonfigurovat pomocou formatu:

 OutputFormat format = new OutputFormat(Method.XML, UTF-8, true);

 String[] cdata = {contentBefore, contentAfter, content};
 format.setCDataElements(cdata);
 format.setNonEscapingElements(cdata); // Those elements should NOT be
 escaped..

 Ja vlastne ani nechcem aby som tam mal tie CData uzly, cize relevatne bude
 nastavit tie elementy iba ako non-escaping. Musim to vyskusat.

 2009/8/11 Petr Prochazka petrpro...@gmail.com

 Castor nepouzivam, ale poohledl bych se v dokumentaci po CDATA
 marshalling
  Petr Prochazka

 2009/8/11 Tomas Studva tstu...@gmail.com

 Dobry den,
 pouzivam Castor na serializaciu objektov do XML a jeden z atributov
 objektu je String. Tento string je XML. Ako sa da ocakavat castor to za
 string povazuje a tak vy-escapuje vsetky xml znaky.

 Z p sa stane lt;pgt;.

 Ja sa snazim tomu zabranit a neviem na to prist ako. Co som pozeral na
 nete, tak Castor nie co take nepodporuje.

 Tomas Studva






Re: Ako zabranit Castor XML escapingu

2009-08-12 Tema obsahu Tomas Studva
To sa nemoze stat, lebo to HTML je XHTML a je well-formed.

2009/8/12 Podlesak Kamil kamil.podle...@ips-ag.net

  Asi nebyla míněna skutečná validita, ale well-formedness. Neboli, co
 když tam budete mít neuzavřené elementy? A nebo, co je
 pravděpodobnější, nějaké nevyescapované znaky (  ) nebo třeba i
 nepovolené znaky v názvech elementů? A nebo nepovolené znaky normálně v
 textu?

 Kamil Podlešák

 -Original Message-
 *From:* konference-boun...@java.cz [mailto:konference-boun...@java.cz]*on
 Behalf Of *Tomas Studva
 *Sent:* Wednesday, August 12, 2009 11:28 AM
 *To:* Java
 *Subject:* Re: Ako zabranit Castor XML escapingu

 Nie som si celkom isty s tou validitou. Podla mna to validne moze byt, len
 zalezi od schemy, ale to je jedno, lebo ja to nechcem validovat.
 Tomas

 2009/8/12 Jiří Mareš jiri.ma...@svt.cz


 No obavam se, ze to jinak, nez vlozit do CDATA elementu nepujde, protoze
 to pak neni validni XML :-(

 S pozdravem

 Tomas Studva napsal(a):
  Dakujem za nasmerovanie. Serializer, ktory sa podhodi Castorovi sa da
  nakonfigurovat pomocou formatu:
 
  OutputFormat format = new OutputFormat(Method.XML, UTF-8, true);
 
  String[] cdata = {contentBefore, contentAfter, content};
  format.setCDataElements(cdata);
  format.setNonEscapingElements(cdata); // Those elements should NOT be
  escaped..
 
  Ja vlastne ani nechcem aby som tam mal tie CData uzly, cize relevatne
  bude nastavit tie elementy iba ako non-escaping. Musim to vyskusat.
 
  2009/8/11 Petr Prochazka petrpro...@gmail.com
  mailto:petrpro...@gmail.com
 
  Castor nepouzivam, ale poohledl bych se v dokumentaci po CDATA
  marshalling
  Petr Prochazka
 
  2009/8/11 Tomas Studva tstu...@gmail.com mailto:tstu...@gmail.com
 
  
  Dobry den,
  pouzivam Castor na serializaciu objektov do XML a jeden z
  atributov objektu je String. Tento string je XML. Ako sa da
  ocakavat castor to za string povazuje a tak vy-escapuje vsetky
  xml znaky.
 
  Z p sa stane lt;pgt;.
 
  Ja sa snazim tomu zabranit a neviem na to prist ako. Co som
  pozeral na nete, tak Castor nie co take nepodporuje.
 
  Tomas Studva
 
 
 

 --
 Jiří Mareš (mailto:jiri.ma...@svt.cz)
 ČSAD SVT Praha, s.r.o. (http://www.svt.cz)
 Czech Republic





Ako zabranit Castor XML escapingu

2009-08-11 Tema obsahu Tomas Studva
Dobry den,
pouzivam Castor na serializaciu objektov do XML a jeden z atributov objektu
je String. Tento string je XML. Ako sa da ocakavat castor to za string
povazuje a tak vy-escapuje vsetky xml znaky.

Z p sa stane lt;pgt;.

Ja sa snazim tomu zabranit a neviem na to prist ako. Co som pozeral na nete,
tak Castor nie co take nepodporuje.

Tomas Studva


Re: Kedy dojde k odstraneniu objektu?

2009-02-24 Tema obsahu Tomas Studva

Ahoj,
podla mna uz z vasho testovania vyplynulo, ze gc si da namahu uvolnit 
pamat co i len aj po jednom objekte - pripad ked ste nastavil f na null.
Ja som skusil nastavit s na null a dopadlo to podla ocakavania, gc 
zrusil s aj obsiahnute s.foo. Povedat ze gc uvolnuje lokalne 
premenne metod az po opusteni metody je hlupost, lebo potom pamatovo 
narocne metody by zjedli pamat aj keby uvolnovali referencie.


A tak som skusil toto:

   System.out.println(start);
   {
   // vytvorim Foo
   Foo f = new Foo(null);
   // vytvorim pole Stuff
   Stuff[] theStuffs = new Stuff[100];
   for (int i = 0; i  theStuffs.length; i++) {
   theStuffs[i] = new Stuff();
   }
   }
  
   // tu uz neexistuje nic
  
   while ( true ) {

   System.out.println(aaa);
   Runtime.getRuntime().gc();
   try {
   Thread.sleep(200);
   } catch (InterruptedException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
   }
   }


Samozrejme ze gc pracoval a finalizoval. Trochu srandovny bol vystup 
niekde v strede:

finalize Stuff
finalize Stuff
finalize StuffException in thread main java.lang.OutOfMemoryError: 
Java heap space

   at java.lang.ref.Finalizer.register(Unknown Source)
   at java.lang.Object.init(Object.java:20)
   at Foo.init(Foo.java:6)
   at Stuff.init(Stuff.java:3)
   at Stuff.main(Stuff.java:18)

finalize Foo
finalize Foo

Nebudem to analyzovat, lebo to nebol vhodny priklad, pole je predsa 
nieco ine ako lokalne premenne. Spravny priklad by bol vytvorit tu 
metodu s naozaj desattisickami lokalnych premennych(cez makro by to slo).


T.S.


Re: Kedy dojde k odstraneniu objektu?

2009-02-24 Tema obsahu Tomas Studva
To kedy sa dealokovalo f, zaviselo od velkosti pola, cize ci sa este 
pred cyklom automaticky spustilo gc.


Treba si vsak uvedomit ze kompilator nemoze takmer vobec ovplyvnit 
dealokaciu - ak by bol predposledny prikaz bloku volanie nejakej metody, 
tak uz nik nevie co sa stalo. Nejako vsak ten gc vie ze na f uz nic 
neukazuje, alebo je v inej generacii ako stuff. Napada mi reference 
counting, ale to sa zevraj nepouziva v gc-ckach (viem ale ze ref-count. 
napr. pouziva Cocoa).


Zdenek Tronicek  wrote / napísal(a):
Ja jsem popisoval, jak se chova JVM za normalnich podminek. V 
okamziku, kdy zacne dochazet pamet, zacne JVM drsne optimalizovat. A 
ze to umi, lze videt na tomto prikladu (z Vaseho kodu jsem vypustil 
blok):


System.out.println(start);
// vytvorim Foo
Foo f = new Foo(null);
// vytvorim pole Stuff
Stuff[] theStuffs = new Stuff[10];
for (int i = 0; i  theStuffs.length; i++) {
theStuffs[i] = new Stuff();
}
// nez se dojde sem, je po objektu f
while (true) {
System.out.println(aaa);
Runtime.getRuntime().gc();
try {
Thread.sleep(200);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

Na mem pocitaci dojde k dealokaci objektu f jeste drive, nez se 
vstoupi do smycky while. Jak k tomu muze dojit? Java neco takoveho 
neumoznuje, jde ciste o optimalizaci JVM.
Mimochodem, myslim, ze tohle je na hranici toho, co jeste lze delat, 
protoze kdyby nejaky program spolehal na to, ze objekt nemuze byt 
dealokovan pred koncem platnosti promenne f (tj. pred koncem metody), 
nebude fungovat.


Pokud jde o ty lokalni promenne, tak ve vypise javap je jejich pocet 
za retezcem Locals= a po dobu vykonavani metody se tato hodnota nemeni.


Z.T.




Re: jsf ukladani stavu

2007-10-29 Tema obsahu Tomas Studva
Podla mna dobra otazka. Co nik nepouziva JSF? Je to koli efektivnosti. 
Serializacia/desarializacia je rychla operacia.  Usetri sa citanie z DB  
+  business processing + nejaky controller processing. Jasne ze musia 
prist so strankou data, ale ono je to inak. Totiz cele sa to deje koli 
tomu aby to malo pekny model: 
http://java.sun.com/javaee/5/docs/tutorial/doc/bnaqq.html.  To co je 
dolezite su eventy.  Napr: pre vznik valueChange udalosti potrebujeme 
poznat novu a staru hodnotu. Teda inymi slovami je nutne ziskat view v 
takom stave ako bolo pred renderovanim(noo mozno nie celkom vtedy) a 
potom aplikovat requesty (neviem presne co to znamena), validovat, 
aplikovat zmeny na view.


K tej druhej otazke. Uklada sa stav vsetkych komponet v strome a teda sa 
aj cely stav obnovi. Pod stavom sa mysli data + property. Preco len nie 
nejake data? No preto ze to view treba cele, no a teraz sa zamyslite je 
to 1:1 aj v pripade celkom statickej stranky(co sa vlastne nikdy neda 
predpokladat). A ze preco je to cele takto - lebo to prebrali z asp.net.


K tejto teme by som este podotkol, ze ked sa view definuje dynamicky si 
treba davat pozor(na co to nepoviem :)).


Pavel Savara  wrote / napísal(a):

Zdravím
Mám asi uplně hloupou otázku, ale nevím si s ní rady.
Proč jsf ukládá stav component tree at už do sesny nebo na klienta
proč ho prostě nemůže vytvořit znovu? Vzdyť na serveru ta stranka je
data taky, ty vetsinou stejne prijdou se stránkou nové tak proč ta
kreč to serializovat a posílat tam a zpátky?

A když už je někdy potřeba pamatovat si nějaké data proč ne jenom
hodnoty které jsou potřeba proč celý strom?

Dik
Pavel
  




Re: Code-Behind

2007-10-27 Tema obsahu Tomas Studva
Suhlasim s Pertrom. Je vsak dalsi pohlad na vec a to vykon(pamat, cpu, 
up/down strem) klienta. Ak ho spravne vyuzijeme mozeme obsluzit viac 
klientov alebo s rychlejsou odozvou. Vid 
http://www.tibco.com/devnet/resources/gi/3_5/doc/html/wwhelp/wwhimpl/js/html/wwhelp.htm?href=tib_gi_getting_started/gs.4.4.htm 
.


A ria mozu su ciastocne adresovatelne, resp. mohli by byt aj uplne 
adresovatelne. U GWT sa to vola history management vid: 
http://gwt.google.com/samples/KitchenSink/KitchenSink.html


Petr Gola  wrote / napísal(a):

Článek jsem nečetl, reaguji jen na poslední příspěvěk.

Ano, plně adresovatelný web je výhodou. Já jsem jednoznačně jeho
příznivcem. Ale osobně se domnívám, že boom aplikací v prohlížeči je v
jejich přístupnosti, okamžité použitelnosti. Internetový prohlížeč
tvoří jakousi jednotnou platformu (v rámci možností). Není třeba nic
instalovat, některé prohlížeče navíc běží pod všemi operačními systémy
:) ...

On 26/10/2007, Martin Kuba [EMAIL PROTECTED] wrote:
  

Jozef Babjak wrote:


Velmi odporucam vsetkym, co sa aktivne zapojili do tohto
threadu (a aj vsetkym inym, samozrejme) toto:

http://www.theserverside.com/news/thread.tss?thread_id=47213
  

Přečetl jsem si ten článek celý, a ačkoliv jejich analýza je celkem
přesná a zvlášť historický exkurz Microsoft versus lidstvo
je zcela trefný, s jejich závěry nesouhlasím.

V podstatě doporučují návrat od ultra-thin HTML klientů
k rich klientům, nebo jinými slovy od HTML dokumentů
zpět k aplikacím běžícím na klientech.

Jenomže to IMHO povede k jedné věci, kterou brutálně demonstrují
aplikace typu http://www.tipcars.cz/ - web přestane být adresovatelný.
Už nepůjde někomu poslat URL na položku ze seznamu, která se mi líbí,
protože žádné URL už mít nebude. Už to bude jenom
určitý client-side stav v aplikaci, který nemá adresu a je nepřenosný.

Můj skromný názor je, že pokud by měli pravdu, tak by
si lidé místo prohlížení webových stránek stahovali a pouštěli
aplikace pro MS-Windows, protože ty má stejně 99% lidí
před sebou. Jenže existují dva druhy aplikací. V jedněch
opravdu nepotřebuji mít možnost si poznamenat stav - například
čtení pošty přes GMail. A pak jsou aplikace, kdy bych si nějaký
stav uložit chtěl, třeba právě na tipcars.cz bych si moc chtěl
uložit odkaz na konkrétní auto, ale nemůžu, když je to aplikace
a ne HTML dokument. Takže rich klienti se hodí jen pro první
druh aplikací, pro druhý typ ne.


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
--








Re: Code-Behind

2007-10-25 Tema obsahu Tomas Studva

O asp.net asi tolko:

1, Asp.net je UI komponentovo orientovane(ako swing), okrem toho 
obsahuje aj nevisualne komponenty, to je fajn lebo s komponentami sa 
dobre robi. Teda pracuje sa s komponentami a nie s nejakym hlupym HTML. 
Tie sa vedia renderovat rovnako v roznych prehliadacoch, viazat na data, 
definovat vzhlad - proste klasika, napajame na ne kontroler.
2, Asp  sa mi nezda ukecane. Vela veci sa dopise do code behind po 
kliknuti v designeri.
3, Myslim ze code behind je v java web frameworkoch bezny(ale nie vo 
vsetkych) aj ked je inak implementovany.
4, getter alebo setter si moze kazdy dorobit, lenze v .net to nie je 
konvencia ako v jave. Totiz getter a setter je potreby iba ak v nom 
nieco robis alebo menis visibility. V danom pripade


protected System.Web.UI.WebControls.TextBox MyTextBox; nie je potrebny. 
Popravde property v c# ma problem ze visibility settera sa nutne = visibility 
gettera.

Tomas

Martin Kuba  wrote / napísal(a):

Petr Synek wrote:
  
To je asi jako bych ve Swingu nekam umistil JTextField a jeste musel vytvorit POJO tridu s getText() a setText() metodama jen kvuli tomu abych mohl z toho textfieldu ziskat text. 
A navic bych jeste musel v konstruktoru rict ze ten JTextField ma ID napr. Calculator a tu POJO tridu musel pojmenovat CalculatorActionBean a implementovat nejaky interface. Tedy zrovna intuitivni mi takovyto programatorsky styl neprijde. 



Od intuitivniho web frameworku bych cekal ze s komponentou numberOne budu 
rovnou v Jave (v code behind) pracovat takto:
String text = numberOne.getText();
numberOne.setText(Franta)

Pricemz o deklaraci promene numberOne se uz nestaram, protoze ta uz byla jednou deklarovana v JSP (neboli don't repeat yourself). 



Jak se koukam na code-behind na http://support.microsoft.com/kb/303247
tak ten TextBox je tam taky definovany dvakrat, jednou
v ASPX:

 asp:textbox id=MyTextBox text=Hello World runat=server/asp:textbox

a podruhe ve tride:

 protected System.Web.UI.WebControls.TextBox MyTextBox;

Jestli .NET pristupuje k protected promennym primo, bez
setXXX() a getXXX() metod, tak je to strucnejsi, ale
porusuje to ruzne zasady, ktere nam SUN vtlouka do hlavy.

Nevidim vyhodu toho, kdyz musim objekt nadeklarovat
a pak na nem volat metodu:

protected System.Web.UI.WebControls.TextBox MyTextBox;

public void MyButton_Click(Object sender, EventArgs e){
MyLabel.Text = MyTextBox.Text.ToString();
}

oproti tomu, kdyz nadefinuju rovnou hodnotu:

private String text;

public Resolution click() {
label = text;
text = Franta;
...
}

Ale jestli to moc potrebujete, staci udelat toto:

public class Neco implements ActionBean{
...
public static class TextBox {
   private String text;
   public String getText() { return text; }
   public void setText(String s) { text = s;}
}

private TextBox textBox =  new TextBox();
public TextBox getTextBox() { return textBox; }

public Resolution click() {
  String text = textBox.getText();
  textBox.setText(Franta);
}

a v JSP udelat

  s:text name=textBox.text /

Tot vse.

Makub

  




Design business modelu

2007-10-06 Tema obsahu Tomas Studva

Dobry den,
V projekte J2EE mame ako obvykle BO, BE beany a DAOcka, vsetko ma 
interface local. Chcel by som sa poradit, ako robievate design BO, 
konkretne kedy funkcionalitu rozdelite medzi dve BOcka a kedy nie, podla 
coho sa rozhodujete. Mate na to niekto nejake pravidla.


Tomas




Re: OT: Architektura

2007-09-26 Tema obsahu Tomas Studva
Ja by som sa ho opytal preco :). Je jasne ze nie vzdy je vhodne delenie 
na vrstvy, zalezi od aplikacie, ale vrstvy su odolne voci zmene 
poziadavkam. Lenze ak si spomenie napr na SOA, tak to je este odolnejsia 
architektura voci zmene poziadavkam. A ak sa predpoklada ze sa 
poziadavky budu velmi menit, alebo su nejasne, tak by som okrem navrhu 
super architektury rozmyslal o prototype alebo extremnom programovani.


Jiří Kotal  wrote / napísal(a):

V tomto případě šlo spíše o jednotlivé vrstvy systému, jednak z hlediska
třívrstvé architektury a jednak vnitřní členění na další subvrstvy. Zmíněný
architekt zastává názor, že pokud se předpokládají časté změny v
požadavcích, je výhodnější vůbec členění na subvrstvy nezavádět. Osobně si
myslím, že naopak vhodné vrstvení aplikace přispěje ke snadnější realizaci
změn.

Jirka

-Original Message-

  

Doufam, ze spravne chapu namitku - hlavne toho, co se rozumi vnitrnim
rozhranim.
Mozna bych odpovedel., ze pokud se s kazdym novym zakaznikem musí
menit nejake vnitrni API, tak je asi neco spatne. Mozna je pes zakopany
nekde v nepochopeni tohoto rozliseni? 
http://openide.netbeans.org/tutorial/api-design.html#design.apiandspi

(Mimochodem - po precteni tohohle dokumentu mi doslo, kolik veci jsme
s kolegy delali nekolik let spatne a jakych zlozvyku se musim odnaucit :/


)
  

A nebo to API neni vubec API, ale jen nejaky implementacni kod?



  

Ondra Nekola






  




Re: Dotazy na SWT

2007-09-04 Tema obsahu Tomas Studva

Martin Jedlička  wrote / napísal(a):

Zdravim, mam nekolik dotazu tykajicich se SWT.
1)
Mam strom realizovan pomoci TreeViewer (pouzity LabelProvider a
ContenProvider). Potrebuju v LabelProvider zobrazit animovany GIF. Je to
nejak mozny? Pokud ano, tak jak to udelat?
  

Este som to nevidel, tak asi nie.

2)
Mam blokovy diagram zobrazeny pomoci obrazku (GIF, PNG, JPG, ...).
Potrebuju vedet, jak po kliknuti mysi na dany blok diagramu se mi zobrazi
novy obrazek (nizsi uroven popisu...detailnejsi popis vybraneho bloku).
Pro psani aplikace pouzivam Eclipse. Slo by to pomoci EMF nebo GEF?
  
EMF je Eclipse modeling framework a nesuvisi s View.  Pomocou GEF-u sa 
da vselico, ale podla mna gef je prekomplikovany a zle sa uci. Ale ano 
islo by to celkom lahko. Celkom som ale nepochopil, ze kde sa ma ten 
novy obrazok zobrazit.

3)
Potreboval bych DND nejen textu, ale napr. i tlacitek, textovych poli a
jinych prvku. Jde to nejak?

  
Zalezi ako to myslite. Ak nieco ako customizovanie toolbaru pomocou DND, 
tak neviem. Ak nieco pre dizajn, cize vlastne iba obrazky na plochu 
editora(http://www.ibm.com/developerworks/java/library/j-validating/VisualEditor.jpg), 
skuste pozret eclipse visual editor, myslim ze je implementovany cez GEF.


S pozdravom Tomas Studva


Gui building

2007-08-04 Tema obsahu Tomas Studva

Ahoj,
chcem sa spytat ci pouzivate na tvorbu GUI nejake nastroje alebo pisete 
priamo kod a ci je ten konkretny nastroj prinosom. Konkretne sa zaujimam 
o SWT.


Tomas


Re: Gui building

2007-08-04 Tema obsahu Tomas Studva
Je to poziadavka klienta kedze ide o Eclipse RCP aplikaciu. Dal by sa 
pouzit aj swing s eclipsom, ale je to nedotiahnute a ani by som to nerobil.


Roman Strobl  wrote / napísal(a):

Tomas Studva wrote:

Ahoj,
chcem sa spytat ci pouzivate na tvorbu GUI nejake nastroje alebo 
pisete priamo kod a ci je ten konkretny nastroj prinosom. Konkretne 
sa zaujimam o SWT.

Co Vas drzi u SWT? Pro Swing jsou lepsi GUI buildery :)

-Roman





Re: Gui building

2007-08-04 Tema obsahu Tomas Studva

Musim ten Visual Editor vyskusat. Dik.

Honza  wrote / napísal(a):

Ahoj.

Pro naklikani zakladniho layoutu a komponent se mi maximalne osvedcil 
Eclipse Visual Editor. Obcas ma sice v problemy se stabilitou a 
rychlosti, ale verze od verze se to velice zlepsuje. Dalsi slozitejsi 
upravy je pak mozne delat primo v kodu, nicmene jsem presvedcen o tom, 
ze na 95% GUI designu je VE dostacujici.


Honza





Re: Tvorba pluginu pro Eclipse a projekty

2007-07-04 Tema obsahu Tomas Studva
Ako bolo spomenute tak part listener. Tam su tusim udalosti o otvarani, 
zatvarani, aktivovani jednotlivych parts. Editor je EditorPart a otvara 
spomenute subory. V pripade ak chcete otvarat ten subor vy, tak sa to 
robi cez implementaciu editora, nasledne jeho registrovanie ako  
extension a asociovanie s priponou suborov, ktore ma otvorit.


S pozdravom Tomas

Pavel Cvrček  wrote / napísal(a):
Přijde mi, že si nerozumíme. Každý nově vytvořený projekt v Eclipsu má 
nad soubory v projektu standardní akci open, která otevře soubor v 
editoru. Uživatele dvojklepne a soubor se otevře dle nastavení 
Eclipse. To vše mi zajistí platforma, nemusím nic vytvářet. Mně jde o 
to, jak zachytit tuto akci open a provést při té příležitosti vlastní 
kus kódu či jak celou tuto akci překrýt tak, abych si to mohl napsat 
sám. Znovu podotýkám, že tuto akci iniciuje uživatel dvojklepnutím na 
soubor, takže se nejedná o mnou otevíraný soubor.


Nevím, jak mi v zachycení této události mohou pomoci třídy IFile, 
IPath a IPathEditorInput. Otevřít soubor v editoru umím, jde mi čistě 
o zachycení události otevření či její překrytí.


Hezký den

Pavel Cvrček





Re: eclipse + subversion

2007-01-30 Tema obsahu Tomas Studva

Ahoj,
ja som skusal oba, subclipse aj subversive a lepsi je subclipse (ale uz 
presne neviem preco, sa mi zda ze je viac user-friendly). Ono moc velky 
rozdiel asi nebude ked pouzivaju tu istu kniznicu 
(http://www.svnkit.com/ vid kto to pouziva), ktoru pouziva aj IDEA.
1, Ten problem s rychlostou - mozno nie je problem. Aka vekla je ta nova 
kopia? Mate v repo aj kniznice? Alebo aky je server alebo v 
pripojenie(ak to nie je LAN).  Skusil by som to porovnat s inym 
klientom. Totiz v eclipse to funguje tak, ze sa to najprv nataha a az 
potom processuje. 
2, jasne ze ide, to je pure java

3, ano ma
4, ano ma
5, no tu by som sa drzal knizky http://svnbook.red-bean.com/
A k tomu refactoringu, neviem preco by bol potrebny comit po premenovani 
- aky je dovod?  Jedine ze by vznikal nejaky konflikt, ale podla mna 
nevznika.


A este na zaver by som poznamenal, ze mne osobne sa paci produkt 
SmartCVS. JE aj SmartSVN http://www.syntevo.com/smartsvn/highlights.jsp. 
Je tu odlisni pristup k zobrazeniu, ako inde.


PS:Ludia co vivijaju subclipse su ochotny a radi zlepsuju svoj produkt, 
koli nam dorobili podporu pre eclipse-symlinky.



vladimír karásek wrote:

Dobrý den,

chci se zeptat jestli někdo má zkušenosti s vývojem větších (nebo středních) 
projektů v kombinaci eclipse a subversion. Jsme ochotní zaplatit za odborné 
konzultace.

Co mně zajímá: 
1. Rychlost satažení  nové kopie projektu z repository

2. Možnost používat kleinty na platformách Windows, Linux a Solaris
3. Možnost procházet historii, porovnávat, upravovat. To vše nějakým inteligentním způsobem. Takže to asi bude muset být Eclipse plugin. 
4. Větvení a spojování.

5. Struktura repository.

Náš současný stav. 
Máme asi 30 projektů, které jsou vzájemně závislé. 
Používali jsme až donedávna CVS a vedení se rozhodlo, že je na čase použít něco vyspělejšího. Subversion slibovalo hodně ale přechod je více meně pain in the ass.  Největší problém asi bude nalezení (konfigurace)  Subversion klienta pod Eclipse, momentálně používáme eclipse plugin Subversive, jeho poslední verzi. Přišli jsme na to, že pro rychlejší práci je třeba odškrnout několik checkboxu v nastavení, ale to nám pořád nestačí.
Momentálně stažení nové kopie z repository trvá 10 minut. Prucejeme metodikou XP programování. Často děláme refactoring. 


Nevjětším problémem je situace, kdy musíme přejmenovat class a pak ho nějak dál 
upraovat. Jenže udělat v daný moment nemůžeme. Musíme přejmenovat, udělat 
commit a pak můžeme dělat druhou operaci. Což je velice nepohodlné. Myslím si, 
že to musí jít nějak snadněji. Ví někdo jak?

  




Re: minimální verze Eclipse

2007-01-24 Tema obsahu Tomas Studva
Ja by som skusil zohnat osekanu verziu eclipsu  - bud ten 
yoxos(nepoznam), alebo rucne osekat alebo RCP(to je najosekanejsi 
eclipse) a tam to nejak nainstalovat. No a aby sa to hned zobrazilo, by 
som riesil cez perspektivu - zadefinovat.


Tomáš Procházka wrote:

Zdravím.

Potřeboval bych do Eclipse dostat tohle:
http://www.futureware.biz/mantisconnect/screenshots.php - je tam část Eclipse 
Add-on

Dostat tam není samozřejmě problém, ale já bych chtěl verzi eclipse, kde by 
nebylo nic jiného než tohle a otevřelo by se to hned po spuštění, potřebuji to 
pro zákazníka, který by přes to pak zadával chyby a mohl se dívat, zda jsou 
opraveny. Nevíte někdo jak na to?

Stáhl jsem eclipse-RCP-3.2.1-win32.zip,ale to se mi nepodařilo vůbec rozjet.

   

   
Datum: 23:21:4023. ledna 2007
  




Re: Co jde v .NET a nejde v Jave?

2006-11-09 Tema obsahu Tomas Studva




Ahoj,
no to ma tesi, podla mna ked sun nieco pridava do Jdk, je to ako torta,
ked sa kraja. Osobne sa vdzy najviac tesim na zmeny v jazyku.
No a k otazke, ano aj pre vlastne komponenty je to rovnako jednoduche.
Funguje to tak, ze sa to vlastne specifikuje pomocou atributu [Bindable
= true|false] a podla to sa viazat bud da alebo nie. 

priklad - viazat sa daju aj obycajne property nemusia to byt len
kolekcie:

[Bindable=true]
public String/*to by mohol byt typ IList...*/ MenoAutora{
...
}

Ono sa to lisi od klasickeho pouzitia setera len casom kedy sa to
priradenie vykona - v case viazania  
Tomas

Tomáš Procházka wrote:

  
  
  
  
  Ahoj,
  odpovídám na zprávu ze čtvrtka, 02. listopadu 2006,
  kterou Tomas Studva napsal(a) v 11:58:40:
  
  
     JDK7 bude mít Databinding v sobě, je to JSR 295. Sun si
uvědomuje, že to v Javě chybí.
  
  
     Zde se tvoří implemenetace:
     https://databinding.dev.java.net/
  
  
     Ale nic vám nebrání už dnes použít třeba JGoodies, kde je
spojení Java Beanu a formulářového prvku otázkou jednoho příkazu.
  
  
     Ale asi je pravda, že .NETu to jde už dnes a velmi snado. Ale
co když si třeba vytvořím vlastní komponentu? Je tohle pak taky
jednoduché?
  
  
  
  -- 
  -
   Tomáš Procházka
  
  
  
  
   E-mail: [EMAIL PROTECTED]
      WWW: http://atom.sf.cz
      ICQ: 87147320
  -






Re: Java Profiler

2006-11-05 Tema obsahu Tomas Studva


NetBeans profiler je zdarma a podporuje 64bitove architektury ve verzi 
5.5 a Intel Macs. Nevim jestli je lepsi nez TPTP ale ma dost 
zajimavych ficur, napr. umi profilovat jen vybrany kus kodu, umi 
profilovat J2EE aplikace, atd.


http://profiler.netbeans.org

-Roman



To vie aj TPTP. TPTP vie dokonca robit remote profiling. Da sa min 
vytvarat log, memory, execution profil. Vie vypocet zobrazit ako 
statistiky aj graficky ako sekvencny uml diagram(toto je super ficura, 
skoda ze som o nej nevedel skor :)),  aj ako nejaky iny graficky 
pohlad(tu som mal problem, ked som robil vacsi profil, tak tento diagram 
sa vobec nedal skrolovat - islo to brutalne pomaly). Daja sa pouzit 
agenti - to som neskusal. Sucastou TPTP je aj GUI recorder na 
testovanie, ale to tusim az od dalsej verzie.
S TPTP sa mi prijemne robilo, len niekedy mi zmrzol - neviem pricinu, 
neskor sa mi to uz nestavalo. A ak budete profilovat nieco vacsie treba 
zvacsit heap.

Tomas



Re: Java Profiler

2006-11-05 Tema obsahu Tomas Studva

Martin Bednář wrote:

Karel Tejnora napsal(a):

Cau,

   nevim jak jsem tak zkoumal ty co vypadaly dobre tak uz 
nepodporujou javu 5 nebo eclipse 3.2, tak jsem skoncil s TPTP.

No mne se TPTP na 64bit linuxu nejak nepovedlo rozbehat :(

Kamosovi ano. Tak sa to da. Treba zistit pricinyu a pozret aj do bug 
listu TPTP, keby nahodou.






Re: scripting API v JDK 6 a JRuby

2006-11-03 Tema obsahu Tomas Studva
To neviem, ale robim v Jave, aby som nemusel v PHP :). TU je ten zoznam 
https://scripting.dev.java.net/. Mna by zaujimalo, aky je dovod pre 
podporu tychto skriptovacich jazykov? Cital som nieco, ze na prototyping 
(to uznavam, moze byt fajn) a ze ked je tim , kde niektori radi robia v 
niecom inom(to je malichernost).

Ma niekto prakticke skusenosti , ze mu to chybalo?

S tou rychlostou to nemusi byt zle, ak sa to compiluje do bytekodu alebo 
do coho (napr. Kawa kompiluje Scheme a XQuery do Java tried)- mozno to 
nie je v jdk6 ale raz asi bude.


Tomas

Pavel Kolesnikov wrote:

Je neco z uvedeneho seznamu kryci nazev pro implementaci PHP? Mam
dojem, ze zrovna PHP bylo jednou z motivaci pro JSR-223

Pavel




Re: scripting API v JDK 6 a JRuby

2006-11-03 Tema obsahu Tomas Studva

Martin Kuba wrote:

Tomas Studva wrote:
To neviem, ale robim v Jave, aby som nemusel v PHP :). TU je ten 
zoznam https://scripting.dev.java.net/. Mna by zaujimalo, aky je 
dovod pre podporu tychto skriptovacich jazykov? Cital som nieco, ze 
na prototyping (to uznavam, moze byt fajn) a ze ked je tim , kde 
niektori radi robia v niecom inom(to je malichernost).

Ma niekto prakticke skusenosti , ze mu to chybalo?


Clovek vetsinou nevi, ze mu neco chybi, dokud to nedostane :-)
Pred vynalezem mobilu jsem taky nevedel, ze mi chybi mobil,
a napriklad tedka nevim, ze mi chybi fidibus na vejce, ktery
bude vynalezen az ve 22. stoleti :-)


:-D

Zatim se Ruby ucim, ale jedno prakticke vyuziti uz mam.
Schvalne, jak se v Jave ziska seznam vsech souboru v aktualnim
adresari koncicich priponou .rb ? No takhle:

String[] rb = new File(.).list(new FilenameFilter() { public boolean 
accept(File dir, String name) { return name.endsWith(.rb); } });

Co je na tom skarede? Nic.


A jak to udelam s JRuby ? No takhle:

ListString rb = (ListString) 
jruby.eval(Dir.entries('.').grep(/.rb$/)); 
Par znaku jsem usetril :-) 
Podla mna je to uplne jedno, ci to napisem v jave alebo v JRuby. Ale 
nebudem splietat dva jazyky dokopy, koli inemu api. Ale narazate na 
rychlost kodenia, ano to je jasne plus pre prototyping. JRuby pochadza 
vyvojovo od Ruby, co je cisty objektovy jazyk a ma par peknych 
konstrukcii, ktore vyplyvaju z objektovaosti. Skoda, ze som este nemal 
cas sa na to blizsie pozret.

Tomas



Re: Co jde v .NET a nejde v Jave?

2006-11-02 Tema obsahu Tomas Studva
Ako som uz spominal, viazat sa da na hocico aj na kolekcie, nie len na 
datasety. Na kolekcie je to vhodnejsie aj pohodlnejsie, lebo to mozu byt 
kolekcie biznis objektov. DataSet je vsak mozno rychlejsia volba, neviem.

Tomas

Petr Synek wrote:

Ono to funguje trosku jinak.
V .NETu se pouziva DataSet objekt (neco co vzdalene pripomina offline Java 5.0 WebRowSet) a tento objekt muze poskytovat business vrstva a delat centralne prislusne validace. 
Nic se automaticky do DB nezapisuje, modifikovany offline DataSet je treba nechat explicitne ulozit do DB (a to se muze dit v business vrstve). 


petr
  




Re: worldofjava.org

2006-09-30 Tema obsahu Tomas Studva

Ahoj,
maven2 dokaze spravovat lokalnu ropository aj so zdrojakmi, t.j. stahuje 
jari a este aj sources.jari. Treba pouzivat 
maven-dependency-plugin:sources, je to vsak o nieco vsetko zlozitejsie. 
Maven ma casto neposlucha :(. Ale da sa to. A kto by chcel plugin do 
eclipsu na maven2, aj ten je a je dost pekny, akurat mal chybu, ze 
eclipse bundles pridaval ako externe jarka, namiesto plugin dependecies.

Tomas Studva

Tomáš Procházka wrote:

Ahoj,
odpovídám na zprávu z pátku, 29. září 2006,
kterou Honza napsal(a) v 14:00:51:

   No, jen to zobrazení Javadocu a zdrojáku je myslím free.


   Ale jako což o to, on by tohle myslím měl umět i Maven a myslím si, že 
dokonce lépe, i když nedokáže myslím zobrazovat javadoc přímo online z webu, 
ale stáhne ho, což je ale podle mě spíše výhoda.

   Jen neexistuje dostatečné dobrá implementace pro IDE, pro Netbeans teda 
určitě ne. Zkoušel jsem tu Maven2 a přijde mi to takové ještě hodně slabé. Já 
bych třeba přivital i to, kdyby šlo Maven v Netbeans použít jen pro stahování 
knihoven a jako repozitář. že bych si založil klasický Netbeans projekt a místo 
přidání knihovny z disku, bych přidal knihovnu z Mavenu a projekt by se nadále 
odkazoval na to. Když pak ten projekt někomu předám, tak se mu to jen stáhne a 
může pracovat. Nebylo by tohle snazší, než úplná implementace?

--- Původní zpráva ---
 Odesilatel: Honza [EMAIL PROTECTED]
Předmět: worldofjava.org
  Datum: 29. září 2006, 14:00:51 (GMT +0200)
Přílohy: none
  msgid:[EMAIL PROTECTED]

H No to vypada hezky. Bohuzel se jedna o placenou aplikaci


H Tomáš Procházka napsal(a):
  

Zdravím.
  


  

Nedávno jsem v CZJUG konferenci psal o problémech, které přináší zpráva 
rozsáhlejších projektů. že je nutné si ke každému projektu stahovat jar 
knihovnu, ale také dokumentaci a někdy i zdrojáky, což je dost otrava.
  


  

Teď jsem našel docela zajímavý projekt http://www.worldofjava.org/, který tohle 
dost usnadní. Sám doplňuje ke zdrojovým kódům známých opensource projektů 
dokumentaci a zdrojáky z Internetu.
  


  
Nepodařilo se mi teda, aby stahoval i samotné projekty, ale to asi umí jen placená verze. Nevím, moc jsem to nestudoval. Ale funguje to tak, jak bych si představoval, aby fungoval i Maven.  
  


  
   
Datum: 15:49:5628. září 2006
  


 Konec původní zprávy