Archiv rubriky: Vysvětlení

Pokud nějaký comics nechápete, tady naleznete jeho vysvětlení.

Vysvětlení 1343 - Manuály

Dnes asi postačí vysvětlení pouze k mouseover textu, zbytek je pravděpodobně dostatečně srozumitelný.

Sudoers je konfigurační soubor v *nixových operačních systémech (tzn. například v Linuxu), ve kterém se definuje, kteří uživatelé či skupiny uživatelů mohou používat příkaz "sudo", tedy jednat coby systémoví administrátoři. Editace tohoto souboru není (na rozdíl od většiny jiných konfiguračních souborů v těchto systémech) tak docela triviální záležitostí.

Manuálová stránka je pak v těchto operačních systémech standardním nástrojem nápovědy k valné většině příkazů a programů, přístupným prostřednictvím příkazu 'man'.

Manuálová stránka souboru sudoers je podobně jako formát souboru samotného poněkud svérázná, jelikož obsahuje zmíněného "stručného průvodce EBNF", tedy "rozvinutou Backusovou-Naurovou formou" zápisu gramatiky programovacích či jiných jazyků. I z toho důvodu má tato manuálová stránka proto obvykle něco kolem 1700 řádků a celé řadě uživatelů patrně více problémů způsobí, než by řešila.

Vysvětlení 1340 - Jedinečné datum

Dnešní comics si dělá legraci z lidí, kteří přikládají zvláštní význam technicky vzato zcela nezajímavým kalendářním datům, respektive na ně upozorňují jako na něco zcela výjimečného, co se nebude opakovat (relativně nedávným příkladem takového data byly například dny 12. a 20. prosince 2012). Na základě toho jsou některá data velice populární například co se termínů svateb týče.

Protagonista comicsu a potažmo Randall sám upozorňují svým specifickým způsobem na skutečnost, že žádný z dní se v našem stávajícím kalendářním systému nebude nikdy opakovat (a současně tím nenápadně odkazuje na jeden z předchozích stripů, který se zápisem data zabýval).

Mouseover text pak zmiňuje nadaci Long Now, která se mimo jiné snaží vyřešit omezení našeho stávajícího kalendářního systému a pro zápis roku používá pět číslic místo čtyř. Pokud se lidstvo dožije Silvestra roku 9999, bude totiž potenciálně čelit stejným problémům, s jakými jsme se setkali na přelomu let 1999 a 2000 - většina našich systémů nepočítá s možností zápisu roku pěti ciframi. Zbývá jen doufat, že do té doby tento problém bude vyřešený.

Současně se nepochybně v kontextu relativně nedávného "konce mayského kalendáře" nabízí otázka, jak budou lidé na konci roku 9999 reagovat na skutečnost, že posledním dnem toho roku končil kalendář jakýchsi dávno zapomenutých primitivních barbarů před několika tisíci lety...

Vysvětlení 1334 - Druhá

Dnešní comics není asi třeba příliš vysvětlovat, ale možná je na místě drobná vysvětlivka pro ty, kteří se již nesetkali s fenoménem webringů, který na pamětníka dýchá nostalgií stránek na Geocities a vyvolává v něm vzpomínky na velmi specifický design tehdejších stránek (s nezbytnými animovanými GIFy).

Ve dřevních dobách internetu docházelo poměrně často k tomu, že se podobně zaměřené internetové stránky sdružovaly do větších celků, webringů (webových kruhů), a v rámci jednotlivých stránek bylo možné snadno přejít na další (a předchozí) stránku daného webringu. A protože se skutečně jednalo o kruh v pravém slova smyslu, znamená to, že pokud jste v takovém přesouvání na další stránku webringu pokračovali dostatečně dlouho, vrátili jste se na stránku, na které jste svou pouť započali.

Vysvětlení 1333 - První rande

Celý dnešní comics je narážkou na projekt Twitch Plays Pokémon, neboli TPP, jak je označován v mouseover textu. Twitch je služba, která slouží ke streamování her, respektive takzvaných "Let's Play" webcastů - jeden hráč hraje na svém počítači nějakou hru (a obvykle své hraní nějak komentuje) a jeho odběratelé ho sledují a v integrovaném chatu jeho konání mohou komentovat, radit mu a podobně.

Twitch Plays Pokémon je pokusem celý tento koncept obrátit - místo hrajícího hráče je zde jednoduchý bot, který hru (v tomto případě speciální verzi Pokémona) hraje na základě příkazů, které mu zadávají diváci streamu prostřednictvím chatu (takže se z pasivních diváků stávají aktivními hráči). Čím víc hráčů se pokouší hru ovládat, tím více se pochopitelně její hrdina chová nevyzpytatelně a nezřídka až bizarně a je schopen se zaseknout i na těch nejtriviálnějších úkolech.

Myšlenka TPP se velice rychle rozšířila a začaly se rychle množit podobné další projekty. Hlavní hrdina dnešního comicsu si proto bizarní chování své partnerky na prvním rande tedy vykládá tím, že "ji ovládá Twitch". Panel s ulitou je pak také odkazem na interní vtip hráčů TPP, související se zkamenělinou, kterou má protagonista TPP v inventáři.

V mouseover textu pak Randall konstatuje, že stejně jako protagonista TPP, i on sám (a asi nejen on) se v životě nejednou zasekl na zdánlivě triviálních problémech, a proto s protagonistou TPP soucítí.

A mimochodem, pokud se do projektu Twitch Plays Pokemon chcete zapojit, máte rozhodně možnost...

Vysvětlení 1329 - Vestoje

K dnešnímu comicsu stačí asi jen drobná poznámka - pokud jste měli to štěstí a minulo vás to, vězte, že práce vestoje (zejména typicky kancelářská práce, například na počítači) je aktuální módní vlnou v (údajné) ergonomii pracovního prostředí, podobnou, jakou byly před časem sedací míče či před nimi klekačky. A stejně jako v jejich případě je skutečný praktický přínos takového počínání, obzvláště v dlouhodobém měřítku řady hodin denně, přinejmenším diskutovatelný.

Vysvětlení 1321 - Chlad

Tentokrát tu máme comics na téma globálního oteplování.

V zásadě upozorňuje na skutečnost, že svým smyslům a potažmo vlastně ani paměti nemůžeme tak docela věřit, protože se tu projevuje klasický efekt vařené žáby - pokud se situace kolem nás mění dostatečně zvolna, přizpůsobujeme se jí více, než si uvědomujeme, takže ačkoliv nepochybně dochází k jistým klimatickým změnám, jakmile se objeví nějaký náhlý extrém v opačném směru, než je nám tvrzeno, považujeme to často zcela automaticky za důkaz o tom, že zmíněné změny neprobíhají. A to dokonce i tehdy, kdy je onen náhlý extrém něčím, co bylo ještě před několika málo lety zcela běžným jevem.

Současně nám v něm Randall předkládá jistou vizi možné budoucnosti, kdy tento trend dále pokračuje.

Je asi potřeba ještě zmínit, že -17°C je na Saint Louis, tedy město na zeměpisné šířce přibližně Lisabonu, skutečně poměrně drastická zima. Jedním z důvodů, proč v Saint Louis teploty občas klesají takhle nízko, zatímco v Lisabonu ne, je ale samozřejmě teplý Golfský proud, který nezanedbatelným způsobem otepluje celou Evropu, zatímco Severní Amerika ho postrádá.

Probíhající klimatické změny jsou poměrně snadno doložitelné statistikami. Skutečná kontroverze se odvíjí od diskusí o tom, zda za tyto klimatické změny může člověk, nebo zda by probíhaly i bez jeho vlivu.

V mouseover textu se pak muž v černém kulichu snaží nepříliš úspěšně vylhat z poměrně logické otázky, a snaží se vytvářet dojem, že se ve volném čase věnuje něčemu docela jinému, než se evidentně věnuje.

Vysvětlení 1313 - Regex golf

Dnes tu máme další programátorský comics.

Regex neboli regulární výrazy jsou výrazy, používané k filtrování textů za účelem zjištění, zda daný text obsahuje řetězec, vyhovující zadaným kritériím. Regulární výrazy jsou velice užitečné, ale současně ne vždy zcela snadno uchopitelné a formulovatelné. Mezi programátory se občas říká, že pokud má někdo nějaký problém a rozhodne se ho vyřešit regulárními výrazy, má najednou místo původního jednoho problému problémy dva (na což ostatně odkazuje i výrok v posledním panelu comicsu).

Protagonistka dnešního comicsu v prvním panelu oznamuje, že vytvořila hru, které říká Regex golf, spočívající v tom, že před sebou máte dva různé textové seznamy a vašim úkolem je vytvořit regulární výraz, kterému vyhoví všechny položky prvního seznamu, ale ani jedna ze seznamu druhého. Ilustruje to na příkladu regulárního výrazu, kterému vyhoví všechny podtituly filmů ze série Star Wars, ale žádný z podtitulů filmů ze série Star Trek - tedy "/m | [tn]|b/" (uvozovky nejsou součástí výrazu).

Pokud si tento regulární výraz rozebereme, dojdeme k tomuto: lomítko na začátku a na konci označuje pouze začátek a konec regulárního výrazu a jinak nemá žádný význam. Znak svislé čáry představuje v regulárních výrazech logický operátor OR (NEBO), což znamená, že k tomu, aby řetězec výrazu vyhověl stačí, aby splnil kteroukoliv z podmínek výrazu. První z nich je výskyt znaku M, následovaného mezerou. Této podmínce vyhovuje podtitul "The Phantom Menace" (snad pochopíte, že v překladu neoperujeme s českými distribučními názvy). V podtitulech Star Trek filmů se M nachází buď na začátku slova nebo uprostřed něj - čili ani v jednom z těchto případů za ním nenásleduje požadovaná mezera a tyto podtituly proto této podmínce nevyhoví.

Hranaté závorky, do kterých jsou uzavřeny znaky T a N ve druhé podmínce znamenají, že pro její splnění se může v řetězci vyskytovat kterýkoliv z těchto dvou znaků, ovšem protože je před hranatými závorkami ještě mezera, musí se i tento znak nacházet až za mezerou. Tuto podmínku splní podtituly "Attack of the Clones", "Revenge of the Sith", "A New Hope" i "Return of the Jedi" - v každém z těchto podtitulů se nachází buď T nebo N, kterému předchází mezera. Podtituly všech Star Trek filmů konče "The Undiscovered Country" sice obsahují na začátku určitý člen, který začíná písmenem T, ale protože jde o první znak celého podtitulu, chybí před ním požadovaná mezera a proto tyto podtituly druhé podmínce našeho regulárního výrazu nevyhoví.

A konečně třetí podmínka uvedeného regulárního výrazu požaduje, aby se kdekoliv v řetězci vyskytoval znak B. To splňuje pouze podtitul "The Empire Strikes Back" - žádný jiný z podtitulů Star Wars ani Star Trek filmů písmeno B neobsahuje.

Je třeba ještě dodat, že aby uvedený regulární výraz fungoval, nesmí být case sensitivní, tedy musí ignorovat, zda je dané písmeno velké či malé.

Ve druhém panelu hrdinka comicsu pokračuje ve svých experimentech s regulárními výrazy a oznamuje, že vytvořila program, který dokáže její Regex golf hrát sám a tedy vytvářet regulární výrazy na základě dvou náhodně zvolených textových seznamů tak, aby první seznam výrazu vyhověl a druhý ne. Její přítel či kolega začíná tušit, že se schyluje k problémům...

Ve třetím panelu se hrdinka přiznává k tomu, že ztratila zdrojový kód zmíněného řešícího programu, takže nyní "grepuje" (používá linuxový příkaz "grep", který slouží právě k vyhledávání a výpisu řetězců na základě regulárních výrazů) ve snaze najít cokoliv, co by připomínalo kód programu, sloužícího k řešení regulárních výrazů, respektive jejího Regex golfu.

V posledním panelu pak konstatuje, že by se celé její hledání dalo charakterizovat regulárním výrazem "/(meta-)*regex golf/" a naráží tedy na skutečnost, že (předpokládáme, že za bouřlivého povzbuzování od Xzibita) řeší problémy s regulárními výrazy pomocí regulárních výrazů, které hledá pomocí regulárních výrazů...

Její přítel na to poznamenává, že v takovém případě má nekonečně problémů (protože uvedenému regulárnímu výrazu vyhoví nekonečně metaúrovní regex golfu), čímž odkazuje na výrok, zmíněný v úvodu tohoto textu.

Mouseover text pak obsahuje řešení jednoho z možných zadání pro Regex golf - tedy regulární výraz, kterému vyhoví jména všech dosud zvolených amerických prezidentů, ale nevyhoví mu jména jejich volebních oponentů.

Doplněno 22:00 - Pokud byste si Regex golf chtěli zahrát, vězte, že skutečně existuje! Upozornil Josef Štěpánek.

Vysvětlení 1312 - Haskell

Opět jeden programátorský comics.

Haskell je takzvaný funkcionální programovací jazyk, tedy jazyk, postavený na konceptu matematické funkce. Vedlejší účinky volání funkce jsou změny stavu programu či jeho interakce se světem, které přesahují rámec navrácení hodnoty volané funkce. Pokud například nějaká funkce po zavolání mění nějakou globální proměnnou nebo vypíše výsledek na obrazovku předtím, než ho předá k dalšímu zpracování, pak se jedná o vedlejší účinek. V ostatních programovacích jazycích jsou vedlejší účinky poměrně běžnou věcí. Funkcionální programovací jazyky se jim naopak snaží co možná nejvíce vyhýbat a v případě, že jsou zapotřebí, k jejich implementaci používají speciální postupy.

Comics naráží na skutečnost, že pokud se nenajde nikdo, kdo by daný program používal, pak lze absenci vedlejších účinků garantovat ve zcela libovolném programovacím jazyce - protože se vedlejší účinky projevují až při běhu programu samotného.

Mouseover text je pak dvojsmyslem, narážejícím na "líné vyhodnocování", na kterém je Haskell postaven. Podstata líného vyhodnocování spočívá v tom, že hodnota prvku je spočítána až v okamžiku, kdy byla tato hodnota nějakým jiným prvkem vyžádána. V tomto případě chce tedy Randall říci, že Haskell možná má jistou hodnotu, ale nikdo si ji zatím nevyžádal, tudíž ji nelze posoudit - a současně také to, že o samotný Haskell vlastně nikdo nestál (nevyžádal si ho).

Vysvětlení 1309 - Nekonečné rolování

Nekonečné rolování je v poslední době poměrně oblíbená technika, používaná v designu webů, považovaných za moderní. Místo klasického stránkování uživatel roluje zdánlivě nekonečnou stránkou, na které se postupně objevuje další a další obsah. Příkladem takové stránky může být například photostream na Flickru nebo fotogalerie na Google+ - jak jimi listujete, postupně se načítají další snímky a (přinejmenším v případě G+) stránka se natahuje.

Takový návrh stránek je sice efektní a může snižovat paměťové nároky dané stránky či množství přenesených dat, ale má současně i několik nevýhod - jednou z nich (a tou, na kterou se zaměřuje dnešní comics) je i skutečnost, že pokud na takovéto stránce kliknete na nějaký odkaz a chcete se z něj následně vrátit zpátky, nevrátíte se přesně na onu pozici, ze které jste klikali (protože je celá stránka generovaná dynamicky), ale zpátky nahoru na stránku a na místo, kde jste se předtím nacházeli, musíte znovu rolovat. Hrdinka dnešního comicsu má před sebou knihu, která funguje naprosto stejným způsobem - pokud by se čtenářka v knize dotkla něčeho, čeho se dotknout nechtěla, bude muset celou knihou začít listovat znovu od začátku.

Je třeba dodat, že tento problém se snaží někteří webdesigneři alespoň částečně obcházet například tím, že nekonečné rolování kombinují s klasickým stránkováním - to je například případ i zmíněného photostreamu na Flickru.

Mouseover text pak tradičně vše posouvá ještě o kus dál poněkud jízlivým návrhem, že bychom možná mohli zcela zrušit tlačítko Zpět v prohlížečích, jelikož je možná jeho funkce pro moderní webdesign až příliš pokročilá, než aby se s ní dokázal vypořádat.