Friday, September 19, 2014

2014-09-17 Keep things simple with Scalatra





Na ostatnim spotkaniu JUG Łódź dobrze nam znany Michał Ostruszka, opowiedział o Scalatra.
Jest to lekka biblioteka wspomagająca tworzenie serwisów REST-like (ale też klasycznych aplikacji webowych) w oparciu o język Scala.


Scalatra jest używana przez takie firmy jak:
  • BBC
  • Guardian newspaper
  • Box.com
  • SoftwareMill w której Michał pracuje.
Na początku Michał zrobił szybkie porównanie z powszechnie znanymi Struts, Spring MVC oraz Play Framework. Przeznaczeniem Scalatry jest udostepnienie narzędzi pomocnych przy tworzeniu serwisów REST, które udostępniają na przyklad JSON API. Pomimo że Scalatra również wspiera całe aplikacje webowe po dodatkowej konfiguracji, użytkownicy tej biblioteki przeważnie nie potrzebują skomplikowanych kontenerów, wsparcia do części prezentacyjnej aplikacji, wystarczą im narzędzia do konsumowania URL oraz do zbudowania odpowiedzi na żądanie klienta. Wspomniał, że dzieki Scalatra dostaje tylko to co tak naprawde chce, bez dodatkowych "śmieci", które zwiększają czas inicjacji, logują niepotrzebne informacje.
Popieram opinie Michała, również jestm zwolennikiem takiego podejścia.

Michał zrobił szybkie wprowadzenie do Scalatry pokazał nam kilka slajdów na temat biblioteki, po czym jak każdy developer lubi, przeszedl do kodowania.
Bazując na projekcie scalatra-sbt-prototype przedstawił przykład serwisu implementującego najbardziej popularne methody HTTP jak: GET, POST, DELET, PUT.
Był to bardzo prosty serwis umożliwiający listowanie podstawowych informacji o prezenterach występujących na spotkaniach JUG, dodawanie nowych, usuwanie. Taki typowy CRUD.
Serwis uruchamiany był przez SBT na kontenerze Jetty, dzieki czemu nie trzeba było odpalać ciężkiego serwera aplikacji jakim jest jBoss lub WebLogic.

Scalatra ma wiele przydatnych componentów, dzieki którym kod parsujący parametry HTTP oraz zwracający odpowiedz do klienta może być bardzo czytelny i zajmowac dosłownie kilka linijek.
Scalatra wspiera parsowanie pojedynczego parametru np.: /:id, /talk?id=:id
oraz wielokrotnych parametrów np.:/talk?id=1&id=2,id=3 (multiParams).
Bardzo ciekawym rozwiązaniem jest wbudowany "halt", który służy do zatrzymania wykonywania sie kodu w przypadku błędu i następnie zwrócenia zdefiniowanej odpowiedzi do klienta. Przykładowy błąd: braku spodziewanego parametru.
Dodatkowo twórcy biblioteki opakowali większość popularnych Response
Code w ActionResult np.: 200, 206, 404, dzieki czemu developer nie musi implementować
i dostaje gotowe rozwiązania do użycia.

Testując działający serwis, Michał używał postman - rozszerzenie do przeglądarki Chrome, restowy client wysyłający żądania HTTP bazując na wspomnianych wczesniej metodach.

Ciekawe uwagi od Michała:

  • scalatra wykonuje dopasowanie URL od dołu - jeśli serwis wspiera kilka URI np.:
    1. /talk/test
    2. /talk/:id
    i w takiej kolejności są zdefiniowane w klasie, wowczas URI /talk/test zostanie skonsumowany przez 2 definicje




  • używanie filtrów, zamiast serwletów - jeżeli serwlet zostanie wybrany do obslugi URL i nie znajdzie odpowiedniej deklaracji to zglosi błąd, filter natomiast jeżeli nie znajdzie to URL jest przekazywany do nastepnego i nastepny może być tym odpowiednim do obslugi tego URL

Przydatne wspomniane narzędzia:

Podsumowanie:


