gdzie.waw.pl - kolejna edycja
Właśnie tworzę kolejne oblicze serwisu gdzie.waw.pl. Kolejna generacja. Generacja numer 3.
Serwis ten ma mi (może innym też) służyć do gromadzenia infromacji o różnych miejscach w Warszawie. Między innymi po to aby w wątkach pl.regionalna.warszawa typu gdzie w Warszawie …. można było odesłać do jakiejś skarbnicy informacji. Wiem, można odesłać do googla, ale nie o to chodzi
Moje poprzednie podejścia (wiki, oraz mapa z google) miały jedną wadę. Mianowicie wymagały dostarczania informacji przez użytkowników. Mi się nie chciało wprowadzać danych i podejrzewam, że innym też by się nie chciało. Zatem była to ślepa ścieżka ewolucji.
W tej wersji podszedłem do sprawy troche inaczej. Dane o miejscach będą dostarczane automagicznie z grupy dyskusyjnej, a dla użytkowników pozostanie ocenianie ich użyteczności. Obecnie do serwisu są dodawane wiadomości o temach, w których występują słowa “gdzie” lub “gww”. Do wiadomości przypisywane są słowa kluczowe (tagi). Użycie serwisu polega na surfowaniu po chmurach tagów. Na razie przyjąłem, że słowa te będą pobierane z tematu wiadomości. Heurystyka wydaje się być w miarę wystarczająca. Może później zrobię jakąś klasyfikację po treści.
W chwili obecnej wrzuciłem jakieś 300 wiadomości. Można po nich surfować. Nie można oceniać postów. Są błędy w danych (brak poprawnego parsowania tematów). Wersja to wczesna BETA, jak przystało na aplikacje web2.0 :-).
Pozostaje zrobić ocenianie postów, wlać jak najwięcej wiadomości z grupy. I ogłosić światu gotowość do użycia.
A teraz trochę szczegółów technicznych.
Projekt ten robię po pracy, zatem tworzenie go musi posiadać wartości poznawcze (hack value). W tym przypadku chciałem trochę poprogramować w Common Lispie i sprawdzić tezę o jego niepraktyczności w rzeczywistych zastosowaniach.
Frontend czyli to co widać przez przeglądarkę to kawałek PHP będący mordką do bazy danych. Dlaczego PHP? Bo hosting skryptów PHP jest tani i tyle. Docelowo chciałbym wszystko zrobić w Lispie, jak tylko znajdę hosting.
Backend, czyli to co dostarcza danych jest napisany w Lispie. Znalazłem stosowne bilblioteki które pomogły mi sprawnie zrobić parsowanie i wysyłanie do frontendu wiadomości. Wszystko poszło nadpodziw sprawnie. Teza o niepraktyczności została obalona.
Dane z backendu do frontendu przesyłane są przy pomocy protokołu bazującego na JSON-RPC. Wiem, można było skorzystać z SOAP, XML-RPC , ale w domu nie używam technologii XML. Ot taki kaprys :-).
Postaram się o kompatybilność z JSON-RPC, abym mógł później opublikować API. Dzięki temu serwis będzie wpierał rozreklamowaną technologię SOA
Oto lista tego czego użyłem: