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:


Sunday, January 25, 2015

2014-01-22 - Narzędzia do automatyzacji tworzenia aplikacji webowych

Na ostatniej prelekcji JUG Łódź, 22 stycznia w 6 dzielnicy Jarek Jaryszew przybliżył nam frameworki JavaScriptowe, których ostatnio całe zatrzęsienie.

Czym zaskoczył nas JavaScript w wykonaniu made in NodeJS lub made in AngularJS?
Przede wszystkim obecnie mamy cały wysyp frameworków JavaScriptowych.
O ile NodeJS do backendu, a Angular JS do frontendu mamy jeszcze pełen wachlarz frameworków JS do wyboru do koloru i do użycia.

Moją uwagę przykuł Grunt. Ciekawy dodatek do NodeJS. Czym może zaskakiwać JavaScript w nawiązaniu do tematu prelekcji?
NodeJS pięknie nadaje się do backendu, działa mega szybko ale ma kilka pułapek, na które łapią się początkujący programiści JS, chociażby callbacki i to, że wszystko działa jednowątkowo i asynchronicznie. Wiąże się to z kilkoma utrudnieniami dla początkujących. Na przykład skrypt insertujacy do bazy wykonuje się, a my w kolejnej linijce skryptu robimy "select" - error gwarantowany. Trzeba zapewnić najpierw to, żeby insert wykonał się do końca, dopiero wykonywać dalsze czynności na bazie w skryptach JS.

Jednym z rozwiązań tego problemu jest stosowanie Grunt'a. W Gruncie definiujemy zadania które mają się wykonać, i całą ich sekwencję. Żadne zadanie nie wykona się dopóki poprzednie nie zakończy się.
Spokojnie znajdziemy coś dla siebie w JS(jakiś framework lub dodatek), który przyspieszy build naszej aplikacji.
Frameworki typu Maven, też są - np Bower.
Jedyną rzeczą, która może zirytować go konfiguracja wszystkich zależności i ustawień.


Czy JavaScriptowe frameworki mogą przyspieszyć pracę i deployment aplikacji?
-Zdecydowanie tak!
Jarek zademonstrował jak przy pomocy Jasmine spowodować, by deploy aplikacji trwał kilka sekund.
Już nie jest potrzebne stopowanie całego serwera np Tomcat, wrzucanie nowego wara, restart itp.
Jasmine i inne frameworki JS posiadają wbudowaną funkcję "watch" - dowolna zmiana w pliku np html powoduje momentalne przeładowanie strony i wyświetlenie rezultatów zmian w mgnieniu oka.
Czym mogą zaskoczyć nas frameworki JS w automatyzacji procesu deploymentu?
-Dosłownie wszystkim i wszędzie.
Zaciągnięcie nowych zmian z GIT'a + build + instalacja na serwerze aplikacyjnym i wystartowanie tego jako usługi windowsowej to zaledwie kilka linijek skryptu NodeJS + Grunt - zapewniając sekwencyjność wykonywanych zadań.

Easy, fast and clever.

Tradycyjnie można było wypełnić ankietę. Oto jej wyniki.

Kilka słabszych ocen ale też kilka dobrych

Ocena umiejętności prezentacyjnych

Poprawny opis
E-booka od manninga wylosował Krysztof W.

Prezentacja i Nagranie

Prezentacja znajduje się na githubie Jarka https://github.com/zaytzev/webtools-jug-presentation a nagranie na kanale juga



Friday, January 23, 2015

2015-01-16 Startup Weekend Łódź - relacja


Podsumowanie (dla tych co nie lubią czytać)

Startup Weekend Łódź to było świetne wydarzenie. Sama forma zmusza uczestników do współpracy i bycia otwartym. Przez ostatni rok nie poznałem tylu ludzi co podczas tej imprezy. Wykorzystałem moje zapasy na bycie miłym i towarzyskim na pół roku do przodu.
Organizatorzy dali radę. Wszystko było bardzo dobrze zaplanowane, zawsze wiedziałem gdzie i o której godzinie będzie następny punkt programu. Cały czas w lodówce chłodził się zapas redbulla a stoły uginały się pod ilością jedzenia.
Jeżeli ktoś miał pomysł na biznes, lub chciałby się tylko dowiedzieć o co chodzi z tymi startup'ami - Startup Weekend jest idealny. W ciągu 3 dni mentorzy znokautowali mnie pytaniami niezliczoną ilość razy. Ale właśnie te ich celne pytania były dla mnie najcenniejsze. W 3 dni dostałem ogromny zastrzyk wiedzy o prowadzeniu biznesu. Startup Weekend to najlepszy pomysł na spędzenie weekendu w mieście... no chyba że hackathon ;)
Podsumowując, spędziłem ponad dwa dni rozmawiając o biznesie, jedząc pizze, popijając redbulla i dobrze się bawiąc z moim wspaniałym zespołem. Na pewno nie opuszczę kolejnych edycji.


Wstęp (tak jak Pani w szkole uczyła)

Muszę przyznać że nie do końca wiedziałem na co się piszę zgłaszając się na Startup Weekend Łódź (SWL). Wtedy myślałem że SWL to rodzaj hackathonu. Nie miałem żadnych planów na weekend i tak pewnie spędziłbym go kodząc - dlaczego nie stworzyć czegoś co się przyda komuś?
Rejestracja zaczęła się o 18:30 w piątek. Dostałem piękną czerwoną plakietkę, symbol introwertyka (albo Software Developera). Były jeszcze 2 kolory, niebieski dla designerów i grafików oraz żółty dla „non-technical”. Od razu wiesz z kim rozmawiasz ;)
Po oficjalnym rozpoczęciu i kilku zabiegach organizatorów aby rozruszać nasze zasiedziałe tyłki przyszedł czas na “pitch’e”. Co to jest “pitch”? Sam musiałem sprawdzić. „An argument or other persuasion used in selling” (wg Collins English Dictionary). W moim odczuciu „pitch” to krótka wypowiedź podczas której starasz się przekonać innych do Twojego pomysłu.
W przypadku SWL, scena i mikrofon były dostępne na 60 sekund dla każdego kto chciał przedstawić swój pomysł na biznes. To był moment przekonywania potencjalnych członków zespołu że Twój pomysł jest wart ich czasu i żeby przyłączyli się do Ciebie na kolejne 2 dni.
Po serii pitch’ów każdy z widowni dostał 2 żetony będące głosem na “tak” dla danego pomysłu. Pomysłów było chyba ponad 25, niektóre genialne, inne banalne i będące kopią czegoś co już istnieje. 12 pomysłów, które zebrały najwięcej żetonów mogły brać dalej udział w konkursie.
Przez kolejne pół godziny formowały się zespoły. Każdy kto był tam szukał sobie zespołu w którym będzie pracował resztę weekendu. Ja po prostu podszedłem do zespołu którego pitch najbardziej mi przypadł do gustu i zapytałem czy znajdzie się u nich miejsce dla kolejnego programisty. W tamtym momencie w zespole był Bartek Witczak, Maciek Bołtromiuk i Maciek Kucharek (tak, tak znacie ich z Łódzkiego JUG-a). Potem dołączyły do nas jeszcze 4 świetne osoby i tak powstał zespół „Skill Boost” :D
Skill Boost Team - foto wykonał Fotokomet Michał Karasiński



Rozwinięcie akcji


Skill Boost był pitchowany przez Maćka Bołtromiuka. Idea jest bardzo prosta: stworzyć portal do organizowania darmowych warsztatów IT. Pomóc programistom którzy chcą poprowadzić warsztaty ale nie chcą zajmować się organizowaniem ich. Jeżeli na myśl przychodzi Ci meetup.com to jesteś na dobrej drodze. Dodaj do tego pomoc w znalezieniu sali, rozpropagowanie warsztatu i już wiesz czym jest Skill Boost. Ja kupiłem tę idee, kilka razy udało mi się zorganizować coś w mojej firmie, ale na myśl o organizowaniu tego na większa skalę miałem dreszcze.
Była godzina 22, zespoły były dobrane. Naszym zadaniem było podzielenie się pracą na następne 2 dni i właściwie ustalić co chcemy pokazać w niedzielę. W tym samym czasie pojawili się mentorzy. Mentor to osobnik bardzo bystry i inteligentny. Biegły w sztuce komunikacji oraz wielkie doświadczenie posiadający. Mentorzy to osoby znające się na biznesie, ludzie którzy posiadają kilka swoich firm, lub zarobili już tyle że teraz zajmują się inwestowaniem w startupy. Organizatorzy odwalili kawał dobrej roboty, zaprosili naprawdę wspaniałych ludzi i to w ilości wręcz dla mnie przytłaczającej. Były momenty że rozmawialiśmy z jednym mentorem, a drugi już czekał, nie przerywając pierwszemu, ale też chcąc usłyszeć o naszym pomyśle i udzielić wskazówek. Te wskazówki były naprawdę pomocne. Po kilku pytaniach od pierwszego mentora uświadomiłem sobie że o robieniu biznesu nic nie wiem. Potem było jeszcze gorzej...

Zaczynaliśmy z przekonaniem że nasz startup nie musi właściwie zarabiać, pieniądze nie są nam potrzebne (4 programistów-marzycieli :) ) Szybko okazało się że są potrzebne, i to w bardzo dużej ilości. Po kilku nokautach naszego pomysłu, resztę wieczoru (a właściwie nocy) spędziliśmy uzupełniając naszą idee, szukając sposobów na to aby ją urzeczywistnić, ale także aby sama potrafiła zarobić na serwery na których śmiga ;)

Drugi dzień - sobota był pełen pracy. Cały czas pracowaliśmy nad naszym pomysłem. Co oferujemy naszym użytkownikom, jak będziemy pozyskiwać nowych itp. Oczywiście cały czas zaglądali do nas mentorzy i organizatorzy, którzy byli świetnymi obiektami do weryfikacji naszych pomysłów. Obdzwoniliśmy też naszych znajomych - sprawdzaliśmy ile tak na prawdę osób skorzystałoby z naszej pomocy. Okazało się że większość osób poprowadzi warsztat w wybranym przez siebie temacie o ile My zapewnimy sale i zajmiemy się rozgłoszeniem tego. Wpadliśmy w euforię! Tak to działa! To jest potrzebne! Obdzwoniliśmy kilka firm IT - one też bardzo pozytywnie zareagowały - dadzą salę, pizzę, a i na piwo po warsztacie też znajdą się fundusze.

Implementacja w toku - foto wykonał Fotokomet Michał Karasiński

Ostatni dzień - niedziela. Mentorów przybywa, naprawdę jest ich coraz więcej! Uruchamiamy stronę, fanpage na fb. Ciągle sprawdzamy kto jest zainteresowany naszym pomysłem. Udało nam się uruchomić pierwszy warsztat! Jest mentor, są głodni wiedzy słuchacze, jest firma która udostępni nam sale. Druga część zespołu od rana pracuje nad finałową prezentacją. Każdy z zespołów ma 3 minuty na przedstawienie swojego pomysłu, opisanie co udało im się zrobić przez ostatnie 2 dni, czy zweryfikował swój pomysł, czy znaleźli klientów. Potem jest czas na pytania, jury ma 2 minuty na wiercenie w pomyśle i znalezienie słabych stron.

Nasz zespół reprezentuje Bartek. Wchodzi na scenę i daje najlepszy pitch jaki do tej pory słyszało jury na SWL. Jestem tego pewien bo Bartek był pierwszym „pitch'ującym” ;) Potem kolejne zespoły. Czekamy na werdykt.
A tak wygląda pitch'ujący Bartek - foto Fotokomet Michał Karasiński

Zakończenie

Niestety nie udało nam się znaleźć w pierwszej trójce, były lepsze zespoły i to przyznaję z czystym sumieniem - te zespoły zasłużyły na to. Zrobiły niesamowity show, ukończyły prototyp, miały oczywistą strategię i potrafiły sprzedać swój pomysł. Jednak ja nie czułem że przegraliśmy, udało nam się zorganizować pierwszy warsztat i to już sprawia że było warto!

Więcej info o SWL:
https://www.facebook.com/swlodz

Saturday, January 17, 2015

2015-01-16 Always Be Responsible for Any Code You Write, Even for Fun. NoException()

Spotkanie poprowadził Matt Harasymczuk. Relację napisze Tomasz Kieroński, który wygrał wejściówkę na LambdaDays podczas tego spotkania. Krzysiek Telka w końcu wygrał licencję MyEclipse.

Relacja Tomasza Kierońskiego

Na wstępie chciałbym bardzo podziękować Mattowi za znakomicie przeprowadzoną i niezwykle inspirującą prezentację zorientowaną na przekonanie Nas, programistów do zwrócenia szczególnej uwagi na odpowiedzialność związaną z wykonywaną przez Nas pracą.

W mojej opinii dodatkowo w odbiorze prezentacji pomogły bardzo dwie rzeczy : profesjonalny zestaw bezprzewodowego mikrofonu zapewnił bardzo dobry dźwięk oraz wyłączone światło na sali dzięki czemu prezentacja była dobrze widoczna na ekranie. Zapewne warto pomyśleć o takim właśnie sposobie prowadzenia kolejnych JUG-ów.

Oczywiście najważniejsza była przekazywana treść, która miała na celu uświadomienie każdemu z Nas, w jaki sposób podchodzić profesjonalnie do każdego kodu jaki piszemy. Bez względu na fakt czy robimy to w ramach codziennej pracy, szkoleń, warsztatów, projektu open source czy też zwykłej zabawy z kodem w domu. Nigdy nie powinniśmy pozwalać sobie na „drogę na skróty” jaką z całą pewnością jest pisanie kodu z pominięciem metodologi TDD, nieprzemyślana implementacja „na szybko”, chaotyczne nazewnictwo zmiennych , klas i pakietów.

Wszelkie złe praktyki programistyczne jakich, zupełnie niechcący, możemy nabrać pisząc kod nieprodukcyjny staną się szybko naszym nawykiem, który zaczniemy przenosić do systemów produkcyjnych. Może to doprowadzić do „gnicia” naszego kodu i sprawić nam wiele problemów w przyszłości. Dlatego tak ważne jest abyśmy w każdej linii kodu starali się pamiętać o zasadach opisanych w „Clean Code” Roberta C. Martina, pracowali według metodologii SCRUM oraz dbali o nasz własny rozwój technologiczny. To jednocześnie bardzo mało i bardzo dużo. Jednakże przytoczone przez Matta przykłady pokazują, że profesjonalne podejście do programowania, bez względu jakiego kodu, ma daleko idący sens, który pozwoli nam na tworzenie jedynie kodu najwyższej jakości.

Warto w tym miejscu zwrócić uwagę na wysoki poziom merytoryczny wszystkich prezentacji naszego łódzkiego JUGa. Praktycznie każda z omawianych przez Matta technologii, frameworków czy też metodologii była już przedmiotem prezentacji JUG.

Wszystkich zainteresowanym dalszą pracą nad kompetencjami miękkimi, profesjonalnym podejście do programowania oraz zrozumieniem czym jest pętla nawyku oraz w jaki sposób możemy nabyte nawyki zmienić polecam książkę „Siła nawyku” Charlesa Duhigga. Z pewnością nie jest to książka dedykowana wyłącznie dla programistów, lecz pozwala zrozumieć czym jest nawyk oraz to jak możemy istniejące w nas nawyki „przeprogramować” tak by stały się podstawą dla ważnych zmian w naszym życiu, często nie tylko zawodowym. Inną propozycją, związaną z tematyką prezentacji, jest
książka Roberta C. Martina „Mistrz Czystego Kodu”. Polecam ją w szczególności tym
osobom, które przeczytały wcześniej „Clean Code” .

Z ważnych linków, które zapisałem podczas prezentacji mogę polecić :
http://www.mattagile.com/ - strona prelegenta

Ankieta

Na dzień 18.01.2014 wygląda to następująco, są to osobiste opinie osób, które wypełniły ankietę a nie JUGa
Poziom merytoryczny - oceny dobre

Matt ma skilla prezentacyjnego

No cóż większość osób i tak nie czyta opisów, ale tutaj się wszystko zgadzało.

Co było fajne? - wybrane opinie

  • Ogólnie poziom prezentacji nie odstawał od płatnych konferencji - zdecydowany highlight łódzkiego JUGa, będę znajomym polecał i zachęcał do przychodzenia.
  • Forma prezentacji, umiejętności prowadzącego, anegdoty, dobrze sobie przypomnieć podstawy
  • Dobry kontakt z słuchaczami

Co wymaga poprawy? - wybrane opinie



  • W przyszłości chciałbym posłuchać conieco na temat wspominanych narzędzi do prowadzenia projektów
  • Zabrakło konkretów. 
  • Idąc na prezentację, miałem nadzieję, że dowiem się jakich technik mogę używać, by np. motywować się do pisania kodu lepszej jakości.
  • Dużo z powiedzianych rzeczy było już wiele razy przerabianych

Wideo ze spotkania