2007/11/10
JGear LiveSource - Namodelujte si své Java EE aplikace!
Na portálu java.cz jsem publikoval recenzi na JGear LiveSource, Eclipse plugin, který je pokračovatelem populárního TogetherJ a je základním kamenem nového JBuilderu 2007:JGear LiveSource je nový modelovací nástroj firmy CodeGear. LiveSource umožňuje modelování a vizuální návrh Java /Java EE aplikací pomocí modelovacího jazyka UML. Tento produkt je distribuován jako plugin pro vývojové prostředí Eclipse. V tomto příspěvku bych chtěl popsat svoje dojmy a zkušenosti z tohoto produktu.
Celou recenzi naleznete zde:
JGear LiveSource – Namodelujte si své Java EE aplikace! (java.cz)
Zde se můžete podívat na screenshoty.
Štítky: eclipse, IDE, JBuilder, JGear, programovani, recenze, software
2007/09/26
Chyba v Excelu 2007 - k neuvereni!
Mimochodem - k té nadsázce: Zase tak velká nadsázka to není. Zažil jsem už několik (>=5) projektů (globálních multi-culti :-) firem, kde se nasazoval enterprise systém (sourcing, procurement, pricing) do míst, kde v podstatě 1:1 nahrazoval manuální práci desítek či stovek lidí a jednoho nástroje - všemocného excelu!
Více: Bug in Excel 2007
Štítky: aplikace, software, zajimavosti, zkusenosti
2006/11/29
SlickRun - buďte efektivnější
Jmenuje se SlickRun, je free a sehnat jí lze na adrese www.bayden.com/SlickRun/.
O co jde. Zjednodušeně řečeno se jedná o příkazovou řádku, která přežívá ve formě plovoucího okna na vašem displeji, standardně v oblasti system traye. Je celkem nenápadná a pokud není aktivní zobrazuje aktuální datum, čas den atd.
Aktivujete jí pomocí klávesové zkratky, standardně kombinací kláves WinKey+Q. Poté vám umožňujě funkčnost normální příkazové řádky (vlastně to samé jako WinKey+R neboli Start->Run...), ale navíc rozpoznává takzvané MagicWords. V nich leží celé kouzlo. Kromě přednastavených magických slovíček si můžete zadefinovat vlastní.
Klikání myší je ztráta času. Toto jsem dříve řešil pomocí zadefinování klávesových zkratech tím způsobem, že si na ploše vytvoříte zástupce a jemu nadefinujete kombinaci kláves. To má několik nevýhod. Jednak si je musíte zapamatovat a dále musíte najít takové, které nekolidují s klávesovými zkratkami v aplikacích které provozujete. Například pokud vám běží IntelliJ Idea, které má klávesovou zkratku skoro na všechno, brzy se octnete v koncích. Ale i tak jsem byl schopný denně používat např. Ctrl+Shift+Alt+S pro Servant Salamander nebo Ctrl+Shift+Alt+P pro PuTTy atd. Pokud ale tyto zkratky nepoužíváte denně, brzy je zapomenete.
SlickRun považuju za ideální řešení. Posuďte sami:
ss - Servant Salamander (:-))
cmd - příkazová řádka velká
cmdsmall - příkazová řádka malá
eclipse - eclipse
idea - idea
mail - pustí firemní webmail v záložce Maxthonu
gmail - pustí gmail v záložce Maxthonu
ie - okno internet exploreru
jedit
firefox - firefox
skype - pustí skype
radio1 - pustí stream Radia 1 ve Winampu
radiozurnal - pustí stream Radiozurnalu 1 ve Winampu kdyz si chci poslechnout zpravy :)
scan - pustí software na scanování
omea - omea reader
tcpview
toad
putty
...
...
Tohle byl výčet nejčastějších příkazů, které používám. Zamyslíte-li se nad tím, co denně na kompu pravidelně pouštíte, množina je to celkem omezená.
Fantazii se meze nekladou a SlickRun vám umožňuje celkem dost možností, jak magic wordy pohodlně nadefinovat a přizpůsobit vašim požadavkům. A to celé pohodlně, takže například místo abyste museli zadat cestu k exe souboru, stačí vzít pointer a ukázat na okno běžící aplikace a SlickRun si doplní všechny potřebné údaje sám. Dále pokud například do řádky zadáte URL, SlickRun ho automaticky otevře v prohlížeči.
SlickRun není žádná převratná novinka, ale krásný příklad použitelné freeware utility. A celkem návyková :) Vyzkoušejte a dejte vědět. Dejte tomu čas, ocenil jsem ji, až po druhé instalaci :-)
2006/11/21
JBuilder 2007 aneb veletoc Borlandu
Proč bychom si ho ale měli chtít vyzkoušet? Sám nevím. JBuilder nebyl špatné IDE, ale v časech kolem verzí 6, 7, 8 (ano Borland chrlil major verze každý půlrok) podle mě zaspal dobu. Co nám může nabídnout za nemalé peníze dnes? Nejdříve se podívejme, co jsou to ty nemalé peníze. Licenční model zůstáva zachován, verze Enterprise, Professional a nejchudší Developer stojí 1.999 resp. 799 resp. 399 dolarů (cena za nové licence, ceny za upgrade jsou o něco nižší). Poplatky za podporu nejsou v této sumě zahrnuty a nemalé peníze se platí se zvlášť. Čtyřista babek za Developer verzi, určenou pro individuální a open-source uživatele mi přijde jako silná káva a nerozumím nikomu, kdo by do toho tyto peníze investoval. Podíváteli se na seznam funkcí, je tato verze silně okleštěná (či vykleštěná ;-)) a argument, že můžete IDE rozšířit o pluginy produkované eclipse komunitou zde jaksi nemá smysl.
Dalším důvodem proč podlě mě NEinvestovat do JBuilderu je evidentní nejistota co se týče směřování tohoto produktu a potažmo celé firmy. Investovali byste (sta)tisíce dolarů do software firmy, která v únoru tohoto roku oznamovala, že se zbaví své divize zabývající se vývojovými nástroji (JBuilder, Delphi, C++Builder, C#Builder,...) protože to, co je podle nich "hot", je trh application life management (ALM) softwaru. Tento týden (o devět měsíců později) naopak Borland oznámil, že nejlepší bude divizi nástrojů si ponechat, ale vyčlenit jí jako samostatnou odnož se jménem CodeGear. Pěkný veletoč ;-) Tyto zvraty jsou pro Borland celkem typické, vzpomeňme několikaletou neúspěšnou přeměnu v Inprise a pozdější návrat k původnímu firemnímu jménu Borland.
Nyní se podívejme na technickou stránku věci. Co nového JBuilder 2007 přinese. Čerpám pouze z dostupné dokumentace, což je především web a pdfka: Data Sheet a Feature Matrix.
Již úvodní věta je celkem odvážná :)
The latest JBuilder is the first application server independent enterprise class IDE built on open source Eclipse.
Pokračujme dále:
It provides all the economic benefits of an open source platform, with the reliability of a trusted, turnkey solution provider.
S výše zmiňovanou cenovou politikou mi přijde poukazovat na ekonomické benefity open source platformy také celkem zcestné ;-)
Krásné fráze.
Z inzerovaných featur:
- postavený na platformě Eclipse 3.2
- podpora JEE5,
- podpora JSE5
- oboustranné modelování v UML 2.0
- Visual Web Services Designer
- vizualizace usnadňující EJB development (Visual EJB Workbench)
- integrovaný OptimizeIt 2007 (což může být celkem zajímavý argument)
- ProjectAssist a
- další čím dál víc enterprise-abstraktně-marketingové funkce.
Jak už jsem řekl jsem k osudu JBuilderu dost skeptický. Ani ne kvůli Eclipse a Netbeans, které jsou zdarma. Ani ne kvůli IntellJ Idee, která je o dost levnější a v některých věcech stále nepřekonaná, ale podle mě míří na trochu jiný segment trhu. Skutečná konkurence pro JBuilder jsou produkty jako IBM RAD nebo Oracle JDeveloper. Jenže ti to mají snazší. IBM i Oracle mají sílu s dalšími produkty a službami protlačit svá IDE k zákazníkovi. Borland tuto sílu už dávno nemá!
Štítky: aplikace, programovani, software
2006/02/03
quick oracle tip - how to move tablespaces
ALTER TABLESPACE DATA02 OFFLINE;
ALTER TABLESPACE DATA02
RENAME DATAFILE 'D:\oracle\oradata\mboruvka\DATA021.ORA' TO 'G:\oracle\oradata\mboruvka\DATA021.ORA';
ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
ALTER TABLESPACE DATA02 ONLINE;
note: with this procedure it is not necessary to shutdown db.
Štítky: programovani, software
2005/11/27
Sněžka!
Výstup na Sněžku v zimě má svoje kouzlo - viz následující fotky:
![]() | ![]() |
![]() | ![]() |
Štítky: cestovani, programovani, software
2005/05/10
IT: JBuilder open sourcem
Co je v pozadí? Samozřejmě je to vítězné tažení Eclipsu.
I když CEO Borlandu se tváří stále optimisticky - viz článek Žiješ jenom třikrát - bude to podle mě mít Borland hodně těžké a osobně nedávám JBuilderu moc šancí.
Zároveň je mi JBuilderu trošku líto, protože to bylo moje první IDE. Díky práci na pluginu WASP Developer jsem si důkladně prošel každou verzi JBuilderu od verze 4 (s Porsche Boxster ve splash screenu ;-), 5, 6, 7, 9, X). VSUVKA: Jako malé ocenění tohoto (dnes už dále nevyvíjejícího se) pluginu je pro mě fakt, že samotný html/php/xml/... guru Jirka Kosek použil náš tehdehší plugin ve své diplomce na téma webové služby! ;-) Ale to jsem odbočil.
Otázka která mě napadá: můžete v dnešní době existovat firma soustředící se primárně na vývojové prostředí (IDE)?
...eclipse pod rouškou open source, za zády sponzorovaný všemocnou IBM zabíjí všechny ;-) není to dumping? kdo ještě zbývá? je ted řada na intellij? Co na to jan tleskač?...
Štítky: programovani, software
2005/03/03
IT: Excel v Jave? POI!
V rámci projektu na kterém teď pracuju jsem potřeboval dostat z 10 megového Excel sheetu tisíce hodnot a transformovat je do výstupních CSV souborů. Podle výstupního souboru se lišila kombinace sloupců a jejich transformace. Samozřejmě že by to šlo vyřešit a smést ze stolu rychlým sledem copy&pastů v Excelu a maximálně použitím nějakého makra.
Dostávám se k jádru věci. Rozhodl jsem se pro řešení v javě. Zasvěcení asi vědí, že se k práci s Microsoft Office soubory používá open-source knihovna Jakarta POI.
Takže moje poznatky: pro práci s Excelovskými tabulkami vás zajímá jen jedna část POI - POI-HSSF. Načíst Excelovský dokument a vybrat z něj hodnoty které potřebujete je po rychlém nahlédnutí do Quick guidu záležitost pár minut. Co mě potěšilo je, že to opravdu funguje.
Jenom jsem musel pro načtení 10 MB XLS souboru jsem musel zvětšit heap VM (
-Xmx196M zabralo).Další malou záludností je iterátor přes buňky v řádku (
hssfRow.cellIterator()). Nevracel buňky tak jak byste čekali, ale v jakémsi fyzickém pořadí a na v logickém. Zatím jsem nestudoval o co jde. Stačí použít hssfRow.getCell(int).A nakonec abyste měli představu jak vypadá API sem dávám malý příklad:
FileInputStream fis = new FileInputStream(xlsFile)
POIFSFileSystem fs = new POIFSFileSystem(fis);
HSSFWorkbook wb = new HSSFWorkbook(fs);
HSSFSheet sheet = wb.getSheetAt(0);
HSSFRow row = sheet.getRow(rowNumber);
HSSFCell codeCell = row.getCell(COLUMN_CODE);
Prostě jednoduché a funkční.
Dále jsem potřeboval jeden velký CSV soubor načíst a jiný zapsat.
S tímto formátem POI nepracuje. Takže jsem pro zápis použil normální
PrintWriter a pro čtení knihovnu z ostermiller.org. K ní jedna malá poznámka - CSVParser vrací jen String[][], takže nebude zrovna moc vhodný pro veliké dokumenty.Štítky: programovani, software
2005/03/02
IT: titulek okna v *.bat
(*.bat, *.cmd) ve windowsech. Stavá se vám taky, že máte najednou otevřených šest oken s příkazovou řádkou a zuřivě mezi nimi přepínáte přes Alt+Tab a hledáte to jediné správné? Tak teď už to bude jednodušší. Dodnes jsem netušil že existuje příkaz title [string]. Je to asi tím, že jsem se tyhle příkazy učil na MS-DOSu 5.0. A to tam ještě nebyl. Nebo ano? :-) Pro ty z Vás, co mají potíže vyznat se v oknech i po změně titulků, existuje ještě jedno řešeni: použít
color [XX], kde XX jsou hexa-číslice reprezentující barvy.Opakování je matka moudrosti.
Štítky: programovani, software
2005/02/28
IT: Apache vs. Skype
C:\Program Files\Apache Group\Apache2\bin>Apache.exe
(OS 10048)Only one usage of each socket address (protocol/network address/port)
is normally permitted. : make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
No a bohužel nemáte moc času na řešení tohoto problému. Naštěstí se to povedlo. Takže jak postupovat? První co mě napadlo bylo že si port 80 obsadil Microsoft IIS. Jenže ten neběžel. Takže jsem si pustil utilitu TCPView z kolekce www.sysinternals.com Výborný pomocník. Z něj jsem už jednoduše zjistil, že si port 80 obsadil Skype. Zajímavé. Děje se to jenom v případě, že notebook nemám v síti. Usuzuju z toho, že Skype zkouší pro vytvoření spojení použít svoje standardní porty, ale když se mu to nepovede (notebook není v síti), obsadí si port 80 a i když se nikam nepřipojí a je ve stavu offline - zůstane viset na portu 80.
Štítky: programovani, software
IT: Oracle a jeho služby ve windows
Startup Type) z Automatic na Manual. Oracle Tip Manage Oracle9i services under Windows vám na pár řádcích udělá jasno k čemu která služba je a jestli se vám vyplatí jí spouštět automaticky, ručně nebo nikdy.
Na konci článku jsou dva jednoduché skripty pro startování a stopování služeb Oraclu. Ušetří vám zdlouhavé klikání v managementu
Service.Štítky: programovani, software
2005/01/21
IT: Maly kviz pro znalce batch filu - reseni
Pozdrzet vykovavani
*.bat skriptu napr. na nekolik vterin neni zrovna jednoducha zalezitost. Na princip reseni prisel po nekolika iteracich prisel jako prvni Fil.
Princip reseni je nasledujici. Protoze zadne
pause [time] bohuzel neexistuje a ani choice /t:time uz ve Windows XP/2k nemuzete pouzit, musite si pomoci sami trosku vetsim hackem :-)
Rob van der Woude poskytuje skript obsahujici reseni - v cyklu volate prikaz
ping s nastavenym timeoutem proti neexistujici IP adrese:
ping -n 1 -w [timeout] [neexistujici.ip.adresa]
Chce to duvtip! :-)
Štítky: programovani, software
2005/01/19
IT: Maly kviz pro znalce batch filu
*.bat) smycku, ktera v kazde iteraci ceka rekneme 5 vterin. Jde mi o to cekani, nejde mi o tu smycku ;-)
Štítky: programovani, software
2005/01/02
IT: Refactoring
Knizka pojednava o refactoringu, neboli upravach existujiciho kodu za ucelem zvyseni jeho kvality aniz by tim vsak utrpelo jeho vnejsi chovani. Je pekne strukturovana: tzn. zacina tim proc je refactoring uzitecny, jak ho praktikovat, co je k nemu potreba. Dulezite jsou ale dve casti knihy - seznam tzv. bad smells a seznam jednotlivych refactoringu, ktere tyto zapachy odstranuji. Vsechno je doplnene srozumitelnyma prikladama v Jave.
Jak jsem si tak procital jednotlive bad smelly, vybavovaly se mi casto i classy, na kterych bych jednotlive zapachy :-) dobre ilustroval :-)
Pokud zrovna nemate tuto knizku po ruce, doporucuju se podivat do helpu ke svym IDE. Idea, Eclipse i JBuilder refactoring uz dnes podporuji a velmi ho zjednodusily - vetsinou na pouhou klavesovou zkratku (kdyz vite co oznacit ;-)). Pro Ideu existuje pekny tutorial ktery ukazuje refactoring pomoci tohoto IDE.
Koho zajima refactoring vic, muze se mrknout na web ktery shromazduje veskere materialy na dane tema: www.refactoring.com. A kdo chce, muze se subscribnout na RSS feed ktery informuje o novinkach na webu.
Tabulka SmellsToRefactorings ukazuje seznam nejcastejsich bad smellu a zaroven prinasi rady jak se jich pomoci refactoringu zbavit.
No a nakonec abecedni seznam refactoringu s jejich popisy.
Štítky: programovani, software
2004/12/23
IT: WseWsdl2.exe troubles
I would like to point out few problems which I've experienced during my experiments with WseWsdl2.exe tool. I am using WseWsdl2.exe from Microsoft Web Services Enhancements 2.0 SP2. The WseWsdl2.exe is WSDL to SoapClient Tool. It should replace current .NET Wsdl.exe tool. What I find quite disappointing are the error messages produced by this tool. WSDLs we use in our project are compilable without any problems with Wsdl.exe but WseWsdl2.exe complains. What is worse, that the error messages are very unclear. Documentation didn't help us, neither the Google search. We had to take our WSDLs and remove element after element to find out what's wrong with them. Here are the findings, maybe it will help someone having similar troubles. This is the reason for this post.
First problems occur when the WSDL definition contains more than one message part in the (SOAP) message. But the error message says this:
An error occurred processing this WSDL. More information:
System.Exception: Invalid WSDL file from SoapService
at ClientGen.ClientGen.GetBindingType(...)
at ClientGen.ClientGen.WriteCSOperationBinding(...)
at ClientGen.ClientGen.WriteOperationBinding(...)
at ClientGen.ClientGen.WriteClass(...)
at ClientGen.ClientGen.GenerateCode(...)
at ClientGen.ClientGen.GenerateCode(...)
at ClientGen.Class1.Main(String[] arguments)
I know that WSDLs describing messages with more than one message part (referring element) in SOAP body should not be used. It is stated in the WS-I Basic Profile 1.1. We can change the WSDL to wrapped-literal, no problem. But the tool should not produce this general error!
The second problem I would like to point occurs when the WSDL contains unsupported extension element. We are using custom extesion elements within the soap:binding. The extension element present in our WSDL is not marked with wsdl:required="true". So it should be silently ignored if the consumer does not understand him or cannot process him (as stated in the WS-I Basic Profile 1.1, which also clarifies and tights up the rules from the WSDL specification). WseWsdl2.exe does not ignore them - but fails:
An error occurred processing this WSDL. More information:
System.InvalidCastException: Specified cast is not valid.
at ClientGen.ClientGen.WriteCSOperationBinding(...)
at ClientGen.ClientGen.WriteOperationBinding(...)
at ClientGen.ClientGen.WriteClass(...)
at ClientGen.ClientGen.GenerateCode(...)
at ClientGen.ClientGen.GenerateCode(...)
at ClientGen.Class1.Main(String[] arguments)
Again, the error message is very, very unclear! For me it seems that the level of WSDL specifications support is much lower than it was in previous version. Without any warning in the documentation. Or Am I missing something?
Štítky: programovani, software
2004/12/11
Google napovida
Google Suggest prinasi dalsi vylepseni ve vyhledavani na internetu. Vlastne to neni nic jineho nez autocomplete - automaticke doplnovani. V okamziku kdy zadavate do formulare vyhledavaci stranky Googlu svuj dotaz, on vam napovida. Muze vam to usetrit psani, ale taky vidite, jaka souslovi lide nejcasteji hledaji.
Fuknce autocomplete je vetsine uzivatelum PC dobre znama. Setkate se s ni napriklad kdyz zadavate adresu do browseru nebo treba kdyz pisete adresu prijemce v emailu. Vlastne logicky - pouziti i ve vyhledavani v internetu - udelal az Google. Vsadim se, ze se do roka se s touto featurou setkame taky v nejednom z ceskych vyhledavacu.
Co me na tom zarazi jsou dve veci: zpusob jakym byl tento napad prenesen do praxe a taky - ze to vazne pekne funguje.
Jak autor myslenky pise, cela vec ho napadla behem obeda. V Googlu maji udajne pravo venovat az 20% sveho pracovniho casu vlastnim projektum. To je jiste velmi lakave (zde bych jen podotknul, ze se nelze domnivat, ze by vam Google platil za vase soukrome projekty, ale jde o projekty ktere jsou ve vysledku ve vlastnictvi company). Takze za par mesicu svuj napad dovedl do konce.
To ze to funguje skutecne pekne si zkuste sami. Zadejte si jedno slovo a za chvilku se dozvite, v jakych souslovich se nejcasteji vyhledava. Kdyz vezmeme v uvahu kolik miliard stranek Google indexuje a za jakou chvilicku vam nabidne relevantni slova, tak je to vazne k neuvereni. Je jasne, ze napriklad domnivat se, ze po napsani slova Milan se dockam sveho prijmeni, je zatim zcestne :-) I kdyz nekteri znami jiz na Googlu maji slusny page rank, takze u nich to funguje.
Takze, vyzkousejte si sami!
Štítky: programovani, software







