poniedziałek, 18 listopada 2013

J-Day 2013, Kraków

How To Jave EE
(prowadzący: Adam Bien)

Pokaz na żywo tworzenia prostego webservice'u w Java EE z przykładem budowania obiektów JSON. Ciekawie i zabawnie poprowadzone. Przykład, w nawiązaniu do Krakowa, był zrobiony na smokach, które to posiadają takie właściwości jak name, fireClassification czy virginCapacity.

Była to najbardziej interaktywna z prezentacji, właściwie bez slajdów. Aplikacja była stopniowo rozbudowywana w nawiązaniu do kolejnych pytań z publiczności. W przykładzie zastosowano wzorce: Entity-Control-Boundary i Observer.


Building modern Web Applications
(prowadzący: Bartosz Pampuch)

Omówienie zagadnień związanych z implementacją aplikacji webowych, takich jak User Experience, czy problemy, które mogą wystąpić podczas tworzenia tego rodzaju aplikacji. Jako przykład posłużyła aplikacja do zarządzania danymi medycznymi, czy też po prostu kartami pacjentów. Została ona stworzona z wykorzystaniem JavaScript i Sass - rozszerzenia CSS.

Prowadzący zachwalał model single page application, w którym cały niezbędny do obsługi użytkownika kod pobierany jest jednorazowo w czasie ładowania strony, a liczba kolejnych żądań wysyłanych przez przeglądarkę do serwera jest minimalna. W modelu tym ciężar obsługi użytkownika spoczywa na lokalnej przeglądarce. Jest on jednak trudniejszy w implementacji.

W części poświęconej User Experience było trochę o zasadach animacji i ich zastosowaniu w tworzeniu webservice'ów. Przykładowo, aby ruch wydawał się bardziej naturalny warto zwolnić jego początek i koniec. Jeśli animowanych elementów jest na stronie więcej, ich ruch powinien zaczynać się w w różnym czasie.

Omówione zostały problemy występujące w aplikacjach webowych:
  • wycieki pamięci, związane z błędami w pluginach jQuery
  • problemy z płynną animacją spowodowane przez zbyt częsty odczyt przez JavaScript właściwości takich jak offsetTop - wymusza on wykonanie ponownej rekalkulacji przez przeglądarkę i należy go ograniczać.

What's new in Java EE 7?
(prowadzący: Dirk Weil)

Moje największe rozczarowanie na tej konferencji. Omówienie kolejnych JSR-ów zaimplementowanych w Java EE 7. Slajdy przeładowane tekstem, do tego trochę przygotowanych wcześniej przykładów w kodzie - dla mnie było ich za mało. Nudne. Ta prezentacja była zaprzeczeniem pierwszej. Równie dobrze, można było zadać tytułowe pytanie google i poczytać dokumentację na sieci.


Advanced techniques for building and monitoring applications based on the JVM
(prowadzący: Piotr Łaskawiec)

Ciekawa prezentacja o tym jak zostać Well-Grounded Java Developerem - osobą, która potrafi naprawić aplikację przez zmianę wyłącznie parametrów JVM.

Punktem wyjścia do prezentacji był przykład, podobno wzięty z życia, problemów z wydajnością pewnej aplikacji. Prześledziliśmy kolejno:
  • zdobycie informacji o numerze procesu, komendą jps,
  • jinfo,
  • zawartość stosu jstack,
  • wykorzystanie pamięci z jmap - kilkukrotnie, żeby sprawdzić jak się zmienia i dojść do wniosku, że nie tu leży nasz problem,
  • informacja o garbage collection: jstat -gcutil, pozwoliła stwierdzić, że GC jest uruchamiany zbyt często
  • w ostatnich kroku sprawdziliśmy jaki jest tego powód: jstat -gcccause
Przyczyną problemu było inicjowanie GC, przez wywoływanie metody System.gc().

W dalszej części prezentacji dowiedzieliśmy się więcej o parametrach JVM związanych z trybami pracy Garbage Collectora oraz zarządzaniem pamięcią sterty. Pełna lista opcji JVM zawiera 900 pozycji.

Rozwiązanie problemu - wyłączenie garbage collection wywoływanych przez programistę - wymagało restartu JVM z opcją -XX:+DisableExplicitGC

Na prezentacji zostały także omówione metody implementacji własnych narzędzi do monitorowania JVM, w Javie oraz w C++ przez JVM TI.


Listen to the sounds of your application
(prowadzący: Maciej Biłas i Krzysztof Ciesielski)

Krótkie wprowadzenie do pomiarów oraz narzędzi Graphite i Logstash. W pierwszej części trudno było dotrzymać kroku prowadzącemu, który powinien popracować nad dykcją. Druga, dotycząca Logstash była znacznie lepsza.


Google Web Toolkit Framework
(prowadzący: Łukasz Wątor)

Na tej prezentacji prowadzący zachęcał nas do porzucenia JavaScriptu i zastąpienia go przez GWT. W tej technologii, projekty aplikacji webowych pisane są w całości w Javie. Z tym, że aplikacja klienta maksymalnie w wersji 1.4 Javy.  Następnie,  dla klienta, generowany jest kod HTML+JavaScript.

Zobaczyliśmy podstawową strukturę aplikacji i implementację RPC między klientem i serwerem. Możliwości GWT zostały przetestowane na webowym demie Diablo. Na koniec jeszcze automatyczna generacja bazowych plików projektu GWT przy użyciu Spring Roo.