30. července 2009

O můře a osvícení

Vletěla mi do pokoje můra.

Přilákalo ji světlo.

Sundal jsem kytky z okenního parapetu, abych mohlo otevřít okno a zhasl jsem světlo. Můra nechtěla pochopit, že ten černý obdélník je ten její správný směr ke svobodě a světlu.

Začal jsem se s ní bavit. Nerozuměla mi. Prošla osvícení. Přiletěla až k mému lustru, který ji zcela oslepil. Je osvícená. Proč by měla letět někam do tmy?
Protože tady není žádná potrava pro můry. Tady žiji já. Nic tu není. Leť pryč.
Proč, když tam venku je jenom tma a zima a stejně tam zemřu? Jsem slepá z tvého světla.

Zavřel jsem okno a vrátil na něj kytky.
Osvícená můra má právo zemřít v teple a světle.
Kdyby si to náhodou rozmyslela, nechal jsem otevřenou ventilačku, kterou bez problémů může letět ven.

24. července 2009

Avatary a cheaty

Tvůj život je hra. Máš ji před svýma očima na displayi. Plně se jí věnuješ. Každá nepozornost je potrestána zraněním a později ztrátou života. Začínáš kola znovu a často i celou hru. Jak hraješ hru, ztotožňuješ se se svou postavou. Znáš její fyzikální limity a znáš i své reakční doby (své schopnosti). Jsi čím dál tím lepší hráč. Dokážeš porážet ostatní.

Probuzení (ze snu hry) přichází v okamžiku, kdy ti někdo sdělí, že existují cheaty. Tvoje postava pak získá vlastnosti, proti kterým nemá hra obranu. Nesmrtelnost, neomezený počet životů, neomezená síla, neomezené množství zbraní a munice, přeskoky přes dimenze, ...

Druhé probuzení je v tom, že si uvědomíš, že tu hru nemusíš hrát, že můžeš hrát jinou (svobodná vůle, právo volby) a nebo si napíšeš vlastní.

Třetí probuzení je, že nejsi postava vázaná fyzikálními limty ani reáliemi.
Nejsi svůj vlastní avatar.

Poznámka pod čarou:
Zasvěcení, je o tom, že znáš principy hry. Stojíš nad ní. Znáš jazyk a kód programu.

16. března 2009

googlebot.txt aneb Věřím v Google.

Jste jako já? Používáte Google každý den? Věříte mu?
Já věřím v Google a protože naše důvěra je vzájemná, mám ve všech svých webech soubor googlebot.txt (kódování je v UTF-8). Např.: googlebot.txt na doméně rest.cz nebo googlebot.txt na tomto webu.
Syntaxe souboru je zřejmá na první pohled. Pokud zvládáte překlad do dalších jazyků, přidejte překlad a pošlete to dál.
Nevěříte? V tom případě to vyzkoušejte.
Věříte? Tak na co čekáte?


3. září 2008

Normální formy a AJAX

Tvoříte weby? Nebo alespoň jeden? Pak jste určitě narazili na AJAX. Pokud nevíte o čem mluvím, tak dál nečtěte. Možná jste také narazili na "normální formy". Pokud ne a při tom používáte technologie AJAX, tak rozhodně čtěte dál.
Normální formy tady rozhodně nemíním rozebírat. Můžete nechat Google zobrazit stránky s výrazem: normální formy.
Google, je moc pěkný AJAXem poháněný web. Dobře se s ním pracuje.
Proč?
Protože grafika neruší, odezvy jsou vynikající, našeptávač nabízí i počty výsledků, ... Prostě skvělá práce.
Proč nejsou Vaše aplikace taky takové?
Začneme od Adama. Takže klasický příklad, který programovali už všichni. Seznam čísel.

Tabulka by mohla vypadat asi takhle:
Jméno | Příjmení | Číslo
Adam | První | 000000001
Eva | Třetí | 736510007

Proč ta Vaše vypadá:
Jméno a příjmení | Číslo
Adam První | 000000001
Eva Třetí | 736510007

Jasně, dáme dva indexy - jeden na Jméno a příjmení, druhý na Číslo a pošlape to jako hodinky.

Ne, obě tabulky jsou špatně. Použiji citát z root.cz:
1. normální forma (1NF)
Relace (tabulka) je v první normální formě, pokud každý její atribut (sloupec) obsahuje jen atomické hodnoty. Tedy hodnoty z pohledu databáze již dále nedělitelné. Tato podmínka není splněna například u tabulky, kde je jméno a příjmení v jednom sloupci a přitom aplikace pracuje s těmito položkami jako samostatnými.

Co je na tom špatně?
Návrh by mohl vycházet z předpokladu, že přesně víte, co chcete, ale v praxi jsem se s tím nesetkal. Takže pokud nevíme, co vlastně chceme, ale máme k dispozici vstupní data a trochu inteligence, znormalizujeme tabulky. Pěkně je to předvedeno například v článku
Databáze a jazyk SQL.

Tak teď byste měli vědět, jak dostat tabulku do třetí normální formy.

Já bych k tomu doplnil, že moje tabulka by se rozpadla na dvě.
V té první by byly sloupce: IDjméno, Příjmení, Číslo.
V té druhé: IDjméno, Jméno

Proč?
Protože jmen je konečný počet a nemá smysl nechat uživatele zadávat své jméno. Pomůžete mu "našeptávačem", který bude brát jména z databáze, ke které se bude (jak jinak) asynchronně připojovat dle potřeby, tedy na základě vstupu od uživatele.
Já si dokáži představit tabulku s milionem řádků a AJAXový našeptávač, který dělá do této tabulky dotazy:
SELECT * FROM seznam WHERE `Jmeno_a_prijmeni` LIKE '%$vstupoduzivatle%' ORDER BY `Jmeno_a_prijmeni`;

To je ještě ta lepší varianta. MySQL podporuje v dotazech regulární výrazy.
Raději neuvedu příklad, protože bych ho nejpozději do týdne našel použitý ve zdroji nějakého webu.
Můj dotaz by vypadal:
SELECT IDjméno FROM Jmena WHERE `Jméno` LIKE '$vstupoduzivatle%' ORDER BY `Jméno`;


Při představě, že na planetě, je 68404451 tisíc obyvatel (zdroj:
World Population na http://www.ibiblio.org/lunarbin/worldpop ), mě napadlo, jestli by si i sloupec Příjmení nezasloužil vlastní tabulku.

Proč?
Které dotazy děláte nejčastěji? Když nabídnete možnost vybrat si jméno, nebo napsat nové, proč neudělat to samé s příjmením. Uživatel tuto vlastnost podvědomě čeká a pokud mu nebude nabídnuta, bude zklamán. Návštěvníci Vašeho webu nechtějí být zklamáni. Nezapomínejte na to, když děláte web.

Takže máme tři tabulky. Ideální pro AJAXem posílený web, který po zadání prvních pár písmen křestního jména nabízí nalezené tvary a totéž dělá i u dalšího vstupního pole, tedy příjmení.

Pro dnešek stačí.








11. srpna 2008

Dovolená

Jak jste si mnozí všimli, jsem již několik dní na dovolené.
Dnes jsem seděl na lavičce před domem na vesnici, kde jsou dvě hospody a čtyřista obyvatel. Přemýšlel jsem o tom, jak pomalu plyne čas a co vlastně celou tu dobu tady dělám. Shrnul jsem to pro sebe slovy: žeru, chlastám, hulím a chrápu. To je hrozný, jak se na vesnici vleče čas. Jak jsem tu vlastně dlouho? Dlouho.
Měl bych někam napsat, že mám nový rekord. Už dva dny jsem se nepřipojil k netu a nepodíval se, kde se co děje. Ani poštu jsem nečetl. Vlastně četl. Včera. Tak to jsem závislejší, než jsem si myslel.
To jsem tu teprve dva dny.
To přece není možné. Za tu dobu jsme stihli, položit dlažbu, vypít dva kastle piva, několik lahví slivovice, grilovat. Několikrát jsem byl na procházce se synem, udělal jsem pár fotek, ...
Tak proč mám pořád pocit, že se ten čas tak vleče?
Chybí mi práce. Moje zničující, stresující, vyčerpávající, proklínaná, ale pořád ta moje. Proti ní, je všechno ostatní jenom pomalá a vleklá nuda.
Ale dost o práci, mám přece dovolenou.
Jdu si ubalit cigáro a otevřít si pivo. Dal bych si točené, ale Karel si vzal dovolenou a na dva týdny zavřel hospodu. No a konkurenční hospoda? Ta zkrachovala.
Jo, někdy nevyjde jenom počasí. :-)
Tak si užijte dovolenou.

17. června 2008

Máš právo měnit realitu

Přemýšlel jsem: "Co vlastně dělá člověka člověkem?"
To je otázka, nad kterou se dá meditovat stovky let a pořád se budou objevovat další a další odpovědi. Postupně jsem vyloučil lásku, emoce, používání nástrojů, schopnost přežít atd. Nakonec jsem konstatoval, že člověk je člověkem proto, protože má schopnost nejrychleji měnit realitu. Musíte uznat, že v tomto oboru jsme jako rasa naprosté jedničky.
Každý měníme realitu po svém. Někdy k lepšímu, někdy k horšímu. Někdo mění globální realitu, někdo jenom místní. Někdo dokonce mění pouze virtuální realitu a někdo dokonce pouze svou vlastní realitu. Přijde mi to v pořádku.
Máš právo měnit realitu.

4. května 2008

Dělej svou práci a usmívej se na lidi

Byl jsem včera ve své oblíbené hospůdce.
Je to docela malá hospůdka na našem sídlišti. Chodím tam rád. Personál je na mě milý a zpravidla mám pivo před sebou dřív než si sednu. Obsluha je nevtíravá a já mám příjemný pocit, že tam patřím.
Včera to ale bylo jinak. Za barem stála osoba, kterou jsem tam nikdy předtím neviděl. Aha, asi nový personál. Jinak nikdo. Seděl jsem na své židli a nikdo mě neobsluhoval. Přestal jsem mít tu osobu automaticky rád. Nerad čekám a měl jsem žízeň. Naštěstí se objevila paní šéfová a bez řečí mi natočila pivo. Usmála se, postavila pivo na stůl a odešla. Neusmívala se. Asi má starosti.
U druhého piva byl scénář velmi podobný až na to, že nová osoba (jestli slečna, nebo paní jsem si nevšiml) stála za barem, vypadala že nemá co dělat a kouřila cigaretu. Pak se odněkud vynořila paní šéfová, donesla mi pivo a usmála se na mě, když ho stavěla na stůl.
Po nějaké chvilce se zvedla hladina hluku u kuchyně a když jsem se tam podíval, tak se paní šéfová hádala s tou novu osobou - od té doby vím že se jmenuje Monika.
Třetího piva jsem se málem nedočkal. V té době už jsem silně uvažoval o tom, že odejdu do vedlejšího baru.
Jako stálý host chápu, že točit pivo, roznášet ho po celém lokále a u toho dělat inventuru skladových zásob je na jednu ženskou moc. Takže jsem zůstal, ale po celou dobu jsem nepřestával kroutit hlavou nad novým personálem. Ten přístup. Několikrát jsem uvažoval že jí řeknu: Haló, slečno! Jste tady barmanka, měla byste točit pivo a starat se o hosty.
Jako stálý host chápu, že je tady nová a neví co má dělat, nezná ceny, nezná hosty. Ale jako ostřílený šéf a znalec povah můžu říct, že ta tady nevydrží. Nikdo se nebude dívat na její znuděný obličej a čekat jestli se rozhodne, že ho konečně obslouží.
Takže Moniko, tady je rada pro tebe: Dělej svou práci a usmívej se na lidi.
Možná nejen pro tebe.