Monday, November 28, 2016

2016-11-22 DevOpsDays Warsaw 2016

Kilka suchych faktów na początek

Dzięki uprzejmości Łódzkiego Juga oraz odrobinie szczęścia podczas losowania, miałem możliwość uczestniczenia w świetnej konferencji DevOpsDays Warsaw 2016, która była organizowana przez firmę Proidea i tak samo jak inna duża warszawska konferencja 4Developers, miała miejsce w hotelu Gromada blisko Lotniska Chopina.

Format

Na konferencji była jedna ścieżka, co dosyć mocno ułatwiało wybór. Prezentacje trwały po 30 minut, ale jedna godzina pierwszego dnia była poświęcon na tzw. Ignite talks, na który każdy mógł się zgłosić z 5 minutową prezentacją. Ponadto, na koniec każdego dnia przewidziane były open space'y, czyli dyskusje w mniejszych gronach na interesujące tematy.

Dzień pierwszy

Oczywiście zaczęło się od rejestracji, która poszła bardzo szybko i sprawnie (dużo szybciej niż na wspomnianej wcześniej 4Developers), więc na ceremonii otwarcia mieliśmy pełną salę. Szybka ankieta wśród uczestników wykazała, że procentowy udział devów i opsów był parktycznie 50 na 50%. Zaskoczeniem była jednak bardzo duża liczba ludzi z tak zwanego enterprise'a, względem ludzi ze startupów lub małych firm.

Talk #1: From Monoliths Trough Cloud Native to Software Supply Chains

Świetna prezentacja pokazująca jak kontenery zmieniły świat. Nie nasz, programistyczny, ale ten przemysłowy. Jak kontenery, dzięki łatwości transportu, pozwoliły przenieść fabryki dalej od brzegu morskiego i przyczyniły się do utworzenia łańcucha dostawców, którzy nie musieli znajdować się w jednym miejscu. Pozwoliło to też na specjalizacje poszczególnych firm. Było to o tyle ciekawe, że powoli będziemy dochodzili do takich samych specjalizacji: każdy będzie mógł dostarczać swoje, specjalizowane kontenery i duże firmy (jak Google, Facebook, Twitter) nie będą musiały budować całego stosu usług tylko będą korzystali z usług innych dostawców.

Talk #2: A Journey Towards SRE @ Ocado

Prezentacja otwierająca oczy na bardzo ciekawy fakt - operation zajmuje więcej czasu niż development. W miarę rozwoju systemów, zespół operation powinien być powiększany. Ale czy tak sie dzieje naprawdę? Inna bardzo ważna prawda, o której zapominamy, to fakt, że najważniejszy feature każdego systemu to: It works, co odnosi się do nowych, ale przede wszystkim do istniejących już funkcji systemu.

Talk #3: The OutSystems R&D Continuous Delivery Journey

Moim zdaniem jedna z najlepszych prezentacji na tej konferencji. Opowiadała o długiej drodze jaką przeszła portugalska firma, z której przybył prelegent. Z małego zespołu z ciekawym produktem i brakiem testów, udało im się zbudować Continuous Delivery w miarę przybywania nowych funkcji, integracji i ludzi. Po maksymalnie godzinie byli gotowi do przekazania artefaktów na produkcję.

Talk #4: DevOps Transformation Tailored to Organizational Culture

Jak zmienić kulturę swojej firmy w stonę kultury Devops? Okazuje się, że w każdej firmie są obecne różne kultury: hierarchiczna, klanowa, adhokracyjna oraz zorientowana na market. Najpierw musimy zrozumieć, jaką kombinację kulturową prezentuje nasza firma oraz w którą stronę chcemy iść. Co ciekawe z wielu analiz wynika, że firmy chcą dążyć do kultury adhortacyjnej i jest to właśnie transformacja DevOpsowa.
Ciekawostka: pierwszy raz widziałem na prezentacji link do Linkedin prelegenta.

Talk #5: The Song of JBoss and Chef

Była to ciekawa prezentacja, jak za pomocą narzędzia Chef zarządzać swoim klastrem JBossów. Nie było to proste, bo wymagało korzystania tylko z CLI JBossa (a dostawcy najbardziej lubią przesyłać instrukcje w formacie screenshotów...). Dzięki determinacji zespołu możliwe było powiększenie klastra o dwa dodatkowe węzły w jedną godzinę.

Talk #6: Building a Resilient Log Aggregation Pipeline Using Elasticsearch and Kafka

Świetna prezentacja, choć tempo jej prowadzenia było bardzo duże, by w 30 minut przekazać tak wielką ilość informacji i dobrych rad. Jeśli zarządzasz klastrem Elasticsearch to ta prezentacja jest właśnie dla Ciebie. Jeśli chcesz się dowiedzieć jak podzielić swój klaster, jak skonfigurować poszczególne węzły, by były zoptymalizowane pod kątem swojej funkcji, jak przydzielić do nich zasoby, to musisz to zobaczyć. Było tutaj też trochę informacji na temat konfiguracji Kafki jako scentralizowanego buffora, konfiguracji dostawcy logów oraz systemu operacyjnego dla takiego stosu technologicznego.

Talk #7: Contive – Container Networking Done Right with Cisco ACI Fabric

Najsłabsza moim zdaniem prezentacja, prowadzona przez dwóch prelegentów. Pierwszy z nich opowiedział o narzędziu Mantl opartego na Mesosie, a drugi prelegent skupił się na zaletach narzędzia Contive od Cisco.

Ignite talks

Miało być maksymalnie 10 prelegentów - było ich 5. Dobra rada dla organizatorów: zapisujcie nie tylko tytuły prezentacji, ale i zgłaszających je, bo potem prelegenci się nie zjawiają:)

Ignite talk #1: How to manage on calls rotation effortlessly

Bardzo ciekawa prezentacja o powiązaniu DataDog, PagerDuty, aplikacji na Heroku oraz Twilio do obsługi i przekierowania połączeń. Była ona szczególnie interesująca dla mnie, bo właśnie taką aplikację potrzebujemy wdrożyć.

Ignite talk #2: Invitation to TestWarez conference

Zaproszenie na konferencje TestWarez 2017 - tak po prostu:)

Ignite talk #3: DevOps mind of security & Ignite talk 4: Testing infrastructure

Szybka prezentacja, jakie mamy zasady (ssh wystawione na innym niż 22 porcie, zasady tworzenia haseł) oraz jaki jest wpływ czynników ludzkich (szczególnie skleroza i lenistwo) na bezpieczeństwo systemów. Jak sobie z tym radzić i czego pilnować? Mamy zestaw reguł opisany w STIGs - Security Technical Implementation Guides i powinniśmy z nich korzystać, a nawet automatycznie je sprawdzać za pomocą np. Ansible (Ignite talk #4).

Ignite talk #5: Puppet vs Chef vs Ansible vs Bash

Mamy dużo dostępnych narzędzi do automatyzacji - prelegent w ekspresowym tempie wyjaśnił, jakie są zalety i wady każdego z nich. Najważniejsze:
  • bash przegrywa, bo nie ma możliwości łatwego rollbacku, ale dla obrazów dockerowych jest najlepszy
  • puppet skompiluje wszystko na masterze - ale właśnie master jest potrzebny
  • chef - możesz spodziewać się błędów w runtime
  • ansible - najlepszy do fire & forget

Open spaces

Open spaces zaczęły się od propozycji - zebranych zostało około 13, a następnie każdy za pomocą formularza Google głosował na interesujące go tematy. Wybranych zostało 8 tematów. Dla mnie najciekawsze tego dnia były Continuous delivery pipelines (najciekawsze cześć dyskusji dotyczyła zagadnienia testowania pipeline'ów) oraz F**k ups - worst experience (aż włos się jeżył na głowie).

Dzień drugi

Pierwsze dwie prezentacje przeszły mi koło nosa, ponieważ korki w Warszawie postanowiły zorganizować mi dwugodzinną podróż na miejsce prezentacji. Tak zwane: dogodne miejsce konferencji blisko lotniska nie zawsze znaczy, że będzie łatwo się na nią dostać...

Talk #1 & Talk #2

W autobusie...

Talk #3: Nobody Puts Java in a Container

Dlaczego nie uruchamiać aplikacji Javowych na dockerze? Nigdy o tym nie myślimy. Prelegent przez większość czasu opowiadał o tym jak działa docker, o co chodzi z namespaces i cgroups, a dopiero ostatnie 5 minut traktowało o samej Javie. Tylko, że bez tak długiego wstępu trudniej byłoby zrozumieć dlaczego nie uruchamiać JVMów na dockerze. Problemem jest to, że mimo iż docker pozwala na ograniczenie dostępnej pamięci lub ilości procesorów, JVM w wersji 8 nic sobie z tego nie robi i uruchamia się widząc wszystkie zasoby maszyny pod spodem. Dlatego czasem wybór wirtualizacji jest lepszy od konteneryzacji, bo daje większą izolację.

Talk #4: Learning From Configuration Management

Prezentacja opowiadająca o problemach z jakimi spotykamy się przy automatyzacji, które też paradoksalnie są często wymieniane jako plusy, np. niezmienna architektura, centralizacja, ukryte zależności systemów operacyjnych. Aktualnie narzędzia te przypominają instrumentacje (zarządzanie z boku), a my potrzebujemy choreografii, czyli dynamicznego reagowania na zainstniałe sytuacje. Rozwiązaniem tutaj ma być narzędzie Habitat od Chef.

Talk #5: Managing Server Secrets at Scale

Konkretny problem i wspaniałe rozwiązanie do niego: mamy setki albo tysiące serwerów, każdy serwer potrzebuje kilku kluczy: kluczy ssh, klucz do szyfrowania dysku, serwera zarządzania konfiguracją, tokenów do aplikacji itp. Gdzie przechowywać takie klucze? Przecież nie będziemy ręcznie ich przepisywać z płaskich plików z naszych komputerów. Przy wielkich data center to jest niewykonalne. Z pomocą przychodzi nam tu UEFI i możliwość zapisywania zmiennych w specjalnej przestrzeni w BIOSie. Jest ona łatwo dostępna, ale też bardzo mała, dlatego nie zapiszemy tam wszystkich kluczy. Jednak wystarczy zapisać jeden klucz, a z niego w deterministyczny sposób wygenerować inne podczas uruchamiania systemu. Do tego właśnie służy narzędzie gokey.

Talk #6: How We Phased out Motivational System: About Motivation in DevOps Culture

Problem motywowania ludzi nie jest nam obcy. Wszyscy odkrywają, że pieniądze to nie wszystko. Wycieranie pieniędzmi łez spowodowanych przez smutne zadania i atmosferę w pracy często nie wystarczą. Prezentacja powinna być obejrzana szczególnie przez firmy, które chcą sprawić, by ludziom pracowało się lepiej. Mam szczęście pracować w firmie, która większość z przedstawionych tu rzeczy używa w praktyce, dlatego mogę gorąco polecić ten sposób prowadzenia firmy.

Talk #7: Monitoring and Log Management for Docker Swarm and Kubernetes

Dobre porównanie możliwości zarządzania logami, gdy mamy Kubernetesa lub Docker Swarma. Poza logami ważne jest też zbieranie metryk. Istotne jest to, że są to mechanizmy wbudowane w dockera. Dla naszych aplikacji musimy sami radzić sobie z agregacją logów i metryk.

Talk #8: The Pipeline: a Shift from Classic UI-based Job Configuration Tool to a Domain-specific Language

Od historii Jenkinsa (i Hudsona) do pipeline'ów w Jenkinsie 2.0. Niestety uważam, że co do samego tematu pipeline oraz DSL, dużo szybciej można byłoby pozyskać więdzę z tutoriali dostępnych w internecie...

Talk #9: Patching 100 OpenStack Compute Nodes with Zero-day Patch within 16 Hours

Prelegent skupił się na patchowaniu libvirta używanego w OpenStacku. Jeśli chcesz się dowiedzieć jak w 16 godzin wgrać łatkę do całej masy maszyn wirtualnych i zrestartować je, ale tak by klienci tego nie odczuli, to ta prezentacja jest właśnie dla Ciebie. Hint: wyłącz Tunneling :)

Open spaces

Ponownie przeszliśmy przez proces zgłaszania i wyboru tematów do dyskusji. Tym razem dla mnie najciekawszy temat Automatic log anomaly detection. Wnioski: jeśli jesteś dużą firmą, to albo już masz narzędzie do takiej analizy, albo stać Cię na enterprise'ową wersję oprogramowania. Jeśli jesteś małą firmą, to niestety piszesz coś własnego lub bierzesz narzędzie, które ktoś już oddał jako open source. Tylko, że jeśli coś staje się w tym przypadku dostępne, tzn. to są już dużo lepsze narzędzia.

Problemy

Konferencja nie ustrzegła się błędów i problemów. Przede wszystkim trudności przysparzało podłączanie komputerów przed prezentacjami. To zawsze zajmuje dużo czasu i zawsze coś pójdzie nie tak...

Kilka słów na koniec

Konferencję mogę z czystym sumieniem polecić wszystkim zainteresowanym tematyką DevOps lub administrowania systemami informatycznymi. Sponsorzy dopisali, a prelegenci byli w większości dobrze przygotowani. Polecam też obejrzenie nagrań z konferencji, które ku mojemu zdziwieniu, zaczęły się pojawiać już w trakcie drugiego dnia konferencji.
Idąc na konferencję zastanawiałem się, co jest największym problemem w świecie DevOpsów... Myślałem, że jest to wojna Kubernetes vs. Docker Swarm. Okazuje się, że problemem tym jest wdrażanie odpowiedniej kultury w firmach oraz zarządzanie logami. To było całkiem ciekawe odkrycie.

Sunday, November 20, 2016

2016-10-06 Mobiconf


Na przestrzeni roku udało mi się odwiedzić wszystkie największe konferencje poświęcone technologiom mobilnym. W dużej mierze dzięki współpracy JUG Łódź wraz z organizatorami tychże eventów. (Polecam aktywne wspieranie stowarzyszenia JUG :)) W poprzednich swoich wpisach miałem przyjemność zrecenzować MCE oraz Droidcon. Tym razem przyszedł czas na ocenę wydarzenia jakim jest Mobiconf odbywający się w Krakowie. 

Tegoroczna edycja Mobiconf jest już trzecią z rzędu. Po raz drugi została zorganizowana w Multikinie, nieco z dala od centrum miasta, dzięki czemu unikniemy trudności związanych z zakorkowanymi o tej porze ulicami.  Unikniemy również wszelkich problemów z parkingami co na samym wstępie napawa optymizmem po dosyć długiej podróży z okolic Łodzi :). 

Organizacja konferencji
Po wejściu do Multikina witani jesteśmy przez miły zespół organizatorów, który czuwa nad tym, aby rejestracja przebiegała sprawnie i jak najszybciej. Przychodząc kilka minut wcześniej, na pewno nie będziemy mieć problemu ze zdążeniem na keynote’a. W tym miejscu warto wspomnieć również o bogatym “pakiecie startowy”, jaki został przygotowany dla każdego uczestnika - każdy odwiedzający konferencję otrzymał kubek, torbę oraz koszulkę. Jest to na pewno miły gest ze strony organizatorów. Dla gadżetów jednak nie pokonuje się kilkuset kilometrów, pozostaje nam zatem dobudzić się kawą i wybrać na pierwszą, otwierającą prelekcję.

Prelekcje
Podczas konferencji mogliśmy uczestniczyć w około 27 zróżnicowanych prelekcjach, rozłożonych na dwa dni oraz zgrupowanych w trzech równoległych trackach. Wykłady zostały tak rozplanowane, aby każdy mógł znaleźć coś dla siebie. Mieliśmy do wyboru tracki w pełni poświęcone głównym platformom: Android, iOS oraz Everything mobile, na którym poruszone zostały zagadnienia związane z szeroko pojętym designem aplikacji mobilnych. Same prelekcje prowadzone były natomiast przez osoby doświadczone, nierzadko z tytułem GDE. 

Ze względu na swoją prace zarówno z Androidem oraz iOS’em, wybierałem różne tracki, tak aby skorzystać z konferencji jak najbardziej. Mobiconf przyciągnął jako speakerów kilka rozpoznawalnych i znanych mi wcześniej z innych eventów osób. Jest to niewątpliwy plus, gdyż możemy posłuchać prelegentów, których prezentacje do tej pory mogliśmy jedynie spotkać na zagranicznych Droidcon’ach.

Jako, że konferencja posiadała ogromną ilość prelekcji, myślę iż warto skupić się przede wszystkim na tych, które zapadły mi w pamięci oraz znacząco wyróżniały się spośród pozostałych. Tradycyjnie każda konferencja powinna mieć mocne wejście, tak i było też w tym przypadku. 

Keynote uważam za najbardziej udany, chociaż nie poruszał bezpośrednio tematyki mobile. Kevlin Henney w swoim talku zatytułowanym “The programmer” poruszył zagadnienia, z którymi wszyscy programiści mają na co dzień do czynienia. Jakość oprogramowania, paradygmaty, detale - rzeczy, które są ważne dla każdego dewelopera tworzą istotę tej profesji. Kevlin porównując pracę programisty do pracy artysty sprawił, iż każdy ze słuchaczy mógł inaczej spojrzeć na wykonywany przez siebie zawód.

Konferencja poświęcona technologiom mobilnym, powinna jednak posiadać kilka mocnych prelekcji dotyczących samego mobile. Najlepszą według mnie zafundowała nam Anastasiia Voitova. Podczas “Building user-centric security model in iOS applications” poruszona została tematyka zabezpieczenia aplikacji iOS’owych przed atakami. Prelekcja poprowadzona w bardzo luźny sposób zwracała uwagę na istotne kwestie dotyczące bezpieczeństwa. Często zabezpieczenia w aplikacji kończą się jedynie na wykorzystaniu protokółu HTTPS, jednak jest to tylko czubek góry lodowej, o czym mogliśmy się przekonać podczas prezentacji.

Ogólne wrażenia

W ostatnim czasie uczestniczyłem w wielu konferencjach poświęconych technologiom mobilnym. Mobiconf na pewno zasługuję na pozytywną opinię, biorąc pod uwagę organizację wydarzenia. Jeżeli chodzi o odbiór samych prezentacji, myślę iż jest to zawsze kwestia indywidualna. Z tego też powodu, abyście sami mogli się przekonać czy warto odwiedzić tą konferencję zapraszam serdecznie do obejrzenia z niej relacji.  W momencie, gdy tworzę tą recenzję, organizatorzy przygotowali oraz udostępnili już część prezentacji do obejrzenia. Można je znaleźć na kanale Youtube Moibconf.

Tuesday, November 1, 2016

2016-10-22 Mobilization 2016

Zmobilizowani Studenci
Na konferencji Mobilization przybyła grupa studentów 4 roku informatyki na PŁ. Ogólnie wszyscy byliśmy miło zaskoczeni profesjonalnym zorganizowaniem jak i tematyką. Poniżej przedstawię opinie moich kolegów jak i moją nt. konferencji.

Paweł
Konferencja była na bardzo wysokim poziomie zarówno merytorycznym jak i organizacyjnym. Jak dla mnie najbardziej wartościowe prelekcje odbywały się w Auli chodzi mi o cały blok dotyczący reaktywnego programowania (prelegenta z Francji mało co zrozumiałem ale sam prywatnie zgłębiłem temat ), natomiast najciekawsza prelekcja była w sali Mobici dotyczyła beaconów, prelegenci opowiadali  na temat profesjonalnie i zaskakująco. o tym opowiadali. Życzyłbym sobie jak i innym żeby każda prelekcja zawierała tyle humoru i tyle wskazówek co ta. Po konferencji odbyło się party gdzie można było porozmawiać , poznać nowych deweloperów. W następnym roku biore w ciemno wejściówkę jak tylko się pojawi. Najlepsze stanowisko miała firma Harman która pokazywała zabawki które tworzą do Mercedesów klasy S.

Mariusz
Świetna konferencja. Dużo ciekawych prezentacji oraz profesjonalna organizacja. Osobiście najbardziej podobała mi się pierwsza prezentacja, którą prowadził TomTom. Temat dotyczył dronów jako "pomoc domowa", a dokładniej utworzenia mapy pomieszczenia i kazanie dronowi przenieść obiekt z punktu A do punktu B. Pokazane na niej był proces tworzenia mapy pomieszczenia na podstawie zdjęć, dopasowywania kawałków mapy na podstawie krawędzi obiektów oraz ogólnie pojętego przetwarzania obrazu w czasie rzeczywistym. Kolejną ciekawą dla mnie prezentacją była prezentacja o możliwościach języka Kotlin, prowadzona przez Francisco Estevez'a. Pokazane na niej były przykłady rozwiązań pewnych problemów właśnie z użyciem Kotlin'a, co doskonale pokazywało jego możliwości i prostotę. Bardzo podobało mi się również to, że przyszło bardzo dużo firm i można było porozmawiać z ich przedstawicielami na temat technologii przez nich używanych, czy na temat projektów które są przez nie realizowane i na przykład zostawić im swoje CV. Przychodząc na Mobilization nie wiedziałem, że można dowiedzieć się tylu ciekawych rzeczy w tak krótkim czasie. Mogę jednak z pewnością powiedzieć, że się nie zawiodłem i z pewnością udam się kolejną tego typu konferencję.

Kamil
ogólnie prelekcje na wysokim poziomie. Fajnie, że wszystko po angielsku, co pomaga się też wtłoczyć w język branżowy, choć niektórych ciężko było zrozumieć (mam na myśli prelegenta z Hiszpani).
Stoiska i poczęstunek - super, konkursy zadowalające.
Najlepsza prelekcja według mnie - ex aequo "Taming your node_modules with Yarn" oraz "(B)VIPER module applications" czy jakoś tak.
Jednym słowem konferencja, na którą warto się udać.


Dominik
Najlepsza prelekcja: Taming node_modules at facebook gdzie Konstantin Raev pokazał nowy menedżer pakietów dla node js o nazwie yarn który jest szybszy i bezpieczniejszy od npm  dodatkowo sam katalog node_modules.
Najgorsza prelekcja: Jedna prelekcja dla mnie była słaba głównie z powodu chaotyczności prelegenta.
Co mi się podobało: Przede wszystkim klimat konferencji i prelekcje.
Co mi się nie podobało: NIC!
Sama konferencja mi się podobała chociaż technologie mobilne to nie jest coś w czym pracuje albo się rozwijam ale zawsze takie wydarzenie pozwala poszerzyć horyzonty i zobaczyć że istnieje świat poza webem.

Mariusz
Mobilization VI, jest pierwszą edycją tej konferencji, w której miałem przyjemność wziąć udział. Organizatorzy postarali się, aby nie dało się nudzić.  Wiele tematów prezentacji, wśród których każdy mógł znaleźć coś dla siebie, a w przerwach możliwość porozmawiania z przedstawicielami firm na stoiskach, gdzie dodatkowo organizowane były konkursy i można było zdobyć ciekawe gadżety. Dodatkowo całość konferencji była przeprowadzona w militarnym klimacie, co dodało fajnego „uroku” całej imprezie. Organizatorzy zapewnili również, aby uczestnicy konferencji nie doznali głodu i pragnienia. Na korytarzu były przygotowane stoiska z jedzeniem i piciem, a także zapewniono ciepły posiłek obiadowy.
Wśród prezentacji najbardziej zaciekawił mnie wykład o tytule „Break the monolith with (B)Viper Modules. Or how do I start modularising my code for a better (engineering) life”. Nicola Zaghini przedstawił bardzo ciekawy sposób rozbicia aplikacji mobilnej na warstwy, którego wcześniej nie miałem okazji spotkać. Co więcej prezentacja była przeprowadzona w sposób bardzo zrozumiały oraz autor pokazywał przykłady kodu obrazujące to co mówił.
Mobilization jest konferencją, na którą na pewno warto się wybrać. Jedyne do czego mogę się przyczepić to brak prezentacji dotyczących Windows Phone (przynajmniej ja takich nie zauważyłem). Pomimo tego, że najmniej popularny system mobilny, to uważam, że powinien pojawić się na tego typu konferencji. Zabrakło mi również prezentacji o Xamarinie. Technologia bardzo niedoceniania, a myślę, że warto o nich posłuchać. Pomimo tych dwóch rzeczy, myślę, że nie ma co  narzekać, bo i tak było o czym posłuchać. Chętnie wybiorę się na kolejną edycję Mobilization.

Adam
Mobilization to najciekawsze wydarzenie organizowane przez łódzkiego JUG’a oraz zdecydowanie najlepsza konferencja programistyczna w Łodzi. Organizatorzy nie poszli na łatwiznę. Prelegenci wygłaszający wykłady zjechali się z wielu zakątków świata, aby dzielić się z nami swoją wiedzą i doświadczeniem. Każdy mógł znaleźć wśród wygłaszanych tematów coś dla siebie. Z tych najbardziej interesujących pojawiły się smaczki związane z programowaniem funkcyjnym, pomocami dla developerów Androida, zagadnieniami inżynierii oprogramowania, a nawet ku zaskoczeniu analizą obrazu i dronami. Oczywiście to tylko garstka z poruszonych tematów. Na pewno na żadnej z prelekcji nie można było odnieść wrażenia zmarnowanego czasu. Jak się można domyślić to nie wszystko. Stoiska firm związanych z łódzkim świadkiem IT też zasługują na oklaski. Na każdym z nich czekał na nas ktoś gotowy zaspokoić naszą ciekawość odpowiadając na nasze pytania. A gdyby komuś było jeszcze mało na deser czekały na niego wspaniałe nagrody i upominki. Całe wydarzenie zasługuje na piątkę z plusem. Kto się nie pojawił, niech koniecznie wpada za rok!