Nová adresa, nový start

Publikováno 01.11.2017 07:38, autor Vojtěch Sysel

Přestěhoval jsem se. Tedy já ne, ale tento blog. Z původní adresy kedysek.borec.cz, kterou jsem používal někdy od roku 2001 na novou vojtechsysel.cz. Obsah blogu zůstane stejný, ale slibuji, že budu psát pravidelněji, než jednou za rok… ale fakt :-)

Reinkarnace blogu

Publikováno 10.12.2016 18:03, autor Vojtěch Sysel

Dlouho jsem sem nepsal. Ano, vím to a je mi to blbé, ale bohužel jsem si už nenašel čas věnovat pár hodin týdně sepisováním aktuálních postřehů. A to ještě v češtině.

Už to budou dva roky, co jsem změnil práci a celkově i prostředí, ve kterém se pohybuji. Pořád sice pracuji v Brně, ale české kolegy jsem vyměnil za cizince a češtinu nahradil angličtinou. Potom následují ty divné momenty, kdy si večer při nákupu uvědomím, že ta paní pokladní je vlastně první člověk, se kterým se bavím česky.

Tato změna mi také navodila jisté schizofrenní pocity, kdy už opravdu nevím, kterým jazykem začít. Dojdu do neznámého prostředí a automaticky přepnu do angličtiny, i když to třeba nedává vůbec smysl, protože jsem jen někde na úřadě a paní na přepážce mi opravdu anglicky neodpoví, natož aby pochopila, co po ní vůbec chci.

Naučil jsem se, že cizinci to u nás nemají vůbec lehké, protože si spousta lidí myslí, že lze češtinu zvládnout za měsíc, dva a hrozně se diví, že po roce nejsou schopni plynně konverzovat. Jako pardon, ale oni jsou na dovolené ve Španělsku schopni si v restauraci objednat ve španělštině?

Před tím, než se stanu třicátníkem jsem si splnil sen a podíval se do Austrálie, nedlouho poté také znovu do spojených států.

A to je tak vše, dva roky v kostce. Dva roky co utekly jako voda. Slibuji, že budu psát častěji… možná.

Schizofrenní user-agent

Publikováno 06.03.2016 13:10, autor Vojtěch Sysel

Včera jsem si hrál s knihovnou, která umožňuje zjistit verzi prohlížeče, který používá čtenář webu. Pro ty co neví, každý prohlížeč tyto informace posílá v hlavičce požadavku o webovou stránku, na jehož základě lze návštěvníka případně identifikovat.

User-agent je řetězec, kterým se prohlížeče identifikují serveru. Sdělují mu jakou mají verzi, na jakém operačním systému běží a s jakými dalšími prohlížeči jsou kompatibilní. Dříve některé servery upravovaly obsah zpracovávané stránky právě na základě těchto parametrů, dnes už slouží jen k identifikaci verze prohlížeče například pro statistické účely.

Jelikož si ukládám informace o každém čtenáři, mám za těch pár let pěknou databázi těchto identifikátorů. Jinými slovy, mám spoustu testovacích dat a mohu říct na kolik je daná knihovna použitelná. Při jejich procházení mě zaujal jeden obzvláště povedený user-agent.

Mozilla/5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; NOKIA; Lumia 520) like iPhone OS 7_0_3 Mac OS X AppleWebKit/537 (KHTML, like Gecko) Mobile Safari/537 

Při pozornějším čtení si všimnete, že se jedná o Nokii Lumia 520 s Windows Phone 8.1, které používá IE Mobile 11. Toto by ještě bylo v pořádku, ale daný telefon se také identifikuje jako Android 4.0 a kdyby to náhodou bylo málo, tak také jako iPhoneiOS 7.0.3.

Jelikož se jedná už o velmi starý telefon, nezbývá se pousmát, že Windows 8.x nebyly schizofrenní systém jen z uživatelského hlediska, ale také uvnitř.

PHX: Závěr cesty

Publikováno 19.12.2014 23:40, autor Vojtěch Sysel

Texty o služební cestě do států dopisuji s více než půlročním zpožděním. Jak to už u mě bývá zvykem, dříve jsem se k tomu nedostal, ale o to víc mě baví zavzpomínat si na všechny mé zážitky.

Cesta zpět byla také bohatá na nečekané situace. Původní plán byl letět z Phoenixu do Dallasu, zde přesednout na let do Londýna, v Londýna na let do Vídně a z Vídně autobusem do Brna. V prvním případě jsem měl hodinu na přestup, v dalších hodiny dvě.

