b4rtaz.blog

Subskrybuj kanał RSS

Projekt: Trackbuzz

Komentarze: 7

Zacznę może od drobnej uwagi, nie przywiązuje do niniejszego projektu zbyt dużej wagi - jest to dla mnie coś na kształt testu w laboratorium. Pomysł na Trackbuzza zrodził się parę miesięcy temu podczas rozmowy z Dawidem - moim współpracownikiem w serwisie RLY.pl. Rozmowa dotyczyła różnych zastosowań widgetów na stronę od Facebooka czy Twittera (dziś do tej listy powinienem dodać jeszcze G+).

Pół efektem tych rozmów była własna implementacja sharera od Facebooka w serwisie RLY.pl (w liście wpisów przy każdym tytule znajduje się ładniutka ikonka co i ile tam na Facebooku). Tydzień temu postanowiłem rozpocząć pracę nad całą ideą rozwinięcia socjalnych liczników i tak po całym tygodniu plus jednym dniu przedstawiam Trackbuzza.

Bot

Założenie jest bardzo proste, jakąś metodą trzeba pozyskiwać linki i je analizować: przez jakiś czas odpytując Facebooka czy Twittera jak wygląda ich popularność w tych serwisach. W efekcie zbierzemy listę najciekawszych i najpopularniejszych treści w Sieci w danym czasie. Nie będę ukrywał, że poszedłem po linii najmniejszego oporu i jako źródło linków wybrałem kanały RSS - co później okazało się, że nie było to takim złym pomysłem. Początkowo "bot szperający" powstał w języku C# ale ze względu na brak mono na moim serwerze musiałem przepisać go do Javy.

Problemów było bez liku. Wiele serwisów które chciałem śledzić albo posiadają kanał RSS z wzbogacanymi linkami do treści typu ?utm_source=rss... (co wystarczy usunąć) albo korzystają z zewnętrznych rozwiązań do zliczania ruchu z kanałów RSS typu feedburner.com czy feedsportal.com (o ile feedburner udostępnia nie do końca zgodnie ze standardem RSS/ATOM informację o oryginalnym linku, to feedsportal robi to... różnie (chyba zależy od konfiguracji feedu)).

Każdy link do treści musi wyglądać identycznie tak samo jak link który jest linkowany w widgecie na stronie. Dla przykładu, nie jest możliwe drogą RSS pozyskać oryginalny (czyli Facebookowy) link do treści np. w serwisie demotywatory.pl. W kanale znajdziemy link typu demotywatory.pl/3366149 a serwis udostępnia link Facebookowi demotywatory.pl/3366149/bo-najwazniejsze.... Bez bardziej skomplikowanego bota który czytał by HTML na razie Demotywatory nie zagoszczą na Trackbuzzie.

Front-end

Jeżeli chodzi o front-end największym problemem było sortowanie danych. W pierwszym dniu gdy wykonałem pierwsze zapytanie wg. stanu licznika odrobinę się zmartwiłem, serwis kwejk.pl posiadał udostępnień/polubień tak dużo, że praktycznie większość zwróconych rekordów pochodziło z serwisu kwejk. Wtedy wpadłem na pomysł, że należy dorobić kategorię kanałów i wprowadzić tzw. siterank (czyli stałą dla każdego kanału przez którą wartość socjalnego licznika jest przemnażana, zawyżając lub zaniżając licznik).

Efekt był całkiem zadowalający. A kategorie chyba rozwiązały problem doboru treści do użytkownika. Po prostu odznaczamy czego nie chcemy i tyle.

Aktualnie siterank jest dobierany na zasadzie "spróbujmy tak", więc wszystko jest jeszcze do wyregulowania. Ogólnie myślę aby odrobinę zmienić algorytm filtrujący dane. Tymczasem daje w ręce Wam prawie gotowy produkt i jestem ogromnie zaciekawiony waszą reakcją.

Dodam jeszcze, że czas na stronie bez względu na wszystko jest podawany w strefie UTC. Na razie problem lokalizacji sobie odpuściłem.

Komentarze

  1. Anonim, #

    Tylko do czego ten Trackbuzz służy?

  2. b4rtaz, #

    Najkrócej mówiąc to taki Wykop/Digg tyle, że budowany na bazie udostępnień/polubień na FB/Twitterze.

  3. LTE, #

    Będzie open-source?

  4. b4rtaz, #

    Wątpię, że kiedykolwiek udostępnię kod źródłowy. Bazuje na nim wiele moich serwisów.

  5. nalzok, #

    Grammar nazi: "najmniejszej linii oporu" -> "linii najmniejszego oporu".

  6. Zen Vantalye, #

    W kwestii demotywatorów to może utworzyć by dla nich regułę specjalną i zamiast przedłużać adres to go skracać - wtedy nie trzeba parsować HTML/

  7. b4rtaz, #

    @nalzok: fix it!
    @Zen Vantalye: nie wiem czy dobrze zrozumiałem, Demotywatory udostępniają poprzez kanał RSS nam link bez zakodowanego tytułu. Link z tytułem właśnie jest serwowany Facebookowi. Próbowałem utworzyć jakieś wewnątrz bota formuły typu %nicetitle% ale są one zbyt mało ogólne (i weź jeszcze zgaduj jaki to algorytm zastosowali Panowie od Demotów).

Dodaj komentarz