Dadajax’s weblog

blog o technice, počítačích, programování a fotografování
28. 6. 2009 , 22:40

Jak zviditelnit vaše fotky na Flickru

Kategorie: Fotografování // 3 komentářů » 78 shlédnutí

Flickr je úžasná služba pro sdílení fotografií. Je to skvělá možnost, jak ukázat světu vaše geniální výtvory. Flickr navštěvuje denně statisíce lidí, takže se může zdát, že vaše díla uvidí hodně lidí. Proto tam pošlete vaše ohromné fotky s velkým očekáváním. Bohužel v lepším případě přibude pod fotkou jeden komentář, v tom horším si ji prohlídne několik jednotlivců, nebo nikdo. „Jak to že o fotku nikdo nemá zájem, vždyť je přece super“ říkáte si.

Důvod je jednoduchý. Na Flickr je každou minutu nahráno tisíce fotek (v době psaní článku to bylo něco přes 6000 nahraných fotek za poslední minutu). Nemůžete tedy čekat, že se z vašich fotek někdo zblázní. Pokud chcete fotkami zaujmout co nejvíce lidí, doporučuju přečíst si tento článek. Uveřejním zde několik rad, jak zvýšit vaši popularitu na Flickru :)

Proč

Přemýšlel jsem, jestli tohle napíšu na začátek článku nebo na konec. Lepší bude, abyste věděli dopředu proč to všechno podstupovat :) Když necháte vytisknout nějaké vaší fotky a umístíte je do nějaké galerie (reálné, ne virtuální), tak určitě budete chtít, aby vaše fotky vidělo co nejvíce lidí. To samé platí i na Flickru. Je to skvělá odměna když vidíte, že si vaši fotku shlédlo tolik lidí a někteří jí třeba i pochválí.

Čeho chceme dosáhnout?

Vaším cílem by mělo být to, aby byly vaše fotky dobře hodnocené Flickrem. Flickr pomocí nějakých svých algoritmů počítá u každé fotky její zajímavost, neboli „interestingness“. Z toho co jsem vypozoroval, záleží na třech hlavních věcech: počet zhlédnutí, počet komentářů a počet lidí, kteří označili fotku jako oblíbenou. Neznám přesně poměr důležitosti mezi těmito třemi čísly, ale vypadá to, že nejvíce zajímavost ovlivňuje počet lidí, kteří označili fotku jako oblíbenou. Na druhém místě je pravděpodobně počet komentářů a nakonec počet zhlédnutí. Vzhledem k tomu, že neznám přesný postup pro oceňování fotek, je možné, že se do tohoto započítávají i jiné okolnosti (třeba počet webů, které na fotku odkazují?). Naším cílem je tedy zvýšit hodnotu všech tří údajů.

Celý článek..

26. 6. 2009 , 14:42

Proč sakra používat Facebook?

Kategorie: Internet // 6 komentářů » 112 shlédnutí

V téměř každé diskuzi pod články o Facebooku se strhne lavina flamewaru mezi uživateli této sociální sítě a těmi, kteří považují Facebook jako ztrátu času a nechápou jeho využití. Určitě jste na podobné diskuse narazili vícekrát, takže víte, o čem mluvím. Rád bych se v tomto článku vyjádřil k tomu, co mě nutí sedět několik minut až hodin denně na Facebooku.

Začalo to docela nevinně, když jsem se začal zajímat, k čemu ten Facebook vlastně je. Vůbec jsem nechápal, jak tam může někdo trávit tolik času. V té době jsem byl spíše odpůrcem Facebooku, i když jsem to neodsuzoval a ani jsem na to nenadával v diskuzích :) Potom jsem si ale řekl, že to prostě otestuju, vyzkouším a uvidím. Tak jsem se teda zaregistroval a… byl jsem na tom stejně jako před registrací.  Pořád jsem nechápal ten důvod, proč bych tam měl trávit tolik času. Navíc jsem se v tom neorientoval a přál jsem si, aby to bylo přehledné jako Twitter, který jsem v té době používal.

Z počátku, kdy jsem měl v kontaktech jen něco kolem tří přátel, nebylo využití Facebooku tak zřejmé a spíše to vypadalo jako blbost. Potom došlo ale ke změně a já začal mít čím dál tím více přátel (myšleno jako kontaktů). S rostoucím počtem přátel se ale něco začalo měnit. Uvědomil jsem si, že už mi odpadla „nutnost“ v určitých časových intervalech kontaktovat své známé. Určitě to znáte taky. Takové ty zprávy na IM (ať už je to ICQ, Jabber, nebo cokoliv jiného) ve stylu „Čau, jak se máš? Co nového?“.  Tak přesně tohle díky Facebooku odpadá. Když máte své přátele na Facebooku, máte neustále přehled o tom, co kdo dělá. Když už dojde k nějaké události (dokončení školy, stěhování, nákup něčeho nového) víte o tom v podstatě hned a taky můžete hned reagovat. To je obrovská výhoda, která se mi velmi líbí.

Samozřejmě vás nikdo nenutí tohle všechno číst, nebo komentovat. Ale máte tu možnost. Taky když vy máte nějakou novinku, nemusíte to jak „idiot“ psát X lidem zvlášť. Prostě to stačí napsat na Facebook a koho to zaujme, ten si to přečte a popřípadě to okomentuje. Mnohdy dostanete cenou radu od někoho, od koho byste to třeba těžko čekali. A to mi přijde užitečné.

Nevýhody?

Bohužel nic není dokonalé a týká se to i Facebooku, tedy spíše jeho uživatelů. Každý má totiž jiné požadavky a představy o tom, jak Facebook používat. Někteří lidé to mají jen jako nástroj k zahnání nudy a dělají si různé kvízy, používají různě pitomé aplikace (jako třeba lízání lízátek?!) a podobně. Díky tomu faktu spousta lidí Facebook odsuzuje jako nepoužitelnou hračku pro děti. To ale není takový problém. Každého člověka můžete totiž „ignorovat“ a jeho zprávy se vám nebudou objevovat na úvodní obrazovce. Stačí takto zneviditelnit ty největší „spammery“ a máte pokoj. Sám jsem to tak udělal (až na výjimky, několika VIP přátelům nějaký ten kvíz nebo blbost odpustím, jsem tak šlechetný :) ).

Různé aplikace sice jdou na úvodní stránce blokovat, ale když se objeví nějaká další aplikace, je třeba ji blokovat znovu. Proto je jednodušší blokovat celé problematické uživatele a je klid :) Když tedy odfiltrujete tyto nežádoucí věci, zbudou vám jen ty užitečné aktualizace stavů vašich přátel. A teprve tehdy poznáte sílu Facebooku.

Další nevýhoda je ta, že Facebook je požírač času. Když se sejde více lidí online, může se stát, že se rozpoutá vášnivá diskuze :) To pak člověk nedělá nic jiného, než reaguje na odpovědi druhých. Z pohledu času je to nevýhoda, ale pokud zanedbáme čas, tak vznikne docela hezká platforma na vedení (krátkodobých) diskuzí.

Závěr?

Můj závěr je ten, že mi Facebook přináší více užitku než nevýhod, takže tam stále budu trávit svůj čas. Jen si musím dát pozor, abych na FB netrávil toho času až příliš mnoho. Od dob co FB používám, mám přehled o aktivitách svých známých a to s minimem úsilí (kontaktovat někoho kvůli pokecu mě unavovalo).

Samozřejmě si nesmíte plést pojmy. Facebook rozhodně neslouží jako náhrada reálného života, je to jen nástroj, jak ulehčit komunikaci s vašimi přáteli. A to dělá opravdu dobře. Pokud si chcete s někým doopravdy popovídat, tak je samozřejmě nejlepší si s ním někam zajít a pokecat na živo :) Žádný Facebook, mail, IM ani telefon nemůže nahradit posezení s přáteli v příjemné hospůdce (kavárně, čajovně…doplňte si sami).

Pokud jste dočetli až sem a máte chuť psát komentář pod článkem ve smyslu, že nechápete k čemu Facebook je, prosím jděte to napsat jinde. Tento článek je pouze o tom, proč Facebook používám já. Chápu že každý má jiné potřeby, což ale neznamená, že je to špatně. Je to prostě nástroj jako každý jiný a je na každém z nás jestli a jak ho využije.

9. 6. 2009 , 13:25

Dotahujete úkoly do konce?

Kategorie: Různé // 11 komentářů » 404 shlédnutí

Je zvláštní, jak se někdy s vášní a odhodláním pustíme do plnění nějakého úkolu, ale čím blíže ukončení úkolu jsme, tím méně se nám chce pokračovat. Určitě jste to zažili taky. Úkol, nebo projekt je téměř u konce, zbývá udělat jen několik maličkostí, ale vám se prostě nechce. Někdy pod tíhou zbývajících problému s tím spojených, nebo prostě jen ztrátou motivace. Začnete tedy pracovat na něčem jiném, ale pořád máte takový nepříjemný pocit z toho, že máte ještě něco rozdělané. A právě to je ten problém. Nedokončený úkol vám bere energii, kterou byste mohli využít mnohem lépe.

Já o tom svém nedokončování úkolů vím dlouho, ale nikdy mě nenapadlo, kolik energie takový nedokončený úkol stojí. Uvědomil jsem si to teprve nedávno a začal jsem tedy řešit způsob, jakým bych se tomu mohl vyhnout i v momentech, kdy je počáteční motivace už dávno pryč. Nakonec se mi podařilo najít řešení, které mi vyhovuje a hlavně funguje :)

Celý článek..

4. 6. 2009 , 17:46

Jak správně reagovat na výjimky v Javě

Kategorie: Programování // 1 komentář » 144 shlédnutí

Už delší dobu mám v plánu napsat podobný článek. Často totiž narážím na případy, kdy především začátečníci s výjimkami nakládají velmi špatně. O co jde? Uvedu první příklad:

try {
    Thread.sleep(100);
} catch (InterruptedException e) {
 
}

V uvedeném příkladu se v bloku try se zavolá příkaz na uspání vlákna na dobu 100ms. To může vyhodit InterruptedException. Na tuto výjimku máme možnost zareagovat v bloku catch, ale jak vidíte, tento blok je prázdný. V čem je tedy problém? Pokud na výjimku nijak nezareagujeme, koledujeme si o pořádné problémy. Pokud dojde k problému, nebudeme o tom vůbec vědět a aplikace se bude chovat divně. Taková chyba se hledá opravdu špatně a není vůbec lehké ji proto najít. Mnohdy taková chyba spustí řetězovou reakci spoustu dalších chyb.
Další příklad, který nyní uvedu, je oproti tomu předchozímu lepší, nicméně stále nedostačující:

try {
    Thread.sleep(100);
} catch (InterruptedException e) {
    System.out.println(„Nepodařilo se uspat vlákno“);
}

V tomto případě v momentě vyvolání výjimky sice dostaneme informaci o tom, že se něco nepodařilo, ale neřekne nám to téměř nic podstatného. Neznáme totiž žádné detaily této výjimky.

Správné řešení

Pokud nechcete strávit spoustu bezesných nocí nad laděním nefunkční aplikace, silně doporučuju použít tento způsob:

try {
    Thread.sleep(100);
} catch (InterruptedException e) {
    e.printStackTrace();
    // další metody pro ošetření výjimky
}

V tomto případě se v momentě vyvolání výjimky vypíše na standardní výstup stack trace (zásobník volání metod). Tam můžete jednoduše zjistit místo, kde k chybě došlo a často se zde objeví i popis problému. Samozřejmě že to není jediná možnost, dále můžete použít například různé logovací knihovny (například Log4J), které mají své funkce na výpis a logování těchto informací.

Nebuďte tedy líní a vždy v bloku catch nechte vypsat stack trace. I v případech, kdy si myslíte, že k výjimce dojít nikdy nemůže (což je stejně naivní jako třeba spoléhat se na to, že když si namíříte mezi oči nabitou a odjištěnou zbraň a zmáčknete spoušť, zbraň se pokazí a nevystřelí). Ušetříte tak sobě i svému okolí spoustu hodin, které byste jinak promarnili řešením podivného chování aplikace :)

A až budete řešit problém, se kterým si nebudete vědět rady, jednoduše zkopírujete výpis ze stack tracu do nějakého fóra a vaše šance na vyřešení problému se mnohonásobně zvýší. Není totiž nic horšího, než když programátor popíše problém slovy „nejde to“, nebo „píše to nějakou chybu“. Ale to už je na další článek ;)

20. 4. 2009 , 10:28

Focení noční oblohy

Kategorie: Fotografování // 22 komentářů » 598 shlédnutí

Pohled na noční oblohu plnou hvězd mě vždy přitahoval. Vzhledem k tomu, že rád fotím, jsem si vždy přál umět zachytit tuto krásu do fotografie. Mé první pokusy byly s kompaktem a později s ultrazoomem. Focení hvězd s těmito kompakty bylo docela jednoduché. Oba nabízeli scénický režim noční obloha, takže stačilo jen položit foťák na stativ a zmáčknout spoušť. Bohužel tyto kompakty trpěli velkou hladinou šumu. Pro použitelné snímky bylo třeba použít jen tu nejmenší citlivost. Proto na fotce byly vidět jen ty nejjasnější hvězdy. Přiložený obrázek je z Panasonicu FX3 – čas 30s clona 2.8 a ISO 100:

Celý článek..

10. 4. 2009 , 11:16

Máte co nabídnout?

Kategorie: Ze života // 7 komentářů » 339 shlédnutí

Po měsíci bez práce se už začínám o práci zajímat. Krom toho, že jsem pro to podnikl určité kroky (samostudium, kontaktování zaměstnavatele) jsem taky hodně přemýšlel. Je tomu něco přes rok, co jsem byl na posledním pohovoru, proto si toho ještě hodně pamatuju. Za ten rok jsem se v životě posunul o pořádný kus dále snad ve všech směrech a tedy začínám srovnávat. Když jsem šel minule na pohovor a položil jsem si otázku “mám vůbec co nabídnout?” neuměl jsem na ni odpovědět. Nebyl jsem si jistý, jestli práci budu zvládat, jestli to na mě nebude moc těžké, jestli vůbec dokážu firmě něčím prospět. Prostě jsem si nevěřil. Když se na to dívám zpětně, divím se, že jsem práci dostal :)

Než jsem poslal životopis do firmy, která hledá nové zaměstnance, položil jsem si tuto otázku znovu. Tentokrát odpověď byla zcela jiná. Nyní si totiž jsem zcela jistý, že mám co nabídnout a že můžu být firmě prospěšný. Je třeba zahodit všechny předsudky o sebechvále a aroganci, protože o tom to vůbec není. Člověk by si měl být jistý sám sebou. Když si nevěříte vy sami, kdo jiný vám má věřit? Má snad někdo jiný předpokládat že budete dobří, když si o tom nejste jistí ani vy sami?

Největším nepřítelem člověka je v tomto případě nízké sebevědomí a takový ten hlásek v hlavě, který neustále našeptává věci typu “To nezvládneš!”, “Na to nemáš!”, “Na to jsi moc hloupý!”… pokračovat bych mohl téměř donekonečna. Určitě vám někdy na mysl podobné věty lezou. Je třeba se těchto mylných představ zbavit. Snažte se tyto myšlenky přebít rozumem. Když si budete říkat “To nezvládnu!”, vemte si papír a tužku a napište si důvody, proč byste danou věc nezvládli. Udělejte si přehledný seznam a u každého bodu si potom rozepiště, co s tím můžete dělat. Uvedu příklad. Na seznamu budete mít položku “Neumím dobře anglicky”, díky které si myslíte, že nějakou věc nezvládnete. Brání vám snad něco v tom, abyste se přihlásili na nějaký rychlokurz angličtiny? Naprostá většina položek, které uvedete lze vyřešit.

Z mých zkušeností vím, že takový seznam bývá většinou prázdný. Lidi si totiž hážou sami klacky před nohy a snaží se nějak obhájit pro případ, že by to nakonec nevyšlo. Když je pak odmítnou, hned si řeknou “Já jsem to říkal, vždyť na to nemám!” a jen se v tom utvrzujou. Je to totiž nejjednodušší řešení a oni si pak můžou postěžovat ostatním. Zkuste poslouchat co lidi kolem vás říkají. Většinou uslyšíte samé negativní věty, kterými lidi dávají najevo, že sami sobě vůbec nevěří. Je to pořád samé “Němůžu, nedokážu, je to na mě složité, to nemůžu nikdy zvládnout, na to jsem už starý, ještě jsem na to moc mladý, ono by to nevyšlo…”. Opět můžu pokračovat dál a dál, ale myslím si, že už je to jasné.

Osobně věřím, že není nic, co by člověk nezvládl (samozřejmě že existují limity dané například fyzikálními zákony, takže jedoucí vlak rukou nezastavíte…). Jen je třeba tomu opravdu věřit a podnikonout pro to nějaké kroky. Nestrácejte energii stěžováním si. Využijte tuto energii k tomu, abyste dosáhli svého. Dopracujte se do stavu, kdy si budete jistí sami sebou a ten záludný hlásek v hlavě dokážete snadno umlčet.

Pokud tedy hledáte práci, zkuste si tuto otázku položit. Zkuste se vžít do role zaměstnavatele a zamyslet se nad tím, jestli byste přijali někoho, kdo si není jistý tím, že má co nabídnout, nebo neví, jestli to zvládne.

6. 4. 2009 , 21:37

Problémy s klíčovými slovy ve fotografiích

Kategorie: Fotografování, Software // 5 komentářů » 357 shlédnutí

Takto se chyba projevovala

Takto se chyba projevovala

Své fotografie se snažím mít označkované. Znamená to, že ke každé fotce vkládám pomocí IPTC klíčová slova (a občas další údaje). Je to ten nejlepší způsob na označování fotek, protože většina aplikací dokáže s těmito daty pracovat. Díky tomu tedy nemusím tyto informace zadávat v každém programu zvlášť, protože vše je uloženo ve fotce. Je tomu asi rok, kdy jsem se značkováním fotek začal. Už si ani nepamatuji, které programy jsem ke značkování (neboli tagování) použil. Vše se zdálo být v pořádku a já jsem byl spokojený. Dneska jsem ale zažil menší šok. Při hromadném nahrávání fotek na Flickr jsem totiž zjistil, že se některé klíčové slova (obsahující diakritiku) podivně duplikují. Například fotka, která měla mít správně klíčové slovo “ze života” měla nakonec klíčová slova “ze života” a “ze života”. Při prohledání těchto vadných fotek přímo v počítači jsem zjistil, že problém je už v těch fotkách.

Vzhledem k tomu, že jsem vystřídal mnoho programů na značkování fotek, nemůžu přesně říct, který program způsobil tento problém. Pokud se mi to podaří zjistit, určitě to tu ještě zveřejním.

Problém je tedy jasný, proto jsem se snažil najít nejméně bolestivé řešení. Opravdu bych něchtěl upravovat tagy jednotlivě u cca 8000 fotek. Když jsem nadhodil problém na Facebooku, Carnero mi bleskurychle poradil Picasu. To byl dobrý nápad, protože Picasa dokáže s klíčovými slovy pracovat docela dobře z toho co si pamatuju. Nicméně už při stahování Picasy jsem pocítil odpor z instalace nové aplikace a hledání řešení v novém prostředí. Ze zvědavosti jsem tedy otevřel Windows Fotogalerii, která je součástí Windows Vista. Tato jednoduchá aplikace dokáže překvapivě pracovat s IPTC daty velmi dobře. Řešení jsem našel téměř okamžitě, proto bych se rád s řešením podělil.

Jak odstranit dané klíčové slovo z mnoha fotografií

Nejříve si musíte do Fotogalerie přidat složku, ve které se nachází Vaše fotografie. To uděláte pomocí Soubor -> Přidat složku do galerie. Pokud máte hodně fotek, může jejich načítání trvat trochu déle. Postupně se Vám budou načítat klíčová slova ze všech fotek. Tato slova se zobrazí v levém sloupci pod názvem Značky. Počkejte tedy až Fotogalerie projde všechny fotky v přidaném adresáři.

Poté klikněte na popisek Značky, čímž označíte všechny označkované fotky. Díky tomu se Vám v pravém sloupci objeví všechny klíčové slova ve vybraných fotografiích. Tato jsou navíc rozdělená do kategorií Přiřazeno všem a Přiřazeno některým. Poté stačí jen najít v tomto seznamu špatné klíčové slovo (nebo jen to, které chcete odstranit), kliknout na něj pravým tlačítkem a vybrat možnost Odebrat značku. Odebírání značky i pro více souborů je hodně rychlé a během několika sekund budete zbaveni onoho nechtěného klíčového slova.

Postup pro odstranění klíčového slova z fotek

Postup pro odstranění klíčového slova z fotek

Jednoduché a účiné :)

Doplnění: Po publikování tohoto článku jsem zjistil, že u některých fotek jsou stále i ty špatné tagy, které jsem vymazával. Když jsem situaci zkoumal, nakonec se ukázalo že se tagy časem opravdu vymazaly. Možná si systém drží některé informace o fotkách v nějaké mezipaměti pro rychlejší načítání a tudíž se změna neprojevila u některých fotek okamžitě. Nicméně podle toho co jsem vypozoroval se zdá, že se změna projevila opravdu na všech fotkách, na kterých jsem chtěl.

Díky jednoduché hromadné editaci tagů jsem se navíc rozhodl, že se zbavím všech klíčových slov s diakritikou. Nechci žít neustále v obavě, že nějaká aplikace to prostě nezvládne a tagy uloží špatně.

2. 3. 2009 , 18:53

Jak dobře pořídit na úřadech

Kategorie: Ze života // 14 komentářů » 557 shlédnutí

V poslední době dost často slýchávám o problémech, které mají lidé při vyřizování na úřadech. Vlastně to není jen v poslední době, slýchávám to už odmalička a navíc ze všech stran. Nikdy jsem se nad tím moc nepozastavoval, teprve dneska jsem nad tím začal více přemýšlet. Spousta lidí chodí na úřady s tím, že tam na ně čeká nějaká hloupá, nepříjemná, neochotná úřednice, která jim chce jen škodit. A když už dojdou na ten úřad, tak se jim to samozřejmě potvrdí a tito lidé se s úřednicemi přinejmenším pohádají a odejdou naštvaní. Poznáváte se? Připomíná Vám to některou z Vašich zkušeností?

Pokud ano, s radostí Vám oznamuji, že nic z toho není zapotřebí. Návštěva úřadů nemusí být vůbec nepříjemnou zkušeností. V čem tedy bývá problém? Jak už jsem naznačil, spousta lidí očekává nepříjemnou, neochotnou úřednici. Už díky tomu se můžou ujistit, že taková ta úřednice vážně bude. Člověk, který očekává rozhovor s někým takovým totiž není naladěn na nějaký pozitivní, příjemný rozhovor. Už tím, že očekává někoho nepřátelského se podvědomě naladí také do této nepřátelské nálady.

Další nebezpečná věc je ta, že lidé jdou na úřady s tím, že úřednici jsou placení z jejich daní a proto by jim úřednici měli snad i nohy líbat. Toto přesvědčení má bohužel hodně lidí. Takoví lidé potom jdou na úřad a úředníky o nic nežádají, místo toho jim přikazují. To je obrovský rozdíl, který dokáže změnit úspěšný rozhovor na velmi neúspěšný (navíc často končící hádkou).

Jaká je tedy realita? Spousta úřednic opravdu vypadá nepříjemně a neochotně. Zkuste se ale na to podívat z jiného pohledu. Taková osoba sedí den za dnem někde u přepážky a denně musí obsloužit desítky nepříjemných, arogantních lidí. Z vlastní zkušenosti vím, jak dokáže rozhovor z idiotem zkazit náladu. Teď si představte, že takových idiotů musíte obsloužit několik denně. Asi byste pak nevypadali jako veselá, ochotná osoba, že?

Klíč k úspěchu je velmi jednoduchý. Při návštěvě úřadu se zkuste vžít do role úřednice, se kterou máte mluvit. Uvidíte, že Vám to při rozhovoru pomůže.

Nakonec dodám několik užitečných rad:

  • Při příchodu slušně a s úsměvem pozdravte. To je ten nejlepší začátek, který si můžete vybrat. Příjemným a přátelským pozdravem můžete změnit jejich náladu z nepřátelské na přátelskou.
  • Nikdy úředníkům nepřikazujte! Vždy zdvořile žádejte.
  • Uvědomte si, že jste to Vy, kdo něco chce. Chovejte se podle toho.
  • Nehádejte se. Ať už se umíte hádat sebelíp, docílíte toho asi tolik, jako když budete čůrat proti větru ;)
  • Nešetřete slovy chvály, pokud Vám vyhoví. Ukažte si, že si toho ceníte a nezapomeňte poděkovat.
  • Buďte příjemní.
  • Při odchodu popřejte hezký den. Nic Vás to nestojí a uděláte tím radost.

Člověk by řekl, že to jsou samozřejmosti. Bohužel z toho co slýchávám je realita někde jinde. Pokud chcete docílit svého při návštěvě úřadu, doporučuji Vám držet se mých rad. Jakékoliv nepřátelské vystupování jen snižuje šanci na úspěch. Já se těchto rad držím víceméně od malička a vždy se mnou jednají příjemně. Nevzpomínám si, že by na mě byl někdo nepříjemný nebo se mi nesnažil vyhovět. Když zapátrám v paměti k tomu, co mě donutilo se takhle chovat, tak to bylo nejspíš díky mému antitalentu na vyplňování jakýchkoliv formulářů. Často jsem dělal chyby a často jsem se musel ptát na radu. To mě naučilo pokoře a také zásadám, které jsem popsal výše. Tyto rady se navíc dají aplikovat téměř všude – ať už na poště, v obchodě, v bance…prostě kdekoliv.

Budu rád, když se se mnou podělíte v komentářích pod tímto článkem nad Vašemi zkušenosti s úřady.

26. 2. 2009 , 12:55

Java interface tajemství zbavený

Kategorie: Programování // 4 komentářů » 880 shlédnutí

Je to asi rok, kdy jsem se začal učit objektově orientovanému programování. Tehdy jsem byl v zaměstnání donucen naučit se OOP principům a to hlavně v Javě. Vzpomínám si, jaké problémy mi dělalo, než jsem pochopil význam a použití rozhraní (interface) v Javě. Tento článek je tedy zamýšlen jako taková pomůcka, která by měla objasnit používání rozhraní a to hlavně začátečníkům. Pro pochopení tohoto článku byste měli zvládat minimálně základy v Javě. Nenechte se zmást, v článku budu používat slova rozhraní i interface, které zde mají stejný význam.

Celý článek..

15. 2. 2009 , 12:09

Není důležité vědět, důležité je umět hledat

Kategorie: Internet, Různé // 14 komentářů » 2,259 shlédnutí

V dnešní době jsme každým dnem zavaleni velkým množstvím různých informací. Jsou všude – v televizi, v rádiu, na internetu. Informace získáváme v práci, ve škole, doma a nebo když jsme někde venku s přáteli. Problém je, že informací je na lidský mozek prostě hodně a není možné si je všechny zapamatovat (samozřejmě se najdou i výjimky, ale o nich mluvit nebudu). Musíme si tedy vybírat, které informace jsou pro nás důležité a které naopak ne.

Velký problém vidím už ve způsobu výuky na školách. Vzpomínáte si ještě na hodiny dějepisu, nebo literatury, kde jste se museli nazpaměť učit data významných událostí? Jestli ano, zamysleli jste se někdy nad tím, jak vám to v životě pomohlo? Myslím si, že většina z vás jistě odpoví že nijak. Samozřejmě je důležité znát dějiny, ale k čemu nám jsou přesná data?  Nebo k čemu nás nutili učit se stovky literárních děl a jejich autorů? To jsou věci v dnešní době zcela zbytečné.

Proč bychom si dneska měli zatěžovat hlavu věcmi, které v reálném životě nevyužijeme? V dnešní době se informační technologie vyvinuly takovým způsobem, že jsou dostupné většině lidí (opět jsou zde výjimky o kterých teď ale nemluvím). Dneska má většina lidí přístup k počítači s internetem – ať už doma, v knihovně,  nebo internetové kavárně. Díky množství informací, které jsou na internetu k nalezení je téměř zbytečné si pamatovat údaje, které zrovna nepotřebujeme. Je mnohem lepší umět informace hledat, než se je snažit zapamatovat.

Díky internetu se stírají rozdíly mezi lidmi s výbornou pamětí a s těmi, kteří mají paměť naopak špatnou. Dneska vyhraje ten, kdo dokáže informaci najít co v nejkratším čase. Vrátím se opět k tomu, co do nás tlačili už ve škole. Pamatujete si datum narození a úmrtí Karla IV. ? Jestli ano, je to jen dobře. Já si to nepamatuju, ale kdybych to někdy z nějakého důvodu potřeboval vědět, dokážu tuto informaci získat nejpozději do pěti sekund. Ano, za několik sekund jsem schopný zjistit něco, co jste se museli učit několik hodin, nebo dní. Pokud na vás tento příklad ještě nezapůsobil, tak trošku přitvrdím. Během několika sekund až několika minut dokážu získat téměř jakoukoliv informaci! Jsem snad něčím výjimečný? Ani zdaleka, jen když něco nevím, tak okamžitě píšu dotaz do Googlu. Samozřejmě to nefunguje vždy, některé informace se hledají obtížněji a některé informace je téměř nemožné získat.

Co je důležité při hledání?

Na první pohled to může vypadat, jakože je hledaní pomocí internetových vyhledávačů bezproblémové a nic na tom není. Bohužel to není pravda. K rychlému nalezení požadovaných informací totiž taky potřebujete něco znát. Tou potřebnou znalostí je obecný přehled. Pokud chcete najít nějakou konkrétní informaci, musíte vědět, čeho se to týká. Čím přesněji svůj dotaz do vyhledávače napíšete, tím se zvýší vaše šance na rychlé nalezení hledané informace.

Proto je dobré se při učení zaměřovat na celkový obraz s tím, že detaily potom lehce najdeme na internetu. Získáme tak možnost používat relevantnější klíčová slova, což povede ke kvalitnějším výsledkům, které vyhledávač vrátí.

Zde na blogu jsem se již několikrát (zde a zde) vyjádřil nad potřebou zvládnutí anglického jazyka. Musím se o tom zmínit i zde, protože se znalostí anglického jazyka se vám otevře ještě mnohem více šancí, jak najít požadovanou informaci. Anglicky psaných webů je mnohonásobně více, než těch, které jsou psané česky. To znamená, že se opět vaše šance na rychlé nalezení informace ještě zvětší. Nicméně i na českých webech se dá najít ohromné množství informací, takže i bez té angličtiny můžete snadno hledat potřebné informace.

Co když hledání selže?

Ano, může se stát, že hledanou informaci prostě nemůžete najít. Buď neznáte přesně frázi, kterou byste měli hledat, nebo ji znáte a prohlížeč nic takového nezná. Teprve teď nastává čas na alternativy. Když hledání selže, je správný čas obrátit se na přátelé, kolegy, nebo položit dotaz do nějakého specializovaného diskuzního fóra. Ušetříte si tím spoustu času a nervů nejen sobě, ale i ostatním.

Proč se tedy něco učit?

Pokud jste se dočetli až sem, možná jste získali pocit, že učení je zbytečné. Vždyť si všechno můžeme zjistit z internetu, tak proč si tím plnit hlavu? Důvodů je hned několik. Pokud se něco učíme, rozvíjíme svou paměť. Čím více věcí si pamatujeme, tím lépe si pak dokážeme pamatovat věci další. Mnohem lepší ale je, když si do paměti ukládáte jen informace, které vás zajímají. Zmínil jsem třeba ten dějepis, nebo literaturu. Někoho třeba tyto témata zajímají a rád se učí historické podrobnosti (včetně různých dat), nebo se třeba zajímá o životy autorů slavných literárních děl. Potom je samozřejmě v pořádku, že se tyto věci učí.

Měli bychom si tedy do paměti ukládat jen informace, které jsou pro nás zajímavé, nebo víme, že je můžeme někdy potřebovat. Takové informace si budeme pamatovat mnohem lépe, než nějaké jiné – nám nicneříkající údaje.

Pokud vám vyhledávání informací na internetu dělá problémy, zkuste se zamyslet nad tím, proč tomu tak je. Možná zjistíte, že vám chybí onen obecný přehled, takže ani pořádně nevíte, co máte hledat. Pokud je to opravdu ten problém, tak není težké s tím něco udělat ;)

9. 2. 2009 , 23:08

Poděkování

Kategorie: Různé // 3 komentářů » 446 shlédnutí

Dnes byly zveřejněny výsledky 4. kola soutěže Blog roku na eMagu a musím říct, že jsem moc potěšen. Můj blog dostal celkem 18 hlasů a já Vám tímto moc děkuji za každý hlas, který jste mi poslali. Opravdu jsem tak velký počet hlasů nečekal.

Samozřejmě nesmím zapomenout pogratulovat ostatním blogerům, kteří se tohoto kola zůčastnili. Myslím, že se v tomto kole setkaly kvalitní blogy a bylo mi ctí být v tomto kole mezi Váma ;)

6. 2. 2009 , 21:06

Jak vytvořit jar soubor

Kategorie: Programování // přidat komentář » 1,307 shlédnutí

Než začnu popisovat postup na vytvoření jar souboru, rád bych trošku objasnil detaily tohoto typu souboru. Jar soubor je jen obyčejný ZIP archív (jar znamená Java Archive), který slouží ke snadnější distribuci Java class souborů. Dále může obsahovat soubor s metadaty, které určujou některé parametry balíku. No a vzhledem k tomu, že se jedná o klasický archív, může obsahovat i cokoliv jiného – např. grafiku, audio a podobně.

Pokud je v manifestu uveden Main-Class parametr, je jar soubor spustitelný. Buď klasickým poklepáním na soubor (pokud je dobře nastavena asociace v systému), nebo pomocí příkazu java -jar soubor.jar, kde soubor.jar je název souboru.

Metadata jsou v archívu uloženy v souboru META-INF/MANIFEST.MF. Jedná se o klasický textový soubor, který můžete editovat i ručně. Kompletní výčet informací, které můžete do manifestu uložit najdete přímo ve specifikaci. Pro začátek bude stačit, když budete znát význam těchto atributů:

  • Main-Class : Pokud chcete, aby byl jar soubor spustitelný, musíte do souboru MANIFEST.MF zapsat tento atribut, za kterým následuje cesta ke class souboru uvnitř balíku.
  • Class-Path : Tento atribut je velmi důležitý. Pokud totiž vaše aplikace používá nějaké další knihovny, musíte uvést do Class-Path atributu cestu k těmto knihovnám. Cesty jsou oddělené mezerami.

Myslím si, že další atributy nejsou pro začátek tolik důležité a jejich význam už si můžete snadno dohledat ve specifikaci. Když už víte, jak jar soubory přibližně fungují, určitě vás napadne způsob jak jar soubor vytvořit. Můžete jednoduše zabalit adresář s class soubory a do archívu vložit manifest soubor. Jenže kdo by se s tím měl takhle trápit. Existují mnohem jednodušší způsoby.

Díky Antu to jde snadno

ant_logo_largeAnt je pro Java vývojáře velmi užitečný nástroj. Díky němu můžete urychlit a zautomatizovat některé jinak zdlouhavé operace. Pro jednoduchost uvedu tento případ: máme Java projekt, který obsahuje několik souborů. Hlavní třída, kterou chceme aplikaci spouštět se bude jmenovat Hlavni. Musím připomenout, že aby tato třída byla spustitelná, musí mít metodu public static void main(final String[] args).Vytvoříme si tedy soubor build.xml, do kterého budeme přidávat úlohy pro ant.

Začneme s definováním některých atributů, ve kterých definujeme cesty k adresářům a název výsledného jar souboru.

<property name="srcdir" location="./src" />
<property name="bindir" location="./bin" />
<property name="deploydir" location="./deploy" />
<property name="jarname" value="Aplikace.jar" />
<property name="mainclass" value="Hlavni" />

Vytvoříme první target, který nám zkompiluje všechny .java soubory z adresáře ./src a výsledné .class soubory uloží do adresáře ./bin. Samozřejmě, že adresářová struktura se zachová.

<target name="compile">
    <javac srcdir="${srcdir}" destdir="${bindir}" />
</target>

Nyní máme zkompilované class soubory a můžeme se vrhnout na vytvoření jar souboru. Pro tento účel vytvoříme další target.

<target name="createJar" depends="compile">
    <jar destfile="${deploydir}/${jarname}">
        <fileset dir="${bindir}"/>
        <manifest>
            <attribute name="Main-Class" value="${mainclass}"/>
        </manifest>
    </jar>
</target>

Target createJar závisí na compile, takže se nejdříve zkompilují java soubory a teprve poté se z class souborů vytvoří jar soubor. Do tohoto souboru se vloží obsah složky ./bin a vytvoří se META-INF/MANIFEST.MF se správně nastaveným atributem Main-Class. Díky tomu bude tento jar soubor spustitelný. Pro pořádek ještě uvedu obsah celého build.xml souboru:

< ?xml version="1.0" encoding="UTF-8"?>
<project name="Test" default="createJar" basedir="../">
    <property name="srcdir" location="./src" />
    <property name="bindir" location="./bin" />
    <property name="deploydir" location="./deploy" />
    <property name="jarname" value="Aplikace.jar" />
    <property name="mainclass" value="Hlavni" />
 
    <target name="compile">
        <javac srcdir="${srcdir}" destdir="${bindir}" />
    </target>
 
    <target name="createJar" depends="compile">
        <jar destfile="${deploydir}/${jarname}">
            <fileset dir="${bindir}"/>
            <manifest>
                <attribute name="Main-Class" value="${mainclass}"/>
            </manifest>
        </jar>
    </target>
</project>

Spouštíme Ant

Buildovací skript máme napsaný, takže teď už jen stačí spustit ant z adresáře, kde máte build.xml soubor uložený. Pro zjednodušení si můžete vytvořit soubor antbuild.cmd, který editujte v textovém editoru a vložte do něj tyto řádky:

call ant
call pause

Poté stačí antbuild.cmd spustit, a vaše aplikace se zkompiluje a vytvoří se jar soubor. Pokud vám příkazový řádek bude hlásit, že nezná příkaz ant, tak si budete muset Ant stáhnout (z této adresy) a nastavit k němu cestu v Enviroment variables (česky Proměnné prostředí). Vzhledem k tomu, že na každém systému se toto nastavuje jinak, doporučuju do Googlu zadat výraz “how to set environment variable on X”, kde za X dosadíte název vašeho systému.

S Eclipsem ještě jednodušeji

Pokud používáte Eclipse, můžete ant scripty spouštět ještě snadněji přímo z IDE. Stačí na soubor build.xml kliknout pravým tlačítkem a vybrat Run as -> Ant build. Vzhledem k tomu, že Eclipse už v základu obsahuje Ant, nebudete muset nic stahovat, ani nastavovat.

Proč Ant?

Většina IDE umožňuje export do jar souboru. Problém je, že takový postup nelze plně automatizovat a člověk přitom může udělat chyby. Když budete jar soubory generovat pomocí Antu, budete mít jistotu, že všechno probíhá tak, jak si přejete. Navíc při změně IDE nemusíte zdlouhavě řešit, jak se jar vytváří jinde. Stačí spustit Ant a máte po problémech.

Malé doplnění

Na začátku jsem se zmínil o atributu Class-Path, který může být vložen do manifest souboru. O tom, jak tento atribut vygenerovat pomocí Antu jsem již jednou psal v tomto článku. Považuji tedy za zbytečné se o tom znovu zmiňovat.

2. 2. 2009 , 18:17

Soutěž blog roku na eMag.cz

Kategorie: Různé // 11 komentářů » 541 shlédnutí

Tak a je to tady. Na eMagu už nějakou dobu probíhá soutěž blog roku, ve které je každý týden nominováno pět blogů, ze kterých se poté losuje. Tak nějak jsem tuto soutěž tiše přecházel (jen jsem jednou hlasoval pro můj oblíbený blog), doufaje v to, že se toho nezúčastním. Jsem jaksi líný dělat ty věci okolo, propagace, shánění hlasů a podobně. Díky Vám, čtenářům mého blogu byl tento blog přesto nominován.

 

 

Tento týden (2.2 – 8.2) probíhá hlasování. O hlasy v tomto kole bojují tyto blogy:

Blogy jsou seřazeny podle pořadí, jak byly nominovány. Pokud některý z těchto blogů rádi čtete, určitě autorům uděláte radost, když jim pošlete svůj hlas. Navíc můžete vyhrát USB akvárko, takže z toho třeba taky budete něco mít :) K hlasování je třeba se na eMagu zaregistrovat, ale myslím si, že je to práce maximálně na 2 minuty. Přeji hodně štestí všem zůčastněným a děkuji všem, kteří tento blog podpoří.

1. 2. 2009 , 8:00

Produktivita práce v Eclipse

Kategorie: Programování // přidat komentář » 651 shlédnutí

Konečně jsem se dostal ke shlédnutí prezentace o produktivitě práce v nástroji Eclipse. Vzhledem k tomu, že v tomto IDE trávím spoustu času bych rád poznal všechny vychytávky, které toto IDE nabízí. Samozřejmě si je můžu všechny prostudovat a vyzkoušet, ale kdo na to má čas a náladu, že? :) Proto mi tato prezentace přišla docela vhod, protože jsem si během chvilky udělal představu o tom, co Eclipse nabízí a co ještě neznám, nebo nepoužívám.

Pokud tedy používáte Eclipse, určitě doporučuji se na přednášku podívat. Stojí to za to.

Odkaz: http://blog.novoj.net/…

31. 1. 2009 , 8:00

Angličtina – jediný správný jazyk pro programátory

Kategorie: Programování // 5 komentářů » 617 shlédnutí

O nutnosti zvládat anglický jazyk jsem už psal v jednom starším článku. Tentokrát se zaměřím na oblast programování a důležitosti anglického jazyka. Pro některé programátory to může být udivující, ale pojďme tedy na to.

Pište zdrojové kódy jen a pouze anglicky! Píšete-li kód v jakémkoliv jiném jazyce a chcete se programováním živit, jste na nejlepší cestě k problémům. Asi vás napadne, proč je ta angličtina tak důležitá. Důvodů je hned několik:

  • Veškerá dokumentace je anglicky. Nespoléhejte nikdy na to, že dokumentaci někdo přeloží do vašeho rodného jazyka, nebo alespoň vyjdou nějaké přeložené tutoriály. Čtení dokumentace je základ, který musí nutně každý dobrý programátor zvládnout.
  • Pokud napíšete kód anglicky, bude mu rozumět každý dobrý programátor na celém světě. Můžete tak snadno spolupracovat s někým z druhého konce světa na stejném kusu kódu, protože oba budete vědět, o co v kódu jde. Otevírá se vám tedy spoustu příležitostí, jak se dostat třeba k vývoji nějakých velmi známých open-source projektů.
  • Pokud budete pracovat v nějaké solidní firmě, budou po vás vyžadovat anglicky psaný kód.
  • Až budete potřebovat pomoc s nějakým specifickým problémem, můžete se obrátit na celý svět. To je mnohem lepší, než se spoléhat na pomoc z té naší malé podmnožiny z planety Země.
  • Kódem se budete moct prezentovat třeba na přijímacím pohovoru, nebo kdekoliv jinde.

Asi si budete říkat, že u vašeho malého projektu, na kterém zrovna pracujete angličtinu prostě nebudete potřebovat. To může být sice pravda, ale díky tomu si nikdy nezvyknete na programování v angličtině. Když pak přijdete např. do firmy, kde to po vás budou vyžadovat, budete složitě vymýšlet názvy metod a proměnných.

Naopak pokud programujete jen a pouze anglicky za všech okolností, nebude vám to nikdy dělat potíže. Budete psát plynule a jen ve výjimečných případech sáhnete ke slovníku.

Nikdy nemíchat!

Co je ještě horší než česky psaný kód? Je to kód psaný v několika jazycích. To už zavání totální prasečinou a pokud jste něco takového zplodili, je nejvyšší čas na pořádnou refaktorizaci. Takový míšený kód je silně nepřehledný a i zkušený vývojář se v takovém kódu snadno ztratí. Mnohdy to vede i k duplicitě, což je jedna z mnoha cest do programátorského pekla. Vemte si třeba takové:

Time getTime() {
    ...
}

Time ziskejCas() {
    ...
}

Tahle situace může nastat celkem snadno, protože prostě zapomenete, že takovou metodu už máte napsanou. Potom když budete chtít získat v programu čas, tak občas použijete getTime a někdy zase ziskejCas. Taky je vám už jenom z té představy špatně? Mělo by. Samozřejmě podobná situace může nastat i v případě anglického kódu (např getTime() a returnTime()), ale dodržováním konvencí při psaní kódu byste se měli podobným problémům vyhnout.

Angličtina je prostě přirozenější

Ostatní jazyky (nemyslím teď programovací) ve většině případů musíte osekávat kvůli diakritice a dalším odlišnostem. Naproti tomu s angličtinou nejste omezeni nijak. Nemusíte řešit nějaké časování (ziskejCas, nebo ziskatCas?) a tím si ušetříte spoustu času nad zbytečným přemýšlením. Pokud budete psát kód anglicky, budete snadněji studovat kód psaný v nějakém tutoriálu a nebudete k tomu ani potřebovat umět přeložit celý článek. Naučit se anglicky na úrovni potřebné pro programování je docela snadné. Těch technických slov moc není a spousta z nich se běžně používá i v češtině.

Psaní kódu anglicky má prostě své nesporné výhody. Naproti tomu psaní kódu v jiných jazycích je špatné a vytváří to velmi špatné návyky, ze kterých se potom budete dlouho dostávat.

Jaký máte na používání jiných jazyků při programování názor vy? Setkali jste se s tím už někdy?