Re: Co teď "letí" v Javě na web a verzování?

2011-02-06 Thread Lukáš Záruba

Dobrý den,
v současné chvíli tuto aplikaci používá několik desítek klientů 
najednou, nicméně vzhledem k tomu, že backend jsme vyráběli sami, tzn. 
nevyužili jsme integrace s hibernatem a aplikačním serverem, ale 
requesty zpracováváme vlastními servlety (ať už jako rest, nebo jako 
RPC, protože smartGWT umožňuje využít obě varianty a každá je vhodná na 
jiné operace), nemůžu vám nic říct k tomu, jak zvládá serverová část  
smart clienta vysoký load. Co se samotného JS které se dostane na 
klienta týče, tak tam už počet operujících klientů v zásadě nehraje 
roli. Nicméně musím upozornit, že když se v IE pokusíte používat 
enteriprise aplikaci s efekty (fade-out atd) tak se procesor dost 
zapotí. Používáme proto převážně chrome v upravené variantě jako desktop 
aplikace.
Každopdáně naše cílová skupina nasazení je cca 200 uživatelů operujících 
proti jednomu serveru a rest + rpc zpracování pomocí Jetty webserveru 
podle stress testů nemá vůbec žádný problém s tímto.


S pozdravem

Lukáš Záruba (Lukas Zaruba)

Dne 6.2.2011 19:23, Ivan Polak napsal(a):

Ahojte,

aj ja som velmi vdacni za takuto diskusiu typu flame. mal by som
otazku na pana Zarubu ohladne SmartGWT (resp. smartclient). mate
nejaku skusenost ohladne nasadenia tejto technologie na UI pre
aplikaciu, ktoru by pouzivalo povedzme radovo stovky pouzivatelov.

velmi pekne dakujem

Ivan

2011/2/3 Lukáš Záruba:

Zdravím,
my teď k naší poměrně vysoké spokojenosti používáme kombinace aplikace
postavené na platformě Eclipse + na GUI SmartGWT což je framework postavený
na SmartClient věci, která je velice zajímavá a pořád navzdory drobným
nedostatkům poskytuje asi nejlepší podporu věcí, které pokud děláte
enterprise aplikaci do webu, bude potřebovat. SmartGWT kombinuje GWT s
funkcionalitou smart klienta Není problém remote debug UI v Javovém
kódu, který se ale pouští jako JS na straně browseru a podobné divočiny.
Zabere nějakou chvíli, než se do toho dostanete, ale potom to přináší hodně
výhod.
Co se Eclipse Platform týče, tak pro mě už je to něco jako náboženství :) je
to opět poměrně rozsáhlá záležitost, ale velice dobře dokumentovaná a
podporovaná. Doporučuju si o tom přečíst nějaký krátký výtah, např. na wiki,
abyste rychle zjistil, zda je to něco co hledáte nebo ne.

Krom těchto věcí používáme Eclipse Modeling Framework na vyrábění modelu a
práci s ním. Tam je třeba být opatrný a nenechat se strhnout tím, že to umí
všechno udělat "samo". Já osobně propaguju jenom první část, tzn.
vygenerovat třídy + nástroje pro práci s nimi, ale EMF umí i jakýsi Edit
framework vyrobit a tam už je to dost na hraně. Je potřeba to důkladně
prostudovat a udělat rozhodnutí, jak hluboko se chcete pustit.

Tahle kombinace je velice silná, ale jenom pokud máte náladu se s tím trochu
sám bavit. Pokud chcete vygenerovat aplikaci, která splňuje standardní
požadavky (těžko to definovat, ale asi tušíte co tím myslím), tak to co jsem
popsal je příliš "low-level" kombinace. Pokud ale u většiny frameworků
trpíte, protože pokrývají jenom 75% vašich potřeb a pak se je snažíte
hackovat aby zvládali i zbytek i za cenu naprostých šíleností, tak by tohle
mohla být cesta...

Jinak verzování CVS a je to :) (hlavně kvůli podpoře v Eclipse Builderu (Ant
+ interní Eclipse systém))

S pozdravem

Lukáš Záruba (Lukas Zaruba)

Dne 3.2.2011 09:26, Rastislav Siekel napsal(a):

Pokiaľ ste robili JDK 1.4 a Struts, nie je problém používať Struts naďalej.
Posledná verzia Struts 2 je z 20.12.2010, framework vyzerá živý a je dosť
"ajaxoidný", pretože sa na AJAX spojil s Dojo frameworkom.
Osobne ho nepoužívam, ale myslím, že je stále plne použiteľný, odladený a s
podporou asi vo všetkých IDE.


Ešte sa mi páčil v poslednej dobe Google web toolkit - ale to je toolkit,
nie framework. Ale pekný. A najviac "rich" aký som kedy videl :-)


Rastislav "Bedo" Siekel


Ing. Rastislav Siekel
Prosoft s.r.o., Kuzmányho 8, 010 01 Žilina, Slovakia
E-mail :
Tel : 041/562 54 91
Fax : 041/562 54 97
Mobil : 0905 34 00 20
On 3. 2. 2011 9:06, Tomas Hubalek wrote:

Pokud jde o verzovani, tak Mercurial je vyborne podporovany vsemi tremi
hlavnimi IDE (NetBeans i IDEA to maji out-of-the-box, u eclipse je potreba
nejaky plugin).

Git je asi vic "sexy" diky githubu, ale ja jsem si zvyknul na mercurial a
jsem s nim spokojeny.

Pokud jde o web, tak asi strasne zalezi na typu aplikace, jak moc ma/nema
byt ajaxoidni.

Tom


Od: konference-boun...@java.cz za uživatele Libor Jelinek
Odesláno: čt 3.2.2011 6:39
Komu: konference@java.cz
Předmět: Co teď "letí" v Javě na web a verzování?

Dobrý den všem,
bohužel jsem se musel pracovně věnovat trochu jiným činnostem, než
programování a posledních cca 4-5 let jsem na J2SE/J2EE ani nešáhnul.
V mé "době" bylo top JDK 1.4 na pro web Strutsy. O JSF a Spring apod.
se teprve začínalo mluvit :-)

(1) Chci se zeptat, protože vím, že mi už asi docela ujel

Re: assert vs. JUnit

2011-04-04 Thread Lukáš Záruba

Dobrý den,

Abych přidal další názor do diskuse :)

Upozorňuju že už je to asi malinko mimo původní záměr (assert vs. JUnit)

1/ Veřejné API + místa, která se často mění a způsobují problémy (taková 
by správně neměla existovat, ale občas se stane) řešíme pomocí if ... 
throw IllegalArgumentException s nějakým rozumným popisem toho co se stalo.


2/ Na privátní metody (nebo spíš obecně neveřejnou část nějakého kusu 
aplikace) potom Assert (ano s velkým A neboť se jedná o třídu 
http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/Assert.html 
- používáme platformu Eclipse, takže je tato třída po ruce).
Tento postup má jednu nevýhodu a tou je výkon. Kontrola assertů probíhá 
vždy  i v kódu, který je nasazený. Nicméně tato nevýoda je vysoce 
převážena tím, že se nemusí aplikace po zjištění nějakého problému 
nasadit znovu a pak začít tepvre ladit co se asi stalo. To je metoda 
bohužel nepřípustná. Assert je samozřejmě opět spojen s nějakou hláškou 
o tom, co se vlastně stalo.


3/ (trochu offtopic) na místa, kde je potřeba sledovat co přesně 
aplikace dělá nějakou dobu po nasazení do produkce se dá díky Log4j (a 
stejně tak jakékoliv implementaci java.util.logging aparátu) psát if 
(log.isDebugEnabled) { udělej hrozně složitý výpočet a zaloguj ho }. 
Takto jakmile vypnu debug, tak se overhead sníží pouze na jednu rychlou 
podmínku narozdíl od verze log.debug(opět hrozně složitý výpočet), kde 
proběhne výpočet vždy a teprve potom se řeší jestli se zaloguje nebo ne. 
Tady bych ještě doporučil jednu aplikaci, která mě nedávno velice 
příjemně potěšila a to je LogMX na který jsem přišel zde: 
http://www.java.cz/article/log4j-reader-logmx a velice se osvědčil (bylo 
třeba jenom překopírovat nastavení formátu log4j, aby LogMX věděl co s tím)


Samozřejmě se to jako obvykle nedá generalizovat, ale toto jsou naše 
guidelines a třeba to někoho inspiruje ;)


S pozdravem

Lukáš Záruba (Lukas Zaruba)



Dne 4.4.2011 10:12, "Zdeněk Troníček" napsal(a):

Tímto argumentem můžeš obhajovat používání if ... throw kdekoliv. I v
privátních metodách.
Můj názor je, že assert je na tomto místě lepší a to ze dvou důvodů:

1) assert můžeme snadno zapnout a vypnout a to i selektivně pro dané třídy,

2) kód s příkazem assert je kratší a srozumitelnější - je hned jasné, že
jde jen o verifikaci nějakého invariantu a že nejde o logiku aplikace.

Z.


Re: read() z IO - předávání referencí? To snad ne..

2011-04-05 Thread Lukáš Záruba

Dobrý den,
chyba se stack overflow je celkem jasná, protože donekonečna vyrábíte 
nové zaměstnance a na nich voláte getNarozeni(), časem dojde prostor pro 
zásobník...
Obecně se na tento problém doporučuje vracet kopii objektu, pokud není 
immutable, takže (z hlavy) napřklad, nebo klidně to co jste psal vy, 
nicméně metoda clone je potřeba používat opatrně, viz například 
Effective Java od pana Blocha 
(http://www.amazon.co.uk/Effective-Java-Second-Joshua-Bloch/dp/0321356683/ref=sr_1_1?s=books&ie=UTF8&qid=1301987382&sr=1-1).


public Date getNarozeni() {
return new Date(narozeni.getTime()); // vracím kopii, se kterou 
ať si každý dělá co se mu zachce, můj originál mi zůstává...

}

Tohle není problém ukazatelů, ale toho, jestli jsou objekty immutable 
nebo ne


S pozdravem

Lukáš Záruba (Lukas Zaruba)


Dne 5.4.2011 08:41, Libor Jelinek napsal(a):
Jak v Javě ukazatele nejsou, ale vlastně tak trochu jsou, je podle mě 
ve výsledku ještě komplikovanější, než kdyby opravdu byly :-)


Může se Vás zeptat na bug, který zmiňujete 
(http://findbugs.sourceforge.net/bugDescriptions.html#EI_EXPOSE_REP)?  
Jak přesně se proti tomu bránit?


Tento prográmek by mi asi Findbugs označil právě chybou EI_EXPOSE_REP, 
protože mi opravdu umoňuje vynulovat datum narození zaměstnance i když 
jsem si ho označil jako private a nezveřejňuji setter.


import java.util.Date;

public class ZmenaBezSetteru {
public static void main(String[] args) {
Zamestnanec zam = new Zamestnanec(new 
Date(System.currentTimeMillis()));

System.out.println("Osoba2.getNarozeni() = " + zam.getNarozeni());

zam.getNarozeni().setTime(0L);
System.out.println("Osoba2.getNarozeni() = " + zam.getNarozeni());
}
}

class Zamestnanec {
private Date narozeni;

Zamestnanec(Date narozeni) {
this.narozeni = narozeni;
}

public Date getNarozeni() {
/*Zamestnanec kopieZamestnance = new Zamestnanec(narozeni);
return kopieZamestnance.getNarozeni();*/

return narozeni;
}
}

Ovšem do jaké podoby přepsat Zamestnanec.getNarozeni(), aby teda 
nevracela referenci na privátní objekt Date, ale kopii. Tedy odolné 
proti zam.getNarozeni().setTime(0L);, aby i po tomto příkazu zůstalo 
datum narození v nezměné?


První co mě napadá je přepsat getNarozeni() na toto:

public Date getNarozeni() {
Zamestnanec kopieZamestnance = new Zamestnanec(narozeni);
return kopieZamestnance.getNarozeni();
}

Ovšem s tím nepochodím a skončím s ošklivou chybou:

Exception in thread "main" java.lang.StackOverflowError
at Zamestnanec.(ZmenaBezSetteru.java:16)
at Zamestnanec.getNarozeni(ZmenaBezSetteru.java:21)
(a tento řádek vypsán ještě asi 30x :-))

Proč skončí tato varianta s vytvořením nového objektu na sebe sama s 
chybou StackOverflowError? Když zkusím druhé co mě napadá na toto:


public Date getNarozeni() {
return (Date) narozeni.clone();
}

Pak již hlavní program vypíše 2x po sobě stejné datum.

--
Libor

2011/4/4 Ondřej Fafejta <mailto:fafejta.ond...@gmail.com>>


2011/4/4 Robert Novotny mailto:robert.novo...@upjs.sk>>:
> Este by som to vylepsil, aby bolo vidiet efekt:
>
> I. Primitivy hodnotou:
>
> public static void zlyPokusOZmenuParametra(int i) {
>++i;
> }
>
> int i = 1;
> zlyPokusOZmenuParametra(i);
> System.out.println("i == " + i);  // 1
>
> II. Objekty referenciou
>
> public static void zmenDate(Date d) {
>d.setTime(0L);
> }
>
> Date date = new Date();
> System.out.println("date == " + date);// v case mojeho spusteni
> ... date == Mon Apr 04 14:15:27 CEST 2011
> zmenDate(date);
> System.out.println("date == " + date);// date == Thu Jan 01
> 01:00:00 CET 1970


jj. tento příklad je výstižnější  ... (návratový typ je zbytečně
matoucí ;-))

Jinak ještě doplním, že findbugs hlásí chybu, když např. entita má
getter pro parametr, u kterého můžeme přepsat hodnotu bez toho abychom
volali setter...

http://findbugs.sourceforge.net/bugDescriptions.html#EI_EXPOSE_REP

např. (píšu z hlavy - určitě někde budu mít překlep ;))

public class NejakaEntita implements Serializable {
   private Date createdAt;

  public Date getCreatedAt() {
  return createdAt;
  }
}

Fafi




Re: Co se stalo s BeansBinding?!

2011-06-16 Thread Lukáš Záruba
Zdravím,
spíš otázka než příspěvek do tohoto malého flamewaru :)

Java na androidu využívá jazyk, ale ne platformu oraclu, ve skutečnosti
je ta interpretace nějaká komplikovanější, a pamatuju si v té
souvislosti dalvik, je to tak?
Jinak co se oblíbenosti javy týče tak nějaký graf ukazovali na Java
konferenci v brně nedávno, měla to být jakási objektivní statistika
nějakého mega programátorského webu a java měla asi 70%. Nemyslím, že by
za vzrůstem stály mobilní zařízení a jak jsem psal, je otázka, jestli
tam android vůbec řadit, ale to je jenom moje doměnka.

díky

L.


Dne 16.6.2011 12:02, Oto Buchta napsal(a):
> Dne 16. června 2011 11:48 Pecinovský Rudolf  > napsal(a):
>
> Statistiky ale hovoří jinak. Analýza firmy Evans Data ukazuje, že
> popularita Javy mezi softwarovými firmami opět stoupá:
>
> Bojím se, že za tímto růstem může Android. Zajímalo by mne porovnání
> popularity u firem, které se nezabývají mobilními platformami. Tady by
> třeba dal průzkum za pravdu Jirkovi :-)
> -- 
> Oto 'tapik' Buchta, ta...@buchtovi.cz ,
> http://tapikuv.blogspot.com


Re: TCP socket a inputstream Linux vs Windows

2012-03-19 Thread Lukáš Záruba
Dobrý den,
napadla me( jedna taková drobnost, která nás dost potrápila svého c(asu.

Z ne(jakého du*vodu, když Java be(ží na Windows, které mají ne(jaké
sít(ové adaptéry povolené ale nepr(ipojené, sít(ová komunikace se chová
"divne(". Ne(které pakety se proste( obc(as ztratí. Stac(í nepr(ipojené
adaptéry zakázat a zac(ne( to fungovat.

Není to nic co bych me(l podloženo seriozním zkoumáním, ale osobne( jsem
to aplikoval už 3x a vždy to vyr(ešilo problém nekorektního
nepochopitelného chování pr(enosu*.

S pozdravem

Lukáš Záruba

Dne 16.3.2012 23:07, arsi napsal(a):
> Zdravim pani!
>
> Pri vyvoji mojej novej aplikacie som narazil na zaujimavy problem v
> jave na Windows masinach.
>
> Celu vec som odladoval pod linuxom, dole mam C aplikaciu beziacu na
> routerboarde pod openWRT a ako konfiguracny soft je aplikacia pod
> netbeans platform cez, ktoru sa ten spodok konfiguruje.
> Ako protokol pouzivam jemne upravene Cckove XDR. Pridal som este pre
> istotu kontrolu CRC prenasanych dat.
>
> Vsetko fungovalo bez problemov aj vo Windows co mam vo virtual boxe
> pod linuxom.
>
> Ked som zacal ostre testy na masinach kolegov tak som zistil, ze mam
> problem.
>
> Na Windows masinach nahodne vznikal "End of stream exception" Tak
> nasledoval wireshark a kontrola paketov. Samozrejme vsetko bolo OK.
> Kontrola kodu bola tiez ok.
>
> Padalo to v tomto kode vzdy na inom mieste: (predtym poslem Ccku cez
> outputstream prikaz na odoslanie XDR dat)
>
> int id = inputStream.read() & 0xff;
> int x1 = inputStream.read() & 0xff;
> int x2 = inputStream.read() & 0xff;
> int x3 = inputStream.read() & 0xff;
> int c1= inputStream.read() & 0xff;
> int c2= inputStream.read() & 0xff;
> int c3= inputStream.read() & 0xff;
> int c4= inputStream.read() & 0xff;
>
> Tak som skusil pridat pred ten kod toto:
>
> while (inputStream.available()<8);
>
> A problem bol odstraneny.
>
> Este ma napadla vec, ze skusim zmerat cas kolko tam kod caka, plus som
> pridal timeout:
>
> long start=System.currentTimeMillis();
> while (inputStream.available()<8) {
>  if((System.currentTimeMillis()-start)>3000){
>  break;
>  }
> }
> long end = (System.currentTimeMillis()-start);
> if(maxWait maxWait = end;
> System.out.println(">max Head Wait:"+maxWait);
> }
>
> A fcul to najlepsie:
>
> Ubuntu 64bit maximalne 35ms
> Ubuntu 64bit virtual box Windows XP 32bit max. 35ms
> Windows XP 32bit komplet updaty max. 250ms
> Windows XP 32bit bez updatov max. 230ms
> Windows XP 64bit komplet updaty max. 210ms
>
> Este sa to chystam otestovat na win7.
>
> Z tohoto mi vychadza ze TCP sockety v jave su OK. Chyba je podla
> tohoto niekde na urovni network driverov vo windows. Asi tam je nejaky
> timeout. Protoze na Woknach pod virtualboxom to bezi bez problemov.
>
> Jo a este moje nastavenia socketu, ale skusal som zmenit uz asi fsetko ;)
> socket.setSoTimeout(5000);
> socket.setKeepAlive(true);
> socket.setTcpNoDelay(true);
>
>
> Arsi
>
>


Zavírání buffered streamů

2009-12-29 Thread Lukáš Záruba

Zdravím,
narazil jsem ve své aplikaci na problém, se streamy a nějak jsem nenašel 
odpověď ani v JavaDocu ani Googlu, tak snad někdo z vás to zrovna řešil :)

*Situace:*
Klientský kód (servlet) potřebuje kopírovat nějaký image (prostě data) 
do output streamu. Použije na to mnou vytvořenou util class.
V této util třídě je metoda, která kopíruje mezi dvěma buffered streamy 
s určitým bufferem atd.
Metoda copy je ovšem přetížená, aby se v klientském kódu nemusely 
vytvářet buffered streamy, takže existuje i pro klasický Input/Output 
Stream s tím, že je obalí do buffered streamu a zavolá copy metodu pro 
buffered streamy.

*Problém:*
Kopírovaní proběhne, nicméně když skončí, ve výstupu není poslední 
buffer, tzn nedošlo k poslednímu "flushi". Je to způsobené tím, že 
klientský kód je odpovědný za zavření streamu (popř. nezavření v 
servletu) a tím dojde k uzavření underlying streamu a ne přímo buffered 
streamu.

*Triviální řešení:*
To se dá snadno vyřešit tím, že se v bufferované metodě po kopírování 
provede flush.

*Otázka:
*Nevznikají nějaké resource leaky a je vůbec obecně validní zavřít pouze 
underlying stream pod buffered streamem pokud jsem si jistý (ten přidaný 
flush), že jsou do něj zapsána všechna data?


Předem děkuji za všechny reakce.

Lukáš Z.



Re: Swing a uvolnovani Window

2010-01-26 Thread Lukáš Záruba

Zdravím,
se swingem už jsem dlouho nepracoval, ale jestli se správně pamatuju, 
tak princip rušení grafických komponent je velice podobný tomu v SWT, 
takže se můj názor odvíjí od tohoto.
Okno, stejně jako většina komponent je nativní systémový resource, tedy 
něco, co je třeba po sobě manuálně uklidit. Je to podle mě stejný případ 
jako například inputstream, akorát místo file handlerů vznikají v 
systému window handlery, tedy něco co se "samo" určitě neuklidí. 
Spoléhat v tomto případě na finalize() mi přijde asi stejně zcestné jako 
spoléhat na to, že se sám uklidí file handler po input streamu (to, že 
opravdu zůstanou viset si asi většina z nás bolestně ověřila).
2 Ondra Medek: To že se občas dispose() nevolalo je spíš problém 
nedostatečného testování a disciplíny developerů než špatného návrhu 
Swing API. Navíc mi vzhledem k tomu, že na okně voláte setVisible(false) 
místo dispose je asi špatné použití metody setVisible, jak už někdo 
zmínil dříve, protože pokud na té samé instanci komponenty potom 
zavoláte setVisible(true) měla by se nezměněná objevit, což si dost 
dobře nedovedu představit, pokud by proběhl úklid resourců.
Vytvoření dvou sad metod, jedna pro "běžné developery" a jedna pro 
experty, se mi zdá jako koncept, který by přinesl spíše chaos než 
jednoduchost, protože si dost dobře dovedu představit situaci, kdy půlka 
developerů té samé aplikace používá expertní rozhraní a ta druhá spoléha 
na to, že se uklízí samo. Výsledkem by byly ty samé chyby, které by se 
daleko hůř hledaly.
Přenášet odpovědnost na GC nedává moc smysl už z podstaty GC, která 
spočívá v tom, že "si běhá kdy se mu zachce" a tím pádem narozdíl od c++ 
finalizerů je naprosto nevhodný pro tyto úlohy. Což já osobně považuji 
za jednu z pro mě nejoblíbenějších specifikací Javy.


S pozdravem

__
Lukáš Záruba (Lukas Zaruba)
Chief Technical Officer
MEDIA SOLUTIONS EUROPE
Lisabonská 4
Praha 9 190 00
Czech Republic



Ondra Medek napsal(a):

Tak potom melo to uvolneni zdroju byt jako default v setVisible(false)
nebo aspon jako default close operace.

Podle mne by to melo byt nastaveno tak, aby se vse uklizelo pri
nejjednodusim pouziti. Pokud uklizeni zdrzuje, tak pak se mohou
vytvorit metody pro experty, ktere uklizet nebudou.

Prave opravuji aplikaci, kde je cca 50 dialogu, 10 frames. Vetsinou se
dispose() volalo, nekdy take ne, na default close operaci se vetsinou
zapomnelo ...

2010/1/26 Ladislav Thon :
  

GC slouží k automatické správě _paměti_ a jenom paměti. Byly sice snahy
napasovat to i na ostatní zdroje (ve Swingu se nevyznám, ale třeba JDBC je
ukázkový příklad), ale ukázalo se, že je s tím víc problémů než užitku
(deadlocky v JDBC driverech).

Možná, že ve Swingu to lze nějak bezpečně zařídit, ale obecně je spoléhání
se na finalizéry při uvolňování zdrojů Špatné (TM).




Re: Eclipse RCP client + Spring backend

2010-03-10 Thread Lukáš Záruba

Dobrý den,
vývoj klientských aplikací na Eclipse RCP mohu po zkušenostech s 
několika projekty jenom doporučit, nicméně chce to přečíst pár knih před 
začátkem, protože se jedná o skutečně velice komplexní framework, který 
se dost odlišuje od všech ostatních se kterými jsem se setkal. S 
itegrací se springem zkušenosti nemám, takže k tomu se bude muset 
vyjádřit někdo jiný.


Jako literaturu doporučuji v tomto pořadí:
http://www.amazon.co.uk/Eclipse-Plug-ins-Building-Commercial-Quality-Addison-Wesley/dp/0321553462/ref=sr_1_1?ie=UTF8&s=books&qid=1268270715&sr=8-1-spell
http://www.amazon.co.uk/Eclipse-Rich-Client-Platform-Addison-Wesley/dp/0321334612/ref=pd_sim_b_6
Eclipse Help (opravdu nepodceňovat, obsahuje téměř všechny potřebné detaily)

Projekt například
http://code.google.com/p/unianalyzer/

Hodně zdaru a trpělivosti, vyplatí se to ;)

S pozdravem

______
Lukáš Záruba (Lukas Zaruba)
Chief Technical Officer
MEDIA SOLUTIONS EUROPE
Lisabonská 4
Praha 9 190 00
Czech Republic
phone: +420 721 879 363



David Mach napsal(a):

Zdravím,

najde se v českých luzích a hájích někdo s praktickými zkušenostmi s 
vývojem klientské aplikace na bázi Eclipse RCP? Ideálně připojené na 
serverový backend postavený na Springu... Rád bych pár věcí před 
startem projektu konzultoval, ale budu vděčný i za každý odkaz na 
tutoriál nebo (open source) projekt.


Díky předem!

David Mach


Re: Eclipse RCP client + Spring backend

2010-03-11 Thread Lukáš Záruba

K SWT bych ještě dodal tento link, velmi dobrý pomocník...
http://www.eclipse.org/swt/widgets/
A ještě jednou zdůrazním nápověda, která je v eclipse IDE obsahuje 
kompletní dokumentaci i k platformě (ext. points, contributions, etc) a 
k swt i jface (moc milá věc, nejenom MVC, ale hlavně rychle vyrobené 
open/save dialogy, prompty atd)


__

Lukáš Záruba (Lukas Zaruba)
Chief Technical Officer
MEDIA SOLUTIONS EUROPE
Lisabonská 4
Praha 9 190 00
Czech Republic
phone: +420 721 879 363



Rastislav Rehak napsal(a):

Ahoj

raz sme robili jednu velku vec na Eclipse RCP so Springovym zadkom. 
Komunikacia bola cez Spring RPC. Perzistencia Hibernate.
Rozhodne je to schodna cesta. Velky doraz bol kladeny na 
vykon.Bohuzial publikovat to moc nemozeme.


V podstate vzdy ked sa zacinal Eclipse RCP projekt tak si ludia 
precitali tutorial od Eclipsu a existoval jeden clovek co to uz vedel 
a mohol ich zaskolit.


Dalsia vec na ktoru si treba davat pozor je skutocne komplexnost 
Eclipsu. Su tam vlastne tri oblastni ktore musite zvladnut:

- SWT , uplne iny toolkit oproti swingu, vyhoda je ak poznate win32 API .
- Eclipse RCP - pluginy, extension pointy atd
- JFaces - high level komponenty nieco ako MVC framework

Pokial sa dobre pamatam, tak na Eclipsovych strankach su aj priklady.

R


David Mach wrote:

Zdravím,

najde se v českých luzích a hájích někdo s praktickými zkušenostmi s 
vývojem klientské aplikace na bázi Eclipse RCP? Ideálně připojené na 
serverový backend postavený na Springu... Rád bych pár věcí před 
startem projektu konzultoval, ale budu vděčný i za každý odkaz na 
tutoriál nebo (open source) projekt.


Díky předem!

David Mach



Re: Eclipse RCP client + Spring backend

2010-03-11 Thread Lukáš Záruba
Souhlasím s EMF, sami ho používáme, ale je třeba si o tom přečíst ještě 
mnohem víc, protože EMF je obrovský framework, který má spoustu částí 
které se dají použít samostatně. V jednom projektu například používáme 
EMF Edit framework, což je nástavba (a pokud zhruba správně chápu co 
potřebujete, tak by se vám hodit) a v druhém jenom modely společně s 
Teneem a Hibernatem.


Doporučuju knihu o EMF ze série o Eclipsu, tam je téměř vše potřebné + 
materiály na webu.



__
Lukáš Záruba (Lukas Zaruba)
Chief Technical Officer
MEDIA SOLUTIONS EUROPE
Lisabonská 4
Praha 9 190 00
Czech Republic
phone: +420 721 879 363



Karel Tejnora napsal(a):
A je otazka v jake verzi (do 3.4 nebo 3.5) a jestli chcete programovat 
domain nebo uz jej mate.


Urcite pokud muzute tak sahnete po verzi 3.5 a EMF.

Pro EMF pozivejte doporucene UML grafice editory, pokud Vam vyhovuje 
dokumentovat primo v UML. Ja nikde nenasel profily. A kdyz uz se neco 
rysovalo, tak mi to odmitl naimportovat MagicDraw, protoze mam 
personal a ne standard version. Coz je docela vyprudilo, protoze je to 
tak jedina feature co bych z standard potreboval.

Jinak se da psat snadno v Ecore.

Pak jeste pridejte Eclipse forms.

OSGi framework je nutnost. Je mozne napsat vsechno jako jeden plugin. 
Ale kdyz si zvyknete, tak zjistite ze treba teneo se da prave z 
jednoho nize uvedeno bloku stahnout jako high level plugin. To jsem 
tak vnimal celkove, ze se zenou dopredu ty zakladni technologie a 
opravdu se dba na jejich kvalitu, presto chybi jakesi nejvyssi 
zapouzdreni.


Pozor! Na internetu je hodne tutorialu a hodne navodu. Bohuzel vetsina 
je outdated. Dobre voditko je rok.


Ja jsem narazil na:
http://www.vogella.de/articles/RichClientPlatform/article.html
ale je videt ze to psal nemec, docela mne to pripomelo nase ceska 
skripta. Evidentne tomu rozumi, ale ten prednes bych nerekl ze je 
zrovna nejlechci.


A pak serie blogu od Peter Friese
http://www.peterfriese.de/
jeho vyklad mne prisel lepe skousnutelny. A evidentne tahne i vyvoj.


a tady jsou kopie

http://eclipse.dzone.com/




Re: Memory leaky

2010-05-05 Thread Lukáš Záruba
Zkus jvisualvm aplikačku z JDK (je ve složce bin), tam jde udělat heap 
dump a pak se v něm kouknout kolik instancí čeho a v jakém stavu byly. 
Nejsem si jistý, jak se tohle liší od normálního profilingu z hlediska 
komunikace s JVM, nicméně už jsem pomocí toho odhalil dost problémů...
Použití je poměrně jednoduché, taže myslím, že nepotřebuje další 
vysvětlení :)


L.

__
Lukáš Záruba (Lukas Zaruba)
Chief Technical Officer
MEDIA SOLUTIONS EUROPE
Lisabonská 4
Praha 9 190 00
Czech Republic
phone: +420 721 879 363



Tomas Hubalek wrote:

Zdar,
 
mam velice rozsahlou aplikaci v Jave a nekde se mi neuvolnuje pamet. 
Statickz analyza kodu by snad ani nebyla mozna v rozumnem case. Nasel 
jsem moc pekny tutorial 
http://www.javapassion.com/handsonlabs/nbprofilermemory/ bohuzel mi 
vdycky JVM krachne na
 
WARNING: [AWT-EventQueue-1] Cant promote a shared lock held by 2 threads!

#
# An unexpected error has been detected by Java Runtime Environment:
#
#  Internal Error (sharedRuntime.cpp:886), pid=4752, tid=5992
#  Error: guarantee((retry_count++ < 100),"Could not resolve to latest 
version of redefined method")

#
# Java VM: Java HotSpot(TM) Client VM (11.0-b16 mixed mode, sharing 
windows-x86)

# An error report file with more information is saved as:
# 
D:\CurrentProjects\CADET2009\netbeans-modules-suite.2.1\application\target\cadet\hs_err_pid4752.log

#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#
 
Zkousel jsem to jak na Linuxu, tak na Windowsech, bohuzel porad stejne.
 
Netusite nekdo, jak to zjistit to same bez profileru? Command line mi 
nedela problem.
 
Tom


Re: diakritika

2010-07-21 Thread Lukáš Záruba
S tímto v zásadě souhlasím, ale proběhla tudy ještě jedna velice dobrá 
připomínka, "nikdy nevíte kdy a kdo vás koupí". Já bych ji ještě doplnil 
o "nikdy nevíte kdo a kdy u vás bude pracovat". Já osobně jsem dlouho 
zápasil i s reporty od slovenských kolegů a nakonec jsme zavedli povinně 
angličtinu jako jediný jazyk kódu, dokumentace, reportů, bug managementu 
a musím říct, že se to výrazně vyplatilo. Cena firmy, která je v zásadě 
připravena na prodej do zahraničí výrazně stoupá. Samozřejmě toto se 
může lišit projekt od projektu a skutečně to nelze brát paušálně, 
nicméně z mého pohledu by mě musel někdo dlouho přesvědčovat mnoha 
argumenty, že máme psát getPolozkaFaktury, nebo nedej bože 
getPoložkaFaktury


Samozřejmě nás také tahá za uši detabata o fíčurách a klááásáách atd, 
ale to je z mého pohledu daň za výše popsané výhody...


S pozdravem

Lukáš Záruba (Lukas Zaruba)
Chief Technical Officer
MEDIA SOLUTIONS SLOVAKIA A.S.
Lisabonská 4 (Budova Technologického Centra)
Praha 9 190 00
Czech Republic


On 21.7.2010 11:22, Tomáš Záluský wrote:

Možná nejsem dostatečně in, ale můj názor je, že smíšené názvy jako 
getPolozkyFaktury mají v některých případech opodstatnění a není správné je 
zavrhovat paušálně.

Někdy je doména zákazníka tak rozsáhlá a pojmy jsou tak zakořeněné, že překlad 
z češtiny do angličtiny není přesný a celkově to pak působí křečovitě.

Obecně: pokud je kdekoli, problémovou doménou zákazníka počínaje a zdrojáky 
výsledné aplikace konče, ustálena zvyklost používat české pojmy, pak by 
zodpovědný programátor (analytik, technický garant...) měl zvážit, na kterém 
místě bude optimální provést přechod na angličtinu. Z pohledu rizik jako 
nepochopení pojmů, nutnosti překládat si pojmy interně při jednání s doménovým 
expertem, reálné pravděpodobnosti, že projekt bude koupen/opensourcován atd. A 
pokud mu vyjde, že je nejlépe zachovat češtinu až do zdrojáku, vůbec bych se na 
něj nezlobil.

Řešili jsme to např. u projektu, jehož db měla tabulky a sloupce léta v 
češtině. Naše aplikace navíc nebyla jediná, která nad db pracovala, takže 
změnit db nepřicházelo v úvahu. I když mě dvojjazyčné identifikátory taky 
tahají za uši (oči ? :-), nakonec jsme dospěli k tomu, že je to cesta 
nejmenšího zla. Ukázalo se dokonce, že oddělení jazyků naopak napomáhá 
čitelnosti - šlo o projekt pro telekomunikačního operátora, kde každému je léta 
jasné, co je Sluzba (telekomunikační služba) nebo Pripojeni (telefonního 
kabelu), zatímco jak by dopadl překlad na Service resp. Connection, když je 
projekt implementován pomocí Springu a JDBC, si asi dokáže každý domyslet... 
Takže kompromis zněl: český pojem = doménový pojem zákazníka, anglický pojem = 
něco, co se týká implementace (s náhradou get/set za dej/sej taky nesouhlasím 
:-)).

Neříkám, že výše uvedený postup je nejlepší pro každého, ale musí se k tomu 
přistupovat s rozumem a ne pod vlivem módních trendů.

Tomáš Záluský



...with Ultimate flying is so easy...
http://www.frisbee.czhttp://www.peaceegg.net






__
   

Od: "Ondrej Nekola"
Komu: Java
Datum: 20.07.2010 13:40
Předmět: Re: diakritika

2010/7/20 Tomas Hubalek

 

  On mezi nami takove treba getPolozkyFaktury() nebo getPacient() mi docela
solidne tha usi ;-) Osobne pisu zasadne vzdycky vsechno anglicky a o i kdyz
pisu neco pro sebe.

Tom

   

Pamatujte take, ze nikdy nevite, kdo vas koupi/kdy to budete chtit
opensourcovat...
Anglictina je sazka na jistotu.
--
S pozdravem
Ondřej Nekola


 


Re: Jaroslav Manousek/MIKROS je mimo kancelář.

2010-07-23 Thread Lukáš Záruba

Dobrý den,
je zajímavé jak tato chyba, ke které je velice těžké dohledat viníka 
(chyba mail serveru, chyba nastavení mailserveru, skutečná chyba pana 
manouska), dokáže tolik lidí rozhodit až tak, že v této diskuzi, která 
by měla být na rozdíl od jiných, které se na netu vyskytují, slušná a 
zaměřená na téma, dochází k takovýmto ostrým výrokům.
Taky se mi nelíbí, že mi přichází (přicházelo) mnoho mailů, které jsem 
nechtěl číst, ale ono to delete zase tolik nebolí... :)


Krom toho "hallo world" bych si opravdu psát asi také nenechal. 
Mimochodem, pan Manousek mohl udělat velice podobnou chybu, prostý přepis...


Omlouvám se za offtopic, jenom mě to trochu rozčílilo.

S pozdravem

Lukáš Záruba (Lukas Zaruba)


On 23.7.2010 00:06, ta...@suchdol.net wrote:

pan manousek je dobra reklama pro firmu, u takovych s prominutim debilu
bych si nenechal napsat ani hallo world:))

A.
jmanou...@mikros.cz píše v Čt 22. 07. 2010 v 10:16 +0200:
   

Mimo kancelář budu od  22.07.2010 a nevrátím se do 15.08.2010.

Na Vaši zprávu odpovím, jakmile se vrátím.

S pozdravem
Jaroslav Maňoušek, Mikros

 


   


Re: Hibernate a diakritika

2010-08-29 Thread Lukáš Záruba

 Dobrý den,
toto řešení je asi nejefektivnější, ale má jednu velikou nevýhodou a tou 
je neflexibilita. Pokud taková databáze poroste a vy se rozhodnete časem 
změnit například oddělovaní takto upravených "fulltextových" dat, tak 
můžete narazit na dost veliké potíže. Z tohoto důvodu jsem například v 
jedné naši aplikaci od tohoto sloupce upustil a radši zapojil Apache 
Lucene engine, do kterého existuje (nebo si lehce vytvoříte) češtinu bez 
diakritky a lowercase, stejně jako spousta jiných jazyků. Tento engine 
vám potom na dotaz velice rychle vrátí id objektů, které mají být ve 
výsledku. Tyto objekty pak můžete rovnou načítat z DB.
Výhoda je, že DB obsahuje jenom skutečně relevantní data a přeindexování 
lucene trvá chvíli. Další výhodou je flexibilita ve vyhledávání v 
řetězcích pomocí tohoto engine, která vysoce převyšuje běžné možnosti 
SQL serverů (nemyslím tím Oracle s Fulltext supportem).
Nevýhoda je zesložitění aplikace a nutnost pochopit Lucene, což pár dní 
trvá, ale zvládnout se to dá...


S pozdravem

Lukáš Záruba (Lukas Zaruba)

On 29.8.2010 18:05, Lukas Barton wrote:

To ale bude desne pomale, nebot se nepouzije index.
Rozumnejsi je pridat sloupec, kde aplikace predpocita hodnotu
bezdiakritiky (lowercase,...) a stejne tak upravit vyhledavaci
retezec.

Dalsi moznost je pouzit k hledani v textu neco jineho nez DB...

   Lukas

On 8/29/10, Ondra Medek  wrote:

No asi bych zkusil vytvorit DB ulozenou proceduru, ktera vrati retezec
bez diakritiky, napr. bezd(), pak v SQL by to bylo neco jako:
WHERE lower(bezd(alias)) like lower(...)
a toho lze pak docilit pres sqlRestriction, pripadne
SQLAliasedCriterion
http://opensource.atlassian.com/projects/hibernate/browse/HHH-2952

2010/8/29 danisevsky:

Zdravím, používám hibernate a postgresql a potřeboval bych pořešit
následující věc. Vyzvednutí všech uživatelů, kteří mají v políčku
alias něco, co obsahuje "Žluťoučký" nebo "žluťoučký":

Criteria crit = session.createCriteria(Person.class);
crit.add(Restrictions.ilike('alias', 'žluťoučký',
MatchMode.ANYWHERE).ignoreCase();
List results = crit.list();

jak nejlépe docílit, aby do výsledku dotazu zahrnul i políčka
obsahující "Zlutoučký" nebo např "zlutoucky" - tedy částečně nebo
zcela bez diakritiky?

Předem díky za jakoukoliv radu.




--
Ondra Medek



Re: Plugin do Eclipse pre podporu vytvorenia lokalizacie priamo z kodu

2010-11-03 Thread Lukáš Záruba

Dobrý den,
pokud používáte eclipse framework (tedy vytváříte pluginy a ne java 
projecty), pak máte možnost využít možnosti lokalizace resourců.
Viz. 
http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.platform.doc.isv/guide/product_def_nl.htm


S pozdravem

Lukáš Záruba (Lukas Zaruba)


Roman Zakutny wrote:

Zdravim,

vedel by mi niekto z Vas poradit, ci existuje plugin do Eclipse 
(pripadne ako inak to sami implementujete), ktory poskytuje zhruba 
nasledujuce moznosti:

1) v zdrojaku napisem string "Testovaci preklad"
2) napr. stiskom praveho tlacitka si z kontextoveho menu vyberiem 
nieco ako "Localize"

3) v okne zadam vlastny lokalizacny kluc, napr. "my.key"
4a) po potvrdeni mi automaticky vygeneruje konstantu do predom znamej 
triedy - public static final String MY_KEY = "my.key"
4b) do predom znameho *.properties suboru vlozi kluc "my.key=Testovaci 
preklad" (pripadne poskytne vytvorenie dalsich jazykovych mutacii)


Tymto postupom by som si chcel usetrit vlastne generovanie konstant a 
predist tak "opacnemu" pristupu:

1) vytvor lokalizacny kluc v *.properties subore
2) pregeneruj triedu konstant na zaklade tohto *.properties suboru
3) vloz konstantu do kodu

V Eclipse uz existuje sice moznost "Enternalize String", ale to sa mi 
moc nepaci, pretoze to sice konstantu vygeneruje, ale natvrdo tam 
dosadi tu moju jedinu lokalizovanu hlasku. Tym som prisiel o moznost 
dynamickej lokalizacie podla aktualne uzivatelom nastaveneho jazyka.


Alebo to riesite nejak inteligentejsie?
Dakujem za rady.

PS: uz pouzivam plugin ResourceBundleEditor, ktorym dokazem prehladne 
vytvarat rozne jazykove mutacie. Ale je to len pre *.properties subory 
a nema ziadnu podporu pre *.java subory.


S pozdravom Roman.


Re: Co teď "letí" v Javě na web a verzování?

2011-02-03 Thread Lukáš Záruba

Zdravím,
my teď k naší poměrně vysoké spokojenosti používáme kombinace aplikace 
postavené na platformě Eclipse + na GUI SmartGWT což je framework 
postavený na SmartClient věci, která je velice zajímavá a pořád navzdory 
drobným nedostatkům poskytuje asi nejlepší podporu věcí, které pokud 
děláte enterprise aplikaci do webu, bude potřebovat. SmartGWT kombinuje 
GWT s funkcionalitou smart klienta Není problém remote debug UI v 
Javovém kódu, který se ale pouští jako JS na straně browseru a podobné 
divočiny. Zabere nějakou chvíli, než se do toho dostanete, ale potom to 
přináší hodně výhod.
Co se Eclipse Platform týče, tak pro mě už je to něco jako náboženství 
:) je to opět poměrně rozsáhlá záležitost, ale velice dobře 
dokumentovaná a podporovaná. Doporučuju si o tom přečíst nějaký krátký 
výtah, např. na wiki, abyste rychle zjistil, zda je to něco co hledáte 
nebo ne.


Krom těchto věcí používáme Eclipse Modeling Framework na vyrábění modelu 
a práci s ním. Tam je třeba být opatrný a nenechat se strhnout tím, že 
to umí všechno udělat "samo". Já osobně propaguju jenom první část, tzn. 
vygenerovat třídy + nástroje pro práci s nimi, ale EMF umí i jakýsi Edit 
framework vyrobit a tam už je to dost na hraně. Je potřeba to důkladně 
prostudovat a udělat rozhodnutí, jak hluboko se chcete pustit.


Tahle kombinace je velice silná, ale jenom pokud máte náladu se s tím 
trochu sám bavit. Pokud chcete vygenerovat aplikaci, která splňuje 
standardní požadavky (těžko to definovat, ale asi tušíte co tím myslím), 
tak to co jsem popsal je příliš "low-level" kombinace. Pokud ale u 
většiny frameworků trpíte, protože pokrývají jenom 75% vašich potřeb a 
pak se je snažíte hackovat aby zvládali i zbytek i za cenu naprostých 
šíleností, tak by tohle mohla být cesta...


Jinak verzování CVS a je to :) (hlavně kvůli podpoře v Eclipse Builderu 
(Ant + interní Eclipse systém))


S pozdravem

Lukáš Záruba (Lukas Zaruba)


Dne 3.2.2011 09:26, Rastislav Siekel napsal(a):
Pokiaľ ste robili JDK 1.4 a Struts, nie je problém používať Struts 
naďalej. Posledná verzia Struts 2 je z 20.12.2010, framework vyzerá 
živý a je dosť "ajaxoidný", pretože sa na AJAX spojil s Dojo frameworkom.
Osobne ho nepoužívam, ale myslím, že je stále plne použiteľný, 
odladený a s podporou asi vo všetkých IDE.



Ešte sa mi páčil v poslednej dobe Google web toolkit - ale to je 
toolkit, nie framework. Ale pekný. A najviac "rich" aký som kedy videl :-)



Rastislav "Bedo" Siekel


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

On 3. 2. 2011 9:06, Tomas Hubalek wrote:
Pokud jde o verzovani, tak Mercurial je vyborne podporovany vsemi 
tremi hlavnimi IDE (NetBeans i IDEA to maji out-of-the-box, u eclipse 
je potreba nejaky plugin).
Git je asi vic "sexy" diky githubu, ale ja jsem si zvyknul na 
mercurial a jsem s nim spokojeny.
Pokud jde o web, tak asi strasne zalezi na typu aplikace, jak moc 
ma/nema byt ajaxoidni.

