Thursday Jul 02, 2009
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
Friday Apr 17, 2009
Videa z únorového setkání CZJUGu jsou k dispozici ke stažení. Jen pro připomenutí: jednalo se o monotematicky zaměřené setkání věnované technologii JavaFX.
Úvodní prezentace Honzy Štěrby a Juraje Švece z pražského vývojového centra společnosti SUN Microsystems byla přímo nabitá demonstracemi předvádějícími jednotlivé funkce JavaFX.
Michal Škvor pak navázal předvedením nástrojů potřebných pro vývoj. Zajímavá byla ukázka podpory JavaFX v nástrojích firmy Adobe.
Setkání bylo zakončeno poměrně dlouhou diskuzí, kde prezentátoři nejen odpovídali na dotazy, ale předvedli další dema.
Jednotlivé záznamy jsou přístupné na následujících adresách:
Slajdy jsou zde a zde. I když díky množství demonstrací platí, že kdo neviděl video, slajdy mu rozhodně stačit nebudou :-)
Poznámka: Po downloadu by měla videa být přehratelná na Linuxu/Solarisu mplayerem (vyzkoušeno), z platformy Apple byste je měli být schopni přehrát přímo z webu. Na systémech Windows věřím, že po stažení QuickTime Playeru by přehrání mělo být také bez problémů.
Thursday Feb 19, 2009
26. ledna 2009 proběhlo na půdě katedry počítačů, ČVUT FEL, setkání CZJUG na téma webové služby.
Za firmu SUN Microsystems vystoupil Marek Potočiar. Jeho prezentace projektu Metro byla obohacena několika povedenými demonstracemi, kdy jako runtime byl použit aplikační server GlassFish.
Následoval přehled webservices stacku aplikačního serveru JBoss v podání Richarda Opálky z firmy RedHat. Jako bývalého člena Metro týmu mě potěšilo, že i druhá prezentace se tohoto projektu dotkla. JBoss totiž použití Metra nabízí jako jednu z variant.
Slajdy a stručné představení obou přednášejících lze získat na adrese http://java.cz/detail.do?articleId=16971. A pokud vás zajímá víc, podívejte se i na videa dostupná na následujících adresách:
Poznámka: Po downloadu by měla videa být přehratelná na Linuxu/Solarisu mplayerem (vyzkoušeno), z platformy Apple byste je měli být schopni přehrát přímo z webu. Na systémech Windows věřím, že po stažení QuickTime Playeru by přehrání mělo být také bez problémů.
Friday Feb 13, 2009
We have an old bridge in my city. The city is called Prague, and the bridge is called Charles bridge.
Whenever i am passing the bridge, i recall the date when they started construction. It was 1357 9.7. at 5.31 in the morning. Truly magical and exceptional date.
My colleague Pavel told me today, in UNIX world, such a magical date and time happens to come today at 13 11:45:21 PST. Then if you issued the following command for obtaining UNIX time:
perl -e "print time"You got:
1234567890Only UNIX gods know all what came to us with this exceptional second.
Anyway. I have been always curious, how the middle age people managed to start the Charles bridge construction at the very precisely defined point of time. And still have no clue. Then i have decided to do a small experiment. Our blogging infrastructure allows us to publish a blog post at an exact time and date. I am curious to see, how precise will it be. Planning this post to be published at a very magical second. And to keep this on Friday, February 13, even for my time zone, changing the magical number to 1234554321, which seems to me a way more magical, then the poor 1234567890 :-) Will see...