Posted
Comments None

Tę instancję Textpattern instalowałem z “gotowca” z Installatron – skoro można, to po co kombinować? Tylko że jeśli najnowszej wersji aplikacji Installatron dalej nie ma, to nic się nie zaktualizuje. No ale że wreszcie się doczekałem – backup, update, próbujemy.

Natychmiast nastąpiła rozsypka. Wszystkie polskie litery diabli wzięli. Niby kodowanie UTF8 jest, ale zamiast literek mamy krzaki. Nie będę się bawić w ręczne poprawianie wszystkich znaków we wszystkich artykułach, więc trzeba poszukać informacji o podobnych problemach. Dodanie w .htaccess linii

AddDefaultCharset utf-8 

nie pomogło, ale przy okazji przeszukiwania Sieci znalazłem coś ciekawego. Otóż podobno trzeba w aplikacji poprawić plik textpattern\lib\txplib_db.php i wyciąć z niego kilka linii. Tylko których? Chwila dłubania – bo przecież podane numery linii raczej nie będą identyczne w pliku z nowszej wersji, więc trzeba się zorientować, co trzeba wyciąć – i już wiem: do wycięcia jest sprawdzenie, czy nie używamy czasem pewnych wersji bazy danych, z którymi są problemy. Tylko że kod sprawdzający wersję MySQL (w wymaganiach oficjalnych Textpattern widzimy “MySQL 5.0.3+ (version 5.5+ recommended)”) narobi nam bigosu, kiedy Textpattern uruchomimy na MariaDB 10 (u mnie: 10.3.22-MariaDB-cll-lve). Potrzebna jest zatem łatka (diff) na plik txplib_db.php robiąca coś takiego:

256,266c256,257
<         // Be backwards compatible.
<         if ($this->charset && (version_compare($version, '5') >= 0 || preg_match('#^4\.[1-9]#', $version))) {
<             mysqli_query($this->link, "SET NAMES ".$this->charset);
<             $this->table_options['charset'] = $this->charset;
< 
<             if ($this->charset == 'utf8mb4') {
<                 $this->table_options['collate'] = "utf8mb4_unicode_ci";
<             } elseif ($this->charset == 'utf8') {
<                 $this->table_options['collate'] = "utf8_general_ci";
<             }
<         }
---
>         // Be backwards compatible. 
> 	// (removed DB feature detection that doesn't work with my MariaDB 10) 

Łatka pasuje do Textpattern 4.8.1 – robimy update aplikacji, po czym łatamy i wgrywamy poprawiony plik txplib_db.php (oraz pamiętamy, że diagnostyka Textpattern będzie marudzić na tę ręczną zmianę). A po tym: jeśli temat sitemap załatwiało nam rozszerzenie rah_sitemap w tak starej wersji jak 1.3.0, to należałoby zdecydować, czy teraz zrobić mapę witryny ręcznie, w ogóle bez rozszerzenia (a podobno już się tak da), czy po prostu uaktualnić rozszerzenie. Wolałem uaktualnić, ściągnąłem bieżącą wersję rah_sitemap i wgrałem, całość “gra i buczy”. Można już z powrotem skupić się na pisaniu!

Author
Categories ,

Posted
Comments None

Nie mieszkając w okolicy, która byłaby w zasięgu radia DAB+, inaczej musiałem zaplanować automatyczne – i w ogóle jakiekolwiek – nagrywanie. Może i strumień sieciowy nie jest stuprocentowo pewnym źródłem sygnału, ale dla większości komputerowców będzie to dobry wybór. Przynajmniej jeśli jesteśmy podłączeni do Sieci kablem, dostęp mamy przez okrągłą dobę, no i tak samo przez okrągłą dobę może pracować nagrywający audycje komputer. Dodatkowy warunek: wiatraczki tego komputera nie będą przepędzać lokatorów.

Do nagrywania warto zaprząc program VLC (a jeszcze lepiej – system Linux, a na nim konsolową wersję powyższego, czyli cvlc), jednak pod Windows możemy tu napotkać bardzo poważny problem. Bynajmniej nie ten, że komputer musi być włączony, ktoś musi być zalogowany, trzeba uważać, żeby okienka VLC nie zamknąć ani nie kliknąć… Jeśli z komputera (albo do niego) łączymy się gdzieś przez VPN, to nic nie nagramy z sieciowego radia. Nie da się i koniec. Właściwie musimy mieć osobną maszynę. Ale że, jak mówią Anglicy, two is nice…

W domu bezczynnie walało się parę części, więc kupiłem nettopa (Zotac Zbox ZBOX-BI322-E), pamięć i dysk SSD M.2 po prostu wyjąłem z szafy, dokupiłem obudowę 2,5” z adapterem dla dysku SATA M.2, poskładałem to, Xubuntu na tym dysku już wcześniej miałem, no i… System działa. Trzeba więc doinstalować VLC, po czym zająć się skryptami, które wszystko za nas będą robić.

W dużym skrócie (i w wersji “przede wszystkim niech działa”) wygląda to tak: w wybranym katalogu umieszczamy skrypt o nazwie np. “nagrywaj” o zawartości:

#!/bin/bash
nazwanagrania="/home/user/Dokumenty/rec/$2_"`date +%F`-`date +%H`-`date +%M`".mp3"
/usr/bin/cvlc http://adres.strumienia:port/ :sout=#duplicate{dst=file{dst=${nazwanagrania}}} :no-sout-rtp-sap :no-sout-standard-sap :ttl=1 :sout-keep --run-time=$1 vlc://quit 

a potem (ustawiwszy skryptowi prawo wykonywania) wołamy

crontab -e

i na zadaną godzinę (jeśli trzeba podpowiedzi, jak tu się godzinę zadania w harmonogramie ustawia, proponuję stronę crontab.guru) dodajemy linijkę z wywołaniem naszego skryptu o zadanej godzinie

3 6 * * 5 DISPLAY=127.0.0.1:0 /bin/bash -c "/home/user/Dokumenty/rec/nagrywaj 10800 mann"

co dla strumienia z radiową Trójką da nam nagrywanie piątkowej porannej audycji Wojciecha Manna.

A właściwie dałoby, bo audycji “Zapraszamy do Trójki” już nie prowadzi Mann…

Author
Categories ,

Posted
Comments None

Właśnie przyszła mi do głowy kolejna warta uwiecznienia myśl, więc siadam do pisania. Coś na ten temat już raz wymyślałem i mi umknęło – dobrze byłoby, żeby nie stało się tak ponownie.

Czasem wymyśla się takie sztuczki, na przykład kiedy trzeba sobie opracować jakąś prowizorkę. Tym razem będzie to skrypt w języku Ruby. Różnych już rzeczy potrzebowałem – na przykład pracując ze starą wersją Ruby, której nie mam możliwości uaktualnić, musiałem czasem wpisywać do pliku Gemfile pożądane wersje używanych gemów, o czym może jeszcze kiedyś napiszę. No ale tym razem było na odwrót. Programik mój przetwarza dane z pewnej strony www (dokładniej: robi z linków na tej stronie kanał RSS, bo twórcy strony jeszcze nie odkryli tej technologii), co nagle przestało działać, kiedy na portalu zainstalowano certyfikat SSL i uruchomiono przekierowanie na HTTPS.

Opis problemu łatwo znaleźć – wystarczy spytać Google o “Ruby open-uri redirect forbidden”. Gem open-uri jest poprawiony dopiero w Ruby 2.4, a ja mam 2.2. I co? I kiedy nie można wybiec w przyszłość, trzeba zdobyć łatę – gem open_uri_redirections (bo to funkcja w gemie open-uri miała problem). Wykonujemy zatem w konsoli polecenie

gem install open_uri_redirections

a w programie dopisujemy linię

require 'open_uri_redirections'

Teraz możemy już poprawić niedziałające (właśnie o HTTPS się “wywalały”) wywołania funkcji open(), czyli zamiast np.

doc = Nokogiri::HTML(open(url)) 

piszemy

doc = Nokogiri::HTML(open(url, :allow_redirections => :all))  

i próbujemy ponownie. I co? I kolejny błąd:

D:/MagicalMe/Ruby200/lib/ruby/2.2.0/net/http.rb:923:in `connect': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL::SSL::SSLError)

Co teraz? Należy dokończyć konfigurację, czyli pobrać potrzebne certyfikaty i pokazać je programom. Ściągamy sobie zatem plik cacert.pem (przysiągłbym, że już kiedyś ten plik ściągałem i do czegoś wykorzystywałem, co jednak nie zaowocowało notatką), a miejsce, gdzie go nagraliśmy, wstawiamy do zmiennej środowiskowej. Może lepiej nie prostym poleceniem

set SSL_CERT_FILE=c:\MagicalMe\Downloads\cacert.pem

wpisanym w konsoli, tylko w jakiś bardziej trwały sposób. Jeszcze tylko przejrzeć poprawiany skrypt, bo może gdzieś w nim są adresy HTTP, które warto od razu zmienić na HTTPS, no i… działa! A już myślałem, żeby wykombinować mały serwerek z Ruby 2.4 specjalnie dla mojego prowizorycznego skryptu…

Author
Categories

Posted
Comments None

Firmowy tablet Samsung GT-P3100 (Galaxy Tab2 7.0) pewnego dnia odmówił posługi. Normalnie po podłączeniu ładowarki pojawia się na chwilę charakterystyczna animacja na ekranie, potem ekran gaśnie i tablet się ładuje. Kiedy tym razem zaczął tę animację włączać i wyłączać, a nie ładował się przy tym wcale… Google twierdzi, że ten model ma tak często i że trzeba na chwilę odłączyć zasilanie płyty głównej od baterii. I że aby to zrobić, należy sobie rozpruć tablet. Perspektywą tej operacji nie byłem zachwycony. Nowe plecki? No ale ruszyłem głową i… Skoro tablet nie ma już energii, żeby po wciśnięciu wyłącznika “wstać”, a sam wyłącznik do zadziałania potrzebuje energii, to może potrzymać parę minut ten wyłącznik? Chwila prawdy… Potem znów ładowarka i… działa! Prawidłowo zaczął ładowanie, naładował się, działa. Wniosek? Nie rozładowywać nigdy do zera. I przy byle problemie nie szukać od razu otwieracza do konserw.

Author
Categories ,

Posted
Comments None

Poświęcony mojej płytotece kącik długi czas spędził w wirtualnej szufladzie. Słuchanie całych albumów to piękna rzecz, ale rzadko można teraz czemuś poświęcić tak wiele czasu w jednym kawałku. Ulubione audycje dostarczają tylu ciekawych rzeczy do słuchania, że samo odsłuchiwanie zaległości zajmuje mi prawie wszystkie chwile poświęcone muzyce. No ale przecież kiedyś trzeba się za ten miły obowiązek wziąć. Czas na to trzeba zorganizować, bo po prostu warto. Wychodzi na to, że do albumów w końcu będę musiał zacząć stosować podejście, które sprawdziło się przy słuchaniu nagrań – zakładki. Mam “rozpiskę” wszystkich audycji i wiem, na czym którą audycję skończyłem. I w ten to właśnie sposób posłucham wreszcie czegoś w całości, chociaż na raty. Inaczej się pewnie nie da.

Biorę więc na warsztat coś przyjemnie relaksującego. Dziś wystąpi one of the finest musicians of our time, a do tego bardzo słodka i dość niedzisiejsza muzyka, czyli Kenny G i jego płytka Breathless. Muzyk jest naprawdę fachowy (niektórzy nadawani w radiu “twórcy” powinni się trzymać z dala nie tylko od saksofonu, ale nawet od sampli saksofonu), muzyka tak słodka, że należałoby ją serwować z gorzką kawą, utwory (z użyciem małej, jak na obecne czasy, ilości perkusyjnych “przeszkadzajek”, bo to jeszcze wiek dwudziesty) są w większości instrumentalne, ale – jak powiedziałby redaktor Owczarek – “nagrania instrumentalne mają tę przewagę nad wokalnymi, że nie śpiewa tam wokalista”… No cóż, będziemy patrzeć na tytuł tylko w poszukiwaniu inspiracji dla wyobraźni. Słuchamy!

Utwór pierwszy – The joy of life – faktycznie rozbrzmiewa czystą radością. Forever in love – słyszy się w tym coś z czułości, coś z nieśpiesznego cieszenia się tym, co jest, tym, co się ma… Deszcz z In the rain padał chyba w ciepły dzień, gdy szło się pod wspólnym parasolem. Sentimental – dobrze to pasuje do przeżywania wszelkich sentymentów. By the time this night is over – Peabo Bryson tu wyśpiewuje uczucie właśnie rozkwitające, End of the night – czyżbym słyszał żal, że ta noc już się skończyła? Alone brzmi niewesoło i raczej nie chciałoby się tak pozostać samemu… Morning – musiał to być piękny poranek! Even if my heart would break – gorące uczucie, któremu przeszkody niestraszne, wyśpiewuje Aaron Neville. Dalej mamy skoczny G-Bop – czyżby Kenny chciał brać się za jazz? Zadumane Sister Rose dziwnie kojarzy mi się ze Stingiem i z Sister Moon. Prześliczne A Year Ago przekonuje, że musiał to być dobry rok, skoro sprawił tyle radości. Homeland – ach, nie ma jak w domu! Po tym utworze gra relaksujące Natural Ride – obojętnie, czy skojarzymy to sobie z czymś, co podąża swoją drogą i zwykłym biegiem rzeczy, czy może pomyślimy po prostu o jeździe na oklep na koniu. No i na koniec mamy The Wedding Song, jak dobrą wróżbę na przyszłość.

Zrelaksowany i w nastroju smooth jazzowym – życzę miłego słuchania!

Author
Categories

← Older Newer →