Porażka systemu wyborczego PKW

Jak powszechnie wiadomo, przy wyborach samorządowych zaliczyliśmy malowniczego w tym roku malowniczego faila. Nie, żeby było to trudne do przewidzenia, biorąc pod uwagę błędy w zabezpieczeniach widoczne już wcześniej. No, ale powiedzmy, że niezabezpieczenie maszyn developerskich może się zdarzyć najlepszym i nie musi rzutować na zachowanie produkcji.

Tak się składa, że w pewnym okresie mojego życia miałem regularne doświadczenia z komisjami. Pierwszy raz pracowałem w komisji dawno temu, gdy jeszcze każdy mógł się zgłaszać samodzielnie (a nie przez partię) i było losowanie wśród zgłoszonych. Miało to pewne wady, więc zmieniono sposób zgłaszania kandydatów do komisji – musiały robić to komitety wyborcze. I z tym sobie poradziłem, bo zawsze znalazł się ten czy inny komitet wyborczy, który nie wymagał bycia partyjnym aktywistą i po prostu zgłaszał studenta, który chciał sobie dorobić. Tu też mam pewne ciekawe doświadczenia i przemyślenia, ale to może przy innej okazji. Koniec końców, w młodym wieku miałem całą procedurę dobrze opanowaną, parokrotne doświadczenie, spory dystans do którejkolwiek partii politycznej… Jednym słowem, bezstronny wyborczy gun for hire.

Zwieńczeniem mojej kariery okołowyborczej było wystawienie mnie przez jeden z komitetów jako… męża zaufania. Tu akurat znajomi organizowali partii kampanię i szukali zaufanych ludzi znających się na rzeczy. Pamiętam, że już wtedy średnio się kwapiłem do pracy w komisjach ze względu na stawki. No ale jako mąż zaufania jakoś lepsze pieniądze dostałem (a pracy mniej), więc jakoś poszedłem.

Pamiętam, że były to chyba pierwsze „zinformatyzowane” wybory. Pamiętam, że samo liczenie poszło komisji, nawet sprawnie, natomiast pojawiły się „problemy z systemem”. IIRC rzecz działa się w szkole. Szkolny informatyk robił za obsługę informatyczną lokalu i rozłożył ręce przy wprowadzaniu. System „nie przyjmował” danych z karty (poprawnie wypełnionej). IIRC poszło m.in. o nieprzyjmowanie ilości kart nieważnych innej niż zero. Komisja wpadła na pomysł, że w sumie w takim razie najprościej będzie… poprawić na protokołach na zero, bo w sumie i tak nieważne. I byliby to chyba zrobili, gdybym nie uświadomił, że od razu mogą wpisać mój protest na protokole i najpewniej do rana nie wyjdą, bo centrala ich cofnie do poprawki.

Atmosfera na moment zgęstniała, ale niedługo później okazało się, że nie tylko my mamy problem (wcześniej jakoś nikt takiej informacji nie udzielił), nie działa więcej rzeczy i przyszło z centrali zarządzenie, że olać system informatyczny, przechodzimy na ręczne. Czyli, że robimy wszystko po staremu i wszystko mamy gotowe do zawiezienia. Tak czy inaczej, wtedy system zaliczył malowniczą porażkę. Swoją drogą przez tego typu akcje (robisz dobrze, siedzisz parę godzin dłużej) i brak przewidywalności czasu trwania pracy (bo w komisji jednak różni ludzie się trafiają) zniechęciłem się ostatecznie do siedzenia w komisjach.

Teraz mamy powtórkę. Znajomi z IT są bardzo rozbawieni słysząc o problemach z 3 tys. jednoczesnych połączeń. Nie dziwię się. Zaprojektowanie systemu, który przyjmie dane nie jest trudne. Dziwi mnie – i nie tylko mnie – co innego. Mianowicie, czemu co roku projektuje się i wykonuje system od zera, bez żadnego doświadczenia z lat ubiegłych? Jaki byłby problem z tym, żeby specyfikacja protokołu była prosta i jawna, część zarówno serwerowa, jak i kliencka rozwijana jako open source i używana ponownie przy każdych wyborach? Przecież format protokołu praktycznie się nie zmienia. I jest bardzo prosty. Spokojnie można studentom jako zadanie na zaliczenie semestru zadać opracowanie formatu przesyłu danych[1]. Dokumentacja systemu też na wolnej licencji, żeby łatwo można było odtworzyć – i w razie potrzeby poprawić – środowisko.

Żeby nie było, że tylko firma winna, IMHO sporą winę za sytuację ponosi PKW, która powinna być w stanie w dowolnym momencie przejść skutecznie na system ręczny. Informatyzacja wyborów to jedynie bonus, nie ich sedno. Ale u nas pokutuje wciąż – nie tylko przy wyborach – bożek systemu informatycznego, najwyższej wyroczni i zarazem wykładni. System nie pozwala i koniec, bo system to rzecz święta.

Na Niebezpieczniku jest dobry artykuł nt. wyborów, w którym jest więcej informacji nt. systemu oraz przyczyn porażki. Osobiście najbardziej przerażony jestem tym, co tam wyczytałem:

Nikt nie weryfikuje protokołów papierowych opracowanych przez GKW i wprowadzonych do kalkulatora a następnie zatwierdzonych przez TKW o ile nie pojawią się protesty wyborcze, bodajże po 30 dniach od upłynięcia czasu na zgłaszanie protestów protokoły oryginalne są utylizowane, na kolejnych szczeblach sprawdzana jest tylko suma kontrolna. (chodzi o skan kodu z protokołu papierowego i jego porównanie z sumą kontrolną danych dostarczonych elektronicznie — dop. red.)

Mam nadzieję, że suma kontrolna jest wyliczana w taki sposób, że weryfikuje jednocześnie dane nt. oddanych głosów. Tak czy inaczej spodziewałbym się, że w tak ważnym wydarzeniu nie będzie polegać się tylko na widzimisię wprowadzającego, tylko ktoś dane z papierowego protokołu wklepie dla pewności jeszcze raz. Bo prosta suma kontrolna, czy też suma kontrolna o znanym algorytmie wyliczania jak najbardziej zabezpieczy przed literówką, ale nie przed celową manipulacją (partii A dodać 50, partii B odjąć 10, partii C odjąć 40). A do komputera nie wprowadza komisja, tylko pojedynczy operator.

[1] Przynajmniej za czasów moich studiów można było, nie wiem jaki teraz jest poziom na uczelniach. Z systemem już bym nie polegał na studentach, tu się jednak trochę praktyki przydaje.

5 sposobów na efektywne korzystanie z emaila

Nie lubię wpisów o produktywności, ale z poczty elektronicznej korzysta wiele osób i przerażająca część robi to w sposób tragicznie nieefektywny. Przynajmniej moim zdaniem. Ponieważ email jest dla mnie od paru lat w pracy jednym z podstawowych sposobów komunikacji i narzędzi pracy, pozwolę sobie na opisanie paru prostych sposobów na efektywniejsze korzystanie z niego.

1. Korzystaj z IMAP

Jeśli zdarzyło się komuś stracić bezpowrotnie zawartość skrzynki z powodu utraty komputera czy padu jego dysku, korzystać z poczty elektronicznej w różnych miejscach czy na różnych komputerach i nie mieć dostępu do jakiegoś maila czy swojej odpowiedzi na jakiegoś maila bo został na innym komputerze to znaczy, że warto zacząć korzystać z IMAP[1].

Dodatkowa zaleta jest taka, że jeśli przesuniemy ręcznie maila do folderu (o tym zaraz), to będzie on w tym folderze wszędzie, a nie tylko na komputerze, na którym przesuwamy, ale wszędzie.

Wiem, że rada może wydać się dziwna, ale wiele osób, zwłaszcza tych, które zaczynały korzystać z poczty dawno temu, nadal korzysta z POP3. Szczególnie, że kiedyś IMAP nie był dostępny w darmowych usługach (przynajmniej większości z nich).

2. Foldery i filtry do sortowania poczty

Praktycznie każdy klient poczty umożliwia tworzenie reguł, na podstawie wielu kryteriów i wykonywanie na ich podstawie różnych czynności, takich jak usuwanie maili czy też przenoszenie ich do stosownego folderu. Zwykle ogranicza się to do kasowania spamu lub przenoszenia go do folderu spam, ale nic nie stoi na przeszkodzie, by sortować np. maile z przedszkola do folderu przedszkole, a maili z ciągiem znaków faktura czy vat do folderu faktury. Jeśli ktoś korzysta z list mailowych albo dostaje powiadomienia z automatów, to na pewno zna.

Oczywiście sortować można także ręcznie, po prostu przenosząc maile do odpowiednich folderów, posortowanych zagadnieniami. Zwykle jednak, szczególnie przy większej skali, wygodniej jest używać filtrów.

3. Sortowanie poczty na serwerze

Teraz zaprzeczę sam sobie, bo przed chwilą pisałem o filtrach w kliencie pocztowym. Rozwinięciem tego jest skorzystanie z filtrów na serwerze. Czyli takich definiowanych w panelu naszego ISP pocztowego. Mogą mieć mniejsze możliwości konfiguracji (m. in. dlatego warto mieć proste filtry, przy okazji łatwiej je zaprogramować i utrzymywać), ale sortowanie odbędzie się w momencie wejścia poczty na serwer, czyli wiadomości będą zawsze posortowane, a poza tym unikniemy problemu z synchronizacją filtrów. Kto ma dobre filtry w programie pocztowym, dużo poczty przychodzącej i musiał szukać ważnego maila przez webmail w nieposortowanych na pewno doceni. Rozwiązanie ma wadę – filtry dostępne na serwerach mogą być uboższe od tych wbudowanych w programy pocztowe, ale IMO warto się dostosować.

4. Wątkowanie

Warto korzystać z programu pocztowego, który umożliwia przełączenie się na widok z wątkami. O ile sam domyślnie sortuję pocztę chronologicznie, o tyle często przełączam się na widok z wątkowaniem, jeśli muszę znaleźć konkretnego maila w rozgałęzionym wątku. Niby cytowanie całości ma eliminować potrzebę cofania się do starszych wiadomości, ale zwyczajnie nie działa w przypadku rozgałęzień. Poza tym, w widoku z wątkami od razu widać kto, kiedy i komu odpowiadał, więc wygodniejsze i szybsze, niż grzebanie w cytatach.

5. Notatnik zawsze przy sobie

Jeśli już korzystamy z programu pocztowego i jest on zawsze otwarty, to można wykorzystać edytor maili jako… notatnik. Brak jakiegokolwiek szukania programu do zrobienia notatki, czekania na uruchomienie, problemów z wyborem miejsca, gdzie zapisać plik (wiadomo, że notatka trafi do folderu szkice/drafts; warto nadać tytuł odpowiadający treści). Formatowanie jak w edytorze mailowym jest zwykle wystarczające[2], chociaż osobiście uważam, że przy szybkich notatkach nie warto bawić się w jakiekolwiek formatowanie, co najwyżej można użyć punktowania. Co więcej, jeśli korzystamy z IMAP, to taka notatka jest niezależna od komputera, na którym ją piszemy – nie trzeba jej przesyłać, będzie od razu dostępna z różnych maszyn. Zresztą notatki i tak zwykle robię po to, żeby wysłać później maila.

PS. Kiedyś napisałem i leżało w szkicach. Może komuś się przyda.

[1] W zasadzie z IMAPS, czyli jego szyfrowanej wersji, ale po pierwsze to oczywiste, a po drugie wpis ma traktować o efektywniejszym korzystaniu z poczty email, a nie o bezpieczeństwie. Konsekwentnie odpuszczam ten temat w całym wpisie.

[2] Jeśli ktoś korzysta z HTML. Jeśli ktoś pisze – jak ja – w plain text, to temat formatowania zupełnie odpada, zresztą uważam, że formatować warto na końcu, jak mamy całą treść.

Piwik, czyli fajne darmowe statystyki na stronę

O statystykach dla stron Piwik usłyszałem dawno temu. Idea wolnego odpowiednika Google Analytics[1] bardzo mi się spodobała, ale do instalacji nie doszło. Powód prozaiczny – nie miałem maszyny 24/7 działającej na sensownym łączu i posiadającą sensowną moc obliczeniową. Sensowną, tj. taką, żeby instalacja MySQL nie wydawała mi się zabójstwem na maszyny. Niedawno o statystykach przypomniał mi wpis ryśka, a obecne na blogu statystyki stat4u są coraz bardziej niewystarczające, głównie ze względu na brak aktualizacji od dłuższego czasu (ostatnia zmiana kilkadziesiąt miesięcy temu). Szczególnie, że chciałem się pobawić w referral fun.

Postanowiłem zaryzykować i zainstalować Piwika na Dockstarze. Co prawda miałem wrażenie, że 128 MB RAM i dysk 2,5″ 5400 RPM, na dodatek w kieszeni USB to nie jest to, co MySQL lubi najbardziej, ale spróbować można. Instalacja Piwika na lighttpd jest prosta i nie ma czego tak naprawdę opisywać. Ku mojemu zdziwieniu MySQL zajął tylko ok. 10% pamięci, a statystyki się zbierały.

Niestety, kliknięcie czegokolwiek w dashboardzie było męczarnią – skrypty PHP na serwerze mieliył po procku (niby 1,2 GHz, ale ARM, poza tym jakieś drobiazgi do łapania spamerów na Blox tam działają) nieprzyzwoicie intensywnie i nieprzyzwoicie długo. Znaczy dziesiątki sekund. Ale to co zobaczyłem było bardzo obiecujące, więc wrzuciłem Piwika na tymczasowego VPSa, który zasadniczo się nudzi (hell yeah, spojrzałem i prawie drugi rok mija darmowego testu, ale to offtopic, więc spuśćmy zasłonę miłosierdzia).

Po prostu rewelacja. Piwik pokazuje wiele rzeczy, których w stat4u nie ma (o statystykach wbudowanych w Blox nie wspominam, bo trudno to nazwać statystyką). Skąd ktoś przyszedł, gdzie poszedł, ile czasu spędził na stronie, rozbicia na systemy operacyjne, wykorzystywane pluginy, aktywność, powracający użytkownicy. I do tego wszystko estetycznie podane. Niby nic kluczowego się nie dowiedziałem, ale zdecydowanie bardziej mi się to podoba. I mam nad wszystkim kontrolę. Próbka jest mała, ale już mogę stwierdzić, że stat4u ma parę błędów (pewnie skutek braku aktualizacji).

Z drobnych poprawek, które warto wykonać: mimo, że to nie high traffic site, warto doinstalować APC, jest szybciej. Być może spróbuję wrócić na Dockstara z doinstalowanym APC, ale może nic z tego nie wyjść – może PHP wisiał na zapytaniach do baz – mało czasu miałem, nie wnikałem. Poza tym, wolałbym to jednak mieć na czymś porządniejszym, niż ADSL.

W każdym razie, w ramach popularyzacji tego oprogramowania, jeśli ktoś chciałby zobaczyć jak Piwik wygląda na jego własnych realnych danych, a nie ma warunków/ochoty na stawianie go samodzielnie, to może podpiąć na swojej stronie na dłuższą chwilę[2] u mnie (free, no strings attached). Chętnych zapraszam do kontaktu mailowego. Warunki są trzy. Pierwszy: nie więcej niż powiedzmy 10k UU miesięcznie (nie apteka) ze względu na wydajność maszyny. Drugi: best effort, czyli nie gwarantuję działania systemu, mogą być przerwy, nie gwarantuję przywrócenia z backupu itp. Oczywiście można dawać znać jak coś nie będzie działać i postaram się poprawić (bo mam tam własne niekrytyczne zabawki), ale wiecie jak jest. Na ten moment uptime system to 4 m-ce. Trzeci: zastrzegam sobie prawo do absolutnie subiektywnego wyboru chętnych (zwł. znajomi (jeśli się pojawią – nie jest to warunek konieczny) mają pierwszeństwo, podobnie jak nietechniczni/nieadmini – zakładam, że techniczni jakby chcieli, to by sami sobie postawili), wyłączenia usługi w dowolnym momencie wybranym serwisom itp. Jasne, postaram się uprzedzić wcześniej. Jeśli są jakieś wątpliwości co do warunków/coś pominąłem – proszę o pytania w komentarzach.

[1] Google Analytics odpada. I tak za dużo wiedzą, więc staram się unikać produktów ze stajni Google.

[2] VPS będzie działał jeszcze jakiś miesiąc. Potem, jeśli wszystko pójdzie dobrze, planuję przeniesienie się (z gratami) na jakieś 3 m-ce na testowego dedyka, a potem… Albo będzie działać na Dockstarze, albo przedłużę dedyka, albo zawinę zabawki.