Confitura 2016

W tym roku odbyła się jubileuszowa 10 edycja Confitury. Konferencję mogę szczerze polecić każdemu kto chce być na bieżąco z technologiami związanymi z JVM. Wykłady były na bardzo dobrym poziomie. Jak co roku poznałam kilka nowych osób i spotkałam znajomych, z którymi widuję się tylko na branżowych konferencjach. Luźna atmosfera pozwoliła na rozmowę z prelegentami.

Ogólne wrażenia

Confitura 2016 zaskoczyła mnie zmianą miejsca. W tym roku odbyła się w Centrum Konferencyjno – Szkoleniowym na ul. Bobrowieckiej 9. W pięciopiętrowym budynku już na początku zepsuła się winda, więc kolejnego dnia bolały mnie łydki – trochę ruchu się przyda przy siedzącej pracy 😉 Największym minusem miejsca była temperatura. Setki ludzi na salach wykładowych i brak klimatyzacji przy upalnej pogodzie to nie było dobre połączenie. Dodatkowo sale nie były stopniowane, przez co zdarzało mi się nie widzieć prowadzących i slajdów z powodu niskiego wzrostu lub kamery nagrywającej wykłady.

Krótka historia wielkich danych – wprowadzenie do Sparka

Bardzo łagodny wstęp do zagadnień Big Data. Katarzyna Krawczyk wyjaśniła o co chodzi w tym temacie. W ciągu ostatnich dwóch lat pojawiło się więcej danych niż kiedykolwiek wcześniej, więc przetwarzanie dużych ilości danych to wartościowy temat. Przykład, który zapadł mi w pamięć to historia powstania popularnego serialu House of Cards. Zupełnie nie spodziewałam się, że powstał on w całości na bazie analizy danych o użytkownikach serwisu Netflix.

Katarzyna przypomniała o kilku ważnych faktach. Od 10 lat w przetwarzaniu Big Data króluje Hadoop. Zarządza klastrem, rozprasza obliczenia i dostarcza rozproszony system plików. Zawiera framework MapReduce. W 2012 roku powstał Spark. Ma wygodne API dla Javy, Scali, Pythona i R. Rozwiązuje podstawowy problem Hadoopa – dużo odczytów z dysku (kosztowne czasowo operacje). Spark wykorzystuje niemutowalne kolekcje przechowywane w pamięci. To powoduje, że coraz więcej firm decyduje się zastąpić Hadoopa Sparkiem.

Podczas demo oprócz przykładu wykorzystania Sparka pojawiło się ciekawe narzędzie do wizualizacji danych Apache Zeppelin. Gratką dla osób, które na swojej liście TODO mają Sparka (w tym mnie) była informacja o liście dużych zbiorów danych udostępninej na GitHubie, przydatnej do trenowania Sparka.

Confitura 2016 - Wprowadzenie do Sparka

Jak dotrwać w informatyce do emerytury?

Joanna Karczewska pracuje w branży już 40 lat. Opowiedziała o tym jakie mamy szanse na emeryturę pracując m.in. na etacie, czy mając własną firmę. Nie zabrakło krótkiego podsumowania wymagań na popularnych stanowiskach oraz porównania zarobków. Z humorem podeszła do proponowanych przez obecny rząd zmian w prawie, przykładowo obowiązkowej nauce programowania w szkole podstawowej. Na koniec usłyszeliśmy kilka “dobrych rad od starszej Pani”:

  • rozłóż siły – na pewno przyjdzie taki czas, że nie będzie Ci się chciało pracować,
  • cały czas się dokształcaj – przyjdzie moment osłabienia, ale warto walczyć o ciągłą edukację,
  • miej plan B – nigdy nie wiesz co Cię czeka w przyszłości. Nie załamuj się kiedy stracisz pracę, w tej branży zawsze jest coś do zrobienia,
  • miej zaskórniaki – przydadzą się na czarną godzinę, najlepiej w złotówkach :),
  • od czasu do czasu wyluzuj – przejdź w tryb offline, odpocznij. Inaczej szybko się wypalisz.

Był to dla mnie jeden z lepszych wykładów na Confiturze 2016. Oprócz świetnej formy prezentacji, która była nastawiona na kontakt z publicznością, dało się zauważyć dużą wiedzę prelegentki. Z chęcią wysłuchałabym kolejnych wykładów Pani Joanny.

Confitura 2016 - Jak dotrwać w informatyce do emerytury

Co robi Twoja aplikacja kiedy nie patrzysz?

Kolejna prezentacja na Confiturze 2016 dotyczyła monitorowania aplikacji. Adam Dubiel pokazał jak skorzystać z biblioteki Metrics. Odpowiedział co jego zdaniem warto mierzyć w aplikacji. Średnia raczej niewiele mówi o faktycznym stanie aplikacji. Zwrócił uwagę, że najbardziej sensownie wyrażać dane w percentylach – przykładowo p50 oznacza, że na 100 prób osiągasz 50 sukcesów.

Podczas kodowania na żywo mogliśmy zobaczyć jak skonfigurować Metrics w projekcie. Bardzo spodobały mi się dwa narzędzia, które wykorzystał podczas pokazu. Graphite magazynował dane, a Grafana bardzo estetycznie je prezentowała w formie wykresów i dashboardów. Dodatkowo metrics-jvm pozwala na gromadzenie danych pochodzących z JVM m. in. logów GC. Adam do powiadomień o problemach aktualnie używa Cabot, który niestety ma gorszą wydajność niż Zabbix, z którego korzystał wcześniej.

Adam udostępnił materiały na swoim GitHubie za co jestem mu wdzięczna.

Javaslang – functional Java the right way

Bardzo dobra prezentacja Grzegorza Piwowarka o bibliotece dodającej więcej funkcyjności dla Javy 1.8+. Jest całkiem nowa, na GitHubie pierwsze commity są ze stycznia 2014 roku, ale zdobywa coraz większą popularność. Odniosłam wrażenie, że Javaslang czerpała garściami ze Scali i dodała brakujące mechanizmy do Javy. Dostajemy:

  • pattern matching,
  • możliwość składania “funkcji”,
  • lifting – możliwość zmiany funkcji na taką, która zwraca opcjonalny wynik. Dzięki temu przykładowo nie musimy wyrzucać wyjątków kiedy argument funkcji będzie spoza dziedziny,
  • currying – możliwość podawania tylko części argumentów do funkcji, po tym zostanie zwrócona nowa funkcja, która przyjmuje o jeden parametr mniej,
  • memorization – do zapamiętywania wyników funkcji,
  • krotki – bardzo mi ich brakowało, zdziwiłam się, że nie pojawiły się w Javie 1.8,
  • typ Lazy – do leniwej ewaluacji
  • niemutowalne kolekcje,
  • i wiele innych przydatnych rzeczy…

Confitura 2016 - Javaslang

Dwa lata z “funkcyjną” Javą 8

Pierwszy raz miałam przyjemność zobaczyć Bartłomieja Kuczyńskiego na żywo. Od dłuższego czasu czytam jego bloga i zawsze znajduję tam coś ciekawego. Opowiedział o problemach jakie napotkał kiedy w projekcie wykorzystał Javę 1.8. Było o problemach z API. Przykładowo o nowej klasie do obsługi czasu DateTime, która nie ma wsparcia (konwerterów) w innych bibliotekach np. JPA. Ważnym problemem była też nieznajomość dokumentacji, składni oraz nowych dobrych i złych praktyk.

Z zalet wymienił m. in. poprawę błędów (przykładowo Date), wygodne strumienie, zmianę myślenia i nastawienie na programowanie funkcyjne. Niestety był to jeden z tych wykładów, na których siedziałam dość daleko, dlatego nie widziałam slajdów.

What’s NOT new in modular Java

Ostatnia prezentacja w jakiej wzięłam udział była o projekcie Jigsaw. Oracle przełozyło termin wydania Javy 1.9 ze względu na opóźnienie w projekcie Jigsaw co wskazuje, że jest bardzo ważny. Milen Dyankov opisał podstawowe syle architektury aplikacji:

  • monolit – nie posiada zależności,
  • kompozyt – posiada zależności infrastrukturalne,
  • kontener – posiada zależności funkcjonalne,
  • discover – automatyczne wykrywa potrzebne elementy (komponenty),
  • mikroserwisy – pozwalają na adaptację do ciągle zmieniających się wymagań.

W dalszej części porównał założenia OSGi i Jigsawa. Jak nie od dziś wiadomo Java 1.9 będzie stała pod znakiem modułów. Milen stwierdził, że jest to dobry pomysł jeśli chodzi o architekturę JVM, ale błędem jest chęć pisania wszystkich aplikacji jako modułów. Na finalną implementację  projektu Jigsaw przyjdzie nam jednak jeszcze trochę poczekać.

Related Posts

PJUG Kraków – Java 9 i JUnit 5

Na kolejnym meetupie Polish Java User Group w Krakowie same nowości – Java 9 i JUnit 5. Coraz więcej wiadomo o Javie 9 – tym razem można było zobaczyć przykłady kodu korzystającego z JDK 9 Early Access Release. Na drugim wykładzie dowiedziałam się jak będzie wyglądała nachodząca wersja jednej z najpopularniejszych bibliotek do testowania – JUnit.

Read More

Jak dodać Mavena do istniejącego projektu

W tym wpisie pokażę jak dodać Mavena do istniejącego projektu w kilku prostych krokach. Przykład będzie opierał się o projekt KiMage, którego źródła znajdziesz na GitHubie. Wykorzystam również środowisko IntelliJ IDEA 15.0.4.

Read More

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *