Człowiek w ciągu miesiąca powinien przespać około 160 godzin, drugie tyle pracować, a 20 godzin poświęcić na delektowanie się kakałkiem. Na hobby nie zostaje wiele czasu. Chyba, że tak jak ja jesteście zajarani swoj ą pracą i na myśl o konferencjach programistycznych czujecie przyjemne mrowienie w okolicach karku.
Rzadko kiedy zdarza się dla mnie tak obłożony miesiąc jak miniony kwiecień: 4 konferencje, 1 warsztat, czyli 6 dni poświęconych na eventy programistyczne. Uczestniczyłem w serii wykładów, liznąłem sporą dawkę wiedzy, zaczerpnąłem inspiracji. Gdzie moje szacowne sporo (chodź na szczęście z każdym dniem coraz mniej) kilogramów zawitało? Mianowicie na:
- 4 Developers
- GET.NET
- Code Europe
- Microsoft Tech Summit
Dodatkowo uczestniczyłem w warsztatach organizowanych przez StacjeIT Rancher - jak z łatwością zarządzać Dockerem w produkcji.
Nie chcąc przesadnie się rozpisywać wspomnę tylko najciekawsze wykłady z każdej konferencji oraz naskrobie jakieś małe podsumowanie plusów i minusów.
4 Developers
Dzisiaj na #4Developers :) pic.twitter.com/fZa71X5YZ1
— Kamil Kiełbasa 🤟 (@_bd_90) April 9, 2018
Dziewiąty kwietnia, hotel Sangate, nic nie zapowiadało tego co nastąpi. No, nie licząc ulotek, plakatów i zaproszeń. Nie ważne. Na samo 4 Developers wybierałem się od kilku lat. Nie dane było mi wcześniej liczyć na to szczęście. A to chory byłem, kiedy indziej pieniądze przepierdzieliłem i wolałem mieć co jeść do końca miesiąca niż uczestniczyć w konferencji etc.
Real-time capabilities in ASP.NET Core web applications
Pierwsza prezentacja była jak mocna kawa na sam początek dnia. Nikt nie wyobrażał sobie lepszego początku. Tomasz Pęczak opowiedział o dzisiejszych możliwościach programowania aplikacji RealTime. Bardzo mi się podobało, że nie było to kolejna prezentacja możliwości SignalR, których jest już mnóstwo na youtubie. Tomasz zaprezentował 3 sposoby na komunikację z użytkownikiem strony internetowej:
- WebSocket
- Server Send Events
- Push Notification
Baaaardzo dużo mięska w prezentacji, bez skupiania się zbyt długo na kodzie. Nie było live codingu. I szczerze? Popieram. Subiektywnie, ale uczciwie, stwierdzam, że pisanie wykutego na blachę kodu przed publicznością zajmuje za dużo czasu i mija się z celem.
CQRS w 4 krokach
Dobra opowieść powinna mieć wstęp, rozwinięcie, zakończenie i kakałko. Napój przywiozłem sam. Początek zwalał z nóg. A zakończenie? Radosław Maziarka zaprezentował swoje podejście do budowy / przebudowy aplikacji do architektury CQRS za pomocą biblioteki MediatR. Osobiście korzystam z niej w kilku aplikacjach produkcyjnych i mogę wam powiedzieć, że jest po prostu świetna :) Jakiś czas temu napisałem artykuł o tym, jak zacząć z nią przygodę.
Radosław w swojej prezentacji pokazał, jak za pomocą 4 kroków, przejść ze standardowej aplikacji MVC, do CQRS. Dodatkowo opisał jakie korzyści płyną z takiego podejścia. Historia zakończyła się happy endem.
Distributed .NET Core
Ostatnia prezentacja jaka znalazła się na moim podium. Prezentuje Distributed .NET Core od Piotra Gankiewicza i Dariusza Pawlukiewicza. Prezentacja przeprowadzona głównie w Visual Studio Code, co traktuje jako małą skazę. Pokazywanie architektury rozproszonej za pomocą kilku debugger-ów nie ułatwia skupienia na temacie, za ś utrudnia jego ogarnięcie. Nie mniej chłopaki odwalili kawał dobrej roboty. W swojej przykładowej aplikacji pokazali jak wykorzystać RabbitMQ, jak przeprowadzić autoryzację i uwierzytelnianie użytkownika czy jak zachować spójność danych przy wykorzystaniu mikroserwisów.
Podsumowanie
Konferencja była całkiem spoko. Poziom prezentacji był rożny, raczej zmienny, jednak większość z nich niosła ze sobą nową wiedzę :).
Głównym minusem była lokalizacja samej konferencji. Klatka schodowa była bardzo wąska, a do tego spora część ludzi chodziła z gorącymi napojami. Na szczęście nie ucierpiałem z tego powodu, chociaż kilka razy było blisko.
Innym sporym minusem była temperatura w niektórych salach. Np. podczas prezentacji Distributed .NET Core ledwo wytrzymałem w tym upale.
Na zakończenie jeszcze mały plusik - byłem pozytywnie zaskoczony treściami przekazywanymi podczas prelekcji dotyczących umiejętności miękkich. Dotarłem na kilka z nich, w tym na omawiano sposobów rozmowy z biznesem, bycie liderem technicznym, rozmowy z rekruterami czy znajdowanie najlepszej dla nas pracy. No i zapomniałbym o najważniejszym z elementów: dojazd był całkiem spoko :)
GET.NET
Teraz pozostało czekać na wykłady #getnet #neverstoplearning pic.twitter.com/ekagqB9bXA
— Kamil Kiełbasa 🤟 (@_bd_90) April 14, 2018
Kilka dni później, 14.04, w Łodzi, odbyła się konferencja w GET.NET. Wybraliśmy się tam całą ekipą programistów z Polskiego Radia. Zawsze fajniej jest jeździć w większej grupie. Odległość była problemem. Za blisko by nocować, za daleko by się wyspać. Muszę jednak przyznać, że ulica na której mieszkam prezentuje się ładnie o tak wczesnej porze.
5:30 Trzba ruszać na #getnet 🤓 pic.twitter.com/3wz8609KsR
— Kamil Kiełbasa 🤟 (@_bd_90) April 14, 2018
Zanim się wszyscy zebraliśmy, dojechaliśmy na miejsce i zaliczyliśmy McDonalda, nastała godzina 8. Mieliśmy szczęście, wtedy właśnie otworzono rejestracje. Lubie przyjeżdżać wcześnie na konferencje. Zwiększa to szanse na dobre miejsce parkingowe. Sama konferencja odbyła się w Centrum Dialogu. Urokliwa lokalizacja otoczona parkiem jest prawdopodobnie najładniejszym łódzkim miejscem przeze mnie widzianym.
CLOUD NATIVE .NET
I znów, podobnie jak w przypadku 4 Developers, pierwsza prezentacja okazała się najlepszą. Prowadził ją Mark Randle, który opowiadał o tym w jaki sposób można podejść do tworzenia aplikacji rozproszonych w chmurze. Było tutaj trochę wszystkiego: począwszy od .NET Core, po kontenery Docker-a, na Kubernetes-ie kończąc. Mark opowiadał o tym jak stworzył oprogramowanie służące do tworzenia prezentacji. Nie było to jednak coś w rodzaju biblioteki Reveal.js tylko system zbudowany na architekturze mikroserwisów. Można było śledzić prezentacje równo z prowadzącym, jak też zadawać pytania prowadzącemu. Bardzo fajny pomysł :)
PROGRAMOWANIE NA PLATFORMĘ MIXED REALITY Z WYKORZYSTANIEM HOLOLENS.
Do mojej listy top 3 prezentacji z GET.NET wskakuje Rafał Legiędź, który zaprezentował możliwości Mixed Reality za pomocą urządzenia Hololens. Może nie jest to coś, z czym na dziś dzień potrzebowałbym pracować, jednak liczę, że w swojej pracy będę mógł się kiedyś "pobawić" takim urządzeniem. Własnych środków raczej nie zainwestuje, ponieważ z tego co widziałem developer kit kosztuje około 14 000 zł... trochę za dużo jak na moją kieszeń. Dodatkowo wersja podstawowa kosztuje jeszcze więcej.
APLIKACJA + CHMURA + BEZPIECZEŃSTWO => CO MOGŁOBY PÓJŚĆ ŹLE!
Moje podium zamyka prezentacja przeprowadzona przez Tomasza Onyszko z firmy Predica. Poruszono na niej temat podstaw bezpieczeństwa w chmurze Azure, czyli:
- Nie używanie haseł i loginów do usług zaszytych w kodzie. Jeżeli jakaś aplikacja, funkcja lub cokolwiek musi się odwoływać po loginie i haśle, powinna pobierać te dane w bezpieczny sposób z usługi Azure Key Vault.
- Zasoby powinny mieć stworzone "Service Principal", aby Azure Active Directory zarządzał dostępami do nich.
- Azure Active Directory jest czymś więcej niż tylko zarządzanie kontami firmowymi.
Podsumowanie
GET.NET wywołała na mnie wielkie wrażenie. Zdecydowanie była to najlepsza z kwietniowych konferencji. Prelekcje były na bardzo wyrównanym poziomie. Co więcej - wysokim. Duża dawka nowej wiedzy została mi przekazana, a to przecież clue konferencji ;) Miłym dodatkiem była dobra pogoda i leżaki do poleżenia na słońcu.
Code Europe
Po 50 minutach stania w kolejce, w końcu na @code_europe :) pic.twitter.com/Cir2iOafkj
— Kamil Kiełbasa 🤟 (@_bd_90) April 24, 2018
Następną, lecz nie ostatnią konferencją, była odbywająca się 24.04 Code Europe. Mam do niej mieszane odczucia (i tu nie chodzi mi już o "gównoburzę" jaka została wywołana przez jedną Panią z Twittera). To moja druga wizyta na CE. Wcześniejszą wspominam całkiem przyjemnie. A teraz?
Dzień zacząłem od 50 minutowej kolejki. Rozumiem, że dużo osób się zarejestrowało (cena była bardzo niska), że w tej edycji było sporo mniej stoisk sponsorskich, ale jedna czy dwie dodatkowe bramki przy rejestracji tak mocno nie obciążyłyby budżetu. Momentami ludzie docierali do schodów stadionu narodowego... Dobra, pożaliłem się na kwestie organizacyjne, teraz przejdźmy do najważniejszej rzeczy na konferencji: top 3 prezentacji.
MvvmCross + Xamarin.Forms - raport z pola bitwy
Prezentacja Damiana Antonowicza zaskoczyła mnie pozytywnie. O dziwo fascynuje mnie słuchanie na temat: "Spróbowaliśmy danej technologii, jednak nie wyszło". Damian opowiadał, dlaczego framework MvvmCross nie sprawdził się w projekcie aplikacji mobilnej na platformie Xamarin, którą się zajmował. Przedstawił kilka błędów samego framework-a, jak i problemy z jakimi się spotkał.
Distributed Failure: Learning From Aviation
Na drugie miejsce wskoczyła prezentacja autorstwa Andrew Godwina, Senior Developer-a z Eventbrite i core developera takiego "mało" znanego framework-a python Django. Opowiadał o konieczności zachowania rozwagi w programowaniu, ponieważ mały błąd może zaważyć na życiu innych osób (dosłownie na życiu). Nawiązał przy tym do branży lotniczej, w której kierują się maksymą "Zasady są napisane krwią".
Authentication and Authorization in ASP.NET Core
Roland Guijt zamyka podium. Niektórym może być znany z kursów jakie stworzył na platformie pluralsight. Opowiedział o autoryzacji i autentykacji na przykładzie aplikacji zbudowanych w ASP.NET Core. Ciekawie i klarownie przedstawił różnicę pomiędzy identyfikowaniem użytkownika w monolitycznej aplikacji a w rozproszonym systemie. Dodatkowo pokazał pouczające przykłady wykorzystania ASP.NET Core Identity jak i IdentityServer.
Podsumowanie
Zdecydowanie nie była to najlepsza edycja Code Europe. Nie zmienia to faktu, że to wciąż miłe wydarzenie, gdzie można spotkać wielu znajomych, dowiedzieć się kilku nowych rzeczy a zarazem trochę odpocząć od codziennej pracy :) Mam nadzieje, że na przyszłej edycji organizatorzy rozładują te kolejki, albo przynajmniej zaczną rozdawać oczekującym kakałko.
Microsoft Tech Summit
Yesterday was @code_europe today #microsofttechsummit :) with @kowalski_it pic.twitter.com/ReXJ8jYOhn
— Kamil Kiełbasa 🤟 (@_bd_90) April 25, 2018
Ostatnią kwietniową konferencją był Microsoft Tech Summit. Z racji, że wszystko miało miejsce na hali Expo XXI Warszawa, to miałem blisko. Wszyscy wiemy, że Microsoft jest ogromną korporacją, więc i konferencje organizują z rozmachem. Od wejścia było widać blichtr i fundusze. W odróżnieniu od pozostałych konferencji tego miesiąca, skupiłem się na warsztatach (zawitałem jedynie na prezentacji Azure - Cloud for All prowadzonej przez Jeffrey-a Snover-a z udziałem Gustav-a Kalety). Co nie znaczy, że nie będzie listy. Ja. Kocham. Listy. Nie jak kakałko, ale cóż. A i nie ma miejsc. Tak napisałem co mi się przypomniało.
Build and manage your applications on Azure
Porządne wprowadzenie do Azure App Service, Azure Function, Azure Virutal Machine i Azure Virtual Network. Warsztat był przeprowadzany w systemie Hands on Lab, czyli każdy uczestnik otrzymał swoją maszynę wirtualną, na której mógł podążać za prowadzącymi i przygotowaną listą zadań. Tempo było odpowiednie, pośpiech nie był konieczny.
Continuous Delivery in VSTS and Azure – Whiteboarding session
Warsztat, co do którego miałem całkiem inne oczekiwania. Myślałem, że będzie tutaj więcej kodzenia i tworzenie pipeline-ów w VSTS-ie. Spotkała mnie przykra niespodzianka niczym kakałko na wodzie. Warsztat polegał na tym, że sala została podzielona na grupy 6 - 10 osób. Każda z nich miała za zadanie omówienie i rozpisanie procesu DevOps-owego dla wymyślonego przedsiębiorstwa, które chce ulepszyć swój proces deploymetu i developmentu aplikacji. Na koniec, prowadzący przedstawili kilka dem pokazujących, jak od zera skonfigurować CI i CD za pomocą VSTS, Azure Container Registry, Docker, Azure App Service.
Explore Web App for Containers on Azure
Na koniec zahaczyłem o wprowadzenie do konteneryzacji aplikacji opartych na Azure App Service. No i co można rzec? Porażka. Spodziewałem się, że tak jak przy Build and manage... każdy dostanie maszynę wirtualną i do boju. Niestety, wszystkie kroki wykonywało się na własnym komputerze. Dodatkowo należało mieć aktywną subskrypcje Azure. Ja jednak jak ja. Grzesiek, mój kolega z pracy, miał ze sobą laptop wyposażony w Windows 10 Home. No nie? Ehh. Hmn? A, no, dla tych co się nie zajmowali wcześniej: konieczny do zadań Docker ze sterownikiem Hyper - V na dziesiątce działa... no tak w ogóle nie działa. Na dodatek nie było to dla mnie nic nowego. Spodziewałem się fajerwerków a otrzymałem konfiguracje Gitlab-CI do tworzenia automatycznych deploy-i na Azure App Service.
Podsumowanie
Najbardziej na konferencji MS Tech Summit podobała mi się organizacja. Pomimo tego, że były tam tłumy (konferencja była darmowa) to przy rejestracji nie było żadnych kolejek. Ba... jedyną kolejkę jaką widziałem to wejście na główną sale podczas keynot-a, kiedy to tłum ludzi wchodził do głównej sali. Po raz pierwszy na konferencji widziałem zarządzanie ruchem. Stworzono dwie linie kierowane i pilnowane przez pracowników informacyjnych. A i zapewniono jedzenie. Po prostu organizacja na niesamowitym poziomie.
Słowo końcowe
Tak w skrócie wyglądał mój kwiecień, nie licząc rzecz jasna pracy, własnych projektów czy czasu dla dziewczyny. Nie pamiętam kiedy ostatnio byłem tak zmęczony. Cieszy mnie to niemiłosiernie i liczę, że spotka mnie jeszcze kilka takich sprintów ^^
Z tego miejsca chciałbym podziękować ekipie polskiego radia za wspólne wypady :)
Polecam też każdemu kto jeszcze nie próbował aby pojechać na jakąś konferencję. Naprawdę to jest bardzo fajne doświadczenie.
Do Następnego!
Cześć :)