Saturday, May 24, 2014

2014-05-22 - Flash Talki - pierwsze starcie



Usain Bolt będzie w sierpnu w Warszawie na mitingu Kamili Skolimowskiej, my mamy swoich reprezentantów sprintu w kategorii prelekcji. Pierwsza odsłona Flash Talków - krótkich, wręcz sprinterskich prelekcji (20 minutowych wystąpień) za nami. Skrócona forma pozwala na jednym spotkaniu poznać większą liczbę tematów w pigułce.

 

 

Krzysztof Telka - Nauka jako proces ciągłej ewolucji programisty

Pierwszym prelegentem był Krzysztof Telka z firmy Cybercom, który zaprezentował temat Nauka - jako proces ciągłej ewolucji programisty. Prezentacja miała charakter motywacyjny. Krzysiek bazował na modelu kompetencji wg. Dreyfusa, który wyróżnia poniższe stopnie kompetencji:
  1.  Nowicjusz - skupiony na szybkim ukończenia zadania, potrzebuje dokładnych wskazówek i reguł.
  2. Zaawansowany nowicjusz - formułuje proste zasady, ciągle potrzebuje szybkich wskazówek, brak całościowego obrazu problemu.
  3. Kompetentny - nastawiony na cel, samodzielnie składa kroki, posiada zwykle jeden pomysł na rozwiązanie danego problemu.
  4. Profesjonalista - biegły, rozumie celu zależnie od kontekstu, zauważa analogie
  5. Ekspert - myśli inter-dyscyplinarnie, syntezuje pojęcia na wyższym poziomie abstrakcji, stosuje metafory, podejmuje decyzje intuicyjnie
Następnie prelegent zachęcał nas do zadania sobie pytania na jakim etapie kompetencji jesteśmy i pokazał w jaki sposób możemy kontrolować nasz proces uczenia się - rozwijania. Zaprezentował  pasję w tym co robi i dzięki mu za to. Jeśli ktoś zapomniał o potrzebie rozwoju to po tej prelekcji z pewnością wrócił na dobry tor. Prezentacja Krzyśka dostępna tutaj.

Więcej o modelu kompetencji możemy zobaczyć w prelekcji guru od aspektów miękkich w IT Sławka Sobótki z firmy Bottega - film, slajdy oraz artykuł dla SDJ.


Łukasz Lisowski - ZABBIX


Druga prelekcja Łukasza Lisowskiego o ZABBIXie odnosiła się poniekąd do wcześniejszej prelekcji Mariusza Panka z firmy TomTom - Javamelody - co mi w Javie gra!. Odniesienie polegało na zaprezentowaniu narzędzia alternatywnego dla JavaMelody. Łukasz już na wstępie zaznaczył różnicę między tymi narzędziami. JavaMelody potrzebuje konfiguracji bezpośrednio w trakcie implementacji aplikacji (trzeba dodać jakoś liby JavaMelody w kodzie), tymczasem ZABBIX może działać z dowolną zdeployowaną już apką, czyli może pomóc tam gdzie nie mamy czasu bądź możliwości wpiąć dodatkową bibliotekę. ZABBIX umożliwia korzystanie z wbudowanego w JVM  JMXa (Java Management Extensions). Dzięki takiemu rozwiązaniu może korzystać z dowolnych liczników wystawionych przez tego magicznego JMXa:). I tu bym się chętnie popisał jakąś wiedzą, której nie posiadam, więc pozostawię ten temat w błogiej ciszy albo zadam pytanie: komu dzisiaj kibicujecie? - Ja jestem za Madrytem!


Paweł Michalski - Eclipse tips & tricks

Paweł Michalski z firmy TomTom zademonstrował jak ważne w naszym rzemiośle programisty są narzędzia i ich znajomość. Na wstępie zademonstrował akcje podczas zapisywania, które mogą być przydatne i powinny być wspólne dla całego zespołu. W celu konfiguracji idziemy do preferencji i wyszukujemy "save actions". Paweł korzysta z formatera podczas zapisu oraz dodatkowych poleceń, które można modyfikować. Dobrze, żeby te ustawienia były wspólne dla całego zespołu, wtedy unikniemy problemów ze zmianami jedynie formatowania w repo.

Następnie pokazał możliwości konfiguracyjne błędów oraz ostrzeżeń, które pomagają za wczasu wykryć błąd lub problem w kodzie. Konfigurację możemy przeprowadzić w Preferences a następnie korzystając z wyszukiwarki wpisać "warnings" i dla wybranego języka programowania możemy zmodyfikować domyślne zachowanie. Dla przykładu eclipse doskonale wie, że przypisanie boola w środku ifa to zwykle błąd i nie robi nic tylko po cichu się z nas nabija. Nie wiem jak wy, ale ja spędziłem na takim błędzie któryś wieczór. Warto więc spojrzeć na listę - w przypadku Javy jest ona dość rozbudowana.


Paweł pokazał kolejną fajną funkcjonalność - quick diff w edytorze sprzęgnięty z ostatnią wersją z SVNa. Wyszukujemy frazy "quick diff", konfigurujemy jak na screenie poniżej i delektujemy się diffem w edytorze.

 
Następnie to co na wszyscy czekają, czyli magiczne skróty klawiszowe. Jako leniwy programista nie lubię wykonywać czynności, które mogłyby się same wykonać (a ja będę mieć więcej czasu na wybór piwnego repertuaru na wieczór). Tak więc jeśli jeszcze nie znacie, to musicie spróbować:
  • ALT + SHIFT + ↑ (lub ↓) - WOW, po prostu spróbuj w edytorze, np. będąc w środku nazwy zmiennej ;)
  • CTRL + O - outline z wyszukiwarką bez użycia myszki
  • ALT + ← (lub →) - następne/poprzednie miejsce w którym byliśmy
  • CTRL + SHIFT + P - idź do odpowiadającej klamry (trzeba się ustawić za klamrą początkową lub przed kończącą
  • i inne których nie zanotowałem lub nie pamiętam ;)

Na koniec wspomnę o losowaniu nagrody. Ebooka od Manninga wygrał Jarek - dziękujemy wydawnictwu manning.com za sponsorowanie nagrody oraz prelegentom za poświęcony czas i chęci.



Friday, May 16, 2014

2014-05-15 Arduino... 1,2,3 Start

Choć JUG ma w swojej nazwie Javę, nie znaczy to, że osoby przychodzące na spotkania ukierunkowane są tylko na ten jeden język programowania. Świadczyć może o tym choćby całkiem nienaganna frekwencja na ostatnim wykładzie, który poświęcony był Arduino. Hmm, Arduino... a co to właściwie jest? Na to i inne pytania odpowiadał nam prowadzący, Rafał Wokacz z Cybercom.

Hackathon na MCE - robot podążający za światłem

Arduino to otwarta platforma sprzętowa, tak zwana „płytka” zawierająca mikrokontroler (procesor) oraz sporą ilość gniazd wejścia/wyjścia, za pomocą których można podłączyć ją do innych urządzeń peryferyjnych. W skrócie, jest to miniaturowy komputer (dosłownie - ma wymiary ok. 7 na 5 cm). Pewno zastanawiasz się po co komu coś takiego? Przecież większość z nas ma lśniące i coraz wydajniejsze laptopy. Czytaj dalej, za moment wszystko stanie się jasne :)

Arduino jest tak naprawdę nazwą całej rodziny urządzeń, z których podstawowym modelem jest Arduino Uno, o dość skromnych parametrach: częstotliwość taktowania procesora 16 MHz i pamięć 2 KB SRAM nie robią już dziś wrażenia, jest wręcz trudno wyobrazić sobie tak małe wartości! Nie to jednak decyduje o sile tego urządzenia. A więc co?

Jest to przede wszystkim produkt adresowany do ludzi kreatywnych, lubiących eksperymentować i majsterkować. Niekoniecznie potrzebna jest tu wiedza z elektroniki. Arduino zaprojektowane jest tak by można było je łatwo łączyć z innymi elementami, sensorami, silnikami i diodami. Dedykowane układy (tzw. shields) pozwolą dodać do bazowego Uno peryferia takie jak bluetooth, wi-fi, ekrany LCD, i kto wie co jeszcze. Na prezentacji przedstawione zostały różne przykłady zastosowań, od mrugania diodkami LED, po sterowanie silnikami, roboty podążające za źródłem światła, balansujące, zdalnie sterowane (także z funkcją koszenia trawy). Na tej długiej liście znalazła się też zautomatyzowana plansza do zdalnej gry w szachy, atrapa R2D2 z Gwiezdnych Wojen, oraz „inteligentna” koszulka z wszytym (sic: wszytym nićmi) Arduino LilyPad. Szczerze mówiąc w takim portfolio projektów aż wstyd wspominać o tak prostackich zastosowaniach jak zdalne otwieranie garażu. A Ty, jaki masz pomysł?

Zdalnie sterowana kosiarka

Co lepsze, lista zalet Arduino nie kończy się na tym. Olbrzymim plusem jest fakt otwartości platformy. Na stronie projektu znajdziemy wszystko od SDK po dokumentację i schematy według których można zbudować własną płytkę od podstaw. Walory edukacyjne są nie do podważenia, każdy znajdzie tu coś dla siebie, zależnie od poziomu zaawansowania i obszaru zainteresowań (od prostego software'u po hardware). W dalszej części wykładu przyjrzeliśmy się bliżej narzędziom, tj. Arduino IDE, które umożliwia nam pisanie kodu i uruchomienie go na mikrokontrolerze. Poza bazowym edytorem dostępne są też inne, zależnie od platformy, m.in. pluginy do popularnych środowisk jak Eclipse, Xcode, Visual Studio. Razem z IDE dostajemy kompilator oraz biblioteki Arduino, które pozwalają bardzo łatwo obsłużyć piny wej/wyj oraz skonfigurować je np. do obsługi połączenia szeregowego. Wszystko to robi się praktycznie kilkoma linijkami kodu (C/C++), co na pewno zachęca do próbowania nowych (szalonych?) pomysłów.

Ostatnim smaczkiem prezentacji było live-demo zdalnie sterowanego robota zbudowanego przez Rafała. Nasz mały dwukołowy przyjaciel składał się z Arduino Uno, silniczków, modułu bluetooth, paru dodatkowych elementów i zasilany był bateryjką 9V. Kontrolerem był smartfon z lekko skastomizowaną aplikacją na Androida. Trzeba przyznać, że zaostrzyło to mój apetyt na warsztaty Robothon organizowane przez Cybercom w najbliższą sobotę :)

Jak zwykle na spotkaniu wylosowaliśmy też jedną licencję na produkt firmy JetBrains.

Duża frekwencja mimo Geecona - wiele nowych twarzy

Wednesday, May 14, 2014

Clean Coders Episode 12 - The Interface Segregation Principle

Nieuchronnie zbliżamy się do końca omawiania zasad SOLID, albowiem za nami już czwarty odcinek tym razem o zasadzie segregacji interfejsów.

1. Single responsibility principle
2. Open/closed principle
3. Liskov substitution principle
4. Interface segregation principle
5. Dependency inversion principle
Dobra frekwencja jak na Wujka Boba - 30 osób



Sponsorem tego odcinka była firma Samsung, która przedstawiła 4 oferty pracy w Łodzi. Polityka firmy nie pozwoliła na podanie widełek płacowych.
Prezentacja firmy Samsung

Co ciekawego w odcinku?

Nie obyło się bez przebierania. Tym razem wujek Bob wystąpił w roli sensei, w swoim dojo. Przedstawił nam projekt systemu obsługującego bankomat i pokazał co dzieje się gdy klasa "wie" za dużo. Co to znaczy wie za dużo? Chodziło głównie o zależności jakie mamy w projekcie, nie obyło się więc bez wspomnień i cofneliśmy się do czasów C. Jedna klasa, wykorzystywana w nieomalże wszystkich elementach systemu była często zmieniana przez co podczas kompilacji przebudowywany był cały projekt, a to trwało wieki.

Na przykładzie bankomatu wujek pokazał nam jak ciężko jest niedopuścić do opisanego wyżej stanu. Oraz, że często w pogoni za doprowadzeniem do zgodności z jedną z zasad SOLID możemy złamać inną (w przykładzie
była to open/close principle).
Wujek Bob zza krzaka
Co zrobić aby obejrzeć następny odcinek:

- najważniejsze to przyjść na spotkanie JUG Łódź
- przekonać swoją firmę do zasponsorowania kolejnego odcinka (60USD) - szczegóły juglodz@gmail.com
- zarejestrować się na naszym meetupie

Monday, May 12, 2014

Łubudubu - wybory i przyszłość

Poniżej relacja z prezentacji o przeszłości i przyszłości łódzkiego JUGa, którą zrobił niedawno Marek znany w półświadku łódzkiej javy jako prezes.

Przyszłość, przeszłość i teraźniejszość

Dawno dawno temu w 2011 padło postanowienie - głównie za sprawą Marka i Mariusza - by zrobić w naszym przepięknym mieście taką zajebistą konferencję IT coby ludziom gały wyszły i aby wszystkie kwestie papierkowe były w porządku przydałoby się stowarzyszenie. Na spotkanie przyszło chyba około 40 osób z czego część widziałem chyba po raz pierwszy i ostatni w życiu.

Od tego czasu udało się zrobić 3 edycje Mobilizacji i na karmić przy pomocy grochówki setki programistów.

W tym roku jest plan aby zorganizować 4 edycję mobilizacji ale potrzebna jest świeża krew do pomocy, także jak ktoś z was jest chętny i chciałby dodać trochę kolorów do szarej codzienności życia w Łodzi to niech śmiało się kontaktuje z zarządem, JUGiem, ze mną lub kimkolwiek.

Też fajnie jest jak ktoś pomaga w ogarnianiu społecznościówek czy tam przesyłaniu dalej wiadomości na fejsie.

Każdy występek i dobry uczynek będą zanotowane w skoroszytach

A poniższy slajd szczególnie adresowany do ludzi, którzy ciągle narzekają jak jest chujowo - "Obywatelu! - weź swój los w swoje ręce!"

I pamiętajcie - wypełniajcie ankiety. Czasem padnie fajny pomysł w opiniach po spotkaniach i kolejne prezentacje będą miały lepszą jakość.

Także Obywatelko, Obywatelu - w walce o lepsze jutro IT i realizację planu 5 miesięcznego - ściągajta deklaracje i dołączajcie do ludu pracującego!

A w najbliższy czwartek Arduino - strona spotkania na meetupie

Monday, May 5, 2014

Co mi w Javie Gra - Java Melody

Gdy usłyszałem tytył Java Melody, pomyślałem, że to biblioteka do obsługi audio w javie :)

Na szczęście, ktoś przed prezentacją wyjaśnił mi, że ten program sprawdza "co i jak gra" w naszej aplikacji.
Dobra frekwencja
Generalnie jak bym miał streścić Java Melody do kilku słów, to jest to tool, który podaje nam statystyki o naszym programie.
Java Melody potrafi wyświetlić nam najdłużej wywołującą się funkcje, średni czas wywołania się funkcji i przedstawić nam te statystyki na ładnych wykresach. Java Melody jest darmowe i widać po api, że było stworzone do aplikacji Jee. Niestety dla androida nie jest przystosowane.

Zadowolony prelegent po prezentacji :)
Mariusz Panek z TomTom-a przedstawił Java Melody w prawdziwym środowisku, pokazał że da się tego używać i wykrywać problemy.

A po JUGu razem z Wojtkiem Młynarczykiem zostaliśmy zaproszeni na imprezę firmową Cybercomu, w tym że stwierdzenie "zostaliśmy zaproszeni" jest trochę mylące po prostu się wbiliśmy :) 
Impreza odbyła się w Chmilowej Dolinie https://www.facebook.com/PubChmielowadolina tam próbowaliśmy różnych piw min. imperium atakuje.
Ludzie z Cybercomu wyluzowani, HR fajny ;) i impreza pozytywna.