Týdenní poznámky: Nový život

Jak se mi daří pracovat na junior.guru a dalších věcech? Od posledních poznámek už utekl nějaký ten týden (2. 10. až 2. 11.), tak nastal čas se opět ohlédnout a utřídit si myšlenky.

Podzimní les

V říjnu to byla jízda, takže poznámky píšu až po měsíci. Bude to dlouhé a bude to výživné! Bude to o životě před miminkem a s miminkem. Bude to o dopravních omezeních na Praze 3. Bude to o junior.guru, o Apify, a taky hodně o AI. Ale bude to i o Šmoulech! A malé cameo má dokonce i Láďa Hruška. Tak jdeme na to.

Čekání na miminko… u zubaře… v Brně

Mělo se narodit na přelomu září a října, ale pořád se mu nechtělo ven. Čekali jsme, co bude, a pořád nic nebylo.

I když… možná něco přece jen bylo. Po malé rýmičce mě začala ve vlnách divně bolet půlka hlavy a nechtělo to odejít. Nedokázal jsem bolest lokalizovat, tak jsem obešel praktickou lékařku a ORL, ale nefungoval zrovna RTG a pak byl víkend, takže jsem se výsledku nedobral.

Mezitím se bolest už lokalizovala a začalo mi být jasné, že tohle nejsou dutiny, tohle jsou umírající zuby.

A protože mám zubaře z historických důvodů v Brně, vyrazil jsem tam po víkendu vlakem na otočku. Ve vlaku byl strašně špatný internet, takže jsem cestou tam nic neudělal, ale viděl jsem se aspoň na oběd rychle s kamarádem.

Bolest šla opravdu od zubu, který umřel, takže mi to opravili a jel jsem zase zpátky.

Dítě si mezitím v klidu lebedilo v břichu, takže z toho žádné drama nakonec nebylo, ale samozřejmě jsme byli trochu na trní, co by se stalo, kdyby se něco stalo v době, kdy jsem byl zrovna na cestách.

Čekání na miminko v práci

Než přišlo mimino na svět, neměl jsem moc motivaci rozjíždět nové věci. Na to, abych dotáhl AI evaly na junior.guru jsem neměl vůbec náladu, ale bral jsem to jako prerekvizitu k dalším úkolům, takže jsem se mentálně zasekl a prokrastinoval jsem to a dělal spíš věci pro Apify.

V Apify jsem si procházel různé issues na dokumentaci a v Akademii a zkoumal, co by se dalo jak předělat, a s pomocí AI agentů jsem vytvářel nějaké analýzy a proof of concept Pull Requesty.

A pak to přišlo, a mimino se narodilo!

Miminko!

Bylo to jiné, než poprvé. Věděl jsem už, do čeho jdeme. A zároveň se člověk teď staral i o to dítě, které už měl, takže se všechno dělo v menším klidu a tak nějak paralelně.

Svět se mi zastavil jen na chvíli, v den porodu. Babička pohlídala dceru, takže jsem mohl být na místě a stejně jako minule, i tentokrát jsem plakal štěstím, když jsem toho čtyřapůlkilovýho drobečka uviděl.

Drama se nám nevyhnulo, ale nakonec vše dobře dopadlo a všichni jsou zdraví. Nadstandard na novorozeneckém na nás vyšel, a rozhodně se vyplatil. Babička nám hodně pomohla, ať se starostí o dcerku v době porodu, nebo potom s miminkem.

Nic jsem s nikým nezapíjel, nebyl čas a síla. Staral jsem se od rána do večera naplno o dceru. Žongloval jsem při tom všelijaké pocity a do toho asi i nedostatek spánku, a když jsem si jeden večer dal večer v obýváku jedno pivo, ani mi z něj nebylo dobře.

Vyšlo to na víkend, ale dceru jsme pak nechali ještě pár dní doma, aby měla víc prostoru se sžít s novou situací, než začne zase chodit do školky. V Apify jsem dostal dva týdny otcovského volna, a v junior.guru jsem si to volno prostě vzal.

Všichni jsme doma byli v jednom kole, ale postupně jsme si našli nějaký rytmus. A vypadalo to, že dcera to zvládá dobře.

Jak jsem měl volno, tak jsem se snažil dělat, co bylo potřeba. Hlavně vařit, nakupovat, vozit dceru do školky a zpět, koordinovat ještě poslední řemeslníky na bytě, přeorganizovávat toky financí na našich účtech, vymýšlet a realizovat zábavu pro dceru, sehnat a doručit děkovné dary pro porodníky, pomáhat s prvními návštěvami miminka u pediatry, sehnat koš na plíny, a tak.

Do toho jsem se snažil nepracovat, ale když jsem zjistil, jak jednoduché je poštvat AI agenty na nějakou práci, a pak to za půl dne sklidit, tak jsem tomu nedokázal odolávat a vylepšoval jsem postupně různé věci na junior.guru.

Miminko buď spalo, nebo chtělo mlíko, takže tam jsem moc nepomohl, a vznikaly občas volné chvilky. Navíc se mi ze stresu udělal opar na rtu, a s oparem se k miminku nesmí, takže jsem si ho několik dní raději ani nechoval, aby na něj něco nepřeskočilo.

Počasí nebylo nic moc, nebo jsem se zrovna necítil fyzicky úplně ve formě, tak jsem se bavil tím, že jsem začal vibekódovat svou vlastní appku na prohlížení fotek. Nativní, macOS, využívání vestavěných on-device AI funkcí macOS… a jen jsem čuměl, co vše je dnes možné a jak rychle.

A když už jsem se hrabal ve fotkách, vytvořil jsem si i automatické stahovátko fotek ze školkové aplikace „Naše MŠ”.

Doprava na Praze 3

Protože narození miminka nepřinese do života dost nových starostí, ve stejnou dobu začala oprava tramvajové trati na Jana Želivského a její napojení na nově budovanou trať na Nákladové nádraží Žižkov.

Věděl jsem, že se to bude dít, ale nevěděl jsem, že nás to prakticky úplně odřízne od zbytku Prahy, protože se křižovatka Ohrada stane absolutně neprůjezdnou – nejen pro tramvaje, ale ani pro auta, a už vůbec ne pro náhradní autobusovou dopravu.

Což o to, já bych si nějak poradil, ale s děckem je to prostě zabité. 3,3km do/ze školky nám od dveří ke dveřím trvá 1h a je to tak na 3 přestupy. Už jsem vyzkoušel asi 3 způsoby, jak se výlukám vyhnout, ale jsou všude a cokoliv, co má kola, uvízne v zácpě.

Žiju v širším centru města, ale nejsem schopen se s děckem dostat na druhou stranu čtvrti. Na kole to taky nejde, protože se musí vše objet a je z toho 6km s kopcema, což už je na pětileté děcko každý den dost (tam a zpět, takže 12km denně).

Nejvtipnější je, že jsme chodili do školky pěšky, ale stěhovali jsme se, no na poslední rok jsme ji nechtěli přesouvat jinam, má dobrý kolektiv a všechno. Jinou školku máme 1 minutu od domu. Před ní je sice taky teď v zemi díra s bagrem 😆 ale dá se tam dojít 😆

Jeden rok dojíždění. Říkal jsem si – bude to opruz, ale to zvládneme, to je v klidu. No ne, je říjen a už nám tu trasu stihli dojebat třikrát jinak a teď už teda nadobro.

Marnost, bezmoc. Do prosince 🙈

Museli jsme začít vstávat o hodinu dříve, v šest. Abychom byli ve školce 8:30. Je to úplně na palici. Strašně mě to na začátku frustrovalo a úplně mi to sebralo vítr z plachet.

Musím jít spát ve 22h a ideálně bych měl i dřív, jinak jsem ve spánkovém deficitu. Musím vstávat v 6h. Trávím dvě hodiny denně v MHD, se všelijakýma nepředvídatelnýma věcma. Začnu pracovat kolem 9h. A ať už vyzvednu dítě skoro kdykoliv, nelze se skrze zácpy dostat zpět domů ani z jednoho směru, takže dojedeme akorát tak na večeři. Pak koupat, uspat. Z pokoje vylezu ve 21h, zbývá mi jedna hodina na ostatní život.

Ženu a mimino skoro nevidím a oni skoro nevidí nás. Míjíme se, posíláme si vzkazy. A s přicházejícím listopadem nám tma už snědla jak ráno, tak odpoledne.

Kde je moje město krátkých vzdáleností? Není. Bez auta se tu žije krásně, ale jen do chvíle, než cestu ucpou lidi s autama 🔥

Útěchou je, že dcerka si tenhle rok ve školce fakt užívá kolektiv, dělá si tam víc kamarádů a vidím, že nechat ji tam rozhodně mělo smysl a nese to ovoce…

Pokud jste tuhle část poznámek dočetli až sem, tak dík, že jste si přečetli můj rant, ale raději mi nic neraďte 😆 Pokud byste měli fakt velkou tendenci mi něco poradit, tak si nejdřív projděte komentáře na Mastodonu, protože je velká šance, že všechno, co mi chcete poradit, už mi někdo poradil.

Jestli mi chcete pomoct, tak nejlepší bude, když mě prostě jenom pochudáčkujete.

Prosinec se blíží, snad to nějak do té doby přežijem. Rekonstrukce Seifertovy má být až 2027 v létě, takže v druhém pololetí už nás snad žádná zrada nečeká a tenhle jediný dojížděcí rok dojezdíme pak už v klidu.

Volby

Žena chtěla volit, ale nemohla, protože byla v porodnici. Do porodnice by urnu donesli, ale protože v komunálních volbách se musí volit v městské části a porodnice je asi 100m od hranic městské části, tak volit prostě nemohla. Skvělý systém 🫠

Komunální volby jsem tentokrát vnímal spíš jako šum na pozadí, než něco, o co mám čas se velmi zajímat, nebo čeho se nedej bože aktivně účastním, ale zašli jsme s dcerou hodit lístek, to jo. Aspoň si prohlídla školu, kam by mohla možná za rok chodit.

Z výsledku voleb na Praze 3 mám smíšené pocity. A ještě teda uvidíme „kdo s kým” vlastně. Podle mých informací nechce TopSTAN vládnout sám, i když by mohl, ale žádná koalice dohodnutá zatím, pokud vím, ještě není.

Druhá půlka první půlky šestinedělí

Jak jsem naznačil už výše, druhá půlka první půlky šestinedělí je pro mně zatím ve znamení zápasu s dopravou a nemožnosti si nějak kvalitně odpočinout od starostí a povinností.

Nastoupil jsem zase do práce, ale týden mi rozsekl státní svátek, takže v první půlce týdne jsem se v tom nějak plácal, a v druhé půlce jsem to zase přehnal a čuměl do toho přisátý na AI agenty, bez přestávky celý den v kuse.

Jak jsem celý den pryč, tak ani s miminkem moc nepomůžu a neužiju si ho. S prvním dítětem jsem ještě pracoval z domu, takže jsem se o něho sem tam postaral, něco podal, pomohl, vyrazil s kočárkem.

Teď jsem s kočárkem zatím jel jen jednou. A vracet se z města přes den zpět domů, pracovat z domů, a pak jet zase do školky je kvůli dopravě časově velmi nepraktické, takže žena bývá celý den sama doma.

Do toho nastoupil u dcery koktejl pocitů spojený s příchodem sourozence a jak jsme předtím byli dobří parťáci na jedné vlně, tak teď se mi začala několikrát za den proměňovat v princeznu Nene a různě implodovat. Snažili jsme se jí být oporou, ale některé situace… se asi prostě musí jen vydržet.

Cítil jsem na sobě už velké opotřebení a klesající životní elán, ale baterky jsem si dobít neuměl. Do kina večer nemůžu, protože se starám o dceru a do sauny se mi zatím utrhnout nepovedlo, takže jsem odpočinek nějak lepil po večerech, čuměním do počítače. Což moc nefunguje.

Nakonec jsem díky babičce, která to vykryla, odjel na návštěvu ke kamarádovi na druhou stranu města, snědl jsem mu jídlo, vypil pivo, zahráli jsme si hru, prokecali jsme noc a přespal jsem u něj na gauči, což můj mozek vyhodnotil jako osvěžující dobrodružství a teď jsem zase veselejší.

Taky jsem si zkusil jít o víkendu s dcerou zaběhat (ona jede na kole) a to bylo taky fajn, i když první půlku cesty teda prožvanila jak rádio a já se marně snažil přenést mysl někam mezi krásu a barvy listí podzimního lesa.

Teď mám pocit, že i já, i ona, jsme v tomto týdnu naladěni lépe a třeba už to bude celé nějak lepší. Ještě to vydržet do prosince s tou dopravou a snad bude pak zase prostor trochu dejchat a zvládat i trochu víc, než jen to nejnutnější.

Pyvo končí

Je to smutné, ale je to tak. Po patnácti letech končí Python sraz v Praze, Pražské Pyvo. Ne kvůli AI – ostatně v Brně jsou teď srazy dokonce dva: Brněnské Pyvo a Nepyvo.

Končí kvůli tomu, že na to stávající organizátorský tým nemá energii a nenašel se zatím někdo další, kdo by to převzal. Pár srazů už se vynechalo, a na 16.12. se na tradičním místě plánuje poslední, rozlučkové Pyvo. Není to ještě úplně potvrzené datum, ale mám to z dobrého zdroje. Přijďte a rozlučte se! Nebo přijďte a ukažte záblesk chtění organizaci převzít a vdechnout srazu nový život.

AI agenti všude, kam se podíváš

Čím vytíženější byl můj život, tím víc jsem šel all-in do AI agentů. Myslím, že jsem ve výsledku za říjen nenapsal ani jeden řádek kódu ručně.

Vůbec se mi už ani nechce. Nevidím důvod, proč bych to dělal. Rozlišuji projekty na ty, kde mi na kódu záleží, a na ty, kde mi na něm nezáleží. Když záleží, tak si dávám tu práci, že udělám review a snažím se zabránit blbostem.

Když nezáleží, tak to tam mažu jak to přichází a soustředím se jen na výsledek. Hobby projekty jsou druhý případ, protože jsem je vždy dělal z radosti, že mám výsledek, a ne proto, abych si ve volném čase zaprogramoval.

Nejsem člověk, který touží programovat. Jsem člověk, který touží tvořit. A s AI mohu tvořit úplně úžasné věci jako mávnutím kouzelného proutku.

Hodně to posunulo moje vnímání toho, jak se teď dá dělat software. Snažím se přemýšlet nad tím, co to vlastně všechno do budoucna znamená, ale než to vymyslím, jezdím každý den na tygrovi – na svém Claude Pro předplatném, a ždímu ho do dna.

Třeba z tygra jednou spadnu a sežere mně, ale to teď neřeším.

Přechod na Apple Mail a Apple Calendar

Jak jsem psal minule, mám teď nově MacBook Air M5 s 32 GB RAM a při té příležitosti jsem zkusil přestat používat webové verze Gmailu a Google Kalendáře, jako první krok směrem od Googlu pryč.

Vzalo si to ještě nějaké nastavování. Na macOS šlo aliasy pro e-mail nastavit docela snadno, byť to bylo zahrabané v menu, ale na iOS to nešlo vůbec, a to mohl být velký problém. Povedlo se mi to ale obejít. Přidal jsem si Gmail jako IMAP/SMTP účet a ne Google účet, a tam už to pak nějak nastavit šlo.

No a když jsem tohle vyladil, tak už to bylo OK. Některé funkce jsem oželel, a prostě jsem si zvykl. Některé UI je sice příšerné, ale prostě jsem si zvykl.

A najednou je první krok za mnou. Smazal jsem appku s Gmailem a Google Kalendářem z telefonu. Sice data jdou stále z Googlího serveru, ale to si nechám zase na jindy. Pro přechod se v delším horizontu nabízel Proton, ale tam je to teď nějaké moc divoké 😅

Zkoušení lokálního LLM

Když už mám lepší notebook, zkoušel jsem si na radu Aleše rozchodit v LM Studio lokální qwen/qwen3.6-35b-a3b, MoE přes MLX. Nevypadá to jako úplná blbost. Je to pomalejší než Claude, ale je to zadarmo 😀

Pokud chcete vědět, co by vám jelo lokálně a jak rychle, použijte canirun.ai, řekne vám to.

junior.guru a SEO

Síla AI se pozná nejvíc tam, kde já neumím nic. Možná to udělá průměrný nebo mírně chybný výsledek, ale pokud je to lepší než nic, vyplatí se to. Takže jsem nechal AI udělat SEO analýzu junior.guru a z toho vznikla hromada věcí, které bych mohl udělat. Některé jsem už i udělal.

