69 episodes

Zastavte se na kávu s Honzou Novotným a Petrem Ferschmannem a nic vás při tvorbě software nesemele. Od vývojařů přes designery, architekty až po zakladatele společností. Za kamerou je Tomáš Hodr.

Kafemlejnek.TV Kafemlejnek.TV

    • Technology

Zastavte se na kávu s Honzou Novotným a Petrem Ferschmannem a nic vás při tvorbě software nesemele. Od vývojařů přes designery, architekty až po zakladatele společností. Za kamerou je Tomáš Hodr.

    67 - Canarytrace

    67 - Canarytrace

    V druhém dílu s Radimem Danielem Pánkem se podíváme na zoubek nástroji Canarytrace, který Radim s týmem vyvíjí a který umožňuje auditing výkonosti webové aplikace z pohledu uživatele. Díl je tentokrát lepší sledovat na YouTube, protože se v něm hojně odkazujeme na to, co je vidět na monitoru a ve videozáznamu uvidíte záznam obrazovky.

    Canarytrace je nástroj úzce integrovaný do Google Chrome, který přes jeho debug protokol sniffuje telemetrická data prohlížeče a ukládá je do Elasticsearch. Nad vybranými metrikami potom vytváří reporty, grafy a notifikuje odpovědné stakeholdery. V průběhu 30 minut v rychlosti prolétneme základní funkce tohoto nástroje.

    Zajímavým faktem je to, že nástroj může běžet 24/7 jako jeden z běžných uživatelů vaší webové aplikace a průběžně monitoruje její odezvy. V podstatě je to kontinuálně běžící web.dev / Lighthouse, který měří chování aplikace za běžného provozu i v průběhu speciálně připravených výkonnostních testů.

    Pokud jste nadšenci do testování výkonnosti – Radim hledá pro Canarytrace co-foundera.

    • 32 min
    66 - Výkonnostní testování

    66 - Výkonnostní testování

    Radim Daniel Pánek je v Čechách známým evangelizátorem výkonnostního testování. Sám natáčí vlog o výkonnostním testování TEST-STACK, přednáší a spoluorganizuje veřejné akce. Kromě toho je také zakladatelem startupu Canarytrace, který umožňuje auditing výkonosti webové aplikace z pohledu uživatele. To jsou důvody, proč jsme si právě jeho pozvali do dalšího dílu Kafemlenku, který je zaměřený na výkonnostní testování.

    Natáčení jsme rozdělili na dvě části – v této se bavíme o výkonnostním testování obecně – například, jak připravit infrastrukturu, data a na co si při přípravě dát pozor. Druhá se zaměří přímo na Canarytrace – jaké možnosti nám tento nástroj přinese, jak vnitřně funguje a v jakých případech se ho vyplatí použít.

    Radim se s námi podělil o řadu zajímavých vhledů do života výkonnostního testera, který spolupracuje s různými firmami na IT trhu. Dozvíte se, že metriky jsou základ každého systému. Základem je také analýza, která nám řekne, které parametry systému jsou žádoucí a kde se předpokládá jeho růst. Analýza také odpoví na to, jaké objemy dat bude nutné připravit a jaké testovací uživatele k tomu využít. Padne také zajímavý fakt, že dobré je v úvodu testování prověřit čistý výkon “prázdné infrastruktury” bez vlastní aplikace, aby bylo možné stanovit “baseline”. Zkrátka jednoduše – drobných tipů a faktů během natáčení proběhne celkem dost. Doufáme, že rozšíří obzory i vám.

    • 49 min
    65 - České zlato - Mapy.cz

    65 - České zlato - Mapy.cz

    Mapy.cz jsou klenotem českého Seznamu a troufám si odhadnout, že neexistuje Čech, který by je neznal. Mnoho z nás je běžně používá ať už pro plánování a navigaci na pěších, či cyklo výletech, jiní i jakou auto-navigaci. Osobně jsem s Mapy.cz absolvoval cestu až do řeckých Atén a offline mapy, mě bezpečně provedly přes několik zemí bez jediného zaváhání. V naší zemi nám Mapy.cz nabízejí mnohem více možností, než konkurenční celosvětoví SW hegemoni jako je Google nebo Apple. Proto mi bylo velkou ctí v Kafemlejnku uvítat Martina Baka, který tým vyvíjející tuto aplikaci vede.

    Hned v úvodu se od Martina dozvídáme, že Mapy.cz jsou provozovány v Kubernetes clusteru, frontend je napsán převážně ve vanilla JavaScriptu a pouze jedna izolovaná část je napsána v Reactu. V týmu stále probíhá diskuse, zda-li se vydají cestou Reactu nebo nikoliv – kdysi se používala knihovna JAK, která je v současné době dostupná jako open-source. Data jsou ukládána převážně v PosgreSQL a jeho rozšíření PostGIS. Martin překvapivě tvrdí, že současní vývojáři nemusí nijak zásadně řešit geografickou matematiku, protože ta byla “oprogramována” před lety a od té doby funguje v podstatě beze změny.

    Grafické dlaždice jsou uloženy v jedném velikém souboru, kde jsou dostupné na konkrétních souřadnicích. Aktuálně používají 9+9 fyzických strojů na poskytování rastrových dat z výše uvedeného velkého souboru a obsluhují 20 tisíc reqs/sec. Do budoucna plánují postupnou migraci na nové řešení založené na CDN, které Martin v podcastu celkem podrobně popisuje.

    Pro vykreslování map používají knihovnu Mapnik a to jak pro vlastní dataset, tak i pro data přebíraná z OpenStreetMap. Na toto téma jsme se pustili i do určitého fabulování na téma schvalování úprav v OpenStreetMap, takže pokud někdo z posluchačů je v této oblasti odborníkem, budeme rádi za upřesnění informací, třeba v komentáři – díky!

    Snažíme se z Martina vytáhnout více informací o tom, jak funguje algoritmus pro vyhledání optimální trasy z bodu A do bodu B avšak neúspěšně. Každopádně se dozvídáme, že algoritmus funguje samostatně jak na klientovi (přímo v aplikaci), tak na serveru. Vyhledání trasy tedy funguje i v offline režimu.

    Překvapením pro nás bylo poodkrytí způsobu, jak jsou generovány návrhy na výlety v požadované délce. Čekali jsme kdoví jak sofistikovaný algoritmus pro návrhy oblíbených POI, ale vlastně se jedná jen o nalezení okruhu v okolí tak, aby uživatel neprošel 2x stejným úsekem. Plno funkcí, kde jsme čekali nějakou magii, skrývá jen velmi jednoduchá, ale praktická řešení.

    Zajímavá je informace o spolupráci s Windy.com, jejímž výsledkem je i pokus o rozšíření českých map do světa pod značkou WindyMaps.

    Narazili jsme i na funkce pro monitorování šíření Covidu, která je v mapách stále dostupná a zamýšleli se nad její smysluplností. Tuhle část zde nebudu podrobněji komentovat a doporučuji poslechnutí záznamu od 48 minuty.

    Tým pro Mapy.cz stále hledá nové vývojáře. Hledají především Python, C++ vývojáře. Umožňují práci z domu, ale preferují setkávání 2x týdně v Praze. Probíráme, jak vypadá přijímací pohovor do Seznamu a co mohou případní uchazeči při práci v Seznamu čekat.

    • 1 hr 2 min
    64 - Vývojářem ve Zboží.cz

    64 - Vývojářem ve Zboží.cz

    Zboží.cz asi není třeba dlouze představovat – je to jeden ze stavebních kamenů české jedničky Seznam.cz. Agreguje nabídky zboží a umožňuje vyhledávat zajímavé nabídky skrz rozsáhlý sortiment českých e-shopů. Kombinuje katalog, fulltextové vyhledávání a PPC systém v jednom. Do tohoto dílu se nám podařilo dohodnout rozhovor s Petrem Novákem, který vede vývojáře, kteří mají rozvoj Zboží.cz na starosti. I v tomto případě jsme využili příležitosti a natočili rozhovory hned dva – v příštím díle se budete moci těšit na Martina Baka, který má na starosti Mapy.cz.

    Petr Novák nám představil architekturu a způsob vývoje. Dozvěděli jsme se, že Zboží.cz je složeno s desítek komponent (dalo by se říci mikroslužeb) a je provozováno na privátním cloudu Seznamu z Čech. Produktová databáze je v MySQL, kde již naráží na velikostní limity a tak pokukují po Vitess.io a možnosti automatického shardování, které nabízí. Vedle toho používají také Elasticsearch a samozřejmě i vlastní “seznamácké” fulltextové vyhledávání. Zajímavé je, že frontendový index je aktualizován celý – tedy nikoliv inkrementálně, ale je vždy vybudován z nuly.

    Kromě PPC části a s tím souvisejícího “účetnictví” je zajímavé načítání a agregace nabídek s tisíců e-shopů, které dohromady tvoří miliony produktů, které se často mezi sebou překrývají. K agregaci je vytvořena umělá inteligence, která v kooperaci s lidskou supervizí a korekcí slučuje nabídky e-shopů do srozumitelných a porovnatelných produktů v katalogu Zboží.cz.

    V týmu Zboží.cz najdete vývojáře v C++, Pythonu a frontend je celý v Typescriptu/Reactu, nově se přepisuje na SSR v Next.JS. Pro přesnos dat se historicky používá protokol FastRPC, někde REST API. Poměrně detailně probíráme způsob nasazování nových verzí aplikace, monitoring služeb a další věci, které spadají pod termín SRE.

    V Seznamu preferují pravidelné osobní setkání týmů, ale ani jim se v Covidové době nevyhnul částečný full remote. I na to přišla řeč, stejně tak jako na komunikační nástroje, které používají a v závěru probíráme, které pro které role hledají ve Zboží.cz nové vývojáře.

    Doufáme, že vás tento díl bude bavit alespoň tak, jak nás bavilo jeho natáčení.

    • 1 hr 7 min
    63 - Zvláštnosti vývoje algoritmického automatu

    63 - Zvláštnosti vývoje algoritmického automatu

    V tomto dílu se s Františkem soustředíme především na zásadní rozdíly v přístupu k vývoji aplikace pro algoritmické obchodování a běžnými enterprise aplikacemi, které pravděpodobně vytváří řada z nás. Františkova předchozí kariéra se odehrávala především v bankovním sektoru v oblasti elektronického bankovnictví. Vývoj podobných webových aplikací si každý z nás v dnešní době už asi umí představit, v případě bankovnictví je práce okořeněná navíc jen větším důrazem na kvalitu výstupu a bezpečnost. Co je tedy tak odlišného při psaní obchodovacího automatu?!

    Jednou ze zajímavostí je to, že pokud optimalizujete obchodovací algoritmus na rychlost (latenci), vyplatí se v tomto segmentu znovu vynalézat kolo. Vymýšlení vlastních optimalizovaných řešení, místo použití generických knihoven, může ve svém výsledku přinést v kritických momentech několik mikrosekund náskoku, který umožní algoritmu vyhrát v konkurenci ostatních. František také bez uzardění přiznává, že teprve při psaní algotradingové aplikace se naučil reálně programovat. Teprve tady si skutečně sáhnul na vlastní implementaci B-stromů a řadu dalších low-level datových struktur a algoritmů, které my ostatní používáme zaobalené do high-level knihoven aniž bychom o tom leckdy sami věděli.

    Další z překvapivých momentů je ten, že chyba aplikace s potenciální finanční ztrátou, může být pro zadavatele – obchodníky bez problémů akceptovatelná. Pokud na druhé straně dostanou novou verzi aplikace s úpravami, které jim umožní obchodovat s náskokem oproti ostatním a potenciálně vydělat násobně víc.

    Dozvíme se, že na první pohled složité optimalizace nemusí v Javě ve výsledku až tak bolet. Jednou formou zpomalení v aplikacích obecně jsou systémová volání kernelu (context switch). Při psaní aplikací, které vyžadují nekompromisní výkon (jakými jsou např. i databáze) se doporučuje minimalizovat počet systémových volání kernelu a co lze si spravovat aplikačně sami. František zmiňuje existenci síťových karet, které si umí samy generovat časový otisk (dotaz na aktuální čas totiž obvykle vyžaduje právě systémové volání) a možnost vyjmout síťovou kartou ze správy kernelem a spravovat si ji nativně aplikací přes C knihovnu implementující TCP/IP stack. Tímto způsobem je možné se dostat i na řádově lepší rychlosti.

    Věříme, že tento druhý díl, pohladí na duši všechny tech-geeky mezi našimi posluchači.

    Tento díl vám přináší Luhačovická pražírna kávy. Kávové předplatné můžete spolu s Feršem a Novojem vychutnávat společně. Při zadání slevového kódu “kafemlejnek” v košíku dostanou naši posluchači exklusivní slevu 15%.

    • 1 hr 7 min
    62 - Taje obchodování na energetické burze

    62 - Taje obchodování na energetické burze

    Námět na tento díl vznikl na loňském ročníku jOpenSpace, kde měl František Řezáč skvělý offline příspěvek o zvláštnostech psaní algoritmických automatů pro obchodování na energetické burze. Vzhledem k tomu, že byl tak zajímavý a zároveň nebyl zaznamenán, jsme se v Kafemlejnek.TV dohodli, že tyto zkušenosti nasdílíme přes náš kanál.

    V prvním díle našeho rozhovoru s Františkem se snažíme nejdříve proniknout do specifik vlastních burze s energiemi a především Ferš hosta trápí svými dotěrnými otázkami, které pramení z jeho zkušeností s fotovoltaikou na domě. Pokud vás zajímají čistě IT informace, přeskočte rovnou na druhý díl z této série, kde se budeme už skutečně věnovat pouze programování. V tomto se dozvíte, jak jsou producenti a spotřebitelé energie trhem incentivizováni dodržovat plánované dodávky a odběry elektřiny, jak se měří a rozpočítává spotřeba elektřiny a jak se odhaduje spotřeba na základě historické zkušenosti a diskrétních odečtech. V řadě detailů nebudou informace dostatečně přesné, ale pro naše účely jsou dostačující. Energetika je skutečně velmi složité odvětví s klíčovým dopadem na naše životy, a proto by mohl být tento náhled na tuto problematiku užitečný i pro vás.

    • 45 min

Top Podcasts In Technology

Lex Fridman Podcast
Lex Fridman
All-In with Chamath, Jason, Sacks & Friedberg
All-In Podcast, LLC
In Her Ellement
Boston Consulting Group BCG
Acquired
Ben Gilbert and David Rosenthal
Deep Questions with Cal Newport
Cal Newport
Hard Fork
The New York Times