Jak se mi daří v jednom člověku provozovat a rozvíjet junior.guru? Od posledních poznámek už utekl nějaký ten týden (15. 12. až 9. 1.), tak nastal čas se opět ohlédnout a utřídit si myšlenky.

Čísla: Finanční výsledky, návštěvnost a další čísla k junior.guru mám přímo na webu.
Týden před Vánoci mě skolila rýmička. Tak jsem už nic nedodělal a potom byly Vánoce, tak jsem už nic nezačínal, a prostě jsem na všechno zapomněl, nečetl e-maily a dal jsem si voraz od celého světa. A bylo to fajn.
První lednové pondělí jsem se „vrátil do práce“ a odepsal jsem na všechny e-maily. Trochu trapas někdy, protože to bylo třeba 15 dní po obdržení. Ale zatím to vypadá, že jsem kvůli tomu nic neprošvihl a o nic nepřišel, nicméně uvidíme…
Rozhodně jsem tu pauzu potřeboval. Protože nonstop online komunikace, ať už v e-mailu nebo na Discordu, zvlášť když se k tomu přidají osobní chaty na pěti různých aplikacích jako Telegram, WhatsApp, nebo Signal, je to, co mě na mé práci dlouhodobě vyčerpává asi nejvíc. Bylo příjemné se od toho na chvíli trochu odstřihnout a prostě nic neřešit.
Fakt jsem si odpočinul. Když jsem byl nemocný, poslouchal jsem Antona, nebo jsem koukal na videa o tom, jak se v DaVinci Resolve dělá color management pro videa z iPhone. O Vánocích jsem trochu třídil fotky, zkoušel psst, zkoušel jsem sestříhat rodinné PFko, ale nakonec jsem jej nedodělal.
Dělali jsme různé procházky po městě i po přírodě, v Praze i ve Zlíně, bruslili jsme na rybníku, viděli nějakou tu rodinu, jedli cukroví, užili jsme si Štědrý večer, Silvestr (se ženou jsme si pustili film Žabí teror), zašli jsme na výstavu betlémů v Betlémské kapli, a tak různě.
Dal bych sem nějaké fotky, ale už nemám sílu. Dopisuju to tady v pátek ve 22:39, dítě jsem uspával do 21:40 a už se těším, až tohle vydám a dám si nohy nahoru.
Úspěchy juniorů
Udělal jsem na LI status o úspěších třech juniorů v klubu. A mezitím přibyly minimálně dva další úspěchy!
Že by se blbé období začalo trochu otáčet? Hned jsem si udělal po delší době pořádek ve svých záznamech o úspěších juniorů z klubu a všechny nové jsem si zapsal.
Taky jsem si vzpomněl, že jsem před třičtvrtě rokem chtěl, aby existovaly nové rozhovory s juniory z klubu, a stále nejsou. Tak jsem se ozval člověku, který to měl psát a nabídl jsem mu, že odkoupím rozdělanou práci, a nechám ji dodělat někoho jiného. On nabídl, že si ji mám nechat zdarma za prodělané útrapy s čekáním na výsledek.
Ozval jsem se hned Adéle, která rozhovory dělala už dřív, a domluvili jsme si spolupráci. Sice bude jeden rozhovor 4x dražší, ale holt si raději připlatím za spolehlivost, samostatnost, a kvalitu. Přinejhorším dojdou peníze a uděláme těch článků méně 😅 Nebo to nastartuje zájem o klub a ty peníze vydělám. Uvidíme.
Snaha poslat newsletter
Optimalizoval jsem synchronizaci nových členů v Memberful a jejich přidávání do odběratelů newsletteru v Buttondown tak, aby se to nedělalo pokaždé pro stovky účtů, i historických, ale třeba jenom pro 20 nejnovějších. Už jsem to jednou zkoušel, ale nenašel jsem v API datum registrace, nebo něco podobného, čeho bych se mohl chytit. Tak jsem se podíval znova a něco jsem tam nakonec vydoloval a podle toho to filtruju, aby toho nebylo zbytečně moc a dělalo se to jen inkrementálně.
Snažil jsem se poslat newsletter, ale byla to křeč. Jak v prosinci nebylo zas tak moc dat, AI se snažilo seč mohlo, ale ne a ne vygenerovat nějaké shrnutí, které by se mi líbilo.
Původní myšlenka byla, že to vytvoří drafty a já si je už v Buttondown editoru doupravím ručně, ale bohužel když do něj kliknu, tak se formátování celého newsletteru úplně rozpadne.
Musím napsat na podporu, abych zjistil, čím to je. Každopádně to znamená, že nemohu draft upravit, jen odeslat. A tak jsem zkoušel a zkoušel, co AI vygeneruje, a pak jsem teda něco poslal, ale tohle workflow musím změnit, nebo nějak vyřešit ten Buttondown, protože jsem u toho už trochu ztrácel nervy. Kdybych ten newsletter napsal ručně sám, tak jsem ho měl možná rychleji!
Taky jsem zkoušel nastavit prompt caching na 24h. Chvíli to fungovalo a pak začalo OpenAI API vracet tuto skvělou chybovou hlášku:
caching tokens: Error code: 400
{
'error': {
'message': 'There was an issue with your request. Please check your inputs and try again',
'type': 'invalid_request_error',
'param': None,
'code': None
}
}
Z té nejde vyčíst vůbec nic, takže jsem to zase odebral 🤷♂️ Na takovéhle blbosti nemám čas.
Snaha použít AI
Převedl jsem jeden scraper z XML na JSON a udělal jsem to čistě pomocí Copilota na GitHubu. Prima!
Dále jsem přidal do bota, který nám v klubu hlídá programátorské srazy, podporu pro Maker Faire, který by lidi v klubu taky mohl zajímat a hlavně má události po celé republice, což mi přijde zajímavé.
Udělal jsem to tak, že jsem připravil fixtures (stažené HTML těch stránek) pro testy a sepsal issue a přiřadil jej Copilotovi. Udělal PR, ale zjevně mu nešlo pouštět testy. Tak jsem přidal soubor, který mu umožní používat uv. Pak to bylo lepší, dostali jsme se k funkčnímu výsledku.
Ale když jsem ten kód četl, napsal jsem 20 komentářů, z toho dost i kritických, a vrátil jsem mu to. Pak ještě jedno kolečko, kde jsem jich napsal 10. Štvalo mně to, protože mi přišlo, že kdybych ty komentáře psal juniorovi, tak se poučí a příště neudělá stejné věci, ale tady jsem si byl jistý, že je Copilot udělá znova, pokud mu někam explicitně nepřidám do kontextu, že je dělat nemá.
Nakonec jsme se dostali k výsledku, takže jo, napsal celý ten scraper a ten je funkční. Ale nedokážu zpětně posoudit, jestli to bylo rychlejší, než kdybych si to naprogramoval sám.
Rozhodně ale dokážu říct, že mě baví mnohem víc programovat scrapery, než dělat review a psát 20 komentářů na GitHubu.
Kromě tohoto jsem ještě zkoušel Copilota na review a v tom jednom konkrétním případě našel víc věcí než CodeRabbit a byl méně ukecaný. Uvidím do budoucna, co budu používat víc.
Snaha přidat dark mode
V klubu se strhla debata, že junior.guru by mohlo mít dark mode. Já jsem říkal, že bych ho tam taky měl rád, ale že je to něco, co teď není vůbec priorita a komplikuje to kód, obrázky, všechno, a zpomaluje to vývoj a je to přidaná maintenance, tak že to není na pořadu dne.
Ale kluci s AI agenty prej že se hecnou a přidají to. Dan na to udělal zábavný Silvestrovský event a online se to snažil vytvořit. Petr Glaser se přidal se svou verzí.
Dan to nakonec nedodělal, protože to chtěl udělat pořádně, ale díky práci na dark mode udělal jiné Pull Requesty, které jsou nakonec opravdu užitečné.
Celkově mi ale přijde, že se spíš potvrdila moje slova: Dark mode je komplexní věc, nepřidá se to za odpoledne ani s AI agentem, a je to přidaná komplexita a maintenance. A není to priorita, takže jsem se třeba na tu Petrovu verzi ještě ani nestihl pořádně podívat. Posílal však screenshoty a je úžasné, co AI agenti dnes dovedou a jak daleko se to dokáže dostat.
Zároveň je vidět, že to sice 80 % udělalo za pár minut, ale těch zbylých 20 % je potřeba doladit a to ladění je dost složité (např. jak mají v dark mode vypadat loga firem? nebo jak se má chovat žlutá barva, která je zásadní součástí brandu?), takže to pak zabere 80 % času.
Přednášky
Sestříhal jsem přednášku s Irenou Zatloukalovou a uveřejnili jsme ji pro členy.
Naplánovali jsme přednášku s Artemem Zakharchenkem o testech a spolu s Táňou už jsme v procesu přípravy u snad dalších třech nebo čtyřech přednášek. Hezky se to rozjelo! Mám z toho fakt radost!
Před Vánoci mě napadlo poslat něco třem speakerům, kteří v klubu protrpěli technické potíže. Táňa navrhla, že bych mohl využít Pohlednici Online, což se mi moc líbilo. Nakreslit něco, nahrát to jako obrázek, napsat text, poslat.
Jenže jak jsem pak onemocněl, tak jsem to nechal být. Vrátil jsem se k tomu v lednu. Připojil jsem tablet na kreslení, co mám půjčený od bráchy, a zkusil v Inkscape nakreslit nějaké kuře a tak. Zjistil jsem, že na tom zase už neumím kreslit a že nenávidím nechápu Inkscape, ale něco jsem teda vyplodil, připsal k tomu něco hezkého a poslal to. Adresy jsem zjistil z veřejných zdrojů, nebo jsem je věděl, protože se s těmi speakery znám trochu víc.
Taky se mi povedlo navázat zpátky kontakt s Tinukim, který dříve nahrával videa v klubu. Díky tomu máme teď tři nahrávače: Tinukiho, Patrika, a Dana jako záložníka. Snad tím teď na chvíli vyřeším technické problémy při nahrávání a bude tím zajištěna aspoň základní kvalita těch eventů.
Plány
Levnější chleba u nás v pekárně nově stojí 70 Kč, dražší 100 Kč. Tak asi čas zdražit předplatné v klubu, nebo co.
Přes Vánoce jsem se trochu zamyslel, jestli má junior.guru šanci přežít rok 2026. Nevypadá to dobře. Už teď vím, že minimálně na sponzorech přijdu o zhruba 120 až 200.000 Kč za rok. Do klubu se taky nehrnou zrovna davy.
Zároveň mi v tomto roce stoupnou životní náklady. Nepotřebuju moc, nesnažím se uživit nějakou firmu s kancelářemi a deseti zaměstnanci, ale v podstatě jen svou rodinu. Jenže teď nevydělám ani 40.000 Kč čistého. Když to dám dohromady s tím, co odpracuju pro Apify, tak to něco hodí, ale životní úroveň programátora v Praze to teda není. A kdyby náhodou šla žena znova na mateřskou, tak by to bylo spíš blbý.
Existuje varianta navyšovat úvazek v Apify, ale už teď je obtížné vše kolem junior.guru s tím vedlejšákem stíhat, takže by to znamenalo výrazné omezení mých aktivit kolem projektu. A to by znamenalo, že by v podstatě junior.guru jen čekalo, až se otočí trh, ale rozvíjelo by se nejspíš minimálně, stihla by se spíš jen údržba. Pokud by se trh sám od sebe neotočil a lidi na junior.guru sami od sebe nezačali chodit, tak bych nejspíš své aktivity akorát víc a víc omezoval, až bych to nechal žít svým životem jako nějaký free a open source projekt. To by byl jinými slovy konec tady toho dobrodružství.
I tak by bylo junior.guru velkým úspěchem. Existuje od roku 2019 a je rok 2026, takže to máme 7 let. Přežilo už hromadu jiných projektů pro juniory, přežilo mnohé vzdělávací agentury, přežilo covid, přežívá zatím i teď ty hubené roky. Projekt se podílel na konferencích, na vládních akcích popularizujících digitalizaci, psal jsem články do novin… Povedla se ohromná spousta věcí. A je to love brand, který pomohl velké spoustě lidí a reálně jim změnil životy. Na začátku bych si asi nikdy netipnul, že s tím dojdu takhle daleko.
Ještě neházím flintu do žita. Ale když se podívám na čísla, tak je jasné, že pokud má junior.guru přežít i tento rok, tak prostě musí vydělávat o něco víc. Potřebuju zvrátit pokles, který mě od roku 2023 válcuje. To nezařídím tím, že vylepším jednu větu na prodejní stránce, napíšu nějaký status na LinkedIn, nebo přebarvím dvě tlačítka. To se může stát jenom nějakou podstatnou změnou. A já zkusím letos udělat tohle:
- Zvýším měsíční předplatné za klub pro nově příchozí. Nejdřív na 299 Kč a budu sledovat, kolik chodí nových lidí. Pak budu tu cenu zvyšovat, dokud stále budou přicházet lidi. Pro někoho, kdo se chce v dnešní době dostat do IT, by měl mít klub velkou hodnotu. Je tam už i velký archiv nahraných přednášek. Lidí do IT jde méně, a je těžké se do oboru dostat, takže se holt dostaneme k exkluzivnější službě. Možná pro méně lidí, ale pro ty, kteří to myslí fakt vážně a kterým to za to stojí. A já tímhle pokusem zjistím, co je nyní adekvátní cena za klub.
- Nasypu peníze do toho, aby vznikaly rozhovory s juniory a dám jim na webu větší prostor.
- Zvážím, zda nenasypu peníze do reklamy, např. na IG, FB, apod., ačkoliv se mi využívání reklamy stále příčí. Nicméně doba je zlá. Na webu mi klesá návštěvnost, možná i kvůli AI. Pokud budu postaven před otázku, jestli má junior.guru přežít, nebo jestli se obejdu bez placené reklamy pouze s organickým dosahem, protože placenou reklamu nemám rád (a její provozovatele ještě víc), tak možná tuhle hranici překročím. Překračovat jiné hranice, které mám, jako např. žádné zobrazování reklamy na webu, nebo žádné trackování návštěvníků, nehodlám – takové věci se mi příčí příliš a jejich přínos by byl minimální. Co budou weby, jako ten můj, dělat, až lidi úplně přestanou používat vyhledávače a vše si jen nechají přežvýkat LLMkama, tož to fakt nevím.
- Pokusím se asistentku Táňu využít i na něco jako „fundraising“. Pomáhala by mi komunikovat s firmami a případně i otevírat dveře do nových firem a oslovovat je, aby zvážili sponzorství junior.guru. Ale ani já, ani Táňa nejsme zrovna salesáci, takže kdybych narazil na někoho, kdo to umí líp, beru.
- Dodělám katalog juniorů a budu ho tlačit do firem.
- Předělám úvodní stránku tak, aby tam lidi mohli hned zadat svůj GitHub profil a nechat si jej zkontrolovat.
- Přidám do příručky kapitolu o projektech a kapitolu o AI.
Tak držte palce. Pokud máte chuť, pošlete LOVE 🤑
Co se týče osobních plánů, tak máme v kalendáři dvě zimní dovolené, jednu v Jeseníkách v lednu a jednu v Krkonoších v únoru. Kromě toho budeme zařizovat nové bydlení a to bude ještě spousta práce. A pak stěhování. A pak kdo ví co. Takže jsem si vlastně nic dalšího raději ani neplánoval. Spousta neznámého, ale zároveň rámcově je to naplánováno natolik, že do toho raději nic moc už nepřidávám. A tenčí se nám podstatně úspory, takže kdo ví, co si pak budeme moci vůbec dovolit. Nechám se překvapit.
Snaha vylepšit prodejní stránku
V souvislosti s přicházejícím zdražením klubu jsem udělal pár úprav prodejní stránky. Změnil jsem některé texty, přepracoval celou sekci s přednáškami, přepracoval celou sekci s logy firem a partnerů, přidal deníčky. Pořád mi tam chybí testimonials, ty musím taky někdy ještě přidat.
V seznamu přednášek jsem se snažil mít nejbližší plánovanou přednášku, pak tři čtyři poslední akce, pak dvě nejsledovanější přednášky s veřejným záznamem na YouTube, a pak nějaké náhodné akce vybrané z pěti nejsledovanějších bez veřejného záznamu. Takový mix by mohl lidem v dostatečně pestré šíři ukázat, co od akcí v klubu mohou čekat.
A podařilo se mi po 50 měsících zavřít GitHub issue #729 od Petra Viktorina. Hurá!
Další
- Přišlo mi ze Simple Analytics, že překračuju tarif. Tak jsem se zeptal na podpoře, jestli je to chyba a nebyla to chyba. Měl jsem nasbírané velké množství eventů. Používám totiž automated events a jak lidi klikají na pracovní inzeráty, generuje to hromadu dat. Přitom já ty eventy vůbec neanalyzuju a nepoužívám. Takže jsem automated events vypnul a snad to bude ok. Možná si pak dodělám rucně zachytávání pár eventů, které jsou opravdu k něčemu užitečné.
- Volal jsem si s jedním známým, který by rád nabral juniora. Hned jsem mu ukázal rozdělané /candidates/ a líbilo se mu to!
- Vypršely mi kredity na Apify, ale poprosil jsem je, jestli mi nechtějí zase něco přihodit, a vyhnul jsem se tak opět placení za provoz scraperů 🙏
- Volal jsem si s Arturem z EuroPythonu a bavili jsme se o tom, co chystají v Polsku. Ptal se mě na celou historii Python komunity v Česku a jak se nám povedlo vybudovat všechno to, co máme. Tak jsem mu řekl všechny legendy a měl z toho takový dvouhodinový soukromý podcast 😀 Pak jsem si vzpomněl, že pár myšlenek už jsem kdysi říkal v roce 2019 na přednášce na brněnském Pyvu a pak i na keynote na Namibijském PyConu 2020, a že tahle přednáška stále není nikde online. Takže jsem ťuknul do Petra V. na Pyvec Slacku a hele, konečně je to venku!
- Na py.cz zmizela e-mailová konference, tak jsem odebral odkazy na ni z dokumentace Pyvce.
- Vyjádřil jsem na Mastodonu svoje obavy z vývoje MkDocs. Ale neměl jsem pak čas a sílu projít si odkazy, které mi squidfunk poslal.
- E-maily (po Vánocích jich bylo asi přes 60), několikrát jsem přečetl celý klubový Discord, Pyvec Slack, zprávy na LinkedIn, upgrady závislostí na všech projektech. Opravil jsem pár rozbitých odkazů na webu. Povolil jsem daňařovi nahlížet na mé daně v nějakém DIS+ portálu.
- Opět nefunguje export nabídek práce ze StartupJobs, tak jsem jim napsal. Snad to brzo opraví.
- Za 26 dní jsem při procházkách nachodil 7 km, na túrách nachodil 18 km. Celkem jsem se hýbal 10 h a zdolal při tom 25 km. Detaily na Strava, jediné sociální síti, kde si napsání statusu musíte zasloužit.
Plánuji
Příští týden bude můj lednový týden pro Apify.
Zaujalo mě
Když na něco narazím a líbí se mi to, sdílím to na Mastodonu. Od posledních poznámek jsem sdílel:
- I often hear Americans & rich brits justify buying oversized, polluting vehicles by claiming they need them because they live in the "countryside". I call bullshit, Ladies and Gentlemen, allow me to introduce, the Citroen C15
Nejlepší vlákno o SUVčkách ever 😀 „Ask yourself, reader, do you need to carry anything larger than multiple cows?“ - Ukrainian Drone Pilot COMBAT Gear Explained - YouTube
Výbava ukrajinského operátora dronů. - It’s hard to justify Tahoe icons
Už jsem zahlédl několik kritik ikonek v novém macOS, ale tahle mi přijde nejlepší. Doteď mi ty ikonky byly upřímně dost jedno, ale po tomhle článku už to asi nemůžu nevidět a hlavně je zřejmé, že jde stranou nějaké estetické cítění a vkus – ty ikonky jdou proti všem řemeslným doporučením založeným na tom, jak lidé používají počítače. - Grok Can't Apologize. Grok Isn't Sentient. So Why Do Headlines Keep Saying It Did?
„xAI built a product that generated child sexual abuse material, and when journalists called for comment, the company refused to engage. That’s a scandal. That’s something Elon Musk should have to answer for. Instead, we get headlines that treat the chatbot as a self-aware actor taking responsibility“ - A Website To End All Websites | Henry From Online
Zajímavá myšlenka: „Illich also describes the concept of radical monopoly, which is that point where a technological tool is so dominant that people are excluded from society unless they become its users. We saw this with the automobile, we saw it with the internet, and we even see it with social media.“ - How uv got so fast
„uv installs packages faster than pip by an order of magnitude. The usual explanation is “it’s written in Rust.” That’s true, but it doesn’t explain much… The interesting parts are the design decisions: standards that enable fast paths, things uv drops that pip supports, and optimizations that don’t require Rust at all.” - Kam se z Česka nyní dostanete rychleji vlakem než autem? Novinky z jízdních řádů pro rok 2026
Kam se nově dostanete rychleji vlakem než autem? Vilach, Kodaň, Fankfurt, Vratislav, Poznaň, Přemyšl. Další novinky: Půjde jezdit z Olomouce do Bratislavy. Z Prahy do Berlína pod 4 hodiny. ČD se vrací ke skupinovým slevám, 25 % pro dvě až pět osob. Lepší signál. Pendolino bez příplatku, ale Praha–Ostrava mnohdy s povinnou místenkou. - Chytrý telefon pro děti bez nežádoucích aplikací? Řešením může být open-source nástroj AppLock - Blog digitálních svobod
Sebrat dětem smartphone není jediná varianta, jak si poradit s nebezpečím, které na ně číhá online. - Open Source Blackout
Mentální cvičení, jak by to vypadalo, kdyby měl váš oblíbený registr balíčků se závislostmi delší výpadek. A protože většinu z nich provozují dobrovolníci, za směšné peníze, není to nijak nesmyslná představa. A zrovna teď je na PyPI příhodný banner, který to píše dobře: „If Python and PyPI have provided $10 of value to you in the past year, please donate…“ - Adam Dolník: Trpím, když vidím povolební vyjednávání. Správný vyjednavač se nestará o to, jak vypadá - YouTube
Rozhovor s elitním vyjednavačem. Dávám odkaz přímo na čas, kde mluví o tom, jak komunikovat s dětmi. - Synthet
Pokud vás aspoň trochu baví hudba, nejspíš se vám bude líbit tenhle kanál. - AI pornografie klepe na dveře a chystá se změnit člověčenství
Zajímavé varování: „Dítě, jehož formativní zkušeností bude vztah s algoritmem, si vybuduje návyk na to, že svět se točí kolem něj. Že jeho touhy jsou okamžitě uspokojeny a že kompromis je zbytečný přežitek. Až se takový člověk střetne s realitou živého vztahu, narazí do zdi. Živí lidé totiž nejsou naprogramováni k tomu, aby nás neustále hladili naše ega.“