Tom


*Od:* konference-boun...@java.cz za uživatele Libor Jelinek
*Odesláno:* čt 3.2.2011 6:39
*Komu:* konference@java.cz
*Předmět:* Co teď "letí" v Javě na web a verzování?

Dobrý den všem,
bohužel jsem se musel pracovně věnovat trochu jiným činnostem, než
programování a posledních cca 4-5 let jsem na J2SE/J2EE ani nešáhnul.
V mé "době" bylo top JDK 1.4 na pro web Strutsy. O JSF a Spring apod.
se teprve začínalo mluvit :-)

(1) Chci se zeptat, protože vím, že mi už asi docela ujel vlak, co se
má momentálně smysl učit, pokud chci vyvíjet webové aplikace (pokud
možno "rich", tj. AJAX apod.) ? JSF nebo něco úplně už jiného?

(2) Jaký verzovací systém se teď nejvíc používá v Javě? Stále ještě
Mercurian? Nebo používáte Git? Mě se líbí Git a Bazaar, ale nevím jaký
je tam zrovna podpora z IDEs.

Velmi děkuji za názory :-)
Libor



Re: Co teď "letí" v Javě na web a verzování?

2011-02-03 Thread Lukáš Záruba
Přemýšlel jsem nad tím, že bychom se vrhli na nějaký jiný systém, než 
CVS, ale nenašel jsem žádný argument pro podporu tohoto dost nákladného 
kroku. Můžete mi prosím říct na základě čeho "CVS bych už snad ani 
nedoporučoval"? Zajímá mne jestli jsem něco nepřehlédl.


Díky

Lukáš Záruba (Lukas Zaruba)



Dne 3.2.2011 11:03, Tomas Vojtech napsal(a):
CVS bych už snad ani nedoporučoval. Když už tak SVN. Ale spíš bych se 
podíval na DVCS. Jedno na který. Mně se nejvíc líbí Git.


On 02/03/2011 10:45 AM, Michal Pavlasek wrote:

Dobry den,

tak z tohoto asi vznikne slusny flame :)

Mne sa pozdava Grails ked chcem nieco nove,
na klasicku javu najma Stripes (+displaytag, +jquery, 
+hibernate(alebo ine JPA), ...).


A na verzionovanie SVN alebo CVS.

bye
CoPLaS

2011/2/3 Libor Jelinek <mailto:ljeli...@virtage.com>>


Dobrý den všem,
bohužel jsem se musel pracovně věnovat trochu jiným činnostem, než
programování a posledních cca 4-5 let jsem na J2SE/J2EE ani nešáhnul.
V mé "době" bylo top JDK 1.4 na pro web Strutsy. O JSF a Spring apod.
se teprve začínalo mluvit :-)

(1) Chci se zeptat, protože vím, že mi už asi docela ujel vlak, co se
má momentálně smysl učit, pokud chci vyvíjet webové aplikace (pokud
možno "rich", tj. AJAX apod.) ? JSF nebo něco úplně už jiného?

(2) Jaký verzovací systém se teď nejvíc používá v Javě? Stále ještě
Mercurian? Nebo používáte Git? Mě se líbí Git a Bazaar, ale nevím
jaký
je tam zrovna podpora z IDEs.

Velmi děkuji za názory :-)
Libor




Re: Co teď "letí" v Javě na web a verzování?

2011-02-03 Thread Lukáš Záruba
Ano, na toto jsem koukal a zdálo se mi to jako hlavní výhoda, nicméně 
pokud se to stane (a zatím se to stalo opravdu jenom párkrát) a máte k 
dispozici rozumné IDE (v mém případě eclipse), tak rozhodně nevznike 
nenapravitelný chaos. Navíc komit 100 souborů s jedním CVS komentářem 
není zrovna dobrá praktika, protože není pravděpodobné, že opravdu 
všechny soubory, které jsou touchnuté dávají smysl dohromady s tím 
komentářem, pak vznikají komity, kde do Util classy někdo přidá metodu a 
komentář je o nějakém novém aparátu, který tuto třídu jenom používá...


Proto skutečně tuto vlastnost za tak klíčovou napovažuji. Jsou tu nějaké 
další návrhy, nebo je toto opravdu jediný klíčový rozdíl?


Díky

Lukáš Záruba (Lukas Zaruba)



Dne 3.2.2011 11:26, Petr Synek napsal(a):

Jednoznacne CVS ne proto, ze CVS nema transakcni commit.

Pokud komitujete napr. 100 souboru a v pulce vam spadne spojeni, tak 
vznikne tezko opravitelny chaos, ktery se narocne rucne opravuje.


Napr. SVN uz transakcni commit ma. Takze se vzdy komitne bud vse nebo 
nic.


Petr

On 03.02.2011 11:18, Lukáš Záruba wrote:

Přemýšlel jsem nad tím, že bychom se vrhli na nějaký jiný systém, než
CVS, ale nenašel jsem žádný argument pro podporu tohoto dost nákladného
kroku. Můžete mi prosím říct na základě čeho "CVS bych už snad ani
nedoporučoval"? Zajímá mne jestli jsem něco nepřehlédl.

Díky

Lukáš Záruba (Lukas Zaruba)



Dne 3.2.2011 11:03, Tomas Vojtech napsal(a):

CVS bych už snad ani nedoporučoval. Když už tak SVN. Ale spíš bych se
podíval na DVCS. Jedno na který. Mně se nejvíc líbí Git.

On 02/03/2011 10:45 AM, Michal Pavlasek wrote:

Dobry den,

tak z tohoto asi vznikne slusny flame :)

Mne sa pozdava Grails ked chcem nieco nove,
na klasicku javu najma Stripes (+displaytag, +jquery,
+hibernate(alebo ine JPA), ...).

A na verzionovanie SVN alebo CVS.

bye
CoPLaS

2011/2/3 Libor Jelinek mailto:ljeli...@virtage.com>>

Dobrý den všem,
bohužel jsem se musel pracovně věnovat trochu jiným činnostem, než
programování a posledních cca 4-5 let jsem na J2SE/J2EE ani 
nešáhnul.
V mé "době" bylo top JDK 1.4 na pro web Strutsy. O JSF a Spring 
apod.

se teprve začínalo mluvit :-)

(1) Chci se zeptat, protože vím, že mi už asi docela ujel vlak, 
co se
má momentálně smysl učit, pokud chci vyvíjet webové aplikace 
(pokud

možno "rich", tj. AJAX apod.) ? JSF nebo něco úplně už jiného?

(2) Jaký verzovací systém se teď nejvíc používá v Javě? Stále 
ještě

Mercurian? Nebo používáte Git? Mě se líbí Git a Bazaar, ale nevím
jaký
je tam zrovna podpora z IDEs.

Velmi děkuji za názory :-)
Libor




Re: Co teď "letí" v Javě na web a verzování?

2011-02-03 Thread Lukáš Záruba
Před soubor změn se můžete lehce vrátit pomocí vycheckoutování proti 
datumu a času, popřípadě pokud děláte opravdu veliké změny, tak se dá 
stav CVS otagovat a k němu vracet a porovnávat.
Pravda veliký problém jsou přejmenované soubory (jak někdo zmiňuje dále 
v diskuzi), ale pořád to podle mého názoru nejsou rozdíly, které by 
ospravedlnily tvrzení "Zkratka CVS uz radeji ne".


Jenom bych rád upozornil, že nezastávám CVS ani SVN ani nic jiného, 
prostě se snažím dobrat DŮVODŮ, které by mohly vést ke změně. Změna 
verzování obvykle znamená dost nákladný a náročný proces, takže 
argumenty "A spousta dalších..." nejsou moc platné.


Každopádně děkuji za všechny odpovědi

S pozdravem

Lukáš Záruba (Lukas Zaruba)


Dne 3.2.2011 11:36, Petr Synek napsal(a):
Navic u CVS se neda odkazat na commit ID, ktery sdruzuje komitnute 
soubory. CVS komituje soubor po souboru a dohledani toho co jsem 
komitnul ke konkretnimu tasku muzu delat leda podle text komentaru a 
to je dost neprakticke. Trochu se to da obejit pomoci CVS tagu, ale 
neni to ono.


Zkratka CVS uz radeji ne :-)

Petr

On 03.02.2011 11:26, Petr Synek wrote:

Jednoznacne CVS ne proto, ze CVS nema transakcni commit.

Pokud komitujete napr. 100 souboru a v pulce vam spadne spojeni, tak
vznikne tezko opravitelny chaos, ktery se narocne rucne opravuje.

Napr. SVN uz transakcni commit ma. Takze se vzdy komitne bud vse nebo 
nic.


Petr

On 03.02.2011 11:18, Lukáš Záruba wrote:

Přemýšlel jsem nad tím, že bychom se vrhli na nějaký jiný systém, než
CVS, ale nenašel jsem žádný argument pro podporu tohoto dost nákladného
kroku. Můžete mi prosím říct na základě čeho "CVS bych už snad ani
nedoporučoval"? Zajímá mne jestli jsem něco nepřehlédl.

Díky

Lukáš Záruba (Lukas Zaruba)



Dne 3.2.2011 11:03, Tomas Vojtech napsal(a):

CVS bych už snad ani nedoporučoval. Když už tak SVN. Ale spíš bych se
podíval na DVCS. Jedno na který. Mně se nejvíc líbí Git.

On 02/03/2011 10:45 AM, Michal Pavlasek wrote:

Dobry den,

tak z tohoto asi vznikne slusny flame :)

Mne sa pozdava Grails ked chcem nieco nove,
na klasicku javu najma Stripes (+displaytag, +jquery,
+hibernate(alebo ine JPA), ...).

A na verzionovanie SVN alebo CVS.

bye
CoPLaS

2011/2/3 Libor Jelinek mailto:ljeli...@virtage.com>>

Dobrý den všem,
bohužel jsem se musel pracovně věnovat trochu jiným činnostem, než
programování a posledních cca 4-5 let jsem na J2SE/J2EE ani nešáhnul.
V mé "době" bylo top JDK 1.4 na pro web Strutsy. O JSF a Spring apod.
se teprve začínalo mluvit :-)

(1) Chci se zeptat, protože vím, že mi už asi docela ujel vlak, co se
má momentálně smysl učit, pokud chci vyvíjet webové aplikace (pokud
možno "rich", tj. AJAX apod.) ? JSF nebo něco úplně už jiného?

(2) Jaký verzovací systém se teď nejvíc používá v Javě? Stále ještě
Mercurian? Nebo používáte Git? Mě se líbí Git a Bazaar, ale nevím
jaký
je tam zrovna podpora z IDEs.

Velmi děkuji za názory :-)
Libor