Misja Gynvaela 003

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]

Co się dzieje z Pierunem?

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:

  • edytor już istniejących postów,
  • paginacja,
  • pełna obsługa tagów (t.j. klikalne tagi).

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).

Links, lynx, w3m i dillo nie wspierają dostatecznie HTML5

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

dbcache.d umie już cache’ować listy

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…