Začal jsem tím, že si stahuju automaticky data z Google Search Console, abych tu analýzu mohl dělat opakovaně. Aby k těm datům měl přístup agent. Taky jsem přidal skill na to, aby věděl, že má k dispozici přes API data ze Simple Analytics. Já jsem na čísla a grafy levej, takže ať si to hezky čte AIko a říká mi, co mám dělat. (junior.guru#1822, junior.guru#1821)

Vylepšil jsem titulky stránek, na které se v Googlu málo kliká. Doplnil jsem unikátní popisky stránek. Zrušil sitemap.xml, kterou jsem myslel, že nemám, ale měl jsem, a která byla celá špatně. Zrušil jsem strukturovaná data u inzerátů, která byla špatně a neměla žádný efekt. (junior.guru#1883, junior.guru#1884, junior.guru#1891, junior.guru#1826, junior.guru#1827, junior.guru#1833, junior.guru#1838, junior.guru#1840, junior.guru#1844, junior.guru#1885, junior.guru#1905, junior.guru#1824, junior.guru#1828, junior.guru#1829, junior.guru#1831, junior.guru#1843, junior.guru#1906, junior.guru#1907)

Přidal jsem novou stránku Stáže, brigády a částečné úvazky, protože lidi tohle hledají v Googlu a junior.guru je nemělo kam poslat. Zlepšil jsem detekci stáží i podle názvu inzerátu a opravil pár chyb z dřívějška. (junior.guru#1896, junior.guru#1895, junior.guru#1901, junior.guru#1902, junior.guru#1932, junior.guru#1830, junior.guru#1893, eggtray#469)

Opravy a refactoring JavaScriptu na nabídkách práce a kandidátech

Přemýšlel jsem, že než se začnu nějak víc rýpat v pracovních nabídkách nebo kandidátech na webu, tak by bylo dobré otestovat tamní chuchvalec vanilla JavaScriptu. A možná přepsat do Alpine.js, ať to není chuchvalec. Tak jsem to nejdřív nechal celé pokrýt testy. U toho AI objevilo asi milion chyb, tak jsem je nechal rovnou opravit. Pak jsem teda chtěl udělat ten refactoring na Alpine.js, ale AI mi to rozmluvilo a já souhlasil, že když ten kód stejně nepíšu já, tak bude stačit ten vanilla JavaScript, akorát rozsekaný do víc souborů a nějak slušně napsaný. To mám ale ještě rozdělané. (junior.guru#1786, junior.guru#1789, junior.guru#1794, junior.guru#1795, junior.guru#1796, junior.guru#1797, junior.guru#1798, junior.guru#1799, junior.guru#1800, junior.guru#1801, junior.guru#1802, junior.guru#1803, junior.guru#1804, junior.guru#1805, junior.guru#1898, junior.guru#1961, junior.guru#1962)

junior.guru/jobs a opravy scraperů

Pořád se něco rozbíjelo a pořád to souviselo se scrapery, takže jsem na to nahnal AI a bylo vymalováno.

Jobs testují novou verzi webu a můj scraper se k němu občas dostal místo toho starého, což způsobovalo výpadky. Taky se něco změnilo u dedikovaných kariérních stránek firem. Opravil jsem to všechno a celý scraper jsem nechal vyladit tak, aby byl rychlejší a spolehlivější. Pak mi padaly namátkové kontroly, jestli je inzerát ještě platný. Pak mi padalo stahování log firem pro inzeráty. No pořád prostě něco padalo. Opravil jsem. A u toho jsem opravil ještě hromadu nalezených chyb, o kterých jsem ani nevěděl. (plucker#180, plucker#181, plucker#184, plucker#185, plucker#186, plucker#187, plucker#188, plucker#194, plucker#196, plucker#197, plucker#202, plucker#203, plucker#210, plucker#211, plucker#218, plucker#219, plucker#220, plucker#221, junior.guru#1934, junior.guru#1935, junior.guru#1936, junior.guru#1966, plucker#191, plucker#208, plucker#212)

Aby toho nebylo málo, řekl jsem si, že když je teda s AI možné všechno, tak že můžu lusknutím prstu přidat konečně Profesiu, na kterou si dělám zálusk asi už tak pět let nebo kolik. No lusknutím prstu to nebylo, ale mám to. Dlouho se ladilo, aby se správně rozpoznávaly slovenské lokality, typy úvazků, nebo práce z domu. Na Apify to zpočátku padalo, takže i tady bylo co opravovat. (plucker#178, plucker#213, plucker#214, plucker#215, plucker#217, plucker#222, junior.guru#1871, junior.guru#1873, junior.guru#1880, junior.guru#1881, junior.guru#1967, junior.guru#1971, junior.guru#1861, junior.guru#1862, junior.guru#1863, junior.guru#1864, junior.guru#1825)

Vylepšení seznamu kandidátů a infrastruktury kolem

Když teď někdo pošle pull request se svým profilem kandidáta, hned dostane zpětnou vazbu. Dříve si mohl přidat profil, ale kontrola proběhla až v noci, takže se až dodatečně dověděl, že se ve skutečnosti nekvalifikuje do seznamu. Tahle funkce vůbec nebyla triviální, a to ani s AI agentem. Samotnému by mi trvala udělat nekonečně dlouho. (eggtray#479, eggtray#481)

Když už jsem byl v téhle části kódu, udělal jsem i věci, které tam dlouho trčely a nebyl na ně čas. Teď například nemohou lidi upravovat cizí profily. Nikdy to nebyl problém, ale mohl by být 😅 (eggtray#480, hen#151)

Taky se snažím přidat rozpoznání toho, když junior přispívá do cizích repozitářů. Nějak kvalitně, ne slop. Co to znamená kvalitně je zatím předmětem uvažování. (hen#153)

Všechno kolem jsem převedl na Python 3.15, jen samotné junior.guru ještě čeká na jednu knihovnu. (eggtray#477, chick#174, chick#175, plucker#201, hen#154, eggtray#485, junior.guru#1947, junior.guru#1948, eggtray#478)

Obsah a údržba junior.guru

Povedlo se domluvit nového sponzora! Logical najmul juniora z klubu a rozhodli se, že pošlou nějaké peníze. Při té příležitosti jsem změnil, jak sponzorství efektivně funguje – stačí jakékoliv sponzorství a loga se zobrazí všude. Zbyli mi totiž už jen čtyři sponzoři, a čtyři je tak akorát i na příručku. (junior.guru#1870, junior.guru#1875)

Měl bych kontaktovat Red Hat a ENGETO a vyjednávat o dalším roce, ale s miminem na tohle nebyl vůbec čas a energie, takže jsem jim to zatím na chvíli prodloužil jen tak a ozvu se později. (junior.guru#1909, junior.guru#1960)

Pár kurzů šlo na hřbitov, včetně věhlasného pana Andrew Sharpa. (junior.guru#1959, junior.guru#1963, junior.guru#1969, junior.guru#1970)

Opravoval jsem rozbité odkazy, přidával informace k plánovaným přednáškám, opravoval malé bugy. (junior.guru#1916, junior.guru#1924, junior.guru#1925, junior.guru#1944, junior.guru#1958, junior.guru#1929, junior.guru#1780, junior.guru#1882, junior.guru#1904)

junior.guru software factory

Když jsem podesáté posílal rozbitý build agentovi, aby se podíval, kde je chyba, a poslal PR s opravou, napadlo mně, že by se na to mohl dívat sám. A začal jsem si na koleni vytvářet malou AI software factory.

Pull requesty mi teď reviewuje Claude přímo na GitHubu, Rabbit jsem vyhodil. Když v noci spadne build, automaticky se založí issue. Jednou týdně se issues procházejí a zavírají se ty, které už nejsou relevantní. A agenti dostali jasnější pravidla, jak pracovat s gitem a pull requesty. (junior.guru#1790, junior.guru#1791, junior.guru#1852, junior.guru#1888, junior.guru#1890, junior.guru#1899, junior.guru#1938, plucker#195)

Největší problém teď vidím v tom, že tenhle setup mám jen někde. Potřeboval bych ho vlastně na všech repozitářích, kde něco dělám. Ale než budu řešit, že to chci mít všude, tak nejdřív musím vyladit ten proces. Už teď je mi jasné, že tohle je jen začátek.

Taky mi vadí, že mám kvůli agentům přes den hodně roztříštěnou pozornost a večer chodím domů úplně vyšťavený. Nastudovávám si, jak bych mohl ten proces nadesignovat, vyladit a nastavit tak, aby

  • to mělo nějaký řád, proces, systém, (superpowers?, spec-kit?)
  • abych nevynalézal kolo, pokud už jsou v tomhle jiní lidi napřed,
  • aby čas mezi zadáním úkolů a sklizní byl aspoň 60min,
  • abych se mohl spolehnout na to, že výsledný kód nebude chuchvalec, a to ani v případě, že čistě vibekóduju a na kód vůbec nekoukám,
  • aby odpadlo nesmyslné motání se v GitHub Pull Requestech a jejich reviews,
  • abych do toho případně mohl zapojit i lokální modely a nebylo to jenom pro Claude, nebo aspoň střídat Claude a Codex, (T3 Code? Qwen?)
  • a tak dále…

Musím to nějak vymyslet, abych mohl efektivně pracovat na junior.guru, na Apify, na hobby projektech a na případných nových projektech.

Potřebuju, aby to nějak fungovalo, abych si u toho mohl zachovat mentální zdraví, protože přepínat v hlavě kontext a pozornost co 5 min nemůže být cesta vpřed.

Spíš si představuju něco, kam naházím 50 úkolů, nechám to jet přes noc (agent-rewake?), klidně i na pomalejším, lokálním modelu, a ráno udělám sklizeň. Pak tam zase naházím úkoly, půjdu dělat něco jiného, a pak za nějakou dobu zase udělám sklizeň.

Úvahy co dál

Měl jsem v soukromých poznámkách pár úvah, kterým jsem se chtěl pověnovat a případně se jimi na junior.guru zabývat. Byly to vždycky tak čtyři slova v odrážce. Tak jsem si řekl, že někde v mém seznamu nemají hodnotu, že z nich udělám issues na GitHubu, které můžu předhodit jako úkoly agentovi.

Každou úvahu jsem hodil do nové session v Claudovi a přidal něco jako „udělej na tohle téma deep analysis, zvaž výhody, nevýhody, rizika, příležitosti… a vytvoř na to issue". Co s příručkou, když návštěvnost z vyhledávání sežrala AI? Jak předělat newsletter? Jak lépe nabízet klub kandidátům, lidem, kteří se hlásí na inzeráty, nebo absolventům kurzů? Nebo jak ušetřit na Discordu? (junior.guru#1953, junior.guru#1950, junior.guru#1951, junior.guru#1952, junior.guru#1954, junior.guru#1956, junior.guru#1836, junior.guru#1835, junior.guru#1965)

Jak ušetřit na Discordu bude rozhodně něco, čemu se teď budu prioritně věnovat, protože někdy v prosinci přijde platba na další rok a zjistil jsem, že když udělám pár drobných omezení v klubu, zaplatím o skoro 5.000 Kč ročně méně.

Nejvíc mi teď ale vrtá hlavou, co s junior.guru dál tak nějak obecně. Rozhodl jsem se, že si s pomocí agentů projdu všechno, co mám, a udělám si nějakou analýzu a pak nějaký jasný plán. Poslední plán.

Pracovní název je JARO. J znamená junior.guru a ARO znamená anesteziologicko-resuscitační oddělení, tedy místo, kde jde do tuhého, a kde se zachraňují životní funkce. A taky to znamená jaro. Roční období. Pokud se mi s junior.guru do jara něco nepovede udělat tak, aby se změnil trend, tak bude konec.

Očekávám, že můj JARO plán bude asi tak příjemný, jako zubní pohotovost nebo odvoz sanitkou. Není ale možné pokračovat v tom, čím bylo junior.guru doteď. Má každoroční propad -30 % a pokud nechci udělat nějaké radikální řezy a otočky, tak to můžu zabalit rovnou.

Pro JARO nic nebude svaté, protože jde o život. Když se zlomí žebro, ale pacient bude dál dýchat, tak je to dobrý výsledek.

Práce pro Apify

Na úvodní stránku Akademie konečně přibyl AI kurz, na kterém jsem předchozí měsíce dělal, a to dokonce i s obrázkem od designérů. Všiml jsem si, že na úvodní stránce není uvedený (z neznámého důvodu) kurz scrapování s prohlížečem, tak jsem pro něj taky poptal obrázek a přidal ho tam. (apify-docs#3140, apify-docs#3142, apify-docs#3145)

Starý kurz programování scraperů v JavaScriptu bych teď chtěl už odstranit, ale to bude ještě oříšek, protože je zamotaný do jiných kurzů. Budu se snažit postupně sekat hlavy této saně a přibližovat se k výsledku krůček po krůčku. (apify-docs#3123)

Jednou takovou hlavou je starý kurz pro pokročilé. Vychází z ukázkového scraperu Amazonu, který byl rozbitý, tak jsem ho opravil a aktualizoval, aby vycházel ze současné šablony pro Actory. Teď k tomu potřebuju přizpůsobit i samotné lekce. Při tom jsem navíc narazil na pár dalších problémů. (apify-docs#3137, apify-docs#3122, apify-docs#3120, apify-docs#3121, academy-amazon-scraper#1, academy-amazon-scraper#2, academy-amazon-scraper#3)

Co se týče dokumentace jako takové, na podnět svého team leadera jsem ještě před otcovským volnem navibekódil změnu způsobu stránkování. Bylo to OK, takže jsme to dnes mergnuli. Taky jsem ladil a přidávám do repa AI skill pro agenty, který pomáhá s tvorbou SVG obrázků. Umí sloučit světlou a tmavou verzi do jednoho SVG, které se pak automaticky přizpůsobí světlému nebo tmavému režimu. (apify-docs#3051, apify-docs#3141)

Jinak opravy a pár reviews pro kolegy. (apify-docs#3143, apify-docs#3052, apify-docs#3053, apify-docs#3124)

Práce pro Python komunitu

Na docs.pyvec.org jsem dělal hlavně údržbu. Aktualizoval jsem závislosti a opravil rozbité odkazy, které našel link checker, včetně odkazů na starou Python wiki, která už nefunguje. (docs.pyvec.org#589, docs.pyvec.org#591, docs.pyvec.org#593)

Pak jsem s pomocí AI agenta vyřešil pár starých issues. Třeba jak se v dokumentaci odkazuje na GitHub. Místo dvou vlastních rozšíření pro Sphinx teď stačí vestavěné extlinks a na profily i repozitáře jsou jednotné zkratky. (docs.pyvec.org#592, docs.pyvec.org#594, docs.pyvec.org#595)

Dokumentace pořád používá sphinx_rtd_theme, který je už v podstatě mrtvý, takže by to chtělo přejít na něco jiného. Zatím jsem to ale dal jen do issue, k zamyšlení. (docs.pyvec.org#590)

Osobní projekty

Stahovátko fotek ze školky, nasems, už jsem zmiňoval.

Udělal jsem si pak další udělátko, flush-ai. Je to bookmarklet, který v ChatGPT, Claude nebo Claude Code smaže všechny konverzace kromě připnutých. Používám to tak, že jednou za čas jdu, a prostě tímhle tlačítkem spláchnu vše, co jsem do AI chatů zadal, abych jim tam nenechával svoje data jen tak ležet.

Je pouze otázka času, kdy bude pro tyhle firmy, které jsou v nekonečných dluzích, příliš lákavé, že mají na serverech hromady uživatelských dat, a začnou je nějak monetizovat. Buď začnou dělat reklamní profily, nebo je někdo koupí… Takže to takhle aspoň mažu a říkám si, že když jsem v EU, možná to smazání bude mít i nějaký význam a ty věci se opravdu smažou. (flush-ai#1, flush-ai#2, flush-ai#3, flush-ai#4, flush-ai#5)

Do kina, tedy mého kalendáře s promítáními v oblíbených kinech, jsem přidal ještě jeden kalendář. Ten ukazuje jen filmy, které v pracovní dny skončí nejpozději ve 15:45, a vynechává pohádky. Nemám teď možnost chodit do kina večer, tak budu sledovat, jestli něco není přes den, a pokud by bylo, utrhnu se z práce a zajdu si. Nabídka ale zatím nevypadá příliš valně. Kromě toho jsem opravil Aero, protože se tam ztrácely filmy, které nejsou v programu na ČSFD. (kino#104, kino#108, kino#110)

Další

  • Vydali jsme rozhovor s bubeníkem Tomášem. Rozhovor si přečetli u něj ve firmě, takže jsem byl brzy po vydání svědkem asi nejvtipnějšího diffu v Pull Requestu za poslední dobu 😂
  • Žádnou zapíječku mimina, ani kolaudaci bytu jsme zatím neměli, ale pár návštěv už jsme stihli. Kromě babičky, kterou nepočítám (ta je u nás teď vařená pečená - naštěstí!), se u nás zastavila jedna kamarádka, jedna rodinná návštěva, a jedna laktační poradkyně, kterou proplatila VZP. Rodinná návštěva si vzala v pátek dceru dokonce na starost, přidala ji ke svým dítkům, a vyrazili do Národního technického muzea, takže paráda – že do toho šli, a že to i ona takhle zvládla a užila si to.
  • S tou babičkou, se kterou se nevidíme tak často, jsme našli způsob, jak může dceři nahrávat čtení pohádky na dálku, a bylo to super. Máme takhle za sebou už celou „Za pohádkou s vodníkem Leknínkem”.
  • Žijeme doma mým znovuobjevem písniček z kazety Šmoulí-Super-Disko-Šou. Šmoulinka vaří makarony, Jája je v koutku žumpy, brannej den zocelí modré tělo tvé, je to párty. A zkouším do našich playlistů nově namíchávat i Kašpárka z Rohlíku, ohlasy to má dobré.
  • Šli jsme s dcerou před dům, vyhřívat se na sluníčko, na lavičku, a najednou přišel štáb s kamerami, zvukařem, produkční, a tak dále. Stali jsme se svědky natáčení Vychytávek Ládi Hrušky! A ta epizoda už je dokonce venku! Můj report z natáčení si můžete přečíst na Mastodonu. (Že jde o Láďu Hrušku jsem si uvědomil až v momentě, kdy držel kufřík s poštou, na kterém byla samolepka s nápisem Láďa Hruška.)
  • Zkouším StartPage místo DuckDuckGo, ale zatím si nějak nemůžu zvyknout.
  • Buttondown mi omylem naúčtoval bambilión za provoz newsletteru, ale přes support jsme to vyřešili a platím teda jen pár dolarů 😅
  • Chtěl jsem se s dcerou dívat na Byl jednou jeden král..., ale je to na ni ještě dlouhé, takže jsem to chtěl rozdělit na půlku. Normálně bych si hrál s ffmpegem a vymýšlel, jaké parametry potřebuju. Takhle jsem na to poslal AI a mám teď skill, který zhodnotí video, podle toho pustí správně ffmpeg, a bez překódování přidá za první půlku minutu s fade-outem a před první půlku pár minut (pro připomenutí) s fade-inem. Můžu teď na půlky rozsekat cokoliv, a dokonce na pěkné, koukatelné půlky!
  • E-maily, klubový Discord, Apify Slack a další pracovní režie, Pyvec Slack, zprávy na LinkedIn. 62 upgradů závislostí na všech projektech.

Plánuji

  1. Sepsat si, co bude znamenat JARO.
  2. Začít pracovat na drobných omezeních Discordu.
  3. Po kouskách pracovat na Retire the archived Web scraping basics for JavaScript devs course.

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:

  • Parkoviště jako fotovoltaická elektrárna. V Liberci otevřeli největší carport v Česku - Zdopravy.cz
    Cool! Hele já taky ty větrníky dvakrát nemiluju, ale beru to tak, že lepší větrník než komín, a lepší závislost na přírodě než na Rusku a Kataru. Nicméně pokud teda větrníky nejsou průchozí, klidně ať Turek nad každé parkoviště postaví tohle a já s tím budu v pohodě. Autíčka ve stínu a pod stříškou, elektřina pro 600 domácností, win-win, ne?
  • Herec, rebel a levicový člověk – Bořek Slezáček - YouTube
    Tohle je rap pro moje uši. Odkaz je na konkrétní čas, kde to začíná.
  • Proč se Praha nedá řídit: 8 zastavení na křížové cestě pražskou komunální politikou | Reflex.cz
    Praha v kostce: „Když politik A kandiduje s tím, že udělá na nábřeží alej a pěší zónu a politik B s tím, že alej vykácí a přidá tam dva pruhy a parkování, tak musí mít politik A i B možnost to zrealizovat. A pak být po zásluze znovuzvolen (a nebo nahrazen). Současný stav ale vede k tomu že ani politik A, ani politik B, nemůže prosadit co slíbí, což vede ke frustraci, stagnaci a ztrátě důvěry v demokratický systém a jeho schopnost věci posouvat a řídit.“
  • Sabotáž a zbabělost v Praze
    Udělal jsem si volební kalkulačku pro Prahu a překvapilo mě, že snad polovina otázek mi byla úplně jedno. Furt se tam něco točilo o komunismu, vyvěšování vlajek a nějakých dalších nesmyslech, které nemají na každodenní život ve městě žádný vliv. Výsledky mě taky překvapily, protože byly poměrně vlažné vůči tomu, co bych chtěl. A co bych chtěl? Tohle!