Týdenní poznámky: Odpočívání, přednášky, uzdravování, stáž a experimenty

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 (10. 11. až 1. 12.), tak nastal čas se opět ohlédnout a utřídit si myšlenky.

Poznámky
Fotil Markus Spiske

Po třech týdnech konečně zase poznámky. Budu tady popisovat pouze věci, které nesouvisely s Týdnem pro Digitální Česko, protože ten jsem detailně popsal v předchozím článku Týden pro Digitální Česko z pohledu partnera.

Jak jsem naznačoval v předchozích poznámkách, potřeboval jsem teď co nejvíc umenšit stres. Takže jsem začal dělat věci co nejvíc s mindsetem, že je všechno jedno. Zrušil jsem na sebe veškeré nároky, nechodím na žádné akce, snažím se nikomu nic neslibovat. Přestal jsem si cokoliv plánovat a cokoliv od sebe očekávat. Myslím, že jako mávnutím proutkem, hromada toho stresu okamžitě zmizela. Je to krásné.

Hodlám v tom pokračovat minimálně do konce roku. Mohl bych si vzít dovolenou, ale myslím, že to není potřeba, protože tenhle režim je docela pěkný. Dává mi to i odstup. Najednou vidím, jak jsem na sebe byl přísný a jak jsem od sebe vyžadoval strašně moc. Jak jsem z věcí, které byly všem jedno, dělal ve své hlavě věci, které jsou extrémně důležité.

Myslím, že se moje rozpoložení hned projevilo na tom, jak jsem si užil poslední dvě online akce v klubu a další věci. Na přednášku s Karolinou se třeba ze začátku nepřipojil Tinuki, který to měl nahrávat. Nevěděl jsem, kde je, ale mávl jsem rukou a řekl jsem si, že tím pádem záznam prostě nebude a hotovo. Dřív bych z toho měl strašný stres, teď mi to bylo jedno a bylo to krásné. Tinuki se nakonec připojil a vůbec nic se nestalo 🤷‍♂️

Jinak celou dobu se motám stále v nějakých rýmách a kdo ví čem, takže to uzdravování, to se mi zatím daří jen tak napůl. Těším se, až se jednoho dne probudím a řeknu si „týjo, dneska se cítím skvěle“.

Vylepšování onboardingu

Trochu jsem opět pracoval na vylepšení různých funkcí klubu, které tam jsou hlavně pro nováčky. Začal jsem rozebírat nástěnku a vytvořil postupně několik dedikovaných stránek, které mají stejnou funkci.

Server Guide

Bylo kolem toho celkem dost práce a ladění, obrázky, aktualizace popisu rolí v klubu a tak, ale nějak se mi ani nechce o tom teď víc rozepisovat.

150. Pražské Pyvo

Když mi bylo trochu líp, stavil jsem se na 150. Pražské Pyvo. Tam jsem se nějak nedokázal odtrhnout od jednoho borce. Sice se s ním povídalo hezky, ale nějak mi nešlo to postupně ukončit a povídat si i s dalšími účastníky srazu. Takže jsem opůlnoci zjistil, že jsem to celé prokecal s jedním člověkem, neměl jsem ani dort, a všichni šli už domů. Byl jsem na sebe strašně naštvaný a situaci jsem se jal řešit tak, že si to ještě „nějak užiju“, takže jsem s pár odpadlíky pokračoval do nonstopu a přišel domů až ráno.

Druhý den jsem byl úplně zničený a v návaznosti na to jsem chytil něco na průdušky, takže jsem si pak několik dní celou tu věc samozřejmě vyčítal. Říkal jsem si, že do TDČ se určitě uzdravím, ale úplně se to nestihlo a jak popisuju v příslušném článku, akcí jsem se účastnil ještě trochu nemocný.

Od té doby jsem na žádných akcích nebyl, a ani to neplánuju. Jsem jenom na čajíčkách a kafíčkách, na nic tvrdšího nemám teď vůbec chuť.

Dort
Foto není moje, ale teď si nemůžu vzpomenout, kde a od koho to mám

Stáž

