Kolejne zmiany na http://parrot.dobremiasto.net:47890/. Nie pamiętam co ostatnio raportowałem, ale na pewno są już słitaśne url-e w działach z fotkami i artykułami.
Musiałem wymienić tomcata na serwerze, bo wstrzeliłem się tam chyba akurat w jakąś nieco felerną wersję i było trochę dziwnych problemów. Teraz powinno lepiej wszystko działać...
A. Jak łatwo było zauważyć, dodawanie komentarzy nie działało. Mam nadzieję, że teraz będą już działać.
OK, pomijając panel administracyjny (który jest niewielkim zmartwieniem, bo tylko ja go będę używał) pozostają do zrobienia 2 pilne rzeczy. Po pierwsze, semi-statyczne "luźne" strony jsp muszą jeszcze zostać jakoś zorganizowane (strony "o repo", "o autorze", "fpr"...) - prawdopodobnie wciągnę ich treść do bazy i będę serwował jako np. "/varia/fpr". A druga rzecz to rss-y :)) Będą rss-y do wpisów, rss-y do komentarzy, rss-y do komentarzy każdego wpisu z osobna, rss-y do kategorii wpisów... może z ikonkami "śledź przez comments/cocomments"... no, full service ;)
A potem cały spaß (ew. fun) - bugfiksy, nowe zabawki, strona wizualno-layoutowa, zbieranie feedbacku Czytelników i wprowadzanie go w życie...
Skróciłem URL do http://parrot.dobremiasto.net:47890/, wywaliłem prawe menu, w changeblogu zrobiłem te "słitaśne linki w stylu web2.0". Raaany :( Teraz to mi się wydaje trywialne, ale byłem zupełnie nieprzygotowany na problemy jakie to sprawia. Myślałem, że "*" w definicji url-mappingów (wiążących servlety z url-ami) to wildcard... a nieprawda. W związku z czym jako wildcardy działają bodajże tylko trzy konkretne sposoby użycia "*", pozostałe są dopasowywane jako exact match. A skoro nie ma nawet normalnego globbingu, to i o regexpach można zapomnieć... No ale jakoś się udało, tyle że musiałem wypchnąć changeblog (tzn. archiwum i funkcje powiązane) do "/blog/*", bo inaczej... lepiej nie mówić. No nic, mam "/tags/*", mam "/blog/*" (tak z grubsza...), brakuje jeszcze "/articles/*" i "/photos/*". Teraz już wiem jak to robić, ale ile razy mi się dzisiaj udało tomcata wpędzić w rekurencyjną pułapkę, to tylko ja wiem... :)
A teraz ustosunkuję się do sugestii i uwag które jak na razie dostaję:
- Prawe menu wywalone, więc jest więcej miejsca. Prawie da się oglądać w 800x600...
- Długaśne archiwum w menu wyleciało, bo teraz jest dostępne w poszczególnych elementach hierarchii "/blog/YYYY/MM/DD/". Przy czym /blog/ i /blog/YYYY/ pokazują to samo, bo nie chciałem w /blog/YYYY/ pokazywać wpisów z całego roku, za długie strony wychodzą. W menu pewnie wstawię jeden link do "/blog/" jako Archiwum, czy jakoś w ten deseń.
- W kategoriach wpisy są jako same nagłówki, bez podglądu treści. Inaczej jest IMO zbyt wiele treści na stronie pokazywane za jednym zamachem. Dopóki nie dorobię jakiegoś mechanizmu paginacji treści to tak zostanie raczej....
- Linki do walidatora są do mojego użytku, jak się wezmę za layout to będę musiał sprawdzać czy wszystkie tagi są pozamykane itp. ot, funkcja "debug" ;) Wylecą jak przestaną być potrzebne.
- Opinie czytelników nie są eksponowane... tzn. obecnie może tak to wygląda, bo są na szczycie. Ale to wpis jak każdy inny - zlikwidowałem dział z opiniami i zrobiłem z niego zwykły wpis. A jest na samej górze, bo ma najnowszą datę stworzenia. Jak go cofnę w czasie o parę lat, to zniknie z pierwszej strony i będzie tylko w Przypiętych.
- Kolory i wygląd to na razie sprawa, na którą przymykamy oko ;) Wszyscy :) A tak serio, to nie biorę się za porządne grzebanie w CSS dopóki nie będę miał jako-tako zdefiniowanego html-a.
Repo Update. Wrzuciłem pierwsze zarysy nowego Repo w sieć. O, proszę: http://parrot.dobremiasto.net:47890/Blog/. Można macać :)
To nie jest gotowy produkt, wygląd się może jeszcze bardzo diametralnie zmienić, funkcjonalność pewnie też, etc. etc. Część linków nie działa, grafika nie jest prawidłowo linkowana, nie ma rss, layout zżera chyba za dużo poziomej przestrzeni. Chciałem za to sprawdzić czy uda mi się przerzucić aplikację na coś innego niż mój domowy komputer, czy baza danych się da przenieść i czy będzie działać. Nie działała. Ja miałem mysql5, na serwerze było mysql4 (i to chyba 4.0, a nie 4.1), były problemy z typami pól w tabelach (ale to się dało rozwiązać), były też problemy z antypatią zastanego mysql4 do utf-8 (mógłbym to obchodzić w kodzie Repo, ale co to za baza która nie zwraca danych w prawidłowej postaci?). Więc ostatecznie podciągnąłem mysql4 do wersji 5. Parę baz się przy tym rozjechało, bo mysql coś niespecjalnie sobie radzi z większymi apgrejdami, więc musiałem zrobić downgrade do 4.1, uporządkować je, zrobić upgrade do 5.0, przekonwertować na nowy format... Wrrr. Jak Repo okrzepnie, to obejrzę postgresa, bo mysql mam coraz bardziej dość.
Koniec końców chyba działa :) Teraz w pierwszej kolejności: popoprawiać linki występujące na stronach, dodać rss, przerobić schemat url-i na bardziej "web2.0"... ;) Mam nadzieję, że "error page" nie będzie się tam teraz pojawiało. Zbyt często.
Pod tym artykułem podpięte są opinie Czytelników Repo. Skargi, wnioski, zażalenia, wazelina... Jeśli masz coś sensownego do powiedzenia, to podziel się tym z wszystkimi. Ku chwale Repo!
Wybraliśmy się z Aniołkiem na film "Angel-A" (opis na IMDb). O filmie nie wiedzieliśmy zbyt wiele - oprócz tego że ma w nim być anielica, ma to być kino francuskie, ostatni film Bessona, i ogólnie ma mieć bardzo pozytywny wydźwięk. Mi zapadł w pamięć dodatkowo ten plakat który wypatrzyłem kiedyś pod jakimś zielonogórskim kinem.
Znalezienie seansu było trochę kłopotliwe - wygląda na to, że film nie cieszy się zbyt wielkim powodzeniem i szybko schodzi z ekranów. Mieliśmy komfort oglądania w prawie pustej sali (10 osób, nas wliczając :)
Fabuły zdradzał nie będę - choć nie jest specjalnie złożona ani zaskakująca. Na pewno nie jest to kino akcji. Prawie w ogóle nie ma też efektów specjalnych (pomijając samą końcówkę). Humor jest na poziomie który określiłbym mianem "realistycznego" (tzn. real-life, naturalny). Nie ma też golizny ani "momentów". Jest za to sporo dialogów - akcja posuwa się do przodu głównie dzięki nim. Chwilami bardzo ciekawe prowadzenie kamery, ładne zdjęcia, w pierwszym kwadransie filmu zorientowałem się, że całość jest black&white (dobrze podkreślało nastrój filmu).
Film mi się podobał. Jest kilka momentów które zapadają w pamięć, jak np. scena przed lustrem - przy której naprawdę z ciekawością (i przyjemnością) śledziłem dialogi. Angel-A to jedna z tych produkcji, o których mówię po obejrzeniu "to był ładny film". Ciepła, trochę naiwna historia z happy endem. Parę razy miałem mokre oczy, co przemawia na korzyść filmu. Mojemu prywatnemu Aniołkowi też przypadł do gustu, więc nie jestem odosobniony w tym przekonaniu :)
Polecam, warto obejrzeć (o ile znajdziesz kino w którym to jeszcze grają... bo w Ye Olde Torrent Shoppe się ten film raczej nie pojawi na półkach, zbyt niszowy).
Prace na froncie Repo2.0 trwają. Nie idzie zbyt szybko, bo więcej czasu chyba spędzam na projektowaniu i zastanawianiu się jaka architektura będzie najkorzystniejsza i najbardziej "przyszłościowa" niż na właściwym kodowaniu. Ale chyba zrobiłem w końcu dodawanie komentarzy, łącznie z prostym antyspamem. Piszę "chyba", bo wydaje mi się, że wszystko działa należycie - ale wiadomo jak to jest, na pewno zaczną wyłazić jakieś przeoczenia, sytuacje których nie przewidziałem itp. Trochę czasu mi zabrało miotanie się w światku servletów i JSP, ale koniec końców chyba wszystko działa tak jak bym chciał. Nie ma co oczekiwać cudów bez sięgania po JS (którego nie mam zamiaru dotykać), ale powinno być OK. Grunt żeby przeładowanie strony nie powodowało wrzucania drugi raz tego samego komentarza - ale to chyba udało mi się zrobić. Mam nadzieję, że będzie się sprawdzało w praktyce :)
Co teraz... no cóż, mam ładnych parę rzeczy do wyboru ;) Artykuły powinny mieć zdolność do "przypinania" ich, ale nie tak jak to jest robione np. na joggerze. Przypięte by wędrowały (jako same tytuły) do specjalnej kolumny po prawej stronie ekranu. Taka kolumna z "zakładkami", o. Wtedy mógłbym wywalić cały dział "Czytelnicy", zamiast niego zrobić jeden wpis na blogu i przenieść do niego komentarze, a następnie przypiąć ten wpis żeby był łatwo dostępny. To akurat by była dłubanina praktycznie czysto xhtml-owa, bo z punktu widzenia silnika to drobna modyfikacja generatora layoutu i dowalenie kolejnej kolumny w bazie komentarzy. Więc pewnie odłożę to na później.
RSS bym mógł już teraz zrobić, a przynajmniej szkielet przygotować. Javowych bibliotek generujących i parsujących RSS-y jest od groma, kwestia wybrania sobie jakiejś. Może RSSLibJ? Wygląda na generator, a nie parserogenerator, więc API i dokumentacja powinny być bardziej zwarte. (...)
Czytaj dalej...
Progress update.
Dalej dłubię przy Repo 2.0 ;) Dzisiaj skończyłem dział z Artykułami. Wczoraj koszmarnie dużo czasu mi zeszło na wyciąganie ze statycznych stron HTML danych z lekkim markupem, takich które bym mógł potem wepchnąć do bazy danych. Sprawę dodatkowo skomplikował fakt, że większa (objętościowo) część tekstów była pisana w jakiejś antycznej konwencji, używała też całkiem innego szablonu CSS niż obecne Repo. Tak że sporo czasu zajęło mi dociąganie tekstów do obecnego standardu Repo. Masa vimowania, pisania regexpów i makr ad-hoc. No ale zrobiłem. Teraz będę mógł wywalić w końcu ten zalegający, stary arkusz styli i mieć na całym Repo jednolity look. Artykuły siedzą sobie grzecznie w bazie, spisy treści i nawigacja generuje się automagicznie, ogólnie jestem zadowolony.
Ale to wszystko bebechy, rzeczy które tkwią pod maską i cieszą pewnie tylko mnie :) Więc zrobię inaczej, "pokażę" to co zrobiłem do tej pory. Dzisiaj zainstalowałem sobie z ciekawości pewne rozszerzenie do FF, do chwytania screenshotów całych stron. No i pokazę rezultaty jego działania (na przykładzie nowego silnika Repo, a co! :)
Na pierwszy ogień - strona główna. Trochę zmieniłem politykę pokazywania wpisów - zawsze widać 5 ostatnich, z tym że teraz, tak jak i w innych systemach blogowych, nie będzie zbyt dużo tekstu na głównej (przycisk "Czytaj dalej...").
Drugi zrzut - widok pojedynczego wpisu, z komentarzami. Na razie niczego tu nie ulepszyłem, ot, udowodniłem sobie, że baza danych działa.
Dawny Moskwicz zostanie przechrzczony na Galerię. Jak widać spis "galeryjek" wygląda trochę inaczej. Nie zmieniły się za to specjalnie ani widok miniaturek, ani pojedynczych fotek. (...)
Czytaj dalej...