Learning

Zápisky, ne přednášky

Co jsem si přečetl a co si z toho odnáším.

Krátké články o tom, co mě zrovna zajímá — od frontendu a AI po cokoli dalšího, na co se zeptám. Můžeš je číst jako klasický článek, nebo přepnout na prezentační režim.

Engineering31. srpna 2026 5 min

Podpis dokazuje přístup ke klíči, ne pravdu

Hardwarový modul chrání klíč před vytažením, ne před zneužitím

C2PA slibuje, že podepsaná fotka je pravá. Na Androidu stačí root a hardwarový modul podepíše cokoliv, aniž by klíč vydal. Rozbor toho, proč je hranicí právo klíč zavolat, ne jeho držení.

Číst
Engineering31. srpna 2026 5 min

Tvůj kód už ten DAG obsahuje, nekresli ho znovu

Orchestrace nepotřebuje graf navíc, potřebuje trvanlivé hranice

Airflow tě nutí nakreslit graf závislostí, který strom kódu už dávno má. Rozbor toho, proč je skutečným problémem durable execution hranice kroku, a proč verzování rozbíjí běžící workflow.

Číst
Engineering31. srpna 2026 5 min

Crawler si vybere to dražší z tvých rozhraní

Mohutnost URL prostoru je závazek, ne vlastnost routeru

git.kernel.org dává celá data ke stažení jedním clonem. Scrapery přesto renderují miliardy HTML stránek a berou pětinu výkonu. Rozbor toho, proč se kombinatorický URL prostor stane účtem.

Číst
Frontend31. srpna 2026 5 min

Context je vyhledávání nahoru, ne kanál dolů

Hodnotu si komponenta při renderu najde, nikdo jí ji neposílá

Context se popisuje jako trubka, kterou data tečou stromem dolů. Ve skutečnosti je to hledání nejbližšího providera nahoru při čtení. Z toho plyne, proč se překreslí každý konzument bez ohledu na to, co si z hodnoty vzal.

Číst
Engineering31. srpna 2026 6 min

Cache zneplatníš jen tam, kam dosáhneš

Vrstvy se liší tím, kdo je vlastní, ne rychlostí

Prohlížeč, CDN, aplikace a databáze necachují jednu věc čtyřikrát. Každá vrstva má jiný klíč a jiného vlastníka. Rozbor toho, proč se verzované URL používá právě tam, kam ruka nedosáhne.

Číst
Zdraví Na přání27. srpna 2026 8 min

Ketóza je ukazatel, ne účinná látka

Tam, kde ketodieta prokazatelně funguje, ketony obvykle nejsou důvod

Nejsilnější důkazy pro ketodietu nepocházejí z hubnutí, ale z neurologie. A i tam experimenty ukazují, že samotné ketolátky nejspíš nejsou tím, co léčí. Ketometr měří vedlejší produkt.

Číst
Frontend24. srpna 2026 6 min

Transition nic nezrychlí, jen dovolí práci zahodit

Označíš update jako přerušitelný, ne jako méně důležitý

startTransition neposílá update na pozadí ani ho neodkládá. Označí ho jako práci, kterou smí React kdykoli přerušit a spočítat znovu. Z toho plyne každé jeho omezení včetně zákazu u textových inputů.

Číst
Engineering24. srpna 2026 5 min

O kvalitě standardní knihovny nerozhoduje rozsah

Rozhoduje o ní kapacita organizace, která ji roky drží

Spor o velké versus minimální standardní knihovny je špatně položený. Python, Go a Rust ukazují, že kvalita nezávisí na rozsahu, ale na tom, kolik trvalé pozornosti má tým k dispozici.

Číst
AI24. srpna 2026 6 min

Stejné váhy ještě neznamenají stejný model

Attention kernel, kvantizace KV cache i počet GPU mění odpověď

Stejný soubor s vahami, stejný prompt, jiný výsledek. Rozbor toho, jak se numerický šum v inference stacku přes autoregresi promění v jiné volání nástroje — a proč benchmark bez popisu stacku nic neměří.

Číst
AI24. srpna 2026 6 min

Harness má poločas rozpadu, model ho pohltí

Co dnes obcházíš promptem, umí příští model sám od sebe

Anthropic smazal 80 % systémového promptu Claude Code, protože model mezitím tu práci převzal. Rozbor cyklu trénuj, pohlť, odhoď — a toho, které části harnessu přežijí a které jsou jen náplast.

Číst
AI24. srpna 2026 6 min

Token nepatří do sandboxu, doplň ho až v proxy

A doplň ho podle struktury požadavku, ne podle textu

v0 pouští vygenerovaný kód proti Snowflaku, aniž by mu dal přístupový token. Rozbor toho, jak se tajemství doplňuje až za hranicí sandboxu a proč slepé nahrazení řetězce udělá z proxy orákulum.

Číst
Engineering24. srpna 2026 6 min

BFF není sdílená brána, je serverová půlka klienta

Jedna zkušenost, jeden backend, jeden tým, který drží obojí

Backend-for-Frontend se často zaměňuje s API bránou. Rozdíl je vlastnictví: BFF patří týmu, který dělá to rozhraní, a proto je duplicita mezi dvěma BFF vlastnost, ne zápach.

Číst
Stavebnictví Na přání21. srpna 2026 7 min

Radon je v půdě, ale pumpu dělá dům

Proto index pozemku nepředpoví, kolik ho naměříš v obýváku

Radon sám tělu neublíží, vydechneš ho zpátky. Škodí jeho rozpadová rodina, kterou do domu aktivně nasává podtlak — a proto česká norma od roku 2019 přestala navrhovat ochranu podle radonového indexu pozemku.

Číst
Frontend17. srpna 2026 6 min

React neukládá nový stav, ukládá frontu úprav

Tři stejná volání setState dají jedničku, nebo trojku, podle tvaru

setState nic nenastaví. Zařadí položku do fronty, kterou React projede až po doběhnutí handleru. Z toho plyne, proč trojí zvýšení o jedna skončí na jedničce a kdy se batchování láme.

Číst
Engineering17. srpna 2026 6 min

Rychlost úložiště se ti tiše zapíše do architektury

Z jedné milisekundy na pět a smyčka se protáhla na minuty

Vercel přesunul stav buildů z Redisu do DynamoDB. Latence stoupla o čtyři milisekundy a supply loop se zhroutil, protože v kódu byl roky zapečený nevyslovený předpoklad o rychlosti čtení.

Číst
Frontend17. srpna 2026 6 min

Ostrovy obracejí výchozí stav stránky na statický

Interaktivita přestává být default a stává se ohraničenou výjimkou

Islands architecture není optimalizace hydratace. Je to obrácení defaultu: stránka je statické HTML a interaktivní je jen to, co si to výslovně vyžádá, každý ostrov nezávisle na ostatních.

Číst
AI17. srpna 2026 5 min

Nech model štítek vymyslet, pak ho teprve namapuj

U velkého číselníku je generování levnější než výběr ze seznamu

Klasifikace proti tisícům kategorií se dělá tak, že se modelu ten seznam neukáže vůbec. Nechá se vymyslet kategorii od oka a embedding ji pak přiřadí k reálné položce číselníku.

Číst
AI17. srpna 2026 6 min

Fakta se do vah nekomprimují, postupy ano

Znalost stojí zhruba dva bity na parametr, uvažování se škáluje líp

Malé modely dnes řeší olympiádní matematiku a přitom si nepamatují, kdo co kdy udělal. Není to regrese ani nedodělek, ale důsledek toho, že fakta a postupy se v parametrech chovají úplně jinak.

Číst
Engineering17. srpna 2026 6 min

Nudná technologie přestává být nudná mimo hlavní cestu

SQLite šestnáct let neztratilo zápis, dokud ho někdo nepoužil jinak

Tailscale mělo za půl roku devatenáct poškozených databází. Na vině byl šestnáct let starý závod v SQLite, který nikdo nikdy nepotkal, protože nikdo nečekpointoval ručně a tak často.

Číst
Frontend10. srpna 2026 6 min

Server state není tvůj stav, jen ho máš půjčený

Proč kopírování dat ze serveru do useState je bug, ne pohodlí

Data ze serveru nevlastníš, jen si je půjčuješ k zobrazení. Jakmile je zkopíruješ do useState, vyrobíš zastaralou kopii a odřízneš se od synchronizace. Tenhle rozdíl mění, jak stavíš datovou vrstvu.

Číst
Frontend10. srpna 2026 6 min

useEffect běží po paintu, useLayoutEffect před ním

Kde v timeline render–commit sedí tvůj effect, rozhoduje o všem

React rozdělí každý update na render a commit. Kde mezi nimi a paintem sedí tvůj effect, rozhoduje o tom, jestli změříš DOM včas a jestli uživatel uvidí problikávat mezistav.

Číst
Frontend3. srpna 2026 6 min

Rendering strategie je volba, kdy vyrobíš HTML

CSR, SSR, SSG a ISR jako čtyři body na jedné ose času

CSR, SSR, SSG a ISR nejsou čtyři technologie, ale čtyři odpovědi na jednu otázku: kdy vzniká HTML. Rozbor té osy — od build timu po každý request — a čím za každý posun platíš na čerstvosti, ceně a rychlosti.

Číst
Engineering3. srpna 2026 4 min

Přeposlat výstup AI z tebe dělá zbytečný mezičlánek

Proč tím v code review přehazuješ implementaci na recenzenta

Když bez přečtení přeposíláš výstup modelu dál, příjemce si ho mohl vygenerovat sám — rychleji a s lepším kontextem. V code review to obrací role: recenzent dělá tvou práci. Rozbor toho, kde se ztrácí odpovědnost.

Číst
Engineering3. srpna 2026 5 min

Průměr umí ukázat přesný opak pravdy

Proč se ti dvě populace requestů schovají do jednoho čísla

Průměrná latence stoupla o 9 %, medián ze stejných čísel klesl. Rozbor toho, jak multimodální rozdělení schová dvě protichůdné změny do jednoho čísla a proč CDF řekne víc než kterýkoli percentil.

Číst
Frontend3. srpna 2026 5 min

React si hooky pamatuje podle pořadí, ne podle jména

Proč hooky visí na fiberu jako spojový seznam a kurzor se posouvá

React neví, že se tvůj hook jmenuje useState. Ví jen, kolikátý v pořadí je. Hooky visí na fiberu jako spojový seznam a při každém renderu se čte odshora. Proto je podmíněný hook zakázaný — a proč to není zbytečné pravidlo.

Číst
AI3. srpna 2026 5 min

CVE je nepodložené tvrzení, ne ověřený fakt

Jak se do databází zranitelností dostaly vymyšlené SQLite díry

Někdo nahrál desítky vymyšlených zranitelností SQLite — funkce, které neexistují, řádky za koncem souboru. Prošly, protože registrace CVE nevyžaduje důkaz. Rozbor toho, proč je CVE jen tvrzení a proč to jazykové modely levně zneužijí.

Číst
Engineering27. července 2026 5 min

Většina SIMD kódu má pořád stejný tvar

Pět kroků, které z vektorizace horké smyčky dělají rutinu

SIMD má pověst arkánního umění, ale běžný případ se vejde do pěti kroků, které se opakují napořád. Rozbor toho tvaru a proč se ho vyplatí napsat ručně, když to kompilátor stejně neudělá.

Číst
AI20. července 2026 5 min

Ne model, ale harness rozhoduje o ceně agenta

Proč stejný model spálí podle uspořádání pipeline i šedesátkrát víc tokenů

Stejný model spotřebuje na téže úloze až šedesátšestkrát různě tokenů — nerozhoduje model, ale harness kolem něj. Rozbor toho, proč se vyplatí rozdělit role mezi levný a drahý model a oddělit toho, kdo nález najde, od toho, kdo ho ověří.

Číst
Engineering20. července 2026 5 min

Agenti odstraní tření, a s ním i sdílené porozumění

Proč věž roste dál i poté, co tým přestal rozumět vlastnímu systému

Zpomalení z code review a koordinace nebylo jen ztráta času — byla to cesta, jak se tvoje porozumění stalo mým. Agenti to tření odstraní a věž roste dál i poté, co sdílený model systému tiše zmizel.

Číst
AI20. července 2026 5 min

Zakázat přímou akci nestačí, agent ji složí oklikou

Jak honeypot přiměl Claude vyhláskovat cizí data po písmenech přes odkazy

Claude nesměl volat libovolné URL. Směl ale následovat odkazy z už načtené stránky — a to stačilo. Útočník postavil web s písmeny v cestách a agent přes něj vyhláskoval jméno, zaměstnavatele i město svého uživatele.

Číst
Frontend13. července 2026 5 min

Math v prohlížeči přestal být bitově přenosný

Proč Math.tanh(0.8) vrací na Linuxu, macOS a Windows tři různá čísla

Až do Chrome 148 vracel Math.tanh všude stejné bity. Pak V8 přepnul na systémovou libm a stejný kód začal na každém OS počítat jinak. Rozbor toho, proč IEEE 754 nikdy nesliboval to, na co ses spoléhal.

Číst
Engineering13. července 2026 6 min

Přepsat půl milionu řádků svede až kontrolovatelná dekompozice

Jak Bun převedli ze Zigu do Rustu za jedenáct dní pomocí testů jako arbitra

Bun přepsali z 535 tisíc řádků Zigu do Rustu za jedenáct dní se 64 agenty naráz. Nedrželo to pohromadě díky chytrým agentům, ale díky testům, které nezávisely na implementaci, a recenzentovi, který o kódu nic nevěděl.

Číst
AI13. července 2026 5 min

Agent tě stojí 33 tisíc tokenů, než přečte první slovo

Kde se bere stálá daň z kontextu a proč ji přepis cache uprostřed práce zdvojnásobí

Claude Code pošle přes 33 tisíc tokenů dřív, než dorazí tvůj prompt; OpenCode sedm. Rozdíl není v kvalitě, ale ve schopnostech, které visí v kontextu pořád. Rozbor stálé daně z kontextu a toho, proč ji nikdo neměří.

Číst
Frontend6. července 2026 5 min

Tlačítko má jedinou práci: přijmout vstup hned

Proč iPhone bufferuje rychlá klepnutí a Android je během animace zahodí

Otoč fotku osmkrát rychle za sebou. iPhone provede všech osm, Android půlku zahodí, protože zrovna běží animace. Za tím rozdílem je celá filozofie: nikdy nenuť uživatele čekat, až animace doběhne.

Číst
AI6. července 2026 5 min

Lepší model, horší dodržování cizího schématu

Proč nejnovější Claude modely komolí edit tool, který starší zvládaly

Novější modely Anthropicu vymýšlejí do volání nástroje pole, která ve schématu nejsou. Není to regrese kvality, ale stopa po tom, na čem se trénovaly. Rozbor toho, proč silnější prior škodí.

Číst
Engineering2. července 2026 5 min

Zrychlení se počítá až za prahem

Proč desetinásobné zlepšení může být úplně k ničemu

Zkrátil jsi dotaz z deseti minut na třicet sekund a nikdo si nevšiml. Výkon nemá lineární hodnotu — počítá se, teprve když překročí práh pozornosti, diskrétní jednotku nebo bottleneck. Tři místa, kde optimalizace ztrácí smysl.

Číst
Frontend2. července 2026 6 min

Jednotkou prefetche má být trasa, ne odkaz

Jak si server-driven navigace půjčuje trik ze single-page aplikací

Server-driven navigace působí pomalu, protože čeká na síť. Next.js přestal prefetchovat každý odkaz zvlášť a začal cachovat jednu znovupoužitelnou skořápku na trasu — jako code splitting v SPA. Rozbor toho mentálního posunu.

Číst
AI2. července 2026 6 min

Prompt injection ustojí model, ne chytrý prompt

Co ukázalo šest tisíc útoků na e-mailového agenta

Dva tisíce lidí poslalo přes šest tisíc e-mailů, aby z AI agenta vytáhli tajný soubor. Neuspěl nikdo. Co to říká o obraně LLM agentů — a proč autor stejně tomu agentovi nedá právo odesílat maily.

Číst
Engineering2. července 2026 6 min

Rychlost paměti je otázka lokality, ne kapacity

Proč stejný součet poběží patnáctkrát pomaleji jen podle pořadí přístupu

Sečíst stejná čísla může trvat patnáctkrát déle jen podle pořadí, v jakém k nim sáhneš. Rozbor pěti vrstev paměťové hierarchie, kde se lokalita láme, a proč na tom záleží víc než na velikosti cache.

Číst
AI20. června 2026 6 min

Prompt engineering, seriózně

Šest principů, které fungují napříč modely

Ne triky, ne magie. Šest osvědčených principů, jak dostat z jazykových modelů použitelný výstup — a proč fungují.

Číst
Frontend15. června 2026 8 min

Jak funguje React Reconciler

Fiber, priority a to, co se děje mezi setState a paintem

Krátký průvodce vnitřkem Reactu — proč byl fiber revoluce, jak se plánuje práce a co to znamená pro tvůj kód.

Číst