Przyszedł czas, by napisać coś więcej o projekcie, który zamierzam realizować. Jest to system do live bloggingu, a więc zasadniczo prowadzenia transmisji tekstowych na żywo z różnych wydarzeń, gdzie nie ma streamu video albo tego typu przekaz ma nad takim streamem pewną przewagę. Przykładowo może to być specyfika komentarzy danego autora. Przykład? Każdy (prawie) może obejrzeć mecz piłki nożnej, ale już oglądanie takiego meczu, czytając komentarze Z Czuba stwarza zupełnie nową jakość odbioru.

Przykłady oczywiście można mnożyć. Komentarze na bieżąco do najnowszej konferencji Apple. Mecze niszowego sportu (ja akurat gram w curling – tam nawet na meczach rangi mistrzostw Polski nie uświadczy się innych niż tekstowe transmisji). Zresztą... Jakiś czas temu dzieliłem się na żywo ze znajomymi traumatycznymi wrażeniami z czytania pewnego magazynu.

Zwykle do takich kwestii używamy Facebooka i komentarzy do posta. Jest to oczywiście pod pewnymi względami wygodne – można bez problemu wrzucać zdjęcia, tekst, filmy... Niestety Facebook ma za uszami równie wiele, na przykład sortowanie komentarzy w losowej kolejności, ukrywanie niektórych z nich (!), ogólną niewygodę w dostępie do starszych materiałów, w końcu też śledzenie nowości1.

Projekt Erreka2 stawia sobie, rzecz jasna, za cel rozwiązanie tych problemów. A więc stworzenie platformy, z której korzystanie byłoby wygodne zarówno dla odbiorców biernych (tylko czytających), czynnych (chcących wchodzić w interakcję z autorem) oraz samego autora. Oczywiście musi on również wspierać wielu autorów na transmisję i wszelkie inne funkcje, zwiększające identyfikację tekstu z autorem, co jest wbrew pozorom dość ważne.

Technologie

Dobrze, dość już o teorii. Pomówmy o technicznych detalach.

Do wykonania projektu wybrałem język Elixir oraz framework Phoenix. Nie są to decyzje całkiem losowe. Elixir/Phoenix od dłuższego czasu budują swoją pozycję, jako stworzonych do komunikacji w czasie rzeczywistym. Sam Phoenix udostępnia wbudowane narzędzia do live-update'ów i web socketów. Wybór jest więc dość naturalny.

Mój background w tych technologiach nie jest jakoś bardzo bogaty. Wykonałem jedną czy dwie testowe aplikacje w Phoeniksie, ale nigdy nie ujrzały one światła dziennego. Jeśli chodzi o Elixira to tutaj wypuściłem jeden projekt. Mam do tego pewnie doświadczenie w programowaniu w Erlangu, wyniesione ze studiów. Wydaje się więc, że powinienem przeżyć.

Zaznaczam jednak, że powyższy wybór technologiczny dotyczy jedynie głównej części projektu – tej w której te dziesiątki tysięcy użytkowników (hehe) będą czytały relacje na żywo dziesiątek autorów. Cała reszta całkiem nieźle może sobie poradzić używając "klasycznych" technologii. Nie zdziwię się jeśli panel administracyjny zostanie stworzony koniec końców w Railsach, które oferują z automatu bardzo dużo przydatnych do tego funkcji. Projekt jednak będzie skupiał się na froncie i tym, jak zaprojektować to wszytko, by nie umarło przy pierwszych stu użytkownikach.

PS. Jeśli chcesz się dowiedzieć czegoś o Elixirze to polecam ten post innego uczestnika Daj Się Poznać. Mógłbym się tu silić na lepsze wprowadzenie, ale i tak by mi się nie udało.


  1. Wszystkie te zarzuty pochodzą z moich prywatnych doświadczeń z FB, głównie za pośrednictwem strony internetowej. Oczywiście, może się zdarzyć, że np. aplikacja na iPhone'a działa trochę lepiej, ale nadal nie sprawia to, by Facebook był dobrym medium do tego typu komunikacji. 

  2. Nazwa to po prostu baskijskie określenie na potok (metafora potoku informacji). Dlaczego baskijski? Po protu mam pewną słabość od języków ergatywnych