Friday, February 27, 2015

2015-01-29 - GoogleAppEngine - samoskalowalne rozwiązania - Piotr Zalewski

Prezentował Piotr Zalewski z Cybercom Poland.

Ankietę wypełniło tylko 6 osob. Oceny były bardzo dobre, ja również słyszałem pozytywne opinie od uczestników.



Repo z projektem który prezentował Piotr - https://github.com/piotrzalewski/GAEPrime2.git
Link do bloga gdzie opisano jak zacząć pracę z GAE: http://www.gemcode.pl

Nagranie znajduje się na portalu http://yt.juglodz.pl

Sunday, February 22, 2015

2015-02-05 Mobile Central Europe

Mobile Central Europe 2015 to druga edycja konferencji poświęconej technologiom mobilnym. Jest organizowana przez warszawską firmę Polidea. Manifest konferencji mówi o evencie skierowanym do twórców aplikacji mobilnych - programistów, projektantów i liderów technicznych. Manifest nie wspomina o biznesie, ale z pewnością biznes był także obecny na miejscu.

Mobile Central Europe 2015 odbywało się w Kinotece w Pałacu Kultury i Nauki - miejsce idealnie usytuowane w centrum i świetnie współgrające z nazwą konferencji. Przede wszystkim blisko dworca centralnego - także zdecydowałem się jechać na konferencję ostatnim możliwym pociągiem.

Dzień 1

Podczas dojazdu zapoznałem się z agendą (fajny pomysł, że każdy uczestnik ma spersonalizowaną agendę przez link, którą może otworzyć na dowolnym urządzeniu - cross-platform małym kosztem) i przeczytałem mailing od organizatorów. Okazało się, że mimowolnie zrezygnowałem ze śniadania (które było o 9:00) dodatkowo pociąg spóźnił się także na pierwszej prezentacji pojawiłem się z opóźnieniem.

Keynote: Mobile development in a post Continuous Delivery world ***** (5/5)

Prezentowały dwie konsultatnki z Thoughtworks - jednej z najbardziej znanych globalnych firm konsultingowych. Prowadziły bardzo na luzie, fajnym amerykańskim angielskim (pracują w Nowym Jorku). Poruszały temat Contunous Delivery w świecie mobilnym. Z moich notatek:
  • Continous Integration to tylko mała część procesu Continuous Delivery. Niby wszyscy wiedzą a jednak dużo osób o tym zapomina
  • To od czego zaczyna się możliwość robienia Continuous Delivery to architektura. Bez odpowiedniej architektury nie znajdziemy się tam gdzie chcemy
  • Odpowiednia architektura to taka, która może ewoluować
Dziewczyny wspominały o prawie Conway-a (z 1968r) - organizacje, które projektują systemy produkują je w taki sposób że odzwierciedlają struktury samej organizacji. Jako przykład podawały projekt w którym jest podział na team Androidowy, iOS, team usług mobilnych, backendu oraz bazy danych. W ten sposób ludzie od jednej platformy nie rozmawiają z drugą, mają inne priorytety a aplikacje się rozjeżdżają. Wprowadzenie nowej funkcjonalności wymaga kooperacji wszystkich warstw ale organizacja tego nie odzwierciedla.
Niby oczywistość, ale wszystkie produkty/projekty w których pracowałem były zorganizowane podobnie.
Thoughtworks, może pozwolić sobie na przekonanie klienta do zmian, ale czy ja sam będę w stanie zmienić swoją organizację?

Groovy & Android: a winning pair **** (4/5)

Groovy jest już dojrzałym językiem, mimo to nigdy na poważnie nie byłem jego użytkownikiem. A najwięcej o Groovy dowiedziałem się gdy Pivotal obecny sponsor języka zawiesił jego finansowanie. Cedric Champeu nie odnosił się w żaden sposób do tej informacji. W zamian przedstawił w jaki sposób Groovy może pomóc kodu źródłowemu na Androidzie wyglądać tak żeby oddać maksimum logiki w jak najbardziej zwięzły sposób. Po kilku przykładach przedstawił jakie problemy możemy spotkać na Androidzie używając Groovy-ego

  • Groovy jako dynamiczny język jest kompilowany na urządzeniu co prowadzi do większego zużycia baterii i spowolnienia aplikacji
  • Tworzenie dynamicznych klas na Androidzie wymaga wczytywania bytecodu (dex) z plików co jeszcze bardziej spowaia proces