Napsala mi ředitelka PHG, jestli bych nenašel nějaký úkol, který by se dal zadat jako stáž jedné jejich pedagožce. Stáž měla mít 4 hodiny, tak jsem dost zápasil s tím, co ji vlastně nechat udělat, aby to mělo nějaký smysl a zároveň aby se to stihlo.

Pedagožka mi napsala, co umí, pak jsme si ještě zavolali, a nakonec jsme vymysleli, že zkusíme procvičit Git. Nějak jsme to zvládli a teď ve čtvrtek jsem vypsal papíry, aby ta stáž mohla být uznána.

S pedagožkou jsme se dohodli, že provede změnu v kódu reálného existujícího, produkčního projektu. Změna se týkala několika souborů a zahrnovala základní porozumění webovým technologiím, ale hlavním cílem stáže bylo projít si procesem změny v kódu projektu, na kterém pracuje více lidí pomocí Gitu, kde se změny musí navrhnout a schválit, a kde je změna poté poslána na produkci a musí projít všemi kontrolami před tím, než se dostane k uživatelům. Pedagožka potřebovala následující, aby úspěšně splnila cíl stáže:

  • Konzultovat zadání a směrování stáže přes videohovor, případně potom přes GitHub Issues
  • Zorientovat se v kódu reálného produkčního projektu, který už několik let existuje a funguje
  • Pracovat s editorem, profesionálním programem pro úpravy kódu
  • Naučit se, případně si připomenout, jak se pracuje s Gitem, a ovládnout jeho základy
  • Kód reálného projektu si stáhnout, zapracovat v něm požadované změny a navrhnout tyto změny, a pochopit celý cyklus změny na SW projektu
  • Vytvořit si účet na platformě GitHub a naučit se základy práce s ní, s repozitáři kódu, s tzv. Issues, Pull Requesty, atd.

Pedagožka stáž zvládla mistrně. Nemohu cokoliv vytknout po stránce komunikace, spolupráce, provedení, ani proaklvity. Stáž jsme z různých důvodů dokončovali na poslední chvíli před termínem, takže jsme neslhli závěrečnou reflexi. Mohu tedy pouze doufat, že pedagožka byla spokojená i s mým vedením, ale snažil jsem se být ve všech ohledech nápomocný a vše vysvětlit, případně ji navést správným směrem, tak snad ano.

S pedagožkou jsme komunikovali i nad rámec stáže a uvažovali o tom, zda by se na projektu nenašly nějaké další příležitosti pro rozvoj jejích dovedností, při kterých by se třeba dali zapojit i samotní žáci. Projekt má mnoho nekomerčních částí, kde by se možná takové úkoly našly, tak třeba něco najdeme.

Práce s Gitem, orientace v cizím rozsáhlém kódu, provádění změn na open source projektu. Nic z toho není snadné a jsou to dovednosti, které si i lidé, kteří chtějí v oboru pracovat jako programátoři, musí složitě osvojovat. Zároveň jsou to dovednosti, které využije prakticky každý v tomto oboru, bez ohledu na oblast nebo programovací jazyk, kterým se hodlá věnovat. Pedagožka může studentům nyní předat tyto své zkušenosti, nebo je využít ve výuce, např. při týmových projektech, kde by více osob pracovalo na společném kódu.

Jelikož kód byl shodou okolností zároveň i open source, pedagožka si zkusila, jaké to je do open source přispět a jakým způsobem se komunikuje na takových projektech. Díky tomu se jí a případně jejím studentům otevírá možnost podílet se na jakýchkoliv open source projektech světové komunity open source vývojářů, stačí pouze dovednosti, které si osvojila, znalost angličlny, a zvědavost.

Zajímavá zkušenost!

Budoucnost katalogu

Volal jsem si s Engetem a bavili jsme se o tom, co plánují oni, nebo co plánuju já. Nejzajímavější byla diskuze o katalogu kurzů.

Katalog by měl mít nějaké parametry, podle kterých filtrovat, ale ideálně ne jen ty základní. Například to, zda jsou materiály v češtině, většina anotací ke kurzům vůbec neuvádí, přitom je to pro hodně lidí důležité.

Dostal jsem tip, že Tomáš Langer má nějaký systém hodnocení (auditu?) kurzů, který poskytuje jako službu firmám. Má jasnou metodiku, chodí do vzdělávacích agentur, dělají mystery shopping, volají na support, prostě celou tu firmu proklepnou, a pak jí dají nějaké skóre. To je sice spousta práce, ale tu práci teoreticky někdo zaplatí (buď firma, nebo i samotná vzdělávací agentura), protože ten výsledek je velmi hodnotný pro obě strany. Jednak firma ví, kam poslat školit lidi, a kam ne, jednak se agentura může chlubit tím, že je kvalitní, a odliší se tak od ostatních. Je to rozhodně zajímavý dílek do puzzle „kam do budoucna směřovat katalog a jak ho monetizovat“.

Mohl bych udělat třeba to, že vymyslím takovou metodiku a budu ji i „ručně“ realizovat, ale řeknu, že která agentura si to zaplatí, ta dostane hodnocení a top 3 budou v katalogu zvýrazněny a nahoře. Pak budou ty ostatní s hodnocením. Pak bude zbytek. Tím, že je to zaplacené, měl bych mít zdroje na to to zrealizovat, stejně jako když si Michelin nechá platit za to, že recenzuje restaurace a dává je do nějakého průvodce. A tím, že je to nastaveno takto, nemělo by na lidi působit divně, že mi vzdělávací agentury posílají peníze, nebo že si platí někde nějaké zvýraznění, bez ohledu na kvalitu.

Ještě jsem si poznačil Amazing Places, což je nějaký katalog „odzkoušených“ míst. Opět způsob, jak v něčem udělat pořádak a jak to kultivovat.

Studie

Díky zahajovací akci TDČ (viz Týden pro Digitální Česko z pohledu partnera) jsem dostal kontakt na dámu, která zpracovala studii o lidech rekvalifikujících do IT.

Zavolali jsme si a zjistil jsem detaily. Mluvili jsme spolu 2 hodiny, při kterých se mi v hlavě propojovaly neurony sem a tam a kdybych byl příčetnější, dělám si poznámky, až se ze mě kouří.

Zkoumala, co vlastně career switchers řeší a co jim nejvíc pomáhá. Mělo by se to týkat všech věcí, které jsou v příručce, i těch, co tam nejsou. Zatímco já to všechno mám intuitivně a z pozorování, ona má věci podložené daty a má víc do hloubky zjištěné příčiny, následky, apod.

Domluvili jsme se, že mám zájem o výsledky studie a o nějakou další spolupráci. Naplánujeme si hovor, kde mi celou studii odprezentuje a pak vymyslíme, co by šlo dělat dál. Jsem na to velmi zvědavý! Už jen na základě tohoto našeho úvodního rozhovoru mám chuť předělat třetinu junior.guru 😅

Ona měla zase radost, že jsme si zavolali, protože slova „junior guru“ se během zpracování té studie nezávisle na sobě neustále opakovaly z úst různých lidí 😎

Apify - Proof of Concept

Řekl jsem si, že zkusím radikálně zjednodušit kód, který hledá nabídky práce. Jednak bych chtěl třídit s pomocí AI, jednak bych chtěl zjednodušit scrapování.

To první tuším jak chci udělat, u toho druhého mě napadlo, že bych se znova podíval na Apify. Před časem totiž byli na Pyvu a měli tam lightning talk, že přidali podporu pro Python. Tak jsem na to začal koukat a zatím jsem - kromě pricingu, ale to je detail 😀 - nenarazil na žádné zásadní problémy. Dokonce přímo podporují i Scrapy, ve kterém mám svoje scrapery!

  • Přidal jsem se na Apify Discord a hned jsem tam měl pár dotazů. A hned někdo reaguje. Super.
  • Díky studiu jejich kódu jsem zjistil, že existuje nest-asyncio, což by mi mohlo vyřešit spoustu problémů jinde 🤯
  • Vzal jsem si jejich šablonu na Scrapy a udělal repo, kde si s tím hraju.
  • Koukal jsem, že taky nezahálejí, co se týče AI.
  • Prošel jsem si asi pět videí na jejich YouTube, abych nasál, jak ta platforma funguje a co se tam dá dělat. Suprově udělané.

