← Zpět na všechny články blogu

Milan Šulc povídá o programování, open source a dalších zajímavých projektech

David Janík
David Janík Aktualizováno 24. 7. 2024 – 12 min. čtení
Blog

Ahoj Milane, vím, že toho máš pod křídly dost, ale jak by ses nám chtěl představit ty sám? 🙂

Ahoj, ahoj. Já jsem Milan Šulc, lidé z IT světa mě nejspíš znají pod přezdívkou Felix, a rád dělám webové stránky a děti. Klidně i v obráceném pořadí. Piji (moc) kafe, učím se truhlařit, hraji florbal a fotbal. S rodinou se vyžíváme v jídle a filmech.

9. sraz přátel PHP v Pardubicích (pozn. redakce - Milan také miluje selfie, jak v průběhu rozhovoru uvidíte. :-)

Z hlediska práce… Programuji primárně v PHP. Snažím se pomáhat Davidovi s Nette (Frameworkem). Píšu blog, tweetuji, školím. A sem tam publikuji něco na Githubu.

Jak ses vůbec dostal k programování?

Já byl vždycky celkem zvídavé dítě. Vše jsem zkoumal, občas něco rozbil a pak to musel opravovat. V první třídě jsem skrze NHL 98 poprvé začal zkoumat počítače. Naštěstí jsem ho hned nerozbil. Potom mi táta ukázal Microsoft FrontPage a já si naprogramoval můj první web. No spíš naklikal.

VPS Centrum

Vyzkoušejte zdarma naši aplikaci pro správu serveru a domén. Budete si připadat jako zkušený administrátor.

Pak se naši rozvedli a mamky nový přítel byl programátor. A ten mi začal ukazovat HTML, CSS a pak i PHP. Hrozně mě to chytlo, a pak už jsem byl chycený do Matrixu a můj život byl dost nalajnovaný.

Musím přiznat, že jsem ze začátku měl pár programovacích krizí. Nebavilo mě to. Nešlo mi to. Chodit za holkami bylo lepší. Ale pak mi brigáda v Tescu (u masa) znovu připomněla, jak je vlastně krásné sedět za tím počítačem.

Péhápkaři 20.11 2019

Jak si organizuješ, tak velký počet projektů? A co je pro tebe teď hlavní priorita?

Čím více open source projektů mám, tím více si uvědomuji, že je potřeba najít nějaký udržitelný model fungování. Moje hlavní priorita, minimálně pro rok 2022, je zajistit stabilní vývoj balíčků, aby se na to firmy mohly spolehnout. Vést s firmami dialog, zjistit jaká mají očekávání a dodat jim top řešení, aby se mohli soustředit na jejich business a neřešili stále opakující se problémy.

Pro organizaci projektů používám Github, hlavně issues. To je i takový standard u open source projektů. Ale je to jen jedna část, řekněme user feedback. Potom je druha část, a to je nějaká moje vize, kam bych se chtěl s konkrétním balíčkem dostat. Tahle moje vize je privátní. Dříve jsem na to používal height.app, takový jednoduchý task management system. Ale před nedávnem jsem to začal migrovat do privátního repozitáře na Githubu. Abych nemusel přemýšlet, kde, co je, ale bylo vše na jednom místě. A nakonec je třetí část, a to je poptávka od firem. Snažím se udržovat kontakt s firmami a zjišťovat jejich potřeby. I podle toho se odvíjí vývoj knihoven.

Jak u tebe probíhá proces vzdělávání?

Přiznám se, že v tom nemám úplně nastavený systém.

Nejvíce času mi vezme čtení kódu ostatních lidí. Tam se velmi inspiruji, jak to dělají. Často se vracím v cyklech ke starému kódu a objevím tam něco důmyslného, co není na první pohled vidět.

Konference php.live 2021

Rád zkouším nové knihovny, technologie a přístupy. Dnes se dá řada konceptů z jiných jazyků aplikovat do PHP a obráceně. Na hobby projektech si z validuji myšlenku a řešení konkrétního problému a pak to mohu aplikovat do komerčních projektů.

Nakonec i feedback na moje knihovny je dobrá sebereflexe. Pokud není feedback, tak je to buď ultra skvělá knihovna nebo ji nikdo nepoužívá. Většinou se jedná o druhou možnost.

Freelo - Nástroj na řízení úkolů a projektů

Přidej se, pozvi svůj tým a klienty, rozděl práci a sleduj, jak se úkoly dají do pohybu.

Hostuješ u nás projekt Componette.org, můžeš nám projekt představit, pro koho je a co za problém vlastně řeší?

Componette je portál, kde mohou autoři prezentovat své rozšíření do Nette. Je to takový agregátor balíčků, který by měl zjednodušit hledání již existujících řešení. Aby se nevynalézalo znovu kolo.

Componette mám rád, protože to byl jeden z mých prvních open source projektů pro Nette komunitu. Vznikl v roce 2015 a letošní rok (2021) se mu dostalo faceliftu. Běží na posledním Nette & Contributte knihovnách a frontend je postavený na tailwindcss a alpinejs, pro build webpack a hostováno u vás. Za což moc děkuji.

Pod sebou máš i další projekt Contributte.org, jaký je mezi nimi rozdíl?

Contributte je organizace, ve které se zaměřujeme na tvorbu rozšíření pro Nette. Dá se to i zjednodušeně chápat jako, co se nevešlo do Nette, najdete v Contributte.

Tuhle organizaci jsem založil s velmi prostou myšlenkou na začátku: vyřešit problémy, které se opakují téměř na všech projektech, co jsem pracoval. Např. jak psát a spouštět příkazy v terminálu, jak psát a spouštět migrace nad databází, jak posílat emaily v rámci aplikace, jak strukturovat aplikaci, jak komunikovat uvnitř aplikace o událostech, které nastaly a tak dále.

Dnes má Contributte přes 150 balíčků a postupně se stává součástí mnoha firem a vývojářů. Z toho mám velkou radost a rád bych na tom pokračoval takto dále.

9. Sraz přátel PHP v Pardubicích

Co s těmito projekty plánuješ do budoucna?

Componette je hotový projekt. Nedávno se mu dostalo faceliftu, upgradu na poslední PHP a knihovny. Většina nápadů, co jsem měl, tak je tam implementovaná. Existuje ještě pár funkcí, co bych si uměl představit. Např. generátor formulářů s možností si ho naklikat v nějakém pěkném frontendu a uložit ho pro ostatní. Tak uvidíme.

Contributte se dostalo z punkového vývoje, kdy každý týden přibyla jedna knihovna, do stabilnější fáze. Spousta řešení je vyvinuta a potřebují třeba aktualizaci na nové PHP nebo update knihoven (např. Doctrine).

Rád bych z Contributte udělal projekt, na který se každý, kdo dělá v PHP může spolehnout, může se zeptat, najde tam mraky hotových řešení a může se soustředit na své business požadavky. Aby toto fungovalo, tak musím najít fungující business model. Už jsem se vydal tento business model hledat, zatím jsem na začátku. Ale přesto. Oslovil jsem několik firem a s některými už najíždíme na tento model. Důležité je, aby to bylo přínosné pro obě strany. Aby firmy viděly, že nemusí vyvíjet všechno samy, že je dobré to sdílet s ostatními a tím se i zviditelnit. Že je tu někdo, kdo se soustředí na vývoj těchto knihoven, má v tom mnohaleté zkušenosti, dokáže poradit nebo jim doprogramovat něco na míru.

Uvidíme, jak to bude fungovat.

Jak vnímáš současnou situaci s Nette frameworkem?

Můj pohled může být trochu zkreslený, protože jsem v centru dění. Takže mám pocit, že se stále něco děje a David dodává super featury, Chemix pořádá spoustu akcí, komunita je nápomocná a já dělám, co mě baví, což je tvorba knihoven.

David říkal, že Nette je feature-complete, skoro by člověk řekl, že tam už tedy nejde nic vymyslet. A pak bum. Latte má podporu pro sandbox režim (taková ta ochrana, o které všichni snili). Nebo Tracy dostane facelift. Nebo se do NEONu přidá AST parser.

Nette Conference 2019

Za mě je tedy situace příznivá. A jsem rád, že můžu být u toho.

Jaké hlavní pro a proti vnímáš u Nette, Symfony a Laravelu?

Těžká, těžká otázka… Zkusím vypíchnout pár věci.

Nette vnímám jako set balíčků, které jsou minimalistické, ale zároveň extra mocné. Skvělý debugger Tracy, milovaný šablonovací systém Latte, extra pružné lepidlo Nette DI a NEON. Je tu menší vývojový tým, ale velká komunita, bohužel převážně v ČR a SK. Spousta projektů u nás ho používá a najít práci lze prakticky okamžitě.

Symfony vnímám jako rock solid set balíčků, na kterém se podílí obří množství lidí. Staví na tom spousta dalších řešení jako Laravel, Drupal, Magento, PrestaShop a další. Najde se tam řada balíčků, které beru jako standard v PHP, např. Symfony Console nebo Symfony Event Dispatcher. Svou velikostí už to není malý projekt, některé procesy mohou déle trvat a třeba i v budoucnu bude trvat déle. Učící křivka nemusí být úplně přímočará, je tam velká granularita balíčků.

Laravel vnímám lidsky jako velmi vstřícný ekosystém, kam lze snadno proniknout a dopátrat se brzkého výsledku. Architekturou jde odlišnou, pro zkušenější ne moc oblíbenou, cestou. Ekosystém je plný spousty doplňkových produktů, např. Laravel Forge, Laravel Vapor atd.

Nemyslím si, že je v dnešní době dobré kritizovat ostatní produkty nebo přístupy. Spíš se inspirovat a poskládat aplikace z balíčků, které člověku nejvíce vyhovují. Hodí se na to pojem frameworkless.

Proč bys programátorům doporučil, ať se věnují i open source projektům? A jak s tím mají vlastně začít?

Díky open source:

  • jsem se zdokonalil v programování
  • jsem potkal nové lidi se stejným zájmem
  • jsem se mohl zapojit do známých projektů (např. Nette)
  • jsem dostal spoustu nabídek k práci
  • jsem se zlepšil v popisování funkčnosti
  • jsem si zlepšil angličtinu
  • jsem se naučil sdílet informace

Pokud se odhodláte začít, tak je to super úspěch. Většina se ani neodhodlá.

Pokud nemáte nápad na svůj open source projekt, nevadí. Většina nemá. Zkuste se podívat, jaké open source knihovny používáte, a zkuste vyřešit nějaký problém, který tam máte.

Pokud byste to rádi nejdřív s někým probrali, klidně mi napište. Rád pomůžu.

Měl podle tebe covid pozitivní vliv na open source? Programovalo se více? Vznikly zajímavé projekty?

Já pracoval poslední roky převážně z domu. Takže třeba na mě to úplně vliv nemělo. Pár nadšenců se mi ozvalo, že by měli prostor na open source vývoj. Jinak jsem si nevšiml, že by to mělo nějaký vliv. Skoro mi přijde, že to mohlo mít opačný efekt. Spousta řešení se musela předělat do online prostředí, takže IT firmy měly víc práce. Ale je to jen můj osobní pocit.

Viděl jsem na Githubu, že jste před Vánoci byli velice aktivní, na čem jste pracovali?

Já se poslední roky snažím od půlky prosince věnovat svým hobby projektům. Hlavně takový maintenance, na který není během roku čas. Bude to znít srandovně, ale upravoval jsem hlavně typografii v README souborech. Zkusím příště zamakat na něčem pořádným, slibuji.

V rozhovoru před 2 lety pro nette.org si řekl, že máš spousty nápadů, které nechceš prozrazovat, ať se máme na co těšit. Vypustil si něco nového nebo se na tom zatím pracuje?

Velký kus práce se udělal zejména na ukázkách a dokumentacích. V Contributte existuje spousta tzn. skeletonů, které demonstrují funkčnost konkrétního balíčku. Z toho mám radost, poslouží to začátečníkům a také pomůže při reprodukci chyb.

Aktuálně se pracuje na sjednocení Apitte knihovny do jednoho repozitáře, přidání podpory Doctrine 3, migraci Nettrine repozitářů pod Contributte, vylepšené podpoře pro Sentry, integraci Inertia.js, referenční projekt s TailwindCSS a tak. Myslím, že to zase posuneme o krok dál. Mám v hlavě jeden projekt, komerční projekt, který postupně uzrává. Pár firem o tom už ví a chtějí tomu dát šanci. Mohl by to být můj první SaaS. Tak uvidíme.

Jaké nástroje, služby a aplikace používáš ke své práci a šetří ti čas?

Já funguji na OSX. Celý Apple ekosystém mi šetří spoustu času. Na iPhone něco otevřu a dočtu to MacBooku. Potřebuji něco podepsat, tak to udělám na iPadu. Do AirPodu mi hraje Apple Music. Na AppleTV si pustím seriál nebo zrcadlím plochu při videohovoru.

  • IDE → PhpStorm.
  • Editor → VSCode.
  • Terminal → iTerm2, Bash a Starship.
  • Git → SmartGit a lazygit.
  • API → Insomnia.
  • DB → TablePlus.
  • Docker → Docker, Mutagen.
  • Úkoly → Things, Github.
  • Wiki → Notion.
  • E-mail → Google.
  • Dokumenty → Google Drive.
  • Správa hesel → 1Password.
  • Komunikace → Slack, RocketChat a Signal.
  • Správa souborů → ForkLift.
  • VPN → Shimo.
  • Media → Skitch, Kap.
  • Diagram → Balsamiq, Diagrams, Monodraw.
  • Other → Amphetamine, ImageOptim.
Barcelona 2017

Dáš nám doporučení na tvé oblíbené podcasty, blogy nebo YouTube kanály?

Do poslouchání podcastů jsem zatím nedorostl. Pár jsem jich slyšel, ale na doporučení si zatím netroufám.

Obecně čtu blogy velmi nárazově. Ale zkusil bych navnadit na:

Na youtube bych doporučil: Nette Framework kanál (https://www.youtube.com/user/netteframework). Jiný vývojářský kanál nesleduji. Mohu ale doporučit kanály mimo IT.

Jestli máš nějaké zajímavé doporučení na konec, které by měl každý programátor vědět, tak sem s ním. 🙂

Pokud bych měl něco programátorům doporučit, tak aby byli otevření a zvídaví. Otevření více názorům. Vyslechnout si je. Zavrhnout se můžou vždycky. Být zvídaví, jak věci fungují. Nespokojit se s povrchní znalostí, ale dostat se až na jádro pudla.

Zůstaňte s námi v kontaktu

Jednou za měsíc posíláme souhrn novinek. Nemusíte se bát, spamovat vás nebudeme a odhlásit se můžete kdykoliv...

Karel Dytrych
Tým Váš Hosting
Vyzkoušejte náš trial na týden zdarma

Garance 14denní záruky vrácení peněz

Vyzkoušejte server na týden zdarma

Vyzkoušet server