Archiv autora: xkcz admin

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.

Vysvětlení 1308 - Vánoční osvětlení

V dnešním comicsu jsou různé vánoční zdroje světla zastoupeny grafy světelného spektra.

Postavy v comicsu pravděpodobně sedí před krbem - velký světelný zdroj před nimi má velmi silné vyzařování v infračervené až žluté části spektra, zatímco od zelené části spektra výše už v podstatě nic nevyzařuje.

Na stromečku se střídají dva světelné zdroje, jeden s výrazným vyzařováním v zelené části spektra, druhý s výrazným v červené. Jinými slovy červené a zelené lucerničky.

Na špičce stromku pak nalezneme zdroj s poměrně vyrovnanou spektrální charakteristikou s jistou špičkou kdesi v modré části spektra. Taková charakteristika by mohla odpovídat napříkla mírně namodralé svítivé diodě podobné těm, jaké se používají například v klasických LED svítilnách. Na vrcholku stromku pravděpodobně osvětluje klasickou vánoční hvězdu či kometu.

Vysvětlení 1307 - Buzzfeedové Vánoce

Dnešní vánoční comics si dělá opět jednou legraci ze současných médií, konkrétně ze stránek Buzzfeed, které se poměrně specializují na články s dnes tak populárními titulky typu "10 nejpodivnějších věcí, jaké jste kdy viděli". Koledníci, kteří se v comicsu objevují, stojí před sídlem této společnosti a zpívají svéráznou verzi tradiční anglické koledy "Dvanáct vánočních dnů", která ve stylu například české písničky "Co jsem měl dnes k obědu" postupně vyjmenovává další a další věci, které se udály v průběhu dvanácti dní Vánoc.

Nakolik lze soudit z mouseover textu, nejsou jejich svéráznou verzí této koledy zaměstnanci Buzzfeedu příliš nadšeni...

Vysvětlení 1306 - Cyklus speciálních znaků

Speciální znaky na začátku slov se v programování obvykle používají k viditelné specifikaci typu proměnné. To přispívá ke snazší čitelnosti celého kódu - programátor ví, s jakým typem proměnné právě program pracuje, aniž by se musel dívat na to, jak byla konkrétně deklarována, nebo obecně ke zpřehlednění zápisu kódu.

V QBasicu, Bashi a Perlu se takové znaky používají, naopak v C++ a v Pythonu používány nejsou a názvy proměnných v nich nejsou uvozené žádným speciálním znakem. Comics se snaží naznačovat, že se jedná o neustále probíhající cyklus, ve kterém se tyto dvě možnosti periodicky střídají. Zatím posledním bodem této křivky, který je na grafu znázorněn, se ovšem netýká programovacích jazyků, nýbrž sociálních sítí a služeb. Na síti Google+ (a také na Facebooku) je znaménko + před nějakým slovem používáno k označování/vytváření odkazů na jiné G+ účty a stránky. Na Twitteru se za stejným účelem používá pro změnu znak @, tedy zavináč. Dvojitým křížkem neboli "hashem" se pak na sociálních sítích (původem na Twitteru, dnes již na všech třech hlavních) označují takzvané "hashtagy", neboli jakási klíčová slova, která obvykle specifikují téma daného postu a s jejichž pomocí se dá na dané sociální síti snadno vyhledávat příspěvky různých osob na stejné téma (tedy se stejným hashtagem).

Mouseover text pak celý cyklus poněkud jízlivě komentuje.

Vysvětlení 1305 - Nezdokumentovaná funkce

Dnešní comics je v předvánoční době poměrně zádumčivý a existencionalistický. Zmiňuje se o nezdokumentované funkci jistého starého programu, tedy funkci, která nebyla popsána v jeho manuálu či dokumentaci a byla tedy určena pouze pro ty, kterým se ji podařilo náhodou odhalit. Takové funkce jsou poměrně běžné a dnes se jim také často říká "easter eggs", velikonoční vajíčka. Je ovšem pravda, že nezdokumentovaná funkce, která by měla sloužit pro přístup k technické podpoře, by byla poměrně netradiční.

V tomto případě comics popisuje situaci, kdy je takovou nezdokumentovanou funkcí přístup k soukromému chatovacímu systému, který objevilo jen pár vyvolených a vytvořilo zde v průběhu let vlastní specifickou komunitu. Jak comics zmiňuje, ačkoliv nikdo netuší, kdo vlastně celý systém provozuje a udržuje, navzdory veškerým očekáváním stále funguje - soudě podle náznaků na stále komplikovanější způsoby, jak se k němu dostat, až překvapivě dlouho, protože aplikaci, se kterou byl spojen, je evidentně stále těžší a těžší na moderních počítačích spouštět a je k tomu třeba používat virtuálních strojů, tedy programů, umožňujících uživateli provozovat virtuální "počítač v počítači", které výrazně usnadňují práci se starými programy a systémy. Soudě dle útržků diskuse funguje celý systém tak dlouho, že uživatelů pomalu ubývá, přičemž je z náznaků jasné, že k tomu občas dochází i z důvodů jejich úmrtí. Comics se pak poměrně vážně zamýšlí nad tím, co se s takovými malými virtuálními světy (kterých je plný internet a velká část z nás patrně nějaký z nich navštěvuje) stane, až ze světa odejdou všichni jejich uživatelé.

Nebylo by to ovšem xkcd, aby Randall i takto až překvapivě vážné téma nakonec nepojal s humorem. Poslední panel comicsu proto s úlevou oznamuje, že v daném chatu alespoň nejsou žádné vyskakovací videoreklamy, dnes tak oblíbený prvek internetových stránek. Je pravděpodobné, že se současně jedná o reakci na včerejší oznámení Facebooku, že hodlá uživatelům předkládat reklamní videa, která se budou spouštět zcela automaticky.

Mouseover text pak v podobném duchu zmiňuje okno s upozorněním, že má uživatel používat své skutečné jméno. Zde se velice pravděpodobně jedná pro změnu o narážku na Google, respektive YouTube, kde takové upozornění na uživatele ještě nedávno vyskakovalo, než začalo být používání skutečných jmen výslovně vynucováno.

Vysvětlení 1304 - Brýlový troll

Dnešní comics si dělá legraci z chytrých brýlí Google Glass. Hlasové příkazy pro tyto brýle se zadávají tak, že větu začnete slovy "OK, Glass" (což může být pro okolí poněkud iritující). Hrdina comicsu sice Google Glass nemá, ale trolluje své okolí tím, že nosí naprosto obyčejné brýle a před každou větou říká zmíněnou formulku.

Mouseover text pak naráží na cenu Google Glass. Ta by sice měla po jejich oficiálním uvedení do běžného prodeje výrazně klesnout, ale prozatím je nastavena na 1500 dolarů, tedy asi 30 tisíc korun.