Přijde mi zatím, že by to mohlo jít. Naprogramoval bych scrapery ve Scrapy, takže bych neměl úplný vendor lock-in, a tyto scrapery bych pouštěl v Apify, které by řešilo veškerou infrastrukturu, načasování, proxy, atd. Pak bych ve svém buildu jen stáhl data a bylo by to. Ušetřil bych hromadu programování, starání se, a času. A mohl bych se soustředit víc na to, co chci vlastně docílit, ne na tu režii okolo. Bylo by snadnější přidávat scrapery, upravovat je, mohl by mi s tím třeba někdo i pomoci.

No a pak bych mohl jít a na Apify třeba rozjet i další věci, které stahuju. Proč stahovat informace o srazech z Meetup.com někde ve svém buildu na CircleCI, když to může frčet na Apify? 🧐 I kdyby to stálo nějaké peníze, možná by mi to vyřešilo spoustu věcí a odebralo spoustu jednotlivých závislostí.

Apify

Stable Diffusion

Ve volném čase jsem relaxoval u Stable Diffusion. V poslední době se to zase dost posunulo. Stále používám Draw Things, i když ComfyUI nebo Fooocus bych taky rád jednou vyzkoušel. Možná v nějakém paralelním životě.

Vrátil jsem se k SDXL a tak nějak jsem u něj už zůstal. Autorům Draw Things se povedlo vyladit výkonnost tak, že už to bylo plus mínus srovnatelné s SD 1.5 i na mém M1 Airu s malou RAMkou. A bylo to prostě něco nového, tak mě to začalo zase bavit. To jsem ještě nevěděl, že začnou z nebe pršet věci jako LCM nebo Turbo modely, které generování ještě víc urychlují. Po různých peripetiích se mi nakonec povedlo rozchodit Realities Edge XL a TurboVisionXL. S oběma vygeneruju i na tom svém slabém Airu kvalitní obrázky 1024px+ pod jednu minutu, což je úžasné. Všechny ostatní modely jsem smazal.

Začal jsem být celkem aktivní v Discord komunitě Draw Things a zkusil jsem tam s nimi začít řešit nápad, který jsem před časem dostal. Kdybych udělal sadu svých vlastních nakreslených obrázků, dokázalo by mě SDXL „nahradit“ tak, abych s ním mohl vygenerovat jakoukoliv malůvku, kterou bych potřeboval sem na blog nebo na web junior.guru? Bylo by možné vytvořit Lora nebo i vlastní model, které by toto umožnily? Zatím asi sci-fi, ale nějaké kroky už jsem podnikl. Udělal jsem si pořádek v archivu svých obrázků a všechny zpracovávám tak, aby se na nich dalo trénovat. Mám předpřipravených 182 malůvek, nyní je potřebuji dostat do nějakého stejného rozměru a pak jim přidat popisky. Vrátím se k tomu, až budu mít zase čas a náladu.

Všichni mluví o tom, že AI nahradí umělce. Tak já jsem umělec, který chce být nahrazen AI a podnikám pro to konkrétní kroky 😀 Uvidíme, jak složité to bude!

Následují náhodně vybrané obrázky, které jsem vygeneroval. Kromě těch upírů, poznali byste, že nejsou reálné?

Obrázek ze Stable Diffusion
Obrázek ze Stable Diffusion
Obrázek ze Stable Diffusion

Další

  • V klubu proběhla strašně milá přednáška o Advent of Code od Karoliny. Po ní jsme se přesunuli ještě do jiné místnosti v klubu na volný pokec, a bylo to moc fajn. Dnes, 1.12., odstartoval Advent of Code a v klubu už začíná onen každoroční prosincový šrumec 🎄
  • V Discord komunitě Tvůrcastu jsem zjistil, že YouTube už podporuje nasosání podcastu přímo z RSS. Takže jsem vyhodil Headliner, kterým jsem to automatizoval doteď, a zapnul to napřímo.
  • Vyřídil jsem několik stipendií, některá jsem i proaktivně nabídl.
  • Zařizoval jsem Simple Analytics pro Python Pizza v Praze. Výsledek tady. Co je Python Pizza? Nová Python akce v Česku! Mini konference. Mrkněte na to a přihlašte si přednášku!
  • Jedna paní na výročním setkání DigiKoalice (viz Týden pro Digitální Česko z pohledu partnera) mě přivedla na myšlenku, že by možná šlo lidi trochu potrénovat v plánování s nejistotou. Tak jsem šel do skupiny kariérových poradců na FB a zeptal jsem se tam, jestli se to dá nějak řešit a jak.
  • K mému velkému překvapení přistál na junior.guru jednorázový pracovní inzerát, tak jsem ho zpracoval a vyfakturoval: Junior / medior PHP programátor pro e-shopy Myslel jsem, že budu zadávání inzerátů do budoucna rušit a budu se zaměřovat na jiné zdroje příjmů, takže toto mi udělalo radost jako příjemný bonus.
  • Koupil jsem si nějaké nové mikiny. Jedna je od McLarenu, byla v Black Friday ve slevě, tak jsem zvědav, jestli mi bude, až to přijde. Velikosti byly podle tabulky v e-shopu nějaké divoké, asi americké.
  • Měl jsem hodně obědů s hodně kamarády. Jeden mi dal brouka do hlavy co se týče LLMs a OpenAI. Řekl jsem si, že si dám ChatGPT víc pod nos a zaplatím si ho. Aspoň na pár měsíců. A budu ho používat a zkusím prioritizovat věci, kde bych to využil i přímo na junior.guru. Nainstaloval jsem si ho i do mobilu. Akorát zaplatit za to teď nejde, takže to mi trochu sebralo vítr z plachet.
  • Můj asi první impulzivní nákup v životě. Levels tweetl odkaz na měřič CO2 a zrovna byl na německém Amazonu v Black Friday slevě, tak jsem to zvážil a koupil. Ono já už takové zařízení chtěl dlouho, ale nikdy nebylo tak levné, takže zas tak impulzivní to možná nebylo. Takže teď máme doma Qingping Air Monitor Lite a říká nám to, kdy máme větrat. Zatím dobrý, myslím, že se nám díky tomu daří na to mnohem víc myslet a máme doma lepší vzduch. Akorát tu je teď častěji docela velká zima 😀
  • Facebook zavedl takové to že mám souhlasit s tím, že mě špehují zdarma, nebo mám zaplatit předplatné a nechat se špehovat a ještě jim platit. Moc mě to nevzrušovalo a odklikal jsem to, že chci dál používat Facebook zdarma, ale bohužel se to dostávalo do nekonečné smyčky. Po kliknutí na poslední tlačítko se mi neotevřel Facebook, ale vrátilo se to zpátky na první dialog. Výsledkem bylo, že jsem nemohl vůbec na Facebook. Když jsem ověřil, že to není prohlížečem, systémem, internetem, ani ničím jiným, tak jsem jim napsal na support. Nikdo mi neodepsal, ale po několika dnech to začalo fungovat. Během toho jsem zjistil, že existuje tahle verze Facebooku, nějaká mobilní, kam jde jít i bez souhlasu.
  • Petr Viktorin odchází z Red Hatu a jde pracovat na CPythonu přímo pro PSF. Gratuluju!
  • Publikoval jsem Lumírovi článek blog.python.cz: Deset let Pyva v Ostravě
  • Po dlouhé době jsem si našel čas projít v klubu jedno CVčko a okomentovat ho.
  • Promoval jsem přednášku o AoC a samotné AoC v klubu, na LinkedInu, na Mastodonu, i na FB v příslušných skupinách.
  • Promoval jsem podcast, na LinkedInu, na Mastodonu i na FB v příslušných skupinách.
  • Dělal jsem drobné opravy na stahovači srazů a na teemup repozitáři. Přidal jsem do klubové integrace nějaké srazy, např. pro testery nebo pro Ostraváky.
  • E-maily, klubový Discord, Pyvec Slack, zprávy na LinkedIn. Bylo toho fakt hodně a zpětně mám dojem, že některé dny jsem nedělal nic jiného, než četl a odpovídal.
  • Za 22 dní jsem při procházkách nachodil 8 km, na túrách nachodil 7 km. Celkem jsem se hýbal 11 h a zdolal při tom 15 km. Detaily na Strava, jediné sociální síti, kde si napsání statusu musíte zasloužit.

Plánuji

Plánuji teď do konce roku raději nic neplánovat.

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: