Sunday, May 8, 2016

2016-04-21 Mobile Central Europe

Promując konferencję Mobile Central Europe jako Mobilization i JUG Łódź udało się nam wypromować 22 wejściówki (22 osoby użyły kodu zniżkowego mobilization-juglodz). Zgodnie z umową z organizatorami MCEConf otrzymaliśmy 4 wejściówki, które rozdyspowaliśmy wśród Tomka Zielińskiego, Maćka Przybylskiego, Marcina Iwanickiego, Tomka Płuciennika. Witold Olejniczak zdobył wejściówkę w konkursie na wpis o Mobilization a Mariusz Saramak i Marek Defeciński kupili swoje wejściówki :). Zgodnie z tradycją w zamian za darmowe wejściówki oczekujemy recenzji na blogu JUGa. Recenzję z tegorocznej Mobile Central Europe zrobiliśmy w formie 10 pytań do. Oto odpowiedzi uczestników.
Otwarcie MCEConf

  1. Czego oczekiwałeś jadąc na konferencję i czy Twoje oczekiwania zostały spelnione?



MD - Ostatnio czuję, że coraz mniej “ogarniam” technicznie, więc chciałem dostać dobry technicznie przekaz i dostać motywację do samodzielnego zgłębiania tematu. Moje oczekiwania zostały spełnione, dużo prelekcji mi się podobało.


TZ - Za każdym razem, gdy wybieram się na konferencję, mam nadzieję nadrobić swoje braki w nowinkach. Codzienna praca często nie pozwala być na czasie z dynamicznie rozwijającą się technologią. Prelekcje zatem traktuje jako przetarcie szlaku w zapoznawaniu się z nowymi bibliotekami, które czasem również rzucają nowe spojrzenie na wzorce projektowe, ich zastosowanie i wykorzystanie.
Czy moje oczekiwania zostały spełnione? Myślę, że tak. Uważam tą edycję MCE za bardzo przyjazną developerom.


WO - Obecnie pojawia się tyle nowych bibliotek, że bardzo trudno nad wszystkim nadążyć, dlatego dobrze jest czasem posłuchać, które z tych nowinek są warte uwagi - czy MCE spełniła moje oczekiwania w tej kwestii… - nie mogę narzekać, ale niedosyt pozostał, zwłaszcza w tematach “niedeveloperskich”.


MP - Ponieważ jedyna konferencja na jakiej byłem to “Mobilization”, która jest darmowa chciałem zobaczyć jak to wygląda na konferencji płatnej. Drugim czynnikiem była cheć poznania nowości ze swiata androidowego. Myśle ze MCE po częsci spełniła pokładane w niej nadzeję jednak było też sporo rozczarowań.


TP - Jeżeli chodzi o prelekcje dot. iOS/Swift etc. To uważam, że były na poziomie podstwowym albo początkującym. Spodziewałem się bardziej technicznej konferencji, tips/tricks, podanie życiowych problemów i różne podejść do nich. Nic z tych rzeczy nie zaobserwowałem.


MI - Konferencje są dla mnie wydarzeniami, które pozwalają zatrzymać się na moment, wyrwać z rutyny, pozwalają na konfrontację własnych przekonań z przekonaniami innych osób, zwykle stokroć bardziej ogarniętych niż ja. Poza zastrzykiem świeżych wiadomości zaspokajają ciekawość, np. jakim na co dzień człowiekiem jest osoba, której autorstwa bibliotekę używasz od dawna, a której źródła w jakiś sposób wywarły na Tobie spore wrażenie; czy jest bucem? maniakiem? a może tylko i aż utalentowanym spoko-ziomalem? :) Konferencje to również znakomite miejsce spotkań z osobami, które lubimy, a z którymi nie mamy okazji widzieć się na co dzień; np. z osobami, którymi mieliśmy okazję współtworzyć świetny projekt lub przeklinać klęskę.
Tak, moje oczekiwania zostały spełnione.


MS - Uważam, że każdy developer powinien pojechać przynajmniej raz w roku na konferencję dla developerów. MCE - ma w nazwie Mobile - a ja jestem Mobile developerem więc - byłem :).

  1. Która prelekcja była najciekawsza i dlaczego?



MD - Life without fragments prowadzona przez dwóch Włochów. Prezentacje z dwoma prelegentami są raczej trudne do zrobienia w ciekawy sposób a im się ładnie udało. Nie wchodzili sobie w drogę i nie było też długich niepotrzebnych przerw przy zmianach prelegentów.
Podobała mi się też prelekcja Scotta-Alexandra o Android security - ponieważ zawierała praktyczne i proste porady do wzmacniania bezpieczeństwa. Kilkulinijkowe kody źródłowe, które można przekleić do swojej apikacji.


TZ - Pod względem merytorycznym i poziomem prezentowanego materiału, uważam że prezentacja Gregorego Kicka dotyczącą Daggera 2 była naprawdę dobra. Zastosowanie Daggera w projektach Androidowych mocno łączy się z projektowaniem samej aplikacji i myślę, że jest to kluczowe dla tej platformy systemowej.
Warto jednak wspomnieć prezentację Scotta Alexandra-Bowna poruszającą zagadnienie bezpieczeństwa w Androidzie. Często aspekt bezpieczeństwa technologii mobilnych jest pomijany podczas tworzenia oprogramowania. Scott pokazał jednak, że bardzo małym kosztem możemy solidnie zabezpieczyć naszą aplikację.
WO - najbardziej do gustu przypadła mi konferencja dotycząca bezpieczeństwa w Androidzie. Temat dość istotny, a o którym za wiele nie wiem. Dobrze, że Scott skupił się na konkretnych przykładach i ich zastosowaniu.


MP - Najlepsza prelekcja była Scotta-Alexandra o Android security, zawierała dużo ciekawych informacji odnośnie bezpieczeństwa platformy, które nie tak łatwo znależć w internecie, ponadto było sporo użytecznych kawałków kodu.


TP - Chociaż starałem się być na prelekcjach dot. Platformy iOS najciekawsza była od ponów z polidea https://github.com/Polidea/RxAndroidBle. Fajne podejście, pokazane jak porządnie robić rzeczy typu open source + zaobserwowany tool stream dla Android (Chrome plugin). Duży plus dla nich.


MI - Najbardziej do gustu przypadły prezentacje Asha Furrowa i Natashy (The Robot) Murashev. Pierwsza z tych prezentacji (Asha) była bardzo nietechniczna ale poruszała bardzo istotny, z mojego punktu widzenia, temat komunikacji. W dodatku szczerość, otwartość, ciepłe i życzliwe podejście, którym mógł zarażać sprawiły, że będę pamiętał tą prezentację jeszcze bardzo długo. Prezentacja Natashy też była super, nie, nie było w niej efektu wow, przecierania oczu, temat dość prosty ale “zaserwowany” w znakomitej formie. Świetna osobowość plus bardzo przemyślana prezentacja. I Jon Reid też fajnie!


MS - lubię wzorce projektowe i architekturę, dlatego trudno mi wybrać, bo były 3 prezentacje o Clean Architecture, ale fajnie. że tak było, byłem na trzech i wszystkie pokazały różne podejścia do tego samego tematu. To na +.  Z stricte technicznych - najlepsza o security. Na tej prezentacji i na innych padło: “Lepiej proś o przebaczenie, niż o pozwolenie”, Czy czyta to jakiś manager ? Co się dzieje z firmami, dlaczego developerzy muszą ukrywać dobre rzeczy?  Pod wpływem: https://vimeo.com/110554082 oglądałem przed chwilą - polecam.
Jedna z wielu prelekcji o architekturze w aplikacjach Android

  1. Jakie prezentacje wybierałeś? Produktowe czy techniczne?



MD - Wybierałem techniczne prezentacje a jak nie było dopiero wtedy produktowe. Kilka razy pomyliłem sale i już zostałem :D


TZ - Interesowały mnie zarówno prezentacje techniczne jak i produktowe. Każdy inżynier w swojej karierze dochodzi do momentu, w którym nie tylko aspekty czysto techniczne są najważniejsze. Musi wyjść ze swojej strefy komfortu, oraz spojrzeć na swoją pracę jako produkt, który dostarcza końcowym użytkownikom.
Większość konferencji zazwyczaj skupia się na aspekcie technologicznym, MCE natomiast pod tym względem jest wyjątkowa, gdyż dostarcza wiedzy nie tylko technicznej, ale również biznesowej. Uważam również to za największy plus konferencji.


WO - w ciągu ostatniego roku byłem już na dwóch technicznych konferencjach, a niestety tematy często się powtarzają, dlatego tym razem chciałem zobaczyć coś więcej o produktach i designie, dlatego te prelekcje starałem się wybierać w pierwszej kolejności.


MP - wybierałem prezentacje techniczne jako że ta częśc najbardziej mnie interesuje. Raz odwiedziłe m prezentacje produktową na której bardzo się wyndudziłem  


TP - tylko prezentacje ‘techniczne’.


MI - Prawie wszystkie techniczne i związane z iOS.

MS - o architekturze, techniczne, trochę miekkich - bo musimy nauczyć się gadać ze światem, niestety - nietechniczne były nudne :)

  1. Czy poznałeś kogoś interesującego podczas przerw na networking?



MD - W tym roku dużo faktycznie rozmawiałem z ludźmi przez co ciągle się spóźniałem na prelekcje


TZ - Na każdej konferencji spotykam sporo znajomych osób, bywalców wszelkich eventów, przez co częściej nadrabiam zaległości w znajomościach, a czasu aby poznawać nowe osoby, po prostu brakuje :).


WO - Chyba na poznawanie nowych osób nie było za bardzo czasu, ale za to spotkałem wielu znajomych, których nie widziałem już jakiś czas


MP - nie poznałem nikogo


TP - Nie, nie było to celem mojego wyjazdu.


MI - Zwykle spędzałem czas z ludźmi, których już wcześniej znałem, a z którymi nie miałem okazji zobaczyć się w ostatnim czasie. Poza tym, choć trochę wstydzę się do tego przyznać, jestem wielkim networkingowym nieogarem :)


MS - Najważniejsze w konferencji - nie jest sama konferencja - wszystko można wyczytać w necie, wszystko można lepiej zrozumieć czytając źródła. Najważniejsze na konferencji jest after-party, to tam po kilku piwach dowiadujemy się co ma sens, kto miał racje a kto p…. Komu zapłacili za to co miał powiedzić a kto mówił prosto z serca.   

  1. Co Ci się najbardziej podobało na konferencji?



MD - Dużo speakerów z zagranicy (chyba 99%).


TZ - Niewątpliwym plusem konferencji jest to, że odbywa się ona w salach kinowych. Slajdy wyświetlane na dużym ekranie są bardzo dobrze widoczne, co wpływa pozytywnie na odbiór prelekcji. Poza sprawami technicznymi, różnorodność tematów: design, product, engineering warta jest odnotowania.


WO - organizacyjnie impreza wyszła bardzo dobrze. Mam tu na myśli głównie miejsce (sale kinowe naprawdę dobrze się sprawdzają), a także to, że nie czułem się osaczony wszelkimi ulotkami i ludźmi z HRów.


MP - Duża ilość zagranicznych prelegentów


MI - Ciekawi prelegenci, miejsce ładowania telefonów i bardzo dobra herbata. Miejscówka też OK+.


MS - sale kinowe, wygodne siedzenia
Zagraniczni prelegenci - a nawet dwóch na jednej :)

  1. Co było do poprawy?



MD - Temat architektury na Androidzie był chyba zbyt mocno reprezentowany, mogłoby być coś innego zamiast tylu prelekcji o tym temacie. Przerwa 2h na lunch chyba nieco za długa choć flashtalki w tym roku dawały radę.


TZ - Ciężko jest mi jednoznacznie odpowiedzieć na to pytanie. Uczestniczyłem w poprzedniej edycji MCE i tą pod względem merytorycznym oceniam o wiele lepiej, co dla mnie ma kluczowe znaczenie. Według mnie podczas poprzedniej edycji skupiono się zbyt mocno na designie, w tym roku natomiast prawie wszystkie prelekcje były “engineer friendly”. Nie mam zatem powodów do narzekań.


WO - prelekcje na temat produkótw/designu mogłyby być bardziej konkretne. Szkoda, że aby dostać koszulkę musiałem instalować aplikację, logować się i wypełniać ankietę, na którą wcale nie miałem ochoty.


MP - myśle ze 2 dniowa konferencja spokojnie zmieściła by się w ciągu jednego dnia.


TP - organizacyjnie było naprawdę ok. Natomiast dopisałbym jaki jest poziom danych prelekcji.


MI - Przytrafiły się prezentację słabsze ale nawet one nie rzutowały na pozytywny odbiór imprezy, całość bardzo mi się podobała.


MS - kurcze, nie odpowiem na to pytanie, czuje jako współ-organizator Mobilization - największej mobilnej konferenci w PL, żeby nie podpowiadać ”wrogowi” - oczywiście to żart - bo jak nie napisze, że to żart - to nikt nie zrozumie.   

  1. Czy jest coś czego nauczyłeś się na konferencji i zastosujesz w swojej pracy?



MD - Na pewno rady Scotta Bowna o security. Chciałbym spojrzeć też w react native, popracować nad architektura Androidowych aplikacji i jeszcze raz zrozumieć fragmenty :). Warto byłoby też spróbować jeszcze raz z daggerem 2!


TZ - Na pewno sięgnę po kilka sztuczek jakie pokazał Scott Alexander-Bown. Bezpieczeństwo jest istotnym elementem każdego oprogramowania i myślę, że nie powinno być pomijane. Temat również jest mi dosyć bliski, gdyż pokrywa się z projektem prowadzonym w mojej firmie.


WO - chciałbym zapamiętać na dłużej rady dotyczące bezpieczeństwa, zwłąszcza, że nie wymagały wiele pracy, a wydają się sensowne. W sumie to nie wiem co myśleć o fragmentach, nigdy nie wydawały mi sie proste i jasne, a po prelekcji “Life without fragments” mam co do nich jeszcze większe wątpliwości - może należy to jeszcze raz przeanalizować.


MP - Rady na temat security w androidzie, Visor jako tool do prezentowania ekranu androida, rxble biblioteka to obsługi bluetooth.   


TP - utwierdziłem się w przekonaniu, że konferencje tego typu już nie wiele wnoszą dla mojego rozwoju. Dlatego muszę wyszukiwać bardziej tematyczne konferencje skupione na jakimś konkretnym problemie. Web + Networking znajomych jest w tym momencie lepszym sposobem na rozwój.


MI - Myślę, że kilku rzeczy np. “że czasami warto wymyślać koło na nowo!” :). Miałem też kilka infantylnych refleksji, które przychodziły w czasie trwania prezentacji, np. nawet najlepsze narzędzie czy wzorzec nie zadziała bez sprawnej obsługi, tzn na nic nam lotniskowiec z tuzinem F16 jeśli nie mamy w ekipie nawet jednego pilota awionetki :).


MS - na pewno z rad z prezentacji o security i o clean architecture.  
Jedna z lepszych prezentacji technicznych - Scott Alexander Bown

  1. Jakbyś porównał konferencję MCEConf do Mobilization?



MD - Na pewno liczba speakerów z zagranicy robi wrażenie. Miejsce jest też bardzo fajne, lubię sale kinowe na konferencje IT bo duży ekran robi wrażenie (i widać dobrze kod). Sale są podobnej wielkości co na Mobilization nie jest możliwe do wykonania. Wolę catering na mobilization bo bułką można się najeść a jedzenie na MCEConf lepiej wyglądało niż smakowało i wypełniało. No ale wiadomo że w stolicy nie wypada serwować bułek :)


TZ - To co łączy te dwie konferencje to tematyka technologii mobilnych, różni je jednak podejście do samej organizacji. Mobilization jest konferencją organizowaną przez społeczność programistów skupioną wokół Łódzkiego JUG’a, której przyświeca cel dzielenia się wiedzą z innymi. Jako, że jest bezpłatna, może wziąć w niej udział każdy - często jest to dla wielu programistów pierwszy kontakt z tego typu imprezami. Również tematyka skupia się przede wszystkim na aspektach technologicznych, w przeciwieństwie do MCE, gdzie możemy wybierać spośród tematów dotyczących technologii, designu oraz produktu. MCE, jako konferencja płatna, kierowana jest do nieco bardziej zamożnej grupy programistów, dzięki temu jednak, będąc uczestnikiem, mamy możliwość wysłuchania prelekcji prowadzonych w niemalże 100% przez gości z zagranicy.
Ostatecznie, chciałbym również nadmienić, iż Mobilization jest najstarszą konferencją zajmującą się mobile, od której zresztą zaczęła się moja przygoda w branży IT :).


WO - Miejsce w jakim odbywa się warszawska konferencja cznacznie lepiej zdaje egzamin. Pod względem merytorycznym, poziom reprezentowany przez speakerów na obu wydarzeniach jest bardzo podobny - co prawda w Warszawie mogliśmy słuchać w większości ludzi z za granicy, ale uważam, że miało to tylko zalety wizerunkowe - nasi prowadzący nie muszą mieć kompleksów.


MP - Myślę ze merytorycznie obie konferencje są na podobnym poziomie, mobilization napewno wygrywa ceną :) i jest 1 dniowa co bardziej mi się podoba.


TP - Na mobilization skonczyłem na drugiej edycji i uważam, że poziom jest bardzo podobny. Duży plus dla mobilization ze jest darmowa. Minus Łódź jest dla mnie 6 miastem po Warszawie, Wrocławiu, Krakowie, Poznaniu i Gdańsku i sądzę, że dla wielu też.


MI - Podobna tematyka, wielkość (ok 800 osób?). Oczywiście MCE miało o wiele więcej zagranicznych “gwiazd” i fajne sale kinowe ze scenami ale Mobilization ma trochę inny charakter, niekomercyjna - od społeczności dla społeczności i to ma wielkie znaczenie!


MS - :) koledzy wyżej siedzą obok organizatorów mobilization - nie mogli napisać inaczej :) tak czy siak dzięki.  

  1. Jaki pomysł organizatorów możemy wykorzystać w Łodzi na Mobilization?



MD - Podobała mi się aplikacja eventory. Dawała wszystko co jest potrzebne (agenda, moja agenda, mini chat, notyfikacje). Niektórzy twierdzili, że crashuje ale u mnie było ok. Szkoda tylko, że jest płatna dla organizatorów :)


TZ - Wydaje mi się, że organizacyjnie bardzo dobrze rozwiązany jest etap Q/A na koniec każdej z prezentacji. Podczas Mobilizacji czasami nie słychać pytań kierowanych z publiczności, przez co ucieka nam spora dawka wiedzy, gdyż to właśnie na zakończenie prezentacji, często możemy dowiedzieć się najciekawszych rzeczy.


WO - Może spbóbować organizować konferencję w jakimś kinie - nie wiem czy Kino Polonia jeszcze żyje, ale Piotrkowska byłaby świetnym miejscem.


MP - Myslę ze pytania od prowadzącego do spikere były fajne.


TP - Raczej nic. Nie wiem jak z after party jest na mobiization ale czwartkowe było mało miejsca. Wtedy chyba jest czas na poznawanie ludzi :).


MI -
1. Super jeśli uda się załatwić wyższe stoliki dla prelegentów. Prelegenci nie chcę siedzieć podczas prezentacji a normalne biurka są za niskie żeby obsługiwać komputer na stojąco.
2. Apka była bardzo pomocna
3. Code of conduct - dość popularne ostatnio na konferencjach, fajna idea
4. Wprowadzenia prelegenta przez opiekuna sali były OK!


MS - Sala kinowa, wygodne siedzenia.
  1. Czy weźmiesz udział za rok?



MD - Do tej pory byłem na wszystkich więc czemu nie!


TZ - Postaram się, ale nie obiecuje :).


WO - za wcześnie by o tym myśleć.


MP - raczej nie


TP - zobaczymy.


MI - Trudno powiedzieć


MS  - chciałbym i będę, ale raczej kupię early birda.

Wednesday, May 4, 2016

April with a broad range of technologies @ JUG Lodz

April was a very intensive month in JUG Lodz. We had some guests from outside our city who performed very interesting presentation and exciting workshop on some new technologies. We also had some presentations made by our local specialists and generally the range of topics was so broad that you could find something interesting about deployments, programming and domain modeling.

Kubernates

On April 7th we had something what was not seen on JUG for a while - two presentations at the same day! First was Łukasz Zajączkowski who has shown us how easily you can create your own cluster with Kubernetes.

In the next presentation Michał Balinski (https://twitter.com/MichalBalinski) and Kuba Filipczak shared with us a lot of hints from their experience with every day use of Kubernetes.


So the "Kubernetes day" was full of interesting stuff to learn.

Java 8

On April 9th full day Java8 workshops was conducted by the winner of "JUG Lodz Best Presentation 2015" - Tomasz Nurkiewicz (https://twitter.com/tnurkiewicz). Tomasz had prepared a lot of interesting exercises which show participants whole range of new mechanisms introduced in Java8. You can find those exercises here : https://github.com/nurkiewicz/java8-workshop

Akka

In the middle of April we had a chance to listen about Akka directly form the source. Konrad Malawski (https://twitter.com/ktosopl) first give us an introduction to reactive stream ecosystem...

... and the next day give practical workshops about Akka Streams so we had a chance to listen to many interesting stories about origins of some parts of this framework.

Java 8 Streams

Couple days later we had another interesting workshops where we could train knowledge powerful mechanisms added to Java8. Damian Warszawski(https://twitter.com/DWarszawski) prepared a set of nice exercises on Java 8 Streams.

Cryptography

Next we dived into another useful area - cryptography. Marek Śmigielski explained many interesting nuances which you can came across when you are working in this area. We learn how secure or insecure are mechanism which we are using in our everyday life and how special production process tries to raise this safety.

Domain Driven Design

The last presentation in April was about Domain Driven Design and it was perfomed by Krzysztofa Muchewicz (https://twitter.com/KrzyMucha) from Torun JUG. Krzysztof talked about holistic approach to creation of IT systems and how he uses DDD in his daily work.

Workshops

In April we had some internal workshops where we could learn about functional programming in Java and Scala

And also we could participate in "Akka Introduction" workshops

What's Next

Monday, April 11, 2016

JUG Lodz in March - Invasion of Architectures

In March we had a chance to take a different perspective of our daily work. Because of many presentations about general conception of Architecture we looked at a IT systems as a whole with all consequences of how particular parts interacts with each other. Beside that we continued our cycle of Functional programming workshops.

Open Stack

On March 3rd Łukasz Zajączkowski presented OpenStack. This technology allow us to relatively easy manage a big cluster of computer and other resources (by resources I think about machines, we should not user word "resources" to describe people). You can read more about OpenStack on : https://www.openstack.org/.

12 Rules of Architecture

Kamil Porembiński (@kporembinski) started Architecture marathon with his talk about 12 rules of Architecture. It was very funny talk with a lot of life example from real life in which we could saw how lack of knowledge and experience may lead to funny (for some people) situations.

A journey through architectures...

The culmination of Architecture wave hit us on March 18-19. First Tomek Borek (@LAFK) took everyone on a journey through many architectures - from classical Enterprise one to the new approaches based on micro services. Tomek visited JUG Lodz second time during last 3 months - previously he showed great presentation about JVM Internals (more in -> Januray at JUG Lodz)

... & KATA

Theory is always useful and interesting but it needs practice to make you real craftsman

30 people from JUG Lodz gathered during one day workshops on March 19th to solve real life problems in full system scale. We rarely have a chance to look at a system as a whole during our daily jobs so this way everyone gathered very valuable experience.

Architecture KATA was conducted by Tomek Borek (@LAFK) (again!) and Jarosław Pałka (https://twitter.com/j_palka)

Functional Programming Workshops

JUG Lodz organizes two path of Functional Programming - one in Java and second one in Scala.

People seems to be happy!

What's in April

Friday, April 1, 2016

2016-03-31 Warsztaty Functional programming (Scala)

Warsztaty Function programming (Scala) 

Wstęp

Są czasami momenty w pracy programisty, gdy dostajesz olśnienia lub momenty gdy uświadamiasz sobie, że mało wiesz, chociaż wydawało Ci się inaczej.
Obie sytuacje są super uczuciem, bo chce Ci się uczyć więcej i więcej.

Funktory 

Programowanie funkcyjne, każdy o tym mówi jest o tym głośno na konferencjach i w projektach. Wcześniej z guavą teraz z java8, rxjava coraz łatwiej możemy programować funkcyjnie w javie. Scale traktowałem jako takiego wrapera na jave. Byłem na warsztatach z Haskala Artura Czajki, który opowiadał o monadach, funktorach ale w języku, który nie jest popularny czyt. pewnie komercyjnie nigdy ich nie użyje. Wczoraj cała ta wiedza wróciła  i przydała się na warsztatach scali. Scali, która już jest używana komercyjnie w projektach w Łodzi. 
(http://www.meetup.com/Java-User-Group-Lodz/events/229761679/) link do warsztatów - tam też link do github-a. 

Paweł wymiata

Jestem pod wrażeniem profesjonaliści warsztatów, które przygotował Paweł Włodarski, rzadko się zdarza widzieć tak dobrze przygotowane warsztaty nawet za $$. Paweł przekazał dużo ciekawej wiedzy przez te dwie godziny w ciekawy sposób. 
Jeśli człowiek zda sobie sprawę jak dużo czasu trzeba poświęcić, żeby przygotować takie warsztaty, że Paweł robi to za free i robi to lepiej niż na większości komercyjnych warsztatach i jeszcze jest poczęstunek, kawa i jeszcze jest to zrobione w ładnym miejscu ( hotel Hilton ) 
to tylko do głowy przychodzi: 

CHAPEAU BAS! dla Pawła 



Sunday, March 6, 2016

February 2016 at JUG Lodz

February started with a lecture from Tomasz Dziurko (https://twitter.com/TomaszDziurko) about recruitment in IT.

The presentation gave developers richer perspective on how their actions are being seen by companies they are want to join. And beside regular JUG participants we could some new faces from local "HR Industry" :)

CRDT

Two weeks later we had a chance to listen to a very interesting topic of Conflict-free Replicated Data Types. In the more and more distributed world problem of data consistency materializes more and more in day-to-day work of every developer.

The presentation was brought to us by two guests from abroad : Dmitry Ivanov (https://twitter.com/idajantis) and Nami Nasserazad­ (https://twitter.com/namiazad)

Ascii Doc

It is easier to implement solution when you know the requirements :) So we had a chance to see a great presentation about very interesting tool AsciiDoc which allows us to create very convenient documentation and track all Changes.

And this knowledge was brought to us by Jakub Marchwicki (https://twitter.com/kubem)

Functional Programming Workshops

Also in February we had w chance to participate in two workshops about Functional Programming conducted by Paweł Włodarski (https://twitter.com/PawelWlodarski)


What's in March

  • Łuaksz Zajaczkowski already told us about OpenStack so he will make appearance in the next episode :)
  • On March 10th Kamil Porembiński is going to perform a presentation about Architecture Meetup - 12 rules of Architecture
  • And the main event of March will be full day workshop conducted by Jarek Pałka and Tomek Borek: Architecture Kata on Meetup

Sunday, February 28, 2016

2016-02-18 - Lambda Days 2016

Zaczniemy od propagandy, czyli - ludzie, płaćcie składki JUGa, bo można wygrać wejściówki na konferencje :)

Wejściówkę wygrałem i pojechałem na Lambda Days do Krakowa, 18-19 lutego 2016 r. Prelekcje odbywały się równolegle w 3 salach Auditorium Maximum UJ.

Na początek...

...muszę wspomnieć o niemym bohaterze tego wydarzenia, czyli aplikacji do głosowania. Prosta, ładna - jeden ekran, trzy emotki (yay, meh, ney), które wdzięcznie pulsują pod palcami kolejnych uczestników. Po zakończeniu każdej prelekcji przed przed drzwiami czekał człowiek z obsługi z tabletem w ręku. Wyniki nie były jawne, ale widać było, że dużo osób oddaje głosy i kosztuje ich to minimum wysiłku.

Pakiet startowy, oprócz identyfikatora, obejmował płócienną torbę w logiem, stos ulotek, cukierki z masy cukrowej z małą lambdą oraz ołówek. O papierowy program trzeba było poprosić w rejestracji, naraz tylko na jeden dzień. I od razu nieaktualny, ale to uroki druku.

Przybyłem na miejsce kilka minut po otwarciu rejestracji, więc było mi dane zobaczyć jak ktoś na szybko prasuje narzutę na stoisku sponsorskim, a korytarze powoli zapełniają się uczestnikami.

Wszystkie prelekcje były nagrywane, a plotka głosi, że powinny pojawić się w ciągu miesiąca. Zobaczymy! Pierwsze zaczęły się już pokazywać na YouTube, więc polecam odwiedzić stronę konferencji, a potem wyszukać tytułami prelekcje.

Aktualizacja: filmy pojawiają się na stronie konferencji! Wystarczy wejść w profil prelegenta, by zobaczyć udostępnione materiały.

Pierwszy dzień...

...rozpoczął się krótkim wstępem, opóźnionym o 20 minut, ale i tak zdążyli przejść przez wszystkie slajdy powitalne.

Wstępniak płynnie przeszedł w pierwszy keynote - Propositions as Types. Philip Wadler, po wstępie historycznym opowiadał o paralelach między logiką a programowaniem (a dokładniej prosto typowanym rachunkiem lambda), które zostawili nam po sobie Haskell Curry i William Howard - w skrócie - program jest tezą, a jego wykonanie dowodem. Jednym z wniosków wykładu było to, że są języki programowania, które ktoś odkrył czy tez zbudował wokół odkrycia (matematycznego), a są też takie, które ktoś wyssał z palca, jak Java czy C++. Te pierwsze są lepsze. Nazwiska do zapamiętania (i prace do do przeczytania): Hilbert (Entscheidungsproblem), Gödel (Incompleteness, Recursive functions), Church (Lambda calculus), Turing (Turing Machines). Na zakończenie dowiedzieliśmy się, że najnowszym problemem, nad którym pracuje też sam Wadler, są typy sesyjne, opisane po raz pierwszy przez Kohei Hondę w 1993, a wywiedzione z logiki linowej (Jean-Yves Girard, 1987). Jest już nagranie!

A brief history of history of programming languages: sprawdźcie kto stworzył ALGOLa, a następnie przeczytajcie przynajmniej po jednej publikacji każdego z autorów. Jeszcze tego nie zrobiłem, ale najwyraźniej warto!

The mysteries of Dropbox: testowanie synchronizacji plików jest trudne - autor QuickChecka, John Hughes, zrobił to z kolegami za pomocą laptopa, kilku maszyn wirtualnych i QuickChecka dla Erlanga. Nie było to robione na zlecenie Dropboksa! Polecam przeczytać opis metodologii, bo omawia, jak przetestować złożony system za pomocą losowych danych. Tak, znaleźli kilka przypadków brzegowych i zgłosili je Dropboksowi.

Zaliczyłem dwie sesje o Data Science, które pokazały jak powinno się promować DS - za pomocą ciekawych pytań! Pierwsza z nich zaraz po lunchu: A board game night with geeks i pytanie: czy można zremisować w Quarto? Quarto to gra planszowa, w której trzeba na planszy 4x4 ułożyć w rzędzie, kolumnie lub kwadracie zestaw klocków, które mają wspólną cechę. Jeśli użyjecie SAT solvera, to dowiecie się, że owszem, można w tej grze zremisować. Kod i prezentacja są dostępne na GitHubie. Tych samych metod używa się, m. in., przy planowaniu rozkładów, testowaniu i sekwencjonowaniu DNA.

W następnej prelekcji - Teaching functional programming to n00bs in mobs - Rob Martin przekonywał, że powinniśmy uczyć wszystkich juniorów programować funkcyjnie! Dlaczego? Bo nauczyć ich funkcyjnego myślenia jest prościej niż seniorów, trudno jest zatrudnić dobrego seniora, a ci seniorzy, których już masz, będą się lepiej rozwijać, jeśli będą mogli kogoś uczyć. Do tego dwie lektury podane przez prelegenta: Why Functional Programming Matters i Why "Why Functional Programming Matters" Matters. Druga część prelekcji była pochwałą dla “mob programming”. Programowanie grupowe - 4-15 osób siedzi nad jednym problemem, tylko jedna klawiatura i myszka, jeden (duży) monitor. W takim środowisku powstaje lepszy kod (prezentacja z perspektywy roku) i sprzyja ono równomiernemu rozwijaniu kompetencji - w grupie większość stanowią juniorzy. I jeśli chcecie rozumieć funkcyjne koncepcje lepiej, to uczcie się Haskella ;)

Byłem na dwóch “małych” prelekcjach. Pierwsza, Elixir and Elm - the perfect couple, wychwalała duet Elm + Elixir, zaznaczając jednocześnie, by starać się wybierać narzędzie (język, framework itd.) do potrzeb, zamiast używać zawsze złotego młotka. Druga, Embracing change - how to introduce Clojure into your company technology stack seamlessly, traktowała o tym, jak wprowadzić Clojure, albo jak twierdził autor - dowolną nową technologię, do swojej organizacji. Krok pierwszy: zdobądź pierwszych wyznawców, krok drugi: wybierz mały, niekrytyczny projekt, krok trzeci: ???, krok czwarty: profit, nowa technologia została wprowadzona. Prelegentowi się udało, a prostym projektem był serwis do healthchecku, który odpowiadał tylko “żyję!”, jeśli serwer działał.

Na koniec pierwszego dnia odbyło się 5 lightning talków, które niestety przegapiłem, bo dołączyłem do grupy dopytującej Roba Martina, jak np. mierzyć wydajność pojedynczych pracowników w takim programistycznym tłumie. Po pierwsze: nie rób tego, używaj retrospektyw żeby dawać sobie wzajemną informację zwrotną, przy czym jeśli jesteś zwierzchnikiem, to najlepiej nic nie mów, żeby niechcący nie uciszyć jakiejś inicjatywy (prowadzącemu się to raz zdarzyło). Po drugie: jeśli masz nóż na gardle, to zrób 360 Review.

Afterparty było w The Legend Music Club.

Drugi dzień...

...otworzył moim zdaniem najsłabszy z 3 keynote’ów - Things that Matter autora Siedem języków w siedem tygodni. W skrócie: języki, których autorom przyświecała jakaś idea i którzy pozostali jej wierni są fajne (i o nich poczytacie w książce, jest Haskell!), a Java jest zmyślona.

Pierwsza zwykła prezentacja, na którą trafiłem to The Zen of Akka prowadzona przez Konrada Malawskiego z Typesafe’a (teraz Lightbend). Zen Akki składa się z 13 punktów, których jednak nie pokuszę się o szczegółowe omówienie i będziecie musieli wyciągnąć je z nagrania, kiedy się ukaże. Kilka przykładów to:
  • Używajcie niemodyfikowalnych wartości i unikajcie jak ognia modyfikowalnych zmiennych; 
  • Unikajcie javowej binarnej serializacji - użyjcie Kryo, Thrifta, ProtoBufa albo czegokolwiek innego, co nie jest domyślnym mechanizmem; 
  • Akka to nie framework - to zestaw narzędzi - można z niego wybrać swoje ulubione części i nie wkładać do projektu całości. 
Do poczytania - rozproszone strumienie dla Akki, o których prowadzący wspomniał w odpowiedzi na jedno z pytań po prezentacji: Intel Gear Pump.

Druga prezentacja tego dnia to druga sesja z Data Science: The F#orce awakens, czyli kto jest najważniejszą postacią w Star Wars i dlaczego epizody I-III mają kiepskie oceny? Trzeba dokonać analizy grafu stworzonego ze sparsowanych scenariuszy Gwiezdnych Wojen. W samej analizie pomaga nam język R. W epizodach I-VI najważniejszy jest Obi-Wan, a jeśli dołożymy VII, to jest to C3-PO! Ale to tylko wierzchołek góry lodowej, dużo więcej znajdziecie na blogu autorki: The Star Wars social network, Star Wars social networks: The Force Awakens. W prawdziwym życiu tych samych technik używa się do analizy rozmów online przez czaty, e-maile, przy pracy z siatkami zaopatrzenia czy też do analizy sieci biologicznych.

Następna prezentacja, Getting started with Frege [czyt. frige], zachęcała do zapoznania się z implementacją składni Haskella dla JVM. Za przykład posłużyła prosta aplikacja do walidacji JSONa. Język kompiluje się do Javy, nie do bytecode’u. Chciałbym coś więcej o tym powiedzieć, ale sama implementacja jeszcze nie jest w pełni kompatybilna, więc niestety nie będzie mi dane wprowadzić jutro Haskella do projektu niskim kosztem ;) Można oczywiście obserwować projekt na GitHubie.

Kolejną była prezentacja dwóch ludzi z TomToma, którą mogliście zobaczyć już na spotkaniu JUGa - Practical demystifcation of CRDT. CRDT to Conflict-free Replicated Data Type. Tło prezentacji to usługa synchronizacji dla danych z nawigacji (np. ulubionych miejsc, zapisanych tras). Magia tych typów polega na tym, że obsługują przemienną i przechodnią operację łączenia, dzięki czemu nie ma znaczenia w jakiej kolejności nakładane są zmiany - wynik będzie zawsze taki sam. Omówili typy danych, których używają, dochodząc do tego, że musieli wymyślić własny, bazujący na OR-Set (Observed/Removed Set), OUR-Set (OR-Set + Updated). Taki zbiór trzyma w sobie listy utworzony, zaktualizowanych i usuniętych obiektów. Jednym z problemów przy używaniu CRDT jest brak niezawodnego zegara, więc kompromisem jest taka priorytetyzacja dostępnych czasów: zegar GPS > czas serwera > czas lokalny+1 > czas lokalny. Prelegenci powiedzieli, że byli na prezentacji Johna Hughesa, więc dowiedzieli się też o nowych sposobach, w jaki mogą ten system przetestować. Post, który zainspirował prelegentów do zgłębienia tematu: CRDTs for fun and eventual profit.

Ostatnia zwykła prelekcja to Purely Functional Web Apps, która opowiadała historię aplikacji internetowej napisanej w Haskellu i Elmie. Potrzebowali aplikacji, która na podstawie historii pull requestów z ich GitLaba ekstrapolowała potencjalną długość trwania review w zależności od ilości kodu. Do części serwerowej użyty został zestaw narzędzi Haskell Servant. Po stronie Elma za to pomocny okazał się jego Time Traveling Debugger, który używanie wygląda jak pokaz magiczny. Padło też zdanie, że powinniśmy nauczyć się Haskella, bo dzięki temu staniemy się lepszymi programistami.

Ostatni keynote - The Truth about Types Bartosza Milewskiego - mówił o teorii kategorii. Kategoria to byt matematyczny, który składa się z obiektów, przekształceń między nimi (strzałek) i operacji łączenia ze sobą strzałek. Dowiedzieliśmy się, że tak jak istnieją paralela między logiką i rachunkiem lambda, tak można wykazać paralelę między nimi i teorią kategorii. Prezentacja była mocno abstrakcyjna. Przeszliśmy przez Kategorię Zbiorów (Set Category), intuicjonistyczną logikę, kontynuacje, a zakończyliśmy stwierdzeniem, że skoro istnieją analogie między tymi trzeba dziedzinami (logika, rachunek lambda, teoria kategorii), to może istnieje jakaś większa abstrakcja, która obejmie je wszystkie? Tym właśnie zajmują się teraz badacze. Niestety nam, zwykłym zjadaczom chleba, pozostaje czekać.

Koniec!


Wyjazd uznaję za udany, konferencja bardzo mi się podobała. Mam nadzieję, że będę mógł pojechać na nią również w przyszłym roku :)

Sunday, February 7, 2016

Happy New Year - January 2016 @ JUG Lodz

Modularity and OSGI

We started 2016 by having a chance to listen an interesting lecture from true IT Industry veteran - Milen Dynkov (https://twitter.com/milendyankov). Milen spoke about many good ways of achieving modualarity in the project and later during great live demo shown practical implementation of his concepts with usage of OSGI.

You can watch the full presentation here :

Learning Functional Programming

Next week we switched to Functional Programming theory and a question - what is the best way to learn this approach? Paweł Włodarski (https://twitter.com/pawelwlodarski) described some practical and theoretical aspects of FP - but just by listening FP can not be mastered - that's why soon a full cycle of FP workshops will take place in the city of Lodz - material for the first one is ready FP in Java8 - workshop 1 material

Back to reality - Java memory model

In the last week of January Tomek Borek (https://twitter.com/LAFK_pl) brought us back to earth with his great presentation about Java Memory Model where he described with many details how physical architecture influences computations and our daily work.

What next

When I'm writing those wrods Tomek Dziurko has already performed his presentation about recruitment in IT and on February 16 we had a chance to see two great presenters from Tomtom : http://www.meetup.com/Java-User-Group-Lodz/events/228119198/. After their presentation on JUG Lodz Dmitry and Nami are going directly to Lambda Days conference where they also perform as presenters.