Týdenní poznámky #59: Plakátky na přednášky

Utekl další týden (19.7. — 25.7.) a tak stejně jako minule sepisuji, co jsem dělal a co zajímavého jsem se naučil. Především se snažím rozvíjet junior.guru. Nemám šéfa, kterému bych reportoval každý svůj krok, ale mám klub, a členy by mohlo zajímat, jestli se neflákám. Taky je to způsob, jak se sám doma nezbláznit a nepropadat pocitu, že je zase pátek a já jsem přitom nestihl nic udělat.

Poznámky
Fotka od Honzy Kahánka

V pátek se mi chtělo odpoledne spíš pracovat než psát poznámky a nechtěl jsem jejich psaní hrotit do noci, tak jsem to nechal na víkend. Jenže o víkendu jsem seděl hodně u počítače kvůli tomu, že jsem se rozhodl kompletně překopat způsob, jakým zálohuji data, takže jsem neměl vůbec chuť poznámky psát a píšu je nakonec až v pondělí.

Design pro plakátky

Rozjíždí se zase přednášky v klubu a první bude s Norou Kořánovou. Domluvili jsme si s Norou informace o přednášce. Zapsal jsem je do souboru events.yml, aby se mi vygeneroval plakátek, aby bot upozornil na přednášku a aby se objevila na webu.

To se nestalo, protože plakátek neměl žádné CSS, tento soubor nebyl propojený s webem a jediné, co jej aspoň trochu respektovalo, byl ten Discord bot. Takže hurá do práce, dodělat resty:

  • Jeden celý den jsem designoval nový plakátek. Ten, který to tvoří teď, už je plně vytvořený automaticky, ne mnou ručně v Keynote (lol).
  • Plakátek nejbližší přednášky se nastaví jako og:image pro stránku s přednáškami.
  • Přednášky na oné stránce se nyní vypisují z dat v souboru events.yml, doteď jsem je tam musel stále ještě psát ručně v HTML.
  • Začal jsem generovat plakátky v různých velikostech, jak pro web do og:image, tak jako thumbnail pro YouTube video se záznamem. Čtvercová verze pro Instagram už se mi generovala z dřívějška. Při ladění velikostí obrázků a poměrů stran se mi hodil tento článek a tato skvělá stránka s trojčlenkou :D Verzi pro YouTube mám podle rozměrů z jejich dokumentace, ale když to nahraju jako thumbnail na video, vidím to oříznuté, tak nevím ¯\_(ツ)_/¯ Všechna stará videa jsem opatřil novými obrázky.
  • Přidal jsem k events.yml dokumentaci v podobě spousty komentářů, kdyby se tam náhodou chtěl nějaký speaker přidat sám přes PR. Například Petr Viktorin, který to hned potom udělal.

Díky tomu všemu jsem ukrojil hned několik dalších úkolů ze seznamu věcí, které musím kolem každé přednášky udělat. Automatizace pokračuje! Stránku s akcemi bych chtěl jednou celou předělat a udělat hezčí, teď je to spíš ostuda, ale teď to ještě musí bohužel počkat.

Zabýval jsem se dále domlouváním a připravováním dalších přednášek. Po delší pauze jsem se dostal do opačného problému, přednáška teď bude skoro co týden :) Už se těším!

Nora Kořánová
Petr Viktorin
Ivana Hučková

Nová klubová stránka

Práce na nové stránce lákající na klub a celkově na novém designu JG pokračují, byť tento týden nebyl ten posun velký. Dolaďoval jsem barvy, opravoval některé chyby, a tak.

Ke konci týdne jsem se rozhodl podívat se konečně na vršek stránky, který by měl být nejpromakanější a měl by upoutat. Zatím jsem to spíš odkládal. Prošel jsem si tento článek, abych nabral inspiraci, a pak jsem udělal velkou věc: Dal jsem vršku žluté pozadí. A hned to trochu prokouklo! :D Byl už konec týdne, tak jsem si nadělil odměnu a místo efektivního postupu jsem si pohrál s nápadem, že spodní okraj vršku by mohl připomínat rozlámanou skořápku od vajíčka (maskotem JG je kuře klubající se z vajíčka).

Zkusil jsem to nejdřív přes border-image, ale to mi akorát připomenulo, že border-image je pro mě nepochopitelná věc, pro kterou si neumím potřebný obrázek představit v hlavě, vytvořit na počítači, ani debugovat v prohlížeči. Byť jsem našel téměř hotové řešení, nakonec jsem to stejně zahodil.

Moje řešení nakonec využívá starý dobrý background-image, s pár novějšími vychytávkami (novějšími v mém případě znamená, že už je 10 let podporují všechny prohlížeče). Našel jsem toto řešení a pak jsem si SVG obrázek upravoval v Inkscape tak dlouho, až se mi výsledek líbil a přišlo mi, že plus mínus připomíná skořápku. V Inkscape neumím skoro nic, takže i takovéto velmi základní video mi pomohlo hned s několika triky.

Mám z výsledku velkou radost, ale nebudu lhát, je úplně jedno, jestli je tam skořápka nebo ne, na úspěch stránky to nebude mít vliv a jen se s tím zdržuju. Ale člověk si to musí taky někdy udělat trochu hezký. Kdybych se fakt snažil a vymýšlel business value, která by za tím byla, asi by to byla jedině lepší rozpoznatelnost a zapamatovatelnost designu stránek. Což nakonec není úplně blbé, dneska všechny weby vypadají úplně stejně, takže laťka je i docela nízko :D

Byť v rámci feedbacku se objevilo i to, že ten web teď „smrdí“ Bootstrapem (to nejsou slova dané osoby, ale já sám bych to řekl takhle), takže kdo ví. Třeba se mi ten Bootstrap povede ještě trochu další prací zamaskovat. A i kdyby ne, je to asi nakonec jedno, hlavně že se mi to dobře dělá, vydělává to (uvidíme!) a je to dobře použitelné pro návštěvníky webu.

Markdown v Markdownu

Jako by mi nestačilo, že mám v nové verzi webu šablonování pomocí Jinja2, které je vlastně vnořené v původní Jinja2 od MkDocs, zjistil jsem, že budu potřebovat i Markdown v Markdownu.

Při tvorbě stránky pro klub jsem se totiž dostal do situace, kdy jsem potřeboval přidat ještě nějaké další HTML tagy přímo do Markdownu, třeba na oddělení jednotlivých sekcí stránky, jenže potom se mi už nerenderoval Markdown uvnitř. Částečně to lze řešit pomocí markdown="1", jenže tenhle atribut se pak musí dát na všechny rodičovské obalovací elementy, takže když tam mám dva, musí tam být dvakrát, když tři, tak třikrát. A stejně to nefungovalo nejlíp.

Takže jsem začal chtít něco jako {% call markdown %}**sem** píšu __markdown__{% endcall %} (Jinja2 makro), nebo třeba {{ variable|markdown }} (Jinja2 filtr), aby se lépe psaly stránky, kde je nakonec víc HTML, než samotného Markdownu. Toto makro nebo filtr by vrátilo HTML markup, ten by se jako součást Jinja2 šablony vyrenderoval do HTML a to by MkDocs považovaly za Markdown, ale to je v pořádku, protože HTML může v Markdownu být, to vůbec nevadí, parser si ho nevšímá a nechá ho být tak, jak je. Ještě by se to dalo řešit tím, že pro tyhle stránky, kde je hodně HTML, bych použil úplně vlastní šablony přímo v theme stránek, ale to mi přišlo jednak méně pružné, jednak bych měl různé stránky v různých složkách, prostě se mi to nelíbilo. A stejně bych tam občas ten Markdown použít chtěl ¯\_(ツ)_/¯

Jenže to nebylo tak jednoduché jako importovat si Pythoní Markdown parser a udělat na dva řádky filtr do Jinja2. Protože by nefungovalo {% call markdown %}odkazování [na další stránky](tos.md) stejně jako ve zbytku MkDocs{% endcall %}. Ajaj! Takže jsem zkoumal, jak tohle makro a filtr napojit na to, jak Markdown renderuje přímo MkDocs. A bohužel to není v MkDocs příliš uděláno tak, aby to šlo použít i jinde, takže jsem se musel uchýlit ke škaredé černé magii. Nicméně funguje to. A s výsledkem, tedy s tím, jak se to používá při psaní samotné stránky, jsem naprosto spokojen.

Další poznámky

  • O předešlém víkendu jsem si zkoušel hrát s alternativami Heroku, které by byly scale-to-zero a hodily by se např. na provozování příkladů pro cojeapi.cz. Dostal jsem mimo jiné tipy na Render a Fly, z nichž zdarma je pouze Fly. Sice se musí zadat kreditka, ale dá se, na rozdíl např. od Google Cloudu, zadat i Revolut prepaid karta, na které skoro nic nemám, takže pohoda. Když jsem chtěl zkusit spustit svůj první projekt, zaseklo se to na ověření účtu. Napsal jsem na support a odpověděli, že jsou obezřetní kvůli těžařům kryptoměn a že za to mrzení mi dají zdarma kredity navíc. Jenže jsem se k tomu pak už nějak nedostal, takže pokračování někdy příště.
  • Zpracoval jsem jeden inzerát práce přidaný na JG (za 0 Kč).
  • Zkoušel jsem o víkendu při svých zálohovacích dobrodružstvích osxphotos pro čtení informací z Apple Photos a funguje to pěkně :) Škoda, že do Apple Photos nejde i programátorsky zapisovat a musí se do toho klikat.
  • Zkusil jsem si do TweetDecku přidat sloupec, který bude sledovat určitá klíčová slova, včetně různých vzdělávacích agentur na českém trhu apod., prostě vše, co by mohlo souviset se segmentem trhu, na kterém se snaží prorazit JG. Od té doby jsem zatím ve TweetDecku nebyl :D
  • Měli jsme v klubu rekord 42 pozitivních reakcí na zprávu (v souhrnech nejzajímavějších věcí za poslední týden je číslo). Zpráva byla o tom, jak se členovi povedlo sehnat první práci, čím prošel, co a jak udělal.
  • Objevila se nějaká chyba v parseru inzerátů, který jsem kdysi dělal a jehož výsledky se teď ve skutečnosti nepoužívaly. Byl to pokus inteligentně rozsekat text inzerátu na sekce, u nichž bych znal jejich sémantický význam. Nefungovalo to špatně, ale nakonec se mi dařilo třídit inzeráty celkem efektivně i bez toho. Občas mi ty sekce pomáhaly při debugování jiných věcí, tak jsem je tam nechal, ale teď, když se objevila chyba, jsem ji odmítl řešit a prostě jsem akorát tuto část zcela vypnul.
  • Přečetl jsem si tento článek na iDNES a napsal na něj svou recenzi v podobě tohoto komentáře na LI. Pak jsem zkusil napsat přímo do iDNES přes nějaký kontaktní formulář, že až budou chtít příště nějakou mluvící hlavu, můžou klidně napsat mně, místo pana Strejce :D
  • Řešil jsem trochu vztahy a chování v klubu. Snad to bude OK. „Založil si komunitu a chodili mu tam lidi“ ;) S tímhle se holt musí počítat. Vztahy mezi lidmi a komunitní dynamika jsou velkými riziky mého podnikání. Ovlivním je jen o něco málo víc, než zemědělec ovlivní počasí. Mám CoC a nesmím váhat při jeho dodržování, jinak se jedna z hlavních výhod klubu, tj. přátelské prostředí, rozplyne, ani nebudu vědět jak. To ode mne vyžaduje umět jít příkladem, nastavovat správná očekávání, vysílat správné signály na správná místa, umět občas udělat špinavou práci a vyřešit i méně příjemné věci, než se rozjedou k nezastavení.
  • Rozmnožili se v klubu lidi, kteří se učí C#, tak jsem jim k tomu vytvořil dedikovanou místnost.
  • Zjišťoval jsem, jak fungují kredity na Italki, protože uvažujeme s Mews o tom, zda bychom je nemohli určitým lidem dávat na zlepšení angličtiny. Italki mi přijde lepší než kurz, protože kurzů je hodně a jsou i zdarma, ale málokdo se do toho dokope. Když si na Italki vybere lektorku nebo lektora a budou mít hodinu týdně, prostě se k tomu podle mě dokope a ještě to bude mít větší dopad (sebevědomí, mluvení…).
  • Napsal jsem tady na blog reakci na jedno video: Proč se neučit Python v roce 2021
  • Czechitas chtějí analyzovat nabídky práce pro juniory, tak jsem se nabídl, že scraping mám de facto hotový a data bych mohl poskytnout. Následně jsme si volali a nejspíš z toho bude spolupráce :)
  • Všiml jsem si, že už je v klubu skoro 200 lidí a samotného mě to překvapilo :D
  • Pomáhal jsem jednomu členovi klubu s motivačním dopisem a CV před tím, než se zkusí přihlásit na inzerát.
  • Konečně jsem se podíval na PR od Míly, který by měl posunout o krok dál přesun vyhodnocování nabídek práce od regulárních výrazů směrem k AI.
  • Štvalo mě, že když mi napsal můj Discord bot, Kuře, tak se mi v levém seznamu na Discordu objevil se stejnou žlutou ikonou, jako má samotné JG. Takže nešlo poznat, co z toho je klub a co z toho zprávy od bota. Nakreslil jsem tedy alternativní ikonu, která má modré kolečko a bílé kuře, abych to nějak rozlišil. Trvalo mi sto let najít místo, kde se ta ikona mění. Proklikal jsem snad vše ostatní, než jsem našel discord.com/developers a vzpomněl si, že něco takového vůbec existuje. Tam jsem změnil ikonu a nic se nestalo. Teď píšu poznámky a zase na to koukám a zjišťuji, že to byla ikona OAuth2 aplikace, ne bota. Ten má ještě jinou stránku. Takže se mi to reálně povedlo změnit až teď.
  • Přejmenoval jsem hlavní větev tady na blogu z master na main. Na GitHubu je teď výchozí main, což mám tedy na nových projektech, ale potom se pletu, takže lepší, když bude main všude.
  • Propagoval jsem dále své nedávné působení v .NET.CZ podcastu, retweetem a přesdílením postu na LI
  • Spoustu času tradičně sežralo procházení diskuzí v klubu, reakcí na sociálních sítích, e-mailů…
  • Během 10 dní od 17.7. do 25.7. jsem při procházkách nachodil 3 km, ujel na kole 98 km. Celkem jsem se hýbal 12 hodin a zdolal při tom 101 kilometrů.

Co plánuji

Tři věci, které bych chtěl zvládnout udělat příště:

  1. Zvládnout po dlouhé době přednášku v klubu, která bude v úterý.
  2. Bušit dál CSS na té klubové stránce.
  3. Propagovat další dvě naplánované přednášky a naházet nové věci do fronty na sociální sítě, kde teď nic nemám.

A co vy?

Pokud byste čistě náhodou měli dojem, že jste oproti mě za uplynulý týden vůbec nic nestihli, tak mám pro vás skvělou zprávu! V klidu se na ten dojem můžete vykašlat. Není zač!

Co mě zaujalo

Když si něco přečtu nebo poslechnu a líbí se mi to, sdílím to na Pocketu. Od posledních poznámek jsem sdílel toto:

Vygenerováno pomocí pocket-recommendations.