Saturday, March 29, 2014

Play 2 - powrót do prostoty

Trochę obawiałem się o frekwencję na spotkaniu z racji tego, że zostało umieszczone na meetupie dopiero w sobotę i to nawet bez poprawnego tytułu, a pełen opis spotkania pojawił się dopiero w niedzielę. Później powstał event na Facebooku a na koniec zaproszenie z kalendarza Google poszło do grupowiczów subskrybujących Google Groups.

Początek spotkania - jeszcze niewiele osób
O godzinie 1750 na DMCSie był już prowadzący - to połowa sukcesu - i niestety dość mało osób - około 15tu. Szkoda byłoby gdyby na tą prezentację nie przyszło dużo ludzi. Paweł w końcu został uznany najlepszym prelegentem 2013r na JUGu! Na szczęście publiczność zaczęła się pojawiać i gdy prowadzący rozpoczął nie było już tak słabo z ilością osób. Na sam koniec prezentacji podczas losowania wejściówek na Geecona i książki od Manninga okazało się że było ponad 40 osób co chyba jest najlepszym wynikiem w tym roku.

Play uznawany jest za bardzo ciekawy projekt, wspominał o tym Matt Raible w swojej prezentacji na vJugu - Comparing JVM Web Frameworks. Paweł we wstępie powiedział, że filozofia Play przypomina programowanie w Rails - choć przyznał, że sam w RoR nie programuje. Ja osobiście zmusiłem się kiedyś do przeczytania książki Agile Web Development with Rails 3. Zmusiłem to złe słowo bo programowało się całkiem przyjemnie. Niemniej jednak poza scope książki nie przeszedłem.
Centrum sterowania prezentacją - live coding

Wracając do prezentacji, na pewno podejście a-la Rails jest dobre - prosto, lekko i przyjemnie. Tego brakowało w świecie Javy i Play2 to zmienił. A Paweł pokazał jak prosto się gra w Play2. Do tego celu wybrał prelekcję w formie live-coding. Jest to na pewno bardzo trudna forma bo jest duże ryzyko niepowodzenia. Jak coś nie działa to zaczyna się nerwowe szukanie błędów, presja publiczności robi swoje i można na prawdę położyć prezentacje. Jednak z tej konfrontacji zwycięsko wyszedł Paweł - miał przygotowane szablony kodu i tylko wklejał odpowiednie kawałki. Czasami coś nie kompilowało się, ale szybko było poprawiane na bieżąco. Prezentował też niezwykle skuteczny skrót klawiszowy w eclipse ctrl+spacja, którego prostota wywołała zachwyt części publiczności w osobie Mariusza Saramaka :).


Publiczność jeszcze dociera w trakcie

Paweł rozpoczął od pochwalenia się swoją wiedzą na temat różnicy między protokołem HTTP w wersji 1.1 a 1.0, czyli chunked encoding, którego to mechanizmu serwer wbudowany w play2 używa.
Play2 nie wymaga restartu serwera i można go też skonfigurować także w tryb autokompilacji czyli produktywność na maxa. Kolejny ciekawy feature tego frameworku to konsola w scali (lub javie) w której możemy testować kawałki kodu. Dodatkowo widzieliśmy jeszcze worksheet czyli takie żywe szablony dla scali w eclipse.

Do tetowania serwisów Paweł używał też wtyczki w chrome - o nazwie Postman.
Play 2 umożliwia szybkie pisanie ale jednocześnie kompilator jest w stanie wyłapać wiele błędów - nie walczymy z runtimem a kompilator naszym sprzymierzeńcem jest :).

Następnym elementem prezentacji było tworzenie formularzy a nawet testowanie ich bez kompletnego jeszcze widoku. Niektóre testy trzeba było zakomentować bo nie nadążały nad zmieniającym się live codingiem :) - czego oczywiście na prawdziwej produkcji nigdy byśmy nie zrobili.

Kolejne małe a fajne możliwości Play 2 to kompilacja javascript czyli kompilator dba o poprawność naszego js-a. Dodatkowo mamy z paczki funkcję zmniejszania javascript przez minify.

Aplikacja napisana w play2 jest gotowa do deploymentu w postaci jednego jara to kolejny feature jakiego na pewno powstydziliby się wymyślić poważni architekci.

W tym momencie zabrakło wody i dalszy flow był zagrożony - na szczęście woda od publiczności uratowała wieczór :)

W tym momencie Paweł pokazał jak uniknąć callback hell dzięki scali i futures and promises. Wspomniał jeszcze o WebSockets i problemach z firewallem oraz Akka czyli koncepcji aktorów do niezawodnego programowania wielowątkowego.

Dla zainteresowanych Scalą była też wzmianka o polskim projekcie kontenera DI jako makr w Scali napisanych przez Adama Warskiego z SoftwareMill - Macwire

Tak zakończyła się prezentacja będąca nagrodą w konkursie na najlepszego speakera 2013r. Wydaje mi się, że Paweł sprostał wymaganiom jaki ten tytuł ze sobą niesie. Potwierdziły to wyniki ankiety pojugowej. Szkoda tylko, że ankietę wypełniło zaledwie 10% osób obecnych na spotkaniu.
Pytania po spotkaniu - dobry znak - było ciekawie
Na spotkaniu Paweł próbował zacząć temat inkubatora czyli prezentacji dla studentów, które jako łódzki JUG moglibyśmy robić - proszę dajcie znać jeśli bylibyście zainteresowani tym tematem. Oczywiście szukamy prelegentów na takie spotkania.

W kolejny czwartek zapraszam na prezentację Mateusza Smolarczyka o tym jak zintegorować się z serwisami społecznościowymi za pomocą OAuth.

Saturday, March 22, 2014

Clean Coders Episode 10 - z innej perspektywy

Paweł Włodarski w w poprzednim poście odcinek już opisał, więc nie będę już opisywał samej prezentacji Roberta Martina.

It's a lie :)
Na pewno był to fajny odcinek, wiele osób śmiało się z idealnego projektu opisywanego przez Uncle Boba z podkładem muzycznym niczym z love story. Oczywiście Robert Martin w diabelskim przebraniu powiedział na koniec, że nie ma idealnych projektów i zawsze pojawią się nowe wymagania, których nie przewidzieliśmy. My musimy (my developerzy) jakoś sobie radzić np. poprzez częstsze iteracje i konfrontowanie tego co powstaje w tych iteracjach z klientem.

To co chciałem poruszyć w tym poście to to, że nasze inicjatywy takie jak seria z Uncle Bob-em zaczynają się rozkręcać. Symphony Teleca była sponsorem po raz drugi. Marcin, który reprezentował firmę na JUGu, na pytanie czy pierwsze spotkanie (gdy sponsorem była ST) było skuteczne, odpowiedział: "Zdecydowanie tak, mieliśmy szansę przedstawić firmę i ofertę, a 60USD to nie jest duża cena za to żeby zyskać 15 minut uwagi programistów. I ma nadzieję, że dzisiejsze ogłoszenie dotrze do odpowiedniej liczby odbiorców".

Jeśli więc czytasz tego posta to daj znać w swojej firmie czy nie znajdą 60USD na kolejne odcinki Wujka Boba? Na dzień dzisiejszy w pipeline (piękne biznesowe słownictwo - czyż nie?) jest jedna firma (innymi słowy oczekujmy niedługo Episode 11) oraz dwie, które pytały o spotkanie - być może osiągniemy porozumienie. Wujek Bob przygotował odcinków co najmniej 2 razy tyle niż zdołaliśmy zobaczyć do tej pory, więc jest jeszcze miejsce.
Android Senor Developer

Drugi aspekt tego spotkania na który zwróciłem uwagę, to że oferta, która przedstawiał Marcin była prezentowana z widełkami płacowymi (Senior Android Developer - 6.5k do 12k). Nie wiem jaka jest tu rola JUGa, pewnie żadna, choć może jakiś wpływ na to spotkania z Uncle Bob-em miały - zawsze gdy prezentowała się jakaś firma to były pytania o płacę i może zmieniliśmy trochę świat :) ?

Trzeci wniosek po spotkaniu dotyczył programowania na platformę Android - Marcin zauważył, że niewiele ludzi programuje na Androida, a przecież nie jest to trudne. Innymi słowy potrzeby są większe niż liczba osób na rynku. To zjawisko obserwuję w swojej firmie (obecnej i poprzedniej). Znane prawa ekonomii o podaży i popycie powinny działać na naszą (programistów Androida) korzyść. Tak więc zachęcam do zgłębiania tajników Andka.

Sunday, March 16, 2014

Clean Coders Episode 10 - Open Closed Principle

Drugi odcinek omawiający zasady SOLID mamy już za sobą. Sponsorem była firma Symphony Teleca

  1. Single responsibility principle
  2. Open/closed principle
  3. Liskov substitution principle (Powinien być za dwa tygodnie)
  4. Interface segregation principle
  5. Dependency inversion principle

Co ciekawego w odcinku

Było by cudownie gdyby tak dało się dokładać nową logikę bez rozgrzebywania starej. Wtedy moglibyśmy rzec, że nasze rozwiązanie jest otwarte na rozbudowę a jednocześnie nie musimy modyfikować tego co już jest.

Jak to osiągnąć? Po pierwszej eliminując zagmatwany kod proceduralny, który wiąże ze sobą w jednym miejscu wiele koncepcji. I we wspomnianym odcinku mogliśmy zobaczyć jak to zrobić w praktyce. Ale czy to wystarczy?

Otóż okazuje się, że nie! Z pozoru poprawny projekt obiektowy nie przetrwał wymagania postawionego przez mówiącego z południowym akcentem farmera (granego przez Roberta C. Martina - zresztą jak wszystkie postaci). Autor wyjścia podał dwa : Albo długo długo intensywnie myśleć i potworzyć komponenty na tak wysokim poziomie abstrakcji, że mało kto skuma o co w nich chodzi - Albo adaptować projekt w krótkich odcinkach czasu do przychodzących zmian. A ponieważ to jest grunt na dobry flame war to tutaj skończymy opis.

Za tydzień 20-03-2014

Za tydzień Play Framework.
Link na meetupie --> Link na meetupie

Saturday, March 1, 2014

Clean Coders Episode 9 - The Single Responsibility Principle


Po ostatnim odcinku wprowadzającym ogólnie do zasad SOLID na pewno nie mogliśmy doczekać się przejścia do konkretów. Takie miało być spotkanie nr 9 z Robertem Martinem gdzie mieliśmy dowiedzieć się czegoś o zasadzie pojedynczej odpowiedzialności. Na DMCS zjawiło się około 30 osób.

Nawet nasz gość czyli Pan Kacper z firmy Sii był ciekaw jak wyjaśni tę zasadę Robert Martin. Potem przystąpił do prezentacji firmy.

Na spotkanie przyszło kilka nowych twarzy, być może przyciągnęło ich pojawienie się nowej firmy na JUGu? Natomiast od samej firmy usłyszeliśmy, że stawiają na rozwój własnych pracowników. Potwierdziła to Pani Ula z HR.

Do pomocy ruszył nawet Krzysztof Telka, pojawiający się regularnie na JUGu, który pracuje w Sii i przekonywał, że w firmie nie ma prawie biurokracji.
Rozmowa o firmie przeciągnęła się ponieważ pojawiło się wiele pytań ze strony publiczności m.in. o widełki płacowe na stanowisku Senior Java Developer.

Wujek Bob jak zwykle zaczął od lekcji fizyki i opowieści o dokonaniach Einsteina i o tym, że czas jest zakrzywiony. Po dość długiej tej części jednak przeszedł do opowiadania o zasadzie SRP na przykładzie klasy opisującej pracownika.

Opisał na czym polegają role, kto jest użytkownikiem, jak na tej podstawie znaleźć odpowiedzialności w systemie. Później mówił o tym co jest wartością oprogramowania. Ci co oglądają wszystkie odcinki na pewno spodziewali się odpowiedzi. Otóż wartość oprogramowania to nie tylko to w jaki sposób spełnia obecne potrzeby użytkowników, ale to z jaką łatwością może dostosować się do nowych wymagań użytkowników. A te z pewnością zmienią się.

Na koniec Robert Martin pokazał przykład w jaki sposób napisał program MasterMind. Najpierw mówił o architekturze, potem pokazał diagramy a na koniec zrobił demo. To wszystko było jednak prowokacją ze strony trenera, bo przedstawił to w klasycznym podejściu waterfall. Tak naprawdę Robert Martin przyznał zaczął od testów i gdy miał 90% kodu, to zauważył architekturę, zrobił dla niej diagram, który pokazał jako przemyślaną najpierw architekturę!

Jak sam dodatkowo przyznał najlepszy moment na tworzenie dokumentacji to sam koniec projektu!

Dla chętnych była praca domowa do przeanalizowania -jak Robert Martin rozwiązał MasterMinda http://dl.dropbox.com/u/4730299/MasterMind.zip

Podczas tego epizodu mieliśmy polski akcent w postaci Wujka Boba w toalecie ze znajomymi napisami.

Jeszcze ostatnia rzecz na która zwróciłem uwagę to kiedy Wujek zaczął opowiadać w jaki sposób rozwiązałby problem od którego zaczęliśmy ten odcinek (klasa Employee, raportowanie, zapisywanie do bazy, wyliczanie pensji). Pokazał 3 rozwiązania (m.in. fasadę), ale każde miało jakieś wady. Umiejętność wyboru najlepszego zastosowania nazwał pan Martin inżynierią oprogramowania. A to, że za każdym razem musimy podejmować decyzję przypomina mi Decisions Decisions Dana North-a.

Za 2 tygodnie kolejny odcinek - Open Closed Principle. Spotkanie będzie sponsorować Symphony Teleca. Zapraszam na meetupa.

Sunday, February 23, 2014

UI, UX, UCD, ID – czyli o co chodzi i dlaczego powinniście to wiedzieć

Masa linków

Gdyby ktoś nie śledził forum na meetupie to Michał Jaskólski, który był bohaterem tego odcinka JUGa, zapodał tam kilkadziesiąt linków do przeróżnych poradników UXowych. A oto ten właśnie link do forum

Frekwencja i temat

Na spotkanie przybyło ponad 40 osób - i było też chyba kilka nowych twarzy. W sumie temat też był niecodzienny i bardzo dobrze. Trzeba poszerzać horyzonty i jeśli ktoś ma jakąkolwiek ciekawą prezentację z obszaru IT to niech nie obawia się tego "Java" w JUG. To trochę tak jak np. piosenkarka wychodzi za maż to też sobie nazwiska nie zmienia bo tłumy je znają itd.

Witamy z otwartymi ramionami każdego kto chce podzielić się wiedzą - były już prezentacje o Agile,Amazonie i Javascript. Ludziom się jak na razie podobało.

Fotki

Następne spotkanie

Już w ten czwartek 9 odcinek "Clean coders" - Spotkanie na meetupie. Tym razem będzie o "The Single Responsibility Principle" (Czyli m.in. żeby nie tworzyć klas "*Manager")

Sunday, February 9, 2014

Drools - systemy eksperckie

Prelegent : Przemek Różycki

Przemek opowiedział "o tym skąd się wzięła koncepcja Droolsów, że jest to narzędzie do budowania systemów eksperckich, oparte o silnik reguł, zawierające mechanizmy wnioskowania, jednak nie tak złożone jak np. Prolog, ale bardziej takie dla ludzi"

Rekonstrukcja zdarzeń

Poniżej moja relacja ze spotkania, która zawdzięcza swoją specyfikę faktowi, iż w ogóle na tym spotkaniu mnie nie było:)

Przemek podjechał pod DMCS

Na początku standardowe pogawędki w gronie IT

Prezentacja

I zakończenie

I trochę prawdziwych zdjęć

Zapiski prezentera i widzów (celowo wymieszane)

  • przedstawiłem problem medyczny (wykrycie średniego lub wysokiego ryzyka choroby wieńcowej) i jaki model do niego zaprojektowałem, po czym omówiłem reguły, które do tego służą
  • Buduje się model (klasy Java) z if-ologią, case'ami, coś na zasadzie klasy abstrakcyjnej (np Choroba) i 5-6 klas podrzędnych z metodami typu opisChoroby, przyczyna, dolegliwości, gdzie one zawierają jakąś logikę Następnie buduje się reguły drools (pliki z *.drl)
  • I np przychodzisz do lekarza on Cię bada: sprawdza tętno jeżeli > 60 to zadaj pytanie o coś tam, jeżeli tamto coś tam było true zbadaj czy nie ma obrzęku płuc i tak dalej i tak dalej aż do diagnozy.
  • pokazałem kilka innych mechanizmów dostępnych w Droolsach już nie na przykładach, jak integracja z JPA, dodatkowe możliwości konfiguracji, plugin mavenowy do kompilacji reguł
  • Przykład z Oragne: Droolsy podczepili jako system decyzyjny do frontendu. Jak klient sobie wybierał nazwę telefonu, to dalej drools szybciorem zaczytał mu model, potem taryfę i potem drools decydował i wysyłał do frontendu model co możesz dostać jeszcze z tą ofertą a czego nie, albo sugerował jakie usługi jeszcze dobrać by mieć lepsze pakiety, model telefonu.
  • Inny przykład to definiowanie reguł drools za pomocą tekstowych komend, coś jakbyś miał XSL wyciągający z XML'a dane i łączył to w całość. Wygląda to fajnie na zasadzie (nie pamiętam prefiksów ale na wzór)
    • In 2000 year I was <drl:year> year old. I like <drl:hobby>
    Wtedy bardzo szybko zmieniasz takie reguły, dosłownie w pliku properties. Kompilujesz uruchamiasz i bangla. Żeby to zrobić to operator musi być trochę biznesowy ale sporo IT, bo coś spieprzy i zapętlisz reguły i będzie lipa.

Następne spotkanie

Tuesday, January 28, 2014

JUG na Mobile Central Europe

Disclaimer

Recenzja konferencji wyszła mi trochę przydługa, mam nadzieje, że ktoś jednak przeczyta. Opinie prezentowane są moimi własnymi a znajdują się na blogu JUG Łódź ponieważ udzielam się w JUG Łódź, ale nie są oficjalnymi opiniami Stowarzyszenia JUG Łódź.

Na konferencji robiłem notatki, z których niestety tworząc ten wpis nie mogłem skorzystać. Na pewno kilka recenzji na tym straciło ponieważ nie mogłem przekazać dalej zaprezentowanych idei czy narzędzi. Oprócz notatek starałem się tweetować, niemniej jednak ćwierkanie, robienie zdjęć i słuchanie prelekcji za jednym razem to sztuka trudna do opanowania.

Konferencja

W sobotę 9go 11go stycznia odbyła się całkiem duża konferencja dotycząca technologii mobilnych - Mobile Central Europe. Była to pierwsza edycja tej konferencji a organizatorom udało się zgromadzić około 400 osób. Jest to na pewno duży sukces ponieważ konferencja nie należała do najtańszych - (około 700 PLN + VAT).

Za organizację tej konferencji wzięli się profesjonaliści z Polidea na czele z Wojtkiem Erbetowskim, który także jest głównym spinającym Warszawskiego JUGa. Jechałem na to wydarzenie z zadaniem porównywania Mobile Central Europe z Mobilization. Kiedyś (~2010) wymyślając Mobilization każdy z organizatorów miał swój obraz konferencji. Mój był na pewno zbliżony do tego co oferowało MCE: czyli zagranicznych prelegentów, którzy mieli inspirować i uczyć, prelekcje w języku angielskim, współpraca z firm(ą) dla której takie wydarzenie wpisuje się w filozofię.

Konferencja miała odbyć się w kinie (Kino Praha), w dodatku miejsce zarezerwowane było na cały dzień z afterparty, więc koszty organizatorów musiały być duże. Do tego doliczyć należy koszty przelotów prelegentów, z których część przybyła ze Stanów.


Z Łodzi jechało łącznie ze mną 5 osób: Rafał Lenarczyk, Krzysztof Gutowski, Marcin Iwanicki i Marcin Gadawski. Przyjechaliśmy dosyć wcześnie i powitała nas Ida Bzowska, która chyba postawiła sobie za cel być wolontariuszką na każdej konferencji związanej z IT w Polsce :).

Mignął też nam Wojtek Erbetowski, który podziękował za wypożyczenie krótkofalówek i powiedział, że przydały się, co mnie ucieszyło. Dostaliśmy duże identyfikatory z naklejonymi na nim imieniem i nazwiskiem, opisem własnej osoby (chyba podawało się to do rejestracji) i tajemniczym trzyliterowym kodem. Kod okazał się być potrzebny do zabawy w rekrutację swojego zespołu za pomocą prostej aplikacji webowej dla mobilek. Przyznam szczerze, że nie lubię gier i zabaw na konferencjach ponieważ rozpraszają one i zabierają czas, który można poświęcić na rozmowy w przerwach lub prelekcje. I zawsze staję przed dylematem czy uczestniczyć i może coś wygrać czy jednak darować sobie?

Z tyłu identyfikatora była agenda, jak zwykle na konferencjach nieodwrócona do góry nogami co powoduje, że mniej wygodnie ogląda się plan dnia mając identyfikator na szyi. Mobilization wydaje mi się jedyną konferencją, która umieszcza agendę w ten wygodniejszy sposób :).

Sale kinowe były na pierwszym piętrze i tam miały odbyć się prelekcje tak więc ruszyliśmy na górę. Na schodach spotkałem Erica Lafortune, który miał mieć pierwszą prelekcję na żółtej Sali. Z Ericiem miałem przyjemność mailować przy okazji mojej i Andrzeja Jóźwiaka prelekcji na Confiturze dotyczącej zabezpieczania aplikacji Androidowych. Eric jest twórcą komercyjnego narzędzia DexGuard służącemu utrudnianiu dekompilacji aplikacji androidowych. Eric skojarzył mnie od razu albo przynajmniej udawał - całkiem dobrze. Zapowiedziałem się na jego prelekcji i poszedłem zjeść.

Catering

Catering przygotowały dziewczyny ze spółdzielni bułka i spółka. Jedzenie było fajnie przygotowane, ale mam wrażenie że było go nieco za mało i wymagało wielkiej precyzji żeby powkładać małe porcje osobno w plastikowe pojemniczki :) - czułem się winny zjadając kilka pudełek na raz :).

Tuż przed 10.00 rozpoczął Wojtek Erbetowski i Jarek Potiuk z Polidea, podając kilka liczb związanych z konferencją. Mi w pamięci utkwiło 1500h jakie poświęciła ich firma na przygotowanie konferencji. Albo inaczej: ile godzin zaraportowano na projekt MCE, z pewnością tych godzin było o wiele więcej, ale już nie z budżetu firmy.

Jeśli chodzi o prelekcje salach kinowych to zawsze taki set-up znany z Geecona robi duże wrażenie. Nie inaczej było tutaj. Prezentacje na ekranie kinowym są ogromne! Na MCE dodatkowo scena z prelegentem była podświetlona led-ami i robiło to efektowne widowisko. Prelegenci mieli do dyspozycji telewizor LCD (42 albo więcej cali) na którym widzieli swoje slajdy, a także monitor LCD z wyświetlanym zegarem.

Jeśli chodzi o czas to wszystkie prelekcje startowały o pełnych godzinach i mogły trwać chyba do 50min. Właściwie to wyszło bardzo ciekawie bo część prelekcji kończyła się wcześniej i można było poświęcić czas na tzw. networking albo zjadanie kolejnych porcji przygotowywanych przez bułkę i spółkę :).

Eric Lafortune - ProGuard, Optimizer and Obfuscator in the Android SDK


Pierwszą moją prelekcją był talk Erica Lafortune. Przyznam, że nie dowiedziałem się wiele nowego o proguardzie ale spokojny i rzeczowy sposób prezentacji Eric-a bardzo mi się podobał. Eric mówił o tym w jaki sposób jego hobby przekształciło się w projekt i jak bardzo poważnie traktował swoje zadania co doprowadziło go do powstania Start-upu Saikoa oraz niezłej reputacji na Stack Overflow.

Było też kilka metafor takich jak strząsanie zwiędłych liści opisujące działanie Proguarda na kodzie Javovym. Byłem nieco zaskoczony, że dość mało osób na sali znało to narzędzie - lub nie chciało im się podnieść rąk :). Po prezentacji udało mi się jeszcze zamienić kilka słów z prelegentem i dowiedziałem się, że Startup Saikoa jest 2 osobowy - Eric prowadzi razem z partnerką, która też jest Software Developerem.

Wiebe Elsinga - Prototyping your Android app, the (U)X-factor


Wiebe mówił o konieczności stosowania prototypów: małych, tanich, szybkich i testowalnych. Pokusił też o ocenę polskiej aplikacji - jakdojade.pl i skrytykował ją za podwójne kliknięcie w przycisk back w celu zamknięcia aplikacji. Ostatnio częściej spotykany 'feature' aplikacji androidowych. Wywiązała się krótka dyskusja na ten temat, ale Wiebie powiedział, że to jego zdanie i każdy może mieć inne.

Kontynuacja prezentacji nie przyniosła jakiś wielkich odkryć jeśli chodzi o prototyping. Na koniec obejrzeliśmy mało śmieszny film z życia Wiebe kiedy prototypował grę ping w samochodzie poruszającym się z prędkości 200km/h. Z wartościowych rzeczy pokazał lub wspomniał o UIStencils Keynotopia Proto.io, Fieldtest.

Alex Shirazi - Design Focused Mobile Development


Na tę prezentację niestety się spóźniłem i nie bardzo byłem w stanie skupić uwagi bo nie wiedziałem jaką tezę udawadniamy. Na moim notesie miałem zapisane tylko 3 zdania z tej prezentacji. Google vs Box - Alex opowiadał o różnych koncepcjach teamu UX. Albo dedykowanym człowieku do UX dla projektu lub współdzielonym superteamie Uxowców. Bez oceny które rozwiązanie jest lepsze. Był też przegląd możliwości tworzenia UXu poprzez wireframes, design on napkin czy innych. Mówił też o konieczności synchronizacji i trzymaniu aktualnego dokumentu zawierającego design.

Lunch break


Na obiad była kanapka - cztery rodzaje do wyboru oraz zupa w kubku. Rafał stwierdził że jest to dobry pomysł na Mobilization bo nie trzeba używać sztućców i właściwie można obiad wypić na stojąco :).

Flash talki

Podczas obiadu osoby, które nie wyszły z Kina mogły uczestniczyć w flash-talkach - krótkich 15 min prelekcjach.

Matt Harasymczuk - West Scrum Story


O Macie dowiedziałem się kilka dni wcześniej w związku z jego planowaną po MCE prelekcją na wJUGu. Matt pracuje w firmie państwowej, która działa jak prywatna. Interesujące i zdecydowałem że na prezentację na wJUGa pójdę. Nie wiedziałem o flash-talkach ani o prelegentach więc pojawienie się Matta było pewnym zaskoczeniem.

Fascynację Scrum-em przeżyłem 2-3 lata temu i od tego czasu mi trochę przeszło. W fazie fascynacji poznałem jednak dużo teorii i to o czym mówił Matt już znałem. Brakowało mi w tej prezentacji praktyki. Trzeba robić backlog grooming, ale jak robić w firmie? W Scrum zazwyczaj bawi się team programistyczny a reszta organizacji już się nie bawi, jak sobie z tym radzić? Tych odpowiedzi brakowało, ale muszę dodać na plus dla prelegenta, że mówił ładnie i z dużym zaangażowaniem, także wątpliwości, że firma Matta działa efektywnie nie było.

Łukasz Gawin - Once Upon a Time… Bugs


Łukasz niestety został pokonany przez stres. Na sali pewnie było z 200 osób i być może była to pierwsza prelekcja przed tak dużą i na pewno wymagającą publicznością. Ciekawie zapowiadająca się lightowa prezentacja, przerodziła się w drogę przez mękę zarówno dla prowadzącego jak i dla publiczności.

Oguz Bastemur - Multithreaded Javascript on the Server Side!


Nie rozumiem Javascriptu po stronie serwera, po stronie klienta też raczej nie. Nie mówię nie, ale po prostu nie mam czasu zrozumieć. Prób używania na Code Retreat JSa, też nie uważam za udane. Niemniej jednak prelegent dawał radę i opowiadał o featurach swojego rozwiązania. Kolega, z którym siedziałem skomentował jednak to tak, że każda nowa technologia robi ciągle to samo od nowa - wymyśla układanie bibliotek w moduły, uproszczenia do modelu wielowątkowości itd.

Piotr Podziemski - Cukeriada - an educational game designed for children suffering from type 1 diabetes




To nie była stricte programistyczna prezentacja. Dotyczyła pomocy dzieciom chorym na cukrzycę typu 1 - czyli takiej która wymaga podawania odmierzonej ilości insuliny. Gra, którą cukieriada chce stworzyć ma pomóc dzieciom w nauce nawyków związanych z chorobą - czyli wyliczaniem ile potrzeba insuliny, robieniem zastrzyków i innych problemów. Piotr prezentował lalkę Zoee (?), która jest częścią gry (druga część jest na tablecie). Duża część gry jest już zaprojektowana, a teraz należy ją zakodować i Piotr poszukiwał programisty gier, który chce się zaangażować w ten startup. Piotr jest fizykiem z wykształcenia.

Łukasz Stefaniszyn - Mobile applications - implementation of quality


Kolejny przedstawiciel Allegro Group nie był tak zestresowany i prezentacja była dość ciekawa. Łukasz Opowiadał o aplikacji ceneo w jaki sposób dochodzili do jakości i najwyższych miejsc na marketach dla wszystkich platform. Kolejna prezentacja nie mówiąca o tym jak pewne praktyki odmieniają o 180stopni tworzenie oprogramowania na łatwe i przyjemne, ale jak te praktyki wprowadzane stopniowo, ze zrozumieniem tematu pomagają tworzyć lepszą jakość.

Krzysztof Zabłocki - Tips & Tricks for iOS Devs

Przyznam, że po prezentacji dla iOSowców nie spodziewałem się dużo. Nie dlatego, że programiści objective-c są jacyś inni- tylko dlatego że iOSowe techniki nie przydadzą się mi. Byłem jednak w błędzie, Krzysztof opowiedział w jaki sposób być lepszym programistom, w jaki sposób pracować nad swoim warsztatem, jakich narzędzi używać żeby się rozwijać. Prezentacja bardzo interesująca i inspirująca. Warsztat Krzyśka to m.in.



Drew Crawford - UI testing sucks

Mam taką teorię, że ludzie lubią prezentacje i prelegentów, którzy opowiadają o dobrze im (ludziom) znanych tematach,. To o czym opowiadał Drew Crawford ja sam przeżyłem na własnej skórze w pewnym projekcie. Dlatego jego prezentacja podobała mi się najbardziej. Drew opowiadał o testowaniu UI, głównie mówiąc o niedoskonałościach takich jak wrażliwość na zmiany (podał prosty przykład Use Case, który testował i pokazywał na jak wiele sposobów może się Test Case zepsuć), niederministyczność czy pewne stałe czasowe, które muszą być ukryte w kodzie. Prelegent sugerował, żeby nie opierać się tylko na testowaniu UI-a tylko posiadać testy na niższych warstwach a testy UI traktować jako uzupełnienie. Mi bardzo w jego wystąpieniu podobało się to, że był to solidny opis bez proponowania rozwiązań, które zbawią świat. Tworzenie software-u to po prostu ciężka praca.

Gal Cerf - Mobile App Quality

Prezentacja przedstawiciela diamentowego sponsora czy uTest nie była najgorsza. Często zdarza się, że sponsor na siłę wstawia swoją prezentacje, która poziomem odstaje mocno od innych. Prezentacja wiceprezydenta (ale ds. inżynierii oprogramowania) była krótka, ale zawierała referencje do różnych narzędzi wspomagających utrzymanie jakości w produktach mobilnych. Oczywiście dużą część narzędzi dostarcza uTest, ale reklama produktów była bardzo dyskretna. Właściwie kto nie znał produktów firmy, mógł tego nie zauważyć. Ja też ekspertem w tej materii nie jestem ale wiem, że uTest odkupił apphance od pewnej polskiej firmy z dobrymi pomysłami :). Pan Gal Cerf po prezentacji zamienił ze mną kilka słów i zareklamował, że Apphance poszukuje programistów do biura w Warszawie. I pewnie będzie zajmować się tworzeniem rozwiązania z dziedziny crowdtestingu.
Narzędzia o których wspominał Gal to:

  • bugsense
  • crashy
  • flurry
  • appsee
  • critericism
  • appfigures
  • applause (to chyba nowa nazwa apphance)

