18 grudnia 2014

@WarszawScaLa kończy sezon spotkań 2014 i zaprasza 10 stycznia 2015 na Scalatron na Narodowym w Javeo

0 komentarzy
Wczoraj odbyło się ostatnie spotkanie @WarszawScaLa - warszawskiej grupy entuzjastów języka programowania Scala - w roku 2014. Tym samym sezon 2014 uważam za zamknięty.

Było wspaniale pod wieloma względami - liczbą uczestników, nowym miejscem (w starym miejscu) i zawartością merytoryczną. Pomysłów na nowy sezon 2015 nie brakuje.

To już kolejny raz, kiedy zaplanowaliśmy odsłuchanie webinaru wspólnie. Tym razem na tapetę poszedł webinar "Spray & Akka HTTP" ze współtwórcą projektu Spray - Mathiasem Doenitz'em. Webinar trwał przez niewiele ponad jedną godzinę.

W międzyczasie rozdałem naklejki "lambda DAλS", które jak cieplutkie bułeczki dojechały do nas na spotkanie w ostatniej chwili. Dzięki Ida i Michał! Zachęcam gorąco do udziału w tej konferencji - jako uczestnik (niech już będzie) lub jako prelegent (wielce pożądane). Warto!


Zaraz po webinarze wdrożyłem autorski pomysł przepytania uczestników o swoje odczucia związane z działaniem grupy, miejscem i komunikacją organizatorzy <-> uczestnicy. Odbyło się to metodą z zeszłego wieku, czyli rozdałem kartki z pytaniami i długopisy, i wstrzymałem dostawę pizzy do czasu wypełnienia ankiety.

W ankiecie były trzy pytania:

  1. Co sprawiło, że zdecydowałeś się wziąć udział w spotkaniu?
  2. Czy miałeś problemy z dotarciem na miejsce spotkań? Jakie?
  3. Jakbyś usprawnił komunikację między Organizatorami a Uczestnikami?
Poniżej lista wszystkich odpowiedzi na pytanie pierwsze. Odpowiedzi są cytowane w całości i bez zgody autorów.

Co sprawiło, że zdecydowałeś się wziąć udział w spotkaniu?

  • "Nie wiem :)"
  • "Jacek"
  • "Kiedyś sporo programowałem w Scali (projekty akademickie) i chciałem sobie to odświeżyć. Dodatkowo zacząłem czuć potencjał w programowaniu funkcyjnym i Scala to fajny pomost między nim a Javą"
  • "Jestem programistą Ruby on Rails, Scali uczę się od jakiegoś czasu, aby uzyskać nowy punkt widzenia na rozwiązywane problemy, jestem zainteresowany tematami przedstawionymi na spotkaniu."
  • "Nauka Scali, programowani reaktywnego i wymiana doświadczeń"
  • "ciekawość"
  • "Jacek Laskowski powiedział o spotkaniu w pracy, a nigdy nie miałem odwagi"
  • "Bo spotkanie było zapowiedziane odpowiednio wcześniej"
  • "Fajny temat (cake pattern), prelegent!, kodowanie!!!"
  • "Cake pattern"
  • "Ciekawy temat (akka-http)"
  • "Zabawa, spotkanie, nauka Scali, poznanie ludzi"
  • "Scala :), a w szczegółności: opis prezentacji/warsztatów na meetupie, zapewnienie, że początkujący w Scali też mogą przyjść, sensowny termin"
  • "Zainteresowanie Cake Pattern oraz Dep. injection -> które podejście jest lepsze?, użyjemy produkcyjnie Spray.io, więc jestem bardzo ciekawy nowego podejścia"
  • "Temat spotkania"
  • "Bo nigdy nie byłem na stadionie"
  • "Podsłuchać o Cake Pattern, spotkać ludzi, zaproponować wystąpienie"
  • "1. Częściej bym bywał, ale nie zawsze mam czas, 2. Webinar lepiej oglądać razem, 3. Wiele spotkań wydaje się "dla zbyt początkujących", to nie - choć nie mam nic przeciwko uczeniu i pomaganiu innym"
  • "Lubię Scalę i szukam ludzi o podobnych gustach"
  • "Sam main topic :) -> Scala, Dzisiaj i tak miałem obejrzeć webinar, a obejrzeć we wspólnym gronie jest lepiej i można pogadać. No i planuję bywać regularnie"
  • "Zainteresowanie Akka, wolny wieczór"
  • "Spotkanie z innymi entuzjastami"
  • "Ludzka ciekawość :) oraz...chęć posłuchania o cake pattern"
  • "akka-http webinar"
Po primo, sposób zdobywania wiedzy o gustach uczestników zadziałał, bo zdobyłem wiedzę, której do tej pory mogłem jedynie się domyślać.

Po secundo, z ankiety wnioskuję, że ludziska są w potrzebie wspólnego słuchania webinarów (i tu nie będę ukrywał swojego zdumienia).

Po tertio, jest chęć na rozpoznanie cake pattern i wejście w tematy "cięższe" merytorycznie.

Po quatro, ciekawość, chęć spotykania się z innymi sympatykami języka Scala i wspólna nauka.


Wszystko to sprawia, że idziemy ze spotkaniami o krok dalej i wspólnie będziemy je dynamizować. Z rozmów z uczestnikami i tymi, którzy chętnie przyszliby, ale na razie "wieje nudą", wynika, że:
  1. Spotkania powinny być modułowe - webinar/nagranie + wykład + programowanie (parami) - w dowolnej kolejności.
  2. Spotkania muszą być zapowiadane z dwutygodniowym wyprzedzeniem (!)
  3. Spotkania należy dzielić na części "dla nowicjuszy" i "dla bardziej zaawansowanych".
I to są dokładnie moje "osobistyczne" postanowienia noworoczne dotyczące nowego sezonu 2015 spotkań grupy @WarszawScaLa!

Dowiaduj się o naszych spotkaniach z twittera na kanale @WarszawScaLa, komunikuj swoje uwagi i potrzeby na forum grupy na Google Groups, a swój udział w spotkaniach odnotowywuj na naszym meetupie.

Życzę Tobie zdrowych i radosnych świąt oraz szczęśliwego nowego roku 2015. Gorąco zachęcam do udziału w spotkaniach grupy pasjonatów języka Scala - @WarszawScaLa!


Następne spotkanie to Scalatron na Narodowym w JAVEO już 10 stycznia 2015 r. w biurze firmy Javeo na Stadionie Narodowym. Parafrazując Owsiaka…"Oj, będzie się działo!" Liczba miejsc ograniczona!

A jakie są Twoje postanowienia noworoczne w temacie nauki języka Scala i udziału w warszawskich spotkaniach? A może są jeszcze bardziej ciekawe i wykraczają poza (wąski merytorycznie?) świat Scali? Podziel się w komentarzu!

13 grudnia 2014

Narzędzia gromadzenia i publikowania wiedzy - moje ostatnie przemyślenia z frontu

0 komentarzy
Adam napisał na forum @WarszawScaLa - warszawskiej grupy entuzjastów języka programowania Scala - w wątku Google Summer of Code (pomysły) (treść wiadomości skopiowana w całości bez zgody autora):
Witam,
Jestem studentem czwartego roku Informatyki na Uniwersytecie Gdańskim. Postanowilem spróbować się dostać do programu Google Summer of Code w którym w okresie wakacyjnym realizuje sie projekty Open Source wspolnie z organizacjami Open Source. Od niedawna uczę się języka scala i chciałbym nauczyć się znacznie więcej. W połowie marca chciałym aplikować z projektem do Scala Team. Organizacje z reguły mają już jakieś pomysły na projekty ale dopuszczają rownież własne propozycje. W związku z tym chciałbym się zapytać was jako bardziej doświadczonych użytkownikow scali czy czegoś wam brakuje w samym języku bądź w frameworkach takich jak Play czy Akka. Czy według was przydalo by się rozwinięcie jakiejś funkcjonalności, implementacja jakiegoś pluginu. Pytam raczej o jakieś drobne sprawy tak aby projekt był do realizacji w ciągu trzech miesiecy. Co do moich umiejętności mam kilka mniejszych projektów zrealizowanych w języku c# a obecnie realizuję staż używając technologii PHP, MySql, MongoDB. Z góry dziękuję za pomoc.
Pytanie Adama skusiło mnie, aby wyrzucić z siebie moje ostatnie przemyślenia dotyczące narzędzi gromadzenia wiedzy pro publico bono.

Bardzo mnie ten temat zawsze zajmował i chciałem jakoś połączyć moje zakusy technologiczne z literackimi i już od lat korzystałem z Wiki jako Notatnik-Wiki Jacka Laskowskiego, aby później przejść przez narzędzia w stylu Octopress - zapraszam na Mastering FP and OO with Scala - ale wciąż mi było mało i ostatnio doszukałem się innych możliwości, których głównym atutem jest wersjonowanie w publicznych repozytoriach kodów źródłowych (w tym przypadku kodem źródłowym stają się artykuły).

Co obecnie uważam za warte uwagi narzędzia do spisywania notatek, to (z przykładami):

  1. GitHub Gist - bardzo podstawowe, ale wersjonowane i publiczne miejsce do gromadzenia wiedzy (ku uciesze wszelakiej maści miłośników wiedzy i hejterów)
  2. GitBook - super miejsce do pisania dokumentacji, która przybiera z czasem format książki (w zasadzie jest nią już od pierwszej edycji!) + personalizowanie (domena) + statystyki + przypomnienia na maila, itp. - wszystko czego leniwa dusza zapragnie, aby coś w życiu zrobić :)
  3. I mój ostatni (z tego tygodnia) pomysł na gromadzenie wiedzy (szczególnie pod kątem tworzenia materiałów szkoleniowych) - JSowe narzędzia do tworzenia slajdów, które możesz umieścić (wersjonować) na https://github.com - jeszcze nie wybrałem tego swojego narzędzia, ale miałem już pierwszą ekspozycję na reveal-js w czw i podobało mi się. Z pewnością zmigruję moje "natywne" slajdy z Keynote (pracuję na MacOS) na kilka z nich:
I tak Adam sprowokował mnie do zebrania myśli i wyrzucenia ich publicznie na forum. Dobrze wyszło, bo w końcu się namyśliłem i będę mógł od czegoś wyjść w kierunku wyboru tego właściw(sz)ego narzędzia gromadzenia wiedzy (i całkowicie zrezygnuję z Evernote do tych celów).

A czego Ty używasz do gromadzenia i publikowania wiedzy?

25 listopada 2014

Scala, Play i Spray w Białymstoku już w tę środę

0 komentarzy

23 listopada 2014

Po Warsaw Scala FortyFives #scala45pl - Scala enthusiasts day w Warszawie

