Pod koniec sierpnia ze skrzynki pocztowej wyjąłem taką pocztówkę:
Jej nadawcą, jeśli zawierzyć podpisowi, był foxtrot_charlie
The next gen of old-school blogging
Pod koniec sierpnia ze skrzynki pocztowej wyjąłem taką pocztówkę:
Jej nadawcą, jeśli zawierzyć podpisowi, był foxtrot_charlie
Wczoraj ze skrzynki pocztowej wyjąłem taką pocztówkę:
Z minimalną zwłoką niezwłocznie przystąpiłem do jej odcyfrowywania.
Wybaczcie aliterację, nie mogłem się powstrzymać. Rozwój Pieruna nie poszedł zbytnio do przodu w ciągu ostatnich kilku tygodni. Poprawiłem:
MISJA 003 goo.gl/ZPQvV0 DIFFICULTY: ██░░░░░░░░ [2/10] Tym razem nie trzeba nic robić. Wystarczy uruchomić poniższy skrypt, chwilkę poczekać, a hasło zostanie wypisane. No, taką dłuższą chwilkę... #!/usr/bin/python def magic1(a, b): o = 0 i = 0 while i < a: o += 1 i += 1 i = 0 while i < b: o += 1 i += 1 return o def magic2(a, b): o = 0 i = 0 while i < b: o = magic1(o, a) i += 1 return o n1 = int("2867279575674690971609643216365" "4161626212087501848651843132337" "3373323997065608342") n2 = int("1240905467219837578349182398365" "3459812983123659128386518235966" "4109783723654812937") n = magic2(magic1(n1, n2), 1337) print hex(n)[2:-1].decode("hex").splitlines()[0]
Yay. Przykładowo, wpisy z tagiem D są dostępne pod adresem http://www.krzaq.cc:8080/pl/tag/d
Następnym krokiem jest edycja postów.
Commit był całkiem spory, ale nie bardzo mam na co zwrócić szczególną uwagę. Może na najdłuższą kwerendę w HQL jaką na razie napisałem:
Przez ostatnie kilka dni byłem na drugim końcu Polski (dosłownie, trasa Przemyśl-Szczecin to dramat), i nie bardzo miałem możliwości pracy nad rozwojem Pieruna (lub nawet codziennym postowaniem). Teraz wróciłem; najbliższe cele to:
Gdy zakończę powyższe będę mógł poważnie myśleć o przesiadce produkcyjnej na Pieruna (to by ewentualnie wymagało dodania jeszcze jakiegoś redirecta starych linków na nowe).
Można dodawać komentarze, z podglądem na żywo. Zanim zostaną pokazane muszą przejść moderację (patrz tu i tu). Standardowo zapraszam do testów pod adresem krzaq.cc:8080.
Tak na dobrą sprawę można to już uznać za kompletny MVP.
Byłem szczęśliwy gdy szybkie google’owanie pokazało mi atrybutu formaction dla html-owych form. Niestety, podczas dzisiejszych testów zgodności (ręcznych) z linksem okazało się, że ten atrybut jest przez niego kompletnie ignorowany. Tak samo zachowują się pozostałe konsolowe przeglądarki (lynx, w3m) oraz prosta przeglądarka GUI: Dillo.
Wobec tego następujący kod będzie musiał zostać zmodyfikowany, wraz z metodą obsługującą POST w danej ścieżce:
button(type="submit", formaction='/preview_comment') preview! button(type="submit", formaction='/send_comment') send |
Dzięki temu wszystkie wyszukania (po tagach, językach, autorach, etc) będą bardzo szybkie. Sama implementacja widoczna jest tutaj. Niestety, nie obyło się bez drobnej duplikacji kodu (“done is better than perfect”), którą trzeba będzie usunąć. Na szczęście nie będzie z tym wiele roboty.
Na maszynie testowej czas generowania listy spadł z 6ms do standardowych ~200µs.
Przy okazji miałem okazję pobawić się z variadic templatkami w D…
Jestem w trakcie dodawania możliwości komentowania. Baza już gotowa, muszę jeszcze dorobić obsługę dodawania, moderowania i wyświetlania komentarzy. Ale już teraz działa podgląd na żywo tego jak komentarz będzie wyglądał. Wystarczyło podpiąć REST-owe API do prostego skryptu w js.
Efekt jest całkiem zadowalający1: