Týdenní poznámky: EuroPython a stahování CSV z Memberful

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

Poznámky
Fotil Markus Spiske

Vytváření zmatku v organizačním týmu PyCon CZ

Nejsem součástí letošního organizačního týmu PyCon CZ, který bude v září, ale samozřejmě se občas něco dovím, protože to organizují kamarádi.

Takhle jsem se něco omylem dověděl a na základě těchto kusých informací jsem vyjádřil lítost, že to není jinak. Byla to hlavně emoce, tak jsem to nechtěl moc šířit. Neměl jsem řešení a nemyslel jsem si, že je vhodný moment házet vidle do něčeho, co se v podstatě už stalo. Bál jsem se, že moje slovo v komunitě by mohlo být vnímáno jako příliš silný kritický hlas a chtěl jsem respektovat to, jak konference funguje a nekecat jim do toho zboku.

To se nepodařilo, protože jsem si soukromě ulevil u člověka, který potom zburcoval ostatní a začal tu věc řešit. Nakonec to vyústilo v to, že bych se možná do organizace mohl i zapojit. Byl jsem v neděli na hodinovém callu, pak jsem tomu věnoval v pondělí několik hodin a několik dalších hodin i v úterý. V jednu chvíli jsem skoro zodpovídal za místnost pro 50 lidí, ale to jsem nakonec naznal, že nebude v mých silách. Někteří lidi měli kvůli tomu celému dojem, že udělali něco špatně, a to mě mrzelo, tak jsem se snažil co nejvíc komunikovat jak co vnímám a vysvětlovat, proč si co myslím a proč něco chci nebo nechci. Detailů vás ušetřím, ale podle mě jsem akorát způsobil na pár dní chaos.

Nicméně i z chaosu občas vyleze něco dobrého. Několikadenní jízdou jsme se dostali k tomu, že si na konferenci zkusím vzít na starost následující:

  • Uspořádání jedné debaty,
  • nahrávání podcast(ů) na místě (jestli to Vojto čteš, tak jo, chci se ti ozvat),
  • vytvoření přáníčkové nástěnky pro juniory.
  • Navíc do jednoho panelu pozveme i někoho, kdo si prošel změnou kariéry, ne pouze teoretické mudrlanty, jako jsem já.
PyCon CZ 2023

EuroPython

Organizátorům EuroPythonu jsem nakonec potvrdil svou účast v diskuzním panelu komunitních organizátorů a poslal jim bio a fotku. V panelu byla nakonec i Bára Drbohlavová, současná i minulá hlavní organizátorka PyCon CZ a aktuální předsedkyně Pyvec, z.s..

Tréma

Trochu mě to nervovalo, ale nakonec jsem si řekl, že to bude určitě jen prostě takový přátelský pokec a o nic nejde. Když jsem ve středu přišel na keynote Petra Viktorina a ten ukázal na plátno všem 1000+ návštěvníkům EuroPythonu můj ochmýřený ksicht (když mi bylo dvacet) a zeptal se, jestli jsem v sále, tak ze mě už definitivně spadla jakákoliv tréma. Už bylo všechno jedno 😀 Záznam keynote je tady.

Chmýří

Na EuroPython jsem šel hlavně ve středu. Šel jsem sice asi na dvě nebo tři přednášky, ale jinak jsem se soustředil na lidi. Nadchlo mě, jak jsem po dlouhé době viděl staré známé ze všech koutů republiky. Dojalo mě to a nabilo energií.

Uvědomil jsem si, jak mi chybí PyCon CZ a vůbec všechny společné komunitní akce. Pyvo je fajn, ale v poslední době mám pocit, že lidi, se kterými mám nejvíc zážitků, tam chodí jen sporadicky, protože už mají třeba rodiny. A mě se to ostatně týká taky.

