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: , , , , , ,


2007/09/26

 

Chyba v Excelu 2007 - k neuvereni!


Věřili byste, že se ještě dnes, v x-té evoluci všudepřítomného softwaru, na kterém (s trochou nadsázky) stojí světová ekonomika, může objevit následující chyba?!
Bug in Excel 2007
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: , , ,


2006/11/29

 

SlickRun - buďte efektivnější


Tento příspěvek se týká pouze windowsářů. Chtěl bych tu popsat utilitku, kterou používám už pár měsíců a dovolím si o ní tvrdit, že opravdu zefektivňuje práci a šetří čas. Dále si dovolím tvrdit, že není až tak známá a rozšířená a rozhodně ji doporučuju.

Jmenuje se SlickRun, je free a sehnat jí lze na adrese www.bayden.com/SlickRun/.


SlickRun - neaktivní - vpravo dole

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.



SlickRun neaktivní (vpravo dole)

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í.


SlickRun aktivní, nyní můžete zadávat příkaz

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 - konfigurace



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 :-)

Štítky: ,


2006/11/21

 

JBuilder 2007 aneb veletoc Borlandu


Vrátím se ještě k nedávné podcast debatě na téma java vývojových prostředí. Zmiňovali jsme zde JBuilder - javovské IDE od firmy Borland - a pokus o jeho"zmrtvýchvstání" v podobě nové verze postavené na platformě Eclipse. Zdá se, že nový JBuilder se již klube na svět. Jako již tradičně u Borlandu jsou o něco dříve připravene webové stránky a tiskové zprávy před samotným produktem. Ačkoliv na titulní stránce je JBuilder 2007 masivně inzerován, sami si ho zatím vyzkoušet nemůžete (v sekci Downloads ho totiž zatím nenajdete).

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:

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: , ,


2006/02/03

 

quick oracle tip - how to move tablespaces


here it is a quick tip "how to move oracle tablespace datafile from one file to another". i've spent a while searching for this, so maybe someone will find this useful too. i needed to free up some space on my laptop disk drive by moving huge oracle data files (*.ora) to an external disk. (also thanks to dlabik for consultation).

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: ,


2005/11/27

 

Sněžka!


Víkend jsem strávil v Krkonoších. V sobotu jsem překonal lenost a vyrazil (pěšky) směr Sněžka. Cesta z Velké Úpy přes Růžohorka, Růžovou horu na Sněžku vyjde časově na necelé tři hodiny "svižné" chůze (sněhu je už celkem dost a pěšiny nebyly zrovna moc prochozené). Protože jsem vyrazil až po obědě, návrat byl až za tmy. Jinak doporučuju občerstvení na boudě Růžohorka.
Výstup na Sněžku v zimě má svoje kouzlo - viz následující fotky:

SnezkaPohled do udoli
SněžkaSnezka

Štítky: , ,


2005/05/10

 

IT: JBuilder open sourcem


Dneska jsem si přečetl, že se Borland ze zoufalosti rozhodl open-sourcovat JBuilder. Borland je ve ztrátě, redukoval stavy. Spoléhá se na komunitu, která by měla pomoci udržovat API a přidávat nové funkce. Tím by se měly snížit náklady na R&D. Příjmy by měly plynout z poskytování podpory podnikovým zákazníkům (ne z prodeje produktu samotného).

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: ,


2005/03/03

 

IT: Excel v Jave? POI!


Donedávna jsem považoval za jediný smysluplný formát dat XMLko. V současnosti zjišťuji, že se ve světě ještě nepodařilo vymítit formáty typu *.xls (Excel Worksheet) či *.csv (Comma Separated Variables) - stále jsou tu ;-)

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: ,


2005/03/02

 

IT: titulek okna v *.bat


Dneska bych se s vámi chtěl podělit o jednu maličkost, která mě dnes potěšila ;) Je to vážně úplná maličkost. Týká se psaní dávkových souborů (*.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: ,


2005/02/28

 

IT: Apache vs. Skype


V pátek jsem potreboval něco ukazovat na notebooku. Zákon schválnosti pravidelně zafunguje. Nebyl v síti. Přinesete ho na místo, pustíte a ten nejjednodušší článek systému zničehonic přestane fungovat. Nemohl jsem pustit WWW server Apache 2:


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: ,


 

IT: Oracle a jeho služby ve windows


Pokud používáte Oracle lokálně na svém PC tak jste si jistě všimli, že vám po jeho instalaci přibylo několik nových windows service. Jelikož je Oracle docela žrout paměti, vyplatí se u některých (všech) změnit způsob jejich spouštění (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: ,


2005/01/21

 

IT: Maly kviz pro znalce batch filu - reseni


Prinasim reseni kvizu, ktery jsem tu pred par dny publikoval.

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: ,


2005/01/19

 

IT: Maly kviz pro znalce batch filu


Mam pro vas maly kviz. Jak napsat ve Windows batch filu (*.bat) smycku, ktera v kazde iteraci ceka rekneme 5 vterin. Jde mi o to cekani, nejde mi o tu smycku ;-)

Štítky: ,


2005/01/02

 

IT: Refactoring


Pres vanoce jsem cast volneho casu venoval cteni a prave docitam dobrou knizku Refactoring: Improving the Design of Existing Code od Martina Fowlera (Fowler je mimo jine autorem UML Distilled, super knizky o UML, ktera se mi dostala do ruky pred par lety).

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: ,


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: ,


2004/12/11

 

Google napovida


Nechtel bych na svem blogu sklouznout k tomu, abych tady svymi prispevky automaticky vynasel do nebe velky a neskodny Google pokazde, kdyz prijde s necim novym. Osobne si myslim, ze se v budoucnu muzeme dockat situace, kdy budou mit lidi na Google spadeno podobne jako dneska na Microsoft. Nicmene, prejdeme k veci :-)

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: ,