Základní otázka života, smrti a vůbec

Ona přijde. Víme to všichni. Ty, já i on. Ale stejně, kdykoli, kdy přijde, tak jsme z toho v šoku, stejně tak jak silničáři z prvního sněhu nebo davy bojující o poslední výtisk nového Ládi Hrušky dva dny před Vánoci.

Člověk se s ní, s kmotřičkou, co kosou pohladila už nespočet krků, nepřímo setkává téměř denně. Další vážná nehoda na D1. Pěti lidmi sdílený článek z idnesu začínající slovy: „Hvězda popu 80. let“. Bruce Willis likvidující jednoho záporňáka za druhým.

Slyšíte houkačku. Za zády vám projede sanitka. V ten moment – pokud vůbec – nemyslíte snad na nic jiného, než na to, že řidič, ten tvrdej chleba má. A že zase další babi uklouzla před domem a nejspíš si zlomila nohu. A rozbila si při tom hlavu.

Co má člověk psát, když má smutek na duši,
co má člověk psát, když ho ten druhej neslyší?

— Záviš 

Vůbec, vůbec by vás nenapadlo, že vlastně onen (milovníci černého humoru doplňte: „vánočně“) blikající vůz se svým nepříjemným tónem razí cestu k pomoci. K těm pánům v bílých pláštích, kteří sice mohou nahánět strach, ale mají zázračné ruce. Ruce, které uzdravují. Ruce, které často dokáží zázraky.

Snad jen v nějaké noční můře – nebo Burtonovské povídce – by vás napadlo, že v tomto voze s nápisem“továrna na zázraky speedition“ (a malým podtitulkem „P.S. s ručením omezeným“), cestuje i jeden černý pasažér. Černý jako smrt. Sem patří poznámka z teorie uspořádání ohledně maximálního a největšího prvku v množině, ale pro stručnost bude vynechána. Jen si tak stojí v zadní části vozu a velmi, velmi pomalu přejíždí brouskem po čepeli. Tedy – pokud jí jej někdo nezapomněl do kabely nachystat, že ano, pane Svěrák.

Ale vy jdete dál, jako by se nic nestalo. Vám. Ani nikomu z vašich blízkých. A nebo ne? Co, když v té blikající krabici skutečně ležel někdo z vašich blízkých, jen jste o tom v ten moment nevěděli? Ne, ne. Ne, to ne. To by bylo moc jednoduché.

Nepřipadá vám až ironické spojení: „Smuteční slavnost“?

Aniž byste měli sebemenší tušení, má vaši adresu na seznamu. A taky se na vás náležitě usmála, jak na vás vykoukla z onoho sanitního vozu. Vy však dál kráčíte k domovu. Brzy tam budete, když v tom najednou ztratil vědomí. To první, první věc, co vám v ten moment proletí hlavou je: „Co teď? Co mám dělat? Co mám kčertu dělat?“. Najednou vám jsou všechny ty hodiny zdravovědy úplně k hovnu.

V ten moment děkujete pánubohu za to, že s sebou máte někoho, kdo alespoň tuší, co je to stabilizovaná poloha. Voláte pomoc, ty anděly v bílých pláštích. Všechno tak strašně trvá. A přitom se to celé odehrává tak strašně rychle. Zahajte neprodlednou resuscitaci, znělo z telefonu. Resuscitace. Jak nadějně zní toto slovíčko. Znáte to z filmů, tam to přece vždycky zabere!

Raz, dva, tři, čtyři, výdech. A znovu, a zase. Pomáhá to? Nevím, nevím nic. Fibriluje. Nevzdáváte, to. Bojujete. A pak ji spatříte. V jeho očích. Díváte se na ni a ona se dívá na vás. Marně hledáte chladné prazdroje, kterými byste ji uplatili. Prosíte ji, ať to nedělá. Prosíte, jako o život. Bohužel doslova. Tohle prostě není možné. Továrna na zázraky už je blízko. To místo, kde prý dokáží mrtvým navrátit život.

Noradrenalin do srdce. Ten ve filmech pomůže vždycky. Hrdina se po něm zhluboka nadechne, a otevře oči. Jenže on je má otevřené pořád! Jako by zůstal v hlubokém údivu. Zornicový reflex negativní. Další cizí slovíčka. Jazyk těchto mágů je prapodivný, ale člověku dává naději. Naději, že neodešel přímo v našem náručí, přímo před naším domem. Úplně jako ve filmu.

 

… v záhrobí totiž vládne pouze klid a mír,
povídá, budeš se mít lépe nežs tu žil.

— Záviš 

Exitus. Říkáte si, k čemu jsou všechna ta kouzla, magie, diagnózy. Všichni ti „američtí vědci, kteří náhodou možná objevili lék proti rakovině“, když ani nezmůžou jeden malý zázrak. Bohužel – nezmůžou. Ani malinkatý.

Věnováno Jerrymu, Jerrynkovi, *1. 9. 2004, †25. 12. 2016

Generátor vánočních koled

Vánoce. Ten skvělý čas, kdy se všichni radují, veselí, slaví – a jsou šťastní. Co jiného jim také zbývá?

A o tom to je. Vánoce jsou vlastně taková docela kýčovitá záležitost. Nezdá se vám to? Všechny ty výzdoby, pohádky, dárky, písničky, atmosféra, filmy.

Podívejte se třeba do televizního programu: pohádky, rodinné komedie, romantické filmy. Mrazík, Sám doma, Láska nebeská? Ano, to je jen malý výčet toho, čím se vás televizní stanice snaží naladit na vánoční vlnu. To vše k Vánoční atmosféře zcela jistě patří. Ale – co mě už pár let překvapuje, šokuje a já nevím, co všechno, tak jsou rádia.

Asi to přišlo ze západu. Nebo se to zrodilo někde v hlavě některého z tuzemských hudebních producentů: máme tu letní hity, tak proč nenapsat nějaký vánoční? Ten nápad se docela ujal, a tak každoročně vznikne pár nových zaručených vánočních hitů. Pokud jste o nějakém hudebním interpretovi dlouho neslyšeli (nebo se mu naopak v poslední době daří a rád by své popularitě trochu napomohl), je docela pravděpodobné, že před Vánoci o něm určitě uslyšíte. V lepším případě o hudebním interpretovi. V tom horším se jedná o herce, moderátora či nedejbože politika.

Vzhledem k tomu, že rádia moc neposlouchám, tak informace ohledně nového vánočního hitu Vánoc 201x ke mě doputují zpravidla pouze pomocí sociálních sítí. Co si tak vzpomínám, z posledních let tu máme Vánoční čas od skupiny Nightwork, Štědrý večer nastal od XindlaX či dokonce parádní funky hit Santa Claus od bláznivé kombinace Gunčíková, Jandová, Suchánek a Genzer. Dokonce koukám, že i redakce rádia Evropy 2 si opět pro letošní Vánoce nazpívala svůj song. Chválu nebo naopak kritiku těch uměleckých děl ponechám odborníkům a jen dodám, že Hudební masakry by ve svých análech jistě vyhrabaly spousty daleko horších exemplářů.

A přesně v ten moment mě to napadlo. O čem to k čertu vlastně chtějí pořád zpívat? Ježíšek, cukroví, dárky, radost, purpura. Stromeček. Dobře, ještě kapr. A cukroví. Tak moment, to už tu bylo? Dobře, nejsem sice textař, ale – nemohu se zbavit pocitu, že takovéto „koledy“ jsou prostě pořád o tom samém.

A v ten moment mě napadlo, jestli by nešla práce takového textaře nahradit počítačovým programem. Tak jsem to zkusil a – no, posuďte sami:

Generátor vánočních koled (online)

Pokud by vás zajímalo, jak takový elektronický textař funguje, prostě a jednoduše za sebe skládá víceméně náhodné verše. Samozřejmě, nic není je tak. Verše se musí rýmovat a také mít nějaký rytmus (resp. alespoň stejný počet slabik v každém verši).

Zajímavější je, jak se generují jednotlivé verše. Základní idea spočívá v tom, že každý verš popisuje nějakou činnost. Tuto činnost může provádět určitá skupina osob/věcí. Například děti mohou psát dopis Ježíškovi, rodiče pít punč a zvířátka ležet u krbu. Verš se tedy sestavuje tak, že se vybere některá z těchto aktivit a k ní se pak už jen vybere některý z aktérů. V případě, že je tato kombinace moc krátká, tak se tam doplní pár slov typu: „zase po roce“ nebo „dnes celý den“.

náhled
Koleda s číslem 80147628.

Trochu odborněji řečeno, můžeme tak mluvit o (probabilistické) formální gramatice typu 2, tedy bezkontextové. Pochopitelně, s určitými restrikcemi, takže to čistě bezkontextová gramatika není. Nicméně, celá idea generování veršů je na principu gramatik od počátku založena.

Kdo by měl zájem, celou aplikaci mám nahránu na openshiftu, takže si ji (když mi dáte klíč) můžete naklonovat, nebo si ji proklikat přímo v testovací produkci pod touto adresou: xmasgen-martlins.rhcloud.com na clusteru někde v Kalifornii. Tímto bych chtěl také poděkovat studentskému spolku UP Crowd za hosting v Česku a koncekonců také za propagaci.

Tak vám přeji hodně zábavy při generování a hlavně zpívání (byť nepředpokládám, že by některé z koled snad byly zpívatelné) vygenerovaných koled. A samozřejmě Veselé Vánoce a štastný nový 2017 rok k tomu!

Živá nebo mrtvá? Ta kočka v krabici, samozřejmě

Ano, mluvím o kočce pana Schrödingera. Té malé roztomilé, co je zavřená v krabici. A možná už je mrtvá. Nebo umře, než dočtete tento příspěvek. Kdo ví…

Tiše předpokládám, že Schrödingerovu kočku vám jistě nemusím představovat. Symbol popularizace vědy, kvantové fyziky a nekonečný zdroj vtipů. Ale pro úplnost: Jedná se o myšlenkový experiment, který si klade za cíl poukázat na nedostatky tehdejší kvantové fyziky (přesněji kvantové mechaniky), vzhledem k tomu, že to v té době bylo docela mladé téma.

Šlo o to, že máte kočku. V krabici. A s ní je v této krabici zavřeno také jisté zařízení. Toto zařízení obsahuje nuklid, tedy látku, která se postupně radioaktivně rozpadá. Je stanoveno, že tento nuklid se s 50% pravděpodobností do hodiny rozpadne. V takovém případě zareaguje patřičný detektor a uvolní jed, který nebohou kočku usmrtí.

Asi netřeba dodávat, že já kvantové fyzice rozumím asi jako křováci v Africe, ale – v čem je tento pokus – krom praktikování pokusů na zvířatech – tak zajímavý? Nu, jde asi tak o to, že kvantová fyzika uvažuje nějaké superpozice. Tedy, že nuklid je nějakým způsobem rozložen i nerozložen současně. Tudíž, by i kočka měla být mrtvá i živá současně. Což je samozřejmě nesmysl. Tak jak z toho ven?

Ptejte se Einsteina nebo Hawkinga! Já dnes chci mluvit o něčem úplně jiném. Podívejte se hned na první větu za „Ale pro úplnost:“. Myšlenkový experiment. To je ono. Víte – občas někdo utrousí poznámku na téma jak k tomu asi přijde nebohá kočka. To jistě. Ale napadlo vás někdy, jak se asi musí cítit pan Schrödinger?

Při představě, že je přesně 50% pravděpodobnost, že v momentě, kdy kráčí chodbou ze své kanceláře k laboratoři s krabicí, jeho kočka už je dávno mrtvá? Nebo stále žije? A nebo se nuklid špatně vyspal a rozpadl se hned, co Schrödinger opustil laboratoř, a on tak po dalších 59 minutách najde jen tělíčko v začínající fázi rozkladu?

Něco takového je jistě pro každého z nás děsivě nepředstavitelné. Nebo nepředstavitelně děsivé. Ale – víte, že vlastně ne? A není to jen přítomnost roztomilé chlupaté koule, která dělá z myšlenkového experimentu z kvantové fyziky každodenní záležitost.

Ani nemusíme chodit daleko od fyziky: Psali jste test z fyziky. Vy fyziku, samozřejmě, jako každý student, k smrti nesnášíte. Takže, v momentě, kdy rozporuplni odevzdáváte papír popsaný výpočty, náčrty a vzorečky, nevíte. Jste jako Schrödinger, který ukládá kočku do krabice a odchází. „Za týden budou výsledky.“, říká profesor. A vy čekáte. A za týden krabici otevřete, a dozvíte se, jestli vaše fyzikální kočka zemřela, nebo přežila. Protentokrát.

Ale toto není zdaleka jediný případ. Zkoušíte úplně novou pizzu. Co na vás vykoukne, když otevřete krabici? Bude na vás radostně koukat a nedočkavě se k vám lísat? Nebo se zmůžete jen na důstojné rozloučení u odpadkového koše?

Nebo – ve schránce najdete dopis s červeným pruhem (nebo tak něco). Může to být jen pokuta za stání na invalidech. Osahávání kolegyně na zvrhlém firemním večírku. A nebo prostě a jednoduše na vaší zahradě sousedův pes vyhrabal mrtvolu.

Příkladů je opravdu spousta. Telefonát z neznámého čísla. Boty koupené přes internet. Žádost o povýšení. Namazaný chleba padající na zem. A nebo typický mužský problém: „Odepíše mi?“. Dobře, namazaný chleba asi není úplně ten případ. Ale to bychom opustili Schrödingera a přešli k Mikešovi (kočka jako kočka, co?).

Vraťme se ale zpět do univerzitních chodeb. Na tu dlouhou chodbu, schodiště, několikery dveře, kancelář a laboratoř. Pohodlné křeslo za velikým pracovním stolem. Všude spousta papírů, ocenění, diplomy. Fotka manželky. Toto vše je jeden obrovský koktejl, který se neustále míchá kolem sedícího a dumajícího Schrödingera. V hlavě se pak odehrává největší bitva v historii lidstva. Život versus smrt oné nebohé kočičky. Přežije to? Prosím, ať to přežije!

Vše se najednou točí kolem té jedné zatracené krabice dole v laborce. Kancelář jako by zavoněla jejím papírově-kočičím pachem. Na rameni jakoby ucítíte dotek její srsti. Celým tělem vám najednou projede ten nepříjemný ostrý impulz. Na čele vám vyraší kapka potu. Ale kdepak, to se mi jen zdálo. Ona je přece pořád zavřená dole v krabici.

Sedíte a přemýšlíte. Máte pocit, že se nemůžete ani hnout. Ano, ta bezmoc. Ta strašlivá bezmoc! Připadáte si jako kus hadru, který někdo vyždímal a pak prostě jen tak pohodil na křeslo. V ten moment nejste nic. Jen bezvládně sedíte a přemýšlíte. Entropie (=neurčitost, neinformovanost) je na maximu. Každým pórem se do sebe snažíte nasát malilinkatý kousek informace, která vás z tohoto mučení má vytrhnout. Detail, drobnost. Cokoliv!

Posloucháte tikot hodin na stěně. Máte pocit, že se vám snaží něco sdělit. Opravdu? Skutečně? Ach bože, jen to ne. Ať to není pravda. Prosím, řekněte, že ne! Diplome, klávesnice, pavučino v rohu! Cítíte, že vše kolem vás žije. A moc dobře ví, co zrovna prožíváte. Ale všechna ta okolní hmota, všechny ty předměty kolem vás však nevyslyší vaše volání, vaše prosby. Potřebujete to vědět! Z vteřin jsou minuty, z minut hodiny. Ten čas běží tak pomalu.

Ticho! Venku zafoukal vítr. To není dobré znamení. To se mi určitě snaží naznačit – to nejhorší. A nebo ne? Já nevím, nerozumím tomu. Co to má znamenat? Srdce mi buší jak ještě nikdy. Bože, ať už to skončí, jsem smířen s osudem!

Čas se pomalu chýlí ke konci, opatrně se zvedáte ze svého křesla a vydáváte se na dalekou pouť. Saháte na kliku a v ten moment vás to napadá. Já to nechci vědět. Půjdu tam a tu krabici nikdy neotevřu. Možná to tak bude lepší.

Jdete chodbou, tou neskutečně dlouhou chodbou. Znáte to, chodíte tudy několikrát za den. Máte napočítaný každý krok. A každým dalším se pomalu blížíte k pravdě. Ne, já to musím vědět. Chci znát pravdu!Třesete se. Přidáte do kroku, smířeni s nejhorším. Uhýbáte ke schodišti a zářivka za vámi zablikala. To něco musí znamenat! Proč jen tomu nerozumím?! Určitě to muselo být něco důležitého, ba dokonce rozhodující. Mozek se vám vaří.

Scházíte po schodech. Máte pocit, že o dvě patra níže se něco šustlo. To je další znamení. Bodejť by nebylo, vždyť bude jedna ráno. Ale jaké? Poslední schody, už jen pár desítek kroků. Srdce vám buší jako o závod. Dveře laboratoře jsou přímo před vámi. Čekají jen a jen na vás. Z celého vesmíru vás nezajímá nic víc, než tyto dveře. Máte pocit, že vás přitahují nějakou magickou silou.

Saháte po klice a otvíráte dveře. Rozsvítíte a temná místnost se najednou zalije životodárným světlem. Marně doufáte, že se odněkud ozve radostné „mrau“. Jen ticho a bzučení zářivek. Váš zrak se upírá na tu papírovou krabici, která si jen tak osamoceně leží na stole u zdi. Nerozvážným krokem přicházíte k ní. Kontrolujete čas, jsem tu přesně. Čtyři, tři, dva, jedna, tak a můžu. Tlukot vašeho srdce přehlušil i ambientní bzukot zářivek. Opatrně odklápíte víko krabice. Nejste schopni ani dýchat. Odsouváte víko, to poslední, co vás dělí od vašeho miláčka. Už za pár milisekund pohlédnete pravdě do očí. A pak ten moment skutečně nastane…

Fyzika nezklamala. Jako obvykle.

Každý jsme takový Schrödinger, který má všude kolem sebe krabice s kočkami, nuklidy a jedy. Jen si to většinou neuvědomujeme. Je zajímavé se nad tím někdy zamyslet.

Poznámka: Tento článek vznikl recyklací mého konceptu s názvem „Syndrom Schrödingerovy kočky“. Představte si, že jako Schrödinger se cítí každým dnem každý programátor. Stát před krabicí zdrojového kódu, koukat na něj a očima hypnotizovat načítající se ikonku. Bude to fungovat? Opravíte chybu – a ptáte se zase. Opět zemřela. A tak zase. Po několika pokusech se pravdy začnete děsit. Ano, možná teď už kočka konečně přežila – ale, co když ne? Prokrastinujete, hlavně, ať se nemusím podívat té zhoubné pravdě do očí. Máte strach. „Velký“ strach.

Prokletí informatika

Právě jsem se vrátil ze zkoušky. Dopadla – jak to tak u mě většinou bývá – víc než úspěšně. Místo bujarých oslav si však (opět) říkám, jestli je to vlastně v pořádku.

 

Než se však pustím do vyprávění toho, co se vlastně stalo a proč už v sobě nemám třetího panáka, dovolte mi jednu důležitou poznámku na úvod.

V názvu článku stojí „informatika“. Lidé, kteří mě znají, tak ví, že já mé spolužáky či kolegy rozděluji na ty, kteří jsou „informatik“ a na ty, kteří jsou „student informatiky“ (popř. „absolvent informatiky“). Tento na první pohled nenápadný rozdíl je však prakticky fatální.

Většina lidí si totiž myslí, že když studují (nebo již dostudovali) informatiku, stali se z nich informatici. To je však velký omyl. Vezměte si sebe – kolik z vašich spolužáků ze střední, kteří školu skutečně vystudovali, to skutečně umí (a případně dělá)? Když se zamyslím já, tak z mých spolužáků ze střední, elektrotechnické průmyslovky, se elektrotechnice věnuje možná tak polovina. Zbytek třídy, ač na to mají papír, bych jako elektrotechniky rozhodně nikdy nenazval.

A s informatiky je to podobné. Znám spoustu lidí (netvrdím, že přímo mých spolužáků; vzhledem k tomu, že nás aktuálně studuje 6, tak bych prakticky musel být konkrétní, což bych nerad), kteří studují informatiku stejně jako já a přitom informatiky nejsou. Ano, určitým způsobem třeba umí programovat, zadaný úkol nějak vyřeší, ale když se jich zeptáte, proč to řešili tak a tak, nebo jestli je třeba jakože nenapadlo použít to, co nás učili dva roky zpátky, tak neví. Neví, neznají, nenapadlo je to, už si to nepamatují.

Tito lidé prostě o informatice, no, dobře, nechci říkat, že neví nic, ale – z jejich práce je patrné, že prostě nejsou informatikové. Chodí do školy, učí se na zápočty a zkoušky, ale je vidět, že tomu, co se učí důkladně nerozumí a hlavně – neumí to použít v praxi. Takový člověk informatiku pouze studuje, nic víc. Jo – a samozřejmě na ni nadává. Že se musí učit teoretické nesmysly a zbytečnosti, které mu budou v praxi k ničemu.

Tak přesně o těchto lidech tento článek není. Tento článek popisuje smýšlení někoho, kdo na přednáškách přednášejícího neposlouchá, kdo na přednáškách slova přednášejícího hltá po kilech. Mluvím tu o člověku, pro kterého zabývat se teoretickou informatikou není odporná zbytečnost a ztráta času, ale něco zajímavého. Něco natolik zajímavého, že se nebojí tomu obětovat část svého volného času.

Takto nějak se vidím já. Přiznávám, že tato představa je poněkud idealizovaná, ale to koneckonců nevadí – ani já nejsem dokonalý informatik. Dobře, ale říkáte si, co je na tom tedy tak špatné?

No, první věc, která nejspíš napadne každého, je těžká integrace do praxe. Člověk zvyklý na přednášky a hluboké dumání nad rozličnými teoretickými problémy zpravidla velmi těžce nese fakt, že najednou nejhlubší problém, který ho čeká, je zjistit, proč zákazníkovi aplikace spadla.

Ale o tom jsem nechtěl mluvit. Toto totiž zjevně trápí kdejakého studenta či absolventa vysoké školy. To, proč píši tento článek pramení přímo z podstaty informatiky, resp. jejich aplikovanějších podob.

Jedním z úkolů informatiky totiž je něco, čemu já souhrnně říkám „teorie programování“. To je, zjednodušeně řečeno, sada informatických disciplín, které nám ukazují, jak by se mělo programovat. Pochopitelně, znalost teorie programování je jeden ze základních předpokladů každého informatika. Každý informatik totiž pak nejen, že něco nějak naprogramuje, ale je si vědom toho, co a jak vyřešil, že jeho řešení je nejlepší možné a pokud není, tak dokáže přesně popsat proč.

Pořád si říkáte, co je na tom špatné? Ukážu názorně: Informatik je postaven před úkol vytvořit jednoduchou databázovou aplikaci. Něco jako telefonní seznam nebo tak. Nu, aplikaci si kompletně navrhne, vytvoří si malý databázový framework, sadu GUI komponent a důmyslný systém jednotkových testů. Na závěr vše spojí dohromady a po dvou týdnech má hotovou perfektní aplikaci.

Když před tentýž úkol postavíte neinformatika, založí si projekt, vloží třídu, otevře hlavní metodu, do ní nabuší příšerné množství kódu, aplikaci spustí, prokliká a má hotovo. Za jedno odpoledne. I s pauzou na kafe. Hodinovou.

A na to, že to celé funguje jenom nějakým zázrakem a že se každý bojí v té aplikaci cokoliv změnit, protože je mu jasné, že by okamžitě odkráčela do křemíkového nebe (a ještě cestou sestřelila nějaké dopravní letadlo, prostě jen tak), se nikdo neptá. Obzvlášť v komerčním prostředí, kde každá minuta je drahá. A rozdíl třinácti a půl dne je v tomto případě značný.

Tuto situaci si asi dokážete představit. Ale pointou tohoto příběhu dvou programátorů není příšerná práce neinformatika, ale – naopak precizní práce informatika. Tady je totiž krásně vidět, že informatikovi naprosto vůbec nezáleží na tom, na jak rozsáhlém projektu pracuje, on je precizní vždy.

I když si jen píše v excelu vzoreček pro výpočet počtu sazenic na záhon, naprosto automaticky dokumentuje a testuje. A výpočet si dělí na dílčí kroky. A tak podobně. Prostě dělá vše, co je mu jakožto informatikovi vlastní.

A v tom je ten problém. Informatik je totiž takový detailista, puntičkář, chcete-li. Nedokáže se od toho odprostit. Ve všem musí mít dokonalý systém. A pokud ne, celé to zahodí a raděj to udělá celé znovu. Co naplat, že ztratí dva dny práce. Nedokázal by se smířit s tím, že vyprodukoval něco, co není podle jeho představ. Co se mu na 100% nelíbí. Co není ideální.

Tohle všechno stojí čas. To věčné zdokonalování, vylepšování, uhlazování. A vždycky se objeví nějaký další problém. Takže kus práce zahodit a zase znovu.

Zprvu je to skvělé, člověk má radost, jak se jeho dílo posouvá stále více a více kupředu. K dokonalosti. Ale časem začne sledovat, jak vždy, když má cíl na dosah, tak mu o kousek uskočí. A to začíná být frustrující. A únavné. A celé to skončí zpravidla tím, že to prostě vzdá a je nucen se spokojit s výsledkem, který rozhodně není dokonalý. Pořád je 1000x dokonalejší než to, co by vyplodil kdejaký neinformatik, ale – není to ono.

Takže zpravidla člověk, i když projekt zdárně dokončí, je totálně vyčerpán – jak fyzicky, po nekonečných dnech a nocích za počítačem, tak psychicky – žít s tím, že po tak usilovné práci a takovém množství času projekt stejně nedotáhl do konce. Ke kýžené dokonalosti.

Jedinou útěchou tak pro něj může být, když se zjeví problém. Neinformatikovo veledílo totiž v takovém případě havaruje a z neinformatika se stává hromádka neštěstí, zatímco informatik na to byl připraven a problém tak vyřeší velmi snadno. Toť teorie. V praxi se – bohužel – vždycky se objeví něco, s čím ani sebelepší informatik nepočítal a hromádka neštěstí se stává z něj. Podařilo se totiž najít (další) důkaz toho, že jeho dílo skutečně není dokonalé.

Takže zatímco neinformatikové si žijí ten svůj život smířeni s tím, že hold občas budou muset řešit nějaký ten problém, život informatika je jeden velký problém. A to je problém. Prokletí.

 

Koho by zajímalo, jak (nedokonale dokonale) vypadá jednoduchý překladač programovacího jazyka po dvou měsících informatické práce, mkrněte na github. Už je oficiálně odevzdán, takže jej, myslím, můžu veřejně uveřejnit.

 

Existuje 10 typů lidí …

Znáte ten starý známý ajťácký vtip? Myslím tento:

Existuje 10 typů lidí: ti, kteří rozumí binární soustavě a ti, kteří nerozumí.

A znáte také jeho upravenou variantu?

Existuje 10 typů lidí: ti, kteří rozumí trojkové soustavě, ti, kteří nerozumí a ti, kteří si mysleli, že toto je vtip o dvojkové soustavě.

Když se nad tím zamyslíte, jistě vás napadne, že tímto zdaleka nekončíme. Takovýchto vtipů může být vlastně docela dost. A to, přesně řečeno, nekonečně mnoho.

To je docela hodně, já vím. Ono i přečíst je všechny by nějaký ten čas zabralo. Nicméně, připravil jsem krátký seznam těch prvních:

Jen tyto dva

Prvních 5

Jak se píše v patičce stránky, počet vtipů, které chcete zobrazit, je dán parametrem stránky. Takže si ho můžete klidně změnit na téměř jakýkoliv (dobře, ve skutečnosti až do symbolických 64).

Pár důvodů, proč nemám rád .NET a C#

Ti, kdo mě alespoň trochu znají, tak už to o mně dávno ví. Jsem javista a vyvíjím pod linuxem. Kdykoliv mám vyvíjet pod Windows tak nadávám. A co teprve, pokud mám vyvíjet v jazyce či na platformě, kterou si sám Microsoft vytvořil. A k nim pochopitelně patří i jazyk C# a platforma .NET.

Vzhledem k tomu, že jsem nyní nucen příležitostně v tomto jazyce vyvíjet, mám alespoň částečnou možnost srovnávat. Srovnávat C# s Javou. Ale taky s tím, co by – podle mě – mělo být správné, nebo co by se mně osobně líbilo.

Vývojář

Microsoft. To je kapitola sama pro sebe (a že pokud nebudu po uveřejnění toho článku ukamenován, mám v plánu něco napsat). To, že je celá platforma .NET v režii společnosti Microsoft beru jako jednu z nejvýraznějších nevýhod. Jednak člověk na každém rohu naráží na totální přešlapy, které jsou pro produkty Microsoftu typické. A pak – platforma, která je vyvíjena jednou(!) a ještě navíc komerční(!) společností, to nemůže vést k ničemu dobrému. Je to jako být si sám sobě oponentem u akademické práce nebo plodit potomky se svou vlastní sestrou. To zřejmě eliminaci oněch přešlapů moc nenapomáhá.

Co však asi napadne každého: uzavřenost, nepřenositelnost a nerozšiřitelnost. Pro mě jako pro javistu je to naprosto nemyslitelné. Na druhou stranu – abych zase jen nekritizoval – tyto tři vlastnosti vedou i k výhodám, jako je optimalita a odladěnost.

Vývojové prostředí a nástroje

Microsoft vydává vlastní vývojové prostředí, Microsoft Visual Studio. Už jen ten název – co má společný vývoj software se slovy vizuální a studio (s názvy produktů si obecně v Microsoftu hlavy nikdo moc neláme – stačí říct Internet Explorer nebo Windows)? Má to prý umět úplně všechno. To asi ano (ač jsem nikdy nepoužil víc jak 5% toho, co by asi tak mohlo nabízet), takže je těžkopádné, náročné a často pomalé.

Opomenu-li některé dle mého názoru fatální po uživatelské stránce pochybení (např. IntelliSence, rádoby kontrola kódu ještě před překladem, nebo našeptávač, který v základu našeptává všechny identifikátory, na které kde narazil), tak – jedno IDE je prostě špatně. Znám spoustu lidí, co na MS VS nadávají, ale – prakticky nemají možnost změny.

A to ani nemluvím o úplné absenci nějakého jednoduchého (ne nutně konzolového) nástroje. Čekám, kdy budu muset spouštět VS jenom proto, abych opravil překlep na webové stránce. Nemluvě o migraci projektu („solůšny“) mezi verzemi VS a vůbec – celý deployment aplikací. Pro Javistu, obzvlášť pracující na libovolném unixu, je projekt složka se zdrojovými kódy (a dalšími „resources“) a obvykle jeden konfigurák, který se stará o projekt jako takový. IDE slouží jen jako nástavba, není žádný problém se o veškerou konfiguraci a deployment projektů starat ručně (vše je standardizováno a zdokumentováno).

Jazyk C#

Nu, můj první dojem (který trvá doposud) byl: „Oni se asi drží pravidla čím kratší kód, tím míň chyb.“ A tak do jazyka vkládají spousty udělátek, které jej komplikují, ve snaze snížit délku napsaného kódu. Programátor je tak obtěžkán nutností myslet také na prvky jazyka, nikoliv jen čistě na programování.

Také často říkávám, že C# je slátanina VisualBasicu a C++. Hraje si na vysokoúrovňový jazyk, ale přitom používá tak primitivní a nízkoúrovňové nástroje, jako je např.  :  (zápis pro dědičnost) namespace  či enum  a struct . Namespace působí, jako nástroj, který má zabránit kolizím názvů a ne jako nástroj pro strukturizaci projektu. Výčty sice najdete i např. v Javě, ale mnohem propracovanější a použitelnější. Struktury Java nemá vůbec – v Javě je (kromě primitivních datových typů) všechno objekt.

Vlastnosti – nástroj, který má programátora ušetřit od psaní zapouzdření. Jenže i zapouzdření jsou metody. A proto by se s nimi podle toho taky tak mělo zacházet. Gettery mohou být parametrizované (a to často častěji než neparametrizované), navíc umožňují i smysluplnější pojmenování (např. find nebo create). Rozdíl klíčových slov  readonly , const a proměnné bez setteru nechápu doteď.

Třešničkou na dortu jsou pak kolekce. Tedy vlastně nejsou. Mám na mysli javovské kolekce, které totiž v C# úplně chybí. Většina C# programátorů říkává: „Když vím, kolik toho je, použiju [ ] , jinak List<> .“ A co když budu potřebovat rychle vyhledávat (přidávat, odebírat)? A nebo automaticky objekty uspořádávat? A nebo nemít duplicity? A v neposlední řadě – já osobně se polím vyhýbám jak jen to jde (vždyť je to prehistorický nástroj, který, jak známo, např. Python už nemá vůbec).

Závěrem

Je toho pochopitelně ještě mnohem víc. Například konvence – ostré závorky na samostatných řádcích mě vyloženě vytáčí, kód je pak strašně roztahaný – a tím i pro mě nepřehledný. Také mi vadí podtržítka v názvech proměnných a vlastnosti psané s velikým písmenem – tedy stejně jako třídy. Ale, co by jste chtěli, když nemáte  getProperty  a setProperty ? Hold je potřeba si dopomoct nějakým umělým způsobem.

Sečteno, podtrženo, C# na mě působí „neprofesionálním“ dojmem. To znamená, že se snaží co nejvíce ušetřit práci programátorovi na úkor toho, že ho často přiměje k porušení (resp. nedonutí k dodržení) některých nepsaných pravidel programování. Jeden příklad za všechny – klíčové slovo  partial . Proč používat další nástroj pro rozdělení kódu třídy do více souborů, když máme dědičnost a agregaci/kompozici? Pak člověk zjistí, že minimálně dva jeho kamarádi (a to programují v C# minimálně tak, jak já v Javě) nepoužívají, nebo používají nesprávně něco tak základního, jako je dědičnost.

Na druhou stranu, jak jsem zmínil na počátku – nespornými výhodami je fakt, že platforma .NET je odladěna na míru operačnímu systému Windows, takže je to (oproti Javě) určitě rychlejší. A díky tomu, že se nikdo nezabývá přenositelností, tak mnohdy i jednodušší (typický příklad – lomítka v cestách k souborům).

A to hlavní – vývoj je tak rychlejší a levnější (a z mé zkušenosti v C# programují lidé s nižší kvalifikací). Čímž se ovšem dostávám k tomu, že u programování se prostě musí přemýšlet, což si často lidé bez patřičného vzdělání moc neuvědomují. Zeptejte se třeba Donalda Knutha, koneckonců je to jeho myšlenka. Bez přemýšlení prostě programování nebude programováním, ale psaním příkazů do souboru. A mám pocit, že Microsoft se občas trošku snaží razit právě touto cestou.

Lustr

Když může televize Nova vysílat reportáže o tom, proč padá chleba namazanou stranou dolů, proč bych já nemohl napsat o tom, jak jsem montoval lustr?

Bylo krásné jarní nedělní odpoledne. Až moc krásné na to, abych jej trávil u počítače prací. Nicméně – ven se mi tak nějak ani nechtělo, bylo mi totiž jasné, že by stejný nápad měla polovina města. Rozhlédl jsem se tedy kolem sebe a říkal si, co bych tak mohl dělat doma.

Při procházení bytem jsem však pozoroval všude jen potřebu nudných rutinních domácích prací. V tom jsem ale zakopl o nenápadnou krabici.

Byla to krabice s lustrem. Ano, s lustrem (stropním svítidlem chcete-li). Octnula se tam totiž docela náhodou.

Někdy na podzim jsem zpozoroval, že v nejmenovaném obchodním řetězci s nábytkem a domácími potřebami vyprodávají jeden typ lustru. Vzhledem k tomu, že sestřin pokoj se snažil působit relativně moderně a přívětivě, tak žárovka visící ze stropu (dobře, a ještě spolu s hradbou postavenou z U-101 skříněk pocházejících z UP Rousínov, n.p.) celkový dojem silně kazila.

Díra sem, díra tam

Jal jsem se tedy ono svítidlo zakoupiti. Po jeho rozbalení jsem zjistil, že k jeho montáži postačuje „pouze“ přichycení dvěma šroubky ke stropu. Vzhledem k tomu, že vrtačka, kterou disponuji doma by šla použít stěží jako ruční šlehač, natož jako něco, čím udělám díru do železobetonového stropního panelu, kontaktoval jsem mámu.

Její přítel je totiž velký kutil a z nářadí má téměř všechno a co ne, tak milerád dokoupí (mimochodem – kdybyste někdo měli pár hektarů pole na poorání, napište, na to taky máme mašinku). Jenže znáte to – bydlí na druhém konci města, pracuje na tom třetím, takže co by pohledával u mě? A ještě navíc s vrtačkou?

Takže se to tak nějak pořád odkládalo, pak přišly Vánoce, chřipková epidemie, zkouškové a až – konečně tu stojí ve dveřích mámin přítel s vrtačkou v ruce. Opět otevírám krabici s lustrem, beru ho do ruky odměřuji si díry a vrtám. Půl půl roku čekání, půl minuty vrtání a je hotovo. Nevadí, poděkoval jsem, rozloučil se a lustr opět schoval se slovy, až budu mít čas, tak ho tam přichytím a zapojím.

Kabel – kabel – kabel

Tedy do dneška. Opět jsem tedy otevřel krabici a vrhl se do díla.

V těle lustru (jak budu říkat té plechové vaničce připláclé ke stropu) byla připevněna (napevno) čokoláda, která rozváděla elektřinu do tří esteticky pozohýbaných a navzájem propletených kovových trubiček, které měly být zakončené skleněnými baňkami s žárovkami. Hned mi bylo jasné, že ten 30let starý hliníkový přívod, který lustr napájí, do této čokoládky opravdu nedostanu.

Musel jsem tedy na stávající, ze stropu trčící, asi pěticentimetrový hliníkový fragment kabelu (při demontáži původního světla se u nuláku ulomilo dalšího půl centimetru, drželo to pohromadě jen silou vůle) napojit kabel, který měl propojit čokoládku u stropu s čokoládkou v těle světla.

Už v ten moment mi bylo jasné, že vecpat dvě čokolády a kus kabelu je propojující do malé plechové vaničky nebude vůbec nic lehkého. Nicméně – ustřihl jsem si kus kabelu, jak mám ve zvyku odizolované konce zapájel a šel ho zapojit. Problém číslo 1: V jedné ruce držím šroubovák, v druhé ruce světlo. Jak přesvědčím ty vodiče, aby se zasunuly do čokolády a vydržely tam, než je utáhnu?

Po chvíli experimentování jsem si vypomohl igelitovým obalem, ve kterém byl celý lustr v krabici zabalen (lustr jsem tak udržoval u stropu jen pomocí dvou prstů). Elektrickou část jsem tedy měl celkem úspěšně za sebou.

Když jsem začal lustr přišroubovávat ke stropu, začal se však cukat. On totiž měl být upevněn na principu „bajonetu“ (lustr se nasadil přes šroubky, pootočením se usadil a šroubky se dotáhly).  Křivostí stropu (nebo vyvrtaných děr) ale spíš faktem, že nikdo nepočítal s tím, že se dovnitř bude muset vměstnat o čokoládu víc, se světlem prakticky nešlo pootočit. To znamená, že nezávisle na dotažení šroubků světlo šlo k zemi stejně snadno jako jsem ho ke stropu přitlačil já rukou, tedy bez ohledu na nějaké šroubky.

Přisunul jsem si stůl a vlezl na něj, abych se do toho mohl trošku víc opřít. Chvíli jsem s lustrem hýbal, až se mi ho podařilo nějak znásilnit, aby mohl držet alespoň na 1 a půl šroubku (a když jsem viděl, jak se začíná plech okolo šroubků deformovat, raději už jsem to tak nechal).

Zdobení vánočního stromečku

Nyní přišla závěrečná fáze – montáž baněk. Každá (z těch estetických) trubiček byla zakončena plastovou objímkou na žárovku, která měla zvnějšku závit s matkou, kterou se měla přichytit baňka. Baňka měla pro tento (a jistě také estetický a termoregulační) důvod v přední části otvor.

Dobře, nasadil jsem tedy baňku na objímku, prostrčil otvorem matku a že ji zašroubuji. Záhy jsem ale zjistil, že mé prsty jsou na to moc krátké – sotva jsem dosáhl na objímku, natož abych na ni našrouboval matku. Kleště sice byly dlouhé tak akorát, ale – tentokrát byla zase pro změnu moc široká matka. Zkusil jsem i kleště na porcování drůbeže, ale také bez šance.

Nakonec jsem to vyřešil tak, že jsem baňku vycpal vším, co bylo po ruce (sáčky od součástek světla a bublinkové igelity z krabice), do toho zarazil prsty a začal točit. Točil jsem tím, co bylo vevnitř, točil jsem baňkou a ono to prostě donutilo otočit se i tu matku. Připadal jsem si sice, jako policista, když šroubuje žárovku (znáte to, jeden drží žárovku, 4 točí stolem – akorát tady jsem na to byl sám), ale fungovalo to!

Když jsem takto montoval třetí baňku, zjistil jsem, že když poté přitlačím baňku k matce a začnu s ní otáčet, kupodivu rozpohybuje i matku. S radostí, že budu moct tímto způsobem dotáhnout všechny baňky tak, aby nezačaly cinkat pokaždé, když někdo udělá krok, začal jsem zpětně dotahovat zbylé dvě.  K mému překvapení jsem při dotahování druhé uslyšel slabé křupnutí a zpozoroval hrstku střepů, jak se řítí k zemi. Kousek baňky se prostě jen tak ulomil. To už jsem opravdu nadával.

Budiž světlo!

Dobře, tak už jsem raději nechal utahování a našrouboval jsem tam žárovky a šel to zkusit. Nu, první dvě minuty elektronika v žárovkách bzučela jak bulharské transformátory, pak se trošku uklidnila. Světla lustr dává docela dost, jen přece jen vypadá trošku vyjukaně na tom starém socialistickém stropě. Nebo si možná budu muset jen zvyknout na to, že lustr konečně nějak vypadá.

Závěrem bych chtěl dodat, že výrobci nábytku a bytových doplňků občas produkují pěkné kousky. Schválně – kolikrát se vám stalo, že se vám při skládání třeba stolečku zatoulala jedna matka? A zrovna taková, která měla asijský závit, a nebyla nikde k sehnání.

O kvalitě by se také dalo polemizovat. Je to sice jen lustr, tedy něco, u čeho se nepředpokládá, že bude nějak extrémně zatěžován a namáhán, ale – co montáž? Stačí, aby se vám špatně chytil šroubek (nebo spíš vrut) a už to není to, co v testovací laboratoři schválili a – pak se divte, že je to křivé.

Jo a také se hodí občas mezi těmi bublinkovými igelity vyhrabat návod. Třeba v něm zjistíte, že někde v hloubi té krabice se nachází nějaký jednoduchý nástroj, který slouží k dotahování matek (tak jako tomu právě teď je v mém případě).

Když už nic, alespoň jsem si doplnil zásoby bublinkového igelitu. Takže až zase budu ve hodně nervózní, mám co praskat.

8 studentů, 6 vyučujících, 2 učebny

Začíná mi nový semestr a tak jsem hned takto zkraje využil jednoho záchvatu prokrastinace, abych konečně napsal, jaký to je na navazující informatice.

Ano, je to tak. Už pár měsíců se mi přede jménem blyští „akademický“ (dá-li se takto bakalář vůbec nazvat) titul. Jen o pár týdnů kratší dobu se pyšním titulem „student navazujícího magisterského programu Informatika“.

Ano, je to tak, opravdu jsem se spolu s (pokud se nepletu, tak na počátku semestru) 11 dalšími statečnými vydal vstříc vědění, poznání – a otročení na přednáškách a cvičeních. Říkáte si, co mě k tomu, kromě honby mého vlastního ega za magisterským titulem, vůbec vedlo? Bylo to vlastně celkem prosté.

Přijímačky? Hlavně se neopít

Když jsem na jaře před rokem (2014) pracoval na bakalářské práci, práce mi vůbec nešla od ruky (více v samostatném článku). Když jsem poté přešel na učení se na státnice, zpočátku to vypadalo podobně. Po pár dnech či týdnech se mi to však najednou začalo dávat do souvislostí, najednou mi to všechno začalo dávat smysl, najednou jsem tomu všemu začal rozumět. Jednou jsem dokonce přišel asi ve 4 ráno domů z noční procházky se psem, protože jsem asi tři hodiny chodil po okolí a odříkával si pro sebe, jak funguje referenční model ISO/OSI.

Tou dobou jsem si začal říkat, že nechci strávit zbytek života mlácením do klávesnice a trháním si vlasů koukajíce na výpis výjimky. A stejně tak – na druhou stranu jsem prostě nechtěl opustit to naše krásné akademické prostředí (tím ovšem v žádném případě nemyslím budovu, ve které se katedra nachází, ani prostředí vývojové – i LispWorks opustím docela rád; měl jsem na mysli prostředí, které voní po proměnných a leskne se jak reflexivní a symetrická relace na množině).

Zkrátka jsem změnil své stanovisko z „půjdu to zkusit a když mě vyhodí, tak to přežiju“ na „půjdu to zkusit a chci to dodělat!“. Stačilo jen udělat státnice, přijímačky a bakalářku.

K mému pozitivu pro mě přijímačky byly hned následující den po státnicích, tedy vše ještě v živé paměti. Vzhledem k tomu, že jsem prakticky přecházel z oboru „Aplikovaná informatika“ na obor „Informatika“, přijímací řízení se tedy skládalo z obsahu státních závěrečných zkoušek z mého nového oboru, takže jsem znal asi tak dvě třetiny požadovaného učiva.

Naivně jsem tedy doufal, že po příchodu ze státnic sednu ke skriptům a osvojím si ještě alespoň základní pojmy z algebry a vyčíslitelnosti. Na druhou, a to tu pozitivnější stranu, podařilo se mi udržet se na uzdě a oslavy úspěšných státnic si odložit a spojit je s oslavami úspěšných přijímaček.

Byl tam taky týpek, co se ho zeptali na ekvivalenci a on mlčel. On fakt mlčel!

Další den jsem tedy předstoupil před komisi, odvykládal pár vět o uspořádání a už mi bylo gratulováno. No, nebudu to zbytečně natahovat, i bakalářku jsem nějak sesmolil, obhájil a přežil i byrokratické peklo na podzimním zápise.

 Cvičení? Jo, běžte si zaběhat

A začal semestr. Koukám do rozvrhu a zjišťuji, že až na prakticky pár drobných výjimek neopustíme dvě malé učebny skryté kdesi v útrobách katedry, na samotném konci chodby. Také katalog vyučujících se tak nějak zastavil na nevelikém čísle. Cvičení buďto vedou sami přednášející, nebo jeden ze dvojice doktorandů. Mnohem častěji se však stávalo, že z úst přednášejícího zazněla věta: „Jo a abych nezapomněl, dneska cvičení nebude“.

A nebo něco v tomto smyslu zaznělo hned na první přednášce a cvičení prostě neexistovala. Ono se také není čemu divit – když po třech přednáškách typu definice-věta-důkaz narazíte na první půlminutový příklad, po něm následuje další třípřednášková smršť vět a důkazů, tak něco jako cvičení prostě nemá smysl.

K mému nemilému překvapení se po nás opět chtělo implementovat vybrané problémy z přednášek. Bohužel – jakožto studenti navazujícího oboru se už zabýváme komplikovanějšími problémy, takže i jejich implementace je mnohem náročnější. To, co jsme na bakaláři odbyli s tím, že to už je zbytečně složité, my implementujeme málem čtyřmi způsoby a ještě navíc testujeme nad fiktivními daty a ověřujeme tak odvozené vzorce.

Cvičící přijde na hodinu, řekne: „Byli jste na přednášce? Tak to naprogramujte.“, poděkuje za pozornost a odejde.

Na druhou stranu se začalo mezi požadavky na zápočty objevovat čím dále tím častěji psaní seminárek, elaborátů či „rešerší“ (převyprávění článku vlastními slovy). Jako bonus pak v rámci procvičení angličtiny prezentace libovolného tématu v angličtině v předmětu Computer Science.

Zkouška? To je dobrý …

Nároky na zápočet se lišily vyučující od vyučujícího. Někdo ho dával prakticky zadarmo (proč taky filtrovat i těch 8 studentů, že?). Jiní zase chtěli, aby jsme si to vyzkoušeli a netápali u zkoušky nad základními pojmy (věta: „Vždyť jste to programoval, ne?“ byla docela běžná). Nicméně ani to obvykle nebyla nějak výrazná překážka a prakticky všichni jsme u všech předmětů postoupili ke zkoušce.

Zkoušky byly obecně také zajímavé. Nikdo po nás nechtěl, abychom se učili nějaké sálodlouhé odvozování a výpočty zpaměti. Většina věcí se řešila jen ideově. Já jsem tak kupříkladu řešíval i důkazy (které jsou u většiny předmětů většinou jejich obsahu). Na absolvování to stačilo, spousta spolužáků dokonce důkazy řešila přitroublým úsměvem a – taky prošli.

Zkrátka, pokud jste chodili poctivě na přednášky a nespali tam, stačí si to jen pár dní před zkouškou oživit, osvěžit, zopakovat a dostudovat si detaily (např. přesné znění definic, příp. základních vět). Jak jsme se shodli – od člověka, který nastoupí na navazující po i tak náročném bakaláři (a nejde si dodělat magistra nebo inženýra nějakou snažší cestou), tak se předpokládá, že ho olomoucká informatika zaujala a vyučující si toho jsou vědomi. A proto si studentů váží, už to pro ně nejsou ti, které by mohli (a že by to často nejraděj udělali) poslat domů jedinou dobře mířenou otázkou. Na magistrovi přijdete, něco řeknete, co jste se o tom naučili, a pak už diskutujete se zkoušejícím a pokud nemluvíte úplně zcestně, tak vás nevyhodí.

„Vypsal jsem to na 7 ráno a čekal jsem, že nikdo nedorazí a já to budu moct zrušit a pospat si.“

Nicméně dovolil bych si jedno upozornění pro aplikované informatiky: Psal jsem, že zkoušky jsou celkem v pohodě. To sice ano, ale za předpokladu, že znáte (alespoň) základní pojmy z algebry, pravděpodobnosti, logiky a vyčíslitelnosti. V opačném případě vám příprava zabere o polovinu času víc a vy budete googlit, co že je to ta ortonormální matice, úplný ohraničený svaz, Bayesova věta, dedukce, či třída PSPACE.

Co tady děláte? Poslouchám?!

Závěrem bych se připojil ke kolegovi Halfarovi a jeho článku. Zmiňuje, že – stejně jako já – si začíná být vědom toho, že se mu akademické měsíce blíží ke konci, a že už dávno nemusí řešit problémy s tím, kde získat co nejvíce kreditů „zadarmo“, a začíná tak navštěvovat předměty, které ho prostě zajímají.

Ze stejného důvodu jsem si zapsal předměty TeX pro pokročilé a Kognitivní chyby a biasy. Je fakt, že si mezi všemi těmi filosofy na hodinách KCB připadám tak trochu jako „The Englishman in New York“, a že opravdu doufám, že se mě nikdo nezeptá na původ (resp. studijní obor), protože by na mě koukali opravdu jak na vetřelce či špeha. Uvidím, co se mi poštěstí ulovit příští rok, ale chtěl bych ještě absolvovat dvousemestrální kurz angličtiny a rád bych také nenáročně pokračoval ve studiu teorie myšlení.

Zkrátka – jak říkám – navazující už je hodně o tom, že člověk dělá to, co ho baví (ve druháku jsou snad jen dva povinné předměty, zbytek si studenti volí podle toho, co je zajímá). A oni to ví a tak vás v tom podporují.

Apokalypsa v Olomouci

Je pondělní ráno a já jsem nucen neuvěřitelně brzy vstávat. Při pohledu z okna (zatím ještě) nevidím nic zajímavého. Nevidím totiž nic. Vypadá to jako relativně běžné podzimní ráno – celé město je zalito mléčně bílou ranní mlhou.

Ještě rozespalý opouštím domov a vyrážím do školy. Chodník je nezvykle zapadaný listím. Jako by tudy několik týdnů nikdo nešel. Podle obrysů v dáli rozpoznávám, kudy vede má cesta. Nikde nikdo a – co víc – místo jinak nemalého ruchu na přilehlých cestách slyším jen nějaké nerozpoznatelné hučení z dáli. Ve vzduchu je cítit prazvláštní pach.

Když se blížím k jedné z největších křižovatek ve městě, před sebou mám jen chodník po pár metrech končící kdesi v mlze.Vím, že někde tam padesát metrů přede mnou, někde v nedohlednu se nachází křižovatka. Začínám rozpoznávat světla semaforů.

Podle jejich uspořádání usuzuji, že auta mají zelenou a tak přidávám do kroku, abych ke křižovatce došel tak akorát, když jim padne červená a mně, jakožto chodci, zelená. Když v tom se zarazím. Z mlhy ke mě začnou vystupovat obrysy potácejících se postav. Přede mnou se rozestoupí asi takových 8 figur, které se ke mně pomalu, šouravě, blíží.

V ten moment mi hlavou proletěly snad všechny filmy o zombících, jaké znám. Říkám si – vlevo dům, vpravo obchod – není úniku. Musím jít dál. Přidám na kroku – stvoření napůl živá, napůl mrtvá se přece nedokáží pohybovat moc rychle.

Z mlhy na mě začnou vystupovat reflektory naprosto nehnutě stojících aut. Dle jejich umístění typuji, že stojí napříč celou křižovatkou a táhnou se až do nedohledna. Jako by se zastavil čas právě v momentě, kdy jeden směr má zelenou. Slyším souzvuk všech všech běžících motorů a odněkud z dáli houkačky vozidel IZS.

Podezřelá stvoření se mezitím blíží. Jeden z nich se pohybuje nezvykle rychle a tak získává o proti ostatním náskok. Už to není jen tmavší skvrna v mlze, už začínám rozpoznávat obrysy. Vypadá to jako postarší žena menšího vzrůstu s větší kabelkou, kterou nese těsně nad zemí. Na hlavě má zvláštní starobylý účes a přes sebe nějaký ošuntělý kabát.

Bez povšimnutí mě míjí. Lehce se ohlédnu přes rameno, jestli je tomu tak skutečně či zda-li ji například za sebou netáhne něčí střeva.

V ten moment mě již ovšem z druhé strany míjí vysoký muž, který lehce kulhá na levou nohu. A v pravé ruce si nese ošoupanou aktovku. Nic víc. Obdobným způsobem mě minou i zbývající.

Při pohledu na napůl rozbitou a v trávě ležící jinak majestátní ceduli informující o rozvoji této části města a na všudypřítomné nánosy listí, říkám si, že se asi moc dívám na americké filmy. Jasně, zombíci přece neexistují. A ti lidé, které jsem potkal byli prostě jen nakaženi nějakým přísně tajným vládním virem, takže se jim funkce mozku omezily jen na : „Jako každé ráno vstát a jít normálně do práce“.

Jak tomu je doopravdy si uvědomím, až když opravdu přijdu k semaforu a čekám na zelenou. Kolem mě sice dále naprosto bez povšimnutí kráčí lidé s kabáty a aktovkami a bez ohledu na semafory přechází cestu. Ale vidím, jak auta stojící v křižovatce se pomalu začínají dávat do pohybu.

A hlavně – vzpomněl jsem si na večer z předešlého dne. Večer, který by mohl nést označení: „předvečer olomoucké apokalypsy“.

Apokalypsa?
Apokalypsa?

Ten večer jsem totiž potkal nějakého člověka v reflexní vestě, jak obíhal tuto křižovatku a osazoval ji zákazy vjezdu. Osazoval zákazy vjezdu jednu z nejrušnějších křižovatek ve městě a hlavně – uzavřel tím asi kilometrový úsek olomouckého vnitřního obchvatu. Spolu s dalšími dvěma uzavírkami na této městské dopravní tepně se postaral o to, aby se z Olomouce (hlavně pak její jižní části) stalo jedno veliké parkoviště.

Od tohoto dne potkáte (v některých částech města) v ulicích až o polovinu více lidí, tramvaje a autobusy nestíhají. Přijít (přijet) někam včas jen naprosto nemožné. Nejrychlejším, nespolehlivějším a nejbezpečnějším dopravním prostředkem se stává chůze, kolo či osobní helikoptéra. Nehodovost vzrostla o stovky procent. Mám informaci o třech (což je obvyklé číslo na rok, ne na týden) (dobře, třetí s uzavírkou nesouvisí) kolizích a nehodách tramvají.

Sanitku či policii můžete slyšet či vidět minimálně dvakrát častěji než obvykle a snad každý den na obloze můžete pozorovat helikoptéru – ať už dopravní, tak záchrannou. A také mám pocit, že někteří lidé si dělají zásoby pro případ, že by byly vyprodány obchody.

I když se po prvním týdnu situace lehce stabilizovala, mnozí řidiči si budou peklo prožívat ještě následujících pár týdnů. A já doufám, že už nebudu mít to štěstí dostat se do situace jak vystřižené z libovolné post-apokaliptické počítačové hry či filmu.

A co vy? Také ráno potkáváte zobmíky, kteří jsou nuceni zanechat auta doma a šourají se v polospánku ranní mlhou do práce? A už jste si prošli novou pěší zónu?

Co se děje doma vám řekne aplikace HomeGuard

Odcházíte? Bojíte se, co se bude dít doma? Spusťte si aplikaci HomeGuard a máte po starostech.

Nu, nebudu to zbytečně natahovat. Začalo to tak, když mi začaly prázdniny. Dodělal jsem bakalářku a tak jsem se potřeboval „vrátit do normálního stavu“. To znamená z 30 hodin programování denně postupně přejít třeba jen na 5.

Štěkot In Absentia

Shodou náhod nám v té době na dveře zabušil soused se slovy, že ho ruší náš pes. Když nejsme doma. Tak jsem při příštím odchodu zapnul webkameru a po příchodu si projel záznam abych zjistil, co se doma děje, když tam nejsem.

Toto řešení napadne asi každého. Bohužel, kromě toho, že vám pak na disku zapáchá mnohdy několikagigový video soubor, nemáte moc možnost s tím, co se doma děje něco dělat.

Proto jsem přešel k opakovanému nahrávání kratších záznamů a jejich odesílání. Na odesílání jsem nakonec zvolil službu Dropbox, vzhledem k tomu, že je asi nejrozšířenější způsob jak zdarma, snadno a dostupně publikovat data.

Sepsat Bashový skript, který výše popsanou funkcionalitu bude obstarávat pak byla záležitost asi dvou hodin (myšleno včetně hrátek s UI a logováním). Bohužel, i když zbytku rodiny vysvětlíte, na co mají kliknout, aby „se to pustilo“, tak v momentě, kdy na ně vyskočí okno terminálu – byť vypisující potvrzující informace – rodina vytrhává ze zásuvky, skáče z okna nebo v nejhorším případě volá. No zkrátka rozhodl jsem se vytvořit grafickou nástavbu.

Vytvořil jsem tedy verzi 2 a to v Javě.

Příbalový leták

Po spuštění je načten konfigurační soubor. Pokud aplikaci spouštíte poprvé, je nutné aplikaci povolit přístup k vašemu Dropbox účtu. Jakmile povolíte přístup jednou, bude uložen a již jej nebude třeba vyplňovat znovu. Kromě toho se také uloží všechna nastavení, která změníte (intervaly nahrávání, názvy souborů a podob.).

Po prvním spuštění a potřebném přenastavení všech údajů pak už jen stačí aplikaci spouštět a rovnou zahajovat nahrávání. Nicméně doporučuji před každým spuštěním nahrávání do textového pole v pravém dolním rohu vepsat (a potvrdit stiskem klávesy Enter), kam vyrážíte. Pokud totiž nakouknete do adresáře aplikace, budete tak mít všechny záznamy přehledně uspořádané do adresářů.

 

Nahrávání

Pokud hodláte od počítače odejít, doporučuji klikat na „Spustit vše a skrýt okno“ namísto „Spustit všechny“. Aplikace se totiž skryje do systémové oblasti („dolní lišta“) a bude se plně věnovat jen a jen své činnosti.

Vzhledem k tomu, že se předpokládá, že s aplikací bude prováděna jen minimální manipulace (nastavování) a hlavní část její práce spočívá v nahrávání dat, byla navržena tak, aby po dobu nahrávání dat šetřila výkon počítače. To má za následek, že aplikace může působit pomalá.

Nastavení parametrů

 

Právě z tohoto důvodu doporučuji nechávat data nahrávat se skrytým oknem, protože pak vám „pomalost“ aplikace nebude tak bít do očí.

Pro šťouraly

Původně jsem aplikaci chtěl vytvořit značně modulární a rozšířitelnou. No, nakonec jsem se musel spokojit s vytvořením nějakého obyčejného API, díky kterému je teoreticky možné dodat další typ nahrávání (video, teplota?, průběh stahování, … cokoliv). Pro implementaci nových modulů slouží jako ukázka již hotové moduly pro focení a nahrávání zvuku.

Středobodem je rozhraní cz.martlin.homeguard.media.Media . Je třeba napsat MediaStreamProcessor , který na požádání vytvoří snímek/záznam (1 soubor k nahrání na Dropbox) (např. vyfotí fotku z webkamery). Dále je třeba vytvořit nějaký listener, který bude o průběhu informovat formulář (pokud není skryt) a případně i objekt s dodatečnou konfigurací (např. délka videozáznamu). To vše je poté nutné zaregistrovat ve třídách  MediasFooo a MediasToGui.

Vzhledem k tomu, že je aplikace open source, budu za každé rozšíření jen a jen rád. Jedna z věcí, která (a to určitě nejen) mně na aplikaci schází je podpora více webkamer – byť ji použitá knihovna webcam-capture přímo podporuje.

Také předpokládám, že nejsem zdaleka první, koho napadl potenciál mobilního klienta. Kromě grafického prohlížení záznamů by také mohl umožňovat změnu  nastavení nebo nahrávání úplně vypnout. Kdyby se našel androiďák/iOSař (bohudík Dropbox API „není“ implementované pro Windows), který se nudí, budu rád.

100% FREE DOWNLOAD HERE NOW

Upozornění: Spustitelná verze obsahuje záažnou chybu, kvůli které nejde spustit. Je nutné ji ji sestavit ze zdrojového kódu. Chyba bude co nejdříve opravena.
Spustitelný JAR soubor aplikace (zabalený do ZIP archivu) zde: Spustitelný soubor (HomeGuard.zip)

Poznámka: Pro spuštění je třeba mít nainstalovánu Javu (doporučená je verze 1.7). Stáhnout Javu.

Zdrojové kódy stáhnete zde: Zdrojové kódy (HomeGuard-src.tar.gz)