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)

Básníci z celého světa? O patro výš

Víte, že existuje místo, kde se scházejí všichni básníci z celého světa? Opravdu úplně všichni? A že to není žádný luxusní hotel na Manhattanu či L.A. ani malá zapadlá kavárnička v Paříži?

Opravdu. Takovéto místo existuje a je blíže, než by se vám mohlo zdát. Nachází se kousek od centra Olomouce.

Pamatuji, když se u našeho domu zateplovala pouze severní strana, aby se ušetřilo. Pamatuji, také, jak se dokonily nové rozvody elektřiny do bytů, takže všude po chodbách se můžete kochat holými kabely. Vzpomínám také na to, když nám montovali bezpečností kamery. Asi je montovali přímo nějací lupiči, protože jsou v domě asi jen na okrasu a z jejich záznamů by něco vytáhla tak možná kriminálka Miami.

Také pamatuji, jak se do sousedního bytu přistěhoval jistý Gregory J. Chandler se svou partnerkou Frances M. Finn, kteří se nám lámanou češtinou představil jako „Greg a Frenčeska“ a řekli, že tady otevírají „hostel“.

U zrodu byl i Seifert s Erbenem

V té době jsme nikdo neměli naprosté tušení, co že to ten hostel je a jak to jako má fungovat. Pokud se nepletu, v třípokojovém bytě, který si pronajali, začali pár místností využívat jako příležitostnou noclehárnu pro turisty. Aby byl hostel snáze k nalezení, zazvonil nám onehdá na dveře Greg s kresbou v ruce a vědom si toho (však víte, jak se máma dokáže rozpovídat), že moje sestra umí dobře malovat, ji požádal, aby tuto kresbu převedla do formy velikého plakátu, který byl poté vylepen na dveře onoho bytu.

Tato kresba, symbolizující veselého a tak trochu bláznivého básníka, s policí se Seifertem, Erbenem a dalšími předními českými básníky v pozadí, se stala symbolem tohoto místa minimálně do chvíle, kdy píši tento článek (červen 2014). Básník se stal symbolem místa, které získalo naprosto příznačný název „Poet’s Corner“, tedy česky „Básníkův koutek“, jak by si jistě každý domyslel. Místa, kam přijíždí turisté rozjímat nad krásami Olomouce podobně jako básníci nad … vším  možným, však víte.

To jsme ovšem začali chápat až poté, co se na chodbách našeho domu začali pohybovat zvláštní lidé. Nejednou jsem slyšel od návštěv něco ve stylu: „Ty vole, s váma tady bydlí nějakej černoch?!“.

Dobré morning

Často se stávalo, že jste na chodbě potkali člověka, který nejen, že vás nepozdravil, ale dokonce se na vás díval docela vyděšeně, když jste jej pozdravili, jako by snad myslel: „To mluvíte na mě?“, „Co po mě chcete?“ či „Já nic nevím“.

V lepších případech onen člověk pochopil, že mu asi přejte dobrý den, a tak vám odpověděl. A to byla první kouzelná věc na hostelu v sousedství. Jdete po schodech a vidíte skupinku lidí, které neznáte. A hlavu vám najednou zaplní myšlenky: „Co jsou asi tak zač?“, „Jsou to studenti?“, „A odkud asi tak jdou?“, „A odkud asi tak vůbec jsou?“. Máte tak možnost zahrát si na Jana Dítěte ze slavného hrabalova románu Obsluhoval jsem anglického krále a tipovat si původ hostů – a jejich rodný jazyk a následný pozdrav.

Někdo čte na záchodě noviny – a někdo základní české fráze („Dobrý den“, „Děkuji“ a „Jedno pivo, prosím“) vylepené na zdi.

Bohužel na Jana Dítěte ani zdaleka nemám, a tak četnost situací „Dobrý den – Hi“, či „Hello – Dobrý, eh, totiž Hi“ se mi i po těch letech podařilo snížit jen o pár procent. Situaci vám občas neulehčily ani na první pohled patrné prvky. Dokážete představit ten trapas, když asijskou slečnu pozdravíte, řekněme japonským „Konýšuá“ a ona na vás: „Co, prosím?“.

Snad jedinou jistotou byly irské kilty. A nebo můj univerzální globální pozdrav (spojení několika pozdravů v různých světových jazycích do jednoho slova). Bohužel, obávám se, že na jeho zápis by byla i fonetická abeceda krátká. To se zkrátka musí slyšet.

One more to go!

Druhým ze symbolů setkání na schodech se stala věta: „One more to go“. To dokonce takovým, že byla jednu dobu vypsána spolu s podobiznou usmívajícího se básníka na stěně.

Když si představím, jaké to je cestovat přes půl planety, poté využít služeb řekněme Českých drah, poté se vydat správnou tramvají a trefit správný směr ze zastávky, dojít ke vchodu, zazvonit, zjistit, že na druhém konci opravdu někdo mluví anglicky a to poslední, co vás čeká, je vyjít pár pater ke svému pokoji. Často tak potkáte skupinku turistů s krosnami většími než oni samotní, jak v každém patře zoufale okukují zvonky a doufají, že už konečně jsou na svém místě, neboť vypadají, že by v dalším patře asi vypustili duši.

V tom jdete kolem vy a jejich oči na vás křičí: „Prosím, řekněte, že to bylo o patro níž a že jsme to zašli. Nahoru už né“. Ten výraz, když jsem ukázal na schody nahoru, který jsem mohl pozorovat – asi jak když pětiletému dítěti vypnete televizi a pošlete jej spát.

Ovšem těmi nejzajímavějšími zážitky se pochopitelně staly ty noční. Kdo by se vydal na výlet do studentského města a zůstal večer sedět doma, na ubytovně? Ano jistě, asi každý kdo si absolvoval výše psanou strastiplnou cestu. Ale jinak?

Kolikrát jsem potkal v noci sedět na schodech skupinku v té době  sousedů, kterým se prostě nechtělo spát? A kolikrát jsem jim pomáhal trefit se s klíčem do zámku? A hlavně – kolikrát jsem v některé z krásných olomouckých hospůdek či vináren potkal někoho z hostů?

Také vzpomínám, jak se dvojici kamarádů ztratili ostatní a to pochopitelně ti, kteří měli klíče. Ten společensky unavenější  se posadil na schody a usínajíce v sedě mrmlal pořád, že na to kašle, že si ustele tady, na chodbě, před vchodem a z posledních sil se začal odsouvat do kouta, kde se začal choulit do klubíčka. Druhý se mu v tom celou dobu snažil bránit se slovy, že se seberou a vydají se je hledat někde do města. Pokud se dobře pamatuji, jejich kamarádi došli shodou náhod pár desítek vteřin po nich.

Beautiful hangover

Jedná se zkrátka o naprosto jedinečné místo, místo, kde se setkáte s národy celého světa. Takže když budete mít na letišti 20 hodin čas, proletíte své kontakty na facebooku a určitě najdete někoho, s kým můžete zajít na kafe. Ať jste v Singapuru nebo v Riu de Janeiro. A nebo v Sydney. V Kanadě nebo Číně. Na Novém Zélandu nebo v Indii. V Jižní Africe či Egyptu.

In @Rio #waiting for plane. Anyone #coffe?

A o Evropě ani nemluvě.

A ráno se probudíte, bolí vás celé tělo, od hlavy (z litrů a litrů vína či desítek půllitrů piva) až po nohy (těch nachozených kilometrů!), vy se balíte a u toho v hlavě lovíte, co se dělo předchozí noc a vůbec celý den a podobně jako s historkou o starém mlýnském kole ve filmu Na samotě u lesa si říkáte: „Tak to si musím zažít někdy určitě zase“. A do Olomouce, jednoho z nejmalebnějších měst v Evropě (netřeba dodávat zdroje, určitě na tuto informaci snad každý narazil), se prostě musíte někdy zase vrátit.

I když zakladatelé Poet’s Corner jsou již dávno ve své rodné vlasti a hostelu teď vládne někdo jiný, myslete na to, že až někdy půjdete kolem toho domu na kraji centra města, toho domu, který má nade dveřmi velikými bílými písmeny napsáno „HOSTEL“, nebo si třeba budete hledat ubytování například na festival AFO, vzpomeňte si, že právě míjíte koutek, kde se setkávají „básníci“ z celého světa.

Jak jsem (nena)psal bakalářku

Jeden né zrovna veselý příběh jednoho studenta …

Jako každý třeťák mě čekala bakalářská práce. Abych pravdu řekl, určitým způsobem jsem se na to i těšil, protože jsem věděl, že budu dělat něco, co mě baví, co mám jako koníček – a ještě za to dostanu titul.