Aplikacja konferencyjna na GR8Conf napisana przez Cedrica w Groovym zajmuje tylko 1MB (po proguardzie) i niewiele miejsca w pamięci.
Na koniec zaapelował do community o wspracie dla Groovy na Androidze i przedstawił plan na 2015 rok dla Androida i przedstawił kilka pomysłów które mogą zainteresować niezależnych twórców narzędzi.
  • SwissKnife czyli ButterKnife w Groovym oparty o transformacje AST (już istnieje)
  • GrooidTools w tym budowanie dynamiczne widoków
  • Dependency Injection w stylu daggera
  • Reaktywne API
  • DataBinding

Agile Practices for Mobile * (1/5)

Niestety była to sponsorska prezentacja i niestety odstająca poziomem od reszty. Prelegent zrobił przegląd różnych narzędzi dla systemów iOS i Android i wymienił plusy oraz minusy każdego z nich. Mimo że o kilku z nich słyszałem niewiele to Kevin nie miał zbyt wiele do dodania do mojej nikłej wiedzy. Jedynym nowym toolem był ship.io, który to startup Kevin wspiera, ale niestety o nim też nie można było się dowiedzieć niczego ciekawego, a szkoda bo to mogłoby uratować tę prezentacje. Jedyny plus prezentacji to amerykański angielski, którego przyjemnie się słuchało.
Prezentacja była prowadzona doskonale (amerykański angielski rulezz) ale niestety nie udało mi się z niej zbyt dużo wynieść. Jonathan reprezentujący pivotal (jeszcze) mówił o praktykach TDD i pokazywał w jaki sposób można je odnieść do desginu.

  • Pair programming. Zarówno wśród designerów albo także para programista designer. W ten sposób jedna strona barykady może zrozumieć drugą np. że czasami ciężko zrobić jest 1piksel w lewo/prawo ale czasami dobrze jest jednak się postarać i zmienić układ kontrolek
  • Definion of Done dla designu...
Mniej więcej w tym momenice stwierdziłem, że jednak zmienię salę i sprawdzę inną prezentacje.
Poźniej rozmawiałem o tej prezentacji i dla wielu osób była ona bardzo wartościowa. Być może za wcześnie zrezygnowałem z jej oglądania? Na szczęście prezentacje były nagrywane i być może obejrzę ją później.

What if...? - An utopian vision to repurpose old phones ** (2/5)

Poszedłem na prezentację Victora, na której prelegent martwił się losem milionów telefonów, które marnują się gdy wymieniamy smartfony na nowe. Ja sam mam 2 urządzenia, których nie pozbywam się (może przydadzą się do mojego start-upu?). Victor apelował żeby oddać mu swoje zużyte smartfony, które być może zużyje na edukację.
Pokazywał też ciekawe projekty, które być może spowodują mniejsze zużycie telefonów lub ponowne ich użycie np.

  • badanie wzroku dzięki kamerom smartfonów w krajach rozwijających się
  • modularne telefony (choć stwierdził że może spowoduje to wzrost liczby śmieci)
Projektów było więcej, ale niestety nie prowadziłem wtedy notatek. Victor na początku mówił o swoim projekcie protocoder ale prawdopodnie było to na początku, który opuściłem. Zainteresowanych odsyłam do strony projektu.
Prelegent, który przyleciał aż z Tokio, dysponował ogromną wiedzą, ale niestety nie zdolnościami prelegenckimi. Slajdy miały tylko tekst, prelegent rozmawiał tylko z ekranem a nie publicznością dodatkowo był bardzo zdenerwowany co odbijało się na jakości. Zainteresowanych tematem odsyłam do bloga prelegenta. Sądząc po ilości (i jakości) komentarzy blog jest poczytny.

Hacking your home – reverse engineering wireless transmissions ** (2/5)

Przeniosłem się na ten wykład, ale niestety wkraczając w połowie dość ciężko się wbić w treść i flow wykładu. Prelegent był wyluzowany, dość swobodnie prowadził prezentację o dekodowaniu sygnałów elektronicznych za pomocą arduino, diody i kabli oraz audacity. Bardzo użytecznym narzędziem była kartka papieru, zapisana zerami i jedynkami którą studiował godzinami.
Poświęcił na pewno bardzo dużo czasu, ale czy rzeczywiście jest to rzecz na którą powinniśmy poświęcać swój czas? Raczej wątpie.

Podsumowanie dnia pierwszego *** (3/5)

Jeśli chodzi o wykłady to dwa pierwsze podobały mi się, ale niestety reszta była już poniżej oczekiwanego poziomu. Oczywiście na ocenę dnia wpływ ma wybór ścieżek, który mógłbyć nienajlepszy.

Z interesujących rzeczy na mceconf wprowadzony był system głosowania poprzez karty RFID?. Przy wyjściu z sal były instalowane 2 tablety, jeden z głosem na tak drugi z głosem na nie. Czasami powodowało to kolejki ale z pewnością można szybko zebrać feedback (bo ankiet nie chce nikomu się wypełniać). Niekiedy tablety te były zainstalowane w salach i prelegent mógł widzieć ludzi wychodzących i manifestujących swoje niezadowolenie z prezentacji co mogło wystawiać nerwy prezentującego na duży test :).

Kolejny plus to godzinowe sloty, agenda wtedy jest łatwa do śledzenia (nie zastanawiamy się czy już jest koniec przerwy), dodatkowo prelegenci na prawdę mieli dużo do powiedzenia i z łatwością wypełniali sloty, co czasami odbijało się na długości przerw.

Przerwy jak zwykle służyły do spotkania różnych interesujących osób. Mnie np udało się porozmawiać z Cedriciem Champeu, który próbował pokazać mi siłę groovy-ego i groovyConsole i można powiedzieć że miałem lekcję 1 na 1 z programowania w groovy.

Z minusów to niestety mało pożywny catering. Ciastka skończyły się już po drugiej prelekcji i na prawdę chodziłem głodny. Obiad był bardzo dobry (choć mały) i wystarczył tylko na jedną prelekcję. Potem zostały już tylko ciasteczka z QRcode allegro :).

Na koniec jeszcze jeden plus czyli afterparty w miejscu konferencji. W ten sposób na afterparty jest bardzo dużo osób i na prawdę jest interesująco!

Dzień 2

Jako że w miejscu w którym się zatzymałem nie serwowano śniadań zjawiłem się o 9:00 na miejscu konferencji. Niestety śniadania nie było, tak więc musiałem odnaleźć najbliższą kawiarnię i zamówiłem podwójne śniadanie. Był to dobry manewr, który pozwolił mi nie być głodnym aż do obiadu :).

Weaving the Best Mobile Apps With Fabric ***** (5/5)

Prezentował Pan o tytule developer advocate czyli zawodowiec. I było to widać. Fajne slajdy, większość przekazu mówiona a na slajdach krótkie zajawki, plan prezentacji, podsumowania po każdej części. Prezentowany był twitter fabric czyli zestaw narzędzi dla developerów do szybszego pisania lepszych aplikacji. W dodatku za darmo.
Oczywiście zintegrowanych z twitterem (log in with twitter + embedded tweets), ale nie tylko o twitter chodziło.

  • Crashlytics (nie wiedziałem, że jest darmowy ja zatrzymałem się na ACRA - więc było to dla mnie odkrywcze)
  • Digits - powiązanie użytkownika z numerem i możliwość zrobienia logowania na tej podstawie
  • MoPub - market reklamowy, w którym to reklamodawcy oferują Ci reklamy do wyświetlenia w Twojej aplikacji
  • Program beta-testowania
Dodatkowo twitter fabric zbudowany jest modułowo że do aplikacji dołączamy tylko i wyłącznie części na których nam zależy.

Andy Piper wspomniał że Mobile Central Europe to pierwsza w uropie konferencja na której mówi się o twitter fabric!




Mimo, że kod iOSa nigdy nie wyglądał mi na czytelny to poszedłem na prezentację o Securing iOS Applications. I nie zawiodłem się, bo prelegent mówił dobrze po angielsku, pokazywał dużo przykładów i kontrprzykładów w taki sposób, że można było je łatwo zrozumieć.
Mówił o obfuskacji kodu, przechwytywaniu funkcji, wstawkach w assemblerze, instrukcjach 2-4 bajtowych, detekcji debugowania ...

Mortar & Flow **** (4/5)

Pierre Yves-Ricau, który reprezentował Square Inc. firmę znaną z tego że udostępnia swoje świetne biblioteki jako open-source i bez których ciężko wyobrazić sobie wiele projektówAndroidowych, stwierdził na początku, że jest głodny i że przez godzinę nie mamy co liczyć na jedzenie lecz kod źródłowy. Po tym żarcie rozpoczął lużną prezentacje o tworzeniu aplikacji androidowych.
  • Fragmenty są skomplikowane
  • Jeśli dodać cykl życia aktywności + fragmenty wszystko jest jeszcze trudniejsze
Odpowiedzią na te problemy mogą być mortar i flow. Flow to implementacja back stack czyli kierunku poruszania się w aplikacji (back i up z action bara) z wykorzystaniem screen-ów czyli obiektów POJO opisujących widoki. Mortar to coś co definiuje jak budować te widoki. Mortat używa dagger-a czyli kolejnej z bibliotek square dostępnych dla wszystkich. Więcej można przeczytać tutaj.
Oczywiście biblioteki są w fazie beta ale mają być potężnym narzędziem dla programistów.

Kotlin the Swift for Android  *** (3/5)

Prowadząca zmagała się z chorobą, także ton głosu był dość irytujący :) Mimo to prezentacja była ciekawa. Pokazywała w jaki sposób duże kawałki kodu a Androidzie można zamienić na mniejsze w Kotlinie. Ale żeby użyć Kotlina potrzebny jest plugin do gradle (i/lub android studio). Pokazywała też w jakis sposób można zamienić zawołania findViewById na uzywanie zmiennych o takiej samej nazwie jak id. Niestety wymagało to generowania (w tle) przez plugin napisany przez JetBrains.



Prelegent był jednocześnie wyluzowany i zdenerwowany :). Pokazywał w jaki sposób zorganizował sobie swój projekt, jakie testy używał. Prezentacja nie była jakoś odkrywcza ale jednak jej wartość była taka że opisywała typowy proces programistyczny. Niestety prelegent borykał się z efektem demo ponieważ wszystko przestało działać jeśli chciał właśnie coś pokazać.

Podsumowanie dnia drugiego **** (4/5)

Prawie wszystkie prezentacje z tego dnia były udane tak więc dzień należy podsumować dobrze. Dodatkowo udało się porozmawiać z kilkoma sponsorami wydarzenia na temat pojawienia się ich na JUGu w Łodzi.

Podczas przerwy obiadowej, która trwała 2h, można było uczestniczyć też we flashtalkach - prezentacjach skrojonych na 15min. Najciekawszą była analiza kodu google wykonana przez Aleksandra Piotrowskiego z Polidea, dotycząca idle mode (konkretnej nazwy funkcji nie pamiętam a nie mogę teraz odnaleźć) dostępnego w telefonach Android. Okazało się, że implementacja jest bardzo prosta i po prostu odczekuje czas (i znów nie pamiętam jak długo 47min?) od włączenia blokady ekranu. A w marketingu było sugerowane, że telefon wie kiedy nie będzie używany na podstawie inteligentnego algorytmu :).

Z minusów to znów bardzo mało kateringu oraz tłok do wzięcia obiadu. Obiad smaczny, ale mały oraz problemy gdzie go zjeść.

Na koniec dnia miała być niespodzianka, ale chyba coś nie wyszło co przyznali sami organizatorzy. Kamera która miała nagrywać koniec konferencji nie uniosła się w powietrze :). Na pewno był miły gest i zapraszanie wszystkich osób zaangażowanych w konferencję na scenę. Oczywiście mnóstwo osób było zaangażowanych - konferencję z takim rozmachem musiał przygotować świetny team.

Podsumowanie konferencji (**** 4/5)

Pierwsza edycja konferencji postawiła poprzeczkę bardzo wysoko. Moim zdaniem Mobile Central Europe 2 z łatwością ją przeskoczyła. 4 ścieżki wypełnione przez bardzo interesujących prelegentów - prawie wszyscy z zagranicy w większości ze Stanów z bardzo interesujących firm. Wśród odwiedzających było także wiele osób z poza Polski co pozwalało poczuć atmosferę międzynarodowości :).

Konferencja była nagrywana tak więc można będzie znaleźć to wszystko na youtube (nie wiem czy dla wszystkich czy dla osób, które były na konferencji - link podany w mailingu).

Godne pochwały był też fakt, że community takie jak Mobilization otrzymało darmową wejściówkę na MCE, ale z zastrzeżeniem, że osoba, która otrzyma ją musi na nią zapracować, a nie po prostu wylosować. U nas otrzymał ją Sławek Jasek - najlepszy prelegent konferencji Mobilization 2014 - właśnie dlatego, że jego prezentacja otrzymała najlepsze wyniki w ankiecie.

Z perspektywy 2 tygodni od zakończenia konferencji i mojej własnej perspektywy to zabrakło też troszeczkę szczegółów technicznych tzn. prezentacje nie zagłębiały się mocno w technikalia i jeśli miałbym powiedzieć czego nauczyłem się na MCE to pewnie lista nie byłaby zbyt długa. Ale lista rzeczy, których wartoby się nauczyć (ale nie mam czasu :)) na pewno się po tej konferencji rozrosła. A pierwsze miejsce na niej zajmują inne języki na JVM takie jak groovy czy kotlin.

Na pewno kilka rzeczy wymaga poprawki bo chyba na część rzeczy nie starczyło funduszy i spowodowało to rezygnację z lepszego poziomu niektórych aspektów (catering). Wiem, że organizatorzy spodziewali się większej liczby odwiedzających, choć moim zdaniem było już gdzieniegdzie zbyt tłoczno i chyba liczba osób jak na Kinotekę była optymalna.

Mimo kilku niedociągnięć ekipie Mobile Central Europe należą się gratulacje! Jeśli projekt MCEConf będzie kontynuowany to z przyjemnością będziemy go promowali w naszym community po raz kolejny.

Thursday, February 19, 2015

2015-02-12 Hibernate Multi-tenancy - stwórz własną aplikację w chmurze

Na spotkaniu obecnych było 23 osoby.
W ankiecie wypowiedziało się do tej pory 6 osób.

Dobre oceny poziomu.
Tak jak walory artystyczne.

Dobra zgodność
Nikt nie był zawiedziony!

Dobre punkty:

  • Merytoryczne podejście, przykłady z kodu narzędzia
  • Generalny opis mechanizmów multi-tenancy.


Do poprawy następujące aspekty:

  • Fajny byłby jakiś live coding. 
  • Również dobrze, jakby Marcin, mówiąc, patrzył na publikę a nie stał bokiem. slajd, mógłby widzieć u siebie na monitorze laptopa.


Niestety spotkanie nie było nagrywane.

Monday, February 9, 2015

2015-02-05 Technical Leadership - od eksperta do lidera

Tematem przewodnim kolejnego spotkania JUG'a było omówienie przez Mariusza Sieraczkiewicza dobrze nam znanej ścieżki rozwoju zawodowego programisty - od Junior Developera po Lidera.

Prezentacja zapowiadała się ciekawie, ponieważ większość osób obecnych na sali w przyszłości chciałoby zostać liderami zespołów a Mariusz doświadczenie w pracy z liderami ma na co dzień.  