Co čert nechtěl, už první let z Phoenixu byl asi o půl hodiny opožděn, takže jsem v Dallasu sedl na Skylink a přejel na odletový terminál, kdy už byla dlouhá fronta. Bohužel se ukázalo, že letadlo bude minimálně o dvě hodiny opožděné a já nestihnu navazují let do Vídně. Ihned jsem se vydal řešit přebookování letenky, ale spoj o hodinu později se nepodařilo potvrdit, takže mi paní zabookovala spoj až v 10 večer z Londýna.

Tento fakt mě dost rozladil, protože to znamenalo, že bych do Vídně dorazil v jednu v noci a poměrně těžko bych se dostával do Brna. Nechal jsem to být, ale celou cestu jsem přemýšlel, jestli svůj původní let přeci jen nestihnu.

Do Londýna jsme nakonec dorazili jen asi o hodinu a půl později. Navštívil jsem tedy místní informace, kde mi pán po několika minutách bouchání do klávesnice sdělil, že moje původní letadlo na mě čeká, že neví co ta paní na přepážce v Dallasu dělala a že mám rychle běžet do brány 28, že mi ještě na minutku letadlo pozdrží.

Stylem Foresta Gumpa jsem tedy prokličkoval terminálem k bráně 28, kde se na mě už podezřívavě dívali lidé v přistaveném autobuse. Naštěstí jsem nebyl jediný, komu byl umožněný pozdní příchod, takže jsme ještě dalších 10 minut čekali na postarší manželský pár. Nicméně jsem si mohl oddechnout, protože jsem byl na cestě do Vídně a pořád jsem stíhal již zamluvený autobus.

Není to jen počasím

Publikováno 19.12.2014 23:03, autor Vojtěch Sysel

Posledních pár týdnů jsem byl v práci dost mrzutý. Měl jsem za úkol upravit tool napsaný v Nette, což samo o sobě znělo jako poměrně jednoduchý úkol, jelikož Nette používám asi 3 a půl roku. Byl tu ale jeden háček. Autorem toho toolu je člověk, který rozumí problematice, kterou daný tool řeší, ale vůbec neumí programovat. A co víc, bohužel se ani nesnažil pochopit, k čemu Nette, potažmo MVC framework vlastně slouží.

Jak jsem se postupně dostával do již napsaného kódu, bylo mi jasné, že se tento jednoduchý úkol postupně mění v peklo. Všechny třídy použité v projektu jsou statické a navzájem natolik provázané, že je nelze rozumně použít, aniž by bylo nutné je celé znovu přepsat. Tento fakt stěžuje, či úplně znemožňuje jakékoliv testování, které je v případě rozšiřování neznámé aplikace kritické.

Další věc, která mě velmi překvapila, byla organizace jednotlivých pod-aplikací, čili částí aplikace, které mělo být možné používat samostatně. Tyto aplikace nevyužívaly Single entry point (index.php) a nebyly navrženy jako moduly, ale byly to nové instance Nette aplikace. I když v tomto případě lze těžko mluvit o Nette aplikacích, protože jejich struktura je typický špagety kód, kde je v jednom souboru smíchaný funkční kód se šablonou.

Jako třešnička na dortu jsou zde komponenty. Ano, přesně ty komponenty, kvůli kterým mám Nette rád. Původní autor totiž vůbec nepochopil, k čemu jsou určeny a znovu vše spatlal do jednoho souboru. Ba co víc, jednotlivé komponenty od sebe dědí, ale základní třída obsahuje statické metody s definicemi použitými ve svých následnících (například filterText a filterImage, které jsou použity v třídách TextComponent a ImageComponent).

A teď se dostáváme k AJAXu. Ten lze v Nette také řešit naprosto elegantně pomocí handlerů přímo definovaných v komponentě. Ne však pro našeho programátora. Ten vytvořil další pod-aplikaci nazvanou ajax, ve které jsou skripty pro jednotlivé ajaxové požadavky. Bohužel tyto skripty nevyužívají Nette a ani již vytvořené komponenty a vše si znovu dělají samy po svém.

V neposlední řadě mohu zmínit cachování, tvorbu odkazů, práci s vstupními proměnnými, práci se session. Prostě vše je použito naprosto nevhodně, přímo proti proudu a všem doporučeným praktikám. A co původní autor? Dostal ocenění za výbornou práci a šel pracovat do jiného oddělení.

A teď už asi chápete důvody mé frustrace.