Předložil jsem mému vedoucímu práce návrh tématu, ten mi jej naprosto celý zkritizoval a navrhl mi vlastní. Kývl jsem mu na to, neboť se mi i toto téma líbilo.

Z mnohých důvodů však zde nemohu být konkrétní a zmínit přesné zadání a téma práce. Stejně tak nemohu zmiňovat moc implementačních detailů. Co však říci mohu je fakt, že se mělo jednat o webovou aplikaci vytvořenou v Javě.

Téma jak z pohádky

To byly koneckonců mé první dva požadavky – webová aplikace a to v Javě. Jako další jsem si dal za cíl, použít v práci i něco víc. V žádném případě jsem se nechtěl zařadit do skupiny těch, co opouští katedru informatiky s bakalářským titulem a tématem jako například „Mobilní aplikace – osobní trenér“. Dokonce, někoho, jehož téma zní „Implementace elektronického obchodu v PHP“ bych označil za ostudu katedry.

Ale o to teď nejde. Chtěl jsem tím naznačit, že u mé bakalářské práce bych se nespokojil s běžnými programátorskými nástroji. Mé téma proto obsahovalo nastudování si určité funkcionality (API) (když už ne téma z oblasti teoretické informatiky), se kterým se člověk moc často nesetká. A na znalosti tohoto API pak měla být vystavěna celá práce.

Samozřejmostí měla být použitelnost aplikace. Ihned po dokončení má být práce nasazena do provozu a věřím, že bude určitě používána.

Téma tedy přesně padlo do mého vzorce pro ideální bakalářku. Povím vám nyní, jaká byla má představa průběhu roku – její implementace.

„Jo, bezva, super, perfektní. Už se těším, až se do toho pustím.“

Když jsem práci dostal zadanou, předpokládal jsem, že do konce zimního semestru, nejpozději začátkem ledna, budu mít hotovou core knihovnu (tedy jednoduchou aplikaci implementující nastudované API). Dle mých odhadů a vzhledem k rozvrhu jsem si plánoval pracovat celkem volným tempem a poslední rok studia si užívat.

Letní semestr jsem počítal, že budu pracovat na webové aplikaci a vzhledem k dostatečnému množství času, i chodit do práce. Odevzdání práce jsem předpokládal s asi měsíční rezervou a poté se už jen 5-6 týdnů připravovat na státnice.

Normy plníme na 118%. Mínus 118%

Když jsem pracoval na zápočtovém projektu do předmětu Dovednosti vývojáře, ukázalo se, že podtitulem onoho projektu mohlo vcelku reálně být „menší databázová aplikace většího rozsahu“. Říkal jsem si: „Tak fajn, databázi pudu potřebovat i v bakalářce, tak to rovnou udělám jako webovou aplikaci a pak to jen upravím a budu mít ušetřenu půlku práce na bakalářce“. Dával jsem si proto na tomto projektu docela záležet.

Bohužel – můj návrh databázového frameworku nebyl úplně ideální a tak mi bylo jasné, že pro účely bakalářské práce budu muset vytvořit kompletně nový. Stejně tak, vzhledem k tomu, že jsem měl drobné komplikace s používaným webovým frameworkem, nabral jsem neskutečné zpoždění a tak i tu webovou aplikaci jsem solidně odflákl („bakalářka se nějak poddá, hlavně ať mám DOVY“).

Ve výsledku jsem tak na mé bakalářské práci začal pracovat až někdy v zápočtovém týdnu. Asi není třeba dodávat, že slovo „užívat si“ pro mě bylo vzdálené asi jako Paris Hilton a cena Grammy.

„Dobře, dodělám to  a přijdu Vám to ukázat.“ Od té doby mě vedoucí viděl jen na chodbě

Po zkouškách, které jsem nakonec nějak zázračně udělal (znáte to, čím méně se učíte, tím lépe to dopadá), jsem pokračoval v práci. Vedoucí mi mou core knihovnu opět zkritizoval slovy: „No, jako jo, pěkný, super, ale když …“. Řekl jsem mu, bylo to koncem ledna, že to dodělám, udělám základ webové aplikace a přijdu mu to ukázat. To se nakonec nikdy nestalo.

V letním semestru jsem měl poněkud nepraktický rozvrh – do školy jsem musel 3x až 4x do týdne (což je při 3 předmětech opravdu frustrující). Takže přes týden jsem byl téměř nepoužitelný. Sotva začalo pondělí, už byl pátek a já zjišťoval, že jsem neudělal téměř nic.

Web snadno a rychle!

Koncem března, se na mém facebooku objevil příspěvek, kde zmiňuji, že s dvou a půl měsíčním zpožděním mám konečně hotovou core knihovnu. Popisoval jsem ji slovy: „konzolová aplikace spustitelná pomocí sedmiřádkového příkazu o 8 parametrech, která zdá se i funguje“. Bohužel to poslední se mi podařilo o pár týdnů později vyvrátit.

V rychlosti jsem implementoval databázi a vrhl se na webovou aplikaci. Vzhledem k tomu, že jsem webovou aplikaci v Javě nikdy pořádně nedělal (a když už, tak buďto jen nějakou rychlovku – jako výše zmíněný projekt do DOVY), šlo to pomalu a nefungovalo to. Začal jsem zjišťovat, že webový framework, který používám, obsahuje opravdu spoustu chyb. Ty mě postupně tlačily do kouta –  a problémy jsem stále více a více řešil metodou: „Tak dobře, hold se bez toho uživatel bude muset obejít. Nemám čas vymýšlet, jak to udělat jinak, aby to mohlo fungovat.“.

Ale nevzdal jsem se. Nedokázal jsem si představit, že já, upocený a unavený potkám spolužáka vítězoslavně mávajícího bakalářským diplomem, na kterém je napsáno kdesi v rohu: „Implementace internetového obchodu v PHP“.

Pracoval jsem na 180%, spánek pro mě znamenalo jít si na dvě hodinky lehnout po snídani a hrnku silné kávy. (Dokážete si představit, jak jsem vypadal, když jsem zjistil, že nám káva došla?) Jakmile jsem opět narazil na něco, co nefunguje, přešel jsem do módu Hulk a nadával na celej svět.

„Dobré ráno, jdu spát“

Do toho všeho mi docházela RAM, takže počítač se začal víc než nepříjemně sekat. Pak ještě v lampičce praskla žárovka, začal blbnout mobil a asi týden jsem se potýkal s bolestí zad, protože se mi zlomila počítačová židle a já si musel zvykat na máminu.

Stavy zoufalství a vzteku se střídaly asi jak nálady bejvalky v období rudého klína. Do toho všeho jsem pozoroval i zoufalé obličeje mých nejbližších, kteří jediné, co mohli, tak smutně konstatovat: „Kéž bych ti tak mohl(a) nějak pomoct …“. Bohužel, zde byl i můj vedoucí práce v koncích (a to je na celé katedře na toto téma největší – pravda, jediný – odborník).

Zpočátku jsem všem v okolí říkával: „Mám tam tak na minimálně dva měsíce práce a za 4 týdny mám odevzdávat.“. Přemýlal jsem nad tím, jestli je možné, abych to mohl stihnout. Ne. Začal jsem uvažovat o tom, že to nestihnu. Začal jsem se s touto představou smiřovat. K dobru mi mělo být, že v tom nejsem sám. Z mých kamarádů nevím asi o nikom, kdo by šel v řádném termínu.

A co kdyby to byla pravda?

Vedoucí práce to přijal s pochopením. Znovu objevuji, jaké to je být vyspaný, umytý a opět zjišťuji, že kolem mě jsou nějací lidé. Doháním studijní agendu (fajn zjištění, že máte za tři dny odevzdávat index).

Velmi pomalu se začínám učit na státnice. Mám na to tři týdny. To snad zvládnu. V lepším případě začnu po večerech připravovat bakalářku na změnu frameworku.

A tak mi v tuto chvíli nezbývá než doufat, že to všechno nějak vyjde. Že jak tam přijdu, tak si nevytáhnu zásobníkové automaty. A nebo II. normální formu. A že ti, co ví naprosto přesně jak se implementuje e-shop v PHP poznají hněv docenta Vychodila při otázce: „Víte vy sakra vůbec, co je to append?“.

Jedné páteční noci …

To jsme tak jednou po jedné společenské akci skončili v jednom nejmenovaném restauračním zařízení. Zprvu opravdu za účelem restauračním – najíst se.

K dobrému jídlu (dobře, vzhledem k navštívenému podniku si toto označení mohu dovolit) bylo samozřejmě i něco k pití. A že se jednalo o pátek, a ještě k tomu večer, málokdo se držel nealka.

Tou dobou se už většině z nás honilo hlavou: „co s načatým, a ještě navíc pátečním, večerem?“. Se slečnami už to po pár deci různých méně či více alkoholických nápojích a faktu, že mají za sebou nějakou tu zkoušku, začínalo docela šít, jako by snad nedejbože chtěly jít tančit.

Já se snažil být obezřetnější, neboť zkoušky jsem slavil prakticky celý týden a říkal jsem si, že bych si mohl od toho slavení dát tak trochu „voraz“. Ale zase na druhou stranu, jak jsem viděl holky, které už se jednou nohou, boky, pasem, hrudníkem a většinou i oběma rukama viděly někde na tanečním parketě, začal se mi tento plán líbit.

Ze studijních důvodů, jak tomu říkávám, jsem se totiž docela dlouho neměl šanci někam takto dostat. Na druhou stranu jsem si byl naprosto vědom, že musím být přece jen další ráno použitelný. Než jsem stihl cokoliv, už jsme byli na cestě.

Usadit se, doplnit tekutiny z náročné (asi 150 metrů dlouhé) cesty a zjistit, že je tam nezvykle mrtvo. Zprvu jsem si říkal: „To už jsem tak dlouho nikde nebyl, že už mezitím lidi v pátky večer přestali chodit tančit?“ Letmým pohledem na čas jsem se uklidnil – bylo totiž nezvykle brzy.

DJ pouští už několikátý hit tohoto roku. Chce to rozhýbat. Vyrážíme na parket. Tančíme.

party_2http://www.martlins-web.tode.cz/wp-content/uploads/party_2.jpg

Asi po 3,26 nanosekundách se na mě vrhá jedna rusovlasá slečna. Pro představu asi takovým způsobem, jakým se vrhá například student Matematicko-fyzikální Fakulty nebo Aplikované Automatizace (však víte) na libovolnou slečnu, která mu řekne: „Tak večer“. Nevadí, vracím ji zpět mezi její kamarádky. Půl láhve do mě a přišlo by mi to asi ok. A opět tančíme.

Přicházejí další lidé. Jdeme se napít – měníme zasedací pořádek u stolu. Opět jdeme tančit. Tančíme. První ztráta. Kamarádka se dala do řeč… do tance s nějakým mládencem. Necháváme ji v tom a jdeme si sednout. Opět změna zasedacího pořádku. Pozorujeme je. Pozorujeme rusovlásku v kruhu asi čtyř mužů. První pokus o sbalení kamarádky selhal. Jde si sednout. Jdeme tančit.

Tančíme. Zdravím se s kamarádem. Vidím, že není sám, tak mu jen sladce popřeji hodně štěstí a plácnu přes pozadí. Nějak se postupně ztrácíme. Jdu si sednout. Brčkem lovím ze dna skleničky poslední kapky čehokoliv k zahnání žízně. Jdu se napít, tentokrát už sám. Někde v hlubinách parketu pozoruji mou skupinku. Odkládám sklenku a jdu za nimi. Další písnička, kterou hráli, když jsme přišli. DJ chce udržet lidi na parketě. Jedéééém!  Pozoruji další personální ztrátu. Jdu pozdravit kamarádku. Ano, opravdu to byla ona, nespletl jsem se, ještě vidím. Měl bych doplnit hladinku.

Jdeme se tedy napít. Náhle zjištuji, že další runda bude tak možná akorát pro mě. Má peněženka měla počítat i s možnou afterparty – i když to zprvu vypadalo jen na obyčejnou a slušnou společenskou akci. Kalkuluji, co si dát, abych do půlhoďky neumřel žízní. U tyče tančí slečna, která si evidentně neuvědomila, že její šaty se jí vyhrnuly do podoby trošku delšího trička. Nechci skupince asi 20 chlapíků kolem ní kazit zábavu, abych ji nějak skromně naznačil, že něco není v pořádku. Chtělo by to asi víc alkoholu. Rusovláska opět v obležení několika chlapíků. Začínáme uvažovat o uzavírání sázek na toho, kdo ji dostane.



Koukám, že sedím téměř sám. Říkám si, kde jsou sakra všichni? Oběhnu celý podnik, v různých částech naleznu různé části mé skupinky. Když se vracím ke stolu, zjišťuji, že už tam nezůstal vůbec nikdo. Naposledy prohrábnu brčkem led na dně skleničky, zazní typické „zasrčení“ jakožto signál, že už opravdu nic kapalného neobsahuje. Jdu tedy domů.

Obcházím podnik, slušně se omluvím každému mládenci, který je s některou mou kamarádkou (a naopak), že opravdu velmi nerad ruším, popřeji jim všem pěkný zbytek večera, noci i rána a poté se odporoučím. Dívám se, rusovláska stále ještě váhá a točí se v kroužku několika chlapíků.

V šatně se spolu se mnou s ochrankou loučí i legenda olomouckého nočního života, fantomka s růžemi, květinová paní. Slyším jen: „Ano, ano, naschle, naschledanou, naschle, naschle, dobrou, dobrou. Nazdar, kopřivo.“

Jdu ulicemi města. Říkám si, že chodník na náměstí by mohl do muzea, protože jak se jsem nedávno zjistil, i zvracení už je dnes umění. Kolem mě kličkují lidé pojídající slavný „gyros od řeka“. Nemalá kaluž krve, kterou jsem postřehl těsně před tím, než jsem do ní minimálně do rána zvěčnil otisk své boty rozhodla. Konečně mám zase o čem psát! To jsem pak ještě utvrdil příspěvkem na facebook a šel spát.

Vskutku mile strávený páteční večer. Všichni prý přežili a i já byl další ráno celkem použitelný.

 

Rok 2013

Nebudu ovce, nepůjdu s davem a jako snad každý blogger na přelomu roku vyvěsím na svůj blog seznam předsevzetí, plánů, přání či něčeho podobného. Já na to jdu z opačné strany – pokusím se shrnout rok předešlý.

Ale kdo mě znáte, tak si jistě říkáte, že ani to u mě není nijak obvyklé. Ano, máte pravdu. Ani toto ve zvyku nemívám.

Jeden z těch menších důvodů, proč tato slova vůbec píši, je ten, že jsem si řekl (ticho! slovo „předsevzetí“ už nechci slyšet!), že začnu víc psát, protože napsat vždycky dva články po zkouškách, často na téma, které bylo aktuální dva měsíce zpátky opravdu není ideální. Takže pro začátek píši toto, no a znáte to – jak na Nový rok, tak po celý rok…

R. I. P. 2013

Ale – nevím přesně proč, ale loňský rok (myšlen pochopitelně rok 2013) byl v něčem jiný, než roky předešlé, byl pro mě plný změn. Možná to bylo tím, že na jeho sklonku jsem překlenul věk, jež je roven celočíselnému děliteli (mým oblíbeným číslem) čísla 42, tedy jak jistě víte, odpovědi na Základní otázku života, vesmíru a vůbec. Možné je, že za to mohl také konec světa, který měl nastat pár dní před jeho začátkem.

Celé to asi začalo – a málem také i skončilo na mé Alma Mater – ve škole. Když jsem v lednu roku 2013 udělal jednu zkoušku téměř bez učení a s komentářem zkoušejícího, že prakticky nějak takto to má vypadat (podrobněji v článku o mém druhém ročníku na UP), říkal jsem si, že proč ne. Když jsem obstojně prošel zbytek zkouškového v zimním semestru a stejně tak i úspěšně zakončil letní semestr tak jsem měl opravdu důvod k radosti.

Jak ve výše zmíněném článku píšu, škola byla opravdu velmi náročná. Dlouhé noci strávené u počítače se pro mě staly denním (ač celkem tvrdým a často plísní zapáchajícím) chlebem, takže něco takového, jako, že se mi letos po několika letech podařilo začít alespoň trošku sportovat pro mě bylo opravdu velmi velikou a nepochybně změnou.

A když už nebyla škola, tak byla alespoň práce. Podařilo se mi získat skvělou práci, jak máma vždycky říkává „v oboru“, ale pro mě to byla docela rána. Asi každý absolvent si nejednou povzdechl, jaké to je dostat se z onoho akademicky dokonalého světa, kde neexistují zákony reality a věta: „Na tohle *er!“ do světa praxe, kde je vše úplně jinak. Takže přes den sedět v práci a večer sedět doma a učit se to, co jste se ve škole nenaučili.

Když se však zamyslím nad tím, jak jsem vlastně k této práci přišel, cítím drobný úsměv. Kromě toho, že to byla celkem úsměvná shoda náhod, tak za tím stojí jeden z lidí, které jsem měl tu čest letos poznat. Letos, ostatně jako každý a jako každý rok, jsem poznal spousto nových lidí. Mnozí z nich se stali mými blízkými přáteli, podobně jako někteří mí blízcí přátelé se stali ještě bližšími.

Na druhou stranu, jsem o několik přátel přišel. V lepším případě jen, jak já říkám, z časově-prostorových důvodů. Jak to tak bývá, času je i tak málo, na tož, aby se člověk mohl vídat se všemi svými přáteli. Obdobná situace nastává, pokud se vaši přátelé nachází třeba stovky nebo tisíce kilometrů daleko.

Ale tak, jak nemívám moc ve zvyku dělat si nepřátele, nebo dokonce se s lidmi obecně rozcházet ve zlém, tak letos jsem k tomu měl opravdu hned několik příležitostí. A o situacích, kdy jsem viděl, že někdo z mých blízkých dělal něco špatného a nedokázal jsem s tím něco dělat, nebo dokonce jsem sám věděl, že v tom mám prsty, ani nemluvě.

Aby toho nebylo málo, tak se rok rozhodl se mnou rozloučit ve velikém stylu a pod vánoční stromeček mi nadělil krásnou angínku. Takže mé poslední vánoce s rodinou, poslední (tedy ty nejlepší a nejepičtější) akce a příležitosti, užít si poslední dny roku v kruhu svých bližních jsem strávil v posteli. O tom, že sám, nebo jen s notebookem ani nemluvím (nechybělo moc a i tyto řádky bych psal v posteli).

„Alespoň jsem si asi tak po 10 letech opět prožil, jaké to je být na Silvestra „s nulou“ v krvi“

Rok to byl opravdu nabitý, plný nových známostí, nových lidí, nových kontaktů – a v neposlední řadě plný nových zkušeností. Jsem zase o něco chytřejší, v roce právě začínajícím už vím, na co si dávat pozor, čemu se více věnovat, co bych měl omezovat a vůbec – co udělat jinak, než loni.

Teď už nezbývá, než si nasadit helmu, natáhnou rukavice, nastartovat, šlápnout na plyn a vyrazit vstříc novému roku a doufat, že do dalšího roku dojedu ve zdraví.

Dojedu? Pardon, dojedeme!

 

Vážení čtenáři, děkuji Vám tímto za důvěru a čas strávený zde, na m@rtlin’s webu, a přeji vám co nejvíce úspěchů v roce 2014.

Moje další utilitky, především v Javě

 

Upozornění: Stále vyvíjím různé prográmky, aplikace a knihovny. Jen už neudržuji tuto stránku aktuální. Sledujte můj github!

Co vám budu povídat – prostě jsem přešel na Javu. Ale fak to už asi víte. Kromě větších (ze školních například Ročníkový projekt) prací si občas v Javě vytvořím i nějakou tu (konzolovou, samozřejmě) utilitku, která je moc složitá (nebo se mi s ní zkrátka nechce pitvat ;-)) na Bash nebo C. Tady je najdete, ke všem dodávám pochopitelně i zdrojové kódy:

Simple XML Breaker

Tento program vznikl pro účely testování ročníkového projektu a jeho ošetření možného chybného vstupu – XML souboru s daty (s uloženou hrou). Na výběr máte několik možných útoků (například odstranění náhodného řádku, vložení nesmyslného atributu nebo celé značky).

Simple XML Breaker zdrojové soubory

Simple XML Breaker spustitelný jar

 

plain2beamer

Mívám ve zvyku si psávat poznámky jako odrážky do běžného textového souboru, jen tak ve vimu (otevřít vim je pro mě záležitost asi 5 kláves). Nyní jsem však potřeboval sestavit LaTeXovou prezentaci v beameru – právě z těchto poznámek. Tak jsem si řekl, že začnu používat jednotný styl pro psaní těchto mých poznámek, které pak tímto programem přeložím do *.tex souboru, který poté mohu vysázet do *.pdf prezentace.

Například, dostal jsem přiděleno zorganizovat oslavu strýčkových narozenin. Sepsal jsem si tento seznam poznámek, který jsem si programem plain2beamer přeložil do tohoto texovského souboru a ten si nechal vysázet do úhledné pdf prezentace, kterou mohu prezentovat na některé schůzi organizačního výboru.

Původní verze:

plain2beamer zdrojové kódy

plain2beamer spustitelný jar

Verze 2.1 (a novější, pokud kdy bude):

Na githubu. Pozor, má trochu jiný formát (viz github).