Prezentację możnaby podzielić na kilka części:
- omówienie typów liderów technicznych
- różnica pomiędzy ekspertem a liderem
- cechy lidera

Mariusz zaczął od omówienia ścieżki kariery od Junior developera po Lidera jako naturalnego rozwoju kariery zawodowej w IT.
Podczas tej części rozwinęła się ciekawa dyskusja czy zawsze programista powinien zostać liderem.
Mimo ze większość osób siedzących na sali chciałoby w przyszłości zostać liderem to jednak są i tacy którym takie stanowisko nie odpowiada. 
Powodów jest co najmniej kilka: ograniczenie czasu przeznaczonego na kodowanie, zajmowanie się rożnego rodzaju formalnościami, podniesionym poziomem stresu czy tez charakterem.

W kolejnej części omawiane były cechy liderów.
Jak się okazało lider w stylu Napoleona Bonaparte, który stoi na samej górze i wymachuje palcem to stereotyp.
Bardziej ceniona jest osoba która ma odpowiednie podejście i potrafi współpracować z ludźmi,  niż która ma wrodzony gen przywództwa. Ta ostatnia cecha jest ważna, jednak stylu zarządzania można się nauczyć i wypracować co sprawia ze każdy może zostać dobrym liderem jeśli tego bardzo chce.

Mariusz zachęcił by przez chwile podyskutować ze sobą o tym jak określilibyśmy liderów z którymi mieliśmy do czynienia i czy można ich nazwać prawdziwymi liderami czy też takimi z mianowania. Wydaje mi się ze tutaj najwięcej osób mówiła o tym ze prawdziwy lider to taki który posiada w zespole autorytet.

Kolejnym tematem było rozróżnienie liderów. Okazuje się ze znaczeń tego słowa jest prawie tyle samo co firm w których pracujemy.
W niektórych organizacjach jest to często osoba która ma za zadanie przydzielanie zadań i dbanie o to by każdy miał co robić. W innych osoba która jest bardzo mocna technicznie i do której kierowane są wszystkie ważniejsze zapytania/decyzje dotyczące architektury/kodu aplikacji.
W jeszcze innych to po prostu wybrana osoba w zespole pełniąca rolę scrum mastera która sugeruje najlepsze w danym momencie rozwiązania.
Po tej części pojawiło się wiele pytań dotyczących tego jak powinien wyglądać współczesny lider.
Najlepsza odpowiedzią na to pytanie jest "to zależy" ...
W bardzo dużych zespołach z duża ilością ludzi na kontraktach bardziej sprawdzi się osoba która będzie rozdzielała zadania i czuwała nad postępem prac.
W zwinnych, samo organizujących się zespołach będzie to osoba pełniąca role scrum mastera która wskazuje zespołowi możliwe rozwiązania/kierunki ale to zespól demokratycznie, w ostateczności podejmuje decyzje.

Końcowa cześć to porównanie ekspert-lider.
Tutaj też nie obyło się bez ciekawej dyskusji, czy można być jednocześnie i ekspertem i liderem.
Zdaniem wielu osób czym więcej jest się liderem tym mniej czasu na to by rozwijać się jako ekspert i  najlepiej starać się to zrównoważyć by mimo bycia liderem nadal nadążać za zmianami w technologiach które nas otaczają.
Mariusz wyróżnił tutaj trzeci termin "coach" jako pośredni pomiędzy ekspertem a liderem , jako ciekawa alternatywa kariery .

Na koniec znalazło się kilka cennych rad jak sobie radzić z byciem liderem i z budowaniem autorytetu.

Prezentacja była bardzo ciekawie poprowadzona,  zapoczątkowała wiele ciekawych dyskusji które trwały nawet po zakończeniu.
Dla osób które czuły niedosyt oczekując większej dawki analizy liderów dobrą informacją jest fakt że Mariusz przygotowuje książkę w której tematem przewodnim będą właśnie liderzy.
Zachęcam do obejrzenia wideo ze spotkania.

Wideo ze spotkania:

 

Link do prezentacji: