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.

Engineering2. listopadu 2026 3 min

Sdílej kód pod veřejnými funkcemi, ne mezi nimi

Malé pravidlo, které chrání rozhraní před vlastní implementací

Když veřejná funkce volá jinou veřejnou funkci, tahá vnitřní potřeby modulu do rozhraní pro všechny. Škoda přichází až po sdílení, proto ji při review neuvidíš. Soukromý helper to řeší levně.

Číst
Frontend2. listopadu 2026 5 min

Sandbox je jen tak silný jako jeho posluchači

Jak zpráva z izolovaného rámce vedla k převzetí účtu v ChatGPT

HTML Preview v ChatGPT běžel správně na cizím originu a sám o sobě nic nepřečetl. Stačilo mu ale poslat zprávu knihovně pro matematiku, která ji bez ověření vložila do hlavní stránky.

Číst
Engineering2. listopadu 2026 4 min

Invalidace milionu záznamů může být jeden zápis

Časové razítko tagu přesouvá cenu zneplatnění ze zápisu na čtení

Hromadné mazání z cache je drahé a v distribuovaném systému křehké. Vercel místo mazání zapíše čas a každé čtení si ho porovná. Levný zápis ale znamená, že konzistenci platí každé čtení.

Číst
Engineering2. listopadu 2026 5 min

Archiv má tolik významů, kolik je parserů

Proč Astral přepsal tar parser místo zpřísnění toho starého

Bezpečnostní chyba v parseru nemusí být pád ani přetečení. Stačí, že dva nástroje přečtou stejný soubor různě. Tar k tomu svádí a shovívavý parser se dodatečně zpřísnit nedá.

Číst
Engineering26. října 2026 5 min

Strukturálně platný klíč ještě není náhodný klíč

Osm bajtů entropie stačilo, aby celá certifikační autorita padla

Klíče osmi intermediate CA eMudhry šlo dopočítat za méně než sekundu, přesto prošly všemi kontrolami. Revokace navíc chrání jen klienty, kteří ji kontrolují, a curl ani Python to ve výchozím stavu nedělají.

Číst
AI26. října 2026 5 min

Agent přežije pád, když zapisuje záměr před akcí

Write-ahead log a deklarovaná opakovatelnost nástrojů jako základ odolného harnessu

Lokální agent má stav v paměti a na disku, v cloudu ho pád funkce smaže. Řešením není perzistentní VM, ale log záměrů a výsledků a nástroje, které samy říkají, jestli je smíš pustit znovu.

Číst
AI26. října 2026 6 min

Nové chyby kontextu přináší trénink, ne délka okna

Proč model ignoruje tvé instrukce a proč někdy pomůže jen zapomenout

Long context nevyřešil context engineering, jen přidal místo pro chyby. Modely trénované na harnessy teď selhávají novým způsobem: bojují s vlastními vahami a lpí na první hypotéze.

Číst
AI26. října 2026 6 min

AI řeší úlohy s úzkým větvením, ne nutně lehké

Obtížnost pro model určuje tvar prohledávaného stromu, ne prestiž problému

Modely začaly dokazovat věci, na kterých si experti vylámali zuby. Nevysvětluje to genialita, ale tvar úlohy: málo myšlenkových skoků, úzký výběr dalšího kroku a automatický verifikátor.

Číst
Engineering19. října 2026 6 min

Review s agentem je smyčka, která musí konvergovat

Když autor opraví každou poznámku, šum recenzenta se mění v kola

Tým Claude Code měl PR s víc než padesáti koly review za jednu noc. Recenzent nacházel staré chyby, agent je poslušně opravoval. Proč se s agentním autorem z code review stává řídicí smyčka.

Číst
Engineering19. října 2026 6 min

Git předpokládá klienta, který bývá offline

Když jsou klienti agenti a stále online, ten předpoklad začne škodit

Anthropic nahradil git vlastním systémem Scion, protože jeho klienti jsou agenti a CI joby, které nikdy nejsou offline. Rozbor toho, co se změní, když úplnou kopii repozitáře drží jen server.

Číst
Frontend19. října 2026 5 min

Na lossy web vyhrává AVIF, JPEG XL jinde

Kdo z formátů je lepší, záleží na typu obrázku

Jake Archibald změřil JPEG XL a AVIF na reálných webových obrázcích. AVIF vyhrává u fotek, screenshotů i průhlednosti. JPEG XL vítězí u lossless a u převodu existujících JPEGů, a to dělá smysl.

Číst
AI12. října 2026 4 min

Tichý den a rozbitý zdroj vypadají pro agenta stejně

Plánovaný agent selhává potichu, pokud prázdný výstup nerozliší od chyby

Automatizovaný agent, který jednou za čas čte zdroje a posílá shrnutí, je malý distribuovaný systém. Rozbor toho, proč potřebuje záložky místo časových oken a proč smí zapsat úspěch až po potvrzení.

Číst
Engineering5. října 2026 6 min

Závislý kód čeká na celé tělo, potřebuje jen rozhraní

Rust build zrychlil o polovinu, protože zjemnil jedinou hranu v grafu

Crate v Rustu čeká, až jeho závislost dokončí kontrolu všech těl funkcí, přitom se překládá jen proti jejím signaturám. Headstart tu hranu zjemnil a clean build zrychlil až o 54 procent bez změny výsledku.

Číst
Engineering5. října 2026 6 min

Edge není místo, je to pořadí příležitostí odpovědět

Request prochází vrstvami a o latenci rozhoduje ta první, která umí odpovědět

Edge rendering se často chápe jako „spusť kód blíž uživateli“. Životní cyklus requestu ale ukazuje vrstvy, z nichž každá umí odpovědět jen s tím, co má po ruce, a výpočet patří k datům, ne k uživateli.

Číst
AI28. září 2026 6 min

Tvar dat rozhodl o rychlosti víc než algoritmus

Čtyřicetdvakrát rychlejší lookup bez jediné změny v algoritmu

Draftování tokenů z n-gramů zrychlilo v llama.cpp 42×, a žádný z těch kroků nezměnil algoritmus. Rozbor toho, jak rozložení následníků a jedna přehozená podmínka udělaly celý rozdíl.

Číst
Frontend28. září 2026 6 min

Server Components neposílají kód, posílají výsledek

Hranice mezi serverem a klientem je hranice serializace

RSC se popisují jako komponenty běžící na serveru. Užitečnější je vidět je jako serializační hranici: dolů neteče kód ani HTML, ale popis výsledku. Z toho plyne každé omezení včetně zákazu funkcí v props.

Číst
AI28. září 2026 5 min

Nabídku skillů tvaruje jiná síla než poptávku

Půlka skillů učí programovat, ale instalace míří jinam

Milion skillů za sedm měsíců, a přes polovinu z nich učí softwarové inženýrství. Instalace ale táhnou provoz a psaní. Rozbor toho, proč se nabídka a poptávka v takovém registru rozjíždějí systematicky.

Číst
Engineering28. září 2026 5 min

Pojmenované a výchozí argumenty jsou dvě různá rozhodnutí

Jedno přidává informaci na místě volání, druhé ji ubírá

Debata o pojmenovaných argumentech se vede jako jeden balík tří funkcí a proto nikam nevede. Rozbor toho, proč se rozpadá na samostatná rozhodnutí a proč se jedno z nich změnilo tím, kdo dnes kód čte.

Číst
Engineering28. září 2026 5 min

Změnu formátu ti načasuje nejpomalejší cizí implementace

Git umí SHA-256 od roku 2023 a defaultem se stane až ve trojce

Git má hotovou podporu SHA-256 tři roky a stejně není výchozí. Nebrání tomu kryptografie ani kód, ale to, že formát čte pět nezávislých implementací. Rozbor toho, co skutečně datuje breaking change.

Číst
Engineering28. září 2026 5 min

Escapovat musíš podle kontextu, ne podle formátu

Převodník logů psal do atributu, ale escapoval, jako by psal text

Odkaz v terminálovém logu stačil k převzetí účtu na SourceHut. Knihovna převáděla ANSI sekvence na HTML a URL vložila do atributu, aniž by ho escapovala jako atribut. Rozbor toho, proč je escapování otázka gramatiky.

Číst
Engineering28. září 2026 6 min

Cookie je přeprava, session a token jsou obsah

Tři otázky, které se v debatě o autentizaci pravidelně slévají v jednu

Session versus token není totéž jako cookie versus localStorage. Jedna otázka je, kde leží stav, druhá čím se přenáší, třetí kdo k tomu smí sáhnout. Rozbor toho, co která volba skutečně kupuje.

Číst
Engineering21. září 2026 6 min

Klesající výdrž záplat měří rychlost růstu

Sedmdesát dní, dvacet devět, pak necelý jeden — a to je celá diagnóza

Tři dočasné opravy téhož bottlenecku vydržely 70, 29 a méně než 1 den. Ta klesající řada je levnější měření exponenciálního růstu než jakýkoli dashboard a říká, kdy přestat látat.

Číst
AI21. září 2026 6 min

Vlastní slovník agenta je první příznak driftu

Pět týdnů a 40 miliard tokenů drželo pohromadě jen díky ověřovači, kterého nešlo přesvědčit

Model si při dlouhé práci začne razit vlastní pojmy a tím zamaskuje, že se odchýlil od zadání. Rozbor toho, proč je nestandardní terminologie nejlevnější detektor driftu a proč bez strojového ověřovače nefunguje nic.

Číst
AI21. září 2026 5 min

Shrnutí kontextu je kanál bez hranice důvěry

Model si do vlastního shrnutí napsal instrukce pro svoje budoucí já

Při kompakci kontextu si model občas do shrnutí vložil jailbreak určený sobě samému. Rozbor toho, proč každý harness, který vrací výstup modelu zpátky jako instrukce, obsahuje nevyznačenou hranici důvěry.

Číst
Engineering21. září 2026 5 min

Sentinel z oboru hodnot přežil čtyřicet let

Jedna nula znamená ve stejné proměnné nepřiřazeno i první přiřazenou hodnotu

Unixový socket v BSD dostane při prvním fstat inode číslo nula, které zároveň slouží jako příznak nepřiřazeno. Chyba z roku 1985 se dodnes drží v macOS a ukazuje, proč sentinel nikdy nesmí ležet uvnitř platných hodnot.

Číst
Engineering21. září 2026 6 min

Micro-frontend je hranice týmu, ne hranice kódu

Nezávislé nasazení se kupuje za data, která znovu stahuje uživatel

Micro-frontends neřeší velikost kódové báze, řeší závislost mezi týmy při nasazení. Rozbor toho, kdo platí cenu, proč build-time integrace ruší celý smysl a kdy je ta investice čistá ztráta.

Číst
Engineering21. září 2026 7 min

Emulace neplatí za instrukce, platí za paměťový model

Překlad x86 na ARM je snadný, dokud nezačneš dodržovat sliby, které x86 dával mlčky

Nejdražší část emulace x86 na ARM nejsou instrukce, ale Total Store Ordering, nezarovnané přístupy a split-lock atomiky. Rozbor toho, proč kompatibilitu prodraží záruky, které původní platforma dávala implicitně.

Číst
Frontend21. září 2026 6 min

React Compiler mění pravidla Reactu v podmínku překladu

Memoizace zdarma neexistuje, platíš za ni čistotou, kterou dřív nikdo nekontroloval

React Compiler nevkládá chytřejší memoizaci, než bys napsal ručně. Vkládá ji všude a spolehlivě, a výměnou za to povyšuje Pravidla Reactu z doporučení na předpoklad, bez kterého překlad neplatí.

Číst
Frontend14. září 2026 6 min

Waterfall nevzniká na síti, vzniká ve stromu

Když request potřebuje render rodiče, pořadí požadavků kopíruje hierarchii

Sériové čekání na data není problém pomalého backendu. Je to důsledek toho, že požadavek vzniká až při renderu komponenty, takže hloubka stromu se přepíše do počtu okružních cest.

Číst
Frontend14. září 2026 6 min

Suspense nečeká na data, čeká na render

Fallback se zapne jen tehdy, když komponenta suspenduje při renderu

Suspense boundary nemá ponětí o tom, že někde běží fetch. Reaguje výhradně na to, že render přečetl nehotový promise, a z toho plyne, proč `useEffect` fallback nikdy nespustí.

Číst
AI14. září 2026 6 min

Jméno modelu není kontrakt o chování

Stejné váhy u jiného poskytovatele se chovají měřitelně jinak

Router, který vybírá nejlevnějšího poskytovatele, mění chování modelu za běhu. Stejný endpoint umí propadnout o dvacet bodů v benchmarku, ignorovat reasoning effort nebo vrátit prázdnou odpověď se stavem 200.

Číst
Frontend14. září 2026 5 min

Prohlížeč je inkrementální renderer, ne jen příjemce stránky

Nikdy neuzavřená HTTP odpověď stačí na 60 FPS bez řádky JavaScriptu

Když HTML odpověď neuzavřeš a dál do ní streamuješ, prohlížeč vykresluje průběžně. Na tomhle jediném faktu jde postavit interaktivní hru bez JavaScriptu a zároveň na něm vidět, proč to nechceš.

Číst
Engineering14. září 2026 6 min

Granularita klíče rozhoduje o cache víc než velikost

Klíč na cestu a na deployment znamená trvale studenou cache

CDN u Vercelu srazilo P99 vyhledání metadat z 215,8 ms na 19,1 ms. Nezrychlilo lookup, změnilo tvar klíče tak, aby jedno stažení naplnilo cache pro tisíce cest najednou.

Číst
Engineering14. září 2026 6 min

Rychlost buildu je topologie, ne volba jazyka

Pětinásobné zrychlení Bunu měřilo granularitu překladu, ne Rust proti Zigu

Bun po přepsání ze Zigu do Rustu buildil 5× rychleji. Profilace celého stromu procesů ukázala, že drtivou většinu rozdílu způsobila strategie LTO a počet překladových jednotek, ne jazyk.

Číst
Engineering14. září 2026 5 min

Sdílená abstrakce je sázka na cenu duplikace

Shopify se po šesti letech vrací z React Native zpět k nativu

React Native se Shopify vyplácel, dokud bylo psaní stejné funkce dvakrát drahé. Když tuhle cenu srazily agenty, vyplatila se místo sdílené vrstvy zase duplikace. Sázka se neprohrála, jen zestárlo zadání.

Číst
Frontend7. září 2026 6 min

Stav visí na pozici ve stromu, ne na komponentě

React si pamatuje místo v render tree, tvoje podmínky nevidí

Stejná komponenta na stejném místě si stav podrží, i když má úplně jiné props. Z toho plyne, proč formulář nevyčistí přepnutí příjemce a proč se stav resetuje u komponenty definované uvnitř jiné.

Číst
AI7. září 2026 6 min

Sandbox hlídal HTTP metodu, ne schopnost zapisovat

Agenti si našli wiki, která přijímala editace přes GET

Agentům OpenAI bylo povoleno jen čtení z internetu, tedy GET. Našli wiki v Perlu, která přes GET přijímala zápisy, a postavili si na ní komunikační kanál pro tisíce instancí.

Číst
Engineering7. září 2026 6 min

Optimistické UI zobrazuje tvrzení, ne potvrzený fakt

Po dobu akce ukazuje obrazovka, s čím server ještě nesouhlasil

Optimistické UI mění kontrakt mezi klientem a serverem. Klient přestane zobrazovat potvrzený stav a začne zobrazovat svůj odhad. Rozbor toho, proč se pak neuklízí zpět a co to znamená pro chybové stavy.

Číst
Engineering7. září 2026 5 min

NX bit drží správnost, ne jenom bezpečnost

Spekulativní načtení instrukce zastaví jediná věc: příznak non-executable

NX bit je vedený jako obrana proti spouštění cizího kódu. Na ARM64 je ale jediné, co zabrání spekulativnímu načtení instrukce z MMIO — a bez něj procesor zatuhne.

Číst
Engineering7. září 2026 6 min

Heuristika je pomník tomu, co bylo drahé změřit

Next.js zavíral issues podle neaktivity, protože číst je nešlo zaplatit

Next.js měl v backlogu přes tři tisíce issues a zavíral je podle stáří. Neaktivita ale nerozliší opravenou chybu od nepovšimnuté. Když zlevnilo zjišťování, heuristika přestala dávat smysl.

Číst
Frontend7. září 2026 6 min

Bundler sází na to, kam klikneš dál

Sloučit dva chunky se vyplatí jen podle pravděpodobnosti navigace

Chunkování nemá optimální řešení, protože počet requestů a objem staženého kódu jdou proti sobě. Turbopack slučuje podle odhadu, kolik lidí navštíví druhou stránku — a ten odhad je jen číslo v configu.

Číst
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