Archiv na měsíc March, 2005

Logika a PHP

23.March 2005 (Wednesday)

Pohádka o tom, jak jsou užitečné datové typy a proč není dobré konvertovat string na bool.

PHP je jedním z jazyků, který kašle na datové typy. Tedy ono na ně nekašle úplně, hluboko ve svých útrobách si dělá poznámky, jestli v proměnné je číslo, objekt nebo pole - dovolí vám ale s proměnnou zacházet jak chcete. Takže proměnné, která obsahuje řetězec, můžete příště přiřadit číslo nebo objekt a můžete ji vesele porovnat s jinou proměnnou, která obsahuje třeba pole. Pokud porovnáváte dvě proměnné různého typu, PHP provede automatickou konverzi, tak aby se daly porovnat. Je to trochu složitější, ale v mém případě se porovnával boolean a string. Tam je to jednoduché (relativně) - neprázdný řetězec je True, prázdný False (až na jednu výjimku, ale o tom až za chvilku). Kód používá databázi PostgreSQL, která má také datový typ boolean, ale hodnoty získané z databáze nejsou True/False, ale řetězce ‘t’ a ‘f’. Ten, kdo to takhle napsal, by potřeboval nakopat do … však vy víte kam. Těm bystřejším už asi došlo, že nejsnažší cesta jak se dostat do nervového sanatoria je na tohle zapomenout a porovnávat logické hodnoty z PHP a z databáze. Takže samozřejmě platí, že True == ‘t’. Bohužel také platí, že True == ‘f’, protože jak jsem psal výše, neprázdný string se vyhodnocuje jako True. Takhle blbá chyba mě stála 4 hodiny života… No a to nejlepší na tom je, že převod stringů na bool má jednu výjimku: string ‘0′ se převádí na False (pozor: ‘00′ už je opět True!!). Co vedlo autory k zanesení takového bordelu do PHP opravdu nevím.

Dobrodružství ve vlaku

11.March 2005 (Friday)

Když jsem si četl o benetovo marném boji s železnicí, ani mě nenapadlo, že velice brzo budu mít možnost vyzkoušet si po dlouhé době jízdu vlakem na vlastní kůži. Musím vše potvrdit: má naprostou pravdu.

Co ovšem zatím netuší je to, že snad největší výzva (mezi managery známá jako „challenge“ ;-) je pracovat ve vlaku na notebooku. Podobně jako kniha i notebook poslušně plní, co mu fyzikální zákony velí… Ovšem je to zařízení mnohem komplexnější a všestranější, takže dokáže připravit daleko více zajímavých okamžiků. Displej notebooku se chová jako kniha — o tom nemá cenu se více rozepisovat. Daleko zákeřnějším zařízením se ukázala být klávesnice. S tím, že vám displej během čtení o pár centimetrů uhne se rychle sžijete, ale to, že mačkáte jinou klávesu, než byl váš původní úmysl, je daleko větší problém. O to více, že notebook zákeřně čeká na ten nejnevhodnější okamžik, například máte-li na obrazovce text typu: „Uložit soubor? (Ano/Ne)“ nebo ještě lépe o něco depresivnější: „Jste si jist?“. K dokonalosti to vše ale dovádí touchpad. Neskutečně zákeřné a pomstychtivé zařízení, svévolně měnící vaše povely, občas reagující na pouhý letmý dotek a občas ignorující téměř úder pěstí. Když navíc máte v sobě 4 piva a mozek je na plný výkon zaměstnaný snahou udržet oči otevřené a svěrač zavřený (ano, v mém věku už jsou 4 piva někde na hranici mezi člověkem a čuňátkem) a ani náhodou tak nestíhá predikovat a vyrovnávat zákeřné pohyby notebooku, je dokonalý výsledek zaručen. Ráno zjistíte, že vaše snaha dopsat pár řádek kódu, které vás napadly během cesty do restaurace, byla mírně řečeno marná. Jednak z kódu ani náhodou není patrné, co že to bylo za myšlenku a ještě ke všemu ani okolní řádky kódu už nejsou co bývaly. Samozřejmě, jet z Prahy do Plzně vlakem je buď pro fandu Českých drah, hazardéra a nebo zoufalce. Krom toho, že vlak jede déle než autobus a místo usměvavé stewardky roznášející zdarma noviny nebo čaj potkáte maximálně protivného průvodčího, je také téměř dvakrát dražší. Jenže zkuste v deset večer v Praze sehnat autobus do Plzně. Snad jedinou výhodou vlaku zůstává to, že jsem měl celý vagón pro sebe (do Plzně nás dorazilo celých jedenáct) — což ovšem vysvětluje tu cenu….

Já také dělám s počítačema…

9.March 2005 (Wednesday)

Hodně jsem se nasmál při čtení xichtova příspěvku Dělám s počítačema. Je to jako číst o sobě… ano, já také „dělám s počítačema“. Svou rodinou a přáteli jsem pravidelně doporučován jako „odborník na počítače“ — počínaje Wordem a konče správou sítí a hardware…

Podlehla tomu i moje manželka: po jejím zoufalém boji s Wordem, který se rozhodl ignorovat její přání a ve kterém jsem jí nemohl pomoci (Word už jsem dlouho neviděl a do Windows bootuji pouze kvůli Age Of Empires ;-), prohlásila, že si myslela, že když má doma programátora, tak takovéhle věci za ní vyřeší… Vrcholem všeho byla ale známá naší bývalé paní domácí. Jakmile paní domácí zjistila, že „dělám s počítačema“, samozřejmě ji (jak jinak) nenapadlo nic lepšího, než dát její známé, jejíž synek měl nějaký problém, moje telefonní číslo. Paní mi pak zavolala s tím, že její syn by potřeboval jenom v něčem poradit, že mě dlouho nezdrží a že se za mnou zastaví v práci. Když přisli, nevěřil jsem vlastním očím: synek, který měl problém, byl zhruba osumnáctiletý student — v té chvíli jsem si uvědomil, co bude nevyhnutelně následovat. A stalo se. Místo dotazu dvanáctiletého výrostka, který neví jakou mu má maminka koupit grafickou kartu, aby mohl pařit Unreal, přišla otázka, u které jsem ani vzdáleně netušil „vo co go“. Synek měl jakýsi problém s už-nevím-jakou službou ve Windows NT. Pro ty, kteří přečetli a nepochopili: „počítače“ je hrozně široký pojem… když si zlomíte nohu, asi nepůjdete na kožní nebo na oční — stejně tak nechoďte za mnou, až vám přestane fungovat počítač a nebo váš účetní program. Takže tak.

Kdo jsem?

7.March 2005 (Monday)

—–BEGIN GEEK CODE BLOCK—–
Version: 3.1
GIT/CS d- s:++ a- C+++$ UL+++$ P++ L+++$ E—
W+++$ N w– M– V b+++ D+ G e+++ h— y+++
——END GEEK CODE BLOCK——

Geekcode