Ve středu odpoledne jsem se věnoval dceři a pak jsem ještě večer vyrazil na společné Pyvo + EuroPython, které se mimořádně vyvedlo. Opět jsem potkal mnoho lidí, které jsem dlouho neviděl a mohli jsme probrat spoustu věcí. Škoda akorát, že jsem tam zapomněl batoh, odjel domů, u dveří si to uvědomil, a ještě ve tři ráno se pro něj vracel.

Ve čtvrtek jsem dopoledne pracoval, odpoledne vzal dceru a vyzkoušel s ní EuroPython childcare. Bylo to poprvé, co jsme ji zkusili nechat hlídat někým, koho nezná. Vydržela tam 20 minut, takže napoprvé asi dobrý. Věnoval jsem se hlavně jí, takže jsem konferenci jinak moc nedal a prohodil akorát pár slov s pár lidmi. Žádnou přednášku jsem neviděl, ani lightning talk.

V pátek jsem celé ráno hledal klíče od kanceláře a měl jsem nervy, že jsem je někde poztrácel během posledních dní. Po převrácení celého bytu naruby mě ještě napadlo, jestli nejsou v kanceláři na stole. Když mě pustili dovnitř, byly samozřejmě tam. Kolem oběda jsem se vypravil na EuroPython. Během toho jsem zjisitl, že zastávka Vinohradská vodárna není zastávka Vinohradská tržnice, ale to je detail.

EuroPython pódium

Záznam panelu je tady. Bylo to nakonec fajn!

já v panelu

Potom jsem se už jen chvilku coural po konferenci a pak to zabalil. V pátek byla ještě PyLadies párty, ale tu jsem vynechal, stačilo mi středeční Pyvo.

Byť jsem na EuroPython původně vlastně ani nechtěl, nakonec jsem moc rád, že mě pozvali. Svoje dojmy jsem sepsal do LinkedIn statusu:

Thank you Artur Czepiel and Alexander C. S. Hendorf for inviting me to the panel and to EuroPython!

The conference is a blast. Seeing all the familiar faces, I realized how much I miss my Python crowd after all the COVID years.

Many of us moved on with our lives, many now have children, demanding businesses, or other activities. It’s not so easy to meet each other even on a local meetup.

More so it was such a great feeling to see us together again, either talking over coffee in the EuroPython halls, or over a beer on Wednesday evening (big thanks to Mia Bajić for leading the efforts of having a joint EP + regular Pyvo meetups event!).

I’m looking forward to PyCon CZ later this year and I’m glad it’s finally happening! I hope such events can rekindle the community and bring the activity back to pre-COVID levels. We can do it 💪

I thought I’m a retired old fart regarding my Python community involvement. To be honest, I thought EuroPython in Prague is coming late in my career and it isn’t for me anymore. I’m glad Artur dragged me on board and I could be, again, where the history of Python in the Czech Republic is being written. I realized I’m still interested in technical talks about Python, about everything community, and that I do want to be still involved. Perhaps I can still help, here and there!

Cheers! 🍻

Záznamy přednášek z EuroPythonu budou asi brzo sestříhané někde na YouTube, ale komu se nechce čekat, může se už teď brodit záznamy streamů.

Stahování CSV z Memberful

Ve zbylém čase jsem neměl morálku přemýšlet nad tím, jak z dat v databázi pomocí SQL složitě vytahovat agregovaná čísla, tak jsem šel dělat něco jiného. Místo malování grafů jsem šel na hromádku přidat další data.

Určitá data mám v Memberful, ale oni je (zatím) nemají v API. Což je blbý, protože jsou to celkem důležitá data:

  • Odpověď na otázku „odkud znáš junior.guru“, která se zjeví hned po registraci,
  • odpověď na otázku „proč rušíš předplatné“,
  • referer registrace.

Naštěstí existuje způsob, jak ta data získat. Dají se stáhnout v CSV. To bych ale nebyl já, abych si jednorázově stahoval nějaká CSV a snažil se je zpracovat. Přece to nebudu dělat ručně? A jak to pak budu dávat do grafů, které jsou živě na webu?

Takže jsem zkusil udělat skript, který se přihlásí do Memberful a ta CSV stáhne. Šlo to nakonec dokonce bez browseru, ale nebylo to úplně triviální, protože na ta CSV se musí čekat.

Byl jsem však nesvůj z toho, že bych měl někam dávat heslo ke svému účtu, který je zcela kritický pro celý můj byznys. Naštěstí můžu na Memberful přidávat staff, tedy uživatele s menším oprávněním. Tak jsem udělal botovi uživatele a přihlašuje se přes tento účet. Kdyby heslo někdo získal, asi by mohl napáchat nějakou škodu, ale bylo by to zaznamenáno v audit logu a nebylo by to snad tolik škody, jako by šlo napáchat s mým admin účtem.

Kód jsem si nakonec vyčlenil do třídy MemberfulCSV, která umí i kešovat odpovědi, když na to dojde.

Export CSV

Čištění dat z Memberful

V dalších dnech jsem data čistil. Napsal jsem si dvě funkce, které se pomocí regulárů snaží odhadnout, jakým způsobem někdo přišel.

Políčko pro odpovědi je totiž prostě textové, nejsou tam žádné možnosti. Mám to tak záměrně, abych lidem nic nepodsouval.

A taky jsem čistil referer, aby bylo snadnější z dat zjistit z jakých jiných webů přišli registrující se lidi, nebo z jakých stránek na mojem vlastním webu přišli nejčastěji.

Jestli budu nějak čistit odpovědi na otázku proč někdo odchází, to ještě nevím, možná ne. Memberful tam základní kategorizaci má a volná odpověď je až v případě, že nic z možností nevyhovuje.

Nakonec chci z těchto „CSV dat“ udělat nejen grafy, které mi pomohou rozhodnout se lépe co bych měl co nejrychleji zlepšit, ale také chci udělat skript, který mi tyhle odpovědi v reálném čase pošle do nějakého privátního kanálu na Discord, nebo do soukromé zprávy. Tam hned uvidím, kdo ruší předplatné a proč, nebo odkud noví lidi přichází. Na to první budu moci okamžitě reagovat (např. pokud mi někdo napíše, že na to už nemá, mohu nabídnout stipendium). Taky budu moci kontrolovat, jestli mi reguláry správně řadí jednotlivé události do kategorií, nebo jestli jsou tam chyby. Lidi totiž vymyslí nejrůznější věci a nemá moc smysl to testovat jinak, než kontinuálně kontrolovat, zda to živá data klasifikuje správně.

Oprava scraperu followerů

Mám scraper, který se snaží zjistit, kde mám kolik followerů. Funguje mi všude, kromě „firemní“ junior.guru stránky na LinkedIn. Ať dělám co dělám, bez přihlášení na LinkedIn prostě dostanu jejich authwall s přihlašovacím formulářem a není odkud veřejně počet sledujících zjistit. Napadlo mě scrapnout Google vyhledávání, protože to tam je. Nebude to asi nejaktuálnější, ale pokud je to aktuální aspoň jednou za měsíc, tak mi to stačí.

Google Search

Jenže ač to funguje lokálně, na CI to zase nefunguje. Možná tohle číslo prostě vzdám a nebudu ho měřit. Cílem je stejně dostat lidi spíš na můj osobní profil, který funguje líp a je osobnější.

Nepovedlo se

Další

  • Fakturu za Zlatý tarif jsem poslal. Novým sponzorem příručky je Rector, což je kamarádova firma vyvíjející open source nástroj na práci s legacy PHP kódem.
  • Zlatý tarif zahrnuje logo v příručce a epizodu podcastu, což nejsou nekonečné zdroje, a proto je drahý a omezený na maximálně čtyři firmy. Tím, že se přidal Rector, nelze nyní nejvyšší tarif koupit do té doby, než z něj nějaká firma vystoupí. Nechám se překvapit, jak to bude na podzim s Red Hatem, když teď propouštěli. Mimochodem, pokud hledáte fakt dobrého interního recruitera, Jiří Psotka je teď volný hráč (znáte ho z prvního dílu podcastu).
  • Czechitas už nějakou dobu hledají novou či nového CEO, teď hledají i peníze, aby nemusely drasticky škrtat. Pokud je chcete podpořit, teď je ta pravá chvíle.
  • Dopracovali jsme spolu s ENGETO Academy anketu pro juniory a teď ji pošleme pár lidem, aby nám ji otestovali a dali nám na ni zpětnou vazbu.
  • Koupil jsem si roční Lítačku.
  • Udělil jsem jedno stipendium na členství v klubu.
  • Domlouvám, kdy bychom se mohli sejít s právničkou Pyvce, abychom doladili nějaké detaily ohledně voleb do výboru spolku.
  • Koukal jsem se na vulture, nástroj, který umí odhalit mrtvý kód v projektu. Umí to statickou analýzou najít věci jako zbytečné importy, nevyužité proměnné, nebo nedosažitelné podmínky. To moc nepotřebuju, tak to nepoužiju. Myslel jsem si, že by to mohlo umět víc, třeba mi říct, že mám někde funkci, která se nikde v projektu nevolá, nebo i úplně zbytečný soubor. Třeba se to ale někomu bude hodit, tak sem dávám odkaz.
  • Podpora Meetup.com mi poslala i na přímý a jednoduchý dotaz vyhýbavou a generickou odpověď na to, proč zavřeli své exporty do kalendáře za login. Rozhodl jsem se je dále negrilovat a neztrácet s nimi čas. Mimochodem Alexander Hendorf mi říkal, že propagaci jejich akcí kupodivu hodně pomohlo dávat je na LinkedIn a že Meetup.com už tolik nefungoval na to, aby akci objevili nějací noví lidé. Já mám jasno, pro mě je Meetup.com, tím co udělal, mrtvý.
  • E-maily, klubový Discord, Pyvec Slack.
  • Během 9 dní jsem na túrách nachodil 9 km. Celkem jsem se hýbal 9 h a zdolal při tom 9 km. Detaily na Strava, jediné sociální síti, kde si napsání statusu musíte zasloužit.

Plánuji

  1. Opravit metriky na /open/ a přidat nové, abych se mohl rozhodovat, co dál. Zdá se mi, že mi na několika frontách klesají čísla. Chtěl bych se zamyslet nad svými prioritami a zaměřit se na to, co nejvíc pomůže zvrátit trend. Ale k tomu potřebuju nejdřív vědět, co se přesně děje a mít na to čísla a grafy.
  2. Dělat promo věcem, kterým mám dělat promo.
  3. Napíšu kamarádce do jedné firmy, zda mi neposkytne data, která by mohla obohatit katalog kurzů.

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:

  • Proč potřebujeme pomalou novinařinu
    Dnešní Mimo Agendu je velká pecka. Jako vnější pozorovatel a „uživatel“ novinářského světa souhlasím snad s každou větou. „Dnešní novinařina v Česku je až na výjimky montovnou… Pomalá novinařina je jedinou cestou, jak média mohou přežít v dnešním propojeném světě.“ Sám jsem před delší dobou přešel k pomalé novinařině, např. podcastu ČRo Vinohradská 12, kde vyberou jednu důležitou aktuální věc denně a hotovo.
  • Cesty Zdopravy - Klára Němcová — Zdopravy Podcast
    Jak u nás funguje plavba, vodní infrastruktura, co je potřeba na řízení lodě, jak se kontrolují pravidla? Zajímavý pohled do světa, kterému jinak vůbec nerozumím
  • Jak na HPP a IČO s Jakubem Málkem (PEYTON legal) — ProgramHRování - váš HR průvodce světem IT
    Zaměstnaváte lidi „na IČO“, místo abyste je opravdu zaměstnali? Poslechněte si, zda vám hrozí pokuta 10 milionů korun. A pozor, i samotným kontraktorům hrozí pokuty 😬