Znej svoje IDE

V práci jsme narazili na téma o chytrosti IDE. Možná vás to překvapí, ale nebyla řeč o tom, jak jsou hloupí, ale o tom, jak moc chytrý jsou a že to je spíš na škodu.

Konkrétně toto téma vyvolalo našeptávání pro Python, kdy PyLint upozorňuje na metody, které ve skutečnosti nemusí být metody (PyLint R0201). Prý je to už moc a žádné takové upozornění by podobný nástroj neměl dělat. Protože přeci programátor ví, co dělá. Pak neprogramuje programátor, ale nějaký nástroj.

Já si osobně myslím, že to není špatná věc. Jednou, možná dvakrát, se mi už stala situace, kdy po refaktoringu mi zůstala metoda, kterou jsem opravdu chtěl dát nakonec jen jako funkci, a PyLint mi to připomněl. Není však nutnost takové našeptávače mít.

Každopádně, co chci říct – neustále si zlepšujeme naše nástroje tak, abychom manuální stereotypní práci dělali co nejméně. Což je plně v pořádku. Důležité je však dobře znát, co ty nástroje vlastně dělají. Všem bych doporučil začít programovat s nejhloupějším editorem a s konzolí. Postupně pak proces vývoje posouvat k těm chytřejším nástrojům.

Má to spoustu výhod. Při takovém postupu víme, co se děje. Víme, co si můžeme dovolit. Dokážeme si poradit i u jiného počítače, serveru či webovém IDE. A taky si dokážeme udělat vlastní vývojové prostředí na míru, kde zautomatizujeme kde co.

Poté se nestane, že si IDE dělá co chce a programátor vlastně jen kouká a občas někam klikne.

P.S.: Možná se může zdát, že tu mixuji dvě věci – IDE s PyLintem nemá skoro nic společného. Ale není to tak. PyLint se sám v konzoli nespustí, kdežto IDE ho sám spustí na pozadí a ihned kód podtrhne. Navíc to lze aplikovat i na jiné věci, například vyhledávání v souborech, debugger, refaktorovací nástroje, SCM, našeptávání…

Cesta kolem světa?

Vždycky jsem měl sen procestovat svět. Stále mám. Otázka ale je – jak ho procestovat?

Hodně jsem si pohrával s myšlenkou se sbalit a zmizet na několik měsíců až rok. Koupit letenku kolem světa a tradá, na viděnou za rok. Přemýšlet o takovém plánu mě bavilo. Pročítal jsem spoustu názorů a poznámek na toto téma od lidí na Quoře, například:

Všichni píšou „do it!“ s různými tipy. To mě samozřejmě ještě více nakopávalo si vše propočítat a takovou cestu podniknout co nejdříve.

Téma cestu kolem světa probírám i s lidmi, kteří přijedou na pár dní na můj gauč. Zatím všichni taky mají takový plán. Zdá se, že to ke couchsurfingu patří. Já už ale takový plán nemám…

Letos v San Franciscu jsem totiž narazil na dva Brity, kteří už byli přes rok na cestách a měli před sebou přibližně ještě půl roku cesty po Americe. Samozřejmě mě hodně zajímal jejich příběh. Kde byli, co doporučují na těch místech zkusit atp. Co jsem se dozvěděl?

Že se jim už celý rok začíná míchat dohromady a vlastně nevědí, co kde přesně dělali. Což se jim nedá vyčítat. Já cestuji na několik týdnů a taky si po návratu domů nepamatuji úplně všechno. Ale jelikož se po těch několika týdnech vrátím domů a na další velkou dovolenou vyrazím přibližně až za rok, nic se mi nemíchá.

Že jim některá navštívená místa nepřijdou speciální. Protože to porovnávají s jinými, která navštívili pár dní/týdnů před tím či potom. Návštěvu Kalifornie bych zřejmě taky nehodnotil tak skvěle, pokud bych ji nenavštívil letos, ale už minulý rok při cestě domů z Havaje.

Že se bojí vrátit se domů. Téměř každý den navštěvují nová místa, poznávají nové lidi, zkouší nová jídla či věci. Co se stane až dorazí domů? Zastaví se. Najednou se bude zdát život nudný. Toho se hodně bojí, skoro až slzu jsem u nich viděl. Cestování kolem světa potřebuje dost peněz a jednou se musí zastavit a jít zase do práce.


Když se nad tím zamyslím, zjistím, že cesta kolem světa najednou není něco, co opravdu chci. Rád cestuji. Chci cestovat, ale jak to tak vypadá, u mě vyhraje průběžné cestování, které mi vyhovuje. Průběžným cestováním myslím 11/1 – jedenáct měsíců práce a na měsíc vyrazit někam do Tramtárie.

Django signály

Nemám v úmyslu zde podrobně popisovat, jak signály fungují. Od toho tu je dokumentace. Chci pouze upozornit, že existují, lze je šikovně využít, ale taky si s nimi lze nadrobit na problémy.

K čemu signály jsou? Jednoduše k decoupling. Zrušení závislostí v kódu. Představme si to na ukázce, třeba typu e-shopu:

E-shop se skládá ze spoustu menších aplikací a každá dělá jednu svou věc. Jedna z těchto aplikací jistě bude napojení na platební bránu. Po zaplacení platby ale určitě nebude stačit pouze upravit v databázi stav platby, ale bude chtít také změnit stav objednávky, poslat zákazníkovi informaci o stavu, odeslat informace na sklad, … a spoustu dalších věcí záležící dle konkrétního e-shopu.

Klasicky by v appce payment musel být kód, který bude importovat ostatní appky e-shopu a volat jejich metody. Co se právě stalo? Appka payment není univerzální. Nejde ji dát do odděleného repozitáře a využít jinde. Je navždy spojena s konkrétním kódem e-shopu.

Jak by to vypadalo se signály? V payment appce se definuje signál, který se bude vyvolávat při změně platby. Ostatní appky budou na tento signál pouze vyčkávat. Tím bude platební modul přenositelný i do jiných aplikací. Sice je pravda, že nyní je situace opačná – ostatní appky jsou závislé. Ale… tak je to přeci správně, ne? :-)

Pro inspiraci – na BOObook.cz o produktech, krom základních atributů jako název či cena, žádná jiná appka nic neví. Nemusím tak nikde natvrdo psát, aby se po zaplacení zákazníkovi knihy zapsaly do knihovničky či poslaly mailem. Jednoduše se v appce ebook čeká na spuštění signálu o zaplacenosti a poté se zde zařídí vše potřebné.

Tím jsem docílil toho, že mohu vzít kód e-shopu krom produktů, napsat novou definici produktů třeba na zubní pasty a vše mi bude fungovat. Aniž bych musel cokoliv jiného měnit. Skvělé!

Podobně s fakturačním modulem. Nikde nevolám invoice.create_invoice(...), místo toho fakturační modul čeká na ten správný signál. Tím mohu mít dva fakturační moduly (jeden velmi základní a jeden komplexní s napojením do účetnictví) a zaměnit je dle libosti bez úpravy kódu. Dle toho, o který si zákazník řekne.

Než se ale vrhnete do zkoušení – signály nejsou řešením pro všechno. Je potřeba se zamyslet, zda využití signálu bude opravdu užitkem. Aspoň určitě se budete důkladně zamýšlet, až začnete hledat první bugy v těchto úsecích kódu. Není to zábava. :-) Nadměrné použití signálů také ztíží čitelnost kódu, protože už nebude jasné, kdy se co volá. Takže opatrně s nimi!

Lumia – klasická Nokie v nové době

Dostala se mi do ruky Lumie. Čekal jsem, že mi tento telefon sedne, protože Windows Phone vypadá zajímavě, hezky, svižně, … a opravdu to tak je. Než jsem chtěl něco trochu víc.

Myslím, že pro napsání tohoto blog postu je jedno která Lumie, protože nebudu psát o technických parametrech, ale kdyby to náhodou jinde bylo jinak – konkrétně Nokia Lumia 620 s Windows Phone 8.0.

Vezmu to stručně:

  • Možná to je jen zvyk z Androidu, ale proč tlačítko lupy vždy otevře browser? Moc jsem nepochopil, proč pro hledaní v nějaké aplikaci musím hledat jiné tlačítko dle nálady programátora. A už vůbec nevím, kde hledat obsah v telefonu.
  • Když už jsem u hledání, jaksi nastává problém s češtinou – se slovem cestina češtinu nenajdu. V žádném hledání, které jsem zkoušel. (Zadávat diakritiku je opruz.)
  • Na telefonu dělám překlepy docela často, kór na základní klávesnici Lumie. Trvalo mi týden zjistit, jak se posouvá kurzor, abych mohl chyby po sobě opravovat. Nenapadlo mě, že výběr je tapnutím a posun přidržením. Je dobré zkoušet nové věci, ale někde je lepší se držet zaběhnutých nepsaných pravidel…
  • Docela zajímavé na klávesnici je také to, že nejde skrýt, pokud je aplikace jedno velké textové pole (třeba e-mail). Pokud si chci e-mail před odesláním přečíst na větší ploše, mám smůlu. Omlouvám se, toto není pravda. Jde skrýt šipkou zpět. Taková možnost mě opravdu nenapadla.
  • Naopak ikonky v horní liště se skrývají rády. Nejprve se mi to zdálo zajímavé, že se zobrazují jen ty relevantní na určitých místech, ale spíš mi vadí, že nevidím, zda používám Wi-Fi či nikoliv, případně kolik mi zbývá šťávy atp.
  • Hbitost telefonu není taková, jak se může zdát. Vše vypadá svižně a na takovém levném telefonu mě to mile překvapilo. Bohužel je způsobeno délkou animace – přistihl jsem se, jak často čekám, až se něco doanimuje, abych mohl pokračovat. Přesně tohle nemám rád u HTC s jejich Sense.
  • Také jsem si všiml, že maximální rychlost scrollování je pomalá, kór když všechny programy a nabídky jsou v jednom dlouhém seznamu. U Androidu mohu dvojím pohybem prstu přejet na konec dlouhého seznamu raz dva.
  • Očekával jsem stabilní systém. Lumii používám týden jako sekundární telefon (tedy ne často) a za tu dobu se mi třikrát sekla…

Další seznam se týká aplikací, které Nokia ani Microsoft úplně neovlivní. Pro mne osobně jsou ale také nedostatkem:

  • E-mailový klient nemá žádnou možnost přesunout poštu do archivu, což je pro mě velmi důležité.
  • Kalendář si neporadí pokud u Google používám více kalendářů – synchronizuje se pouze ten hlavní.
  • Absence Google služeb.
  • Absence aplikace typu Pubtran.

    Abych ale jen nekritizoval – Windows Phone se mi líbí. Vypadá hezky a má líbivé animace. To jsou věci, které Microsoftu vždycky šly. Jsou zde i zajímavé nápady, ale musí se ještě systém na některých místech poladit, aby byl celkový dojem dobrý. Věřím však, že se to s dalšími vydáními bude zlepšovat.

    Dříve, když se mě někdo zeptal, jaký telefon si má pořídit, který je dostatečně blbovzdorný, doporučoval jsem iPhone. Před týdnem jsem doporučení už změnil na Windows Phone. Je to stará dobrá Nokia v nové době smartphonů.

    No a já osobně zůstanu u Androidu. Tím jsem si vyřešil otázku, z čeho přejít ze stařičkého Desire HD – pravděpodobně na Nexus 5.

    Chromebook Pixel

    Už je to nějaký pátek, co mám Chromebook Pixel. Přesně od konference Google I/O, kde ho dostávali všichni účastníci. Chtěl jsem na něj napsat recenzi již dávno, ale vždy jsem úplně nevěděl, jak to podat. Chvíli jsem ho zbožňoval, chvíli jsem ho chtěl vyhodit z okna. Tak snad už nastala správná chvíle…

    Názor na koncept Chromebooků

    Zřejmě bude fér nejprve prozradit, že když jsem se prvně doslechl o prvním Chromebooku, úplně mě to nadchlo. Přeci je super mít notebook, za který se nemusí dát několik tisíc najednou, v ceně je upgrade, základní internet a o data se nemusím bát.

    Znamená to sice doživotní měsíční platbu, ale kdo koupil notebook, který vydržel opravdu dlouho bez upgradu (a hlavně upgrade nepotřeboval)? Také to znamená, že je člověk s Chromebookem nucen dávat data do cloudu, ale není to, co chceme, a dobrovolně už děláme?

    Tedy jsem fanda. Vidím tam ale menší háček – internet. Bez konexe nebo s velmi pomalou konexí je takový přístroj vhodný většinou jen na podložení stolu. Až však jednou bude dobré pokrytí LTE, věc se bude mít jinak.

    První zátěžový test

    Sice jsem se na Google I/O těšil na nový smartphone, ale Chromebook mě také potěšil. Žádný notebook jsem totiž neměl, dlouho jsem nějaký hledal a nemohl si vybrat. Místo notebooku jsem měl tablet. Ten se ale na americké síti nechtěl nabíjet, takže Pixel dostal šanci mi být po boku na dovolené.

    Obával jsem se, že Chromebook neobstojí a raději zajdu koupit schopnější el. redukci. Trochu to urychlím: nekoupil jsem ji. Nebylo třeba. Velice mě překvapilo, co takový předražený prohlížeč zvládne. Ono totiž co člověk potřebuje?

    • Mapy – Google Maps či mapy.cz.
    • E-maily – Webových klienti často strčí ty offline do kapsy. Gmail může dokonce běžet offline.
    • Dokumenty – Tady přijde častější pisálek k úrazu, ale pokud postačí Google Drive, opět funguje též offline.
    • Poznámky – Pro poznámky nemá smysl startovat celý Google Drive. Na to tu je aplikace Scrachpad. Funguje ale tak napůl a u mě ji nahradila aplikace Google Keep, která funguje skvěle i offline.
    • Fotografie – Importovat z fotoaparátu lze velice jednoduše. Stačí připojit kabel a vyskočí nabídka, zda naimportovat fotografie na Google Plus. Zde už mohou začínat trochu komplikace – v době offline lze sice fotografie nahrát jen do zařízení a uploadvat je později, jenže disk má omezenou kapacitu (32 GB nebo 64 GB); nezvládne import RAW fotek; občas se to kousne na poslední fotce, i když všechny jsou v pořádku doručeny do cloudu.
    • Internet. Obsah.

    Vše se dá internetem zastoupit a je to podle mého názoru budoucnost.

    Co IT guys?

    Stejně tak programátorské editory jako například Codenvy či Cloud9 jsou budoucnost. Je velmi pohodlné si nakonfigurovat IDE jen jednou, otevřít všechny projekty jen jednou, a mít tento workspace dostupný kdekoliv. Možnost pokračovat na cestách kde jsem doma skončil.

    Ale jak říkám – programování v prohlížeči je budoucnost, nikoliv přítomnost. Prozatím výše popsaný scénář funguje tak napůl. Například Codenvy podporuje pouze vývoj webovek, které lze nakonfigurovat na Heroku, Google App Engine apod. Tedy použití nepodporované technologie či vlastního serveru vyřazuje Codenvy ze hry. Cloud9 je na tom trochu lépe – v beta verzi už má možnost mít workspace přes SSH. Tedy Cloud9 + vlastní server + tmux + SSH tunel = použitelné řešení. Stále to ale není ideální… Na malé úpravy však určitě postačující. Mimochodem, co jsem se bavil s CEO od Codenvy, prý také plánují SFTP sync s workspacem na vlastním serveru.

    Výše jsem psal SSH tunel. Ano, to je opravdu možné. Po odemčení developer módu stačí v crosh konzoli zadat shell a Linux na pozadí je otevřen. Odtud už se lze SSHčknout kamkoliv. Takže pokud stačí vim, vlastně nic víc není potřeba.

    Operační systém

    Dobře, a jde tam dát i něco jiného, třeba Debian, a mít tam oblíbené IDE? Ano, lze.

    Zkoušel jsem ChromeOS nahradit Debianem. Zkoušel jsem mít s ChromeOS paralelně XFCE. Oboje jsem rychle zahodil. Ani jedno se nedalo používat. Ono vše fungovalo, to ano. Důležité ale jak. Najednou touchpad už není tak awesome. Podsvícení klávesnice se už nereguluje. Problém s uspáním. Chybí podpora tak vysokého rozlišení. Umět přepínat zvuk mezi Display portem a jackem. A spoustu dalších drobností…

    Člověk by ani nevěřil, že ChromeOS je Linux. Popravdě v poslední době zvažuji opuštění Linuxu a přejít na Mac. Proč? Protože už mě štvou neustálé problémy například s připojením externího monitoru/projektoru. Na Macu či Windows jednoduše připojí kabel a vše funguje. Na Linuxu připojím kabel, musím dvakrát restartovat, hledat návod a hrabat se v konzoli. Nebo neexistence použitelného a funkčního grafického rozhraní. Not cool.

    Na ChromeOS mi jednoduše vše funguje. Otevřu víko a hned mohu zadávat heslo. Pokud byl notebook úplně vypnut, heslo zadávám po pár sekundách. Připojím kabel od externího monitoru a hned se rozšíří plocha. Připojím fotoaparát a hned mi nabídne naimportovat fotografie. To je cool.

    Na ChromeOS mi nic nepřekáží. Nic není navíc. Je tam toho tak akorát. Vypadá hezky. Prostě Chrome s trochu více nabídkami a panelem.

    Hardware

    Nechme software a pojďme se bavit, proč raději sedím u Chromebooku místo u desktopu? Nad touto otázkou jsem dlouho přemýšlel. Nejprve jsem myslel, protože to je nové a chci to prozkoumat. Poté, protože to je notebook a mohu se kdykoliv přemístit. Oboje je trochu pravdivé, ale hlavní důvod je jinde – displej, klávesnice a touchpad!

    Pokud nevíte, Pixel se jmenuje Pixel právě kvůli pixelům. Je jich hodně. Více než u retina displeje. A to je radost dívat se na takový obraz. Navíc je dotykový. Sice mi to občas přijde jako nevýhoda, když mi zrovna někdo vedle mne chce něco ukázat, ale pro takové mapy to je užitečné.

    Možná by měl dotykový displej větší smysl, kdyby se nepovedla klávesnice. Například u tabletu ASUS Transformer jsem moc ruce na klávesnici neudržel a spíše jsem matlal po displeji. Zde je to obráceně. Normálně mám problémy se spřátelit s klávesnicemi u notebooků, ale tato mi padla do ruky hned. Jen mě z počátku zarazilo nemožnost regulovat podsvícení klávesnice. Dnes, po tak dlouhé době, už vím proč – nikdy jsem to nepotřeboval. Just working. 

    Podobně touchpad. Nikdy jsem touchpad nepoužíval, raději jsem připojil myš. Velikost a gesta mi umožní, na co je i myš krátká. Nyní chápu, proč Apple vytvořil externí touchpad.

    A vzhled? Vypadá hezky. Stylově. Minimalisticky. Tak akorát. Stejně jako operační systém.

    Pokud někoho zajímá výkon, dobrá – zvládne vše, na co jsem si vzpomněl. Jen 4 GB paměti se mi zdálo málo. Ve skutečnosti se to projevilo jako problém pouze při experimentování s XFCE, kde se mi poté neustále něco killovalo pod rukama (protože mi běžela dvě grafická rozhraní).

    Celkově

    Tuto recenzi jsem začal psát už v červnu. Nespočetně krát jsem ji předělal. Dříve zde bylo více negativních poznatků, které se časem změnily na pozitivní. Lidé stojící za Chromebooky zřejmě vědí, co dělají. Jen uživatelé na něco takového nejsou ještě připraveni. Aspoň já jsem nebyl, i když se mi koncept při uvedení líbil.

    Chce to tedy čas a hlavně být internetově pozitivní. Pokud jste pro „mít data na internetu“ skeptický nebo si nechcete udržovat vlastní server, nejste cílovka. Počítače začaly jako konzole k serveru. Poté byla možnost mít celý server v krabici zvané desktop. Dnes se trend vrací zase k serverům. A já to chápu, to je přeci to, co chceme.

    Jen ta cena… $1299 bych za něj dobrovolně nedal. Jsem ale rád, že ho mám.

    Na závěr si můžete také přečíst moji odpověď na otázku „I'm a Windows baset internet-heavy power user. Should I move to a Chromebook?

    Má smysl školení Google Analytics?

    Má.

    Tečka.

    Co ještě chcete, vždyť už jsem odpověděl! :)

    Dobře, trochu to rozvedu. Několik měsíců zpět jsem se začal víc zajímat o čísla, která mi Google Analytics zobrazují, až jsem došel ke knize Webová Analytika 2.0. Kniha mě nakopla natolik, že jsem si hodně hrál s GA a sepsal menší blogpost. Netrvalo dlouho a až dostal jsem se až do lavice na školení GA od Jana Tichého.

    Nejprve jsem váhal, zda se školení zúčastnit. Přeci jen jsem měl načteno a rozhraní jsem už znal velmi dobře. Rozhodl jsem se však zajít, protože od napsání knihy už nějaký pátek uběhl a třeba se dozvím o problematice taky trochu z jiného pohledu.

    Pokud bych přišel bez jakýchkoliv znalostí, bylo by celé školení vynikající. Aspoň myslím podle tváří ostatních účastníků, kteří tam tak přišli. Bylo dobře vysvětlováno bez technických pojmů, takže by to dokázal pochopit opravdu každý; to mě opravdu překvapilo. Sice pro před školením neznalé ještě čeká dlouhá cesta a někteří budou potřebovat opáčko, ale to je v pořádku. Lepší více informací než minimum. (Dokonce mají slevu pro opáčko.)

    Co tedy člověk, který se v GA už nějakou tu chvíli pohybuje a zajímá se o analytické nástroje více do hloubky? I ten si tam najde své. Jen začátek školení bude trochu nudný. Docela brzy se ale člověk začne dovídat i u těch základních věcech drobnosti, které je dobré vědět.

    Nejde pouze o to, jak pracuje konkrétně GA a jak tam něco naklikat. Ale také o to co a jak sledovat. Jak si čísla dát do kontextu s tím, o jakou aplikaci se jedná a jak se u takové aplikace uživatelé chovají. I když se může něco takového zdát jasné, i malý nový detail může přispět k velký nápadům na lepší reporty.

    Já jsem si například ze školení odnesl:

    • Udělat si report s bounce rate / výstupními stránkami pouze se stránkami, kde je to opravdu špatně. Typicky detail produktu, košík nebo jiná stránka v procesu, nikoliv informační stránka jako kontakt.
    • Za dveřmi je nový způsob segmentace, kde půjde segmentovat uživatelé například podle tržby nebo podle první návštěvy. Těším se! Více 1. října na Google Analytics Summit.
    • Tip jak si přes filtery opravit nastavení utm_medium (cpc, banner, email, …), pokud není nastavené či je, ale špatně.
    • Do grafu si lze zapisovat poznámky!
    • Nebo jak vlastně GA detekuje kam návštěvníka zařadit (utm_source & utm_medium), jaké to má dopady a že existuje Multi-Channel Funnel.

    A několik dalších drobností.

    Takže jak píšu na začátku – má. Tedy pokud nejste guru nebo blízko tohoto titulu, samozřejmě. ;)

    WebExpo 2013

    Buď sleduju webové novinky velice dobře, nebo sekce vývoje na WebExpu upadá a nebo o vývoj u nás není jednoduše zájem. Nevím. Každopádně WebExpo mi letos vůbec informačně nesedlo a bude tak zřejmě poslední, které jsem navštívil. Raději vycestuji do zahraničí, protože nevěřím, že mi novinky neunikají. Stačí si vzpomenout na letošní Google I/O, které mi dalo hodně.

    Možná, že kdyby se nezavedla angličtina jako jediný jazyk, bylo by to celé jinak. Čeští přednášející neovládající angličtinu na dobré úrovni totiž skončí u toho, že se snaží co nejvíce naučit, používají jen jednoduché věty, raději se nepouštějí do složitějších témat a netrumfnou si zavtípkovat či jinak oživit přednášku. Pak to celé probíhá nudně bez zajímavých informací. Jednou jsem musel úplně přestat vnímat, protože to prostě nešlo. A těch pár zahraničních celebrit celou konferenci nezachrání.

    Navíc je smutné, že ani pořadatelé se s angličtinou neumí moc poprat. Že Václav Stoupa anglicky moc neumí mě překvapilo, ale to se dá prominout. Co mě opravdu šokovalo byl například uvaděč v development hall. Jako pobavili jsme se, to jo, za cenou konference jsem si však představoval trochu něco jiného.

    Trochu víc profesionálního. Cena se každým rokem přibližuje víc a víc k velkým profesionálním konferencím, ale samotná kvalita se nikam neposouvá. Sice se každý rok vyřeší několik problému z předchozího ročníku, bohužel se objeví zase jiné vady. Abych byl konkrétní:

    • Každým rokem je množství jídla snad menší a menší. Navíc si není kde sednout. Sice pizza minulý rok byla otřesná, ale aspoň se dala sníst ve stoje. Snad nejlepší byla menza.
    • Prohození barev místností nebylo vůbec šťastné. Nebyl jsem jediný, kdo se dostal nechtěně do špatné místnosti. Bych opravdu rád znal důvod…
    • Když už u dveří někdo sedí a hlídá pásky, mohl by také ty dveře otevírat a zavírat. Jako bonus by mohl účastníkům říkat kterým vchodem je vhodné jít (vědět na které straně je více místa). Je velmi otravné když bambilionkrát během minuty dveře bouchnou.
    • Mimochodem ty pásky… k čemu mám visačku, když se s ní nikam nedostanu? A proč mám smůlu, když se mi páska roztrhne a ztratím ji? Zde by mě taky hodně zajímal důvod takového řešení.

    Vše by se dalo odpustit, kdyby se cena vstupenky nezvyšovala nebo kdybych odešel informačně nabit.

    Každopádně díky WebExpu za minulé ročníky a ať se daří! Pro mě už to není.

    UPDATE: Aby nebyl blogpost tak negativní, přidávám ještě seznam přednášek, které mě zaujaly:

    Smůla neexistuje

    Už je to několik let, co jsem četl nebo mi někdo říkal příběh o sedlákovi poukazující neexistenci smůly. Ten příběh se mi zalíbil, zařadil jsem si ho do mé filosofické sbírky a začal se tak chovat – jakmile jsem měl chuť říct, jakou mám smůlu, vzpomněl jsem si na sedláka a nechal to být. Vše má přeci svůj dobrý důvod. Jen musím počkat, abych ten důvod poznal. (Trochu se divím, že mě něco takového v pubertě vůbec chytlo a zůstal jsem u toho.)

    Sedlákův příběh můj život ovlivnil pozitivně natolik, že když jsem si na něj dnes vzpomněl, napadlo mě ho předat dál. Aby pozitivně ovlivnil i další lidi, vás!

    Jeden starý muž hospodařil se svým synem na malém statku. Měli jediného koně. Jednoho dne jim kůň utekl. „To je strašné,“ litovali ho sousedi. „Taková smůla!“ „Kdož ví, jestli je to smůla nebo štěstí,“ odpověděl sedlák. Za týden se kůň vrátil z hor a přivedl s sebou do stáje pět divokých klisen. „To je ale štěstí,“ říkali sousedi. „Štěstí, smůla? Kdož ví?“ Odpověděl starý muž. Druhý den se jeho syn pokoušel zkrotit jednu z klisen a zlomil si nohu. „To je hrozné, taková smůla!“ „Smůla? Štěstí?“ Do kraje přišli verbíři a odváděli mladé muže do války. Sedlákův syn se jim nehodil, a proto ho nechali doma. „Štěstí? Smůla?“

    Na internetu je sedlákův příběh na spoustu stránkách v různých variantách, zdroj tedy netuším.

    Mimochodem mé další oblíbené je: nenazývat problém jako problém, ale jako výzvu.

    Proč sledovat TED přednášky?

    Přibližně jednou za týden omrknu některá nová videa z TED.com. Pár lidí se mě už ptalo, proč to dělám, co na tom vidím? Vidím v tom zajímavost, inspiraci, rozšíření znalostí, někdy i pobavení. Abych to dokázal, zkusil jsem zapátrat v paměti, která videa mi v poslední době zůstala z nějakého dobrého důvodu v paměti. Bohužel si nemohu vzpomenout na všechna (a pro jistotu jsem si je začal označovat). Na druhou stranu aspoň následující seznam není tak dlouhý a dá se za víkend zhlédnout. :-)

    Pořadí je náhodné a jen některé mají české titulky.

    Jane McGonigal: The game that can give you 10 extra years of life

    Jane McGonigal mluví o tom, jak si prodloužit život. Není třeba se bát, nemluví se o žádná chemii. Je to v podstatě jednoduché:

    • Nesedět více jak hodinu v klidu.
    • Řešit a nevzdávat malé výzvy každý den.
    • Připomínat si pozitivní události.
    • Děkovat lidem, které máme rádi, za to že jsou.

    Každý bod má své vědecké podklady, ale ty nejsou potřeba znát.

    Stewart Brand: The dawn of de-extinction. Are you ready?

    Různá zvířata postupně vymírají a má to neblahý vliv na ekosystém. Tato přednáška představuje vědce a hlavně jejich projekty zabývajícími se opakem – navrácení vymřelých zvířat a ekosystému zpět mezi nás.

    Shawn Achor: The happy secret to better work

    Bezvadná přednáška o tom, že štěstí utváříme převážně sami bez vlivu okolí. Jde o to jak se na okolí díváme. Musíme hledat pozitivum kolem sebe. Pak budeme více šťastní. Není to nic překvapivého, jen je potřeba si to připomínat.

    Dan Ariely: What makes us feel good about our work?

    Peníze nejsou vše, peníze nepomohou dostatečně motivovat lidi k zapálení do práce. Experimenty s legem či papírem ve videu jsou skvělé a jasně to dokazují.

    Ken Jennings: Watson, Jeopardy and me, the obsolete know-it-all

    Technologie kolem nás nám usnadňují na co si vzpomeneme. Díky internetu a chytrým telefonům si můžeme téměř kdykoliv a kdekoliv cokoliv vyhledat. Znamená to, že se přestaneme učit mít znalosti a začneme se jen učit vyhledat informace? Neměli bychom…

    Allan Savory: How to green the desert and reverse climate change

    Máme (my lidstvo) spoustu velmi chytrých vědců, pokročilou technologii, spoustu chemie, ale zvrátit desertifikaci nebo zvrátit změnu klimatu jednoduše nemůžeme. Pomoc nám mohou jedině hospodářská zvířata, která byla obdařena touto mocí.

    Vždy je velmi zajímavé sledovat, jak si příroda vše zařídila ke spokojenému fungování.

    UPDATE: Ještě přidávám seznam must-see TED talks na Quora.com.

    Nedostatek v tvorbě HTML5 offline webů

    Chtěl jsem dlouho omrknout lákavou část HTML5 specifikace, a to tvoření webové aplikace i pro offline režim. Jelikož je podpora na dobré cestě (Chrome 4.0, Firefox 3.5, IE 10), rozhodl jsem se místo nějaké minutkové stránky udělat rovnou něco užitečného – například offline stránku pro BOObook.cz, kde by byla omezená nabídka s možností vložit do košíku a synchronizací ihned po obnově spojení. K tomu ještě možnost zobrazit si poslední známý stav košíku a wishlistu. Jen takové srandičky.

    Bohužel jsem ale narazil na nepříjemnou drobnost, díky které už nemám takovou chuť si s offline verzí webové aplikace tolik hrát. Nejprve ale zběžně vysvětlím, jak to celé funguje – do tagu html se vloží atribut manifest s odkazem na soubor manifestu. Takový soubor může vypadat například takto:

    CACHE MANIFEST
    # v1 2011-08-14
    # This is another comment
    index.html
    cache.html
    style.css
    image1.png
    
    # Use from network if available
    NETWORK:
    network.html
    
    # Fallback content
    FALLBACK:
    / fallback.html

    Který obsahuje tři části (nezáleží na pořadí a každá sekce se může vyskytnout vícekrát nebo vůbec). První v ukázce je CACHE, která určuje, jaké soubory se mají cachovat. Tato sekce se nemusí explicitně uvádět, je to výchozí sekce (v ukázce se jedná o index.html, cache.html, …). Další je NETWORK, kde se sděluje, které soubory se mají načítat z internetu. Vhodné například pro skriptíky sledující návštěvnost. A pak tu je FALLBACK sekce oznamující jakou jinou stránku zobrazit, pokud požadovaná stránka v cache není.

    Není to nic složitého. Jen si dejte pozor: zástupná znak hvězdičku nelze použít v sekci CACHE a ve FALLBACK sekci je první parametr prefix, pro které pravidlo platí; tedy lomítko znamená všechny stránky. Pro podrobnější popis hodím 303 na kapitolu Let's take this offline z Dive Into HTML5.

    V odkazovaném článku se jako ukázková aplikace popisuje Wikipedia s touto funkcionalitou: jakákoliv navštívená stránka se automaticky dostane do cache a pokud požadovaná stránka není dostupná, zobrazí se speciální stránka. To je pro „statický“ obsah s užitečnými informacemi dobré řešení.

    Horší to je s dynamickým webem, kde není žádoucí cachovat každou stránku. Může se jednat o sociální síť, e-shop či jinou dynamickou aplikaci, kde se každá stránka zobrazuje s měnícími se stavy. Také by stránky mohli zbytečně zabírat spoustu místa. Proto cachování každé stránky v tomto případě postrádá smysl nebo by vedlo jen ke zmatení uživatele. Zde by dobrým řešením mohlo být jen sdělit fallback a jinak vše tahat čerstvé z internetu.

    Něco takového bohužel nejde udělat, protože každá stránka obsahující manifest je automaticky cachována aniž by se to explicitně uvedlo v manifestu. Nejde to potlačit ani s hlavičkou Cache-Control: no-cache, no-store. To je dost nepříjemné a tato drobnost mi přijde jako velký nedostatek.

    Hned by mohlo napadnout, že se manifest může dát jen na jednu určitou stránky a na ostatní nikoliv. Pravda, ale stále jedna stránka bude cachována a hlavně(!) uživatel musí danou stránku navštívit. Pokud uživatel tak neudělá, prohlížeč se nedozví o manifestu a offline verze jakoby neexistovala.

    Řešení ale neleží daleko, jen se musí trochu hackovat – vytvořit offline stránku, která jako jediná bude mít odkaz na manifest a nebude na offline stránku nikde odkaz. Tuto stránku potom přibalit ke každé stránce v tagu iframe. Tím se zajistí, že online stránky se do cache nedostanou, a přitom se o manifestu prohlížeč dozví z jakékoliv stránky. (Já říkal, že to bude hack. ;))

    K lepšímu řešení jsem se zatím nedobral ani po pátráním po internetu. Snad jednou bude možné hack zahodit a udělat to systémovější cestou.