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

Applelianos
Applelianos
"Upstream" with Erik Torenberg
Erik Torenberg
Inteligencia Artificial
Pocho Costa
a16z Podcast
Andreessen Horowitz
Dwarkesh Podcast
Dwarkesh Patel
Deep Questions with Cal Newport
Cal Newport