Z powodu braku terminu w 6 dzielnicy oraz w DMCS, JUG odbył sie w zupelnie nowej lokalizacji niż dotychczas PREXER. Sala była przygotowana, dobrze wyswietlający rzutnik, szkolne krzeselka, wszystko OK. Niestety przejeżdzające tramwaje na ulicy Pomorskiej zagłuszały nam prezentera.
To miejsce w przyszłości bedziemy traktowali jako backup. Niestety było bardzo mało uczestników tylko 13 osób, mam nadzieje, że tak słaba frekwencja była wynikiem zmian lokalizacji.

Podczas tego spotkania Marcin wygrał licencję MyEclipse.

Podsumowując prezentacja bardzo fajna, treściwa, scalatra jest ciekawą biblioteką.

Co dalej:


25 wrzesnia o godzinie 18 na DMCS, Sławomir Kłąb z Rule Financial opowie nam o JavaFX.
Już teraz zapraszam Was na kolejne spotkanie.

Sunday, September 7, 2014

2014-09-03 Firmao - czyli od startupu do produktu komercyjnego - recenzja

3 września w 6 dzielnicy mieliśmy okazję gościć Rafała Namiecińskiego. Współzałożyciela "Firmao".


Czym jest Firmao?
Jest to kompleksowy CMS/CRM w wersji przeglądarkowej, z bardzo rozbudowanymi opcjami konfiguracyjnymi pod indywidualne potrzeby danego klienta czy firmy

Prelekcja pomimo głównie aspektów biznesowych, miała całkiem dobrą publikę i padało wiele ciekawych pytań.
Zainteresowanych ciekawiło w jakich technologiach jest stworzone Firmao i chyba się nie zawiedli, bo padały
Java, Spring, Hibernate, Angular itp a także inne

Rafał przybliżył nam tajniki i udzielał dobrych rad odnośnie startupu, na czym się skupić a co sobie odpuścić i określił to powiedzeniem :

"Do what you do the best, outsource the rest".

Firmao swoją działalność zaczęło od dofinansowania z UE, gdzie jak podkreślał prowadzący nie warto pukać po pieniążki gdyż cała procedura i papierkologia oraz decyzja "czy projekt jest innowacyjny czy nie" podejmuje osoba, która kompletnie się może na tym nie znać.
Wracając do sedna sprawy, Rafał zdradził nam też kilka kruczków odnośnie składowania danych, a także bardzo sprytny patent na tanie międzynarodowe rozmowy telefoniczne do firmy.
Wystarczy mieć swoją centralkę oraz telefony VOIP i odpowiednio to skonfigurować. Klient np z Niemiec dzwoni na infolinię Firmao na numer, który wydaje się być numerem z Hamburga, a w rzeczywistości dzwoni do "serwera"

Sukces Firmao jak określił Rafał jest wynikiem wsłuchiwania się w potrzeby i uwagi klientów (schemat japońskiego koła jakośći i filozofia Kaizen), a także nie dawanie wszystkich dostępnych fajerwerków klientowi od razu, gdyż się wystraszy i pogubi.

Czym wyróżnia się Firmao na tle innych tego typu usług?

Przede wszystkim ceny są przystępne, szeroki wachlarz opcji, konfiguracji, oraz niezawodność (serwery Amazon) + bardzo dobry support (multilanguage: polski, angielski, niemiecki), który w ciągu kliku minut od założenia konta dzwoni do klienta, a także pomaga skonfigurować całość pod swoje potrzeby.

Firmao ma się dobrze, świadczy o tym liczba ponad 15000 zadowolonych klientów z Polski, Niemiec, Kanady i wielu innych krajów.

Padło pytanie o kilka dobrych rad dla planujących swój biznes udzielił bardzo cennych wskazówek np:

- skupianie się na głównych zadaniach i celach firmy (resztę jeżeli to wymaga zbyt dużych nakładów czasu i pieniędzy zlecić firmom zewnętrznym)

- szukanie środków finansowych u osób i firm, których projekt/pomysł może zaciekawić, niż liczyć na decyzję o przyznaniu dofinansowania ze środków z UE

- przede wszystkim - biznes wymaga poświęceń, a dokładniej rzecz biorąc, poświęcanie masy czasu na rozwój własnego biznesu.


Dziękujemy bardzo Rafałowi Namiecińskiemu za poświęcony czas i ciekawą prezentację oraz bardzo cenne wskazówki jak rozkręcić swój własny biznes w branży usług IT.