Częstość piątku trzynastego.

Czy naprawdę piątek przypada trzynastego dnia miesiąca częściej, niż inne dni tygodnia, jak wynika z tego wpisu? Postanowiłem to sprawdzić, metodą najdoskonalszą, czyli brute force. Co prawda tylko dla lat 1970-2037 czyli w Unix Epoch (pełne lata).

Kod był praktycznie gotowy z czasów obliczeń, czy pracownicy zyskają, czy stracą na wolnym 6. stycznia. Ostatecznie wygląda on tak:

a wynik działania wygląda tak:

DOW - ilosc
1 - 116
2 - 118
3 - 115
4 - 117
5 - 117
6 - 116
7 - 117
Suma: 816

1 - Monday, ... , 7 - Sunday

Piątek oznaczony jest cyfrą 5, jak widać występuje on jako trzynasty dzień miesiąca 117 razy, podobnie jak czwartek i niedziela , więcej w badanym okresie jest wtorków trzynastego (118), a najmniej śród (113).

Pozostaje pytanie, dla jakich dokładnie lat prowadzona była analiza w oryginalnym wpisie. Na oko wygląda na jakieś 335 lat, pytanie które dokładnie. W każdym razie w badanym okresie nic nie wskazuje na większą częstotliwość występowania piątku w trzynasty dzień miesiąca.

Quagga, czyli czemu czasem warto zerwać z kompatybilnością wsteczną.

Tak się złożyło, że w użyciu jest sobie Quagga. Złożyło się też tak, że pobierane z niej są pewne dane przy pomocy polecenia vtysh. W postaci:

vtysh -c "show ip bgp neighbors  advertised-routes"

Następnie wynik polecenia jest parsowany skryptem. Generalnie chodzi o pobranie sieci w notacji CIDR. I wszystko byłoby fajnie, ale Quagga w ramach kompatybilności wstecznej (it’s not a bug, it’s a feature!) zwraca czasem samo IP. Niejednoznacznie, przez co z prostego w założeniu skryptu powinien zrobić się automat domyślający się, czy chodzi o /8, /16 czy /24.

Szukałem informacji czy można coś z tym zrobić na kanałach IRCowych, dostałem dane, że nie ma opcji, by zmienić takie zachowanie, tzn. aby Quagga zwracała jednoznacznie (np. uruchomienie z jakąś opcją). Za to było zainteresowanie ew. znalezionym rozwiązaniem. Nie znalazłem. Wygląda, że po prostu się nie da (tak, wiem, zawsze można pogrzebać w kodzie…).

Nie znalazłem też prostej koncepcji na określanie, o jaką długość prefiksu chodzi w danym przypadku. Akurat w przypadku, w którym używam średnio mi na tym zależy, ale elegancko byłoby móc jednoznacznie określić o jaki prefiks chodzi. Pomysły mile widziane. Przychodzi mi do głowy sprawdzanie, czy dla /8 i /16 nie ma nakładających się sieci z prefiksami określonymi wprost. Wtedy wiadomo, że chodzi o /24.

PS. Wiem, że jest BIRD. Jest rozważany, ale to trochę inny temat.

Polskie radio w konsoli.

Dziś na kanale padło pytanie jak odtwarzać w konsoli radio z http://moje.polskieradio.pl? Na początku sądziłem, że chodzi o Trójkę itp., wtedy format URLa działający zarówno w mplayer jak i w MPD to wspominany we wpisie o MPD:

mms://stream.polskieradio.pl/program3

Okazało się jednak, że chodzi o pozostałe strumienie. I tu nie jest już tak różowo i prosto. Co prawda podczas poszukiwań (w sumie na koniec) ktoś natknął się na skrypt, który umożliwia odtwarzanie tych strumieni w konsoli, ale wędka lepsza od ryby więc:

  • Każda strona zawiera odtwarzacz w JS.
  • W kodzie odtwarzacza jest link do strumienia.
  • Link do odtwarzacza jest stały.
  • Link do strumienia również jest stały.
  • Strumień da się odtwarzać w mplayerze.

Przykładowo:

Minimax ma URL:

 http://moje.polskieradio.pl/station/33/Minimax

Player JS powstaje przez dodanie /_js/player.js, czyi ma URL:

 http://moje.polskieradio.pl/station/33/Minimax/_js/player.js

Strumienie są nazywane wg schematu k.stream, czyli szukamy:

wget -q -O - http://moje.polskieradio.pl/station/33/Minimax/_js/player.js| egrep "file.*k.*stream"

co daje nam wynik  _obj2.addVariable(’file’, 'k34.stream’);

Cały link do strumienia to:

rtmp://stream85.polskieradio.pl/live/k34.stream

Oczywiście nie dam głowy, że stream85 będzie stała i niezmienna, ale to również widać w źródle playera. Jedyną nieoczywistą częścią było dodanie live – wyłuskane z działających stacji (IIRC z Trójki).

Niestety, taką wersję obsłuży mplayer, ale już nie MPD. Jakby ktoś znalazł rozwiązanie jak tworzyć URL zdatny do MPD – proszę o info. Wersja ze skryptu odpada.

Wam życzę dobrego odbioru, a sobie, żeby stacje radiowe przestały utrudniać ludziom życie i dawały przyjazne konsolowym odtwarzaczom linki. Nie zawsze chce się/można włączyć ciężką przeglądarkę, by posłuchać radia. Niezrównanym ideałem jest tu dla mnie Radio Baobab, które nie tylko daje przyjazny konsoli format, ale również w wolnym formacie ogg (obok innych formatów) i w takiej formie, że się ładnie scrobble’uje.

UPDATE: Mpd w wersji 0.16.2 radzi sobie z URLami typu rtmp:// co oczywiście cieszy.