Kam zmizel mobility pack?

Mobility pack býval sadou pluginů pro NetBeans, která podporovala vývoj Java ME aplikací. Časem pěkně narostl a zvládal docela pěkné kousky – k nejzajímavějším věcem patřila podpora grafického návrhu GUI.

Mobily pack se časem stal ze samostatného downloadu základem jedné z edic NetBeans – NetBeans Mobility. Pokud jste zkušeli stáhnout betu (nebo předtím milestone), NetBeans 6.5, tak vám asi neušlo, že nabízených edic je podstaně méně a jednou z těch, které chybějí, jsou i Mobility. Podobný osud potkal i variantu Web + Java EE.

Z NetBeans samozřejmě Mobility nezmizely úplně. Jen se staly součástí všeobjímajícího javovského balíčku nazvaného jednoduše Java.

Pokud nechcete tak veliký balík se spoustou pluginů, je tu stále možnost stáhnou bundle Java SE a do něj podporu mobilního vývoje nainstalovat přes Update center.

Za upozornění na tuto změnu děkuji blogu Lukáše Hasika.

Taháky do programátorovy kapsy II

Už jednou jsem tu psal o tahácích pro programátory – přehledná a pokud možno i pohledná reference se hodí i poté, co skončíte studia. Další příjemný zdroj vznikl před časem na DevZone. Počet “Refcardz” utěšeně vzrůstá a mezi autory je i několik slavných jmen, například Groovy shrnul Dierk Konig, jeden z autorů knihy Groovy in Action.

Příjemná vymoženost je, že Refcardz mají i svůj rss feed. Sám jsem ho naladil a totéž doporučuji i vám.

JOS

Nebudu nosit sovy do Athén a kapříky do Českého fotbalového svazu a psát podrobnější reportáž. Udělali to třebas Strakyi a Otec Fura (který mimochodem nemá vousy). Přesto si letošní “nultý” jOpenSpace zmínku zaslouží: nekonference o Javě byla dobrý nápad a ještě lepší mi přišla realizace.

Takže: Díky Michale za organizaci. A vy ostatní – díky za vaše příspěvky i za pozornost.

Budoucnost WWW?

Před několika měsíci jsem rozepsal tento post, dnes ho snad s trochou štěstí dokončím. Kupodivu se za tu dobu mnoho nezměnilo, jen přibylo pár frameworků:

Přítomnost má marketingové jméno Web 2.0, ať už to znamená cokoli a ať už je to k něčemu dobré či ne.
Jednou z možných cest do budoucnosti se zdál být semantický web. Ale jak to tak vypadá, vítězí spíš zaměření na aplikace – mnoha technologií semantického www se jistě dočkáme, ale výsledný cíl se nejspíše bude lišit.
Ale aplikace, které žijí jen v prohlížeči, mají mnoho potíží. Méně pokročilí uživatelé nejspíše zkousnou GUI, které se nemůže možnostmi měřit s desktopovými aplikacemi. Ale každého dříve či později stihne zdánlivě neodstranitelná potíž – webové aplikace pro svůj život potřebují připojení k internetu. A to může být kámen úrazu. Dokud používám Mail.app nebo Outlook, mohu psát dopisy i ve vlaku, kde nemám k dispozici Síť. Ale Gmail mi to neumožní. Podobně narážím i s organizovátky času nebo online textovými editory. Jsou po ruce stále, kdykoli a kdekoli – ale jen, pokud je po ruce i připojení.
Nebudu to zdržovat – jsou možnosti, jak toto prokletí obejít. A zdá se, že v poslední době se s nimi roztrhl pytel.

  • Můžeme se vzdát života v prohlížeči, webovosti, a vsadit na desktopové technologie – jen je lépe deployovat. Skvělý příklad je Swing distribuovaný pomocí Java Web Startu. Mít na každém počíatči javu, tak neváhám. Pokud se vám nechce tvořit swingové uživatelské rozhraní v Javě (za pomoci Matisse to není zas tak obtížné, jak škarohlídi tvrdí), je tu Java FX nebo třebas groovyovský Swing Builder.
  • Adobe Apollo se změnilo v Adobe Integrated Runtime alias AIR. Runtime, který umožnuje stáhnout aplikace postavené na webových technologiích (AJAX, Flash…) na desktop. Tam se tváří jako hybridy – trocha webovosti a trocha desktopovosti (třebas spouštění ikonkou na ploše nebo část look and feel). A co je snad ještě důležitější – umožňuje aplikacím ukládat data i na straně klienta.
  • Když ukládat dat na klientovi, tak pořádně. A když pořádně, tak podle normy (nebo alespoň “normy”). V draftu specifikace HTML 5 se objevil návrh na lokání uložiště. Ta jsou dvou druhů – globální a jedno pro každou session. Ukládají se klíč-hodnota. Prosté, ale intelektuála neuspokojí. Výhodou je, že je možné začít testovat implementaci ve Firefoxu.
  • Podstatně těžkotonážnější řešení nabízí další zvažovaná novinka v HTML 5 – Client-side database storage. SQL databáze v browseru vypadá jako nonsens, ale výhody by byly očividné – v prostředí porhlížeče by muhly začít vznikat plnokrevné aplikace, které ke svému běhu síť používají ale nevyžadují. Zůstaly by limity v tvorbě rozhraní (HTML je fain, ale…), JavaScript rozhodně není jazyk vhodný na nějaké větší programováné, ale i zmizel by alespoň jeden problém. Netroufnu si říct, co taková změna udělá s bezpečností a s metodikou návrhu.

Vize je to příjemná – už se těším, jak budu někde uprostřed parku připravovat posty na blog nebo upravovat wiki. Ale provedení docela pokulhává – některá řešení jsou příliš omezená svým původem. V intranetu bude možné zajistit JVM nebo AIR runtime na každém stroji. Ale že by se objevili v každé internetové kavárně nebo na každém chytrém mobilu – o tom pochybuji.
SQL je dost silný nýstroj. Ale… Málo kdo ho umí doopravdy dobře používat a tak se jistě dočkáme “mistrů”, kteří budou používat lepení query místo prepared statements a budou páchat schemata, která normální formy neviděla ani z rychlíku. Budiž nám již dopředu útěchou, že různé “SQL injections” ztrácejí na desktopu tak trochu smysl – uživatel by si zbůhdarma útočil na aplikaci, kterou má stejně pod kontrolou. Ale přibudou nová nebezpečí – tvůrce aplikace už si nebude moci být jistý tím, že má v databázi to, co si tam skutečně uložil.
A pak se samozřejmě přidává i obvyklá kritika SQL. Je to užitečný jazyk, ale ve většině případů by udělal lepší službu nějaký ORM nebo objektová databáze. Ale to by asi byl příliš velký krok vpřed.

A protože se za tu dobu mnoho nezměnilo, tak ho dokončím v podobném duchu ale v trochu jiném směru:
Od prvního draftu tohoto článku se na světě objevilo několik nadějných javascriptových frameworků, které se snaží přiblížit programování v browseru programování pro desktop. Sprout core se stal základem pro MobileMe od Apple. Finální verse MobileMe zatím nespatřila světlo světa, ale screencasty naznačují, že by Google Mail mohl najít přemožitele v soutěži “kdo bude ethalonem pro RIA”.

O kousek dál má najspíše v plánu zajít Objective J. Zatímco Sprout Core je “jen” MVC framework pro javascript, Objective J javascript rozšiřuje podobně jako Objective C rozšiřuje C. Knihovny pro Objective J pravděpodobně budou také postavené na návrhovém vzoru MVC. Podle zatím dostupných informací by neměly skrývat inspiraci kakau, aplikačním rámci, který Apple používá (jako jeden ze dvou) na desktopech. Zatímco Sprout Core na svou velkou aplikaci zatím čeká (a za pár dnů se ji dočká), Objective J ji už má: 280 slidů je velmi zdařilá nápodoba Keynote běžící v prohlížeči. Stačí vychytat pár dětských chyb a tvůrci mohou hrdě prohlásit, že opět posounuli možnosti webu o kousek dál.

Místo závěru

Netroufnu si soudit, jaké technologie nás čekají za měsíc, dva, tři. Ale jsem ochotný vsadit se o panáka, že ty, které se budou držet prohlížeče, prokáží o něco větší životaschopnost než ty, které budou nutit uživatele instalovat další software (Silverlight, Air…). Výjimkou samozřejmě bude kontrolovatelnější prostředí intranetu.

Daší velkou změnu přinesou chytré mobily s velkými obrazovkami vedené iPhonem. Ty mají šanci změnit poměr sil. Ale zatím je většina zajímavých technologií (Java FX Mobile, Firefox Mobile…) pro ně jen v podobě prototypu, takže nám nezbývá, než počkat, kdo chytí příležitost za pačesy.

ScienceWeek.cz

Málokdy mne potěší nějaký webový projekt, který pochází z Česka (Marigold jistě promine ;) ), ale ScienceWeeku se to podařilo.
Specializované agregátory pomalu ztrácejí své dřívější opodstatnění – v časech RSS vypadají tak trochu jako anachronismus. Ale pokud některé zdroje agragaci nemají, agregátor přidá lidský vhled a články jsou filtrovány i ručně, výsledek stále může stát za to. To je i případ ScienceWeeku.
Nic není dokonalé – uživatelské rozhraní by šlo zlepšit (údajně je to v plánu) a chybí vlastní RSS export. To je škoda, možnost napojit třebas na Yahoo! Pipes bych asi ocenil nejen já.

Pokud vás věda jen trochu zajímá, dejte ScienceWeeku šanci. A pokud vás zaujme, tak zkuste i jeho anglickou mutaci.

Tags: , ,

JBuilder 2007

JBuilder patříval k oblíbeným IDE pro Javu, ale před několika lety se ukázalo, že není schopen držet krok. Eclipse vtrhlo mezi ostatní javovská vývojová prostředí a ukouslo si takový díl koláče, že je se pro ně stalo téměř synonymem. Díky skvělému editoru byla stále ještě považována za nejlepší konkurenci IntelliJ Idea, ale NetBeans držela nad vodou jen silná ruka firmy Sun.
To vše se začíná zvolna měnit, ale ještě před rokem, rokem a půl vypadala situace jednoznačně. A tehdy také Borland oznámil, že nový JBuilder bude postaven nad Eclipse.
Eclipse je jistě šťastná volba – je to slušné vývojové prostředí a zároveň platforma pro vývoj aplikací. Borland nebyl první a jistě ani poslední firmou, která založila svůj produkt nad Eclipse. Existuje několik IDE postavených nad Eclipse, ale nad platfomou nadšenci vyvíjejí třebas i RSS čtečku.

Co, na čem a za kolik

První a největší zklamání, které mi JBuilder přinesl, je skutečnost, že běhá pouze na Windows. Začátkem léta by se měla objevit i verse pro Mac OS X a Linux, ale dosud není k dispozici.
IDE má tři edice

  • Developer – Chybí tu většina z těch nejzajímavějších vlastností. Vlastně jen Eclipse se sbírkou opensource a několika komerčních pluginů.
  • Professional – Tady už to začíná být zajímavé. Nevím, proč je tu grafický návrhář webserviců, což je, podle mne, spíš enterprisová vlastnost, ale hlavní rozdíl proti konkurenci je silný profiler (ten je byl prodáván i samostatně ).
  • Enterprise – Verse pro práci v teamu. Visuální návrh EJB, ProjectAssist a TeamInsight. A samozřejmě spousta UML ;)

Dál budu mluvit o versi Enterprise, kterou jsem dostal od Borlandu k otestování. Licencování a ceny mi přišly trochu zmatené a, pokud se nemýlím, tak dosud nevyšla již vyšla oznámená verse “zdarma jako pivo i pro komerční použití”. Pokud vás to zajímá, obraťte se přímo na český Borland, lidé tam jsou příjemní.
Na instalačním DVD je i vývojářská verse Interbase, tu jsem však netestoval. (Mimochodem – za léta na Macu s opensource programy jsem dost odvykl tomu, že někam musím při instalaci zadávat sériová čísla. A když se navíc program začal ptát na mé ID pro BDN strávil jsem deset minut probíráním pošty, abych jej našel. Jiný kraj, jiný mrav.) Spolu s versí 2007 je možné nainstalovat i starší 2006.

ProjectAssist

Zakládání prokjektu, pokud to není jen jednoduché tic-tac-toe, nebývala snadná záležitost. Nestačí vytvořit adresáře pro zdrojáky a vygenerovat buildscript.
Součástí Enterprise edice je samostatný program (také postavený nad platformou Eclipse) ProjectAssist. Ten pomáhá založit projekt tak, aby byl použitelný pro práci v teamu. Umožní vybrat používané repository systému pro správu versí, systém pro sledování chyb, systém pro kontinuální integraci…
Tady se projevuje jedna z nevýhod otevřeného ekosystému Javy – na výběr jsou jenom nejtypičtější zástupci jednotlivých systémů. Pokud používáte nějaká obskurní řešení, ProjectAssist vám v ničem nepomůže, ale pro teamy užívající třebas Subversion, Bugzillu a Mavenium to může být vítaný pomocník. (Osobně jsem někdy na půl cesty a proto trochu váhám…)

Jenom další Eclipse?

IDE postavených nad Eclipse je několik, osobně mám velmi rád EasyEclipse. Komerční možností je MyEclipse, které, mimo jiné, na platformu Eclipse portovalo nebeanovský designer Matisse.
Borland je ovšem hráč jiné třídy. Dostanete nejen sladěnou sadu pluginů (musím říct, že v první versi šlo najít pár drobných chyb, například špatně vyplněné cesty k přibaleným aplikačním serverům), ale i další nástroje, které jinde nejsou (ProjectAssist). Příjemně mne překvapilo, že Borland stavěl nad Eclipse 3.2, přiznám se k tomu, že jsem čekal větší těžkopádnost, obzvlášť u první verse produktu, která vznikala přes rok a půl.
S ostatními “přidej pluginy a prodávej” prostředími sdílí JBuilder zásadní nectnost Eclipse – pluginy rostou jako dříví v lese a nejsou moc konzistetní (zaplaťpámbu však není mnoho problém s vzájemnou nekompatibilitou). Podobné funkčnosti často dosahují různé pluginy značně odlišnými způsoby – to má za následek vcelku správný dojem, že prostředí není kozistentní.
To je věc, se kterou Borland mnoho udělat nemohl, naštěstí alespoň jeho pluginy nehledají mnoho různých cest, jak dělat totéž. Za trochu nešťastné považuji to, že ProjectAssist je samostatná aplikace – daleko raději bych jej viděl jako integrovanou součást prostředí – třebas jako samostatnou perspektivu.
JBuilder je jen Eclipse s dalšími pluginy. To umožňuje plynulý přechod z Eclipse na JBuilder – všechny mé staré projekty se mi povedlo otevřít i v builderu – jen někdy chyběly pluginy pro některé specifické vlastnosti. Borland naštěsí nijak neomezuje přidávání pluginů, takže si do JBuilderu můžete přidat, co potřebujete – přes updatovací stránky a grafické rozhraní i přímo nakopírováním pluginu do adresářové struktury.

Zajímavé vlastnosti

Samozřejmě je možné i v JBuilderu pracovat stylem “všude samé UML”, ale zaplaťpámbu není to jediná možnost. EJB jsou podporovány ve versích 2.x (nezkoušel jsem) i 3.0. Výsledek je možné deployovat na různé aplikační servery. Spolu s JBuilderem si můžete i několik z nich nainstalovat, ale ne vždy (JBoss 4) jsou správně nakonfigurovány a je potřeba si upravit cesty. Po chvilce hledání je to funkční řešení, přestože se nemohu zbavit dojmu, že v IntelliJ je deployment pohotovější.
Metriky se hodí nejen v serverside programování – Borland přibalil opensource PMD i vlastní metriky.
Práci v teamu jsem vyzkoušel jen na základní úrovni, protože ve Wirenode jsem byl jediný člověk s builderem. Spolupráce se SVN i CVS je v této podobě bezproblémová (jak jen práce v teamu může být). Přiznám se však, že pokud bych po Borlandu (či po komkoli jiném) chtěl jednu novou vlastnost, tak by to pravděpodobně byl plugin poskytující jednotné rozhraní pro různé vcs. Další příklad nekonzistence Eclipse.

..a tristní chyby

Podpora Mavenu 2.0 je bohužel stejná jako v eclipse, tudíž parchmizerná. Borland převzal již existující plugin a bohužel neopravil ani některé staré známé chyby. To znamená, že není možné nainstalovat Windows, Javu, Maven a JBuilder a v IDE pak z nějakého sourcecode repository vytáhnout projekt a sestavit jej. (Vždy je nejprve nutné jednou spustit mvn z příkazové řádky, plugin neinicializuje správně repository).

Konec?

Rozhodně ne. Netroufnu si prorokovat budoucnost JBuilderu, ale mohu říci, co vás čeká na tomto blogu – s týdenní až čtrnáctidenní periodicitou bych tu rád podrobněji ukázal několik vlastností JBuilderu, které stojí za zmínku. Články budou mít dvojí podobu – stručná textové shrnutí a ne více než půlhodinové screencasty ukazující “jak na to”. Doufám, že to bude užitečné nejen pro vývojáře v JBuilderu 2007. Programátoři ve starší versi se hned příště seznámí s Eclipse a naopak vývojáři věrní zatmění se seznámí i s několika opensource pluginy. Na začátku každého článku se také pokusím napsat, pro koho bude dobrý – zkušení eclipsoví harcovníci tak nebudou muset pročítat příští článek, aby zjistili, že se v něm nedozvěděli nic nového.
Roadmapa těchto článků ještě není definitivní, ale jisté již je, že příště přijdou na řadu základy, pak EJB a enterprisové programování obecně (JBuilder má docela povedený grafický editor pro beany, ale osobně stále preferuji ruční kódování) a poté profiler OptimizeIt. A rozhodně pak nevynechám ProjectAssist. Celý seriál o JBuilderu bude k dispozici na adrese http://www.nekola.cz/category/technologie/it/programovani/IDEs/JBuilder

Drobný update: JBuilder a další XBuildery programuje sekce firmy Borland CodeGear, ktera je dost samostatná. Takže bych měl mluvit o CodeGear JBuilderu a ne o Borland JBuilderu. Zvyk je železná košile, ale od příště se pokusím to napravit.

Chyba při počítání s datem

To se může stát každému. Pokud naprogramované zařízení překročí mezinárodní datovou linii, může se nějaká ta chybka vloudit. Stačí nepozornost programátora v kombinaci s nedůsledností testera.

Nepříjemná situace nastane, když je tím zařízením F-22 Raptor.

Při přeletu z Havaje na Okinawu šestici F-22 při překročení datové linie zkolabovala elektronika. Naštěstí jim přálo počasí a mohly se za doprovodu tankerů bezpečně navrátit.

Zdroje: PCtuning odkazoval na DailyTech.

Video s dosud skrývanými informacemi o iPhone

Video od Actioncorp TV ukazuje pár nových detailů o iPhone. Povětšinou se soustředí na detaily z keynote, které nebyly dost zřetelné a přitom skrývají nějakou zajímavou informaci. Video ukazuje, mimo jiné, vzhled kalendáře a podporu pro dopravní informace v mapách. Nejzajímavější je ovšem závěrečná, byť indiciemi podpořená, spekulace o tom, že iTunes Store bude rozšířen o prodej vyzváněcích melodií.

CZJUG vúnoru

Ve středu 21. února 2007 se od 18:00 na Elektrotechnické fakultě ČVUT, v místnosti K1 koná další setkání CZJUGu. Jonas Boner prosloví přednášku Using AOP to Cluster the JVM, Tomáš Záluský bude mluvit o Java Generics. Rozhodování, zda přijít, vám usnadní abstrakty přednáśek.

Cestu můžete najít podle tohoto plánu.

Steve Jobs vs. Bill Gates

Jak již napsal První Mac, tomuhle se nedá odolat: