Plugin do chatu, chat na Gamedev.pl


#1

@mrt Kontynuując dyskusję z Dla developerów chcących wspierać Forum.Warsztat.IO:

Ten chat używa long pollingu, czyli jest dosyć real time. Ktoś już zadał pytanie o WebSockets na forum DO.
Forum będzie podpięte na głównej stronie, więc może być też podpięty chat.

Poza technologią co powinno charakteryzować ten chat? Skupmy się na funkcjonalnościach.


Dla developerów chcących wspierać Forum.Warsztat.IO
#2

@goliatus, myślę, że przydałby się plugin do czatu. Ale nie wiem czy tu, bo mówisz, że masz jakieś plany odnośnie gamedev.pl, więc może tam na nowo to zrobić.


#3

Bardzo podoba mi się chat na SO, ale niestety nie jest on udostępniony.

Jest jeden plugin, którego development ciągle trwa:

Wygląda to tak:

Pytanie czy będzie wystarczające? Zawsze można to wesprzeć pull requestami, @bartlomiej_kielbasa ? :smile:


#4

Ja myślałem o czymś opartym na nodzie i zintegrowanym z bazą użytkowników tego forum. Zrobienie czegoś takiego, nawet przypominającego czat z SO, nie wydaje się być bardzo skomplikowane i pracochłonne. Można by wtedy użyć jakieś technologii bardziej do czatu przystosowanej, takiej jak WebSockets, a nie AJAXem lecieć. Poza tym taki czat mógłby być podpięty w różnych miejscach, jeżeli zaszłaby taka potrzeba, a plugin do Discourse będzie działać tylko z Discourse.


#5

Okej. Jeżeli chodzi o funkcjonalności, to kanały są dosyć istotne. Jak jest dużo użytkowników i wszyscy piszą na jednym kanale to robi się bałagan, więc myślę, że to jest funkcjonalność numer jeden, oczywiści poza samą wymianą wiadomości.

Wydaje mi się, że ważne jest też udostępnianie multimediów, czyli np. wrzucanie jakiegoś obrazka, który byłby od razu widoczny w oknie czatu. Coś à la czat na skype Skype. No i jakieś krótkie kawałki kodu, ale to by Markdown załatwił.

Chyba tyle z najważniejszych rzeczy. Nie ma potrzeby wydziwiać, to powinno być coś prostego.


#6

Babble plugin jest w stanie mocno developerskim, ale może to dobry pomysł, żeby zacząć tam dorzucać te funkcjonalności. Dzięki temu, że jest to ściśle powiązane z DO, może znajdą się inni, którzy będą to utrzymywać. Nie ma co ukrywać, że forum będzie jednym z głównych źródeł aktywności tego czatu.

Ja do tej listy:

  • kanały
  • markdown
  • multimedia

Dorzuciłbym jeszcze:

  • widget do użycia poza forum
  • różne tryby wyświetlania: compact, full screen, sidebar, floating
  • prywatne rozmowy/kanały
  • wyszukiwanie
  • moderacja
  • uprawnienia

Wystarczy użyć odpowiednich klocków z API DO.
Autor Babble ma swoją listę TODO, ale to są ciągle rzeczy mocno developerskie(np. pokrycie testami). Może to jest idealny moment, żeby wkupić się w jego łaski i przeforsować coś z naszej listy życzeń.
Zachęcam do postawienia devowej instancji DO, instaluje się samo (modulo nieprzewidziane problemy), a jak już jest, to rozpoczęcie developmentu zajmuje kilkadziesiąt sekund.

ps. Mam mocne postanowienie, żeby ta inkarnacja Warsztatu polegała na użyciu gotowych rozwiązań lub bardzo dużych klocków :blush:


#7

Rozszerzenie listy jak najbardziej dobre.

Chyba masz rację, że rozwijanie tego plugin’a może być dobrym pomysłem. Teraz tylko pytanie, czy robić PR do tego projektu, czy może zrobić forka i jego rozwijać? Z PR może być taki problem, że autor może się ociągać z mergami albo trzeba będzie go dodatkowo przekonywać. Ale trzeba spróbować.

PS Postanowienie jak najbardziej słuszne. :smile:


#8

Fork i zacząć od drobnych rzeczy, a następnie PR, aby autor nie miał wątpliwości.
Chcę go zagadać na tym czacie w sprawie takich rzeczy jak kanały, bo to jest jedna z trudniejszych rzeczy do zrobienia i pewnie trzeba z nim ściśle współpracować albo nawet mu zostawić(i jedynie przekonać do tego featuresa).

Ja dziś poświęcę na to godzinę, choć wątpię, aby to skończyło się PRem już dzisiaj. W samym UIu jest mnóstwo rzeczy do zrobienia, nasz stary czat na Gamedev.pl bije go na głowę :wink:


#9

Pierwszy PR: https://github.com/gdpelican/babble/pull/12

To jest ciężkie :confused:, choć oczywiście biorę poprawkę na brak znajomości EmberJS i RoR

Zadałem autorowi pytanie o wersję offline: https://github.com/gdpelican/babble/issues/13


#10

wg mnie nie ma sensu pisać tego chatu od nowa. Zawsze można zrobić fork i na nim pracować (jak nie będą chcieli naszych zmian) i co jakiś czas synchronizować repa ze sobą.

Co do samej pomocy przy pisaniu tego pluginu, przyjrzę się temu wynalazkowi :smile:


#11

Problem w tym, że to jest paskudny Ruby… :smile:


#12


#13

Dwie kolejne zmiany:

Wgryzam się :blush: