Saturday Oct 17, 2009
Saturday Oct 17, 2009
WebExpo je údajně největší česká konference zaměřená na web. Za chvíli tam mám prezentovat JAX-RS a potažmo Jersey a už se moc těším. Je to vlastně poprvé, kdy budu prezentovat mimo Java komunitu, a moc mě zajímá, jak na to budou lidi reagovat. Taky jsem zvědavý na přednášky ostatních.
Věším slajdy na http://blogs.sun.com/japod/resource/Jersey-WebExpo-Praha.pdf a vrhám se do víru konference...
Friday Sep 25, 2009
Protože první poprázdninové setkání sdružení CZJUG proběhne vyjímečně v pražské kanceláři SUNu, zveřejňuji zde mapu, pár obrázků a stručný návod jak se na místo dostat.
Kliknutím na mapu by se vám v prohlížeči měla otevřít aplikace mapy.cz, s nastavenou polohou místa setkání. Přesná adresa je: Praha 4, V Parku 8.
Pro snazší orientaci přikládám raději i fotografie. Na té první je pohled směrem ke kanceláři od stanice metra a autobusů Chodov. Na druhé je vidět vlastní vchod do budovy. Po vstupu do areálu se jedná o první takový vchod vpravo, hned za kadeřnictvím a dvěma obchody s jídlem, pitím a časopisy.
Samotné setkání proběhne od 18h večer ve čtvrtém patře budovy, kam se musíte dostat přes celkem 2 recepce. Jedna recepce, provozovaná majitelem nemovitosti, je dole v přízemí. Tam vás pustí výtahem nahoru do 4. patra kde je ještě recepce firmy SUN. Prosím všechny účastníky setkání, aby byli na místě alespoň s desetiminutovým předstihem. Recepce SUNu totiž zavírá přesně v šest večer, a případným opozdilcům tak hrozí, že přijdou o poměrně velkou část první přednášky. Budu se sice snažit občas nakouknout ven, ale ten Gradle mě taky zajímá, takže nebudu na recepci pořád.
Je asi nejjednoduší možnost, jak se na Chodov dostat. Na místo jezdí linka metra C, případně autobusy č. 114, 122, 136 a 177. Jízdní řády lze snadno vyhledat na stránkách dopravního podniku, http://www.dpp.cz
Vážně? I když akci sponzoruje společnost JetBrains kromě jiného chlazeným pivem? Co se dá dělat. Vzhledem k velké popularitě CZJUG setkání nejsem schopen garantovat parkování v garážích SUNu, takže tam prosím ani nejezděte. Máte ale možnost zaparkovat své auto v garážích obchodního centra Chodov, kde máte 3 hodiny parkování zdarma. Obchodní centrum je přímo na metru.
Máte nějaké dotazy? Prosím napiště je do komentáře, ať odpovědi vidí všichni. Těším se příští středu nashledanou!
Tuesday Jul 21, 2009
Jersey version 1.1.1-ea was released a week ago. Paul described what's new at the released version at his blog.
Corresponding packages are now available to all GlassFish v2 users. The Jersey 1.1.1-ea packages were also published for selected GlassFish v3 based distributions and integrated into the v3 main trunk for those, who rely on the nightly builds. Enjoy!
Thursday Jul 02, 2009
Stručně řečeno je SunSPOT malé víceúčelové elektronické zařízení programovatelné v Javě.
Disponuje celou řadou senzorů (teplota, intenzita osvětlení, akcelerometry), dále anologovými a číslicovými vstupně/výstupními porty, dvěma mikrospínači, USB portem a obvody pro radiovou komunikaci.
Více podrobností o technologii SunSPOT lze nalézt v angličtině na stránkách http://www.sunspotworld.com/
Na posledním setkání CZJUGu jsem technologii stručně představil, včetně dvou živých ukázek.
Pokud budou ze setkání videa, dám link na ně do komentáře. Pokud máte zájem podívat se na nějaká videa už teď,
můžete vyzkoušet třeba adresu http://www.youtube.com/watch?v=tv5ZaN9tSck
Firma SUN Microsystems věnovala našemu sdružení CZJUG SunSPOT development kit, který obsahuje 3 výše popsaná zařízení, včetně DVD média se softwarem potřebným k jejich programování. A právě o tento kit jsme se rozhodli uspořádat pro členy sdružení soutěž.
Do soutěže se mohou přihlásit jednotliví členové sdružení CZJUG. Mohou tak učinit posláním e-mailu na mojí adresu (japod at sun dot com), a to nejpozději do konce tohoto měsíce, tj. července 2009. Přihlašovací e-mail by měl obsahovat plné jméno soutěžícího a jeho korespondenční adresu (fyzickou, ne e-mailovou). Počet soutěžících tímto omezuji na 20, po dosažení tohoto počtu už nebudu další přihlášky akceptovat.
Na setkání se mě několik lidí ptalo, zda mohou pracovat na řešení jako tým. Nemám s tím žádný problém, protože ani nedokážu poznat, kdo pracoval sám a kdo měl pomocníky. Chtěl bych jen zdůraznit, že přihlášky akceptuji pouze od jednotlivců, a vítězem bude pro mě z tohoto hlediska pouze jeden konkrétní člověk (tj. je na něm, jak se o případnou výhru podělí se zbytkem týmu)
Soutěž bude dvoukolová. Z prvního kola postoupí do druhého pouze 3 řešitelé. Vítěz druhého kola bude vítězem celé soutěže, tj. vyhrává SunSPOT development kit.
Cílem prvního kola bude vyrobit a zveřejnit prezentaci (může být i video, fantazii se meze nekladou) aplikace, která využívá technologii SunSPOT. Aplikace musí být omezena na použití zařízení obsažených v SunSPOT development kitu (2 plnohodnotné SunSPOTy + 1 základnová stanice) a můžete použít i počítač. Všechny prezentace musejí být volně dostupné na webu do konce září 2009. Do té doby také musím obdržet adresu každé prezentace na můj e-mail (japod at sun dot com).
Výběr postupujících bude probíhat následovně. Každý z účastníků, který dodá řešení pro 1. kolo, bude mít možnost rozdělit celkem 6 bodů mezi jednotlivé prezentované aplikace (tj. včetně aplikace vlastní), a to tak že třem různým řešením přidělí 3, resp. 2, resp. 1 bod. Po sečtení bodů postoupí do druhého kola soutěžící s nejvyšším počtem dosažených bodů. Kde nerozhodnou body, rozhodne veřejné losování. Informaci o technologii přidělování bodů sdělím účastníkům na začátku října.
Cílem druhého kola bude danou aplikaci implementovat a výsledek opět veřejně prezentovat.
Pro tyto účely půjčím soutěžícím SunSPOT development kit, aby mohli aplikaci odladit.
Připomínám, že volně ke stažení je k dispozici emulátor SunSPOTu, který lze využít
už v průběhu prvního kola.
Každopádně, kit mám jen jeden, takže se soutěžící budou muset ve druhém kole prostřídat. Podmínky střídání
domluvím s konkrétními soutěžícími, kteří se do druhého kola probojují.
Termín pro dodání finální prezentace stanovím na základě
domluvy. Předběžně počítám s půjčením kitu vždy na asi 2-3 týdny. Mým cílem je vyhlásit
konečný výsledek soutěže do Vánoc 2009.
Bodování výsledků druhého kola bude podobné jako v kole prvním. Bodovat budou moci všichni účastníci soutěže (tedy všichni co dodali řešení pro 1. kolo), ale body už budou přidělovat pouze řešením 2. kola. Při nejednoznačném výsledku rozhodne opět los.
Napadají mě ještě různé mezní situace, které mohou nastat. Takže pro jistotu:
Monday Apr 27, 2009
Jersey version 1.0.3 is now available also to GlassFish V3 Prelude users via GFv3 update center. I am writing this, because several changes happened about how things work there.
As you can see at the snapshot, the first big change relates to number of Jersey packages. Started from the 1.0.3 version, we are providing two separate packages.
We are going to integrate with GlassFish V3 bits, so that people would not need to install Jersey separately. And as we wanted to lower the Jersey footprint in GlassFish V3, we have broken the original Jersey package down into two separate modules:
The "Jersey Core" package contains OSGI modules for jersey-bundle, jettison, and jackson-asl libraries. This should be sufficient for you to deploy Jersey based web applications to GlassFish V3 Prelude without a need to bundle any Jersey related jars with your application WAR file and should be good for production.
"Jersey Examples and Documentation" package contains Jersey API javadocs and some examples. This package should be useful especially for developers, who want to learn Jersey, and see how it works before developing their own RESTful web applications. If you choose this package, the UC client will automatically install also the "Jersey core" module, and you will get installed everything you need to start up.
A rather cosmetic change happened to location, where jersey subdirectory gets installed into. It has moved from $AS_HOME/jersey to $AS_HOME/glassfish/jersey.
When upgrading from earlier versions of Jersey, you could be a bit confused with consequences of the above described changes. So if you upgraded into a newer Jersey version and try to figure out, where all Jersey examples and docs went, just install "Jersey Examples and Documentation" in addition and it should re-appear in $AS_HOME/glassfish/jersey.
Wednesday Apr 22, 2009
I was asked the question some time ago by one of my colleges here at SUN, and the same question was asked again recently at our user mailing list: "I want to run Jersey based application on Grizzly web server, but i want to also run another servlet from there, and possibly also serve some static content using the very same Grizzly sever instance. How do i do that?"
The answer is as simple as follows. Having imported
import com.sun.grizzly.http.embed.GrizzlyWebServer; import com.sun.grizzly.http.servlet.ServletAdapter; import com.sun.jersey.spi.container.servlet.ServletContainer;
You can just use:
// static content is linked from here
GrizzlyWebServer gws = new GrizzlyWebServer(8080, "/var/www");
// Jersey web resources
ServletAdapter jerseyAdapter = new ServletAdapter();
jerseyAdapter.addInitParameter("com.sun.jersey.config.property.packages",
"com.example");
jerseyAdapter.setContextPath("/jersey");
jerseyAdapter.setServletInstance(new ServletContainer());
// Another non-Jersey servlet
ServletAdapter simpleServletAdapter = new ServletAdapter();
simpleServletAdapter.setContextPath("/simple");
simpleServletAdapter.setServletInstance(new SimpleServlet());
// register all above defined adapters
gws.addGrizzlyAdapter(jerseyAdapter, new String[] {"/jersey"});
gws.addGrizzlyAdapter(simpleServletAdapter, new String[] {"/simple"});
// let Grizzly run
gws.start();
Your Jersey resource classes are placed in com.example package, and will become accessible at http://localhost:8080/jersey base.
Your static content for http://localhost:8080/ is taken from /var/www directory and a SimpleServlet will become available at http://localhost:8080/simple.
The only dependency you will need to include other than Jersey dependencies itself is
<dependency>
<groupId>com.sun.grizzly</groupId>
<artifactId>grizzly-servlet-webserver</artifactId>
<version>1.9.10</version>
</dependency>
If you are interested in some more advanced scenarios, you can get inspired at Jean-Francois Arcand's blog post