poniedziałek, 29 czerwca 2015

Trikatuka - aplikacja do migracji playlist Spotify

Ten post dotyczy starej wersji aplikacji. Nowa dostępna jest tu:
http://aknowakowski.blogspot.com/p/trikatuka-spotify-migration-tool.html


Przez ostatnie kilka dni pisałem proste narzędzie do migracji playlist w Spotify z jednego konta na drugie. Zrobiłem działającą wersję, nazwałem ją Trikatuka, wrzuciłem na githuba i postanowiłem się podzielić :)

Trikatuka - screenshot


Początkowo miał to być prosty skrypt który zrobiłby wszystko od początku do końca, ale z powodu ograniczeń API Spotify zwykłym konsolowym skryptem nie jest. Tzn może nie tyle z powodu ograniczeń co po prostu ze sposobu działania api. Ponieważ api spotify potrzebuje do autentykacji zwrotnego urla, to i tak musiałem postawić jakiś serwer, a jak już postawiłem to dorobiłem interfejs i ostatecznie wyszła z tego mini web aplikacja.

Aplikację napisałem w Pythonie, z którym nie mam zbyt wiele doświadczenia. Odczucia jak zwykle po pracy z Pythonem mam mieszane. Niby wszystko fajnie ale przez to, że nie do końca znam różne triki i właściwości, cały czas towarzyszy mi poczucie, że można lepiej. Ciągle nie wiem czy lubię Pythona. Mam wrażenie, że jest ekstra do szybkich małych skryptów, ale do większych rzeczy już tak przyjazny nie jest. Dobrze, że jest tak popularny, więc w razie problemów, szybko można znaleźć rozwiązanie.

Do obsługi requestów użyłem lekkiej biblioteki "web.py". Dość łatwa w obsłudze, wspiera template'y i ma różne przydatne funkcjonalności, ale niestety ma średnio czytelną dokumentację. Dla takiej małej aplikacji chyba nadaje się lepiej niż np. Django, którego co prawda nigdy nie używałem, ale takie mam przeczucie :P Świadomie nie użyłem Angulara (a mam z nim już trochę doświadczenia), żeby spróbować czegoś nowego. A w zasadzie starego, bo nie dołączyłem nawet jQuery, więc w kodzie jest czysty JavaScript :) Na szczęście JavaScriptu jest bardzo mało, więc nie było to jakoś mocno uciążliwe. Żeby to wszystko jako tako wyglądało użyłem UIkita - bo lubię, go bardziej niż Bootstrapa.
Myślę jednak, że następnym razem jak będę pisał coś podobnego to chyba zdecyduję się na pisanie w Groovy'm, do części serwerowej użyje dość młodego projektu Ratpack no i jednak nie zrezygnuję z Angulara ;) Ale co będzie następne i kiedy to będzie, nie mam pojęcia.

Co do samej aplikacji, to generalnie działa na tyle, że można używać jej do tego do czego została stworzona. Na moich playlistach działała tak jakbym tego oczekiwał. Współtworzone playlisty zaczyna obserwować, a publiczne i prywatne kopiuje. Także jeśli komuś jest potrzebne narzędzia do przenoszenia playlist w spotify między dwoma różnymi kontami, to myślę, że ten programik będzie przydatny i pomoże zaoszczędzić trochę czasu. Gdyby coś nie działało to proszę o zgłoszenie na githubie lub tweeta. Jeśli ktoś ma jakieś pomysły to też czekam.

Aplikacja i instrukcja użycia jest tutaj: http://aknowakowski.blogspot.com/p/trikatuka.html

Pozdrawiam

czwartek, 21 maja 2015

Adapter Wifi Ralink i Raspberry Pi

Kupiłem kilka dni temu nano adapter wifi na usb z aliexpressu - po prostu jakiś najtańszy chiński noname (na allegro sprzedawane są po ok. 15zł). Zapłaciłem niecałe 2 dolary z wysyłką i o dziwo paczka dotarła w 7 dni. Zakupu dokonałem z myślą włożenia modułu do mojego Raspberry Pi 2 B, po to żeby generalnie ułatwić sobie z nim pracę.

Nano adapter wifi który otrzymałem. Wyświetla się jako Ralink


O ile moduł zadziałał bez problemu z Windowsem 8, o tyle w przypadku Raspbiana już tak kolorowo nie było. Problem polega na tym, że nie ma sterowników pod linuxa dla tych najtańszych "dongli". Ale trochę googlowania, pytanie na raspberrypi stackexchange i problem udało się rozwiązać.

Po kolei:

polecenie lsusb wyswietliło moje urządzenie jako 148f:7601, więc zacząłem na jego temat szukać informacji. Na githubie jest projekt ze sterownikami (https://github.com/porjo/mt760) i instrukcją jak je zainstalować, ale w moim przypadku się to nie udawało bo po wywołaniu polecenia make 
dostawałem błąd :
/lib/modules/3.18.7-v7+/build No such file or directory.

Nie jestem mistrzem linuxa, więc nie bardzo wiedziałem co z tym zrobić, pewnie istnieje kilka sposobów żeby to naprawić (chyba coś z linux-update-headers kompilacją modułów itp), ale w moim przypadku pomogło po prostu użycie:

sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install rpi-update
sudo rpi-update

Po wykonaniu tych operacji mój kernel został zaktualizowany do aktualnie najnowszej wersji 3.18.13-v7 (wersję kernela można sprawdzić wywołując polecenie uname -a).

Po tym być może udałoby się już wykonać instrukcje z wyżej wspomnianego projektu na githubie ale znacznie łatwiej było skorzystać ze skryptu przygotowanego przez MrEngman'a. Są to skompilowane już sterowniki do dongla i skrypt który je dla nas zainstaluje. Procedura jest bardzo prosta:

Na początek sprawdzamy wersję kernela przy pomocy uname -a i notujemy ją (u mnie było to na przykład 3.18.7-v7 #785). W niektórych wersjach rPi nie ma tego przyrostka "-v7". Sterowniki możeby pobrać poleceniem wget a url to

https://dl.dropboxusercontent.com/u/80256631/mt7601-<wersja kernela>.tar.gz

W moim przypadku było to więc:

https://dl.dropboxusercontent.com/u/80256631/mt7601-3.18.13-v7-785.tar.gz 

Jeżeli nie ma przyrostka v7, to się go nie dodaje. Jeżeli uname -a pokazał np 3.18.11 #782, to url będzie:
https://dl.dropboxusercontent.com/u/80256631/mt7601-3.18.11-782.tar.gz (bez "-v7" i z 782 zamiast 785). Jeżeli pobierze się złą wersję, to sterownik po prostu nie zadziała.

Czyli pobieramy, wypakowujemy i uruchamiamy skrypt ./install.sh:
wget https://dl.dropboxusercontent.com/u/80256631/mt7601-3.18.13-785.tar.gz
tar xzf mt7601-3.18.13-785.tar.gz
./install.sh
Potem restart komputera i powinno działać :)
U mnie działa. Teraz chciałbym zrobić przy jego pomocy Access Point żeby łączyć się przez ssh z telefonu, ale wiem czy z tym dinksem się to uda. Pozdrawiam.




Tutaj link do pytania, w którym gość pomógł mi rozwiązać ten problem: http://raspberrypi.stackexchange.com/questions/31706/error-lib-modules-3-18-7-v7-build-no-such-file-or-directory-when-compiling-d

A tutaj link do tematu w którym udziela się MrEngman i pomaga jeśli są problemy ze skryptem: https://www.raspberrypi.org/forums/viewtopic.php?p=760070#p760070 (poprzednie i kolejne posty)

niedziela, 22 marca 2015

Ćwiczenia kręgosłupa - ból w dole pleców

Kilka lat temu doskwierał mi ból w dole pleców, więc udałem się do lekarza z nadzieją na pomoc ale dostałem tam tylko tabletki przeciwbólowe i ulotkę z opisem tego jak powinienem ćwiczyć kręgosłup. Ból w końcu przeszedł, a ćwiczenia z ulotki na pewno w tym pomogły. Do dziś czasem je stosuję, dlatego uznałem, że są warte polecenia.

Kilka ćwiczeń można zrobić wszędzie, do niektórych trzeba położyć się na ziemi, a do innych potrzebna jest piłka. Generalnie jednak ćwiczenia z tej ulotki są proste do wykoniania i potrafią przynieść ukojenie.

Wrzucam, bo jeśli komuś doskwiera ból w części lędźwiowej kręgosłupa i zastanawia się jak ćwiczyć, aby ten ból zredukować, to warto te ćwiczenia wypróbować.





I w pdf:
https://pl.scribd.com/doc/259598846/Bol-w-dole-plecow-%C4%87wiczenia

czwartek, 19 marca 2015

Bateria Nokia BP-5T (Lumia 820) podróbka vs oryginał

Swego czasu kupiłem na allegro baterię BP-5T do telefonu Nokia Lumia 820. Oczywiście sprzedawana jako oryginalna, o czym sprzedawca zapewnił mnie również telefonicznie. Niestety przyszła podróbka.

Tutaj zdjęcia dla porównania:
U góry podróbka, na dole oryginał
BP-5T Fake vs oryginał - różnice

 
Widać różnice między czcionkami, niektóre napisy na podróbce powinny być szare, a są białe, oraz na baterii widnieje dopisek "proto2", którego być nie powinno.

Proście zawsze o realne zdjęcia produktu przed zakupem!