Cesare Rocchi - Apps and Mental Models

Z powodu późnego startu i dłuższej przerwy obiadowej, przedostatnia prezentacja MCE zaczynała się o czasie, w którym inne konferencje mają zaplanowane pożegnania. Odczuwałem już trochę zmęczenie a także pewne rozterki, którą salę wybrać. Zostałem w końcu na tej samej sali i tym samym na prezentacji Cesare. Prelegent na pewno miał dar mówienia w sposób ciekawy, niemniej jednak nie mogę sobie za wiele przypomnieć z tej prezentacji :). Sprawę pogarsza fakt, że moje notatki z konferencji zostawiłem 7tys kilometrów z miejsca gdzie obecnie przebywam. Pamiętam że byłem nieco zawiedziony, że nie poszedłem na Designing for Enterprise, ale opinie, które słyszałem na korytarzu sugerowały, że ta prezentacja nie była raczej udana.

Rémy Virin - Continuous Integration, from Unit Tests to hardware

Wszystkie niemalże prezentacje na których byłem odbyły się na sali żółtej. Tylko na Why UI Testing Sucks byłem na sali niebieskiej. Na czerwonej nie byłem w ogóle jako że dotyczyły bardziej iOSowych technologii a mnie na Macintosha nie stać. Postanowiłem jednak sprawdzić ostatnią prezentację ponieważ obiecywała zająć się testowaniem hardware'u. Remy Virin pracuje w Lima, która na kickstarterze zdobyła finansowanie na dalszy rozwój i zatrudniła Remy'ego :). Lima tworzy pamięć, która może być współdzielona z innymi urządzeniami. Nie jest to jednak pamięć w chmurze ale coś innego. Odsyłam do linku z kickstartera z opisem. W czasie MCE rozumiałem Limę jak hardwarową pamięć, którą trzeba przymocować do swoich urządzeń i zostałem żeby zobaczyć jak testuje się to urządzonko. Sam kiedyś byłem w projekcie, który był testowany na różnych wersjach hardware'u i ... było dużo problemów.

Pozostanie na prezentacji było z jednej strony wyzwaniem bo Remy nie odkrywał ameryki (jenkinsa), tylko prezentował znane mi zalety CI-a i chciałem po prostu wyjść. Z drugiej strony ucieczka z prezentacji była niemożliwa ponieważ usiadłem źle strategicznie czyli w środku rzędu na środku sali. Gdyby nie położenie nie pomogłoby nawet zaciekawienie na część o testowanie hardware'u. Gdy Remy zachwalał Sonar-a dla iOS już podnosiłem się z krzesła, ale doszliśmy do momentu hardware-u. Francuski prelegent w tym momencie pokazał slajd - not yet :). Czyli że jeszcze nie zrobili testowania sprzętu i zajmą się tym za 3-4 miesiące jak ustabiliziują pierwszą wersję Lipy tj. Limy. Prezentacja ta okazała się niestety najsłabszą prezentacją konferencji. Z ciekawych punktów było powiedzenie o pluginie sonara do iOSa oraz estymaty że dodanie CI do projektu powoduje 10% dodatkowej pracy teamu (utrzymanie i konfiguracja). Na pewno niepopularny pogląd dla fanatyków  CI.

After Party

Kolejny pomysł, który warto rozważyć na Mobilization to After Party w miejscu imprezy. Dlaczego? Po prostu wszyscy byli :), nie było też kłopotów z wytłumaczeniem jak dojść na miejsce imprezy ani z limitowaną liczbą wejściówek. Na after party Krzysztof Gutowski zajął się testowaniem dotykowej technologii i odkrył, że nawet z butelką piwa w dłoni można sterować obrazami niczym Tom Cruise w Minority Report.

Podsumowanie

Mobile Central Europe to bez wątpienia wielki sukces. Wszystkie bilety sprzedane, duża liczba zagranicznych prelegentów, hackathon przed imprezą na którym było sporo ciekawych technologii. Prelekcje trzymające wysoki poziom. Wpadek organizacyjnych nie było. Może kilka drobnych rzeczy (mało jedzenia, mały obiad, czasem tłok), które można zrobić inaczej nie wpływa na ocenę wydarzenia. Z niecierpliwością czekamy na MCE 2.0 w 2015 oraz na inne polskie konferencje w 2014 roku z rozbudowanymi ścieżkami mobile. Podobno 33degree coś szykuje w materii :).