0 komentarzy
Pierwsze pomysły o zorganizowaniu czegoś na kształt całodniowej konferencji wokół języka Scala pojawiły się około konferencji Scalar w kwietniu 2014. Wtedy spotkałem się z Łukaszem Sową. Zeszło nam się na rozmowach aż do czerwca, kiedy w Krakowie odbyła się impreza podobnego kształtu.

5 czerwca opublikowałem na swoim polskojęzycznym blogu wpis Akka: hAkker garden w Krakowie fajną imprezą było - kopiowanie zalecane, który był swoistym wezwaniem do działania w temacie (choćby sprowadziło się to do skopiowania wydarzenia krakowskiego w całości).

Przez cały czas rozmyślałem, jakby można było jeszcze mocniej ożywić polską scenę scalową i zawsze uważałem, że bezpośredni kontakt z innymi programistami języka Scala jest najwłaściwszym sposobem na promocję języka w Warszawie i w Polsce w ogólności.

Wszystkie moje wysiłki były nakierowane na uruchomienie konferencji organizowanej dla i przez lokalną społeczność scalową, bo tylko taki twór gwarantuje swobodny przepływ wiedzy. Tak było za czasów mojej aktywności w ramach Warszawa JUG i dzieje się teraz w ramach grupy Warsaw Scala Enthusiasts.

10 dni później, 15 czerwca, uruchomiłem wątek Scalathon w październiku, a w lipcu hAkkaton? 2.07? na forum grupy.

Dyskusje trwały w różnych miejscach i z różnym nasileniem. Miałem wrażenie, że z każdą rozmową jesteśmy bliżej zorganizowania czegoś, co można byłoby nazwać naszym czymś, ale trzeba było czekać kilka miesięcy dłużej, aby pomysł się faktycznie zmaterializował.
30 czerwca Piotr Bąbel zgłosił się do pomocy przy organizacji imprezy. Tę datę odnotowuję jako dzień, w którym poznałem Piotrka, który kilka miesięcy później przywdział szaty organizatora wydarzenia #Warsaw #Scala Forty-Fives #scala45pl - Scala enthusiasts day w dniu 22 listopada 2014 roku.

Nie uważam, że czas spędzony na dyskusjach od kwietnia do listopada był właściwie wykorzystany, ale na pewno nie był stracony.

Ostateczna formuła Warsaw Scala FortyFives okazała się właściwie dopasowana do publiczności i naturalnie wykluczyliśmy rozbieżność w materiale między nowicjuszami a bardziej zaawansowanymi w języku Scala. Pomysł przeprowadzenia nowicjuszy scalowych przez zakamarki poznania nowego języka okazał się strzałem w dziesiątkę i ten pomysł jeszcze kilkakrotnie powtórzymy.

Między czerwcem a listopadem, w ramach grupy @WarszawScaLa, warszawska społeczność scalowa wspólnie poznawała język Scala przez inicjatywy typu Natural whitespace handling for SBT configuration parser AKA 'no more blankies', wspólnego oglądania nagrań z konferencji scalowych, zdalnych (wideo)spotkań z ekspertami Scala jak Konrad Malawski i inne temu podobne.

Aż w końcu ten dzień nadszedł! 22 listopada członkowie Warszawskiej Grupy Entuzjastów języka Scala Piotr Bąbel ze mną, Jackiem Laskowskim, zorganizowali wydarzenie #Warsaw #Scala Forty-Fives #scala45pl - Scala enthusiasts day.

Dziękuję Piotrkowi Bąbel, prelegentom (ponownie!) Piotrkowi BąbelPawłowi Włodarskiemu, Pawłowi Kopiczko, Piotrowi Trzpilowi, Szymonowi Matejczykowi, sponsorom - firmom AdPilot oraz JaveoKołu Naukowemu Informatyków Politechniki Warszawskiej oraz szanownym wolontariuszom Iwecie i Patrykowi za wsparcie merytoryczne, lokalowe, żywieniowe i organizacyjne. Było idealnie.

Na wydarzenie zapisało się 55 osób. Na moje pytanie o znajomość Scali rękę podniosły 2 osoby, wśród których jedna była prelegentem (!) To oznaczało doskonałe wpasowanie się w potrzeby uczestników. Sobota nie była żadną przeszkodą, aby spróbować się z językiem Scala!

Co mnie niezwykle ucieszyło, to strumień nowych osób, które zapisywały się na naszego meetupa i w tej chwili jesteśmy na poziomie 209 zapisanych entuzjastów scalowych. Grupa znacząco powiększyła się w liczbie uczestników.

Dzięki wydarzeniu dotarliśmy do nowych odbiorców przyszłych inicjatyw pod szyldem Warsaw Scala Enthusiasts

Dzięki Warsaw Scala FortyFives powiększyło się również grono uczestników na naszym forum dyskusyjnym do 67 członków.
Dzięki prelegentom Pawłowi Włodarskiemu oraz Piotrkowi Trzpilowi wydarzenie nabrało prawdziwie międzynarodowego i nowoczesnego charakteru. Paweł zgodził się przyjechać do nas z Łodzi, a Piotr zaprezentował Akkę zdalnie korzystając z Google Hangouts on Air. Dziękuję Panowie!


Jakby tego nie mierzyć, jedynym wynikiem może być tylko SUKCES projektu. Jak można było przeczytać wyżej, to nie są czcze przechwałki, ale fakty. Chętnie wysłucham uwag od osób spoza obozu zachwyconych.


Wszystkie oceny świadczą o potrzebie tego typu inicjatyw w przyszłości i mówi się o powtórzeniu wydarzenia w lutym 2015. Pojawiają się pomysły uruchomienia inicjatywy w innych miastach w Polsce. Co o tym sądzisz? Podziel się swoimi spostrzeżeniami i pomysłami na forum Warszawskiej Grupy Entuzjastów języka Scala.

20 listopada 2014

AdPilot i Javeo wspierają Warsaw Scala FortyFives #scala45pl - Scala enthusiasts day w Warszawie

0 komentarzy
Nasza społecznościowa konferencja Warsaw Scala FortyFives #scala45pl, której celem jest przeprowadzenie nowicjuszy przez trudy wejścia w programowanie z językiem Scala, a bardziej zaawansowanym oferuje możliwość wejścia w społeczność, otrzymała wsparcie dwóch firm programistycznych Javeo i AdPilot, dla których rozwój społeczności scalowej leży na sercu.


O firmie Javeo można było już usłyszeć chociażby przy okazji organizowanych regularnie spotkań warszawskiej społeczności scala @WarszawScaLa. Firma Javeo zatrudnia programistów Scala i warto o niej pamiętać przy okazji własnych poszukiwań przy zmianie pracodawcy lub też po prostu wysłać nich CV już dzisiaj!


Firma AdPilot to nowy gracz na scenie komercyjnego wsparcia naszych niekomercyjnych inicjatyw pod sztandarami Warszawskiej Grupy Entuzjastów języka Scala. Firma rozbudowuje swoje zaplecze programistyczne i poszukuje programistów Scala do tworzonego zespołu.

W obu firmach możesz spełnić większość (wszystkie?) swoich pomysłów programistycznych i rozwinąć się merytorycznie oraz społecznościowo. Rozważ je koniecznie przy kolejnym pomyśle zmiany zatrudnienia lub kiedy Twoja ścieżka programisty dopiero się rozpoczyna.

Firmy AdPilot i Javeo czekają na Ciebie!

Niech to jednak nie przesłania Tobie planów na najbliższą sobotę. Widzimy się w Warszawie na Warsaw Scala FortyFives #scala45pl!

Piotry, Pawły, Szymon i ja

13 listopada 2014

Wzorcowy materiał szkoleniowy o Akka Streams z Konradem @ktosopl Malawskim

0 komentarzy
Nagranie z ostatniego spotkania grupy entuzjastów języka programowania Scala w Warszawie@WarszawScaLa, w którym +Konrad Malawski przedstawił najnowsze dokonania projektu Akka Streams 0.11 jest już dostępne na YouTube.


Te 76 minut z Konradem to w zasadzie jedyny obecnie efektywny sposób na poznanie tematu. Konrad wykonał doskonałą robotę przedstawiając niebagatelny temat w sposób zwięzły i zrozumiały.

Polecam nagranie każdemu sympatykowi rozwiązań wokół rozproszonego przetwarzania danych z użyciem Akka Streams i języka Scala.

Dzięki Konrad!

p.s. Za niecałe 2 tygodnie, w sobotę 22.11 grupa @WarszawScaLa organizuje konferencję skierowaną przede wszystkim do nowicjuszy tematyki programowania aplikacji wszelakiej maści w języku Scala. Więcej na Warsaw Scala Forty-Fives #scala45pl - Scala enthusiasts day. Agenda jest w trakcie formowania, więc wyrozumiałość wskazana. Rezerwować czas w kalendarzu!

29 października 2014

Kariera przedsiębiorcy w toku - kolejne wnioski potwierdzone

0 komentarzy
Nadeszła wiekopomna chwila, kiedy nadeszło potwierdzenie nadania numeru identyfikacji podatkowej od samego Jaśnie Pana Naczelnika Urzędu Skarbowego Warszawa-Ursynów.


Tym samym państwo nasze Polska potwierdziło na piśmie, że dzień 23.10.2014 jest datą mojego rozpoczęcia jednoosobowej działalności gospodarczej.

O tym i o wielu innych równie fascynujących sprawach będziemy rozmawiać w Klubie Młodych Przedsiębiorców IT jutro i w kolejnych edycjach. Zadaj pytanie tutaj, w komentarzach lub prześlij maila na jacek@japila.pl w sprawie, która uważasz, że mogłaby być ciekawym tematem do dyskusji.

Potwierdziłem również swój profil zaufany ePUAP.


Pani w okienku w terenowym oddziale ZUS na Dembego na Ursynowie była niezwykle miła i uczynna, więc proszę nie pytaj mnie, jak funkcjonują nasze służby państwowe i jakie mam wrażenia z rejestracji firmy, bo będziesz musiał wysłuchać moich peanów pochwalnych.

W ZUSie zero kolejek, w Urzędzie Gminy również, jak i w Urzędzie Skarbowym. Jakby się wszyscy skrzyknęli, że akurat jak ja wchodzę, to jest cisza i spokój. Bezcenne!

Nie zdecydowałem się jeszcze, gdzie będę prowadził swoje rozliczenia - czy iFirma, wFirma czy stacjonarnie - u księgowej w biurze podatkowym. O wszystkich słyszałem wiele pozytywnych rzeczy i wybór jest niełatwy (bo najlepiej chciałbym temu nic nie poświęcać czasu).

26 października 2014

Klub młodych przedsiębiorców IT - społeczność żąda więcej w temacie "Refaktoryzacja Programistów"

0 komentarzy

Hangout wirtualnego klubu młodych przedsiębiorców w IT


Nie mam złudzeń, że pomysł Szymona Stępniaka z Toruń JUG założenia "wirtualnego klubu młodych przedsiębiorców w IT”, któremu w statusie zapisano dyskusję na żywo na temat "praktycznej wiedzy z zakresu nazwijmy to osobistej przedsiębiorczości” jest bezsprzecznym sukcesem wydawniczym. Można by dyskutować o rozmiarze tego sukcesu, ale tę przyjemność składam w Twoje ręce, aby w spokoju kontemplując ocenić wartości, które za tym idą.

A miła twarz Marcina na reklamówce nagrania z hangoutu jeszcze podbija poziom specjalności całego wydarzenia.

Mail Szymona

Szymon napisał do mnie maila 8 października, aby już 23-tego światło ujrzała pierwsza część. Przywołam maila Szymona w całości ku odnotowaniu tego faktu publicznie i aby nie pozostawać w błędnym przekonaniu, że ten pomysł był mój. Nie był.

Cześć Jacku, 
Czytając wczoraj Twojego streama na Twitterze i ostatni wpis na blogu naszła mnie taka mała myśl, którą chciałbym się z Tobą podzielić. Sądzę, że pomysł mógłby Ci się spodobać. 
O co chodzi? Generalnie wydaje mi się, że w naszej społeczności brakuje praktycznej wiedzy z zakresu nazwijmy to osobistej przedsiębiorczości. Ludzie tak mocno przywykli do pracy na etacie, że nie zdają sobie sprawy z potencjału, jaki niesie ze sobą praca na własny rachunek. Często wyobrażenia o takim właśnie rozwiązaniu są przykrywane wizją olbrzymiego ryzyka, porażki oraz zmarnowanego trudu. To prawda, że działalność na własną rękę jest trudniejsza niż zaczepienie się w dowolnej firmie na etat. Ale jest jednocześnie znacznie bardziej atrakcyjna pod wieloma względami - potrafi być dużo bardziej kształcąca, rozwijająca sieć kontaktów oraz ograniczona jedynie naszą wyobraźnią i możliwościami, które rosną proporcjonalnie do czasu jaki wkładamy w rozwijanie swojego biznesu. Nie wiem czy ta diagnoza w ogólności jest słuszna, ale takie odnoszę właśnie wrażenie. 
To zaś stanowi pretekst do wcielenia w życie dość prostego pomysłu. 
Co sądzisz o pomyśle spontanicznego powołania czegoś na kształt wirtualnego klubu młodych przedsiębiorców w IT? 
Idea jest taka, aby stworzyć miejsce i pretekst do tego, aby raz na jakiś czas (np. raz na dwa tygodnie czy nawet miesiąc) uruchamiać hangout, podczas którego uczestnicy mogliby porozmawiać i podzielić się własnymi doświadczeniami w zakresie prowadzenia własnej działalności w branży IT. Chodzi nie tylko o wskazówki natury formalnej, ale również takie z zakresu zarządzania samym sobą w zupełnie nowej rzeczywistości zawodowej. Myślę, że mogłoby to stworzyć całkiem ciekawe kompendium wiedzy praktycznej dla osób zarówno początkujących jak i już zaangażowanych w prowadzenie własnej działalności. W naszym kraju jest wiele osób, które mogłoby w tym temacie powiedzieć wiele ciekawych rzeczy, wliczając Ciebie do tego grona. 
Co sądzisz o takim pomyśle i czy byłbyś zainteresowany jego animacją? Masz doświadczenie w prowadzeniu grup stacjonarno-wirtualnych, a ponadto zdobywasz obecnie cenne doświadczenie w zakresie prowadzenia działalności, dlatego wydajesz mi się właściwą osobą na tym miejscu. Temat nie jest urgent, domyślam się że masz teraz wiele na głowie, natomiast gdyby choćby jeden taki pilotażowy event do końca tego roku zwołać to myślę że byłoby bardzo fajnie. 
Pozdrawiam,
Szymon
W międzyczasie miałem przyjemność rozmawiać oddzielnie o podobnym zagadnieniu z Marcinem Kubalą i Sebastianem Konkolem, co przeistoczyło się w klub czterech.

Wspaniale pracuje się z takimi ludźmi!

I nadeszła wiekopomna chwila, kiedy 23 października o 10:46 uruchomiliśmy wspólnie 22-minutówkę o swojsko brzmiącym tytule "Refaktoryzacja programistów”.

(Od)Głosy społeczności

Reakcje społeczności przerosły moje oczekiwania.

Oto kilka, którym nie udało się umknąć przed opublikowaniem (nazwiska pozostaną ukryte ku szczęśliwości ich właścicieli):

Konrad (via email) napisał:

"Bardzo dobry ten twój hangout, czekam na więcej. Zwłaszcza dla kogoś siedzącego w domu takie społecznościowe rzeczy są na wagę złota (plus kupa frajdy). Mam trochę znajomych, którzy kiedyś siedzieli nad programowaniem po 14h/dobę plus weekendy i poznawali wszystko, a dziś żona, dzieci, zmiana priorytetów. Nigdy nie byli i nie są korpo-dziadkami, ale życie ich dogoniło i wzięło w objęcia.  Czasem się śmieję, że powinniśmy założyć grupę wsparcia dla podstarzalych programistów. Takich, co to już dają spokój i przestają się ścigać we wszystkim ze wściekłymi 20-latkami, którzy co tydzień wypuszczają nowe frameworki i build toole."

Marek (via gtalk) napisał:

"hej, fajny pomysł. Powiem Ci, że od pewnego czasu chodzi mi po głowie taki pomysł, żeby udzielać się w miarę możliwości w jakiś startupowych projektach."

Andrzej (via LinkedIn) napisał:

"bardzo ciekawa inicjatywa. Myślę, że bardzo wiele osób potrzebuje takiego kamyczka w życiu zawodowym, który spowoduje lawinę poważnych decyzji (w pozytywnym tego słowa znaczeniu). Ja w zasadzie decyzję już podjąłem, określiłem plan rozwojowy i krok po kroku staram się go realizować.
Z doświadczenia powiem, że do dyskusji prawdopodobnie włączyło by się o wiele więcej ludzi gdyby można było pozostać anonimowym (chociażby w komentarzach). Ja swojego czasu miałem mnóstwo pytań/wątpliwości, które musiałem zgłębić i raczej starałem się to robić dyskretnie, żeby nie wywołać niepotrzebnych napięć lub błędnych wniosków. Być może przesadzam, ale warto przemyśleć."

Andrzej (via skype) napisał:

"fajny pomysł na nagrania, chętnie się przyłączę”

Łukasz (na YouTube) napisał:

"Bardzo ciekawa inicjatywa, mam nadzieję, że nadal będziecie drążyć temat, a swoje dyskusje publikować na tym kanale. Pozdro"


Jest również kilka liczb ze społecznościówek - statystyki z wpisu z podsumowaniem pierwszego spotkania.


Jest też statystyka liczby czytelników wpisu.


Jest również obserwatorów z kanału YouTube.


Kolejna edycja


Kolejny odcinek już 30 października o 10:15. Zapraszamy!

23 października 2014

Refaktoryzacja programistów (rynku IT w Polsce) - nowa inicjatywa społecznościowa

0 komentarzy
Pierwsze nagranie jest już w Sieci. Spotkaliśmy się dzisiaj i już dzisiaj jest produkt! Bez jakichkolwiek modyfikacji, obfuskacji, dopieszczania, czy innych rzeczy, które może i podniosłyby wartość produktu, ale tym razem górę wzięło motto "Release Early, Release Often".


Obejrzyj, przemyśl, wypowiedz się.

Panowie +Szymon Stępniak +Marcin Kubala +Sebastian Konkol oraz ja, Jacek Laskowski, postanowiliśmy skrzyknąć się i podyskutować o sprawach dotyczących życia programisty na naszym podwórku (w Polsce).

Łączy nas jedno = pracujemy w branży IT (z mniejszymi lub większymi sukcesami zawodowymi). Dzieli nas kilka spraw - żyjemy w innych miastach (Toruń, Kraków, Warszawa), pracujemy w innej konfiguracji biznesowej (samodzielna działalność gospodarcza, właściciel firmy, pracownik), oferujemy na rynku inne umiejętności (programista, szef zespołu, lider społeczności, oszołom technologiczny) i mamy inne umocowanie rodzinne - żonaty, dzieciaty, z dziewczyną.

Wszystko to sprawia, że kiedy padł pomysł takich spotkań, nie było sprzeciwu.

A Tobie jak się podoba inicjatywa?

22 października 2014

Słowotok społecznościowy głównie na twitterze - za krótko jednak

0 komentarzy
Pamiętam bardzo dobrze czasy, kiedy mikroblogowanie nie było dla mnie wartościowym sposobem wymiany myśli. Ostatnio jednak jest zupełnie inaczej.

Zreflektowałem się, że kiedykolwiek chciałbym przekazać myśl, wybieram twittera. Jakkolwiek 144 znaki nie pozwala na "wyrzucenie" z siebie wszystkiego, to po kilku latach korzystania z tego medium, daję radę.

I to mnie właśnie przeraża w twitterze - jego prostota, która zawęziła moje pole literackiego działania do owych 144 znaków.


Po całym dniu "strzelania" 144 znakami na twitterze mam po prostu dosyć i wszystko zostało już w zasadzie powiedziane. Co mi tam zatem zabierać się za wpisy na blogu (szczególnie polskim niestety), kiedy, co chciałem powiedzieć, powiedziałem, a resztę przeczytałem na Quora lub StackOverflow.

W Quorę dopiero wchodzę i traktuję ją wciąż jako niewielką alternatywę do StackOverflow, na którym wyżywam się głównie na kanale sbt. I właśnie po takiej dziennej dawce wypowiedzi na SO, pisania mam już wystarczająco w zakresie ponad 144 znaków.

Do tego dochodzi jeszcze monitorowanie (w trybie do odczytu) LinkedIn, trochę commits na GitHub i idę spać z głową naładowaną pomysłami. A że obecny sponsor pozwala na szerokozakrojone wizje architektoniczne, to i czytania (dla wybrania właściwego rozwiązania) sporo.

Zatem jakbym był wszędzie, a nie ma mnie tutaj.

Możnaby zapytać, dlaczego mnie to martwi i dla zainteresowanych śpieszę z odpowiedzią - brakuje mi możliwości poruszania nowych technologii w dyskusjach w naszym, lokalnym, polskim środowisku informatycznym. Nie mówię, że nie ma spotkań/meetupów czy konferencji, ale wciąż brakuje mi miejsc, w których mógłbym poruszyć kwestie adekwatności stosowania nowych technologii, które mnie obecnie zajmują, do zadanych obszarów. Weźmy Spark, Storm, etcd, Docker, Ansible, ZooKeeper, Cassandra, bazy grafowe (z Titan), Mesos, Curator i kilka innych poza-stricte-scalowych tematów, które zajmują mnie ostatnimi czasy, bo jedynie czuję, że one mogą spełnić moje wymagania architektoniczne (oczywiście to jedynie już zawężona pula projektów, które rozważam po "ostrej" selekcji). Wciąż zdecydowanie za mało spotkań typu hackathon czy warsztatów, gdzie z innymi napaleńcami rozwikływałbym tajniki produktu i konsultowałbym pomysły.

Podczas rozpoznawania produktu, tworzę wiele notatek na boku, w Evernote, i tak sobie myślę, że warto byłoby je upublicznić pro publico bono i mojej. Mam jednak pewne obawy przed plagiatem, bo większość z materiału w moich notatkach, to kopie całych zdań, które są kwintesencją pełniejszego artykułu czy prezentacji. Chciałbym je jednak móc skonfrontować z wiedzą innych lokalesów.

Skoro zależy mi bardzo na ożywieniu polskiego środowiska informatycznego pod kątem zastosowania nowych technologii (niekoniecznie wyłącznie programistycznych ze Scalą w roli głównej) oraz wyrażaniu swoich myśli obszerniej (poza 144 znaki), to może właśnie należałoby skorzystać z tego miejsca - na polskojęzycznym blogu - i tutaj szukać merytorycznego wsparcia.

Pamiętam rozmowę z Bartkiem Zdanowskim, który (podczas naszej wspólnej wizyty na konferencji we Lwowie) wspominał z rozrzewnieniem o wygaszonej już inicjatywie Sebastiana Pietrowskiego, która polegała na publikowaniu wpisów z blogów z krótkimi opisami na własnym blogu, co pozwalało na zorientowanie się w pojawiających się co rusz nowych narzędziach. Nie zamierzam tego reaktywować, ale coś na ten kształt się właśnie w mojej głowie kluje.

Niech ten wpis będzie swoistym ożywieniem tego miejsca. Do usłyszenia niebawem!

A Ty gdzie zrzucasz stan swoich rejestrów mózgowych do publicznej konsumpcji? GitHub Pages może? Inne medium? Czy po prostu tak leciwie trochę w postaci notatek na boku na dysku lokalnym? Chciałbym móc znaleźć właściwe miejsce...

p.s. Jeśli chciałbyś dołączyć do mojego zespołu "poszukiwaczy właściwych rozwiązań", skontaktuj się ze mną na jacek@japila.pl. Pogadajmy!

06 października 2014

Oferty pracy dla programistów Scala i chroniczny brak obsady - mój pierwszy miesiąc poza korpo

0 komentarzy
Zdumiewające, jak ciężko jest znaleźć dobrych programistów, a jeszcze bardziej nakłonić ich do przyłączenia się do projektu (aka zmiany obecnego zatrudnienia).

Taką myśl opublikowałem na moim koncie na twitterze i prawie natychmiast padło pytanie o sprecyzowanie "dobrego programisty". Śpieszę wyjaśnić.

Jak to pewien Jacek powiedział: "Nie ważne co, ważne z kim" i to jakby definiuje w pewnym sensie owego dobrego programistę. Ma to być ktoś, z kim można spędzić czas na projekcie przyjemnie i go zakończyć (projekt) w terminie.

Owego dobrego programistę poznaje się po efektach jego decyzji - ma świadomość upływającego czasu i walki między doskonałym kiedyś a działającym w terminie. Jeśli uda się utrzymać doskonałe w terminie, tym lepiej dla zespołu. Najważniejsze jednak, aby potrafić dotrzymać terminu lub w terminie oznajmić jego niedotrzymanie. Ja wciąż walczę ze swymi żądzami poszukiwania świętego graala, kiedy obecne rozwiązanie jest w pełni wystarczające. Taką cechę nazywam terminowością.

Dobrym programista to również osoba, która ma świadomość bezkresu własnej niewiedzy. Doskonała znajomość języka Java u niego nie przekreśla zastosowania języka Scala (lub wyjątkowo egzotycznego Go, Elm czy Elixir). Jeśli narzędzie niespecjalnie pasuje, to się go po prostu nie stosuje i szuka właściw(sz)ego. Taką cechę nazwałbym świadomością technologiczną.

Akceptowanie wartości nieznanego jest podstawą egzystencji dobrego programisty. Ciągła otwartość na nowe rozwiązania i akceptowanie ich odmienności, która wymusza "zerowanie" dotychczasowego rejestru doświadczenia jest wliczona w kontrakt codzienności dobrego programisty. To nazwałbym otwartością umysłu.

Moim obecnym konikiem jest rozgrzewanie rynku polskiego na przyjęcie języka Scala jako wartościowego języka programowania dla wielu zastosowań, w których do niedawna widziałem miejsce wyłącznie dla Javy. Koniec z tym! Java jest dobra, ale nie bardziej niż Scala (dalekim od określenia Scali "lepszą Javą", ale nie ukrywam, że czasami ciśnie się na usta takie określenie). Najbardziej zależy mi na tej otwartości, która dopuściłaby młodszych stażem do zaawansowanego rynku programistów. Wielu ekspertów javowych, przy przejściu na nowy język Scala, jest naturalnie ponownie nowicjuszami. I to sobie cenię w nowych językach, które wymuszają takie "sprowadzenie na zero".

Od kiedy jestem poza korporacją, chętniej znajduję czas na rozmawę z osobami spoza mojego stałego kręgu znajomych. W zasadzie jestem zmuszony do takiego działania, aby dostać się do ciekawych projektów, których okazuje się, że jest cała masa wokół mnie.

Weźmy ostatnie moje dokonania na tym polu.

Jest pewna firma (której nazwy nie ujawnię jeszcze), która powierzyła mi zadanie stworzenia całej linii produkcyjnej dla produktów monitorujących. Do tego oczywiście potrzebni są ludzie, których nie ma i to również zlecono mi jako zadanie dodatkowe. Innymi słowy, jak nie znajdę, sam będę dłubał, a to mnie z pewnością zabije czasowo. Mam zlecenie na zatrudnienie 3 osób, które będą stanowiły przyczółek przyszłego zespołu deweloperskiego, które zestawią całą linię produkcyjną (począwszy od gałęzi w git +  jenkins + gerrit + co tam jeszcze potrzebne, aby proces spełniał oczekiwania osób, które w nim uczestniczą). Mają to być dobrzy programiści, którzy nie są zadufani w sobie, w ich znajomość technologiczną i "zajefajność", i którzy są otwarci na nowe, nieznane, a (co mi sprawia najwięcej problemów) radzą sobie z bezkresem wyboru technologicznego.

Pojawiły się w międzyczasie jeszcze firmy So1 (poszukiwane 3-4 osoby), AdPilot (2 osoby) oraz Datastax (1 osoba), które w sumie stanowią o nowych miejscach pracy dla ca 10 programistów scalowych w Warszawie (!) W niektórych przypadkach wybór języka jest drugorzędny i nie ma jakiegokolwiek znaczenia dla sponsorów. Chcesz F#? Masz go! Chcesz Scalę? Masz ją! Chcesz XYZ? Wybór należy do Ciebie.

Powstała również strona ScalaWAW, która wypisuje firmy z imienia i nazwiska, które oferują miejsca pracy dla programistów scalowych. Jak napisał @gkossakowski na swoim kanale na twitterze:


Liczba aktywności scalowych w Polsce przewyższa UK, Francję i Niemcy razem wzięte (!)

Okazuje się, że jest sporo miejsc pracy dla osób, które chcą wejść w Scalę. Problem jednak w tym, że spotykane przeze mnie osoby, deklarują jedynie chęć i brakuje w tym ostatecznej decyzji, która sprawiłaby, że dostaną to, czego chcą - pracy w roli programisty scalowego. Jakimś cudem nie dochodzi do scalenia.

Coś mi mówi, że się trochę technologicznie rozleniwiliśmy. Duże firmy i korporacje dodają do tego jeszcze złudne poczucie stabilności, a to właśnie tam znajduje się spora część "chętnej" kadry scalowej. Bywa.

Napisz do mnie na jacek@japila.pl, gdyby oferta zatrudnienia jako programista scalowy w Warszawie była w Twoim obszarze zainteresowań. W kilku miejscach mógłbym znacząco pomóc.

31 sierpnia 2014

Kamil z Warsjawy pisze, że "strasznie mało jest zgłoszonych warsztatów ze Scali"?!

0 komentarzy
Dostałem dwa dni temu maila od Kamila - organizatora Warsjawy, która na swojej stronie domowej przedstawia się tymi słowami:

"Conference for developers, by developers. Unique 100% workshop formula. “Learn by doing” approach. Proudly host workshops related to all aspects of software development: designing, developing, testing, maintaining etc. Initially oriented around Java and JVM programming languages. Now open to other programming languages like Scala, Groovy, Python, mobile development for Android, iOS and others."

Świadomie podkreśliłem Scala - język moich ostatnich trudów mentalno-projektowych, któremu poświęcam prawie całe 100% swojego czasu i żywo jestem zainteresowany, aby więcej działo się w Polsce w tym obszarze. Widać dużo trzeba jeszcze zrobić, bo Kamil napisał:

Cześć,

Przejrzeliśmy dzisiaj (kolejny raz) zgłoszenia z C4P i strasznie mało jest zgłoszonych warsztatów ze Scali, a temat wydaje się strasznie popularny od dłuższego czasu.

Macie może jakieś opinie z czego to wynika? Może potrzebujecie jakiejś pomocy lub dodatkowej osoby do rady programowej?

Jeśli macie jakichś niezagadanych prelegentów to odezwijcie się do nich, bo ścieżka scali wygląda dużo, dużo gorzej niż się spodziewaliśmy.

Pozdrawiam
Kamil

I tu pojawiła się moja odpowiedź, którą postanowiłem opublikować, aby sprowokować dyskusję w naszym światku o stanie akceptacji Scali. Chciałbym się w wielu miejscach mylić i proszę o komentarze, które sprowadzą mnie na poprawną ścieżkę myślenia o Scali w Polsce.

Cześć Kamil,

Mam wrażenie, że w Polsce temat Scali jest podzielony na dwie kategorie osób:

1. już czujących się pewnie
2. dopiero raczkujących (zwykle wyłącznie przyglądających się z nielicznymi wypadami na Coursera)

