szarak@jabster.pl


Komputer zdalnie sterowany

Wpis na 0. poziomie, wysłany 20 marca 2008 o 23:54:06

Dzisiaj znów o rzeczach związanych z bluetooth’owymi pierdołami.


Anyremote: oprogramowanie do sterowania komputerem przez telefon komórkowy za pomocą bluetooth. Opcja bluetooth nie jest jedyną, projekt chwali się możliwościa sterowania przez irdę, wifi, przez internet – oczywiscie tez przez aplikację w java, jeśli komputer jest widoczny z zewnątrz, oraz przez interfejs web…

Dostępne są graficzne nakładki, ganyremote i kanyremote które mocno ułatwiają sprawę – w końcu jesteśmy leniwi – przecież nie chce nam się nawet sięgnąć do komputera… ;p

Co w nim fajnego czego inne programy nie mają: z paczuszką, którą zainstalowałem (nie ma go w repo Debiana, ani Ubuntu, lecz są ładne paczuszki na stronie projektu) było już sporo napisanych configów dla różnego oprogramowania. Z tego co widzę, program nie wyświetla configów (pluginów? :P) do softu którego nie mamy zainstalowanego. Pluginy/configi są całkiem proste i lektura tych przykładowych pozwala na napisanie swojego bez sięgania po dokumentację, lecz prawdopodobnie to nie będzie konieczne.


Możliwości tego oprogramowania są całkiem spore. Po stronie komputera możliwa jest każda akcja, jeśli tylko da się ją przedstawić za pomocą polecenia systemowego, lub naciśnięcia klawisza ;) W konfigu możemy zdefiniować sobie ikonki jakie będą przypisane poszczególnym klawiszom w aplikacji javowej (postaram się pokazać to na zdjęciach). W tym samym miejscu definiujemy wszelkie akcje klawiszy.


ganyremote

Ok, mamy już skonfigurowany soft po stronie komputera (chociaż prawdopodobnie dołączone z nim konfigi będą działać ładnie). Teraz komórka. Wrzucamy plik .jar z aplikacją na telefon. Ja zainstalowałem plik .deb z odpowiednimi pliczkami (takie troche dziwne … pakiet z paroma plikami i to nawet nie na kompa… ;p).


ganyremote


Teraz, mając uprzednio włączony anyremote (uruchomiliśmy ganyremote) uruchamiamy aplikację w JAVA, wybieramy urządzenie z którym mamy się połączyć i dalejmy connect. Ach, byłbym zapomniał. Zakładamy, że komórka z komputerem jest już sparowana (innym programem). Powinien wyświetlić się nam ekran z niebieskimi, pustymi przyciskami odzwierciedlającymi odpowiednio klawisze [123456789*0#].


ganyremote

Jeśli widzisz wyjątek wyrzucony przez javę pod przyciskami, nie przejmuj się jeszcze :). Teraz w aplikacji graficzne odpalamy jeden z konfigów (zaznaczamy i wybieramy „run”). Po wczytaniu w naszej komórce powinny pojawić się ikonki klawiszy wyświetlanych na ekraniku (chyba, że ten konfig nie ma ich ustawionych, wtedy będzie ikonka domyślna). Obsługa jest prosta.


ganyremote

Wciskasz odpowiednio klawisze komórki, bądź wybierasz je joystick’iem na wirtualnej klawiaturze. Wszystko powinno działać szybko i bezboleśnie.

Ciekawą funkcją, która bije na głowe typowe piloty, jest możliwość nie tylko np. oglądania tytułu aktualnie odtwarzanego utworu na wyświetlaczu komórki, ale także np. wybranie filmu w telefonie!

Taka obsługa jest dobra nie tylko dla leniwców/do kina domowego. Można przecież podłączyć pod to dowolne aplikacje. Ja np. ciesze się, że na następnej imprezie będę mógł zmieniać i wybierać piosenki, ściszać itp. gdy komputer będzie zablokowany przed niepowołanym, pijanym dostępem ;) ba, mogę być nawet w innym pokoju, pijąc piwo u sąsiadów kontrolować muzykę :)

ganyremote
ganyremote

Dla projektu wbrew temu co wcześniej myślałem jest sporo alternatyw. Wymienię tylko krótko jedną z nich: Bluepad. Projekt ładne zobrazowany na ich stronie, więc nie będę się już rozpisywał. Z różnic: w bluepad możemy wybierać akcje/klawisze wykonywane na komputerze w menu aplikacji na telefonie! Niestety miałem spore problemy ze stabilnościa tej aplikacji. Dodatkowo na korzyść anyremote przekonała mnie możliwość szybkiej zmiany konfiguracji pod różne aplikacje, jakiej w bluepad nie było.

Dodaj komentarz | *nix Gadżet gnome Techblog |

Regex w Nautilus

Wpis na 1. poziomie, wysłany 06 stycznia 2008 o 20:45:23

Czasem zachodzi potrzeba wybrania jakichś konkretnych plików w menedżerze plików. O ile gdy korzystam z ls/cp/mv/itd. nie ma żadnego problemu, to przy narzędziach graficznych jest czasem niezbyt oczywiste jak podejść do rozwiązania. Klikania oddzielnie w każdy plik jest zabawne tylko poniżej 10ciu plików w katalogu :D


Dzisiaj segregowałem kilka fotek i obracałem je przed publikacją. Skrypt gnomowo/nautilusowy nautilus-image-converter dodał mi suffix do każdej przerobionej kopii pliku. Gdyby to był prefix nie byłoby problemu, bo po prostu przekręcone fotki byłyby ułożone jedna po drugiej, ale niestety są rozsiane po całym katalogu.
Na szczęście Nautilus ma możliwość zaznaczania wyrażeniem regularnym dostępną pod ctrl+s lub z menu Modyfikuj- wybierz wyrażenie. Wpisujemy tam nasze wyrażenie (np. *resized*) i gotowe.


Często zapominałem o takiej możliwości w Nautilusie, a cenie sobie takie właśnie menedżery plików. Pozwalają mi na łatwą pracę z plikami gdy istotna dla mnie jest ich zawartość, a położenie i nazwa mają w sobie wiele przypadku.

Dodaj komentarz | *nix gnome |

Python z matplotlib jako narzędzie naukowe – czyli po co utrudniać sobie życie?

Wpis na 1. poziomie, wysłany 22 listopada 2007 o 14:38:25

Jeśli nie interesuje Cie tło sprawy, pomiń następne dwa akapity :)
Stanąłem przed następującym faktem: muszę napisać program zajmujący się prostymi obliczeniami statystycznymi. Wyznaczanie trendów itp. itd. Musze to zrobić „na wczoraj” :)


Problemy: nie wiedziałem, że w ogóle będę się zajmował taką tematyką. Przedmiot na którym to piszę, miał być czymś zupełnie innym – miał skupiać się na programowaniu obiektowym, zarządzaniem projektem i planowaniem. Jak się okazało, w trakcie semestru zmienił mi się prowadzący, na panią, która o programowaniu pojęcie ma średnie. Owszem, teorii trochę, ale nie interesują jej bebechy naszych aplikacji, możemy sobie pisać w czym chcemy i jak chcemy. Skupić się trzeba jednak na rozwiązaniu problemu statystycznego (wcześniej każdy pisał co innego – od gier po aplikacje użytkowe, symulatory…). Olałem w ogóle sprawę ale wreszcie trzeba było do tego siąść. Trzeba było działać szybko, więc wymyśliłem sobie, że zamiast bawić się w c++ i qt (z czego to pierwsze jest jak dla mnie ok, to drugie mniej), to zrobie aplikacje w czymś całkiem nowym, może łatwiejszym.


Wybór padł na język Python. Dlaczego? Bo denerwują mnie aplikacje w nim pisane (jakoś zasobożerne mi się wydają, może trochę ociężałe), ale jednak z jakiegoś powodu sporo ludzi ciągle w tym pisze. Czyli w skrócie ciekawość.


Co się okazuje? W parę godzin nauczyłem się tyle, że byłem w stanie napisać program parsujący plik xml i wyświetlający dane w postaci wykresu z interfejsem w gtk+ – z czego połowe tego czasu spędziłem na szukaniu beznadziejnie głupiego błedu, o czym później.


Co do języka: jest dość prosty przy pierwszym kontakcie. Pisze się szybko, łatwo a co najważniejsze przyjemnie. Obiektowością przesiąknięty całkowicie, a korzysta się z niej wręcz intuicyjnie. Trochę inna składnia niż mi znana, ale łatwa do przyswojenia. Wcięcia w kodzie zamiast klamer … uh, z tym ciężko, ale prawdę mówiąc teraz na mnie wymusza to czystość w kodzie i już nie narzekam. A do tego łatwo dostępna pomoc/podręczniki, np. Dive into Python.


Zachęca również spora ilość bibliotek, które prawdopodobnie pokryją 70% zadań, które przed Tobą czekają. Do parsowania xml wybrałem minidom. Z jego pomocą i tutorialem zczytanie pliku zajęło chwilkę i zajmuje mniej niż 15 linii kodu. Interfejs graficzny stworzyłem za pomocą pygtk. Jego obsługa jest ładnie opisana w tutorialach, jak znasz obsługe sygnałów z jakiegoś innego języka/biblioteki to załapiesz w mig. No to teraz przyszedł czas na wizualizację wyników, gdzie z pomocą przyszła biblioteka matplotlib.


Matplotlib w Pythonie obsługiwany jest przez moduł „pylab.py”. Narysowanie prostego wykresu sprowadza się np. do:
from pylab import *
plot([1,2,3,4,5,4,3,2,1])
show()

Co oznacza załadowanie modułu pylab (i wczytanie dostępnych funkcji do standardowej przestrzeni nazw – tak sobie to wytłumaczyłem, przekładając to na rozumowanie z c++. Można jeszcze „zainkludować” moduł poprzez import pylab, ale wtedy z dostępnych funkcji trzeba korzystać poprzez pylab.show() itp.. Pythonowców z góry przepraszam za niefachowość i nieścisłość. Wszystkiego uczyłem się na wariata, by jak najszybciej pokazać wynik pracy, a nie poprawnie zrozumieć język ;p). Druga linia kreśli wykres. Wygląd domyślny, oś x domyślna (kolejne liczby naturalne), wartości na osi y podane są w nawiasie w postaci tablicy – oznacza się ją przez nawiasy kwadratowe. Show() wyświetli nam wykres na ekranie w postaci okna gtk z układem współrzędnych dostosowanym do danych, możliwością powiększania i przesuwania wykresu, historią zmian widoku, a nawet zapisem do pliku. Wszystko w 3 liniach. Szczegółów nie piszę, wszystko jest ładnie opisane na stronie matplotliba, którą podałem. Po polsku 3 słowa na ten temat znajdziecie np.tutaj.

Nie powiem, pierwszy kontakt z pythonem i matplotlibem bardzo pozytywny. Pani prowadząca cieszyła się, że widzi ładny wykres, ja się cieszyłem, bo poświęciłem temu minimalną ilość czasu i poznałem coś nowego. Mam nadzieje, że moja przyjaźn z tym językiem szybko nie zniknie.

2 komentarze | *nix gnome Progamowanie Różne |

Czy to źle coś sobie czasem upiększyć ?

Wpis na 1. poziomie, wysłany 20 maja 2007 o 13:13:59

Coś popsułem sobie z ustawieniami pulpitu i wyglądał z lekka nieestetycznie. Odwiedziłem więc Gnome-look.org, ściągnąłem po dwa style, schematy ikon itd. które mi się podobały i wybrałem lepszy z każdej pary. Efekty mnie zaskoczyły, wreszcie mam ładny pulpit ;p

screen gnome


Do screena dla szpanu dodałem beryla, coby jeszcze przeźroczystością zaszpanować :D

http://szarak.org/pliki/2.%20Rozne/zrzutekranu-1.png

Dodaj komentarz | gnome |

Synergy

Wpis na 1. poziomie, wysłany 16 maja 2007 o 20:34:22

Z potrzeby chwili zainteresowałem się sterowaniem dwoma komputerami jedną myszką. Tłumaczę tekst na dwóch komputerach obok siebie, w jednym treść w drugim moje tłumaczenie, duża wygoda, ale nie mieszczą mi się na biurko obie klawiatury i myszki. Szybkie szukanie w google i wszystko śmiga!

Odpowiedzią na mój problem było synergy, soft open source. Ściągniecie i zainstalowanie serwera i klienta na obu komputerach (Linux i windows xp 64bit) zajęło i z konfiguracją 4 minuty … ;) jest nawet gui do szybkiej konfiguracji w gtk ( quicksynergy ) :) Super rzecz, polecam, mimo iż jeszcze nie przetestowałem zbytnio, ważne teraz, że działa ;)

Znacie do tego jakąś alternatywę, lub minusy tego konkretnego rozwiązania?

Dodaj komentarz | *nix gnome |