niedziela, 16 marca 2014

Wyniki losowania niespodzianki

Zgodnie z obietnicą dzisiaj nastąpi losowanie szczęśliwca lub szczęśliwczyni "rozdania" książki "Tak się nie robi" autorstwa Edyty Łysiak. :) Dla przypomnienia wróćmy do tamtego posta.

Łącznie komentarzy było 10 sztuk, z czego 9 biorących udział w konkursie - jeden był (tak mi się wydaję) autorki tej książki ewentualnie osoby nazywającej się identycznie, ciężko mi stwierdzić, chociaż wolę sobie wmawiać, że była to sama autorka. :) W kolejności chronologicznej numerki przypisane zostały tak:

1. Justyna
2. Karalajn
3. Kaś
4. Diana Bibliofilka
5. Sylwek (cwaniaki z Kaś, zwiększyli sobie szansę ^^)
6. recenzje ami.
7. oxfordka
8. Beti G.
9. Ola C.

Tradycyjnie do losowania większość bloggerów wykorzystuje albo aplikacje internetowe do tego służące, albo rzuca kostką, ewentualnie robi losy i losuje. Ja będę bardziej oryginalny. :)

Skorzystam z generatora liczb pseudolosowych, będącym wirtualnym losowaczem w systemach operacyjnych z rodziny Unix. :) Co prawda zarówno /dev/random jak i /dev/urandom są najczęściej wykorzystywane po prostu w kryptografii jednak odpowiednio skonstruowana komenda wyciągnie z nich wielki potencjał losowania nagród! Tak, blablabla.

Nie przedłużając zamieszczam poniżej filmik z losowania!


Pod numer siódmym kryje się oxfordka! Cóż, serdecznie gratuluję i czekam na dane do wysyłki, które proszę o wysłanie na e-mail zpiorem@gmail.com. :)

Tak na szybko wyjaśnię zasadę działania tego polecenia, żeby nie było. /dev/urandom to właśnie generator liczb pseudolosowych. polecenie head -c10 wypisuje pierwsze 10 bitów z danego pliku, dzięki czemu otrzymamy jako przestrzeń probabilistyczną 10 sztuk znaków. Dlaczego 10 a nie 9? Ponieważ cyfry liczone są od 0, nie od jedynki, przez co otrzymalibyśmy możliwe do wylosowania cyfry od zera do ośmiu. :)

md5sum sprawdza sumę md5, ponieważ akurat /dev/urandom wykorzystuje hashowanie.

tr -d określa w tym przypadku co mamy wywalić z wyniku. Bowiem wśród dziesięciu pierwszych bitów znajdują się i cyfry i litery, także w pierwszym przejściu wywalamy wszystkie litery [a-z] a w drugim cyfrę 0. Dzięki temu do losowania zostają nam jedynie cyfry od jedynki do dziewiątki. :) No a nasze cut -c1 wypisuje właśnie jeden wynik, "wylosowany". :)

Wszystko to można przeczytać w podręcznikach systemowych dowolnego systemu z rodziny unix, manuale wyczerpująco rozpisują się na temat zastosowania a także parametrów. Także jeśli ktoś nie jest przekonany odsyłam do podręczników systemowych. :)