Nie siliłbym się na większe rozczłonkowanie społeczności scalowej w PL.

Obie grupy przenikają się i wyłącznie brak konfrontacji ich uczestników pozwala jednym sądzić, że należą do grupy innej niż faktycznie powinni przynależeć (w oby kierunkach).

Sam jestem osobą, która (wierzy, że) czuje się pewnie w Scali, ale daleko mi do mistrzostwa i powiedzmy, że panuję nad sytuacją, co dla wielu zaawansowanych jest wystarczające, aby przypisać mnie do grupy "dopiero raczkujących". To ma ten nieprzyjemny skutek, że Ci znacznie słabsi do tej grupy nie powinni już należeć. Chciałoby się wyznaczyć kolejną grupę/kategorię osób dla podobnych mi, ale uważam, że wtedy należałoby stworzyć znacznie więcej grup, które wyznaczone byłyby przez liczbę projektów - zamkniętych/w firmach czy open source (możnaby liczyć przez liczbę commit'ów lub aktywność na StackOverflow czy grupach dyskusyjnych). A to pewnie i tak nie dałoby satysfakcjonującego podziału i tylko zagmatwałoby temat jeszcze bardziej.

W naszej sytuacji, najbardziej interesującą grupą są "już czujący się pewnie". Z nimi jest zawsze kłopot - w dowolnym języku/technologi - są zarobieni, nie chce im się edukować innych, czy angażować się pozapracowe aktywności, albo po prostu nie odnaleźli w sobie wciąż umiejętności "sprzedawania" wiedzy w postaci wykładów (prostsze) czy warsztatów (trudniejsze merytorycznie i to przygotowanie materiały dla innych).

Młodość języka Scala w Polsce, wielka różnorodność języków, bibliotek, szkieletów aplikacyjnych, itp. i niewielka wciąż liczba aktywności wokół Scali, sprawiają, że efekt mamy w postaci niewielkiej liczby zgłoszeń na warsjawę. Poagituję. Stay tuned!

Jacek

Jak obiecałem, agituję. Kto zechciałby wesprzeć warsjawę?

Ja deklarowałem początkowo, że będę wyłącznie w radzie programowej dla Scali, ale już mi pisano, że taki luksus mi się już nie należy. Najwyższa pora zaradzić tej niskiej liczności zgłoszeń scalowych na warsjawie!

Ode mnie możecie liczyć na praktyczne wprowadzenie do Scali przez jej zastosowanie do budowania aplikacji webowych (Play Framework), dostępu do bazy danych (Anorm i Slick), oraz...potencjalnie...opanowania tematu współbieżności (Akka) czy mikroserwisów (Spray). Wszystko okraszone sbt. Chciałoby się więcej, ale byłoby za wiele i za pobieżnie (i pewnie za mało praktycznie), więc wstrzymam się ze swoimi chęciami. Zgłaszam tym samym zapotrzebowanie na skrojenie mojego pomysłu tematu warsztatu na Twoją modłę, jeśli zainteresowałby Cię temat, zechciałbyś poświęcić swój czas i wyjść z warsztatu zadowolony. Proszę o pomoc, abyśmy wspólnie spędzili kilka godzin fajnego scalowania.

Proszę również o komentarze w sprawie niskiej frekwencji zgłoszeń okołoscalowych. Pomóż mi to zmienić! Zgłoś temat - samodzielnie lub wspólnie. Daj znać, że się zastanawiasz, a ja pomogę w znalezieniu współprowadzącego lub w konstrukcji tematu. Proszę...

14 sierpnia 2014

Bye, bye, Citi...czas zmian nadszedł!

0 komentarzy
Wczorajszy dzień obfitował w całkowicie nieznane mi wcześniej doznania. Był niezwykły z kilku powodów i pozostanie takowym jeszcze na długo (nie te lata i nie te serce, aby próbować się mierzyć z takim nawałem wydarzeń ponownie :-))

Wczoraj świętowałem swoje 41 urodziny. Za wszystkie życzenia serdecznie dziękuję. Nie ukrywam, że byłem zdumiony liczbą osób oraz sposobami, w jakie życzenia do mnie docierały - bezpośrednio, smsy, na twitterze, mailami i na...Facebooku (wciąż jednak wzdrygam się na myśl, aby z niego częściej korzystać niż sporadycznie). Dziękuję! Miłe to jest, że ktoś pamięta.

Wczoraj również Citi i ja doszliśmy do wniosku o rozwiązaniu umowy o pracę, o czym naprędce napisałem na moim angielskojęzycznym blogu Bye, bye, Citi…on to seeking greener pastures elsewhere.


Dostałem kilka maili w sprawie mojego odejścia i tego, co chciałbym dalej robić i dociekliwość Mateusza (mail), a później na czacie z Markiem, sprowokowała mnie do spisania moich planów życiowych. Dziękuję panowie za inspirację!

Jeśli czytasz ten wpis - takie małe manifesto - i masz coś, co pasuje do opisanego poniżej profilu osobowego, koniecznie się ze mną skontaktuj. Wdzięczność gwarantowana. Na pewno zaangażowany członek zespołu?

Cześć Mateusz,

Dzięki za kontakt. Tak, to prawda, koniec z Citi, bo praca w korporacji, która ma niewiele wspólnego z tworzeniem oprogramowania zmęczyła mnie. Jak kiedyś się spotkamy, opowiem Ci dokładniej - pewnie nawet ochłonę i będzie przyjemniej. Nie mówię 'Nie' korporacjom, a tylko niektórym.

Poszukuję pracy przy budowaniu zespołów programistów. Poszukuję pracy przy budowaniu oprogramowania, który wymaga dużej interakcji z zespołami - programistów i biznesu. Ten styk jest niezwykle absorbujący i widzę tutaj swój potencjał. Budowanie kultury zespołu programistów to coś, co sprawdziłem w praktyce w ramach społeczności typu Warszawa JUG czy WarszawScaLa, a w Citi w korpo.

Uwielbiam dzielić się wiedzą i...co niestety często wiąże się z konfliktami...pouczać. Widzę u siebie potrzebę wyćwiczenia wsłuchiwania się w potrzeby innych - co mnie nakręca i interesuje, innym może wydawać się nudne i stratą czasu. Nic na siłę. Czasami potrzeba czasu. Tę potrzebę "wstrajania się w odbiorcę" chciałbym kontynuować i wyspecjalizować się w tym. Nota bene, stąd wynika również moja aktywność na StackOverflow, gdzie mogę testować różne podejścia na żywym organiźmie i to po angielsku, z różnymi kulturowo osobami.

Sprawdziłem w Citi podejście ciągłej interakcji z członkami zespołu lokalnie i zdalnie. Zarażono mnie potrzebą codziennych pięciominutówek na stojąco na rozpoczęcie dnia i później 15 minut telefonicznie z innymi lokalizacjami po angielsku - pracowałem w zespole składającym się z 4 osób w Nowym Jorku, 2 osób w Londynie i 4 osób lokalnie w biurze. Był czas na uwspólnienie wiedzy o zaawansowaniu prac i problemach, ale i samą pracę. To chciałbym utrzymać. To pachnie Scrumem, ale za słabym merytorycznie, aby się wypowiedzieć. To jeszcze przede mną.

Orzeźwiającym było móc pracować w środowisku finansowym, a wciąż technicznie. To połączenie światów mnie bardzo nakręcało. To chciałbym kontynuować.

Marzy mi się praca w roli technicznego adwokata, który rozpoznaje, prototypuje, promuje, zestawia środowisko, pisze testy, programuje, wdraża. Pełny cykl wytwarzania oprogramowania bez ograniczeń. Chciałbym sprawdzić możliwość w Polsce pracy na projektach, a nie w firmie. Dorosłem (i teraz dano mi okazję spróbować) do myślenia, że w branży informatycznej nasza praca powinna przypominać pracę muzyków bez wiodącej kapeli, tj. chcemy zrobić coś fajnego, z fajnymi ludźmi i jeszcze zrobić przy tym kaskę, zbierzmy ekipę i działajmy! Po zakończonym nagraniu płyty, rozchodzimy się. I tak samo z projektami - z projektu na projekt. Ja chcę mieć ciągłą niestałość miejsca, projektu, ludzi, aby wyzbyć się wszystkich przyległości związanych ze stabilnością, która szybko potrafi się u mnie przerodzić w rozleniwienie. Stąd też myślę o działalności gospodarczej i wejściu w układ z kilkoma software house'ami. Jak powiedział jeden z założycieli Javeo (dawniej Javartu) - Jacek Z. - "nie ważne co, ważne z kim." Pełna zgoda!

Zależy mi na szybkiej, a wciąż stosunkowo głębokiej nauce i możliwość uczestniczenia w różnych projektach z różnymi zespołami wydaje mi się właściwą drogą do celu. Ta różnorodność to urzeczywistnienie moich potrzeb! To chciałbym teraz właśnie wdrożyć w życie. Nie wiem, co mnie czeka, bo temat dla mnie całkowicie nowy, ale muszę to sprawdzić i teraz jest właściwa pora.

Bardzo polubiłem babranie się w błotku, co w Citi sprowadziło się w ostatnich tygodniach do migracji zlepku ant i maven/antrun do sbt. Nie chodziło o samo sbt, a o przejście do nowszego systemu budowania bez bagażu z 2006 r. Nikt nie chciał/miał czasu/zainteresowania się tym zająć - rozpoznać co jest i zaproponować nowe - a że było konieczne, aby opanować builda i proponować nowocześniejsze podejście w nowych projektach, więc się za to zabrałem. Oczywiście nabywałem wiedzę w trakcie roboty - tutaj bardzo pomogło mi podejście Grzegorza B. z zespołu: "poznaj wystarczająco wiele, aby dostarczyć produkt na czas" (co wcześniej sprowadzało się do dłubania w temacie jakbym pisał pracę doktorancką, aby później dopiero wykorzystaną wiedzę próbować zastosować w praktyce, często z mniej niż dopuszczalnymi rezultatami).

Doświadczenie z pracy z wieloma "popaprańcami technologicznymi" w Citi w zespole (pozdrowienia dla ZbyszkaTomka, Marcinów, Arków, Alka, Krzyśka, Mariusza, Kornela, Filipa, Artura, Wojtka), który współ-budowałem z Wojtkiem, a później z Ewą, uważam za bezcenne - doświadczyłem olśnienia, że dobre poznanie narzędzia jest cenne, ale poznanie na poziomie umożliwiającym właściwe zastosowanie go w zadaniu przy oczekiwanym czasie dostarczenia (lub znacząco poniżej jego progu) jest kluczowe w naszej branży i chcę się w takim podejściu specjalizować.

Wszedłem w międzyczasie  w układ ze startupem, który tworzy aplikację webową i tam wyżywam się ze Scala, Play, angularjs, bootstrap i kilka innych pomniejszych dodatków (rozważam użycie react zamiast angular!). Tu podejście skracania czasu dostarczania działających funkcjonalności jest bardzo wyraźne. Czas realizacji to koniec tego miesiąca (!) Ach, te terminy.

Pociąga mnie zdobycie umiejętności szybkiego dostarczania gotowego produktu na granicy prototypu. Duża dynamika i umiejętność szybkiego wskazywania właściwych bibliotek jest dla mnie kluczowa. Taka kombinacja R&D ze znaczną dawką szybkiego wdrażania na produkcję. Marzy mi się doświadczenie na własnej skórze ciągłego wdrażania produkcyjnego kilkakrotnie na dzień bez konieczności zatrzymywania produkcji. Infrastruktura-cudo. Zdobycie wiedzy praktycznej co i jak jeszcze przede mną.

Rozwiązania-marzenie, w których chciałbym się specjalizować:


Jacek

05 sierpnia 2014

Confitura 2014 i ocena mojego wystąpienia "#StackOverflow, #GitHub i #twitter jako narzędzia rozwoju zawodowego programisty"

0 komentarzy
Do mojej skrzynki dzisiaj wpadł milutki email od kolegi Kuby - organizatora konferencji Confitura 2014 - zatytułowany "[Confitura 2014] Ocena Twojej prezentacji".

Jest się czym chwalić, więc wklejam całego maila dla zwiększenia roli wyniku, bo być w Top 10 z takimi tuzami polskiej sceny informatycznej, to sama przyjemność.

Witaj

Zebraliśmy i podliczyliśmy wyniki ankiet na temat prezentacji z tegorocznej Confitury i jest nam niezmiernie miło poinformować, że Twój wykład znalazł się w Top 10 pod względem oceny uczestników! Gratulujemy! :)

Jednocześnie jeszcze raz dziękujemy za obecność i czas poświęcony na przygotowanie prezentacji - to właśnie dzięki ludziom takim jak Ty, Confitura rok po roku zbiera bardzo dobre recenzje.

Poniżej przesyłam zbiorcze podsumowanie najlepszych wykładów oraz załączam raport z danymi odnośnie rozkładu ocen, komentarzy i uwag do Twojego wystąpienia.

Top 10:
 1    4.57    Sławomir Sobótka - Nie koduj, pisz prozę - lingwistyczne techniki wychodzące daleko poza Clean Code
 2    4.52    Wojciech Seliga - Innowacja w praktyce - jako może powstawać software w XXI wieku
 3    4.51    Jakub Marchwicki - Programowanie JEE'ish bez stresu
 4    4.51    Tomasz Szymanski, Jarosław Kijanowski - Twórz i Rządź, czyli jak developer może pobawić się hardwarem - iBeacony, RaspberryPi, druk 3D itd.
 5    4.47    Milen Dyankov - Web application performance tuning beyond Xmx
 6    4.46    Jarosław Pałka - Wzorce organicznej architektury - pamiętnik szaleńca
 7    4.36    Jakub Kubrynski - Sztuka uczenia się na błędach innych
 8    4.30    Jacek Laskowski - #StackOverflow, #GitHub i #twitter jako narzędzia rozwoju zawodowego programisty
 9    4.27    Michał Piotrkowski - Object-Relational Mapping is the Vietnam of Computer Science
10    4.22    Łukasz Żuchowski - Jak być szczęśliwym Developerem?

Średnia ocena wszystkich prezentacji wyniosła 3,84 natomiast mediana 3,83

Pozdrawiam w imieniu Kapituły,
Kuba Kubryński

I przedstawienie wyniku graficznie.

Trochę niepokoją mnie oceny "Bardzo źle", "Źle" oraz "Neutralnie", co w sumie daje 12 osób, którym najwyraźniej zepsułem sobotnie popołudnie, ale przy 48 na TAK stanowi to marginalne 2% populacji i cóż, jak nie dadzą mi wysłuchać, co było nie tak, kolejnym razem będzie tak samo, a nawet, jeśli nie, to mają prawo pomyśleć, że tak i nasze drogi rozejdą się bezpowrotnie. Szkoda by było.

Jednak najchętniej wysłuchałbym uwag dotyczących mojego wystąpienia od obu stron. Miałem wprawdzie możliwość rozmowy z kilkoma osobami tuż po wystąpieniu (szczególne ukłony dla Wojtka, który śmiał odrzucić moje zaproszenie na LinkedIn :-)) oraz dostałem dwa maile (dzięki Weronika!), ale coś mi mówi, że mogę więcej. Nie daj się prosić i daj poznać swoje zdanie! Pisz na jacek@japila.pl.

Z OSTATNIEJ CHWILI...
Kuba odezwał się do mnie zaraz po opublikowaniu tego wpisu i zwrócił moją uwagę na drugą stronę dokumentu - podsumowania mojego wystąpienia, której istnienia nie odkryłem wcześniej. Jak dobrze mieć dobre duszyczki wokoło, bo "kontent" sprawia, żem kontent. Dzięki wielkie, Kuba!


29 lipca 2014

Programiści Scala, Play, Angularjs, HighCharts do projektu poszukiwani

0 komentarzy
Od ponad miesiąca wspieram moralnie (więcej) i merytorycznie (mniej) projekt moich znajomych, którzy po moich namowach weszli w Scalę z Play Framework i Angularjs z innymi dodatkami mniejszego znaczenia (i bez Akki). Projekt jest na prywatnym repo na GitHubie.

Mieliśmy już pewien epizod z firmą i jej juniorami, i nie wyszło. Trochę "popłynęliśmy" ze współpracą po obu stronach.

Product owner/znawca tematu, co należałoby zbudować od strony biznesowej, jest w Warszawie do bezpośredniego kontaktu o (prawie) każdej porze.

Wchodzi w rachubę współpraca z firmą programistyczną lub pojedynczymi programistami - amatorami i profesjonalistami. Umowa o dzieło lub b2b czy jeszcze inaczej na żądanie. Do ustalenia.

Praca zdalnie lub na miejscu w Warszawie.

Projekt zakłada zbudowanie portalu dostawcy, który śledząc poczynania użytkowników oferuje im jeszcze lepszą ofertę. Nic specjalnie odkrywczego - ot kolejny portal, coś ala CRUD, ale bez D. Wykresy również wchodzą w rachubę i rozważamy HighCharts (może d3.js, jeśli osoba znająca się na temacie powie, że tak ma być). Znaczenie dla nas ma zawartość,  która już mamy. Potrzebujemy jedynie (?) platformy, aby je tam włożyć. I to jest właśnie ta robota!

Nie musisz wymiatać we wspomnianych technologiach i cenimy sobie przede wszystkim zaangażowanie i pomysłowość. Miejsce dyskutantów już obsadzone. Poszukujemy mróweczek = faktycznie zaangażowanych w przekucie pomysłu w czyn.

Zainteresowany? Skontaktuj się ze mną na jacek@japila.pl. Do usłyszenia!

P.s. To pierwszy wpis z klienta blogger na smartfona, więc wyrozumiałość braku formatowania oczekiwana.

28 czerwca 2014

Relacja ze spotkania scalowego o sbt i activator na deskach Toruń JUG

0 komentarzy
Dziękuję grupie Toruń Java User Group (TJUG) za przygotowanie spotkania i stworzenia atmosfery niczym nieskrępowanego przepływu wiedzy między uczestnikami.


Szczególne podziękowania należą się:

  • Szymonowi Stępniakowi @wololock - założycielowi TJUGa i osobie, która ziściła moje marzenie uruchomienia JUGa w Toruniu, za zaproszenie na prezentację na deskach Torun JUG oraz możliwości reklamy projektu scalania i wirtualno-stacjonarnych spotkań WarszawScaLa.
  • Piotrowi Prądzyńskiemu @prondzyn, który był łaskaw podzielić się swoimi uwagami odnośnie podobnego wystąpienia podczas 33rd Degree, co miało niebagatelny wpływ na zawartość merytoryczną tego spotkania.
  • "wodzireja” spotkania Piotrowi Modzelewskiemu @pmodzelewski za przedstawienie mnie przed moim wystąpieniem w takim sposób, że nawet pozbywając się ostatnich skrawków skromności, nie byłbym w stanie zrobić tego lepiej, co początkowo onieśmieliło mnie, ale ostatecznie zdopingowało do udowodnienia, że się faktycznie nie myli.
  • prelegentowi Sebastianowi Łaskawcowi z PayU za wsparcie merytoryczne w postaci prezentacji poprzedzającej, w której pojawiły się stara i wciąż dobra Java oraz narzędzia: Maven, serwery aplikacyjne Java EE z CDI / JPA / JSF (wzmiankowany był nawet IBM WebSphere!), IDEA, XML, Arquillian, które zostały wykorzystane jako pożywka dla moich dywagacji o łatwości “moich” narzędzi - sbt / activator.
  • Koledze Gaussowi za pomoc merytoryczną w wątku o Gaussie i sumie liczb od 1 do 99 oraz późniejszych spostrzeżeń o moim wystąpieniu.
  • Koledze od by -1, który wspomógł mnie merytorycznie, kiedy poszukiwałem rozwiązania do scalowej listy malejącej liczb naturalnych od 99 do 0.
  • Przemkowi i Renacie za przybycie z...ekhm...Bydgoszczy.
  • Michałowi Jaśtakowi @vardlokkur za przybycie i wzmocnienie grupy dawnych znajomych ze studiów na UMK.
  • Pani rekruterce-toruniance z Lufthansa z Gdańska, która cierpliwie odpowiadała na moje (lekko zaczepne) pytania o zatrudnienie w firmie (zachęcam do rozważenia oferty!)
  • Zbyszko Papierskiemu @ZPapierski za wprowadzenie do netfliksowego coś tam, i wyjaśnieniu zalet narzędzia w sposób tak ciekawy, że mimo moich zakus przejęcia mikrofonu, słuchałem z otwartymi ustami. Dobry z niego mówca!
  • ...i innym członkom Toruń JUG, których nie wspominam wyłącznie z powodu zauważalnie postępującej demencji starczej, która nie pozwoliła mi na spamiętanie wszystkich.
Spotkanie pozwoliło mi na podzielenie się własnymi doświadczeniami z sbt, Typesafe Activator, Akka (od strony sbt) oraz Play (również od strony sbt).


Podsumowując moje spotkanie jednym zdaniem, należy zapamiętać jedno zdanie, bodajże Zbyszka:

"Typesafe Activator jest tak samo narzędziem do szybkiego zestawienia projektu, jak i nauki programowania w języku Scala i Java."

W zamyśle tej prezentacji była demonstracja narzędzia sbt oraz activatora, co ma przełożyć się na liczbę osób “zarażonych” użyteczną prostotą obu narzędzi. Odnoszę wrażenie, że klimat spotkania zaszczepił chęć popróbowania się z nimi chociażby jako narzędzia nauki języka Scala. Wystarczy przecież zainstalować activator (bądź sbt, ale będę jednak upierał się przy activator) i odpalić polecenie activator console, aby wejść w powłokę Scala REPL.

Podczas spotkania omówiłem prostotę sbt, która przekłada się na łatwość użycia narzędzia do zarządzania projektami scalowymi, a w tym pojęcia projektu (już pusty katalog nim jest!), compile, test oraz reload.

Co później trafnie zauważono, w takim towarzystwie - prawie w pełni javowym - zabrakło informacji o współpracy sbt/activator z Apache Maven oraz użyciu sbt/activator do zarządzania projektami javowymi. W tym gronie obie cechy zdecydowanie zdeklasowałyby inne "feature killers”.

Liczność spotkania oceniam na poziomie 50 osób. Na moje pytanie, którym otwierałem spotkanie, o znajomość Scali, 5 osób podniosło rękę, co przy pytaniu o komercyjne użycie sprowadziło tę liczbę do…1 osoby (słownie: JEDNEJ osoby) - właściciela firmy codenger Przemysława Kisickiego @PrzemyslawK. Zachęcam do kontaktu z Przemkiem wszystkie osoby, które są zainteresowane wejściem w Scalę profesjonalnie, bo poszukiwani są do pracy w Toruniu przy ciekawym projekcie budowania platformy sprawdzającej umiejętności kandydata (ukłony dla firm konkurencyjnych devskiller i codility, które pojawiły się w dyskusji o cele biznesowe firmy Przemka).

Dla zwrócenia uwagi, wszyscy, bądź prawie wszyscy (za wyjątkiem skończonej ilości osób), to osoby pracujące lub co najmniej znające język Java. Miałem w ten sposób nieocenione pole do popisu, aby zachęcić ludzi do wejścia w Scalę na barkach narzędzi sbt i activator. Ufam, że misja zakończona sukcesem. Proszę o potwierdzenie/zaprzeczenie w komentarzach.

Po spotkaniu na wydziale przenieśliśmy się do knajpy Krajina Piva, gdzie kontynuowaliśmy dyskusję co dalej w Toruniu i okolicach, w których znalazło się miejsce dla rodzącego sie światka scalowego.

Dziękuję życzliwym duszyczkom za podzielenie się swoimi uwagami odnośnie zawartości merytorycznej mojego wystąpienia. Na tej bazie kolejne wystąpienia będą bardziej napakowane merytorycznie. Pro publico bono.

Spotkanie było nagrywane, więc zainteresowani przywołaniem historii, będą mieli okazję do poczynienia odpowiednich kroków już niebawem. Zachęcam do obejrzenia nagrania i podzielenia się uwagami o zawartości, szczególnie merytorycznej.

Dla spragnionych wiedzy scalowej, poniżej ściągawka do rozpoczęcia programowania w Scali przy akompaniamencie activator’a:

  1. Pobieramy narzędzie activator-minimal ze strony Typesafe i instalujemy w dowolnie wybranym katalogu. Nie zapomnij dodać ten katalog do PATH.
  2. Tworzenie aplikacji - activator new
    • możliwość wyboru nazwy projektu
    • możliwość wyboru szablonu projektu - domyślnie 4 szablony po dwa dla Scali i Javy
  3. Inne użyteczne polecenia
    • activator - powłoka poleceń narzędzia (podobnie jak cmd w Windows lub powłoka uniksowa)
    • activator --version - wersja programu uruchamiającego pełne środowisko activator
    • about - specyfikacja projektu - wersja sbt, Scala, rozszerzenia/wtyczki
    • console - wejście do środowiska Scala REPL, gdzie można uczyć się języka Scala oraz pisać aplikacje scalowe interaktywnie
    • run - uruchomienie aplikacji, np. aplikacji webowej w Play
    • test - uruchomienie testów w projekcie
    • ~ (tylda) - uruchomienie dowolnego polecenia poprzedzając go tyldą pozwala na ciągłe uruchamianie polecenia przy zmianie źródeł projektu, np. ~ test uruchamia testy przy każdorazowej zmianie źródeł projektu (bezcenne przy TDD) - mówi się, że "panny mdleją na widok tyldy".
    • reload - ponownie wczytuje konfigurację projektu po jej zmianie
  4. Konfiguracja projektu w pliku build.sbt
    • name - nazwa projektu
    • scalaVersion - wersja języka Scala, np. “2.10.4” lub “2.11.1”
    • libraryDependencies - lista zależności projektowych (z których projekt korzysta oferując swoje usługi)
p.s. Mówi się, że to nie ostatnie moje wystąpienie dla Toruń JUG o Scali. To jednak nie wcześniej jednak niż po wakacjach. Do zobaczenia!

05 czerwca 2014

Akka: hAkker garden w Krakowie fajną imprezą było - kopiowanie zalecane

0 komentarzy
I znowu Kraków...sigh.

Pamiętaj, że spotykamy się programując wspólnie w Scali w Krakowie, w tę sobotę, 7 czerwca w siedzibie Natka!

Nie tak dawno, bodaj trzy dni temu, ogłosiłem uruchomienie Krakowskie Scalania z Natek.pl, aby dokładnie wczoraj doświadczyć innej przyjemności - przyglądania się inicjatywie Akka: hAkker garden w Krakowie, którą zorganizowała ekipa Krakow Scala User Group! Kudos Panowie za inspirację. Już mi się marzy odpalenie podobnej inicjatywy w stolicy. Można się jej spodziewać...niebawem. Chętni pomóc proszę o kontakt na priv.

Za stronką wydarzenia Akka: hAkker garden:
Ostatnio developerzy Akki wyznaczyli parę prostych issues przeznaczonych dla społeczności. Spotkajmy się więc i naprawmy kilka z nich!
...
Podczas hackowania będzie można sięgnąć po pomoc via IRC do członka/ów akka teamu - reaktywność gwarantowana :-)
Co mnie najbardziej urzekło, to możliwość zdalnego uczestniczenia w spotkaniu, które dla mnie nabrało zdecydowanie międzymiastowy, a nawet międzynarodowy charakter (!) Międzymiastowy, bo pozwolił na wzięcie w nim udziału z dowolnego miejsca w Polsce, ba, nawet świata, a międzynarodowy ze względu na zdalny udział +Konrad Malawski, który założyłem, że siedzi gdzieś w akkowej mecce na północy.

Dzięki +Marcin Kubala za zwrócenie na to wydarzenie mojej uwagi na twitterze, co utwierdziło mnie w przekonaniu, że twitter właśnie do takich celów zdaje się być doskonały. Możnaby oczekiwać maila (dostaję ich tyle, że już nie wiem, od którego zacząć), SMSa (powiedzmy, że to bardzo niepożądany sposób, a i zapewne niewielu zna innych numery komórkowe) czy właśnie taką zaczepkę na twitterze (co z odpowiednio skonfigurowanym klientem na smartfonie daje możliwości przypominające ala SMSy). Dzięki jeszcze raz, Marcin.

I tak, po oporządzeniu młodego, o 20:15 zajrzałem na ich kanał #krakow-scala na IRCu. Przypomniały mi się stare, dobre czasy, kiedy używanie tej formy komunikacji było wszechobecne i na miejscu. Wiele grup, np. clojure, do tej pory z powodzeniem korzysta z takiej komunikacji i pamiętam, kiedy mając problem, wejście na ich kanał dawało odpowiedź wręcz natychmiastowo. Bezsprzecznie najlepszy sposób na utrzymanie nowicjusza przy nauce czegoś nowego, np. języka, kiedy...szukać pomocy rzecz trudna być. Trudno mi sobie wyobrazić lepszą formę komunikacji z ekspertami utrzymując, że czas jest kluczowy, co zwykle ma miejsce i właśnie w danym momencie zajmuję się tematem (możnaby jeszcze liczyć na wspomnianego twittera, przy właściwie dobranym otagowaniu, ale tu pojemność znakowa ogranicza, albo StackOverflow, quora czy reddit, gdzie można sobie pofolgować znakowo, ale odpowiedź napływa zwykle z większym opóźnieniem).

Niedługo jednak trwało moje szczęście wzięcia udziału w tym przedsięwzięciu, kiedy synek przybiegł mówiąc "Tata, spać idziemy!" i...obudziłem się przed północą. I pozostało mi jedynie opisać moje wrażenia w tym wpisie :-)

Myślę, że w hAkker garden warto poświęcić więcej czasu i życzę sobie, aby ta inicjatywa miała swoich naśladowców. Kto następny? Jaki projekt? Speak up and let others know!

Dziękuję +Konrad Malawski, +Rafał Pokrywka+Marcin Kubala, którzy przyczynili się do unaocznienia mi ważności tego typu inicjatyw. Sława i chwała (chwilowo) należy do Was ;-)

31 maja 2014

Krakowskie Scalania z Natek.pl w Krakowie 7 czerwca

0 komentarzy
Z nieukrywaną przyjemnością firma Natek oraz Jacek Laskowski mają zaszczyt zaprosić na krakowskie scalania w dniu 7 czerwca (sobota) w Krakowie, które tym samym po raz pierwszy zagości poza granicami Warszawy!

Spotkanie jest całkowicie bezpłatne. Wymagana jest jednak rejestracja, która dostępna jest pod adresem http://krakowskiescalanie.eventbrite.com. Nie zwlekaj. Zarejestruj się już dziś!

Celem projektu scalania oraz serii spotkań pod parasolem Warszawa Scala User Group jest nauka programowania w języku Scala przez rozwiązywanie krótkich zadań programistycznych w tym języku. "W grupie raźniej!" - mawiają, a praktyczne podejście do nauki języka Scala pozwala na skrócenie czasu na rozpoznanie języka. Dyskusje przed, w trakcie oraz po rozwiązaniu zadania są kluczowym elementem uczącym w tych spotkaniach. Uważamy, że możliwość porównywania rozwiązań i zasięgnięcie języka pozwalają na znaczne skrócenie czasu poznania Scali.

Co jest potrzebne, aby uczestniczyć w spotkaniu? Przynieś laptopa z zainstalowanym środowiskiem IntelliJ IDEA z wtyczką do Scali (lub Eclipse, NetBeans, czy inne IDE) oraz sbt 0.13.5. Zalecane (ale nie wymagane) jest wcześniejsze pobranie (git clone git@github.com:jaceklaskowski/scalania.git) projektu scalania i uruchomienie sbt test:update w katalogu projektu.

Podczas spotkania będziemy wspólnie poznawać język Scala przez grupowe rozwiązywanie krótkich zadań programistycznych (zestaw zadań S-99: Ninety-Nine Scala Problems, Scala Koans, ćwiczenia z książki "Functional Programming in Scala", ćwiczenia do szkolenia "Scala i programowanie funkcyjne") oraz implementacji metod ze Scala API znając wyłącznie ich nazwę i sygnaturę (a czasami jedynie sygnaturę).

Wsparcie sieciowe, lokalowe i żywnościowe zapewnia nam firma Natek.

Przyjdź i przekonaj się, jak doświadczenie prowadzącego zebrane przy organizacji serii podobnych spotkań w Warszawie oraz sama znajomość języka Scala przydadzą się Tobie w nauce. Jednym kosztem jest Twój czas, a dzięki temu spotkaniu możesz poświęcić go tylko tyle, ile faktycznie potrzebne.

Jest tylko 20 dostępnych miejsc i jedyna szansa na uzupełnienie wiedzy o Scali w tak miłej atmosferze! Nie zwlekaj z podjęciem decyzji i zarejestruj się już dziś!

Zapraszamy!

23 maja 2014

#StackOverflow, #twitter i #github na #javotok'u w @javeo_eu

0 komentarzy
Wprosiłem się na spotkanie w @javeo_eu i zawłaszczyłem czas antenowy tematem "#Be #social #FTW - #stackoverflow, #github, #twitter et al for professional #development".

Zależało mi najbardziej na zbudowaniu platformy otwartej wymiany opinii na temat korzystania z mediów społecznościowo-programistycznych dla własnych celów rozwojowych (przede wszystkim), które, przy pewnej wytrwałości w działaniu, wpływają również na postrzeganie pracodawcy delikwenta (pożądany skutek uboczny). Cieszę się, że się udało i w jednym miejscu zgromadziło się 13 osób, wśród których był właściciel/prezes, Magda od spraw HR/PR, juniorzy, seniorzy i pamiętający dawne czasy Javartu.

Pytanie wiodące było: Jak zbadać siłę merytoryczną zespołu?

Po raz pierwszy doświadczyłem olśnienia znaczenia pytań "Kto...?" podczas wystąpień publicznych, gdzie nie ma mowy o większej interakcji niż podniesienie ręki. Pytania kto? są swego rodzaju pytaniami czy? z tą jednak różnicą, że pierwsze kto? wymusza jedynie gest, a drugie werbalne wyrażenie zdania, co nie pozwala na jednoczesną rekację większej liczby osób, a dodatkowo wprowadza niepożądany hałas (przy grupie > 5 osób). Muszę jeszcze pamiętać, aby samemu wyrażać zdanie przez podniesienie ręki po lub w trakcie zadawania pytania. Ciekawa technika.

Możliwość odpalenia tej inicjatywy w zaprzyjaźnionej firmie javeo utrwaliła we mnie przekonanie o konieczności kontynuowania tego typu wymiany wiedzy - w budynku firmy, w dzień luźniejszy projektowo aka piątek i w ramach godzin pracy. Sądzę, że przy odpowiednim dopasowaniu godzinowym, np. godzina 10:30 i właściwej aranżacji miejsca spotkania - wyżywienie, napoje, okna ze słońcem na zewnątrz, wygodnymi pufo-fotelami, itp. - mogłoby sprawić ciekawy dodatek w życiu pracownika.

Spotkanie zaplanowane było na godzinę, ale jakimś przypadkiem przeciągnęło się do dwóch :) Bywa. Wybaczcie znudzeni i cieszcie się niespożyci kontynuacji tematu. Postarajmy się wspólnie następne spotkanie wpasować w gusta czasowe większej liczby uczestników. Z 13 osób zostało do końca 7, co przy konkurencji z dzisiejszym spotkaniem o MongoDB uważam za wynik bardzo dobry.

Mam nieodparte wrażenie, że w wyniku spotkania w javeo pojawi się kilka ciekawych inicjatyw rozwojowych, w których nie zabranie prelegentów na najbliższych konferencjach (ukłony dla Zbyszka) i nie będzie trzeba czegokolwiek redukować (ukłony dla Tomka i Przemka), chyba że korzystając z języka Scala wespół z map i filter (ukłony dla Grześka i Wojtka). Było ciekawie, a dla mnie największa nauka płynie taka, że kiedy oczekuje się dyskusji i się ją wznieciło, to należałoby odsunąć się po prostu w cień i słuchać, pozwalając na wymianę zdań między uczestnikami. Nie bez przyczyny mamy więcej narządów słuchu niż mowy! Do zapamiętania.

Dzięki za zaproszenie i niezwykle inspirującą dyskusję. Ciekawym opinii uczestników. Od jednego już mam, więc brakuje jeszcze 12. Nadsyłajcie hejty i lajki. W zamian obiecuję podobne reakcje :) Do następnego razu!

06 kwietnia 2014

O java.util.stream przez przykład(zik) z StackOverflow i Java 8 API

0 komentarzy
Istnieje wiele sposobów na poznanie nowego języka programowania i jednym z moich typów jest aktywność na StackOverflow. Można pokusić się na odpowiadanie na pytania (to stopień najwyższy wtajemniczenia), można “lajkować” (to stopień podstawowy), można edytować pytania i odpowiedzi uzupełniając je o dodatkowe informacje, które pozyskuje się z komentarzy czy wskazywać duplikaty (to stopień średniozaawansowany). Sprawdziło mi się to podczas nauki narzędzia sbt, więc kwiecień i kolejne kilka miesięcy zamierzam współdzielić z aktywnością w obszarze Java 8 (etykieta java-8 na StackOverflow).

W zależności od etykiety i dnia roboty może być na kilka minut aż do wielogodzinnej nasiadówy. Nie jest to zwykle łatwa robota początkowo, ale z czasem idzie coraz łatwiej, a i przyjemności coraz więcej. Aktywność dotyczy w równym stopniu pytań i odpowiedzi. Można również uzupełniać opisy etykiet.

Wszystkie aktywności na StackOverflow są nagradzane punktami reputacji, odznakami i wiedzą w temacie. W zasadzie brak wad.

O StackOverflow (i GitHub, twitterze oraz w promocji reddit) będę mówił podczas mojej prezentacji StackOverflow, GitHub i twitter jako narzędzia profesjonalnego rozwoju programisty na DevCrowd’14. Gorąco zachęcam do udziału.

Wróćmy jednak do nauki nowej wersji Java 8.

Kiedy dzisiaj do mojej skrzynki trafiło zestawienie pytań z etykiety java-8 było w nim tylko jedno pytanie - How to dynamically do filtering in Java 8?. Niefortunnie, nie należy ono do najbardziej pouczających, ale odpowiedź już tak. Stuart Marks, który jest autorem odpowiedzi, postarał się o sporą dawkę wiedzy nt. lambd i "pochodnych" w Java 8. Zdecydowanie warto zapoznać się z odpowiedzią.

Weźmy chociażby "This can't be done with a simple filter(predicate) construct on a stream.”

java.util.Collection<E> jest podstawowym interfejsem w kolekcjach w Javie (od momentu pojawienia się ich, już w Java 1.2!). Dotyczy to struktur danych takich jak zbiory, listy, kolejki i mapy.

Zmianą w Java 8 jest dodanie m.in. metody default Stream<E> stream(), która wprowadza nas w świat strumieni. Kolekcja, na której wywołamy stream(), będzie źródłem danych.
Stream<Integer> ints = Arrays.asList(1,2,3).stream();
Mając Stream jesteśmy w domu. Drzwi “streamowe” otwarte.

Wezmę na tapetę pierwszą metodę z tercetu funkcyjnego - filter (obok map i reduce). Jej sygnatura to filter(Predicate predicate)
ints.filter(...)
Niestety moja wiedza dotycząca wartości przekazywanej do filter jest znikoma, bo pojawia się kolejna klasa z Java 8 - java.util.function.Predicate. Warto zajrzeć do javadoc, w którym napisano:

"This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.”

Jakaś masakra! :) Kompletnie mi to nic nie mówi. Intelekt i wdzięk podpowiadają mi jednak, że gdzieś tam pojawiały się konstrukcje w stylu argument(y) -> ciało funkcji. To właśnie nazywają lambdą (a przynajmniej takie mam wyobrażenie jak taka lambda mogłaby wyglądać mając pewne doświadczenie w innych językach funkcyjnych - Clojure, Scala, F#).

Sprawdzam taką konstrukcję.
Stream<Integer> oddInts = ints.filter(n -> n % 2 != 0);
Powinienem otrzymać strumień liczb nieparzystych. Wciąż to jednak wyłącznie strumień i próba System.out.println na tym zwróci jedynie tekstową reprezentację referencji.
java.util.stream.ReferencePipeline$2@682a0b20
Pora zmaterializować strumień do strawniejszej postaci, np. wyświetlę wszystkie elementy strumienia.

Z pomocą przychodzi mi IntelliJ IDEA. Wystarczy napisać oddInts.forEach i wcisnąć Ctrl+Shift+Spacja, aby pojawiła się jedyna słuszna podpowiedź - o -> {}. I to jest dokładnie to, czego potrzebuję - mam wybór, ale zbiór niezbyt liczny, bo jednego elementu. Próbuję wypisać elementy na ekran z System.out.println.
oddInts.forEach(o -> System.out.println(o));
Ctrl+Shift+F10 w IntelliJ IDEA i dostaję na ekranie wynik:
1
3
Dokładnie taki, jaki oczekiwałem!

Ale to nie koniec. IntelliJ IDEA nie poprzestaje i podpowiada, że warto zamienić tę konstrukcję na...method reference. Nie mam pojęcia, o co chodzi, ale podążam za głosem IDEA. Alt+Enter i już jest.
oddInts.forEach(System.out::println);
Taki sposób nauki lubię. Chciałbym mieć jeszcze możliwość poznawania Java 8 API w środowisku REPL (na wzór Scali, F#, Clojure czy Groovy), ale to raczej pieśń przyszłości. Dobrze, że mam IntelliJ IDEA!

Pełna klasa gotowa do uruchomienia:
package pl.japila.java8;

import java.util.Arrays;
import java.util.stream.Stream;

public class Main {
    public static void main(String[] args) {
        Stream<Integer> ints = Arrays.asList(1, 2, 3).stream();
        Stream<Integer> oddInts = ints.filter(n -> n % 2 != 0);
        oddInts.forEach(System.out::println);
    }
}
A jak Tobie idzie poznawanie Java 8 API? Chętnie posłucham rad bardziej wytrwałych, którzy pierwsze dni mają już dawno za sobą.