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 Komputery i Internet

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 Komputery i Internet

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 Muzyka

Posted
Comments None

Odgrzebuję z dyskowego archiwum starą notkę – może przyszłym pokoleniom się przyda. Sprawdzone, u mnie działa.

Mamy sprzęt Samsunga, sztuk trzy, a konkretnie GT-S7275R (Galaxy ACE3), GT-P3100 (Galaxy Tab2 7.0) i GT-P5200 (Galaxy Tab3). Interesuje nas remote debugging, jak to opisano na stronie Chrome.

Do dzieła!

Skonfigurowałem wstępnie wszystkie urządzenia, czyli podłączyłem nasze konto Gmail i aktualizacje i aplikacje już do nas płyną szerokim strumieniem. Do sieci firmowej oczywiście najpierw przez Wi-Fi się podłączyłem, teraz pora na kolejne punkty programu.

Punkt pierwszy – Enable USB debugging – już wykonałem. By The Way – tablety, jak się zdaje, są prądożerne i przez pecetowe USB nie chcą ładować baterii. Co do punktu drugiego – Connect your device – ściągnąłem Samsung drivers oraz program APK Installer z odpowiednich stron.

APK Installer, jak sama nazwa wskazuje, potrafi zainstalować w podłączonym urządzeniu aplikację. Z pliku, bez użycia Sklepu Play. No i robi zrzuty ekranu! Sama radość, nie musimy kombinować ani ekraniku fotografować komórką, żeby coś komuś zaprezentować. Poza tym – żeby się nie bawić z Android SDK (znaleźć, ściągnąć tę kobyłę, zainstalować…), ściągnąłem takie oto cudo: UniversalADBHelper.

I oto już mamy ADB (istotny element SDK), które pozwala na więcej programistycznych sztuczek z telefonem/tabletem z systemem Android. Na przykład moją ulubioną aplikację Remote Keyboard (coś dla tych, którzy nie dają się przekonać, że obmacany ekranik ma cokolwiek wspólnego z klawiaturą) pozwala przekierować na USB, żeby nie trzeba było się łączyć z telefonem przez Wi-Fi (ale i takie łapanie prawą ręką za lewe ucho wypróbowałem).

Sterownik USB jakoś nie od razu zadziałał mi z Galaxy Tab 2 (urządzenia nie było widać pod Windows), czyli 2/3 sukcesu to było. Nie bawiłem się na Tab 2 w port forwarding – może tak się jeszcze uda dotrzeć do jego świadomości. Albo sterownik USB potrzebny jest inny. Na wszystkich urządzeniach możemy już uruchomić Chrome (zainstalowałem), a na PC musimy. Zalecany jest Chrome nawet nowszy niż oficjalny (cytuję: Remote debugging requires your version of desktop Chrome to be newer than the version of Chrome for Android on your device) – ja sobie wziąłem wersję bleeding edge ze strony Portable Apps – z niego wchodzimy na stronę chrome://inspect i jeśli nasze urządzenie widzi system operacyjny peceta, to i Chrome powinien takie urządzenie zobaczyć i pozwolić nim sterować.

To na razie tyle, jeszcze dodam, że okiełznanie Tab 2 wymagało trochę kombinowania – zanim urządzenia (o ile pamiętam) nawzajem zaakceptowały swoje certyfikaty, zdążyłem zamówić drugi kabelek (nietypowy – wtyczka wcale nie wygląda na micro USB), z którym był identyczny problem: tablet nie chciał z nikim gadać.

Author
Categories Komputery i Internet

Posted
Comments None

W ramach mojej, jak to kolega raczył określić, nerwicy natręctw, która objawia się regularnym nagrywaniem ulubionych audycji, zmajstrowałem już sobie dwa systemy do automatycznego nagrywania – zawsze jak nie jeden, to drugi zadziała. Czyli oprócz tego, że Radyjko (“kultowy” iRiver iFP-899) w domu nagrywa audycję z radia FM, w pracy mój komputer, wyposażony w tuner USB (takie maleństwo na układach RTL2832U i R820T2) i program DAB Player, nagrywa wszystko, co tylko się da, z radia cyfrowego. Prawie bez komplikacji, bo jak to z cyfrowo nadawanymi audycjami bywa, poziom sygnału zauważalnie się zmienia, gdy obok anteny ktoś łazi. Ale to już inny problem. Ech, stacje FM czasem są zaszumione, ale (zwykle) da się ich słuchać, stacje DAB+ mogą się po prostu nie dać odebrać. Podobnie jest ze stacjonarną telewizją cyfrową. Cena postępu? W każdym razie załóżmy, że poziom sygnału to nie problem.

Harmonogram w DAB Player ma dokładnie dwie pozycje. Zwykle po prostu po nagraniu zaprogramowanych audycji nastawiam sobie kolejną parę, ale… A gdybym chciał pojechać na wczasy? Jak tu zaprogramować nagranie dziesięciu audycji? No cóż, trzeba zaprząc jakieś narzędzia do zautomatyzowania czynności, które chcemy mieć zrobione. Oczywiście w użyciu będzie systemowy harmonogram zadań, tylko co do niego wpisać? Czym sobie pomóc? Wybór padł na program AutoIt.

Nawet ręcznie w DAB Player trudno jest coś wyklikać – te jego kontrolki się zachowują, delikatnie mówiąc, dziwnie – a co dopiero automatycznie. Już byłem prawie gotów mimo wszystko tak właśnie zrobić, czyli dla dziesięciu audycji wyklikać w kalendarzu pięć sekwencji czynności (wejście do funkcji nagrywania i ustawienie kolejnych par audycji), zarejestrować klikanie w programie Au3Record i te czynności w odpowiednich chwilach uruchomić z systemowego harmonogramu, ale wystąpił problem: gdy komputer jest zablokowany (a pod nieobecność użytkownika w pracy tak właśnie jest), AutoIt nie może przecież nic klikać. Po długich eksperymentach z automatycznym klikaniem w końcu wymyśliłem coś lepszego. Gdzie program zapisuje dane? W Rejestrze, oczywista. Co tam sobie zapisuje – ciężko powiedzieć, ale gałąź [HKEY_CURRENT_USER\ Software\ Andi_84\ DABPlayer\ ScheduledRecordings] poleceniem REG EXPORT (albo zwyczajnie, paroma kliknięciami w programie Regedit) można nagrać do pliku. No i, jak to piszą w instrukcjach od szamponów, czynność powtórzyć. Efektem było pięć planów nagrywania, czyli pięć plików REG z ustawieniami dla programu nagrywającego, i drugie pięć plików ze skryptami. Najważniejszy fragment w każdym z plików z tej drugiej grupy prezentuje się podobnie:

...
$myfile = "c:\Users\Me\Documents\schedule20160604.reg"
if ProcessExists("DAB_Player.exe") Then
     ProcessClose("DAB_Player.exe")
EndIf
Sleep(5000)
Run("reg import " & $myfile, "", @SW_HIDE)
Sleep(5000)
Run("d:\DigitalRadio\DAB_Player.exe", "", @SW_HIDE)
...

AutoIt o wyznaczonych porach zatrzyma DAB Player i po wgraniu do Rejestru (poleceniem REG IMPORT) nowych ustawień ponownie go uruchomi. Pozostaje tylko to ostatecznie zorganizować, czyli wrzucić do systemowego harmonogramu zadania uaktualnienia planu nagrań (między kolejnymi nagraniami, rzecz jasna), co załatwi nam polecenie SCHTASKS:

...
SCHTASKS /create /tn "ScheduledRecordings20160604" /tr "\"c:\Program Files (x86)\AutoIt3\AutoIt3_x64.exe\" c:\Users\Me\Documents\recplan20160604.au3" /sc ONCE /sd 2016/06/04 /st 00:17
SCHTASKS /create /tn "ScheduledRecordings20160607" /tr "\"c:\Program Files (x86)\AutoIt3\AutoIt3_x64.exe\" c:\Users\Me\Documents\recplan20160607.au3" /sc ONCE /sd 2016/06/07 /st 00:17
...

Teraz już wystarczy tylko nastawić dobrze antenę tunera, poprosić kogoś, żeby jednak doglądał komputera (programem LogonExpert próbowałem wymusić automatyczne logowanie, ale miło jest wiedzieć, że po instalacji aktualizacji system w ogóle “wstał” do końca i nas zalogował, bo jeszcze nie zawsze udaje mi się w takich przypadkach zapewnić, żeby automatyczne zalogowanie do mojego profilu w ogóle nastąpiło). I można jechać na wczasy. PS. Po powrocie okazało się, że wszystko nagrało się prawidłowo.

A teraz pora to odsłuchać…

Author
Categories Komputery i Internet

← Older Newer →