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 ;-)