• Starbucks nepoužívá dvoufázový commit

    Gregor Hohpe, autor knihy Enter­p­rise Integ­ra­tion Patterns, napsal článek Starbucks Does Not Use Two-Phase Commit, který ani po tolika letech neztratil na aktuál­nosti. S jeho laskavým svolením jsem článek přeložil do češtiny.

    19. listo­padu 2004

    Hotto Cocoa o Kudasai

    Právě jsem se vrátil z dvoutýden­ního výletu do Japon­ska. Jednou z nejznámějších památek je velký počet kaváren Starbucks (スターバックス) obzvlášť kolem Shinjuku a Roppongi. Během čekání na své „Hotto Cocoa“ jsem začal přemýšlet nad tím, jak Starbucks zpracovává objed­návky nápojů. Stejně jako většina jiných podniků jsou primárně zaměřeni na maxima­li­zaci propust­nosti objed­návek. Víc objed­návek znamená větší tržbu. A proto používají asynch­ronní zpracování. Když si objed­náte, tak pokladní označí kelímek na kávu vaším jménem a zařadí ho do fronty. Fronta je úplně doslova fronta kelímků na kávu seřazených na vrchu kávovaru. Tato fronta odděluje pokladní a baristu a dovoluje pokladní dál přijímat objed­návky, i když je barista zrovna zahlcený. Pokud začne být v kavárně rušno, tak jim to umožňuje nasadit víc baristů ve scénáři Compe­ting Consumer.

  • Společné čtení knih

    Na blogu Think Fort jsem kdysi narazil na společném čtení knih, ale teprve nedávno jsem se rozhoupal taky začít. Cílem aktivity je společně vybrat jednu knihu, kterou si každý doma sám přečte. Následně se sejdeme a o knize disku­tu­jeme. Čteme zhruba 100 stran měsíčně, o kterých pak asi hodinu a půl diskutujeme.

    Sám čtu dost, díky dojíždění na to mám vyhra­zený čas (i když jsou lidé, kteří čtou několi­kanásobně víc než já). Chtěl jsem zážitek zpros­třed­kovat i ostatním a mít možnost probrat, co nám dává smysl a co třeba už ne. Například loni jsem v jednom code review připomín­koval stořád­kovou metodu, která mi přišla příliš dlouhá. Myslím, že jsem tenkrát nebyl moc úspěšný, ale domnívám se, že po společném čtení knihy Clean Code panuje ohledně délky metody větší, byť ne úplná, shoda.

  • O náboru juniorů

    Před rokem jsem hledal práci, teď občas bývám u pohovorů na druhé straně. Mám rád junior programátory, pamatuji si, že i já byl takový a bylo o mě dobře postaráno, tak bych to rád vracel. Chtěl bych se podělit o své zážitky, protože jsem byl bohužel z několika kandidátů zklamaný. Myslím, že by mé poznámky mohly některým pomoct s přípra­vou. Mohli by lépe využít svého poten­ciálu, abych je příště nemusel odmítnout.

  • Hodina kódu s LightBot a Meet Edison

    Díky všeobec­nému nadšení na jOpenSpace se zvýšilo moje odhod­lání ohledně výuky progra­mování dětí. Než stačilo nadšení trochu opadnout, upozornil mě Martin Javorek se svým účtem Progra­mu­jeme hrou na akci Hour of Code (česky Hodina kódu), které se účastní desítky milionů žáků z více než 180 zemí světa, jejímž cílem je ukázat, že infor­ma­tika je zábavná a tvůrčí, že není třeba se jí bát a že to zvládne každý. Napsal jsem do školy, kam chodí syn, jestli se nepři­pojíme, a bylo to.

  • Pražský GeeCON 2017

    Letos jsem si vynahradil deficit návštěv konfe­rencí. Po jOpenSpace jsem vyrazil i na pražskou odnož polské konfe­rence GeeCON. Nehodlám probírat všechny přednášky. Chci si uchovat své poznámky a zhodno­tit, zda jít i příště.

  • jOpenSpace 2017

    Stavěl jsem a zařizoval dům, takže jsem pár let trochu zanedbával konfe­rence (kromě třeba Devel 2016). Letos jsem se konečně vypravil na jOpenS­pace 2017 a bylo to naprosto skvělé. Sepsal jsem si pro sebe pár poznámek, které můžete brát i jako lákadlo na příští jubilejní ročník.

    jOpenS­pace je nekonfe­rence v tom smyslu, že každý návštěvník musí přijít s vlastní prezen­tací. Na jOpenS­pace jsem potkal 41 chytřejších lidí, než jsem já. Platí, že jste průměrem lidí, kteří vás obklo­pují, takže podobné akce vás táhnou nahoru. Je to úplně jiný zážitek, potkat lidi z twitteru naživo a s některými si i zaběhat.

  • Volby

    Nad tímto příspěvkem přemýšlím snad po každých volbách, a protože se blíží další, pro nás důležité parla­mentní volby, je čas ho konečně sepsat. Moje hlavní rozča­rování neplyne z toho, koho lidi volí (i když to také), ale hlavně z toho, jak málo chodí k volbám. Jsou lidé, kteří se mi přímo chlubili, že k volbám nechodí a jsou na to hrdí. V Toulkách českou minulostí (myslím, že díl 1105) zaznělo:

    …my si totiž nedove­deme vysvět­lit, proč davy nevzdělaných dělníků vycházely do ulic, aby se domohly nikoliv vyšší mzdy, ale voleb­ního práva. Přitom se často střetávaly s orgány státní moci, která v několika přípa­dech použila i střelné zbraně.

  • Nechte kouzlo zmizet

    Robert C. Martin (Uncle Bob) svolil k překladu svého článku Make the Magic go away (z roku 2015).

    Díval jsem se na rxJava. Jde o pěkný malý framework, který pomáhá vytvářet a spravovat obser­very. Zdá se, že filozofií návrhu je, že vše může být pozorováno, vše tudíž může být spravováno callbacky.

    To je samozřejmě velmi stará myšlenka, které se datuje už pro data flow jazyky, funkcionální a jiné dekla­ra­tivní jazyky. Tato myšlenka měla dokonze dozvuk v pozdních 90. letech, kdy byla poprvé vydána kniha GOF. Ti z vás, kteří v té době progra­mo­vali, si možná pamatu­jete, že několik měsíců si každý myslel, že návrhový vzor observer je tak úžasný. Viděli jsme mnoho špatných návrhů posta­vených nad obser­ve­rem. Pak se to zasta­vilo, protože takový návrh byl příliš nepřímý. Kód bylo obtížné debugo­vat. (Testoval to někdo?)

    Neříkám, že rxJava je špatný nápad. Jak říkám, vypadá celkem pěkně. Jen že to není úplně nová myšlenka. Ostatně co je?

  • Energetická náročnost rodinného domu

    Jedna věc je dům postavit a druhá zapla­tit. A to nejen hypotéku, ale i energie. Máte předs­tavu, kolik stojí vaše domác­nost na energiích? Já si vše každý měsíc zapisuju. Pokusil jsem se z čísel něco spočítat. Pokud právě uvažu­jete o vlastním bydlení a propoč­ítáváte návrat­nost inves­tice nebo se jen chcete porov­nat, jak umíte hospo­dařit, tak by vás to mohlo zajímat,

  • Pull request verifier

    Koukám, že už je to čtyři roky, co jsem se tu zamýšlel nad tím, že mi chybí code review. Od té doby jsem se já i náš obor trochu posunuli. Se Softwa­rovým Samurajem jsme používali branch-by-feature (i když už pak nedopsal, že jsme to později vylepšili o plugin hg-flow). K dokona­losti chybělo pár drobností. Dost věcí z code review checklistu jsme kontro­lo­vali manuálně, jako například formátování, pokrytí testy či postřehy, které by odhalila statická analýza kódu (PMD, FindBugs…). Je to otravné a vyčer­pávající, takže už se tolik nesou­středíte na věci jako design, logování atd. Navíc build běžel až nad develop větví, takže se mohlo stát, že jste sice krásně schválili pull request, ale ten po zamergování shodil build. Jak to vylepšit?

subscribe via RSS