Nokia E50 i Ubuntu

31 05 2008

Jakiś czas temu głowiłem się nad tym jak podłączyć moją nokię E50 do komputera tak aby móc chociaż pooglądać na nim pliki. Nie znalazłem rozwiązania. Dzisiaj jednak podczas przeglądania opcji mojego telefonu znalazłem to czego szukałem.

Wystarczy w telefonie zmienić typ połączenia z PC Suite na Transfer danych. Aby to zrobić należy wybrać Menu->Łącza->Kabel Danych i tam dokonać wspomnianej zmiany.

Po tej operacji kiedy podłączyłem telefon przez kabel do komputera był wykrywany jak zwykły pendrive. Warto też pamiętać o tym, że w takim wypadku trzeba go również odmontować jak zwykły pendrive ;)





Jakość kodu

22 05 2008

Zapewne większość już widziała, bo to dość stare, ale postanowiłem wrzucić to u siebie – być może trafi się ktoś kto jeszcze tego nie widział. Jak poznać jakoś swojego kodu? Pokazać go innym:





Co tam z AGE

20 05 2008

Niedawno całkiem miałem nieprzyjemne zdarzenie w wyniku którego utraciłem aktualną na tamten czas wersję AGE. Na szczęście podczas testów pod Windowsem robiłem kopię wszystkich plików źródłowych więc nie muszę zaczynać wszystkiego od nowa. Po wstępnym obejrzeniu kodów “z odzysku” stwierdziłem, ze nie straciłem zbyt wiele więc jest dobrze :)

Ostatnio jednak nie miałem weny do kodzenia więc wykorzystałem czas inaczej. Rozbudowałem trochę dokumentację. Urozmaiciłem ją kilkoma przykładami wykorzystania AGE, a w planach mam jeszcze włączenie w dokumentację krótkiego tutoriala.

To tyle – wreszcie jakaś krótka notka ;)





Powiadomienie o poczcie GMail na Ubuntu

18 05 2008

Po skonfigurowaniu obsługi klawiszy specjalnych, pobawiłem się nimi trochę i nawet nie wiem już jak udało mi się odkryć coś bardzo zaskakującego. Otóż na laptopie, którego mam już ponad rok jednym z przycisków specjalnych jest przycisk z narysowaną kopertą. Jak łatwo się domyślić w strefach urzędniczych zapewne służy do szybkiego wysyłania łapówek, a zwykłym użytkownikom wciska się, że można nim uruchomić klienta poczty. Nic w tym zaskakującego. Bardziej zaskakujące było to, że przez przypadek odkryłem że ten przycisk potrafi świecić! Właściwie to mrugać… Nieważne. Ważne jest to, że potrafi on zwracać na siebie uwagę.

Okazało się nawet, że w Ubuntu mogę sobie właczyć i wyłączyć tą lampkę za pomocą poleceń:

echo on > /proc/driver/acerhk/led
echo off > /proc/driver/acerhk/led

Od razu w mojej głowie zrodził się szatański plan! A gdyby tak ta ikonka powiadamiała mnie o tym, że mam nową pocztę? Okazało się to być prostsze niż sądziłem. Wystarczyło zainstalować program CheckGmail i odpowiednio go skonfigurować. Przez odpowiednio rozumiem po prostu wpisanie loginu i hasła tam gdzie są wymagane oraz dodanie wyżej podanych linijek włączających i wyłączających diodę odpowiednio po znalezieniu nowej poczty na koncie lub po odkryciu, że wszystkie wiadomości zostały już przeczytane.

Na koniec wystarczyło dodać hotkey w sposób opisany na końcu poprzedniego posta tak, aby otwierał przeglądarkę na stronie GMaila. Nie stanowiło to wielkiego problemu. Wystarczyło jako komendę ustawić: firefox http://www.gmail.com/ a jako klawisz do jej realizowania: XF86Mail.

Nic trudnego, a ile radości daje oglądanie migającej pomarańczowej koperty kiedy ktoś przyśle Ci maila :)





Klawisze Multimedialne Acer Aspire 5610 i Ubuntu

18 05 2008

Dzisiaj postanowiłem uruchomić wreszcie klawisze multimedialne będące częścią mojego laptopa. W internecie szukałem tego już kilka razy, ale zawsze kończyło się niepowodzeniem.Zawsze poradniki dotyczyły raczej ustawienia działających już klawiszy tak aby kontrolowały one odtwarzacze muzyki czy cokolwiek innego.

U mnie jednak problem był inny – system w ogóle nie rozpoznawał tych klawiszy. Nawet polecenie xev nie reagowało. Dzisiaj podszedłem do sprawy nieco inaczej. Zdałem sobię sprawę, że do obsługi dodatkowych klawiszy potrzebuję dodatkowego sterownika. Okazało się, że to był dobry trop. Potrzebowałem sterownika acerhk. Dla mojego laptopa wystarczy skompilować ściągnięte źródła i zainstalować je poleceniami:

make
sudo make install

U mnie początkowo kompilacja nie chciała przejść i make wywalał jakiś błąd z modyfikacją CFLAGS. W internecie znalazłem złotą poradę jak to ominąć… Wystarczyło zakomentować liniję (chyba 18.) w której ustawiane były flagi (CFLAGS+=…). I to pomogło :)

Następną częścią było załadowanie sterownika acerhk do modprobe‘a. Aby to zrobić wystarczy wydać polecenie:

modprobe acerhk force_series=2020 poll=0

Po tej operacji xev rejestruje już klawisze specjalne i nie ma problemów z ustawieniem skrótów klawiszowych za pomocą programu gnome-keybinding-properties.

Na tym można byłoby zakończyć, ale przecież klawiatury mają więcej przycisków niż tylko multimedialne, a nie wszystko da się ustawić za pomocą wyżej wspomnianego programu. Przykładowo jeśli chcielibyśmy uruchomić jakiś dowolny program. Z takimi ustawieniami niestety nie da się tego zrobić. Pokombinowałem więc trochę więcej :)

Jak za każdym razem postanowiłem zasięgnąć wiedzy za pomocą Google. Okazało się, że można uruchamiać dowolne programy, ale najpierw trzeba dodać odpowiednie klawisze do konfiguracji programu xmodmap. U mnie niestety nie było pliku xmodmap.config nigdzie w katalogu /etc ale za to doczytałem się gdzieś, że wystarczy stworzyć w katalogu użytkownika plik .Xmodmap i tam zapisać konfigurację dodatkowych klawiszy.

Najpierw za pomocą polecenia:

xmodmap -pke > .Xmodmap

wygenerowałem sobie plik ze wszystkimi kodami klawiszy. Teraz wystarczyło już tylko zajrzeć do pliku /usr/share/X11/XKeysymDB w celu obejrzenia jakie symbole klawiszy mamy do dyspozycji. Przy definiowaniu klawiszy specjalnych warto zwrócić uwagę na symbole postaci XF86*. Ja potrzebowałem tylko symboli: XF86Mail, XF86Launch0, XF86WWW. Przy czym XF86Launch0 użyłem do klawisza specjalnego na którym jest literka P i nie mam zielonego pojęcia co ma przedstawiać :)

Teraz pozostało już tylko wpisać to co trzeba do .Xmodmap wygenerowanego wcześniej. Aby uzyskać kody klawiszy, o które chodzi wystarczy uruchomić program xev w terminalu i powciskać te klawisze. Wtedy w terminalu pokażą się informacje dotyczące wciśniętego klawisza. Mnie interesował keycode. Przykładowe wciśnięcie klawisza ‘a’ wygeneruje takie coś:

KeyPress event, serial 32, synthetic NO, window 0x1a00001,
    root 0x1a6, subw 0x0, time 9636362, (542,315), root:(550,364),
    state 0x0, keycode 38 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (61) "a"
    XmbLookupString gives 1 bytes: (61) "a"
    XFilterEvent returns: False

Kiedy już znałem kody klawiszy wystarczyło odnaleźć odpowiadające im linijki w .Xmodmap i dopisać do nich odpowiednie symbole. W moim przypadku były to linijki:

keycode 130 = XF86WWW
[...]
keycode 151 = XF86Launch0
[...]
keycode 236 = XF86Mail

Aby uwzględnić te zmiany wystarczy wydać polecenie:

xmodmap .Xmodmap

Po kolejnym uruchomieniu komputera załadują się one automatycznie.

Teraz wystarczyło już tylko ustawić skróty wystarczy uruchomić program gconf-editor i odnaleźć w nim klucz: apps/metacity/keybinding_commands/command_1 i wprowadzić tam komendę jaką chcemy uruchomić za pomocą klawisza. Potem w kluczu apps/metacity/global_keybindings/run_command_1 ustawić odpowiednie symbole klawiszy. Ja chciałem aby odpowiedni przycisk uruchamiał mi firefoxa na stronie gmail.com dlatego w run_command_1 wpisałem XF86Mail. W ten sposób przypisałem klawisz o kodzie 236 (XF86Mail) do komendy 1.

Na koniec zostało jeszcze tylko ładowanie sterownika acerhk podczas startu systemu. Niestety dodanie go w opcjach sessji GNOME niewiele daje ponieważ musi on być uruchomiony z prawami root’a. Dopisanie go do /etc/rc.local też mi niewiele dało dlatego stworzyłem sobie własny skrypt startowy:

sudo touch /etc/init.d/myinit
sudo chmod 755 /etc/init.d/myinit

Teraz trzeba wyedytować plik za pomocą jakiegoś edytora tekstu i dodać tam dwie linijki:

#! /bin/sh
modprobe acerhk force_series=2020 poll=0

Ostatnia rzeczą jaką trzeba zrobić jest poinformowanie demona init o tym, że powinien załadować ten skrypt przy starcie. Robi się to następującym poleceniem:

sudo update-rc.d /etc/init.d/myinit defaults

System cośtam pomieli, powyświetla i po wszystkim skrypt myinit będzie uruchamiany przez demona init.d a co za tym idzie załadowane zostaną sterowniki do klawiatury acera.

Tyle chyba wystarczy na jednego posta :)





Potyczki Algorytmiczne

16 05 2008

Zawsze gardziłem konkursami algorytmicznymi, ponieważ uważałem, że mają niewiele wspólnego z samym programowaniem, które jest mi bardzo drogie :) Jednakże znajomi z roku namówili mnie abym wziął udział w Potyczkach Algorytmicznych. Po kilku pierwszych rundach wnioski mam dwa:

  • nadal uważam, że część wspólna algorytmiki i programowania jest dosc niewielka…
  • …ale udział w takim konkursie to fajna zabawa :)

Największym problemem dla początkującego w takich konkursach jest wejście w świat algorytmów. Nigdy nie bylem ich fanem więc i nie znałem ich za dużo. W takich konkursach warto jest znać dużo algorytmów ponieważ zadania często każą zmodyfikować już istniejący algorytm. Liczy się praktyka.

Najbardziej jednak podoba mi się to, że nikogo nie obchodzi jak doszedłem do tego, że mój kod działa. Nie trzeba żadnych dowodów i innych kubków na herbatę, aby program przeszedł. Jedynymi wyznacznikami są poprawność wyniku i zmieszczenie się w czasie i pamięci.

Dodatkowo napisanie działającego szybko algorytmu po dłuższym czasie przemyśleń związanych z tematem przysparza prawie tyle radości co samo programowanie. Właściwie to po przemyśleniach kartka i ołówek ustępują miejsca umiejętności zakodowania algorytmu dla jak najlepszej wydajności.

Powszechnie wiadomo przecież, że rząd złożoności służy jedynie do klasyfikacji algorytmów, która nie daje nam żadnego pojęcia na temat szybkości faktycznego wykonania dobrze napisanego algorytmu.

Podsumowując tą znowu-za-długą notkę: zabawa z algorytmami też daje dużo radości. Dlatego też polecam wszystkim udział w konkursach tego typu.

Link do konkursu o którym mówię: http://konkurs.adb.pl/
Istnieje również http://opss.safo.biz/ na którym również są czasem organizowane zawody, ale tutaj dodatkowo istnieją Zawody Stałe, w które faktycznie ciężko nazwać zawodami, ale zawsze można sobie jakiś algorytm rozwiązać :)





Pomoc w zawładnięciu światem

12 05 2008

Od kilku dobrych tygodni jestem szczęśliwym użytkownikiem systemu Ubuntu (najpierw werji 7.10,  a teraz już 8.04 LTS). Tutaj – jak w każdej dystrybucji Linux’a – komunikat o błędzie uruchomienia jakiegoś programu (który zdarza się i tak dość rzadko) motywuje do znalezienia tego błędu i wyeliminowania go. Po tej czynności czeka nas wieczna chwała, a jeśli nie chwała to chociaż satysfakcja… Nie muszę chyba mówić, że takiej satysfakcji często nie można mieć w systemie firmy z Redmond, w którym można co najwyżej zmienić tapetę :)

Odnośnie tematu postu – od jakiegoś czasu staram się przedstawiać moim znajomym różne zalety Ubuntu. Nie namawiam ich explicite do zmiany systemu, ale udało mi się w ten sposób nawrócić już kilka osób :) W tym jedna z nich ma teraz u siebie na kompie tylko Linuxa – pozostałe testują sobie Ubuntu a pracują nadal na Winzgrozie. Pozostaje mi wierzyć, że kiedyś nawrócą się całkowicie :)

Osobą, która ma na dysku w tej chwili tylko Ubuntu jest moja młodsza siostra. Jako, że siostra nie zna się jeszcze na tym systemie, a tym bardziej na linii komend (zresztą na Windowsie też się za mocno nie zna :P ) co chwilę wołała mnie aby coś ustawić – to zrozumiałe, bo system trzeba sobie dostosować. Nie widziało mi się jednak łażenie do niej i ustawianie tam wszystkiego choćby dlatego, że ma niewygodne krzesło :P

Postanowiłem więc administrować nim zdalnie. Okazało się to być bajecznie proste. Wystarczyło na komputerze siostry stworzyć dla mnie konto administratora i zainstalować tam serwer SSH. Dodatkowo w konfiguracji klienta (u mnie) i serwera (u siostry) SHH włączyć opcję X11Forwarding. Tym chytrym sposobem mogę się zalogować na komputer mojej siostry odpalić u niej np. komendę:

sudo gedit /etc/fstab

Po chwili pokazuje się u mnie okienko GEdita z zawartością pliku /etc/fstab z komputera mojej siostry. Takie rozwiązanie ma również tę zaletę, że moja siostra nie musi przerywać swojej pracy przy komputerze.

Nie wszystko jednak wiąże się z ustawieniami całego komputera – czasem trzeba zmienić coś w środowisku graficznym, a najłatwiej zrobić to po prostu wyklikując odpowiednie opcje. No tak, ale żeby wyklikać to najpierw trzeba być przy tamtym komputerze, prawda? Nie, nieprawda.

Tutaj z pomocą przyszedł mi program vncviewer, który był już zainstalowany na dysku. Przypuszczam, że każdy spotkał się już z tym programem więc nie będę opisywał co robi ale dla niezorientowanych powiem krótko, że dzięki niemu mogę u siebie na komputerze uruchomić w okienku podgląd pulpitu z innego komputera. Właściwie to nie tylko podgląd – mogę również przekazywać do niego wejście klawiatury oraz myszy.

Takie narzędzia istnieją także dla Windows i właściwie nazywają się tak samo – VNC Serwer i VNC Viewer. Wadą tych narzędzi jest to, że osoba, która prosi nas o pomoc musi przestać pracować u siebie.

Tak czy inaczej zabawa z większa ilością Pingwinów w domu jest pouczająca i wciągająca :) Polecam każdemu na długie nudne wieczory (na te nie-nudne też).