Spotkanie 18 listopada - prośba o pomoc

168 views
Skip to first unread message

Jacek Laskowski

unread,
Nov 5, 2015, 4:24:11 AM11/5/15
to WarszawScala
Cześć,

Podczas wczorajszego spotkania uzgodniliśmy potrzebę rozkminienia praktycznie co i jak z WebSockets w Akka HTTP/Streams. Idea jest taka, aby strumieniować zdarzenia sparkowe (lub cokolwiek innego) do przeglądarki bez pisania klienta w JS - skorzystamy z konsoli w przeglądarkach lub jakiegoś klienta command line.


Pomysł jest, ale nie będę ukrywał, że moja znajomość WebSockets i jego wsparcia w Akka HTTP/Streams jest tak mała, że nie odważę się poprowadzić spotkania, jeśli tylko będą choć trochę kumający temat w otoczeniu. Innymi słowy, poszukuje się współprowadzących, którzy wesprą nasze potrzeby poznawcze. Przejrzymy zapewne jakieś activators i w ten sposób zdobędziemy niezbędną wiedzę. Potrzeba jednak wcześniejszego rozpoznania tematu i choćby częściowej wiedzy gdzie czego szukać, aby inni mogli z tego skorzystać. Pewna praca przed spotkaniem jest wymagana. Ot, taki lajf! :)

Możemy liczyć na merytoryczne wsparcie od Bartka i Rafała, ale na chwilę obecną jedynie w niewielkim zakresie merytorycznym.

Zatem potrzebujemy wsparcia merytorycznego - co i jak i gdzie w obszarze WebSockets i Akka HTTP/Streams. Kto chętny?

Wykorzystajmy ten wątek do mailowego rozpracowania tematu.

Pozdrawiam,
Jacek

Rafał Krzewski

unread,
Nov 5, 2015, 5:50:08 AM11/5/15
to WarszawScala
Służę przykładami z mojego pet project:

Prosty serwer na Akka HTTP serwujący statyczny content oraz ustawiający WebSocket który ignoruje komunikaty przychodzące, natomiast wypycha na wyjście strumień "pingów" sterowany timerem.

Bardziej złożony serwer który "coś robi": koduje / dekoduje komunikaty JSON do/z case class, obsługuje oba strumienie za pomocą aktorów

Serwis AngularJS który podłącza się do tego od strony przeglądarki:

Ogólnie setup tego projektu fronetdowego zarówno od strony sbt / sbt-web jak i zależności RequireJS można by znacznie uprościć - jestem z niego mocno niezadowolony.
Z drugiej strony, nawet po poprawieniu problemów, które widzę będzie to far cry względem tego co "JS kids" uskuteczniają za pomocą Grunta / Gulpa - co uświadomiła mi wczorajsza dyskusa z Marcienm :)

Wracam z urlopu 14 wieczorem, jeśli będę mógł jakoś pomóc w przygotowaniu następnego spoktania to chętnie. Bądźmy w kontakcie.

pozdrawiam,
Rafał

Bartek Kalinka

unread,
Nov 5, 2015, 7:45:11 AM11/5/15
to WarszawScala
Spróbuję przygotować jakiś prosty projekt do rozwijania.  Zrobiłem już jeden hobbystyczny projekcik z websockets na akka-http, więc mam nadzieję że ten sam kod zadziała i tutaj.

Bartek

Jacek Laskowski

unread,
Nov 5, 2015, 8:24:50 AM11/5/15
to WarszawScala
On Thursday, November 5, 2015 at 11:50:08 AM UTC+1, Rafał Krzewski wrote:
 
Ogólnie setup tego projektu fronetdowego zarówno od strony sbt / sbt-web jak i zależności RequireJS można by znacznie uprościć - jestem z niego mocno niezadowolony.
Z drugiej strony, nawet po poprawieniu problemów, które widzę będzie to far cry względem tego co "JS kids" uskuteczniają za pomocą Grunta / Gulpa - co uświadomiła mi wczorajsza dyskusa z Marcienm :)

Dzięki Rafał za wskazówki. Możesz rozwinąć to zdanie z "far cry", kiedy porównałeś scalowe narzędzia do JS kids? Będę wdzięczny, bo nie wiem, jak odebrać tę wypowiedź - na naszą korzyść czy JSowców?

Jacek

Jacek Laskowski

unread,
Nov 5, 2015, 8:28:02 AM11/5/15
to WarszawScala
On Thursday, November 5, 2015 at 1:45:11 PM UTC+1, Bartek Kalinka wrote:
Spróbuję przygotować jakiś prosty projekt do rozwijania.  Zrobiłem już jeden hobbystyczny projekcik z websockets na akka-http, więc mam nadzieję że ten sam kod zadziała i tutaj.

Z tym repo to dobry pomysł! Czy możesz go wystawić na GitHubie, aby można było coś przygotować wspólnie? Pewnie znajdzie się więcej ochotników (a może i spoza naszej grupy, bo temat ciekawy i nazbierasz gwiazdek).

Jacek

Rafał Krzewski

unread,
Nov 5, 2015, 9:19:12 AM11/5/15
to WarszawScala
W dniu czwartek, 5 listopada 2015 14:24:50 UTC+1 użytkownik Jacek Laskowski napisał:

Dzięki Rafał za wskazówki. Możesz rozwinąć to zdanie z "far cry", kiedy porównałeś scalowe narzędzia do JS kids? Będę wdzięczny, bo nie wiem, jak odebrać tę wypowiedź - na naszą korzyść czy JSowców?


Narzędzia do frontendu ze świata JS są DUŻO lepsze od analogicznych narzędzi ze świata Maven / Gradle / SBT.

pozdrawiam,
Rafał

Waldemar Wosiński

unread,
Nov 6, 2015, 2:07:54 AM11/6/15
to WarszawScala
Ja bym prosił o nie dokładanie sparka do tego by było możliwie prosto. Same Websockety są u mnie na liście do opanowania,  Akka HTTP/Streams również.

Waldek

Jacek Laskowski

unread,
Nov 6, 2015, 12:51:53 PM11/6/15
to WarszawScala
On Friday, November 6, 2015 at 8:07:54 AM UTC+1, Waldemar Wosiński wrote:
Ja bym prosił o nie dokładanie sparka do tego by było możliwie prosto. Same Websockety są u mnie na liście do opanowania,  Akka HTTP/Streams również.

Prośba wysłuchana i zostanie wdrożona :)

Innymi słowy, pomysł pojawił się przy rozkminianiu Sparka i nie wnosi niczego, czego nie moglibyśmy opanować apką typu "hello world", która wysyła coś na websocket.

Jacek

Jacek Laskowski

unread,
Nov 12, 2015, 2:43:47 PM11/12/15
to WarszawScala
Panie i Panowie,

Kolejny meetup będzie SUPER! Mariusz Nosiński ze ScalaC i autor Websockets Server with akka-http [1] zgodził się na przyjazd do nas i wesprzeć nas merytorycznie! Mamy zatem meetup z dwoma tuzami polskiej sceny scalowej - Macieja z Dockerem i Mariusza z WebSocket i Akka HTTP!!! Oczywiście nasze tuzy - Bartek, Rafał i inni też będą. Już mi się podoba.

Zapraszam!


p.s. Pozostaje jeszcze odpalić nagranie spotkanie bardziej pro.

Jacek

Bartek Kalinka

unread,
Nov 13, 2015, 7:04:07 AM11/13/15
to WarszawScala
Przygotowałem demo: https://github.com/bartekkalinka/spark-listener-websockets

Napotkałem dwa problemy:

1. Spark listener uruchamiany za pomocą spark-shella nie działa, gdy buduję go za pomocą sbt assembly (zamiast package).  Powód: assembly umieszcza w jarze np. scala library, a ta zakłóca chyba classpath Sparka:
spark-shell --conf spark.logConf=true --conf spark.extraListeners=pl.bka.spark.CustomSparkListener --driver-class-path ./target/scala-2.11/spark-listener-assembly_2.11-1.0.jar
java.lang.NoSuchMethodError: scala.collection.immutable.Range.validateRangeBoundaries(Lscala/Function1;)Z
Exception in thread "main" java.lang.RuntimeException: error reading Scala signature of scala.package: scala.collection.immutable.Range.validateRangeBoundaries(Lscala/Function1;)Z

2. Spark listener nie ma maina.  Ma go aplikacja sparkowa, w której mógłbym dodać custom spark listenera, ale i tak serwer websocketów powinien działać w sposób ciągły, a nie tylko na czas uruchomienia apki sparkowej (która coś obliczy i się zakończy).

Problem 2 rozwiązałem tak, że utworzyłem osobny projekt ws-broadcast, który emituje komunikaty przez websockets.  Problem 1 na razie rozwiązałem tak, że spark listener pisze komunikaty do pliku, a ws-broadcast je stamtąd wyciąga.  W planach: ws-broadcast mógłby pobierać komunikaty do wysłania przez REST-a.

Bartek

Jacek Laskowski

unread,
Dec 1, 2015, 6:37:54 AM12/1/15
to WarszawScala
Cześć Bartek,

Wydaje się, że to doskonały temat na kolejny meetup. Ty nas wprowadzisz w tajniki tego projektu, a my usiądziemy w części praktycznej nad niedociągnięciami. Co o tym sądzisz? Zgodziłbyś się nas wdrożyć na kolejnym spotkaniu za 2 tygodnie? Pogadajmy offline, ale niech publika widzi Twoje zaangażowanie i moją ekscytację :-)

Jacek

Bartek Kalinka

unread,
Dec 1, 2015, 7:14:22 AM12/1/15
to WarszawScala
Myślę, że tak, za 2 tygodnie ok.  Szczegóły omówimy jutro na spotkaniu.

Bartek

Jacek Laskowski

unread,
Dec 10, 2015, 4:05:09 AM12/10/15
to WarszawScala
Cześć Bartek,

Z nieukrywaną przyjemnością wpisałbym Ciebie już dzisiaj jako prowadzącego spotkanie 16 grudnia. Zgódź się proszę!


Jacek

Bartek Kalinka

unread,
Dec 10, 2015, 7:44:21 AM12/10/15
to WarszawScala
OK

Bartek

Bartek Kalinka

unread,
Dec 13, 2015, 4:32:01 PM12/13/15
to WarszawScala
Tytuł prezentacji:
"Websockets: from actors to streams"

Bartek

Jacek Laskowski

unread,
Dec 14, 2015, 10:03:16 PM12/14/15
to WarszawScala
On Sunday, December 13, 2015 at 4:32:01 PM UTC-5, Bartek Kalinka wrote:
Tytuł prezentacji:
"Websockets: from actors to streams"

Dziękować! Spotkanie uaktualnione - http://www.meetup.com/WarsawScala/events/226593502/.

Mnie nie będzie, bo jestem w Kanadzie, ale z duchem z Wami (wtedy to dokładnie będę prowadził warsztaty ze Sparka). Życzę powodzenia!

Pozdrawiam,
Jacek
Reply all
Reply to author
Forward
0 new messages