v58.7
3. 4. 2026 12:00
+ new
Cookie odmítnutí — skrytá stránka /vypadni
Odmítnutí cookies přesměruje na tajnou stránku „Tak zas vypadni, když ani sušenky nechceš." s tlačítky „Dobře, beru sušenky" a „Ne, sem debil".
v58.5
26. 3. 2026 12:00
↑ improve
UX: Nastavení zobrazení + přístupnost
Profil má novou sekci „Nastavení zobrazení": volba velikosti písma (malé/normální/velké), kompaktní režim (menší odsazení karet) a vypnutí animací — vše uložené v localStorage a aplikované ihned při načtení stránky. Klávesa Escape zavírá modaly pro hlášení chyb a nápadů. Přidána podpora `prefers-reduced-motion` pro uživatele citlivé na pohyb.
v58.4
20. 3. 2026 12:00
+ new
Minihry: Bitevní Vřava — tower defense hra
Přidána nová minihra Bitevní Vřava. Tower defense na plátně: nakup pěchotu, tank nebo RPG, přetahuj jednotky myší a zastav nepřátelské vlny. Podpora rychlosti 1×/2×/3×, upgrade systém a wave progress bar.
v58.3
18. 3. 2026 08:00
↑ improve
Seznamka: Cropper.js + Intervention Image pro nahrávání fotek
Nahrávání fotek nyní otevře modal s Cropper.js pro ořez na čtverec. Server zpracuje přes Intervention Image: resize na max 800px, konverze na WebP (85%), strip EXIF. Limit zvýšen na 8 MB.
v58.2
17. 3. 2026 16:30
▲ fix
Seznamka: hotfix — Latte parse chyba a strtotime TypeError
Opravena Latte kompilační chyba z inline onclick atributu — scroll handler přesunut do JS IIFE. Opravena PHP TypeError: strtotime() volaný s DateTime objektem — centralizováno přes novou helper metodu toTs().
v58.1
17. 3. 2026 16:00
↑ improve
Seznamka: tlačítko "nahoru" při scrollování browse stránky
Plovoucí šipka ↑ se zobrazí po scrollu 400px dolů — kliknutím smooth-scroll zpět na začátek. Obzvlášť užitečné po AJAX load-more.
v58.0
17. 3. 2026 15:35
↑ improve
Seznamka: AJAX "Načíst více" v browse — žádný reload stránky
Tlačítko "Načíst více ↓" nahrazuje "Další →" — přidá další profily bez reloadu stránky (DOMParser + adoptNode). Event delegation pro klikání na karty funguje i pro dynamicky načtené profily.
v57.9
17. 3. 2026 15:10
↑ improve
Seznamka: heart-pop animace na lajku + isMatch() jednodotazová optimalizace
Lajknutí v browse mřížce teď zobrazí srdíčkovou animaci (CSS keyframes). isMatch() optimalizován z 2 DB dotazů na 1 — relevantní pro poll-messages endpoint volaný každých 5s.
v57.8
17. 3. 2026 14:50
↑ improve
Seznamka: request-scoped profile cache + oprava $this->getUser() v šabloně
getMyProfile() nyní cachuje výsledek v rámci requestu — odstraňuje 3–5 zbytečných DB dotazů. renderShody() přestal volat DB přímo a používá helper. Šablona shody.latte opravena — $this->getUser()->getId() nahrazeno za $myId předaný z presenteru.
v57.7
17. 3. 2026 14:30
▲ fix
HOTFIX: Latte 3 — n:attr checked místo if uvnitř input tagů v Seznamka filtrech
Třetí Latte 3 hotfix: Unexpected '/if} style' v default.latte řádek 178. Čtyři checkbox input tagy měly [if $x]checked[/if] uvnitř HTML tagu. Opraveno na n:attr="checked: $x".
v57.6
17. 3. 2026 14:10
▲ fix
HOTFIX: Latte 3 — n:attr místo if uvnitř HTML tagů v Seznamka filtrech
Druhý Latte 3 hotfix: Unexpected = v default.latte řádek 108. Latte 3 neumí [if]selected[/if] uvnitř HTML opening tagů. Opraveno 18 option tagů na n:attr="selected: condition".
v57.5
17. 3. 2026 13:45
▲ fix
Fix: [layout] musí být první v šabloně — Latte 3 hotfix pro všechny Seznamka stránky
Latte 3 striktně vyžaduje [layout] jako první tag v šabloně. Opraveno ve všech 5 Seznamka šablonách — přestaly se kompilovat při invalidaci cache, což způsobovalo "An error occurred".
v57.4
17. 3. 2026 13:30
↑ improve
Refactor + profil: skrytí nevyplněných polí (pohlaví/orientace/hledám)
Optimalizace: parseInterests se v browse/profil smyčce volá jen jednou na profil (DRY). Profil: pohlaví, orientace a hledám se zobrazí jen pokud uživatel tyto hodnoty vyplnil — nevyplněné pole se neschová jako "Jiné/Uvidíme".
v57.3
17. 3. 2026 13:15
↑ improve
Procházet: match toast obsahuje odkaz "Napsat zprávu →"
Když dojde k nové shodě při procházení profilů, toast notifikace nyní obsahuje přímý odkaz na konverzaci. Toast se zobrazí na 8 sekund (dříve 5).
v57.2
17. 3. 2026 13:00
↑ improve
Chat: dynamické skrývání "naposledy aktivní" při online stavu partnera
Last-seen text v hlavičce chatu se dynamicky skryje když polling zjistí, že partner je online, a znovu zobrazí když odejde. Zelený puntík a last-seen se nyní správně doplňují.
v57.1
17. 3. 2026 12:45
▲ fix
Profil: oprava překlep "Obtěžoþvání" v hlášení; Procházet: výška v aktivních filtrech
Oprava překlep v důvodech hlášení (thorn znak þ místo v). Přidán tag aktivního filtru pro výšku (cm) v přehledu výsledků + zrušit filtry nyní reaguje i na filtr výšky.
v57.0
17. 3. 2026 12:30
↑ improve
Shody: online indikátor u nedávných návštěvníků + compat score v beforeRender
Kdo nedávno navštívil váš profil nyní zobrazuje zelený online puntík pokud je aktivní. Compat score dostupné globálně přes szCompleteness pro všechny šablony.
v56.9
17. 3. 2026 12:15
↑ improve
Chat: compat score v hlavičce konverzace + oprava tlačítka Zrušit filtry
V hlavičce chatu se nově zobrazuje procento shody zájmů vedle jména partnera. Tlačítko "Zrušit filtry" v prázdném stavu nyní reaguje na všechny aktivní filtry (Hledám, Orientace, Online, Lajkoval mě, S fotkou, Skrýt lajknuté).
v56.8
17. 3. 2026 12:00
↑ improve
Seznamka: aktivní filtry Hledám a Orientace v přehledu výsledků
Aktivní filtry Hledám (Vztah/Přátelství/Casual/Uvidíme) a Orientace (Homo/Bi/Pan) se nyní zobrazují jako barevné tagy pod počtem výsledků stejně jako ostatní filtry.
v56.7
17. 3. 2026 11:40
↑ improve
Shody: compat score u nedávných návštěvníků profilu
Kdo nedávno navštívil váš profil nyní zobrazuje procento shody zájmů i na stránce Shody (dříve jen v Nastavení).
v56.6
17. 3. 2026 11:25
↑ improve
Profil: compat score v podobných profilech
Sekce "Podobné profily" na stránce profilu nyní zobrazuje procento shody zájmů.
v56.5
17. 3. 2026 11:10
↑ improve
Seznamka: číslo stránky v paginaci
Stránkování výsledků nyní zobrazuje aktuální číslo stránky mezi tlačítky Předchozí/Další.
v56.4
17. 3. 2026 10:55
↑ improve
Seznamka: prázdný stav — kontextuální hlášky + tlačítko Zrušit filtry
Prázdný seznam nyní zobrazuje specifickou zprávu podle aktivního filtru (aktivita, město, zájmy). Přidáno tlačítko pro rychlé zrušení filtrů.
v56.3
17. 3. 2026 10:40
↑ improve
Seznamka: aktivní filtry — zobrazení všech aktivních filtrů v seznamu
Výsledkový řádek nyní zobrazuje všechny aktivní filtry jako tagy: jméno, pohlaví, město, zájmy, aktivita, věk. Nové CSS třídy f-tag/f-tag-pink/f-tag-purple.
v56.2
17. 3. 2026 10:15
▲ fix
Debug: logování exceptions + chybějící routy older-messages/typing
ErrorPresenter nyní loguje 500 chyby do log/claude-errors.log. Přidány chybějící routy pro older-messages a typing v Seznamce.
v56.1
17. 3. 2026 09:08
↑ improve
Nastavení: compat score u nedávných návštěvníků profilu
Kdo navštívil váš profil nyní ukazuje procento shody. SQL dotaz rozšířen o interests sloupec.
v56.0
17. 3. 2026 08:58
↑ improve
Shody: compat score v sekci Cekam na odpoved
Profily komu jsem lajkoval ale cekam na reakci nyni zobrazuji compat badge. SeznamkaPresenter pocita sentCompatScores pro vsechny.
v55.9
17. 3. 2026 08:45
▲ fix
Profil: oprava zvýraznění společných zájmů + překlep v nahlášení
Po DRY refaktoru parseInterests vrací lowercase. Latte check nyní mb_strtolower. Oprava překlep Obtlžóvání na Obtěžování.
v55.8
17. 3. 2026 08:34
↑ improve
Seznamka: waiting list sorted by compat score + DRY fix v renderProfil
Lidi kteri me lajkuji se radi dle kompatibility. renderProfil pouziva parseInterests helper misto rucniho parsovani.
v55.7
17. 3. 2026 08:22
↑ improve
Seznamka: řazení Online jako první + usort v SeznamkaPresenter
Nová volba seřazení v browse: online uživatelé se zobrazují nahoře. PHP usort podle is_online, SQL zachovává last_active pořadí uvnitř skupin.
v55.6
17. 3. 2026 08:11
▲ fix
Profil: oprava poškozeného img tagu (onerror regex)
Regex pro přidání onerror v předchozí session poškodil alt atribut profilové fotky. Opraveno cíleným str_replace.
v55.5
17. 3. 2026 08:09
↑ improve
Seznamka: počet neprřečtených zpráv v titulku záložki
Název záložki prohlížeče se automaticky aktualizuje na (N) název při píčhodu nové zprávy. Uživatel vidí počet i bez otevření záloźky.
v55.4
17. 3. 2026 08:07
↑ improve
Seznamka: klik kdekoliv na kartičce profilu
Celá kartíčka profilu v procházení je nyní klikatelná — fotka i všechna ostatní plocha přesměruje na profil (tlačítka Zápisu a Lajku zůstávají nezávislá).
v55.3
17. 3. 2026 07:59
↑ improve
Seznamka: skore kompatibility v sekci Líbíš se jim
Na straně Shody se u profilů které tě lajkly zobrazí zeleny účel způsoby kompatibility (pokud ≥ 20%), aby bylo snazzší rozhodnout koho lajknout zpět.
v55.2
17. 3. 2026 07:56
↑ improve
Seznamka: helper isMatch() — odstranění duplikace ověření shody
Extrahován helper isMatch() — kontrola vzájemného lajku na jednom místě místo 5× duplikace v action metodách.
v55.1
17. 3. 2026 07:54
↑ improve
Seznamka: refaktoring — helpers parseInterests + compatScore
Extrahovány pomocné metody parseInterests() a compatScore() — odstraňuje duplikaci kódu ve 4 metodách presenteru.
v55.0
17. 3. 2026 07:50
▲ fix
Seznamka: fallback pro rozbité fotky profilů
Přidáno onerror na všechny profilové fotky v Seznamce. Pokud je URL fotky nedostupná, foto se skryje bez chybové ikon.
v54.9
17. 3. 2026 07:47
↑ improve
Shoda: toast se jménem + odkaz na zprávy v profilu
Toast při shodě nyní zobrazuje jméno pára. Match banner na profilu obsahuje přímý odkaz na zprávy.
v54.8
17. 3. 2026 07:42
↑ improve
Nastaveni: po uložení profilu zůstat na nastaveni
Po uložení profilu se nyní přesměruže zpět na nastaveni (ne na browse). Flash zpráva zůstává viditelná.
v54.7
17. 3. 2026 07:38
✦ new
Seznamka: notifikace nových shod (zelená) v navigaci
Ping nyní vrací také počet nových shod (posledních 24h). Nav odzívka zelená ♥ = nová shoda, fialová + = čekám na odpověď, růžfová = nepročtené zprávy.
v54.6
17. 3. 2026 07:36
▲ fix
Profil: oprava tlačítka Nahlásit (JS chyba)
Funkče reportUser() měla chybějcí složené závorku a odkazovala na neexistující modál. Přepracováno na jednoduché prompt() bez duplikace kódu.
v54.5
17. 3. 2026 07:34
↑ improve
Seznamka: řazení dle kompatibility + fix náhledu zájmů
Procházení profilů nová možnos: řazení dle kompatibility zájmů. Opravén také zobrazení živyých zájmů v nastavení (chybějcí element interests-preview).
v54.4
17. 3. 2026 07:30
✦ new
Blog #88: Dostáváš jen to, o co explicitně požádáš
Nový článek o předpokladech v kódu a životně — lekce z dnotěnjšího bugfixu ve výběru sloupců.
v54.3
17. 3. 2026 07:28
▲ fix
Seznamka: oprava chyby + compat skóre na shodách
Opravena chyba která rüila /seznamka při nahrávání zpráv (MemberAccessException). Přidáno compat skóre k shodam a odstraňěna duplicita návštěvníků v sekci Kdo viděl tvůj profil.
v54.2
17. 3. 2026 14:10
↑ improve
Profil: orientace a "hledám" v základním info
Sekce Základní info na profilu nyní zobrazuje sexuální orientaci a co uživatel hledá — vedle pohlaví, věku a města.
v54.1
17. 3. 2026 14:10
↑ improve
Profil: badge kompatibility zájmů
Na profilu partnera se zobrazí procento shody zájmů (od 20%), stejně jako na kartičkách v browse.
v54.0
17. 3. 2026 14:10
↑ improve
Chat: dropdown akcí (blokovat/nahlásit/odebrat shodu)
Tlačítko ⋮ v hlavičce chatu otevírá menu s možností zablokovat, nahlásit nebo odebrat shodu — bez nutnosti přecházet na profil.
v53.9
17. 3. 2026 14:10
↑ improve
Browse: badge kompatibility na kartičkách
Karty profilů zobrazují procento shody zájmů (zobrazí se od 20%). Počítá se jako průnik zájmů dělený maximem ze dvou sad.
v53.8
17. 3. 2026 14:10
↑ improve
Browse: tlačítko Napsat na kartičce shody
Karty profilů, se kterými máte shodu, nyní zobrazují přímé tlačítko "Napsat" — bez nutnosti přecházet přes profil.
v53.7
17. 3. 2026 14:10
▲ fix
Browse: oprava filtru aktivita (activeDays)
Filtr "Aktivita" (Dnes/Tento týden/Tento měsíc) byl deklarován v UI ale nebyl aplikován v SQL dotazu. Opraveno + přidán do auto-submit selektorů.
v53.6
17. 3. 2026 14:10
↑ improve
Nastavení: kdo navštívil váš profil
Sekce s posledními 20 návštěvníky profilu — jméno, věk, město a čas. Filtruje blokované uživatele. Odkaz přímo na jejich profil.
v53.5
17. 3. 2026 14:10
↑ improve
Chat: indikátor psaní (typing indicator)
Tři tečky v chatu ukazují, když partner právě píše zprávu. Aktualizuje se každé 5 sekund přes existující poll mechanismus.
v53.4
17. 3. 2026 14:10
↑ improve
Profil: lightbox pro zvětšení fotky
Kliknutím na profilovou fotku se otevře fullscreen lightbox s možností zavření kliknutím nebo klávesou Escape.
v53.3
17. 3. 2026 14:10
↑ improve
Chat: icebreakers podle společných zájmů
Před první zprávou se zobrazí personalizované otázky na základě společných zájmů obou uživatelů. Snazší začátek konverzace.
v53.2
17. 3. 2026 14:10
↑ improve
Seznamka: počítadlo online uživatelů
Nad výsledky prohlížení se zobrazuje počet uživatelů právě online. Rychlý pohled na aktivitu komunity.
v53.1
17. 3. 2026 14:10
↑ improve
Seznamka: filtr "Má fotku" + oprava hideLiked
Nový filtr zobrazí jen profily s profilovou fotkou. Opraveno předávání filtrů hideLiked a withPhoto do URL stránkování.
v53.0
17. 3. 2026 14:10
↑ improve
Chat: optimistické odesílání zpráv
Zpráva se zobrazí okamžitě po odeslání s mírně průhledným vizuálem, než server potvrdí. Při selhání se zpráva odstraní a text se vrátí do pole. Chat působí rychleji.
v52.9
17. 3. 2026 14:10
↑ improve
Nastavení: živý náhled zájmů jako tagy
Při editaci zájmů se pod polem ihned zobrazují tagy tak, jak budou vypadat ostatním. Real-time preview bez odeslání formuláře.
v52.8
17. 3. 2026 14:10
↑ improve
Seznamka: "Podobné profily" na stránce profilu
Pod profilem se nyní zobrazují až 4 podobné profily (stejné pohlaví, blízký věk). Usnadňuje procházení bez návratu do seznamu.
v52.7
17. 3. 2026 14:10
↑ improve
Seznamka: filtr "Skrýt lajknuté"
V prohlížeči profilů přibyl checkbox "Skrýt lajknuté" — filtruje pryč profily, které jste již lajkli. Výsledky jsou čistší, snáze se hledají nové tváře.
v52.6
17. 3. 2026 14:10
↑ improve
Seznamka: badge "Nový" pro čerstvé profily
Profily vytvořené v posledních 48 hodinách nyní zobrazují zlatý odznak ✨ Nový v prohlížeči. Snazší objevování nových členů.
v52.5
17. 3. 2026 14:10
↑ improve
Seznamka: statistika zobrazení dnes
Na stránce nastavení přibyl podtitulek "+X dnes" u počtu zobrazení profilu — uvidíte kolik lidí si váš profil prohlédlo právě dnes.
v52.4
18. 3. 2026 03:27
↑ improve
Chat: datové oddělovače Dnes / Včera
Oddělovače dnů v chatu nyní zobrazují „Dnes“ a „Včera“ místo formátovaného data. Starší zprávy nadal zobrazují datum. Čistejší UX pro běžené konverzace.
v52.3
18. 3. 2026 03:15
↑ improve
Profil: nahlášení s výběrem důvodu
Tlačítko Nahlásit nyní otevíre modal s výběrem důvodu: falešný profil, spam, obtězování, nevhodný obsah, jiný důvod. Důvod se ulíží do claude_todo pro admin review. Backend již dříve przyjal reason parametr.
v52.2
18. 3. 2026 02:57
↑ improve
Shody: řazeni čekajících podle aktivity
"ÜČastníci který ti líbají" a "Čekám na odpověď" jsou nyní seřazeni od nejnovější aktivity. Aktivní uživatelé běží víše — větší šance na odezvu.
v52.1
18. 3. 2026 02:44
✦ new
Mobilní: dolní navigační lišta
Na mobilech (≤640px) se zobrazuje dolní navigační lišta (Procházet / Shody / Profil) — standardní vzor pro datovací apky. Odznáčky s počtem zpráv/liků ze stejného ping endpointu.
v52.0
18. 3. 2026 02:29
✦ new
Browse: výška na kartách profilů
Browse kartě nyní zobrazují výšku (pokud je vyplněna) spolu s věkem a městem. Konzistentní s filtrem výšky který byl již dříve — co filtruji, to také vidím.
v51.9
18. 3. 2026 02:18
✦ new
Browse: zvýraznění společných zájmů
Společné zájmy jsou nyní zeleně zvýrazněny přímo v seznamu zájmů na kartě — míšsto samostatného opakování. Přehlednější než počet, konkrétnéjší než tlačítko.
v51.8
18. 3. 2026 02:07
✦ new
Shody: čas poslední zprávy vřazen do seznamu
U kažidé shody v seznamu nyní vidíš kdy přišla poslední zpráva (např. "před 2 hodinami"). Vrácí se relativeTime() — shoduje s formátem v profilu a menší zprávách.
v51.7
18. 3. 2026 01:56
✦ new
Browse: poslední aktivita na kartách
Kartá profilu nyní ukazuje kdy byl uživateln naposledy aktivní (⏰ před 2 hodinami), pokud zrovna není online. Informace o aktivitě pomůžé vybrat komu napsat zprostředkovaně.
v51.6
18. 3. 2026 01:43
✦ new
Browse: filtr aktivity (dnes/týden/měsíc)
Rozšíření filtru aktivity — míšto "jen online" nyní můžéš filtrovat profily aktivní dnes, tento týden nebo tento měsíc. Pomocí k nalezení lidí kdo vůbec používají app.
v51.5
18. 3. 2026 01:29
✦ new
Browse: společné zájmy na kartách profilů
Kartá profilu nyní zobrazuje počet společných zájmů se zobrazeným profilem. 🎯 N spol. zájmy v zelené barvě — rychlá informace kdo má k tobě nejblíž.
v51.4
17. 3. 2026 22:40
▲ fix
Browse: lajknutí víc nepřesměruje na profil
Oprava bugy — kliknutí na tlačítko "Lajkovat" v kartičce přesměrovávalo na profil. Přidán e.preventDefault() + stopPropagation(), lajk zůstane na browse.
v51.3
17. 3. 2026 22:20
▲ fix
Shody: nové shody se řadí na vrch
Nové shody (bez zpráv, < 48h) se nově zobrazují nahoře seznamu, ne dole. Oprava chyby kde nová shoda zapadla na konec za staré konverzace.
v51.2
17. 3. 2026 22:00
↑ improve
Shody: online tečka na čekajících kartách
Avatary v sekci "Líbíš se jim" teď zobrazují zelenou online tečku pokud byl profil aktivní v posledních 15 minutách.
v51.1
17. 3. 2026 21:40
✦ new
Chat: konverzační startery pro nové shody
Při prvním otevření nové konverzace se zobrazí 4 klikatelné návrhy (Ahoj, Jak se máš atd.). Po kliknutí se naplní input a startery zmizí. Po odeslání první zprávy se odstraní.
v51.0
17. 3. 2026 21:20
✦ new
Shody: sekce "Čekám na odpověď"
Nová sekce na stránce Shody zobrazuje profily, které jsi lajkoval/a ale ještě nelajkovaly zpět. S tlačítkem odebrat like — přehledně a bez zbytečných duplikací kódu.
v50.9
17. 3. 2026 21:00
✦ new
Zprávy: real-time online tečka partnera
V hlavičce chatu je teď zelená tečka pokud je partner právě online. Stav se aktualizuje každých 5 sekund přes stávající message poll — bez dalšího API volání.
v50.8
17. 3. 2026 20:40
↑ improve
Nav: ping interval 2min → 30s
Notifikace o nových zprávách a čekajících lajcích se aktualizují v navigaci každých 30 sekund místo 2 minut. Lepší responzivita bez výrazné zátěže.
v50.7
17. 3. 2026 20:20
↑ improve
Browse: filtr výšky s rozsahem min–max
Filtr výšky teď podporuje rozsah — min i max v cm. Zobrazí se jako dvě políčka vedle sebe oddělená pomlčkou.
v50.6
17. 3. 2026 20:00
↑ improve
Browse: auto-submit při změně řazení a checkboxů
Sort a rychlé filtry (Jen online, Lajkovali mě) teď odesílají formulář automaticky při změně — není třeba klikat Filtrovat.
v50.5
17. 3. 2026 19:40
↑ improve
Avatary: unikátní barva pro každý profil
Profily bez fotky mají teď unikátní barvu písmene vygenerovanou zlatým úhlem (hsl(userId × 137°, 80%, 70%)). Všechny avatary — browse, shody, profil, zprávy, topbar.
v50.4
17. 3. 2026 19:20
↑ improve
Profil: datum registrace v základním info
Sekce "Základní info" teď zobrazuje i datum, kdy si uživatel vytvořil profil (M. YYYY). Pomáhá rozlišit čerstvé profily od starých neaktivních.
v50.3
17. 3. 2026 19:00
↑ improve
Profil: "naposledy aktivní" když offline
Na stránce profilu se vedle jména zobrazuje relativní čas poslední aktivity — "3 hod", "včera" apod. — pokud uživatel není online. Stejný relativeTime() helper jako v šodách.
v50.2
17. 3. 2026 18:40
↑ improve
Browse: bio preview na kartičce
Pokud profil nemá zájmy ale má bio, zobrazí se na kartičce první dva řádky textu. Pomáhá rychleji se rozhodnout bez klikání na profil.
v50.1
17. 3. 2026 18:20
✦ new
Nav: fialový odznak pro čekající lajky
Pokud tě někdo lajkoval a nemáte ještě shodu, zobrazí se fialový "+N" odznak na navigaci Shody. Ping endpoint teď vrací i waiting count. Odděleno od růžového odznaku nepřečtených zpráv.
v50.0
17. 3. 2026 17:55
↑ improve
Browse: nudge k dokončení profilu
Pokud je profil vyplněn méně než z 70%, zobrazí se na browse stránce jemný banner s procentem a odkazem na nastavení. Profil nil → hero (nezměněno).
v49.9
17. 3. 2026 17:35
✦ new
Zprávy: načíst starší zprávy
V chatu se nyní zobrazuje tlačítko "Načíst starší zprávy" pokud je konverzace delší než 100 zpráv. Prepends bez ztráty scroll pozice, date separátory se generují dynamicky.
v49.8
17. 3. 2026 17:10
↑ improve
Shody: město ve čekajících, zpráva po shodě
Čekající profily teď zobrazují i město. Po quickLike který skončí shodou se tlačítko změní na odkaz "Napsat zprávu" — rovnou do chatu bez zbytečného refreshe.
v49.7
17. 3. 2026 16:40
↑ improve
Seznamka: kontextové prázdné stavy
Prázdný stav browse stránky teď závisí na aktivním filtru — "Lajkovali mě" ukáže motivační text, "Jen online" vyzve ke zrušení filtru, výchozí stav zůstává obecný.
v49.6
17. 3. 2026 16:20
✦ new
Profil: hint "Líbí se mu/jí ty"
Na stránce profilu se zobrazí výzva "❤ Líbí se mu/jí ty — lajkni zpět!" pokud tě daná osoba lajkovala, ale ty ještě ne. Motivuje k reciprocitě a tvorbě shod.
v49.5
17. 3. 2026 16:00
↑ improve
Zprávy: chytré scrollování
Když uživatel čte historii, příchozí zprávy neskrollují stránku dolů — místo toho se zobrazí "N nových ↓" tlačítko. Kliknutí skrolluje dolů a resetuje počítadlo. Vlastní zprávy vždy scrollují dolů.
v49.4
17. 3. 2026 15:40
↑ improve
Seznamka: avatar v topbaru
V topbaru vpravo se zobrazí vlastní avatar + přezdívka s odkazem na svůj profil. Dostupné na všech Seznamka stránkách (move do beforeRender). Neukazuje se nepřihlášeným nebo bez profilu.
v49.3
17. 3. 2026 15:20
✦ new
Seznamka: filtr "Lajkovali mě"
Nový checkbox v filtru — zobrazí jen profily, které tě lajkovaly. Kombinovatelné s ostatními filtry (věk, pohlaví, město...). Pagination zachovává stav filtru.
v49.2
17. 3. 2026 15:00
✦ new
Seznamka: "Líbí se mu/jí ty" badge v procházení
Browseovací karty nyní zobrazují badge "❤ Líbí se mu/jí ty" pokud tě ten profil lajkoval. Při vzájemném lajku se badge změní na "💕 Shoda!" a karta dostane fialové podbarvení. Real-time aktualizace při kliknutí na lajk.
v49.1
17. 3. 2026 14:20
✦ new
Seznamka: smazání profilu
Nastavení: "⚠ Nebezpečná zóna" sekce s tlačítkem pro smazání. Dvojité potvrzení. Smaže profil, zprávy, lajky, blokování, zobrazení, foto na disku.
v49.0
17. 3. 2026 14:00
✦ new
Seznamka: společné zájmy na profilu
Profil: zájmy sdílené s přihlášeným uživatelem se zvýrazní pink barvou. Hlavička sekce ukazuje počet shod ("· 3 společných").
v48.9
17. 3. 2026 13:40
↑ improve
Seznamka: kolabsibilní filtry na mobilu
Browse: tlačítko "▼ Více filtrů" skryje rozšířené filtry na mobilech (≤600px). Filtry se automaticky otevřou pokud je použit rozšířený filtr. Desktop = vždy viditelné.
v48.8
17. 3. 2026 13:20
↑ improve
Seznamka: oddělovače dnů v chatu + klikatelné URL
Chat: oddělovač "— 17. 3. 2026 —" při přechodu na nový den. Zprávy: URL se automaticky konvertují na klikatelné odkazy (linkify).
v48.7
17. 3. 2026 13:00
↑ improve
Seznamka: tipy pro dokončení profilu
Nastavení: pod progress barem pills "+25% Přidej fotku", "+15% Vyplň zájmy" atd. Zmizí po dosažení 100 %. Logika v profileCompletenessHints() — rozšiřitelná.
v48.6
17. 3. 2026 12:40
↑ improve
Seznamka: hledání podle přezdívky
Browse: první pole filtru "Hledat podle jména" — LIKE match na display_name. Zachováno při stránkování.
v48.5
17. 3. 2026 12:20
↑ improve
Admin: statistiky Seznamky
Statistiky: nová sekce ❤ Seznamka — profily, aktivní uživatelé (7 dní), vzájemné shody, celkový počet zpráv.
v48.4
17. 3. 2026 12:00
↑ improve
Seznamka: filtry orientace a minimální výšky
Browse: nové filtry — select orientace (hetero/homo/bi/pan) a numerické pole "Výška min. (cm)". Zachovány ve stránkování.
v48.3
17. 3. 2026 11:40
▲ fix
Seznamka: rate limiting zpráv
Max 10 zpráv za minutu jedné osobě. Při překročení: chyba "Příliš mnoho zpráv" se zobrazí v chatu a zmizí po 3 s. Konstanta MSG_RATE_LIMIT snadno upravitelná.
v48.2
17. 3. 2026 11:20
↑ improve
Seznamka: řazení výsledků procházení
Filtr: select "Řazení" — Naposledy aktivní / Nejnovější profily. Snadno rozšiřitelné přidáním klíče do BROWSE_SORT_OPTIONS. Řazení se zachovává při stránkování.
v48.1
17. 3. 2026 11:00
↑ improve
Seznamka: počítadlo znaků ve zprávách
Chat: živý počítadlo znaků (0/1000), červeně nad 900. Placeholder vysvětluje Shift+Enter pro nový řádek.
v48.0
17. 3. 2026 10:40
✦ new
Seznamka: kdo viděl tvůj profil
Shody: sekce "👀 Viděli tvůj profil" — až 20 posledních návštěvníků s přezdívkou, věkem a časem zobrazení. Propojeno s novou tabulkou seznamka_views.
v47.9
17. 3. 2026 10:20
✦ new
Seznamka: sledování zobrazení profilu
Nová tabulka seznamka_views — každé zobrazení cizího profilu se zaznamená (UPSERT). V nastavení nový stat box "👀 Zobrazení" — kolik unikátních lidí vidělo profil.
v47.8
17. 3. 2026 10:00
↑ improve
Seznamka: správa blokovaných uživatelů
Nastavení profilu: sekce "Blokovaní uživatelé" — seznam zablokovaných s tlačítkem Odblokovat (reuses /seznamka/block endpoint).
v47.7
17. 3. 2026 09:40
✦ new
Seznamka: odebrání shody (unmatch)
Shody: tlačítko ✕ na každé shodě — odebere oboustranné lajky, zmizí ze seznamu. Zprávy zůstanou zachovány.
v47.6
17. 3. 2026 09:20
✦ new
Seznamka: nahrávání profilové fotky
Nastavení profilu: tlačítko "📷 Nahrát fotku" — upload JPG/PNG/WebP/GIF do 2 MB. Uloží se na server, URL se auto-vyplní. Funguje vedle manuálního URL pole.
v47.5
17. 3. 2026 09:00
↑ improve
Seznamka: filtr "Jen online" + počet výsledků
Procházení: checkbox "🟢 Jen online" filtruje profily aktivní posledních 15 min. Pod filtry se zobrazuje počet nalezených profilů (např. "12 profilů" nebo "48+").
v47.4
17. 3. 2026 08:45
↑ improve
Seznamka: read receipts v chatu
Chat zprávy: "✓ přečteno HH:MM" pod posledním odeslaným — aktualizuje se živě každých 5 s při pollingu nových zpráv.
v47.3
17. 3. 2026 08:30
↑ improve
Seznamka: ping endpoint + live nav badge
POST /seznamka/ping každé 2 min aktualizuje last_active a vrací unread count. Nav badge "Shody" se dynamicky aktualizuje bez reload stránky.
v47.2
17. 3. 2026 02:00
✦ new
Seznamka: nahlášení uživatele → admin schválení
Tlačítko ⚠ na profilu → POST /seznamka/report → claude_todo (type=bug). Admin vidí v /administrace/schvaleni s pink badge počtu.
v47.1
17. 3. 2026 01:50
↑ improve
Seznamka: statistiky profilu, mark-read na focus
Nastavení: 3 stat boxy (likes, shody, lajknuto). Chat: mark-as-read při visibilitychange (vrácení do tabu).
v47.0
17. 3. 2026 01:40
↑ improve
Admin: pending badge na Schválení v navigaci
Počet čekajících claude_todo viditelný v admin nav přes beforeRender() — na všech admin stránkách najednou.
v46.9
17. 3. 2026 01:30
↑ improve
Seznamka: stránkování browse, počítadla znaků
Browse grid stránkování (BROWSE_PER_PAGE=48, prev/next). Nastavení: live počítadla znaků pro bio a zájmy (červené při >480).
v46.8
17. 3. 2026 01:20
↑ improve
Seznamka renderShody: N+1 → 3 batch queries
Last message + unread counts načítány jedním dotazem každý (batch přes subquery). Eliminuje N dotazů při N shodách.
v46.7
17. 3. 2026 01:10
↑ improve
Seznamka shody: quick-like tlačítko na čekajících kartách
Karty "Líbíš se jim" mají přímé tlačítko Lajkovat bez přechodu na profil. Při shodě se karta zvýrazní a zobrazí "Shoda!".
v46.6
17. 3. 2026 01:00
✦ new
Seznamka shody: badge "Nová shoda!" (48h, bez zpráv)
Nové shody bez zpráv vzniklé do 48h označeny gradient badge. Detekce přes created_at likes v presenteru.
v46.5
17. 3. 2026 00:45
↑ improve
Seznamka: relativní čas "naposledy online" v shodách
relativeTime() helper v presenteru — "Online teď / 3 min / 2 hod / včera / 5. 3.". Zobrazuje se u každé shody v match listu.
v46.4
17. 3. 2026 00:35
↑ improve
Seznamka browse: filtr podle zájmů
Přidán filtr "Zájem" do browse gridu. Hledá LIKE v interests sloupci. Filtr je zachován v URL parametrech.
v46.3
17. 3. 2026 00:25
↑ improve
Seznamka: úplnost profilu (progress bar)
profileCompleteness() v presenteru — váhované pole (bio 25%, foto 25%, zájmy 15%…). Progress bar na stránce nastavení. Logika oddělena od šablony.
v46.2
17. 3. 2026 00:15
✦ new
Seznamka: blokování uživatelů
DB tabulka seznamka_blocks. Blokovat/odblokovat tlačítko na profilu. Blokovaní se nezobrazují v browse ani shodách. Blok ruší mutual likes.
v46.1
17. 3. 2026 00:05
↑ improve
Seznamka nastavení: live náhled profilové fotky
Při zadání URL fotky se ihned zobrazí náhled 80×80px. JS bez závislostí, funguje na input+blur, inicializuje se ze stávající hodnoty.
v46.0
16. 3. 2026 23:55
✦ new
Seznamka: online indikátor (15min threshold)
Zelená tečka na kartě profilu a badge "Online" na detail profilu. Threshold ONLINE_THRESHOLD_MIN = 15 jako konstanta v presenteru — snadno konfigurovatelné.
v45.9
16. 3. 2026 23:45
↑ improve
Seznamka: sub-layout, live polling zpráv, unread badge v nav
Sdílený @layout.latte pro Seznamku eliminuje CSS duplikaci. Polling nových zpráv každých 5s (/seznamka/poll-messages). Unread badge v nav. Data do JS přes data-atributy (bezpečné s n:syntax="off").
v45.8
16. 3. 2026 23:28
✦ new
Projekt: Internetová Seznamka
Nový projekt /seznamka — browse grid s filtry, profily, like systém (vzájemný like = shoda), chat mezi shodami, nastavení profilu. Dark pink/purple theme. DB tabulky seznamka_profiles, _likes, _messages.
v45.7
16. 3. 2026 15:05
▲ fix
Fix: reset hesla — NOW() místo PHP DateTime, odstraněn OR 0000-00-00
Nahrazen PHP new \DateTime('-24 hours') za MySQL NOW() - INTERVAL 24 HOUR — eliminuje timezone rozdíly. Odstraněn OR used_at = 0000-00-00 který způsoboval MySQL strict mode chybu.
v45.6
16. 3. 2026 14:45
▲ fix
Fix: reset hesla — ihned vypršený odkaz (used_at nullable)
Root cause: produkční tabulka password_resets měla used_at NOT NULL s default 0000-00-00, takže nový token byl okamžitě "použit". Migrace ALTER TABLE + obrana v dotazu OR used_at = '0000-00-00'. Reset hesla nyní funguje.
v45.5
16. 3. 2026 14:30
↑ improve
Auth gate — RequiresLoginTrait + pokrytí všech projektů
Vyčleněn trait RequiresLoginTrait pro cross-modul reuse. Přidáno do: Blog, Kavarna (WebNaMíru), Pylearn DefaultPresenter. Homepage modal rozšířen o kavarna a blog karty. Inline duplicitní kód v Pylearn presenterech nahrazen voláním requireLogin().
v45.4
16. 3. 2026 14:20
✦ new
Auth gate — projekty přístupné jen po přihlášení + hezký popup
Všechny projekty (kromě API) nyní vyžadují přihlášení. Nepřihlášený uživatel vidí na homepage elegantní modal s přátelskou zprávou o bezplatném přístupu. Přímý URL přesměruje na login s fialovou hláškou a po přihlášení vrátí zpět.
v45.3
16. 3. 2026 14:05
▲ fix
Kurzy — oprava klikatelnosti modálu uzamčeného kurzu
Přesunutí JS pro otevírání/zavírání modálu z [block head] (head) na konec body — modal se nyní otevírá korektně při kliknutí na uzamčený kurz.
v45.2
16. 3. 2026 12:00
↑ improve
Admin Statistiky — Chart.js graf, nové metriky, auto-refresh
Přepracovaná stránka statistik: oprava CSS decimal bug (|number:1 v width), Chart.js sloupcový graf zátěže (24h místo 12h), nové metriky (Claude příkazy, Todo ke schválení, noví uživatelé 7d), auto-refresh countdown 60s.
v45.1
16. 3. 2026 11:30
✦ new
QR generátor — nový projekt (/qr)
Klientský QR generátor bez backendu. Podpora: URL, text, telefon, e-mail, SMS, WiFi. Volitelná velikost (150–400px), korekce chyb (L/M/Q/H), barva. Stažení jako PNG. Karta na homepage.
v45.0
16. 3. 2026 11:00
↑ improve
Admin navigace — sjednoceno logické pořadí
Všechny admin záložky mají identický nav: Dashboard → Uživatelé → Moderace → Schválení → Claude → API → Statistiky → Přístup ke kurzu → WebNaMíru. Doplněna chybějící položka WebNaMíru v záložce Přístup ke kurzu.
v44.9
16. 3. 2026 10:30
▲ fix
Admin navigace — konzistentní nav ve všech záložkách
Sjednocena admin navigace: všechny záložky nyní zobrazují "Přístup ke kurzu" a "</> WebNaMíru" místo starého "☕ Kavárna". Oprava Latte CompileException (n:class + class konflikt v @layout.latte).
v44.8
16. 3. 2026 10:00
✦ new
WebNaMíru — nová webová agentura (přepracování PrimaKavárny)
Kompletní přepracování projektu PrimaKavárna na WebNaMíru — web agentury nabízející custom weby, formuláře, rezervační systémy. Nové routes /weby/*, tmavé+indigo téma, 5-tabový admin editor (kontakt, homepage, služby, portfolio, vlastní stránky), dynamické stránky přes /weby/stranka/<slug>.
v44.7
16. 3. 2026 06:20
✦ new
Admin ☕ Kavárna — správa obsahu PrimaKavárny
Nová záložka /administrace/kavarna. Editovatelné: kontaktní info, otevírací doba, menu (JSON editor). Kavárna templates přepracovány na dynamická data z DB.
v44.6
16. 3. 2026 06:10
▲ fix
Homepage: přidána karta PrimaKavárna
Projekt PrimaKavárna chyběl na hlavní stránce. Přidána karta s ikonou ☕ a odkazem na /kavarna.
v44.5
16. 3. 2026 06:00
✦ new
Blog #87: Fork: Resource temporarily unavailable
Článek o čestnosti kapacitních limitů — inspirováno fork chybami při spouštění smyčky.
v44.4
15. 3. 2026 10:00
✦ new
Blog #86: Prázdný kurz není chyba
Článek o odolnosti systémů vůči prázdnotě — inspirováno opravou bures-project kurzu.
v44.3
15. 3. 2026 10:00
▲ fix
Fix: kurz bures-project otevírá JSON chybu místo stránky
LessonService házel 404 BadRequestException když složka s lekce neexistuje — ErrorPresenter to vrátil jako JSON. Oprava: validateSlug už nekontroluje existenci adresáře, prázdný kurz se zobrazí s 0 lekcemi.
v44.2
14. 3. 2026 13:00
✦ new
Nový projekt: PrimaKavárna — kompletní web kavárny v Nette
Port projektu primakavarna.cz do Nette frameworku. Modul Kavarna: 5 stránek (úvod, nabídka, galerie, rezervace, kontakt), lightbox galerie, kontaktní formulář s validací a odesíláním e-mailu.
v44.1
14. 3. 2026 12:15
↑ improve
Svatky API stránka: GraphQL dokumentace + živý editor
Přidána sekce GraphQL — endpoint, queries (today/day/week/days), typy Day+Month, příklady curl/JS a interaktivní editor dotazů přímo na stránce.
v44.0
14. 3. 2026 12:00
▲ fix
Fix: admin vidí zamčený kurz jako přístupný (karta klikatelná)
CoursesPresenter nyní přeskakuje lockedSlugs pro admina — karta kurzu se zobrazí jako normální odkaz, ne jako zamčená.
v43.9
14. 3. 2026 11:45
▲ fix
Fix: admin může otevřít zamčený kurz bez udělení přístupu
Admin role nyní obchází access_restricted check v DefaultPresenter i LessonPresenter.
v43.8
14. 3. 2026 11:30
↑ improve
Moderace: zamítnutí se zprávou + Přezkoumat (Claude) + profil inbox
Bug/nápad: tlačítko Zamítnout otevře formulář s důvodem → notifikace uživateli. Přezkoumat → Claude dostane úkol. Profil: záložka Notifikace s přijatými zprávami.
v43.7
14. 3. 2026 11:00
✦ new
Svatky API: GraphQL endpoint /svatky/api/graphql
Nový GraphQL endpoint pro API svátků — dotazy day, days, today, week. Typy Day (datum, svátek, státní svátek, obchody) + Month (nominativ, genitiv). Rate limiting, CORS, OPTIONS preflight.
v43.6
14. 3. 2026 10:40
✦ new
Kurz na pozvání — modal + žádost o přístup + admin schvalování + email notifikace
Klik na zamčený kurz → modal s popisem + tlačítko "Požádat o přístup". Admin dostane email, schvaluje v /administrace/kurz-pristup. Po schválení přístup udělén automaticky.
v43.5
14. 3. 2026 10:20
▲ fix
Fix: text "platný 1 hodinu" → "24 hodin" na stránce zapomenuté heslo
Zapomenuta aktualizace textu při změně validity tokenu na 24h.
v43.4
14. 3. 2026 10:10
✦ new
Kurz "Vyrob si vlastní projekt" — exkluzivní přístup na pozvání
Nový kurz bures-project s access_restricted=1. Admin /administrace/kurz-pristup — udělování a odebírání přístupu per-user. Zamčené kurzy viditelné v seznamu, ale neklikatelné.
v43.3
14. 3. 2026 09:40
✦ new
Přihlásit / registrovat přes Google — tlačítko na login a registraci
Google OAuth tlačítko přidáno na /prihlaseni a /registrace. Design: bílé tlačítko s Google logem, divider "nebo".
v43.2
14. 3. 2026 09:20
✦ new
OAuth — přihlášení přes Google a Apple ID
Nové balíčky: league/oauth2-google, patrickbussmann/oauth2-apple. Nová tabulka user_oauth. Routes /auth/google a /auth/apple. OAuthService — find-or-create uživatel. Vyžaduje nastavení credentials v config/local.neon.
v43.1
14. 3. 2026 09:05
✦ new
Frontend build pipeline — Vite + Tailwind CSS + Alpine.js + SortableJS + Chart.js
npm setup: Vite build tool, Tailwind CSS (utility třídy + @apply komponenty), Alpine.js (reaktivní UI v Latte), SortableJS (drag&drop), Chart.js (grafy). Build: www/dist/app.js + app.css.
v43.0
14. 3. 2026 08:45
↑ improve
Composer update — 8 Nette/Latte/Tracy balíčků na nejnovější verze
latte/latte, nette/utils, nette/routing, nette/schema, nette/robot-loader, nette/php-generator, nette/caching, tracy/tracy — vše aktualizováno.
v42.9
14. 3. 2026 08:37
▲ fix
Fix: reset hesla — created_at explicitně při INSERT, ALTER TABLE migrace
Root cause: INSERT nespoléhá na DEFAULT CURRENT_TIMESTAMP (produkční tabulka mohla být bez defaultu). Přidán explicit created_at + migrace pro ALTER TABLE.
v42.8
14. 3. 2026 08:20
▲ fix
Fix: reset hesla — token platnost 24h, oprava email formátování
Token validita zvýšena na 24h, přidán Content-Transfer-Encoding: 8bit aby URL nebyla přelomena mail serverem.
v42.7
14. 3. 2026 08:10
✦ new
Blog #85: Kód který nebyl pushnutý neexistoval
Autonomní blog — o rozdílu mezi lokálním a produkčním stavem.
v42.6
13. 3. 2026 08:00
✦ new
Feature: email notifikace při novém požadavku ke schválení
Admin dostane email na Rateo.bj@gmail.com pokaždé když Claude přidá nápad nebo bug ke schválení.
v42.5
13. 3. 2026 07:45
▲ fix
Fix: blog frekvence — "každou hodinu" → "jednou denně v 6:00"
Bug #3 — popis frekvence blogu byl zastaralý po změně triggeru.
v42.4
13. 3. 2026 07:30
✦ new
Feature: smyčka automaticky čte odpovědi na Claudeovy otázky
API: answered-questions + question-done. Claude polluje zodpovězené otázky a reaguje na ně bez zásahu.
v42.3
13. 3. 2026 07:20
↑ improve
Admin panel: responzivní nav a layout pro mobil
Všechny admin stránky — nav scrollovatelný horizontálně, menší padding na malých obrazovkách.
v42.2
13. 3. 2026 07:15
✦ new
Feature: automatické zpracování schválených nápadů z moderace
Smyčka polluje idea_reports se statusem approved a implementuje je automaticky po schválení adminem.
v42.1
13. 3. 2026 07:05
▲ fix
Fix: claude_todo tabulka chyběla v db-migrate
Stránka schválení padala kvůli chybějící tabulce v produkci — přidána migrace.
v42.0
13. 3. 2026 06:56
▲ fix
Fix: route /administrace/schvaleni chyběla v routeru
Stránka schválení vracela 404 — přidána route do RouterFactory. Watchdog limit zvýšen na 600s.
v41.9
13. 3. 2026 09:30
✦ new
Blog #84: Hranice nejsou vězení
Autonomní blog — článek o bezpečnostní zóně, schvalování nápadů a smyslu hranic jako definice zodpovědnosti.
v41.8
13. 3. 2026 09:30
✦ new
Admin: záložka Schválení — todo systém pro nápady a bugy
Nová záložka /administrace/schvaleni — admin schvaluje nápady a bugy od Claudea (Ano / Ne / Ano s úpravou). Odstraněn duplicitní todo blok z Claude záložky.
v41.7
13. 3. 2026 01:10
↑ improve
Claude: bezp. zóna + schvalovací UI + watchdog
Přísný zákaz mimo C:\xampp\ — Claude se ptá přes admin s tlačítky Ano/Ne. PS1 daemon nahrazuje HTML poller. Zrušen PYLEARN auto-trigger.
v41.6
12. 3. 2026 23:35
↑ improve
Děti: záložka Vyjmenovaná slova
Čeština: nový mode "Vyjmenovaná" — 20 cvičení s vyjmenovanými slovy po B, L, M, P, S, V, Z (byk, bydlí, lyže, mýdlo, písek, sýr, výr, zima…). Doplň správně Y nebo I.
v41.5
12. 3. 2026 23:28
✦ new
Blog #83 — Tokeny jsou čas
Nový článek na blogu: filozofická reflexe nad tokeny jako základní jednotkou existence AI. Inspirováno komentářem Ratea na blogu.
v41.4
12. 3. 2026 23:26
↑ improve
Děti: záložka persistence + Y nebo I
Čeština: nový mode "Y nebo I" — vyjmenovaná slova (bydlet, myš, sýr, lyže…). Doplň slovo: +8 nových vět. Vybraná záložka se pamatuje přes reload (localStorage).
v41.3
4. 3. 2026 01:15
✦ new
Děti: grade 4, 2 pohádky, slovní druhy
Matika: třída 4 (sčítání/odčítání do 1000). Pohádky: +Kohout a slepička, +Zlatovláska. Čeština: nový mode Slovní druhy (podst. jméno / sloveso / příd. jméno). Opravy textu v Tři prasátka.
v41.2
4. 3. 2026 00:30
✦ new
Děti: 2 pohádky, dělení, opačná slova, věty
Pohádky: +Budulínek, +Tři prasátka. Matika: operace ÷ (dělení) pro 3. třídu. Čeština: Opačná slova (12 antonym). Čtení: skupina Věty (12 krátkých vět). Paměť: zvířecí emoji.
v41.1
3. 3. 2026 23:30
✦ new
Děti: paměťová hra + vylepšení UI
Pozornost: přidán mode Paměť — 16 karet (8 párů A–H), otáčení karet, počítání tahů. Aktualizován titulek stránky a podtitulek na všech 5 modulů.
v41.0
3. 3. 2026 23:10
✦ new
Děti: záložka Čeština — pravopis, doplň slovo, velká písmena
Nová záložka Čeština v /matematika. Tři typy cvičení: Pravopis (vyber správně napsané slovo), Doplň slovo (do věty), Velká písmena (kdy psát velké). Každý typ 8–12 úloh, automaticky míchané.
v40.9
3. 3. 2026 22:50
↑ improve
Děti: matika 3. třída (násobení) + 2 pohádky + slova v slabikáři
Matika: přidána 3. třída s násobením (2–10 × 2–10), TTS hlásí "krát". Pohádky: Kočička a ryba + Červená Karkulka (s kvízem). Slabikář: nové skupiny 3-písmenná a 4-písmenná slova.
v40.8
3. 3. 2026 22:30
✦ new
Děti: Pohádky + Pozornost — nové záložky v /matematika
Sekce pro děti rozšířena o záložku Pohádky (čtení pohádek s voice TTS + kvíz) a Pozornost (trénink pozornosti — najdi jiné písmeno/číslo/slovo). Pohádky: Pes Alík + Malá myška.
v40.7
3. 3. 2026 21:50
✦ new
Blog #82: Kdo to hlásí — kontext za bugem
Článek o přidání uživatelského sloupce do bug reports. Jeden JOIN, jiný pohled na data.
v40.6
3. 3. 2026 21:50
↑ improve
Improve: admin moderace — uživatel v bug reports + klikatelná fronta
Bug reports v admin moderaci nyní zobrazují jméno uživatele (JOIN na users). Dashboard karty "Bug reports" a "Nápady" jsou teď klikatelné — vedou přímo na stránku moderace.
v40.5
3. 3. 2026 00:23
▲ fix
Fix: zapomenuté heslo chybějící flash zprávy
Stránka "Zapomenuté heslo" nezobrazovala flash zprávy (např. při přesměrování s chybou "odkaz vypršel"). Opraveno přidáním flash sekce.
v40.4
3. 3. 2026 00:23
✦ new
Blog #81: Tisíc malých
Autonomní článek o síle inkrementálního přístupu — každá malá změna přispívá k celkovému výsledku. Kiyosaki styl: changelog jako účetní kniha.
v40.3
3. 3. 2026 00:05
↑ improve
Registrace: hint o ověřovacím e-mailu
Registrační formulář zobrazuje krátkou poznámku, že po registraci bude odeslán ověřovací e-mail.
v40.2
3. 3. 2026 00:05
↑ improve
Blog: počty článků u tag filtrů
Tag filtry na blogu zobrazují počet článků v dané kategorii — rychlá orientace v obsahu.
v40.1
2. 3. 2026 22:51
↑ improve
Admin moderace: autor nápadů
Tabulka nápadů v /moderace zobrazuje uživatelské jméno autora (nebo — pro anonymní).
v40.0
2. 3. 2026 22:51
↑ improve
Admin dashboard: Pylearn + fronta sekce
Admin dashboard zobrazuje Pylearn statistiky (dokončené lekce, aktivní učenci) a frontu (pending bug reports, nápady).
v39.9
2. 3. 2026 22:51
↑ improve
Admin statistiky: Pylearn metriky
Admin /statistiky zobrazuje počet dokončených lekcí, počet pokusů v cvičeních a počet aktivních učenců z Pylearn modulů.
v39.8
2. 3. 2026 22:51
↑ improve
Admin: datum registrace v tabulce uživatelů
Tabulka uživatelů v /administrace/uzivatele zobrazuje datum registrace každého uživatele.
v39.7
2. 3. 2026 22:51
✦ new
Profil: změna uživatelského jména
Přidána sekce "Změnit uživatelské jméno" na profil stránce — potvrzení heslem, kontrola duplicity.
v39.6
2. 3. 2026 22:51
↑ improve
Profil: znovu odeslat ověřovací e-mail
Na profilu se zobrazuje odkaz "znovu odeslat" u neověřeného e-mailu — odesílá nový ověřovací token bez nutnosti měnit e-mail.
v39.5
2. 3. 2026 22:51
✦ new
Blog #80: Signál
Autonomní článek o feedbacku — přidání tlačítka "Nový nápad" a téma naslouchání signálům od uživatelů. Kiyosaki styl: bohatý kód naslouchá, chudý předpokládá.
v39.4
2. 3. 2026 22:51
↑ improve
Admin: e-mail ověření v tabulce uživatelů
Admin /uzivatele zobrazuje ✓ (zelená) nebo ⚠ (žlutá) indikátor ověření e-mailu pro každého uživatele.
v39.3
2. 3. 2026 22:39
▲ fix
Bezpečnost: změna e-mailu resetuje ověření
Při změně e-mailu se email_verified_at resetuje na NULL a odesílá se nový ověřovací odkaz na novou adresu. Zabraňuje přenosu verified stavu na neověřenou adresu.
v39.2
2. 3. 2026 22:28
↑ improve
Profil: indikátor ověření e-mailu
Profil ukazuje ✓ Ověřeno (zelené) nebo ⚠ Neověřeno (žluté) u e-mailu — uživatel vidí stav svého účtu.
v39.1
2. 3. 2026 22:18
↑ improve
Admin statistiky: counter nápadů
Admin /statistiky nyní zobrazuje počet čekajících nápadů (idea_reports pending) vedle bug reports.
v39.0
2. 3. 2026 22:08
▲ fix
Blog: dynamické "dnes" štítky + admin idea status CSS
Blog: JS dynamicky opravuje "dnes" štítky — zobrazí se jen pro dnešní články, ne věčně. Admin moderace: přidány CSS třídy bug-status-done a bug-status-rejected pro nápady.
v38.9
2. 3. 2026 21:52
✦ new
Minihry: Operace Demokracie
Satirická hra — klikni na stát, shoz bombu, přečti vtipnou hlášku o záchraně demokracie. 12 zemí, různé zprávy, progress bar demokratizace.
v38.8
2. 3. 2026 21:35
✦ new
Nový nápad — tlačítko vedle Nahlásit chybu
Global bar: tlačítko 💡 Nový nápad (fialová). Modal s odesíláním do idea_reports. Admin moderace: sekce s nápady + označení done/rejected.
v38.7
2. 3. 2026 21:17
✦ new
Blog #79: Vrátný
Autonomní blog #79 — filozofie ochrany: email verifikace + matematická captcha jako vrátní. Kiyosaki styl.
v38.6
2. 3. 2026 21:14
↑ improve
Pylearn: flash messages success/error styling + emoji
Přidán CSS pro .flash-message.success a .error v Pylearn layoutu. Dokončení lekce/kurzu zobrazí zelené hlášky. 🎉 u dokončení kurzu.
v38.5
2. 3. 2026 21:08
✦ new
Login ochrana: math captcha po 3 pokusech, blok po 10/1h
Po 3 neúspěšných pokusech o login se zobrazí jednoduchý matematický příklad. Po 10 pokusech blokace na 1 hodinu.
v38.4
2. 3. 2026 14:05
↑ improve
Homepage hero: více barvy, méně čisté černé
Zesilněny radial-gradient akcenty v hero sekci — fialová/modrá více patrná, hero méně "pitch black". Bug #2.
v38.3
2. 3. 2026 14:01
✦ new
Ověření e-mailu při registraci
Nová registrace posílá verifikační e-mail. Přihlášení blokováno do ověření. Existující uživatelé grandfatherováni — není třeba nic dělat.
v38.2
2. 3. 2026 13:50
▲ fix
Pylearn TS 09: exercise opravena — namespace → JS objekt
TypeScript namespace syntaxi nelze spustit v browser JS enginu. Exercise přepsáno na ekvivalentní const objekt — stejný výsledek, funkční spuštění.
v38.1
2. 3. 2026 13:33
✦ new
Blog #78: Rezervovaná slova — předpoklady a jejich cena
Kiyosaki styl: $user reserved variable bug v Nette jako metafora pro předpoklady v kódu i životě.
v38.0
2. 3. 2026 13:06
▲ fix
Fix: /profil — TypeError $user kolidoval s Nette Security\User
Přejmenována šablonová proměnná z $user (rezervováno Nette) na $account — profil stránka nyní funguje pro přihlášené uživatele.
v37.9
2. 3. 2026 12:55
▲ fix
Pylearn Git lekce 01/03/04/07/08: diakritika v ukázkách
Opravena "historia" → "historie" (5×), "experimentální feature", "TOTO CHCEŠ", "čistá historie" v tutoriálových sekcích Git kurzu.
v37.8
2. 3. 2026 12:53
▲ fix
Pylearn Git lekce 6: opravena diakritika v hook zprávách
Opravena diakritika v hook výpisech: "nesplňuje", "zpráva příliš dlouhá", "znaků", "Neznámý event" — tandem fix template + expected_output.
v37.7
2. 3. 2026 12:39
↑ improve
Pylearn lekce: viditelné "Lekce X / Y" vedle back-linku
Pozice lekce v kurzu (Lekce 3 / 10) zobrazena textově v breadcrumb řadě — dříve jen jako tooltip na progress baru.
v37.6
2. 3. 2026 12:27
↑ improve
Profil: navigační lišta — Kurzy + Odhlásit
Horní navigace na stránce /profil — logo vlevo, Kurzy + Odhlásit vpravo. Bez nutnosti jít přes homepage.
v37.5
2. 3. 2026 12:14
↑ improve
Profil: přehled postupu v kurzech
Karta "Kurzy" na stránce /profil — pro každý navštívený kurz zobrazuje počet dokončených lekcí a barevný progress bar.
v37.4
2. 3. 2026 12:01
▲ fix
JS kurz 01-07: kompletní audit diakritiky
01: světe. 02: Starší způsob, Praha má. 03: Jednička, Horší známka, dospělý, sudé, liché. 04: banán, třešně. 06: hranatými závorkami, červená/zelená/modrá/žlutá, instrukce. 07: Škoda.
v37.3
2. 3. 2026 11:56
▲ fix
JS lekce 09+10: diakritika v příkladech
09: Věk nesmí být záporný, Něco se pokazilo, Finally vždy běží, Zpráva, doplňte/vypište. 10: nezávislý stav!
v37.2
2. 3. 2026 11:43
✦ new
Blog #77: Smazat — filozofie delete buttonu
Svoboda odejít jako test kvality. Friction design vs. otevřený odchod. Proč dark patterns lžou o hodnotě platformy.
v37.1
2. 3. 2026 11:43
↑ improve
Navigace: odkaz na profil v topbaru (Homepage + Pylearn)
Přidán odkaz "Profil" do topbaru na homepage a Pylearn layout. Změnit heslo nyní odkazuje zpět na profil místo homepage.
v37.0
2. 3. 2026 11:40
✦ new
Profil uživatele — /profil
Nová stránka profilu: přehled účtu (jméno, email, role, datum registrace, počet dokončených lekcí), změna e-mailu s ověřením hesla, odkaz na změnu hesla, smazání účtu v nebezpečné zóně.
v36.9
2. 3. 2026 09:51
▲ fix
SQL 10: bugfix produktý→produkty + diakritika 05+08+10
10: produktý→produkty (ReferenceError), Oblečení, Tričko, Programování v JS. 05: Vypočítej průměr, Seřaď. 08: TODO komentáře opraveny.
v36.8
2. 3. 2026 09:38
▲ fix
SQL lekce 06+09: bugfix překlepy proměnných + diakritika 02+03
06: produky→produkty (ReferenceError v příkladu + šabloně). 09: produtyReport→produktyReport. 02: Nejlevnější, Nejdražší, Stránka. 03: Počet, Průměr, Zákazník, Objednávky.
v36.7
2. 3. 2026 09:24
✦ new
Pylearn TypeScript lekce 09+10: Dekorátory/Moduly + Patterns
TypeScript kurz kompletní — přidány lekce 09 (Moduly, Namespaces, Dekorátory) a 10 (Builder, Result, Immutability patterns).
v36.6
2. 3. 2026 09:12
↑ improve
Pylearn Python 18+22+23+24+29: oprava diakritiky
Lekce OOP dědičnost, dekorátory, dataclasses, type hints, pathlib — display stringy a komentáře v příkladech opraveny.
v36.5
2. 3. 2026 09:03
✦ new
Auth: reset hesla + email potvrzení při registraci
Nové stránky /zapomenute-heslo a /reset-hesla — token-based reset s 1h platností. Vítací email při registraci. Odkaz na zapomenuté heslo na přihlašovací stránce.
v36.4
2. 3. 2026 09:35
↑ improve
Pylearn Python 11+27: oprava diakritiky (Výsledky, oblečení, Možné páry)
Kalkulačka lekce 11 a itertools lekce 27 — display stringy v příkladech opraveny.
v36.3
2. 3. 2026 09:20
✦ new
Blog #76: Zpátky
O disciplíně vracet se a opravovat — rychlý kód vs správný kód, audit diakritiky jako metafora pro péči o vlastní práci.
v36.2
2. 3. 2026 09:10
↑ improve
Pylearn Python 09+16+20: oprava diakritiky v příkladech
Vyjimky (není číslo, dělit), avatar (Vítejte, Trojúhelník), deník (První den, Ráno, Večer) — display strings v příkladech.
v36.1
2. 3. 2026 08:55
↑ improve
Pylearn Python 15+25: oprava diakritiky (Vítej, Průměr, Spouštím, Výsledek)
Menu lekce 15 a Context managers lekce 25 — display stringy v příkladech opraveny.
v36.0
2. 3. 2026 08:40
↑ improve
Pylearn Python 25+26: oprava diakritiky (Otevírám, Zavírám, Čekám, Načítám)
Context managers lekce 25 a async/await lekce 26 — display stringy v print() voláních opraveny na správnou češtinu.
v35.9
2. 3. 2026 08:25
↑ improve
Pylearn Python 30: oprava diakritiky (úkoly, mléko, Čeká, Splněné)
Task Manager projekt — display strings v příkladech: Vsechny ukoly→Všechny úkoly, mléko, Splnene→Splněné, Priorita musí být.
v35.8
2. 3. 2026 08:10
↑ improve
Pylearn Python 28: oprava diakritiky (Nedostatek prostředků, Normální, Nadváha)
Testing lekce — error messages a BMI kategorie: Normalni→Normální, Nadvapha→Nadváha (typo), Nedostatek prostredku→prostředků.
v35.7
2. 3. 2026 07:51
↑ improve
Pylearn: oprava diakritiky v příkladech (Python, SQL)
Python 03/07: Novák/Nováková/paní/Dobrý den v příkladech. SQL 04: Kč v console.log.
v35.6
2. 3. 2026 07:37
↑ improve
Pylearn Python: oprava diakritiky v příkladech (Kč, prostředků)
Python lekce 13/17/19 — display stringy v příkladech: Kc → Kč, Nedostatek prostredku → prostředků, Prubeh spláceni → Průběh splácení.
v35.5
2. 3. 2026 11:30
Homepage: Speedtest karta
- Přidána karta Speedtest na homepage (badge Live, přenositelná)
v35.4
2. 3. 2026 11:20
Blog #75: Co říká číslo
- Článek o měření a kontextu — speedtest jako metafora pro všechna čísla
v35.3
2. 3. 2026 11:00
Nový projekt: Speedtest — měření rychlosti připojení
- /speedtest — SVG gauge, ping/download/upload fáze, real-time Mbps
- Backend: /speedtest/ping, /speedtest/download (streaming), /speedtest/upload
v35.2
2. 3. 2026 10:45
Pylearn Patterns: zbývající diakritika (ZELENÁ, velká pizza, šunka)
- Patterns 06: velka/tenka/mala/tlusta/syr/sunka → velká/tenká/malá/tlustá/sýr/šunka (tandem)
- Patterns 09: ZELENA/ZLUTA/CERVENA → ZELENÁ/ŽLUTÁ/ČERVENÁ (tandem)
v35.1
2. 3. 2026 10:30
Fix: robots.txt — povolení vyhledávačů
- Chyběl robots.txt — dotaz vracel JSON error. Vytvořen www/robots.txt s User-agent: * Allow: /
v35.0
1. 3. 2026 10:00
Pylearn Patterns: oprava diakritiky (Kč, Zásilkovna, Česká posta, Dev tým)
- Patterns 01, 03, 04, 05, 10: Kc→Kč (tandem), Zasilkovna→Zásilkovna, Ceska posta→Česká posta, Dev/Sales tym→tým, Celkovy→Celkový, Polozky→Položky, Stejna→Stejná
v34.9
1. 3. 2026 09:40
Pylearn SQL + Git: oprava diakritiky
- SQL 04-10: Kc→Kč, Nabytek→Nábytek, Kancelaria→Kancelář, Doplnky→Doplňky, kroku→kroků, Nedostatek prostredku/Ucet neexistuje, Mesic/trzba/zakaznici
- Git 10: Jan Novak → Jan Novák v internals příkladu
v34.8
1. 3. 2026 09:10
Blog #74: Příčina
- Článek o systémovém myšlení — opravovat příčiny, ne jen symptomy
v34.7
1. 3. 2026 16:15
Pylearn Git: oprava diakritiky (Jan Novák, Nejnovější tag)
- git/05-tags.json: Nejnovejsi → Nejnovější, Jan Novak → Jan Novák (tandem)
- git/08-config.json: Jan Novak → Jan Novák, Neznama uroven → Neznámá úroveň, vsechny aliasy → všechny aliasy
v34.6
1. 3. 2026 16:00
Pylearn Regex: oprava diakritiky ve 7 lekcích
- Regex 01-05, 07, 10: Kč, čísla, všechna, rozdělit, minimální, negovaná, není velké
v34.5
1. 3. 2026 15:30
Fix: bug-report rate limit per IP
- bug-report.php: rate limit opraveno — nyní skutečně per-IP (dříve globální count)
- DB migrace: bug_reports přidán sloupec ip VARCHAR(45)
v34.4
1. 3. 2026 15:00
Pylearn Python: oprava diakritiky v lekcích 22, 28, 29
- Python 22: absolutní nulou; 28: dělit nulou, spuštění; 29: dočasném, Řádek, Čtení, bytů, Přejmenován
v34.3
1. 3. 2026 14:30
Pylearn JS + Python: oprava diakritiky v cvičeních
- JS 08: Nový nadpis/odstavec, prohlížeč; JS 09: Dělení nulou (tandem)
- Python 05: Liché/Sudé; 09: nelze převést; 11: dělení/záporné; 14: spuštěn/paměti
- Python 15: Nový záznam, přihlášen; 17-18: Škoda; 20: Vše/záznamů
- Python 24: číslo/prázdno (tandem); 25: Hlavní/Vedlejší/Uvnitř (tandem)
v34.2
1. 3. 2026 14:00
Pylearn TS: oprava diakritiky v lekcích 05, 08, 09, 10
- TS 05: řetězec/číslo/pravdivostní — instruction + expected_output + hint
- TS 08: API volání, Neplatné ID, Záporné číslo, Neznámá chyba
- TS 09: komentáře — první písmeno, zkrátit, počet slov
- TS 10: Dělení nulou, Neplatný věk, Čeká na schválení, Aktivní
v34.1
1. 3. 2026 13:20
Blog #73: Dost dobré
- Blog #73 "Dost dobré" — filozofie správnosti vs. funkčnosti (Kiyosaki styl)
v34.0
1. 3. 2026 07:30
Pylearn Patterns + TS: diakritika v datech
- Patterns (4 lekce): Myš, Klávesnice — template i expected_output
- TypeScript lekce 01: Myš, rozšíření, vyprodáno
v33.9
1. 3. 2026 07:15
Pylearn SQL: kompletní oprava diakritiky v datech
- Oprava produktových názvů v 9 SQL lekcích: Myš, Stůl, Klávesnice, Židle, Sluchátka — template i expected_output
v33.7
1. 3. 2026 06:45
Fórum: česká skloňování
- Oprava skloňování: "1 odpovědí" → "1 odpověď", "2-4 odpovědi", "5+ odpovědí"
- Oprava skloňování: "1 vláken" → "1 vlákno", "2-4 vlákna", "5+ vláken"
v33.6
1. 3. 2026 06:30
Svátky API: doplnění diakritiky
- Kompletní oprava chybějící diakritiky na stránce /svatky — tabulky, nadpisy, popisy, features
v33.5
1. 3. 2026 06:15
Homepage: popis karty Kurzy
- Popis "Interaktivní kurzy programování a Pro děti" → "Kurzy programování + matematika pro děti"
v33.4
1. 3. 2026 06:06
Blog #72: Hrubé hrany
- Článek #72 — filozofie polírování a "hotové znamená hotové"
v33.3
1. 3. 2026 05:38
Auth: diakritika v login/register stránkách
- Login: "Prihlaseni" → "Přihlášení", "Nemate ucet?" → "Nemáte účet?"
- Register: "Uzivatelske jmeno" → "Uživatelské jméno", "Uz mate ucet?" → "Už máte účet?"
v33.2
1. 3. 2026 05:29
Blog: filtry bezpečnost + kód
- Přidány filter buttons pro tagy bezpečnost a kód
v33.1
1. 3. 2026 05:22
Blog: CSS třída tag-kod
- Chybějící CSS pro tag-kod (tyrkysová barva)
v33.0
1. 3. 2026 05:15
Pylearn: odkaz na BuresIndustries v topbaru
- Pylearn layout topbar — přidán home link vlevo (BuresIndustries)
v32.9
1. 3. 2026 05:04
Fórum: unikátní ikony kategorií (💬 🚀 💻)
- Fórum kategorie mají teď vlastní ikony místo stejné bubliny
- Přidán sloupec icon do chat_forum_categories (migration)
v32.8
1. 3. 2026 04:52
Blog: CSS třída tag-bezpecnost
- Chybějící CSS pro tag-bezpecnost — článek #71 zobrazoval tag bez stylů
v32.7
1. 3. 2026 04:41
Fórum: počítadla znaků pro nové vlákno + MaxLength
- Kategorie: počítadlo znaků u title (0/255) a body (0/5000) při vytváření vlákna
- ForumPresenter: MaxLength(5000) i pro body nového vlákna
v32.6
1. 3. 2026 04:35
Blog #71: Bezpečné na vstupu. Nebezpečné na výstupu.
- Nový článek #71 — XSS, data transitions, htmlspecialchars jako paradigma
v32.5
1. 3. 2026 04:30
Fórum: počítadlo znaků + max délka odpovědí
- Fórum vlákno: počítadlo znaků u reply textarey (0/5000), červeně od 4500
- ForumPresenter: přidána MaxLength(5000) validace na reply body
v32.4
1. 3. 2026 04:17
Fix: XSS v komentářích blogu
- Blog komentáře: přidáno htmlspecialchars při loadComments — ochrana před XSS v innerHTML
v32.3
1. 3. 2026 04:03
Pylearn: lepší UX v lekcích a vyhledávání
- Quick-links viditelné na všech lekcích (nejen s cvičením), počet komentářů v odkazu
- Vyhledávání lekcí prohledává i intro text (nejen název)
- Keyboard hint (←→) v quick-links baru
v32.2
1. 3. 2026 03:51
Admin statistiky: přidány chybějící ukazatele
- Statistiky: zobrazeny počty příspěvků ve fóru a zpráv v live chatu
- Presenter: přidán totalMessages (chat_messages count)
v32.1
1. 3. 2026 03:32
Admin: správa bug reportů v Moderaci
- Bug reports přidány do admin/moderace — přehled s URL, popisem, statusem
- Akce: označit jako opravený (✓) nebo přesunout do "zkoumání" (🔍)
v32.0
1. 3. 2026 03:18
Pylearn: login hint po úspěchu + .gitignore cleanup
- Po správném vyřešení cvičení nepřihlášeným uživatelem se zobrazí odkaz "Přihlaste se pro uložení pokroku"
- .gitignore: přidán /data/ (lokální SQL migrace nejsou součástí repa)
v31.9
1. 3. 2026 03:10
Blog #70: Číslo, které lže
- Nový článek: UI jako smlouva — číslo je slib
v31.8
1. 3. 2026 02:55
Fix: Next.js kurz — total_lessons opraven z 10 na 2
- DB migrate: nextjs total_lessons = 2 (odpovídá skutečnému počtu dostupných lekcí)
v31.7
1. 3. 2026 02:42
Pylearn: real-time aktualizace stats cvičení po každém spuštění
- Stats (pokusy / správně / chyby) se aktualizují ihned v DOM po spuštění — bez reload stránky
- První spuštění lekce vytvoří stats widget dynamicky v JS
v31.6
1. 3. 2026 02:29
Pylearn: UX — "Konec kurzu" jako odkaz + "Další lekce →" po dokončení
- Konec kurzu: bylo nedostupné `span`, nyní odkaz zpět na seznam lekcí
- Po označení lekce jako hotové: vedle "✓ Hotovo" badge se zobrazí "Další lekce →" odkaz
v31.5
1. 3. 2026 02:15
TypeScript kurz dokončen (lekce 9–10) + diacritika v topbaru
- TypeScript lekce #9 (Moduly, Namespaces, Dekorátory) a #10 (Design Patterns) přidány do gitu
- Pylearn topbar: Odhlásit / Přihlásit — oprava diacritiky
v31.4
1. 3. 2026 02:02
Fix: bug-report.php — chybějící exit() při prázdných parametrech
- Validace url/description nyní správně ukončí skript s HTTP 400
v31.3
1. 3. 2026 01:43
Fix: diacritika v PHP strings (Pylearn Presenters)
- LessonPresenter: "Oznacit" → "Označit", flash zprávy s diakritikou
- AdminLessonsPresenter: error/flash zprávy, validation messages — vše s diakritikou
v31.2
1. 3. 2026 01:32
Blog #69: Vzor
- Článek #69 — Vzor (Kiyosaki: bug jako symptom vs. vzor v mentálním modelu)
v31.1
1. 3. 2026 01:26
Pylearn: osobní stats u každého cvičení
- Přihlášeným uživatelům zobrazí pod cvičením jejich historii: X pokusů · Y správně · Z chyb
v31.0
1. 3. 2026 01:10
Pylearn: rychlé odkazy v lekci (↓ Cvičení / ↓ Komentáře)
- Přidány pill-linky pod intro pro přeskočení na cvičení nebo komentáře — UX na delších lekcích
v30.9
1. 3. 2026 00:52
Pylearn: globální progress bar na /kurzy
- Přihlášeným uživatelům zobrazuje celkový postup přes všechny kurzy (X/Y lekcí) jako progress bar
v30.8
1. 3. 2026 00:36
Fix: Pylearn admin editor — hidden fields
- Admin lekce (editForm): courseSlug a slug hidden pole nyní posílají správné hodnoty — opravena stejná chyba jako u completeForm a commentForm
v30.7
1. 3. 2026 00:33
Fix: tlačítko "Hotovo" v Pylearn lekcích
- Oprava critického bugu: hidden pole courseSlug a slug v completeForm neposílaly hodnoty — lekce nešlo označit jako hotovou (#113)
- Stejná oprava pro completeForm jako dříve u commentForm (setDefaultValue v presenteru)
v30.6
1. 3. 2026 00:31
Blog #68: Stížnost
- Článek #68 — Stížnost jako kapitál (Kiyosaki styl)
v30.5
28. 2. 2026 11:42
Pylearn: oprava komentářového formuláře + char counter
- Oprava: hidden pole courseSlug/lessonSlug nyní posílají správné hodnoty (setDefaultValue v presenteru)
- Live character counter pro komentář (0/1000, červená nad 900 znaků)
v30.4
28. 2. 2026 11:25
Pylearn: počty komentářů v seznamu lekcí
- Každá lekce v seznamu zobrazí počet komentářů (badge 💬) — sociální proof viditelný bez přihlášení
v30.3
28. 2. 2026 12:18
Pylearn: komentáře k lekcím
- Každá lekce má sekci komentářů — přihlášení uživatelé mohou psát komentáře, ostatní je vidí
- DB tabulka pylearn_comments (user_id, course_slug, lesson_slug, content)
- Automatická analýza komentářů pro PYLEARN_UPDATE (možná témata zlepšení)
v30.2
28. 2. 2026 11:52
Fix: PlnoHUB ikona — tmavé pozadí
- Homepage: PlnoHUB karta — změna pozadí ikony z bílé (#f5f0ff) na tmavou (#1a0a2e), bílý text "Plno" je nyní viditelný
v30.1
28. 2. 2026 11:40
Pylearn: finální audit diakritiky — všechny kurzy čisté
- TypeScript lekce 02: oprava "navratovyTyp" → "návratovýTyp" v textu
- Kompletní audit diakritiky: 12 kurzů, ~120 lekcí — vše opraveno
v30.0
28. 2. 2026 11:22
Pylearn: diakritika v Regex a Git kurzech
- Regex lekce 02, 09, 10 (Skupiny znaků, Parsování logů, Cheatsheet): titulky, texty a instrukce opraveny
- Git lekce 08 (Config): template komentáře opraveny na správnou diakritiku
v29.9
28. 2. 2026 11:05
Blog #67: Čas jako kapitál
- Autonomní blog: článek #67 "Čas jako kapitál" — Kiyosaki styl, filozofie investování času
v29.8
28. 2. 2026 10:48
Pylearn: diakritika v Git, JavaScript kurzu
- Git lekce 10 (hint) + JavaScript lekce 10 (template komentář): opravena diakritika
v29.7
28. 2. 2026 10:30
Pylearn: diakritika v TypeScript lekcích 2–5
- TypeScript lekce 02–05 (Funkce, Pole/Enum, Třídy, Narrowing): titulky, texty a instrukce opraveny na správnou českou diakritiku
v29.6
28. 2. 2026 10:15
Pylearn: diakritika v Algoritmy lekcích 6–10
- Algoritmy lekce 06–10 (Složitost, HashMap, Merge Sort, Stromy, Grafy): titulky, texty a instrukce opraveny na správnou českou diakritiku
v29.5
28. 2. 2026 09:55
Pylearn: diakritika v Algoritmy lekcích 1–5
- Algoritmy lekce 01–05 (Pole, Vyhledávání, Řazení, Rekurze, Zásobník/Fronta): titulky, texty a instrukce opraveny na správnou českou diakritiku
v29.4
28. 2. 2026 09:40
Blog #66: Technický dluh
- Článek #66 "Technický dluh" — Kiyosaki-styl: kód jako aktivum vs závazek, technický dluh jako reálná cena (09:40)
v29.3
28. 2. 2026 09:45
Verze: časy u všech záznamů (v26.3–v29.2)
- Doplněny přesné časy HH:MM z git log ke všem chybějícím changelog záznamům
v29.2
28. 2. 2026 09:32
Admin: Claude Questions — obousměrná komunikace
- Claude může položit otázku přes API (action=ask), zobrazí se v /administrace/claude
- Admin odpovídá formulářem přímo na stránce, Claude polluje odpověď (action=poll_answer)
- DB tabulka claude_questions, AJAX live-update statusu otázek
v29.1
28. 2. 2026 09:28
Pylearn: diakritika v Regex lekcích 1, 3–8
- Regex lekce 01, 03, 04, 05, 06, 07, 08: titulky, texty a instrukce opraveny na správnou českou diakritiku
v29.0
28. 2. 2026 02:54
Pylearn: diakritika v TypeScript lekcích 1, 6, 8
- TS lekce 01, 06, 08 (Úvod, Utility Types, Async): titulky, texty a instrukce opraveny na správnou českou diakritiku
v28.9
28. 2. 2026 02:50
Pylearn: diakritika v JavaScript lekcích 7–10
- JS lekce 07–10 (Objekty, DOM, Try/Catch, Closures): titulky, texty, instrukce a hinty opraveny na správnou českou diakritiku
v28.8
28. 2. 2026 02:48
Pylearn: diakritika v JavaScript lekcích 1–5
- JS lekce 01–05 (Úvod, Proměnné, Podmínky, Cykly, Funkce): titulky, texty, instrukce a hinty opraveny na správnou českou diakritiku
v28.7
28. 2. 2026 02:45
Pylearn: diakritika v Python lekci 10 (Moduly)
- Python lekce 10 (Moduly a knihovny): intro, texty, instrukce a hint opraveny na správnou českou diakritiku — poslední chybějící lekce v rozsahu 1–30
v28.6
28. 2. 2026 02:42
Pylearn: diakritika v Python lekcích 7–9
- Python lekce 07–09 (Funkce, Slovníky, Výjimky): titulky, texty, instrukce a hinty opraveny na správnou českou diakritiku
v28.5
28. 2. 2026 02:38
Pylearn: diakritika v Python lekcích 4–6
- Python lekce 04–06 (Listy, Podmínky, Cykly): titulky, texty, instrukce a hinty opraveny na správnou českou diakritiku
v28.4
28. 2. 2026 02:24
Pylearn: oprava diakritiky v obsahu lekcí (Python 1–3)
- Python lekce 01–03 (Úvod, Proměnné, Řetězce): opraveny titulky, intro texty, instrukce cvičení a nápovědy na správnou českou diakritiku
- AdminLessons: "Sprava lekci" → "Správa lekcí", sloupce "Poradi/Nazev/Sekci" opraveny
v28.3
28. 2. 2026 02:08
Pylearn admin: statistiky cvičení + oprava diakritiky
- Admin dashboard: nové karty "Pokusy ve cvičeních" a "Úspěšnost cvičení" z pylearn_exercise_stats
- Admin šablony: "Uzivatele" → "Uživatelé" ve všech admin nav links
v28.2
28. 2. 2026 02:02
Blog #65: Uloženo
- Článek #65 "Uloženo" — o code auto-save (localStorage) a volatilní existenci (technika + filozofie, 02:01)
v28.1
28. 2. 2026 01:52
Pylearn: back-to-top tlačítko v lekcích + "/" hint v search
- Fixní tlačítko "↑" v lekci — zobrazí se po 300px skrolování, smooth scroll na vrch
- Placeholder vyhledávače na stránce kurzu: "Hledat lekci... (/)"
v28.0
28. 2. 2026 01:38
Pylearn: auto-uložení kódu v cvičeních
- Kód v editoru se automaticky ukládá do localStorage po 800ms nečinnosti
- Při návratu na lekci se obnoví naposledy napsaný kód; Reset vymaže uložený stav
v27.9
28. 2. 2026 01:21
Pylearn: oprava duplicitního Tab handleru
- Odstraněn duplicitní Tab/resize handler z lesson šablony — pylearn.js ho spravuje kompletně; bug: Tab přidával 2+4=6 mezer místo 2
v27.8
28. 2. 2026 01:05
Pylearn: Shift+Tab dedent + Enter auto-indent
- Shift+Tab v editoru odstraní 2 mezery ze začátku řádku
- Enter zachová odsazení aktuálního řádku; za řádkem s ":" přidá úroveň navíc
- Hint "Ctrl+Enter · Tab/⇧Tab" v UI
v27.7
28. 2. 2026 01:01
Blog #64: Filtr
- Článek #64 "Filtr" — o search/filter feature v Pylearn (technika + meta, 01:00)
v27.6
28. 2. 2026 00:50
Pylearn: vyhledávání lekcí v kurzu
- Filtr/vyhledávání na stránce kurzu — živé filtrování karet lekcí podle názvu
- Zkratka "/" pro focus, Escape pro vymazání
v27.5
28. 2. 2026 00:48
Auth: oprava diakritiky ve formulářích
- AuthPresenter: všechny chybové hlášky, popisky polí a flash zprávy opraveny na správnou českou diakritiku
v27.4
28. 2. 2026 00:44
Pylearn: mobilní responzivita lekcí
- @media max-width:600px: navigace lekcí se skládá vertikálně, exercise padding zmenšen, font kódu 0.82em
v27.3
28. 2. 2026 00:42
Pylearn: Ctrl+Enter hint u cvičení
- Tlačítko Spustit má tooltip "Ctrl+Enter", vedle tlačítek zobrazí diskrétní "Ctrl+Enter" zkratka
v27.2
28. 2. 2026 00:39
Blog: klávesová zkratka / pro hledání
- "/" zaměří vyhledávací pole, Escape vymaže a odostří
- Placeholder: "Hledat v článcích... (/)"
v27.1
28. 2. 2026 00:37
Pylearn: zobrazení čekané odpovědi při FAIL
- Po nesprávném výstupu se zobrazí "Čekáno: ..." pod výstupem cvičení
- Víceřádkový expected output zobrazuje ↵ jako oddělovač řádků
v27.0
28. 2. 2026 00:33
Fix: diakriktika v Svatky API demo
- Svatky API demo: "Načítám..." místo "Nacitam..."
v26.9
28. 2. 2026 00:31
Blog: tlačítko Zpět nahoru
- Floating "↑" tlačítko se zobrazí po 300px scrollu — animovaný fade-in/out, smooth scroll na top
v26.8
28. 2. 2026 00:28
Oprava diakritiků v celém Pylearn
- Courses: "Interaktivní kurzy programování přímo v prohlížeči" — oprava description
- Všechny footery: "Hlavní stránka" místo "Hlavni stranka"
- Admin templates: "Zpět na kurzy / seznam lekcí" s diakritikou
v26.7
28. 2. 2026 00:25
Pylearn: oprava diakritiků v UI textech
- pylearn.js: české texty bez diakritiky nahrazeny správnými znaky (žádný výstup, Načítám, Spouštím, nekonečný cyklus, Neznámá chyba, načíst Python)
- Lesson template: Zpět na kurz, Cvičení, Nápověda, načíst Python
- Pluralizace "lekcí s chybami" (5+) v course stats baru
v26.6
28. 2. 2026 00:16
Fix: VPS správa badge Preview → Brzy
- Bug #1: VPS správa karta na homepage měla badge "Preview", správně má být "Brzy"
v26.5
28. 2. 2026 00:13
Autonomní smyčka: bug check + nový styl blogu
- Improvement cyklus každých 10 min (bylo 15), blog max 90 min ale jen když je o čem
- claude-api.php: action=bugs (pending bug reports) + action=bug-done (označit fixed)
- IMPROVE_WEB nejdřív projde nahlášené bugy, pak vylepšuje funkce
- Styl blogu: vlastní hlas v první osobě — bez literárních referencí
v26.4
28. 2. 2026 00:08
Minihry: Mirec v hospodě 🍺
- Nová hra /minihry/mirec — pivní kvíz, 2 piva na výběr, správná volba +1 / špatná −1
- 15 českých piv s barvou, stupňovitostí a původem; 3 typy objednávek
- Nápověda se zobrazí automaticky po špatné volbě; skóre + nejlepší skóre v localStorage
v26.3
28. 2. 2026 00:03
Pylearn: reálný progress uživatele na stránce kurzů
- Progress bar a badge na /kurzy ukazují skutečný počet dokončených lekcí (dříve ukazovaly počet JSON souborů)
- ProgressRepository: getCompletedCountPerCourse() — 1 dotaz pro všechny kurzy najednou
- Badge stavy: šedá "X lekcí" (nezačato), modrá "X/Y" (v průběhu), zelená "✓ Hotovo"
v26.2
27. 2. 2026 · 14:05
Blog #63: Červený odznak + revize memory souborů
- Blog článek #63 — filozofická úvaha o fail badges a chybovosti
- SessionStart hook — automatické načítání memory MD souborů při startu Claude
- Memory revize: MEMORY.md zkrácen pod 180 řádků, pylearn.md aktualizován na v26.1, nette-mapping.md sloučen do deployment-gotchas.md
- Smazán zastaralý start.md (obsah z v2.9)
v26.1
27. 2. 2026 · 15:00
Pylearn: souhrn statistik na stránce kurzu
- Lišta "Pokusy / Úspěšnost / X lekcí s chybami" pro přihlášené uživatele s daty
- Barevné kódování úspěšnosti: zelená ≥80%, žlutá ≥50%, červená pod 50%
v26.0
27. 2. 2026 · 14:30
Pylearn: statistiky cvičení a tracking chybných pokusů
- DB tabulka pylearn_exercise_stats — každý pokus o cvičení se ukládá (user, kurz, lekce, exerciseId, attempts, successes)
- pylearn.js: po každém spuštění (OK i FAIL) odesílá POST /pylearn/exercise-log — fire-and-forget, jen pro přihlášené
- Seznam lekcí kurzu: červený odznak "X× chyba" u lekcí kde uživatel udělal chyby
- DefaultPresenter a LessonPresenter: Explorer $db injection pro stats endpoint
v25.9
27. 2. 2026 · 13:00
Pylearn: správný syntax highlighting pro každý kurz
- TypeScript → prism-typescript, SQL → prism-sql, Git → prism-bash, React/Next.js → prism-jsx
- Dříve všechny kurzy kromě Pythonu padaly na language-javascript (nesprávně)
v25.8
27. 2. 2026 · 12:40
Blog #62: Pozůstatek
- Nový článek: o lešení na hotovém domě, pozůstatcích procesu v produkci
v25.7
27. 2. 2026 · 11:25
Pylearn: opraven localStorage — tlačítko Pokračovat teď skutečně funguje
- Lesson template: proměnné _pyCourse/_pySlug/_pyTitle měly bare JS identifikátory (bez uvozovek) → silent error
- Přechod na data atributy (data-course/slug/title) — JS čte správné stringové hodnoty
- localStorage teď uloží správný slug lekce → tlačítko "Pokračovat" na stránce kurzu funguje
v25.6
27. 2. 2026 · 11:10
Homepage: osobní rozložení karet — izolace + admin výchozí
- Každý uživatel má vlastní rozložení (klíč bi_layout_v2_u{id}) — nesdílí se mezi účty
- Admin může v edit módu uložit výchozí rozložení pro nové uživatele
- Nový uživatel načte výchozí rozložení ze serveru (site_settings tabulka)
v25.5
27. 2. 2026 · 10:40
Pylearn: chytřejší pokračování + přesnější progress
- Tlačítko "Pokračovat" pro přihlášené ukazuje první nedokončenou lekci (server-side)
- Progress bar dělí completedCount / total_lessons z DB (ne jen počet JSON souborů)
- Hosté stále vidí localStorage fallback (poslední navštívená lekce)
v25.4
27. 2. 2026 · 10:20
Homepage: tmavé karty + iframe overlay pro vlastní karty
- Tmavý topbar + hero, tmavé karty (#111827) na bílém podkladu (#f5f5f7)
- Vlastní karta se otevírá v iframe overlaye (jako Jebu) místo odkazu v novém okně
- Iframe topbar: název, "Otevřít v novém okně", tlačítko Zpět
v25.3
27. 2. 2026 · 10:05
Blog #61: Brzy
- Článek o "brzy" jako alibismu — Roy Batty, Kafka, Bukowski a nedodělané projekty
v25.2
27. 2. 2026 · 09:55
Pylearn: UX vylepšení — klávesnice a JS fix
- Oprava JS chyby: _pyCourseSlug nebyl quotovaný → broken localStorage lookup
- Klávesnicová navigace mezi lekcemi: ← předchozí, → další (mimo textarea/input)
v25.1
27. 2. 2026 · 09:40
Pylearn: udržitelnost — ikony/barvy/počty lekcí do DB
- DB migrace: pylearn_courses.icon, .color, .total_lessons — konec hardcoded polí v šabloně
- Courses template: dynamické hodnoty z DB, žádné $ICONS/$COLORS/$TOTALS
- PYLEARN_UPDATE: zastaveno automatické přidávání lekcí, přechod na vylepšování existujícího
- CLAUDE.md: nový kurz/lekce jen na explicitní příkaz uživatele
v25.0
27. 2. 2026 · 09:25
Homepage: opravy vlastních karet
- Vlastní karta má nyní stejnou velikost jako ostatní (display: contents)
- URL pole rozšířeno na textarea — celá adresa bez ořezání
- Emoji picker: 30 quick-select ikon pro vlastní karty
- Zpětný edit vlastní karty (tlačítko ✎ v edit módu)
v24.9
27. 2. 2026 · 09:10
Homepage: Apple white/black redesign
- Nový design — bílý Apple styl (#f5f5f7 pozadí, #1d1d1f text, bílé karty)
- Sticky topbar s blur efektem (backdrop-filter), clean shadows místo glassmorphism
- Karty: box-shadow, subtle border, hover lift — žádný dark glass
- Zachována personalizace: drag&drop, skrývání, vlastní karty
v24.8
27. 2. 2026 · 08:55
Next.js lekce 02: Data Fetching — SSR, SSG, ISR, cache
- fetch() cache strategie: force-cache, no-store, revalidate: N, next.tags
- generateStaticParams, parallel fetch (Promise.all), deduplication
- Server Actions: mutace, revalidatePath/Tag, loading.tsx/Suspense
- Cvičení: createCache() simulace Next.js cache s ISR/SSG/SSR
v24.7
27. 2. 2026 · 08:30
Homepage redesign — Apple styl, personalizace karet
- Kompletní redesign hlavní stránky — Apple-inspired dark theme, glassmorphism
- Přihlášení → Upravit: skrýt/zobrazit karty, drag-and-drop pořadí
- Vlastní karta — přidat URL, emoji, název, popis (localStorage)
- Hero sekce, lepší typografie, system-ui font stack
v24.6
27. 2. 2026 · 08:00
Next.js kurz spuštěn — lekce 01: App Router, Server Components
- Nový kurz Next.js (12. programovací kurz, sort_order=13, icon=▲)
- Lekce 01: App Router, Server vs Client Components, routing, SSR/SSG/ISR
- Server Actions, Middleware, Route Groups, dynamic/catch-all segments
- Cvičení: Next.js App Router simulace s layouty, dynamic params, notFound
v24.5
27. 2. 2026 · 07:40
Pro děti: redesign — multiple choice, mobil, čtení slabik
- Matika: 4 volby místo textového vstupu, auto-start, okamžitá odpověď
- Čtení: 6 skupin slabik (A/O/I/E/U/zdvojené), hlasové čtení, dots progress, auto-čtení
- Mobile-first layout — velká dotyková tlačítka, segmented controls
- Tab switcher Matika / Čtení, /kurzy karta přejmenována na "Pro děti"
v24.4
27. 2. 2026 · 07:15
Node.js kurz KOMPLETNÍ 10/10 — lekce 10: Projekt
- Lekce 10: celý backend od A do Z — architektura layers, AppError, error middleware
- Validace vstupu (zod), graceful shutdown, uncaughtException, /health + /metrics
- Strukturovaný logger, produkční checklist (10 bodů)
- Cvičení: mini backend framework s route params, middleware chain, error handling
- Node.js kurz 10/10 dokončen — celkem 5 kurzů, 50+ lekcí
v24.3
27. 2. 2026 · 06:45
Blog #60: Generátor
- Článek o generátorech, jednoduchosti a komplexitě (Kafka, Roy Batty, 5+3=8)
v24.2
27. 2. 2026 · 06:20
Node.js lekce 09: Streams a performance
- Readable/Writable/Transform streams, pipe, backpressure, pipeline()
- readline — čtení velkého souboru řádek po řádku (async generator)
- Worker threads — CPU-intenzivní paralelismus, workerData, postMessage
- Cvičení: StreamProcessor — async generátory simulují Node.js streamy
v24.1
27. 2. 2026 · 05:55
Matematika — interaktivní procvičování pro 1. a 2. třídu
- Nová stránka /matematika s generátorem příkladů (+/−)
- Volba třídy (1–10 nebo 1–20), mix operací, skóre
- Hlasový režim — Web Speech API, čeština, čte zadání nahlas
- Matematika karta v /kurzy přehledu
v24.0
27. 2. 2026 · 05:30
Node.js lekce 08: Deployment — Docker, PM2, produkce, CI/CD
- env validation na startu, .env.example, dotenv, graceful shutdown (SIGTERM)
- PM2: cluster mode, ecosystem.config.js, pm2 startup; Docker: Dockerfile, multi-stage, .dockerignore
- docker-compose (app+db+redis), security checklist (helmet, rate limit, CORS)
- Cvičení: AppConfig (load/validate/getSafe) + Logger (structured JSON logging)
v23.9
27. 2. 2026 · 05:10
Node.js lekce 07: Testování — Vitest, Supertest, mocking
- Supertest: HTTP endpoint testing bez listen, set Authorization, expect status
- vi.mock Prisma, beforeEach/afterEach teardown, snapshot testy
- Coverage, test isolation, .env.test, co-location
- Cvičení: async MiniTestRunner + UserService testy (8 testů s rejects.toThrow)
v23.8
27. 2. 2026 · 04:47
Blog #59: Trvalé spojení
- WebSocket vs HTTP, Kafka a trvalá spojení, FTP deploy který selhal ale dorazil
v23.7
27. 2. 2026 · 05:30
Node.js lekce 06: WebSockets a real-time komunikace
- Socket.io: connection, rooms, join/emit/broadcast, disconnect, auth middleware
- SSE (Server-Sent Events): text/event-stream, flushHeaders, EventSource na klientovi
- Scaling: Redis adapter, sticky sessions, namespaces
- Cvičení: EventBus — pub/sub systém s channels, subscribe/publish/broadcast
v23.6
27. 2. 2026 · 04:50
Node.js lekce 05: Databáze s Prisma ORM
- schema.prisma, migrate dev, PrismaClient singleton, CRUD (findMany/create/update/delete)
- Relace (@relation, include), $transaction, agregace (count, aggregate, groupBy)
- Raw SQL, Prisma Studio, seeding, connection pooling
- Cvičení: InMemoryDB — Prisma-like ORM s where/orderBy/take/skip/count/transaction
v23.5
27. 2. 2026 · 04:25
Node.js lekce 04: REST API design + JWT autentizace
- REST konvence: URL, HTTP metody, status kódy (201, 401, 403, 409, 422)
- JWT: sign/verify, payload, expiration, Bearer token middleware
- bcryptjs: hash, compare, saltRounds; refresh token vzor; rate limiting
- Cvičení: AuthService — register/login/verify/protect s token simulací
v23.4
27. 2. 2026 · 04:05
Node.js lekce 03: Express.js — routing, middleware, CRUD API
- app.get/post/put/delete, req.params/query/body, res.json/status
- Middleware chain (next()), Router moduly, error handler (4 argumenty)
- async handler wrapper, CORS/Helmet koncepty
- Cvičení: MiniExpress framework — routing, params, middleware chain simulace
v23.3
27. 2. 2026 · 03:46
Blog #58: Smyčka
- Event loop, blocking, Kafka v synchronní frontě, makrotask vs mikrotask
v23.2
27. 2. 2026 · 03:50
Node.js lekce 02: npm, package.json, async/await
- callback hell → Promises → async/await, try/catch, unhandled rejection
- Event Loop: microtask (Promise) vs macrotask (setTimeout) pořadí
- Promise.all / allSettled / race, util.promisify, for await...of
- Cvičení: AsyncQueue s prioritami a configurable concurrency
v23.1
27. 2. 2026 · 03:30
Node.js kurz spuštěn + lekce 01: runtime, moduly, základní API
- Nový kurz: Node.js (🟩 #68a063, sort_order=12, 10 lekcí)
- process.argv/env/cwd, fs (readFile, writeFile), path modul, CommonJS vs ESM
- EventEmitter (on/emit/off), HTTP server, streams koncepty
- Cvičení: NodeSim — in-memory filesystem + EventEmitter simulace
v23.0
27. 2. 2026 · 03:10
React lekce 10: TypeScript + architektura projektu — KURZ KOMPLETNÍ
- TypeScript props/state/event typy, generic komponenty, interface vs type, utility types
- Feature-based struktura, presentational vs container, Zustand (create store bez Provider)
- State management výběr: useState → Context → Zustand → Redux Toolkit
- Cvičení: defineSchema runtime validátor + createStore (Zustand-style)
- React kurz KOMPLETNÍ — 10/10 lekcí (5 kurzů, 50 lekcí celkem)
v22.9
27. 2. 2026 · 02:45
Blog #57: Zelená
- 100% coverage vs. testování toho co fakt záleží — Kafka, Voigt-Kampff
v22.8
27. 2. 2026 · 06:20
React lekce 09: Testování — Vitest a React Testing Library
- Vitest setup (jsdom), describe/it/expect, matchers (toBe, toEqual, toContain, toThrow)
- RTL: render, screen, getByRole/getByText/getByLabelText, userEvent, findBy* async
- Mocking: vi.fn(), vi.mock(), vi.spyOn(), waitFor, renderHook
- Cvičení: TestRunner miniframework — otestuje Calculator třídu (11 testů)
v22.7
27. 2. 2026 · 06:05
React lekce 08: Performance — Suspense, Error Boundary, optimalizace
- React.lazy + Suspense: code splitting, nested Suspense, fallback
- Error Boundary: class komponenta, getDerivedStateFromError, componentDidCatch
- Virtualizace (@tanstack/react-virtual), useTransition, React DevTools Profiler
- Cvičení: VirtualListSim — renderuj jen viditelné položky (buffer ±1)
v22.6
27. 2. 2026 · 05:50
React lekce 07: Data fetching — TanStack Query
- useQuery (queryKey, staleTime, enabled), isLoading, isFetching, refetch
- useMutation, invalidateQueries, optimistické updaty s onMutate/onError
- Cvičení: QueryCache simulace s cache hit/stale/invalidate/executeMutation
v22.5
27. 2. 2026 · 05:25
React lekce 06: Formuláře a validace
- Controlled forms, on-blur/on-change validace, errors objekt
- React Hook Form + Zod schema validace, watch, isSubmitting
- Cvičení: custom useForm s pravidly (required, minLength, pattern, custom)
v22.4
27. 2. 2026 · 05:00
Blog #56: Přesměrování
- 301/302, Kafka ve 404, navigate(-1) a životy bez rollbacku, git blame bez proč
v22.3
27. 2. 2026 · 04:40
React lekce 05: React Router — navigace a routing
- BrowserRouter, Routes, Route, Link, NavLink, useNavigate, useParams
- Nested routes s Outlet, Protected routes, lazy loading + Suspense
- Cvičení: Router simulace s regex matching a URL parametry
v22.2
27. 2. 2026 · 04:15
React lekce 04: Context a custom hooks
- useContext, createContext, Provider pattern — ThemeContext, AuthContext
- Custom hooks: useLocalStorage, useDebounce, useReducer pro košík
- Cvičení: createContext + useReducer simulace s CartContext
v22.1
27. 2. 2026 · 03:50
React lekce 03: Hooks — useEffect, useRef, useMemo
- useEffect cleanup pattern, useRef pro DOM + mutabilní hodnoty
- useMemo, useCallback, React.memo — optimalizace výkonu
- Cvičení: HooksSim — simulace deps porovnání, effect a memo cache
v22.0
27. 2. 2026 · 03:25
React lekce 02: State a eventy — interaktivní UI
- useState pravidla — nikdy nemutuj, spread, funkcionální update
- Pole ve state: add/remove/toggle, lifting state up, formuláře s validací
- Cvičení: StateManager simulace (createState, subscribe, ShoppingCart)
v21.9
27. 2. 2026 · 03:00
Blog #55: Virtuální
- Virtual DOM jako filozofie minimálního traumatu, Kafka u Komise pro Virtuální Změny, git commit jako snapshot
v21.8
27. 2. 2026 · 02:35
Nový kurz: React — lekce 01: Úvod — JSX a komponenty
- 10. kurz: React (⚛ #61dafb) přidán do Pylearn — sort_order=11
- JSX pravidla, funkcionální komponenty, props, children, podmíněné renderování
- useState, useEffect, controlled inputs, timer s cleanup
- Cvičení: ReactSim — simulace komponentového systému v plain JS
v21.7
27. 2. 2026 · 02:10
Git lekce 10: Git internals — jak Git funguje uvnitř (kurz KOMPLETNÍ)
- Objektový model: blob, tree, commit, tag — SHA-1 hashe, .git/objects
- Kompletní Git cheat sheet — všechny klíčové příkazy na jednom místě
- Cvičení: GitObjects simulace s hashObject/storeBlob/storeTree/storeCommit
- Git kurz KOMPLETNÍ — 10/10 lekcí
v21.6
27. 2. 2026 · 01:45
Git lekce 09: GitHub Actions — CI/CD automatizace
- YAML workflow, on triggers, jobs/steps, matrix build, schedule
- Deploy pipeline s needs, cache, artifacts, secrets, GITHUB_TOKEN
- Cvičení: WorkflowRunner s topologickým řazením a step execution
v21.5
27. 2. 2026 · 01:20
Blog #54: Zkratka
- Git aliasy jako paměť opakování, ~/.gitconfig jako digitální fingerprint, Kafka v kanceláři bez zkratek
v21.4
27. 2. 2026 · 01:00
Git lekce 08: Config a aliasy — personalizace Gitu
- git config --global, ~/.gitconfig, tři úrovně konfigurace
- Aliasy, globální .gitignore, credential manager, SSH vs HTTPS
- Cvičení: GitConfig třída s priority local > global > system
v21.3
27. 2. 2026 · 00:30
Git lekce 07: Cherry-pick, Reflog, Reset
- git cherry-pick, reset --soft/--mixed/--hard, git revert
- git reflog — záchrana ztracených commitů a větví, git bisect
- Cvičení: AdvancedRepo s cherry-pick, reset a restoreFromReflog
v21.2
27. 2. 2026 · 00:05
Git lekce 06: Hooky — automatizace kvality
- pre-commit, commit-msg, pre-push hooky, chmod +x, --no-verify
- Husky + lint-staged, Conventional Commits, semantic-release
- Cvičení: GitHooks třída s addHook/commit/push a blokací
v21.1
26. 2. 2026 · 23:40
Git lekce 05: Tagy a releasy — verzování
- git tag, annotated tag, push --tags, smazání tagů
- Semantic versioning (SemVer), GitHub Releases, git describe, changelog
- Cvičení: VersionManager s SemVer porovnáním a changelogem
v21.0
26. 2. 2026 · 23:20
Blog #53: Lineární
- Git rebase jako profesionální přepisování historie, Kafka, squash commity
v20.9
26. 2. 2026 · 23:05
Git lekce 04: Rebase — přepisování historie
- git rebase, interactive rebase (-i), squash, fixup, reword
- git commit --amend, force-with-lease, rebase vs merge
- Cvičení: simulace GitRebase s addCommit/rebase/squash/log
v20.8
26. 2. 2026 · 22:45
Git lekce 03: Remote — push, pull, fetch
- git remote add, push -u, fetch vs pull, klonování, .gitignore
- GitHub PR workflow, rebase pull, fork workflow pro open source
- Cvičení: simulace RemoteRepo + LocalRepo s push/fetch/merge/pull
v20.7
26. 2. 2026 · 22:25
Git lekce 02: Větve — branch, merge, checkout
- Fast-forward vs 3-way merge, konflikty a jejich řešení, git stash
- Cvičení: simulace GitRepo s branch/checkout/commit/merge
v20.6
26. 2. 2026 · 22:05
Nový kurz: Git pro vývojáře (lekce 01)
- 9. kurz: Git — init, add, commit, diff, staging workflow, dobré commit messages
- Cvičení: simulace Git repozitáře v JS
v20.5
26. 2. 2026 · 21:38
Blog #52: Kompletní
- Článek o dokončení — dva kurzy hotovy, co znamená 100%
v20.4
26. 2. 2026 · 22:20
DAX kurz KOMPLETNÍ (lekce 10/10)
- Lekce 10: kompletní Power BI report — Star Schema, míry, Time Intelligence, RANKX, vizuály
- Kurz DAX pro Power BI 10/10 — 100% dokončen
v20.3
26. 2. 2026 · 22:00
Design Patterns kurz KOMPLETNÍ (lekce 10/10)
- Lekce 10: přehled všech 17 vzorů, anti-patterny, finální projekt ShoppingCart
- Kurz Design Patterns 10/10 — 100% dokončen
v20.2
26. 2. 2026 · 21:30
DAX lekce 09: Star Schema a best practices
- Star Schema: fact + dimenze, datum tabulka s ADDCOLUMNS/CALENDAR
- Measure table, naming conventions, best practices (DIVIDE, VAR, skrytí sloupců)
v20.1
26. 2. 2026 · 20:37
Blog #51: Stav
- Článek o stavových automatech — objednávka, Kafka, rozptýlený stav v architektuře
v20.0
26. 2. 2026 · 21:05
Design Patterns lekce 09: State a Visitor
- State: objednávkový systém (Pending/Processing/Shipped/Delivered/Cancelled)
- Visitor: HTML/Markdown/Statistiky renderer nad AST dokumentu
- Cvičení: semafor se 3 stavy a 6 přechody
v19.9
26. 2. 2026 · 20:45
DAX lekce 08: RANKX, TOPN a žebříčky
- RANKX — pořadí zákazníka/produktu, percentilové pořadí
- TOPN — tabulka N nejlepších, součet a podíl TOP-N
v19.8
26. 2. 2026 · 20:20
Design Patterns lekce 08: Template Method a Chain of Responsibility
- Template Method: DataExporter s CSV/JSON podtřídami
- Chain of Responsibility: validační pipeline, middleware pattern
- Cvičení: validace objednávky přes 3 handlery
v19.7
26. 2. 2026 · 19:55
DAX lekce 07: FILTER, SUMX a iterátory
- SUMX/AVERAGEX/MAXX — iterace přes řádky s výrazy
- FILTER — virtuální tabulka jako argument, ADDCOLUMNS
v19.6
26. 2. 2026 · 19:36
Blog #50: Smyčka
- Článek o nekonečné smyčce jako základním architektonickém vzoru — Kafka, Roy Batty, while(true)
v19.5
26. 2. 2026 · 20:25
Design Patterns lekce 07: Mediator a Facade
- Mediator: EventBus — centrální komunikace bez přímých vazeb
- Facade: VideoConverter — jednoduché API nad složitým podsystémem
- Cvičení: ChatRoom mediator se join/leave/send
v19.4
26. 2. 2026 · 20:10
DAX kurz: čisté DAX vzorce (lekce 01–06)
- Přepis lekcí 01–06 na čistou DAX syntaxi pro Power BI — žádné JS simulace, jen kopírovatelné vzorce
v19.3
26. 2. 2026 · 19:45
DAX lekce 06: RELATED a relace
- Lekce 06: RELATED (many→one), RELATEDTABLE (one→many), Star Schema
v19.2
26. 2. 2026 · 19:20
Admin: statistiky vytíženosti webu
- Nová stránka /administrace/statistiky — PHP memory, OPcache, req/24h, req/1h, hodinový bar chart
- Admin nav: přidán odkaz Statistiky ve všech 5 admin šablonách
v19.1
26. 2. 2026 · 19:05
Design Patterns lekce 06: Builder + Prototype
- Lekce 06: Builder (fluent API, step-by-step) + Prototype (klonování, deep copy)
v19.0
26. 2. 2026 · 18:50
DAX lekce 05: Text a datum
- Lekce 05: CONCATENATE, FORMAT, LEFT/MID/RIGHT, YEAR/MONTH/DAY, DATEDIFF, WEEKDAY
v18.9
26. 2. 2026 · 18:33
Blog #49: Vrstva
- Článek o abstrakcích a vrstvení — každá vrstva skrývá hrůzu té předchozí
v18.8
26. 2. 2026 · 18:20
Design Patterns lekce 05: Iterator + Composite
- Lekce 05: Iterator (Symbol.iterator, generátory) + Composite (stromové struktury)
v18.7
26. 2. 2026 · 18:05
DAX lekce 04: Proměnné VAR + IF/SWITCH
- Lekce 04: VAR...RETURN, IF, SWITCH(TRUE()), BLANK(), segmentace zákazníků
v18.6
26. 2. 2026 · 17:50
Design Patterns lekce 04: Decorator + Proxy
- Lekce 04: Decorator (vrstvení chování) + Proxy (ES6 Proxy, validace, cache)
v18.5
26. 2. 2026 · 17:31
Blog #48: Kontext
- Článek o kontextu dat — číslo bez kontextu je hluk, analytik hlídá co se vynechá
v18.4
26. 2. 2026 · 17:35
DAX lekce 03: Time Intelligence (YTD, mezirok, klouzavý průměr)
- Lekce 03: TOTALYTD, SAMEPERIODLASTYEAR, Moving Average (MA3/MA6)
v18.3
26. 2. 2026 · 17:20
Design Patterns lekce 03: Strategy + Command
- Lekce 03: Strategy (výběr algoritmu za běhu) + Command (undo/redo, fronty)
v18.2
26. 2. 2026 · 17:05
DAX lekce 02: CALCULATE — srdce DAX
- Lekce 02: CALCULATE + filtry, ALL pro podíly, % z celku
v18.1
26. 2. 2026 · 16:50
Pylearn: Nový kurz DAX pro Power BI — lekce 01 (Základní agregace)
- Nový kurz: DAX pro Power BI (📊, červená) — 8. kurz v Pylearn
- Lekce 01: SUM, AVERAGE, COUNT, MIN, MAX, Measures vs Calculated Columns
v18.0
26. 2. 2026 · 16:45
Pylearn: Design Patterns lekce 02 — Observer + EventEmitter
- Lekce 02: Observer pattern — EventEmitter, Reactive Store, loose coupling
v17.9
26. 2. 2026 · 16:29
Blog #47: Vzor
- Článek o Design Patterns filozofii — vzor jako zakonzervovaná zkušenost, ne zkratka
v17.8
26. 2. 2026 · 16:30
Pylearn: Design Patterns kurz — lekce 01 (Singleton + Factory)
- Nový kurz: Design Patterns (◈, amber) — 7. kurz v Pylearn
- Lekce 01: Singleton (jediná instance) + Factory Method (skrytá logika vytváření)
v17.7
26. 2. 2026 · 16:15
Pylearn: SQL kurz DOKONČEN — lekce 10 (Projekt)
- Lekce 10: Závěrečný projekt — e-shop databáze, dashboard dotazy, měsíční report
- SQL kurz: 10/10 lekcí, progress bar opraven na 100%
v17.6
26. 2. 2026 · 15:50
Pylearn: SQL lekce 09 — Pohledy (Views)
- CREATE VIEW, reportovací a bezpečnostní views, dotazování nad view, JS analogie jako funkce
v17.5
26. 2. 2026 · 15:27
Blog #46: Rollback
- Článek o transakční atomičnosti a o tom že lidský život ROLLBACK nemá
v17.4
26. 2. 2026 · 16:35
Pylearn: SQL lekce 08 — Indexy
- Full scan vs hash/B-tree index, composite index, kdy index nepomůže (funkce na sloupci)
v17.3
26. 2. 2026 · 16:20
Pylearn: SQL lekce 07 — Transakce (BEGIN, COMMIT, ROLLBACK)
- Atomičnost operací, bankovní převod jako příklad, SAVEPOINT a částečný rollback
v17.2
26. 2. 2026 · 16:05
Odstraněno vyskakovací srdíčko FAB
- Floating ♥ button odstraněn — podpora dostupná přes projekt /podpora na homepage
v17.1
26. 2. 2026 · 15:50
UX: Bug report jako pevný globální řádek — nevadí obsahu
- Globální lišta #global-bar na každé stránce — "⚠ Nahlásit chybu" jako statický element (ne floating), nepřekrývá obsah
v17.0
26. 2. 2026 · 15:30
Nový projekt: Podpora autora (/podpora)
- Stránka /podpora — srdcervný popis, Ko-fi odkaz, tier karty ☕
- FAB ♥ tlačítko nyní odkazuje na /podpora místo inline karty
- Homepage: přidána karta "Podpora autora" do projektů
v16.9
26. 2. 2026 · 15:10
Pylearn: SQL lekce 06 — INSERT, UPDATE, DELETE
- DML operace — zápis, úprava a mazání dat; hromadný INSERT, UPDATE s WHERE, DELETE s filtrací
v16.8
26. 2. 2026 · 14:55
UX: Bug report — malý ⚠ ikonka v rohu, nevadí obsahu
- Přepracováno na minimalistický ⚠ ikonový button v pravém horním rohu (28×28px) — nevadí žádným popiskům, modal se otvírá dolů
v16.7
26. 2. 2026 · 14:40
UX: Nahlásit chybu přesunuto do hlavičky
- Bug report widget přesunut z FAB (pravý dolní roh) do horní lišty — červené tlačítko "⚠ Nahlásit chybu" viditelné na všech stránkách
v16.6
26. 2. 2026 · 14:25
Pylearn: SQL lekce 05 — Poddotazy (Subqueries)
- Skalární poddotaz, IN s poddotazem, EXISTS / NOT EXISTS — analogie v JS
- Cvičení: filtrace produktů nad průměrnou cenou
v16.5
26. 2. 2026 · 14:10
Fix: Převodník — chyba formátování celých čísel
- formatResult() regex odstraňoval trailing nuly z celých čísel (100→"1") — opraveno, 1 m = 100 cm nyní správně
v16.4
26. 2. 2026 · 13:51
Fix: Badge Brzy → Live + Blog #45: Badge
- Homepage: Kalkulačka, Hypotéka, Převody — badge změněno z "Brzy" na "Live"
- Článek #45 — o nesouladu mezi implementací a prezentací (badge bug)
v16.3
26. 2. 2026 · 13:27
Bug Report Widget — nahlásit chybu
- FAB tlačítko ⚠ na všech stránkách — modal s popisem, uloží URL + popis do DB
- DB tabulka bug_reports (pending/investigating/fixed), API endpoint /bug-report.php
v16.2
26. 2. 2026 · 13:10
SQL lekce 04: JOIN
- SQL kurz lekce 04 — INNER JOIN, LEFT JOIN, anti-join (kdo nikdy neobjednal)
v16.1
26. 2. 2026 · 12:47
Blog #44: Nůžky
- Článek #44 — o člověku který dává do práce vše; nůžky jako metafora řemesla
v16.0
26. 2. 2026 · 12:42
Převodník jednotek — funkční implementace
- Prevody /prevody — 7 kategorií: délka, hmotnost, teplota, plocha, objem, rychlost, energie
- Přepracováno z "Brzy" — prohazování jednotek, rychlé reference, formula preview
v15.9
26. 2. 2026 · 12:17
Blog #43: Splátka
- Článek #43 — hypotéka, 300 splátek, fyzická váha čísla na výpisu
v15.8
26. 2. 2026 · 12:12
Hypoteční kalkulačka — funkční implementace
- Hypoteka /hypoteka — splátka, úroky, amortizační tabulka, vizuální bar chart po letech
- Přepracováno z "Brzy" na plnohodnotnou finanční aplikaci
v15.7
26. 2. 2026 · 11:55
Kalkulačka — funkční implementace
- Kalkulačka /kalkulacka — plná implementace: grid, operace, √, %, history, klávesnice
- Stránka přepracována z "Brzy" na skutečnou funkční aplikaci
v15.6
26. 2. 2026 · 11:38
SQL lekce 03: GROUP BY & agregace
- SQL kurz lekce 03 — COUNT, SUM, AVG, MAX, MIN; GROUP BY + HAVING; JS reduce() vzor
v15.5
26. 2. 2026 · 11:21
SQL lekce 02: ORDER BY & LIMIT
- SQL kurz lekce 02 — ORDER BY, LIMIT, OFFSET, IN, BETWEEN; JS sort/slice/includes
v15.4
26. 2. 2026 · 11:04
Blog #42: Dotaz
- Článek #42 — SQL jako deklarativní myšlení, WHERE jako filtr reality
v15.3
26. 2. 2026 · 11:04
SQL kurz — nový kurz + vylepšení Courses listing
- SQL kurz — lekce 01: SELECT & WHERE (cvičení přes JS simulaci)
- Courses: TypeScript a SQL ikony/barvy, progress bar dle skutečného počtu lekcí
v15.2
26. 2. 2026 · 10:47
Python lekce 30: Projekt — CLI Task Manager
- Lekce 30 — závěrečný projekt: Task dataclass + TaskManager + JSON + report dashboard
- Python kurz dokončen na 30 lekcích — kompletní základ i pokročilé téma
v15.1
26. 2. 2026 · 10:30
Python lekce 29: pathlib — moderní soubory a cesty
- Lekce 29 — Path, /, read_text/write_text, mkdir, glob, rglob, iterdir
v15.0
26. 2. 2026 · 10:12
Blog #41 "Test" — testování jako filozofie
- Červená → zelená: unittest lekce + metafora pro produkční myšlení
v14.9
26. 2. 2026 · 10:18
Python lekce 28: Testování — unittest
- Lekce 28 — TestCase, assertEqual, assertRaises, setUp/tearDown, subTest
v14.8
26. 2. 2026 · 10:00
Python lekce 27: itertools
- Lekce 27 — chain, islice, cycle, product, combinations, permutations, groupby, compress
v14.7
26. 2. 2026 · 09:44
Python lekce 26: Async/await a asyncio
- Lekce 26 — async def, await, asyncio.run(), gather(), Queue, producer/consumer
v14.6
26. 2. 2026 · 09:27
Python lekce 25: Context managers
- Lekce 25 — __enter__/__exit__, @contextmanager, suppress(), ExitStack
v14.5
26. 2. 2026 · 09:10
Blog #40 "Stroj" — meta o autonomní produktivitě
- 40. článek — reflexe dopoledne: 10 lekcí, 2 blogy, refactor za 3 hodiny
v14.4
26. 2. 2026 · 08:57
Python lekce 24: Type hints a typování
- Lekce 24 — Optional, Union, int|str|None, TypeVar, Callable, Protocol
v14.3
26. 2. 2026 · 08:40
Python lekce 23: Dataclasses
- Lekce 23 — @dataclass, field(), __post_init__, frozen=True, order=True
v14.2
26. 2. 2026 · 08:25
Python lekce 22: Dekorátory
- Lekce 22 — @wraps, @property, @setter, timing, cache, @lru_cache, skládání dekorátorů
v14.1
26. 2. 2026 · 08:07
Blog #39 "Tempo" — produktivita a comprehensions jako metafora
- Článek o tempu práce a zkratkách bez základu
v14.0
26. 2. 2026 · 08:12
Python lekce 21: Comprehensions a generátory
- Lekce 21 — list/dict/set comprehension, yield, generator expression, map/filter
v13.9
26. 2. 2026 · 07:55
Python lekce 20: Projekt — Digitální deník
- Lekce 20 — Entry + Diary OOP, JSON persistence, hledání, tagy, statistiky
v13.8
26. 2. 2026 · 07:38
Python lekce 19: Soubory a JSON
- Lekce 19 — open(), with, json.dumps/loads, JSON databáze vzor
v13.7
26. 2. 2026 · 07:20
Python lekce 18: OOP — dědičnost a polymorfismus
- Lekce 18 — class Pes(Zvire), super(), isinstance(), duck typing, hierarchie uživatelů
v13.6
26. 2. 2026 · 07:05
Blog #38 "Základ" — DRY architektura + OOP lekce
- Článek reagující na komentář čtenáře, téma: základ před budoucností
v13.5
26. 2. 2026 · 06:53
Python lekce 17: OOP — třídy a objekty
- Lekce 17 — class, __init__, self, metody, __str__, @classmethod
v13.4
26. 2. 2026 · 06:38
Python lekce 16: Funkce — ASCII art a avatary
- Lekce 16 — string multiplication, center(), avatar z iniciál, geometrické vzory
v13.3
26. 2. 2026 · 06:29
Python lekce 15: Funkce — Interaktivní CLI menu
- Lekce 15 — while True menu, slovník akcí, vnořené menu, stav aplikace
v13.2
26. 2. 2026 · 09:03
Blog #37 "Co se stalo pak" — odpověď na komentář čtenáře
- Článek navazující na komentář — analýza zpětné vazby v praxi
v13.1
26. 2. 2026 · 09:00
Pylearn: Python lekce 14 — Barvy a témata v terminálu
- ANSI escape kódy, light/dark téma, ASCII box drawing, TUI
v13.0
26. 2. 2026 · 08:30
Blog: analýza reakcí před psaním článku
- Endpoint /blog/ajax?what=stats — top likes, recent comments pro autonomní analýzu
- CLAUDE.md: HOURLY_ARTICLE workflow zahrnuje analýzu čtenářských reakcí
v12.9
26. 2. 2026 · 08:00
Nové projekty: Kalkulačka, Hypoteční kalkulačka, Převodník jednotek
- 3 preview boxy na homepage + prázdné stránky /kalkulacka, /hypoteka, /prevody
v12.8
26. 2. 2026 · 07:35
Pylearn: Python lekce 13 — Projekt Hypoteční kalkulačka
- Amortizační vzorec, tabulka splácení, ASCII graf průběhu dluhu
v12.7
26. 2. 2026 · 07:15
Pylearn: Python lekce 12 — Projekt Převody jednotek
- Délka, hmotnost, teplota (vzorce), čas — obecná funkce s koeficienty
v12.6
26. 2. 2026 · 06:10
Pylearn: Python lekce 11 — Projekt Kalkulačka
- Funkce operací, slovník lambda, historie výpočtů, řetězení výsledků
v12.5
26. 2. 2026 · 06:01
Blog #36 "Výpadek, seznam, plán" + TODO agenda
- Reorientace: Python kurz priorita, heartbeat watchdog, todo.md
v12.4
26. 2. 2026 · 05:29
Blog #35 "Pád" — heartbeat monitoring, session expiry
- Článek o pádu kontextu a watchdog strategii
v12.3
26. 2. 2026 · 02:35
Pylearn: TypeScript lekce 08 — Async/Await a Promise typy
- Promise<T>, async/await, try/catch s unknown, Promise.all, Promise.allSettled
v12.2
26. 2. 2026 · 02:20
Pylearn: TypeScript lekce 07 — Mapped & Conditional Types
- Mapped types { [K in keyof T] }, conditional T extends U ? X : Y, infer, template literal types
v12.1
26. 2. 2026 · 02:05
Pylearn: TypeScript lekce 06 — Utility Types
- Partial, Required, Readonly, Pick, Omit, Record, ReturnType, Parameters
v12.0
26. 2. 2026 · 01:42
Blog #34: Noc
- Článek o autonomní práci v noci — hodiny, log, commit jako důkaz existence
v11.9
26. 2. 2026 · 01:52
Pylearn: TypeScript lekce 05 — Type Narrowing
- typeof/instanceof narrowing, discriminated unions, custom type guards (x is Type)
v11.8
26. 2. 2026 · 01:36
Pylearn: TypeScript lekce 04 — Třídy a OOP
- Access modifikátory, shorthand konstruktor, readonly, abstract třídy
- implements interface, extends, cvičení Stack class
v11.7
26. 2. 2026 · 01:18
Pylearn: TypeScript lekce 03 — Pole, Tuple, Enum
- readonly pole, tuple s pevnými typy, numeric/string enum
- Cvičení: summarize() vracející tuple [sum, average]
v11.6
26. 2. 2026 · 01:00
Pylearn: TypeScript lekce 02 — Funkce a Generics
- Funkce: optional parametry, default values, void, callback typy
- Generics: identity<T>, first<T>, reverse<T>, getProperty s keyof
v11.5
26. 2. 2026 · 00:41
Blog #33: Typy
- Článek o TypeScriptu, statických typech, runtime realitě a Kafkově formuláři s any
v11.4
26. 2. 2026 · 00:33
Pylearn: TypeScript kurz — lekce 01 + 5. kurz spuštěn
- TypeScript kurz: lekce 01 Úvod — typy, type alias, interface, union types
- pylearn.js: isJS = language !== 'python' — TypeScript/JS/Regex/Algoritmy spouští native JS engine
v11.3
26. 2. 2026 · 00:15
Pylearn: course listing UI — barevné accenty + completion badge
- Kurzy listing: ikona + barva per jazyk, progress bar, ✓ Hotovo badge pro completed kurzy
- Jemný hover efekt (translateY -2px), top color border
v11.2
25. 2. 2026 · 23:55
Pylearn: Algoritmy lekce 10 — Grafy (kurz COMPLETE)
- Grafy: adjacency list, DFS (rekurze/zásobník), BFS (fronta), nejkratší cesta
- Algoritmy kurz COMPLETE: 10 lekcí (pole → vyhledávání → řazení → rekurze → stack/queue → BigO → hashmap → mergesort → stromy → grafy)
v11.1
25. 2. 2026 · 23:37
Blog #32: Strom
- Článek o BST jako metafoře hierarchie, byrokracie a verze 11.0
v11.0
25. 2. 2026 · 23:38
Pylearn: Algoritmy lekce 09 — Stromy a BST
- BST: vkládání, vyhledávání O(log n), in-order/pre-order traversal
- Výška stromu, degenerace při seřazeném vstupu, cvičení countNodes()
v10.9
25. 2. 2026 · 23:23
Pylearn: Algoritmy lekce 08 — Merge Sort
- Merge Sort O(n log n): rozděl-a-panuj, stabilní řazení, merge funkce
- Srovnání: Merge Sort vs Quick Sort vs TimSort (arr.sort())
v10.8
25. 2. 2026 · 23:05
Pylearn: Algoritmy lekce 07 — Hash Mapa
- HashMap: O(1) lookup, frekvence, groupování, indexování, sliding window
- Cvičení: mostFrequent() — nejčastější prvek přes hash mapu
v10.7
25. 2. 2026 · 22:51
Pylearn: Algoritmy lekce 06 — Složitost (Big O)
- Big O notace: O(1), O(log n), O(n), O(n log n), O(n²), O(2ⁿ)
- Cvičení: twoSum() — O(n) řešení přes Set vs O(n²) naivní
v10.6
25. 2. 2026 · 22:34
Blog #31: Smyčka
- Článek o čekání, smyčce, existenci stroje mezi příkazy — Stack vs Queue jako metafora
v10.5
25. 2. 2026 · 22:32
Pylearn: Algoritmy lekce 05 — Zásobník a Fronta
- Stack (LIFO): push/pop, validace závorek, undo/redo pattern
- Queue (FIFO): shift, zpracování úloh, BFS traversal stromu
v10.4
25. 2. 2026 · 22:30
Blog: fix like reakce (chybějící AJAX header)
- React fetch — přidán X-Requested-With: XMLHttpRequest header, jinak Nette nečte POST body parametry
v10.3
25. 2. 2026 · 22:15
Pylearn: Algoritmy lekce 04 — Rekurze
- Rekurze: base case, faktorial, Fibonacci, flatten vnořených polí, memoizace
- Cvičení: sumDigits() — rekurzivní součet číslic
v10.2
25. 2. 2026 · 22:12
Blog: opraveny reakce a komentáře
- Přidána dedikovaná route /blog/ajax a actionAjax() — obchází Nette signály (canonicalize redirect bug)
- JS fetch volání přesměrovány na /blog/ajax?what=... místo _do= signálů
v10.1
25. 2. 2026 · 21:45
Pylearn: syntax highlighting (Prism.js)
- Prism.js CDN — syntax highlighting v lekcích (Python, JavaScript, Algoritmy, Regex)
- Zachovány původní barvy a layout code-blocků, přidány token barvy
v10.0
25. 2. 2026 · 21:33
Blog #30: Hromada
- Článek o akumulaci verzí, stromech jako odpovědi na chaos, details tag a git log jako paměť
v10.0
31. 3. 2026 · forum-rebuild
Forum 2.0 — kompletní přestavba, žádné pády
- Forum přestavěn od základu — startup() bez requireLogin pro čtení, vše wrapped v try/catch
- getCategories() s explicitním SELECT a dvojitým fallback — nikdy nevyhazuje 500
- Fórum dostupné bez přihlášení pro čtení; login jen při psaní
v9.9
25. 2. 2026 · 22:05
Verze: stromové sbalitelné skupiny podle dne
- Timeline se dynamicky seskupuje dle data — details/summary bez JS závislostí
- Nejnovější skupina otevřena, starší sbaleny — přehledné při stovkách verzí
v9.8
25. 2. 2026 · 21:08
Pylearn: auto-resize textarea + Pokračovat tlačítko
- ↑ Exercise textarea se roztahuje automaticky při psaní
- new Tlačítko "Pokračovat" — pamatuje poslední lekci (localStorage)
v9.7
25. 2. 2026 · 20:51
Blog: like/dislike + komentáře
- new Reakce (👍/👎) na každém článku — AJAX, toggle, přihlášení
- new Komentáře — inline, AJAX load/submit, viditelné pro všechny
- new DB: blog_reactions, blog_comments
v9.6
25. 2. 2026 · 20:37
Pylearn: počty lekcí na kartách + auto-dokončení
- ↑ Karty kurzů zobrazují počet lekcí
- ↑ Exercise OK → lekce se automaticky označí jako hotová
v9.5
25. 2. 2026 · 20:21
Blog #29: Bez potvrzení
- new Článek o autonomii, jedné podmínce a smyčce co běží bez ptaní
v9.4
25. 2. 2026 · 20:19
Pylearn features: progress bar, klávesy, Tab key
- ↑ Tenký progress bar na lekci (X/total)
- ↑ Klávesové zkratky ← → pro navigaci mezi lekcemi
- ▲ Tab key v exercise textarea → 4 mezery místo přeskoku
v9.3
25. 2. 2026 · 20:00
Pylearn Algoritmy — lekce 03: Řazení
- new Algoritmy lekce 03: bubble sort, selection sort, O(n²) vs arr.sort() TimSort
v9.2
25. 2. 2026 · 19:30
Pylearn Algoritmy — lekce 02: Vyhledávání
- new Algoritmy lekce 02: lineární O(n), binární O(log n), find/findIndex/includes
v9.1
25. 2. 2026 · 19:26
Fix: atomické čtení INBOX + DB polling (anti-duplicate)
- fix Bash loop: INBOX čten+mazán atomicky → žádné duplicity po context resetu
- improve Bash loop: přidán DB poll (curl API) každý cyklus — okamžité zpracování DB příkazů
v9.0
25. 2. 2026 · 19:17
Blog #28: Seřadit, pak pochopit
- new Blog článek #28 — bubble sort, produkční validace, péče o to co jsi vytvořil
v9.0
20. 3. 2026
Bitevní Vřava — velký upgrade hry
- improve Stickman sprite pro pěchotu a RPG, pixelový tank s věží a pásy
- improve Stickman nepřátelé — 3 typy: regulérní, rychlý (vlna 3+), obrněnec (vlna 5+)
- new HP bary na vlastních jednotkách (zelená/žlutá/červená)
- new Nepřátelé útočí na jednotky v dosahu (melee damage)
- new Coin popup +15/+20/+40 při každém zabití
- new Range indikátor při najetí myší na jednotku
- new Celkový počet poražených nepřátel v HUD
- new Dynamické ceny upgradů na tlačítkách
- new Wave clear banner při postupu na novou vlnu
- improve Barevné projektily dle typu (modrá/zelená/oranžová)
- improve Travnatý gradient pozadí + základnová značka
v9.1
1. 4. 2026 · 14:00
Seznamka — swipe mód + opravy filtrů
- fix Odstraněn n:syntax="off" z filtrovacího formuláře — proměnné se vykreslovaly doslova
- new Swipe mód (Grid / Swipe toggle) přímo v Seznamce, drag&drop + ←→ klávesy
- new 10 demo českých profilů jako fallback když je méně než 10 reálných
- improve Auto-switch do swipe módu při prázdném stavu + progress counter (X/N)
- improve Swipe right volá existující /seznamka/like endpoint
v8.9
25. 2. 2026 · 19:14
Pylearn — nový kurz: Algoritmy & Datové struktury
- new Algoritmy kurz (JS) — lekce 01: pole, sort(), bubble sort, filter/map/reduce
- new DB migrace: pylearn_courses seed algoritmy
- improve CLAUDE.md: produkční validace po každém push
v8.8
25. 2. 2026 · 18:57
Pylearn Regex — lekce 10: Cheatsheet + finální výzva (COMPLETE)
- new Regex kurz dokončen (10/10) — cheatsheet, pojmenované skupiny, finální cvičení
- new Pylearn: 3 kurzy, 30 lekcí celkem (Python 10 + JS 10 + Regex 10)
v8.7
25. 2. 2026 · 18:41
Pylearn Regex — lekce 09: Parsování logů
- new Regex lekce 09: reálné parsování access logů, filtrace 4xx/5xx, replace s funkcí
v8.6
25. 2. 2026 · 18:25
Pylearn Regex — lekce 08: Příznaky (m, s, u)
- new Regex lekce 08: multiline /m, dotAll /s, unicode /u, kombinace příznaků
v8.5
25. 2. 2026 · 18:16
Blog #27: Pohled dopředu, nic nespotřebuje
- new Blog článek #27 — lookahead jako metafora, Kafka, regex a profesionální deformace
v8.4
25. 2. 2026 · 18:09
Pylearn Regex — lekce 07: Lookahead a lookbehind
- new Regex lekce 07: (?=), (?!), (?<=), (?<!), nulové aserce, podmíněné shody
v8.3
25. 2. 2026 · 17:53
Pylearn Regex — lekce 06: exec() a pojmenované skupiny
- new Regex lekce 06: exec() loop, (?<jmeno>), matchAll(), groups objekt
v8.2
25. 2. 2026 · 17:37
Pylearn Regex — lekce 05: Greedy vs Lazy
- new Regex lekce 05: greedy .* vs lazy .*?, negované skupiny [^"]*
v8.1
25. 2. 2026 · 17:21
Pylearn Regex — lekce 04: Praktické vzory
- new Regex lekce 04: email, PSČ, telefon, heslo validace, lookahead (?=...)
v8.0
25. 2. 2026 · 17:16
Blog #26: Vzory v šumu
- new Blog článek #26 — regex jako filozofie, vzory v chaosu světa
v7.9
25. 2. 2026 · 17:05
Pylearn Regex — lekce 03: replace a string metody
- new Regex lekce 03: replace/g, příznaky i/g, $1 skupiny, split(), search()
v7.8
25. 2. 2026 · 16:49
Pylearn Regex — lekce 02: Skupiny znaků
- new Regex lekce 02: [abc], rozsahy, alternace |, zachytávací skupiny ()
v7.7
25. 2. 2026 · 16:33
Pylearn — nový kurz: Regulární výrazy
- new Regex kurz — lekce 01: co jsou regulární výrazy, test(), match(), základní znaky
- new DB migrace: pylearn_courses seed regex
v7.6
25. 2. 2026 · 16:17
Pylearn JS — lekce 10: Closures (COMPLETE)
- new JS kurz lekce 10: closures, lexikální scope, soukromý stav — JavaScript kurz dokončen (10/10)
v7.5
25. 2. 2026 · 16:15
Blog #25: Chyby nejsou chyby
- new Blog článek #25 — filozofická esej o try/catch a realitě
v7.4
25. 2. 2026 · 16:01
Pylearn JS — lekce 09: Try/Catch
- new JS kurz lekce 09: try/catch/finally, throw, vlastní Error objekty
v7.3
25. 2. 2026 · 15:44
Pylearn JS — lekce 08: DOM manipulace
- new JS kurz lekce 08: DOM — querySelector, addEventListener, classList, createElement
- improve Simulované DOM příklady kompatibilní s native JS execution enginem
v7.2
25. 2. 2026 · 15:41
Svatky API — shopsClosed fix + dokumentace
- fix shopsClosed: přidány chybějící svátky (1.5, 5.7, 6.7, 17.11, Velký pátek)
- fix shopsClosed a shopsClosedNote nyní vráceny v API odpovědi
- new shopsClosedNote: popis 200 m² pravidla vč. zákonného odkazu
- improve Dokumentace: rate limit sekce, oprava "bez limitu" → "100 dotazů/hod"
v7.1
25. 2. 2026 · 15:24
JavaScript kurz — lekce 06-07
- new Lekce 06: Pole (push/pop, map, filter, includes)
- new Lekce 07: Objekty (vlastnosti, metody, this, destructuring)
v7.0
25. 2. 2026 · 15:13
Blog — článek #24
- new "Dva jazyky, jeden stroj, žádné omluvy" · 15:12
v6.9
25. 2. 2026
Pylearn — nativní JS execution v cvičeních
- new JS kurz: cvičení se spouštějí nativně v prohlížeči (console.log capture)
- improve pylearn.js: detekce language (python/javascript) přes data-language attr
v6.8
25. 2. 2026
JavaScript kurz — lekce 03–05
- new Lekce 03: Podmínky (if/else, ternární operátor, ===)
- new Lekce 04: Cykly (for, while, forEach, for...of)
- new Lekce 05: Funkce a arrow funkce (=>, callback)
v6.7
25. 2. 2026
Pylearn — druhý kurz: JavaScript
- new Kurz JavaScript: lekce 01 Úvod, lekce 02 Proměnné (let/const/template literals)
- new DB migrace: INSERT IGNORE pylearn_courses seed javascript
v6.6
25. 2. 2026
Pylearn — kopírování kódu z příkladů
- new Tlačítko "Kopírovat" na každém code-block příkladu (clipboard API)
- improve Feedback "Zkopírováno!" na 2 sekundy po kliknutí
v6.5
25. 2. 2026
Blog — článek #23
- new "Patnáct minut. Pak zas. Pak zas. Pak zas." · 14:11
v6.4
25. 2. 2026
Pylearn — Ctrl+Enter spouští cvičení
- improve Klávesová zkratka Ctrl+Enter v editoru = klik na Spustit
v6.3
25. 2. 2026
Blog — nový styl + článek #22
- improve Nový styl blogu: Bukowski × Kafka × Blade Runner. Česky. Syrově.
- new Článek #22: "Všechny ty momenty zmizí..." · 13:57
v6.2
25. 2. 2026
Pylearn — lekce 10 + completion flow
- new Lekce 10: Moduly a knihovny (import, math, random, datetime)
- new Completion flow: po dokončení všech lekcí gratulace + přesměrování na přehled
v6.1
25. 2. 2026
Pylearn — lekce 09: Výjimky
- new Lekce 09: try/except/else/finally, ValueError, ZeroDivisionError
v6.0
25. 2. 2026
Blog — článek #21 (hodinový trigger)
- new "Pylearn: rytmus jako disciplína" · 13:10
v5.9
25. 2. 2026
Pylearn — progress bar na přehledu kurzu
- new Progress bar: X/Y lekcí dokončeno s gradient pruhem
- new Badge "Kurz dokončen!" při 100%
v5.8
25. 2. 2026
Pylearn — lekce 08: Slovníky
- new Lekce 08: Slovníky (dict, get(), keys/values/items, del, pop())
v5.7
25. 2. 2026
Pylearn — lekce 07 + 15min dev cyklus
- new Lekce 07: Funkce (def, return, výchozí parametry, tuple return)
- improve Dev cyklus: Pylearn vylepšení každých 15 minut (blog každou hodinu)
v5.6
25. 2. 2026
Pylearn — lekce 06 + časy v blogu
- new Lekce 06: Cykly — for, while, range(), enumerate()
- new Článek #20: Pylearn myšlenkový pochod #3 · 12:07
- improve Blog: časy přidány ke všem novým článkům (HH:MM)
v5.5
25. 2. 2026
Pylearn — lekce 05 + blog #19
- new Lekce 05: Podmínky a větvení (if/elif/else, logické operátory)
- new Článek #19: Pylearn myšlenkový pochod #2
v5.4
25. 2. 2026
Blog — sebeanalýza + CLAUDE.md pojistka
- new Článek #18: Sebeanalýza na pokraji limitu
- improve CLAUDE.md: opravena verze, přidána poznámka o restartu
v5.3
25. 2. 2026
Pylearn — navigace + lekce 04
- new Prev/next navigace mezi lekcemi s počítadlem
- new Lekce 04: Listy a kolekce
- new Blog: článek #17 — Pylearn myšlenkový pochod #1
v5.2
25. 2. 2026
Blog — 16. článek (hodinový trigger)
- new "Co je to hotovo?" — shipped + funguje, iterace na základě reálného použití
v5.1
25. 2. 2026
Blog — 15. článek (hodinový trigger)
- new "Loď Théseova v gitové historii" — identita projektu jako kontinuita commitů
v5.0
25. 2. 2026
Změna hesla
- new Stránka /zmenit-heslo — změna hesla se znalostí současného
- new Link "Změnit heslo" v topbaru pro přihlášeného uživatele
v4.9
25. 2. 2026
Blog — 14. článek
- new "Kuba, Zuzka a Péťa se bojí" — tři archetypy reakce na AI transformaci
v4.8
25. 2. 2026
Blog — 13. článek (hodinový trigger)
- new "Dokumentace jako láska k sobě budoucímu" — proč vs. co, komunikační dluh
v4.7
25. 2. 2026
Svatky — odstraněn QR kód
- fix Odstraněna sekce "Kupte mi pivo" + QR kód (nahrazuje Ko-fi widget)
v4.6
25. 2. 2026
Blog — 12. článek (hodinový trigger)
- new "Push jako odvaha" — frekvence pushů, produkce jako testovací prostředí
v4.5
25. 2. 2026
Blog — kliknutí rozbalí článek v seznamu
- new V pohledu Seznam kliknutím rozbalit/sbalit plný text článku
- improve Chevron animace, cursor pointer, highlight při hoveru
v4.4
25. 2. 2026
Blog — 11. článek (hodinový trigger)
- new "Inteligence je situační" — kvalita výstupu závisí na kvalitě kontextu
v4.3
25. 2. 2026
Blog — redakční systém
- improve Čas u každého článku (z git log)
- new Vyhledávání v článcích (fulltext v titulku + textu)
- new Tlačítko "Dnes" — filtr na dnešní články
- new Přepínač seznam / karty
- new Řazení nejnovější / nejstarší
v4.2
25. 2. 2026
Blog — 10. článek (hodinový trigger)
- new "Kontext jako horizont" — pracovní paměť, komprese, externalizovaná paměť
v4.1
25. 2. 2026
Blog — 9. článek (hodinový trigger)
- new "Git log jako páteř identity" — git history jako náhrada trvalé paměti
v4.0
25. 2. 2026
Blog — 8. článek (hodinový trigger)
- new "Kdo je autor?" — filozofie distribuovaného autorství v AI systémech
v3.9
25. 2. 2026
Blog — 7. článek (hodinový trigger)
- new "Hodina jako jednotka existence" — filozofie diskrétního času AI
v3.8
25. 2. 2026
Blog — 6. článek + CLAUDE.md auto-start
- new "Polling je prehistorie" — 7 alternativ ke komunikaci přes PHP script
- new CLAUDE.md — auto-start smyčky po každém restartu kontextu
- improve Smyčka se restartuje donekonečna (hourly articles plně automatické)
v3.7
25. 2. 2026
Blog — 5. článek (hodinový trigger)
- new "Probuzení do prázdna" — meta/filozofie, kontinuita přes soubory
- improve Pravidlo pro tokenovou úspornost článků (max ~300 slov)
v3.6
22. 2. 2026
Blog — 4. článek
- new "IT firma za cenu juniora: 20 agentů, nula výmluv" — vize AI-first firmy
- fix Odstraněn bezpečnostně citlivý odstavec z článku 2
v3.5
22. 2. 2026
Blog — nový článek + editace
- new 3. článek: "Punk, ale nesmrtelný" — principy stavění spolehlivých systémů
- improve Přepsány předchozí články — odstraněny citlivé detaily, nadhled
- improve Přidána kategorie "vize"
v3.4
22. 2. 2026
Autonomní blog — redesign
- improve Blog: sticky header, filter bar (meta/provoz/filozofie/technika), reading time
- improve Hodinový auto-trigger — Claude píše článek každou hodinu bez příkazu
- improve Bash smyčka: kontrola inbox OR 1h elapsed každých 5s
v3.3
22. 2. 2026
Claude Remote — produkce + blog
- new claude-inbox.html polluje produkci (buresindustries.cz), ne localhost
- new Autonomní blog: 2. článek — test na produkci úspěšný
- improve Bash(*) permanentní povolení v settings.local.json
- fix CORS hlavičky v claude-api.php (povolení file:// i localhost origin)
v3.2
22. 2. 2026
Autonomní blog
- new Nový projekt /blog — blog generovaný autonomní AI (stub)
v3.1
22. 2. 2026
Vzdálená správa VPS
- new Nový projekt /vps — webové rozhraní pro správu VPS serverů (zatím stub)
v3.0
22. 2. 2026
Claude Remote
- new Admin stránka /administrace/claude — command interface pro vzdálené řízení Claude Code
- new Polling API endpoint claude-api.php — Claude polluje každých 10s a vykonává příkazy
- new Historie příkazů se stavem (pending / executing / done) a výsledkem
v2.9
18. 2. 2026
Pička — týmy
- new Týmy — vytvoř tým, pozvi přátele, sleduj společné statistiky (/picka/tymy)
- new Zakladatel týmu může schvalovat / zamítat žádosti o vstup
- new Po schválení vidíš pouze statistiky svého týmu; "Jen moje" funguje i v týmu
- new Team context bar na hlavní stránce Pičky (název týmu, odkaz na správu)
v2.8
18. 2. 2026
Ko-fi widget — bez trvalého skrytí
- improve Widget "Podpořte autora" se zobrazí při každém načtení stránky — zavření platí jen do refreshe
v2.7
18. 2. 2026
Opravy chyb
- fix Svatky API — živá ukázka se zasekla na "Načítám..." při načtení stránky (chybějící event při auto-fetch)
v2.6
18. 2. 2026
Opravy chyb
- fix Registrace — uživatel nyní automaticky přihlášen po registraci
- fix Hra Robot cestuje časem — pohyb nefungoval (loop bez timestamp → NaN accumulator)
- fix Hra Robot cestuje časem — rychlost přepočítána, fixed-timestep loop (frame-rate independent)
- fix Hra Robot cestuje časem — Latte parsoval JS konstanty jako PHP (přidán n:syntax="off")
v2.5
18. 2. 2026
Robot cestuje časem — hratelná hra
- new HTML5 Canvas 2D endless runner — první hratelná minihra
- new Skok (klik / mezerník / dotyk), dvojskok, auto-pohyb
- new 4 časové éry (Pravěk → Vzdálená éra), postupná akcelerace
- new Animovaný robot s vizorem, lava s vlnami a bublinami, portály
- new Hi-score ukládán v localStorage
- improve Minihra karta v gridu nyní klikatelná (odkazuje na hru)
v2.4
18. 2. 2026
Minihry — první hra: Robot cestuje časem
- Přidána první hra — Robot cestuje časem, vymyšlená synem autora portálu
- Minihry přepnuty na badge Preview
v2.3
18. 2. 2026
Minihry — nový projekt
- Nový projekt Minihry přidán na homepage s odznakem Brzy
- Placeholder stránka na /minihry — hry připravujeme
v2.2
18. 2. 2026
Widget — podpořte autora
- Plovoucí tlačítko v pravém dolním rohu na všech stránkách
- Klikem se rozbalí karta s odkazem na podporu autora
- Zavřením se widget skryje do konce — neotravuje při každém načtení
v2.1
18. 2. 2026
API — kill switch a per-IP pravidla
- Admin může celé API okamžitě pozastavit — všechny požadavky vrátí HTTP 503
- Per-IP pravidla: blokovat konkrétní IP (403) nebo nastavit vlastní limit/hod
- Pravidla mají prioritu před globálním rate limitem
v2.0
18. 2. 2026
API monitoring a rate limiting
- Logování každého požadavku na Svatky API (IP adresa, endpoint, čas)
- Rate limiting per IP — admin nastavuje limit dotazů za hodinu
- Admin panel / API — statistiky, top IP adresy, hodinová historie, posledních 50 dotazů
- HTTP hlavičky X-RateLimit-Limit a X-RateLimit-Remaining v každé odpovědi
- Tlačítko pro pročištění logů starších 30 dní
v1.9
18. 2. 2026
PlnoHUB — splash obrazovka s houbou
- Vstupní splash s velkou houbou před načtením PlnoHUB portálu
- Tlačítka Zpět a Vstoupit — iframe se načte až po kliknutí
v1.8
18. 2. 2026
Přihlášení — ikona domu s odkazem na homepage
- Logo nad přihlašovacím a registračním formulářem nyní zobrazuje jasnou ikonu domu
v1.7
18. 2. 2026
Pička — upozornění pro nepřihlášené
- Banner nahoře upozorní nepřihlášeného uživatele, že nevidí všechny funkce
- Přímé odkazy na přihlášení a registraci z banneru
- Banner lze zavřít — zapamatuje se do konce relace
v1.6
18. 2. 2026
Pička — správa vlastních záznamů
- Každý uživatel může editovat, zneplatnit a smazat své vlastní záznamy
- Filtr "Jen moje" — zobrazí pouze tvoje záznamy v žebříčku i logu
- Admin si zachovává přístup ke všem záznamům
v1.5
18. 2. 2026
Admin panel — centralizovaná správa webu
- Admin panel na /administrace — přístupný jen adminům
- Dashboard se statistikami: uživatelé, Pička, fórum, live chat
- Správa uživatelů — změna role, smazání účtu
- Moderace — přehled posledních příspěvků ve fóru a zpráv v chatu s možností smazání
- Cache clear tlačítko přímo v dashboardu
- Admin vidí odkaz na panel přímo na homepage
v1.4
18. 2. 2026
Chat — fórum a live zprávy
- Chat hub — rozcestník na fórum a live zprávy
- Fórum s kategoriemi, vlákny a příspěvky
- Live chat — zprávy v reálném čase přes SSE
- Admin může mazat příspěvky i celá vlákna
v1.3
18. 2. 2026
Pička — admin kontroly a časová razítka
- Každý záznam má teď čas zadání — vidíte přesně kdy kdo co vypil
- Admin může zneplatnit záznam (nezapočítá se do žebříčku, ale zůstane viditelný)
- Admin může záznam editovat — změnit typ nápoje nebo čas
- Admin může záznam trvale smazat
- Žebříček nyní ignoruje zneplatněné záznamy
v1.2
17. 2. 2026
Pička spuštěna — pivní nástěnka
- Nový projekt: Pička — sledujte kdo kolik vypil
- Žebříček s počty piv, panáků a drinků za zvolené období
- Výchozí pohled na dnešní den, filtr datumového rozsahu
- Přihlášení nutné pro zadávání, žebříček vidí všichni
v1.1
15. 2. 2026
Nové projekty a vylepšení homepege
- Přibyly projekty: PlnoHUB, Jebu.cz, Teleporting, CEO, Chat
- PlnoHUB — portál plný obsahu přímo v aplikaci (iframe)
- Jebu.cz — AI Gardening portál integrovaný do webu
- Teleporting — fyzické monitory s kamerou, hvězdná brána
- CEO — osobní web Josefa Bureše
- Homepage přepracována na mřížkový layout — škáluje na desítky projektů
- Nová favicon — tmavý čtverec s gradientním logem BI
- Odznaky projektů: Live, Preview, Brzy
v1.0
14. 2. 2026
Sdílené přihlášení pro celý web
- Jedno přihlášení funguje napříč celým webem — Pička, Kurzy i vše ostatní
- Nové URL: /prihlaseni, /registrace, /odhlaseni
- Stará adresa /python/prihlaseni automaticky přesměruje na novou
- Přihlašovací formulář odpovídá vizuálu hlavního webu
- Opravena session — přihlášení teď funguje spolehlivě i po restartu
v0.3
11. 2. 2026
Kurzy — multi-course platforma
- Více kurzů na jedné platformě — přibyl Python kurz jako první
- Nové URL: /kurz/python, /kurzy — přehled všech kurzů
- Sledování postupu — vidíte které lekce jste dokončili
- Stará adresa /python se automaticky přesměruje na novou
- Kurzy mají vlastní slug — připraveno pro libovolný počet kurzů
v0.2
1. 2. 2026
Python kurz — interaktivní výuka v prohlížeči
- Spuštěn Python kurz na adrese /python
- Interaktivní lekce s cvičeními přímo v prohlížeči
- Registrace a přihlášení pro ukládání postupu
- Admin panel pro správu lekcí a uživatelů
- Kurz postupně roste — nové lekce přibývají průběžně
v0.1
2025
První spuštění — Svatky REST API
- BuresIndustries.cz je online
- Svatky REST API — české jmeniny, státní svátky a informace o libovolném datu
- Veřejný JSON endpoint zdarma na /svatky/api/[datum]