Pokazywanie postów oznaczonych etykietą fc5. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą fc5. Pokaż wszystkie posty

piątek, 25 stycznia 2008

Iblue 747 GPS logger

GPS logger to odbiornik GPS wyposażony w pamięć pozwalającą na rejestrację przebytej drogi (śladu). Ślad z GPSa jest mi potrzebny do dodania współrzędnych geograficznych do zdjęć. Do tej pory do tego celu wykorzystywałem odbiornik Geko 301 firmy Garmin. Geko jednakże jest urządzeniem starszego typu i generalnie nie działa jeżeli nie widzi ,,czystego nieba''. Nie działa w lesie, często są duże problemy w terenie mocno zabudowanym, itp.

Postanowiłem kupić lepszy odbiornik. Czytając fora i blogi poświęcone GPS najpierw dowiedziałem się, że jest coś takiego jak SIRF. Już chciałem takiego SIRFa kupić ale doczytałem o chipsecie MTK. Według niektórych doniesień jest on lepszy niż SIRF 3 (są też tacy co twierdzą, że tak nie jest; głosów w stylu X to syf a ja jestem wielkim znafcom nie biorę pod uwagę).

Ceny loggerów na allegro zaczynają się od 300 zł (styczeń 2008) a ja znalazłem coś chwalonego, podobno działającego z Linuksem co jest dla mnie bardzo ważne i (okazało się) tańszego pn. i-Blue 747 Dziwne, ale w Polsce nikt tego nie sprzedaje, przynajmniej w Internecie. Znalazłem i-Blue na ebay za mniej niż 200 zł przy czym 30% tej kwoty stanowiły koszty wysyłki.

BTW opis na e-bay był w języku włoskim, sklep w Niemczech, sklepowy (sądząc po imieniu i nazwisku, Turek) po angielsku słabo pisał, ale się dogadaliśmy i paczka doszła.

Do obsługi loggera jest dołączony CDrom z programem. Program jest of course na system MSW, ale podobno działa z wine. Dokładnie postępując według instrukcji stąd dało się go uruchomić: należy zainstalować wine, uruchomić winecfg, a następnie:


cd ~/.wine/dosdevices
ln -s /dev/ttyUSB0 com1

Teraz należy skopiować plik instalacyjny i uruchomić wine DataLog.exe. Program zostanie zaistalowany tyle, że u mnie nie działa. Ściąga ślad całkiem dziarsko ale nie do końca bo zwisa. Próbowałem dwa razy raz zawisł gdy wskaźnik był na 49% drugi raz na 89%. W google znalazłem opinie użytkowników Ubuntu utrzymujących, że w ich systemie wszystko działa (like a charm). BTW w MS Windows też były problemy, zarówno z instalacją, jak i z uruchomieniem, ale jak w końcu poszło, ale co z tego przecież nie będę go używał w systemie W.

Uwaga: Aby ściągnąć ślad albo zmienić konfigurację urządzenia przełącznik musi być w pozycji LOG. Po uruchomieniu programu pierwsze co trzeba zrobić to zatrzymać zapis śladu (można to zrobić tylko programowo), bo inaczej logger cały czas zapisuje dane.

Zainstalowałem też w bólach bt747 (aplikacja Javy). Zresztą autor ostrzega, że dokumentacja jest niedoskonała. Po rozpakowaniu zipa, zainstalowałem zawartość katalogu rxtx-2.1-7-bins-r2, zgodnie z tym co jest napisane w pliku INSTALL, umieszczonym w tym katalogu. Następnie uruchomiłem skrypt run_rxtx.sh, zmieniając wartość zmiennej MYROOTPATH=/usr/local/bt747. Żby użytkownik miał dostęp do /dev/ttyUSB0 musi być w grupie uucp, to już ustaliłem wcześniej. Dalej jednak nie działało (check_group_uucp(): error testing lock file creation Error details: Permission denied check_lock_status: No permission to create lock file.). Kluczowa okazała się zmiana praw dostępu do /var/log:


chmod 777 /var/lock

Aplikacja, jak widać obok, wygląda okropnie, ale funkcjonalnie jest OK: ściąga dane i kasuje LOG. Więcej nie potrzebuję. Żeby skrypt run_rxtx.sh działał uruchamiany z dowolnego katalogu musiałem jeszcze zmienić wartości zmiennej CLASSPATH (albo wstawić zawartość CLASSPATH jako wartość opcji -cp przy uruchamianiu javy):


CLASSPATH=${RXTXJAR}:$MYROOTPATH/webstart/Waba_only.jar:\
$MYROOTPATH/dist/BT747_rxtx.jar:.:$CLASSPATH

Wreszcie jest też aplikacja pn. MTKbabel (skrypt Perla), działająca podobnie do programu GPSbabel, czyli z wiersza poleceń. Do działania wymaga zainstalowania modułu Device::SerialPort. Ten sposób działania podoba mi się najbardziej. Pobranie danych sprowadza się do wydania następującego polecenia:


mtkbabel -f nazwa-pliku-bez-rozszerzenia -t

Powstaną dwa pliki (dlatego nie podaje się rozszerzenia): jeden w formacie binarnym, drugi w fomacie GPX. Jedno wielkie ale -- transmisja jest bardzo wolna: plik binarny o wielkości ca 650 kB (czyli ca 30% pamięci) był ściągany z loggera 9 minut 47 sekund. Czyli cała pamięć byłaby ściągana 30 min. Hmm... Dla porównania obie wcześniej wymienione aplikacje ściągały te 650 kB w circa 2 minuty. Różnica jest.

Wykonałem już dwa eksperymenty porównujące iblue z moim Garminem 301. Pierwsza trasa to las, w wielu miejscach gęsty i wysoki. Do tego też w wielu miejscach jary o stromych zboczach. Trasa zapisana przez geko oraz trasa zapisana przez iblue. Nie ma porównania, bo geko w zasadzie w lesie nie działał.

Druga trasa to teren zabudowany, a konkretnie Sopot. Zabudowa w większości 3--4 kondygnacyjna. Dwa razy wszedłem do sklepu (Geko zgubił w pierwszym ślad, ale poczekałem po wyjściu aż znajdzie, a za drugim razem sam szybko się odnalazł). Oba ślady wyglądają nieźle (cf. geko iblue). Iblue pogubił się w okolicach skrzyżowania 1-go Maja z Aleją Niepodległości, gdzie wszedłem do sklepu (na dłużej). Nie zgubił satelity, tak jak geko, ale trasa w tym miejscu jest nieprawidłowa (wielki `tik' od 1-go Maja wzdłuż Al. Niepodległości w stronę Gdańska. Na mapie od szpilki oznaczonej jako `sklep' do szpilki `tik'. W rzeczywistości od sklepu poszedłem do szpilki oznaczonej `tunel' i dalej wzdłuż ul. Bohaterów Monte Cassino, co zresztą też jest zaznaczone). Nie ma różnicy pomiędzy śladami zredukowanymi do 500 punktów i dużo większym -- 2500 punktów.

Reasumując: wszystkie zdjęcia zrobione na obu trasach zostały (z zadowalającą precyzją) oznakowane współrzędnymi geograficznymi na podstawie śladu z Iblue, a po to go kupiłem.

Ślad iblue zredukowałem za pomocą gpsbabela, bo oryginalny ślad składa się z tysięcy punktów. Iblue zapisuje ślad co sekundę, Garmin w trybie auto (Iblue nie ma czegoś takiego jak auto). Kiedyś eksperymentowałem z Garminem i też go przestawiłem na zapis sekundowy, ale nie zaobserwowałem różnicy pomiędzy takim trybem a trybem auto. Polecenie uproszczenia śladu wygląda następująco (Log.nma zawiera dane zapisane jako NMEA):


gpsbabel -i nmea -f Log.nma -x simplify,count=450 \
-o gpx -F 2008-01-23BT_x.gpx

Poniżej bardziej zaawansowane polecenie: zapisz jako GPX, ślad od 2008-01-24T13:40 od 2008-01-24T14:50, następnie upraszczając go do 500 punktów. Uwaga: opcje -x nie są przemienne, tj. ich zamiana skutkowałaby najpierw uproszczeniem do 500 punktów, a potem wycięciem od-do, dając w rezultacie ślad dużo bardziej uproszczony:


gpsbabel -i nmea -f GPSDATA-20080123.nmea \
-x track,start=200801241340,stop=200801241450 -x simplify,count=2500 \
-o gpx -F 20080124BT_x.gpx

Kończąc, trochę mnie zastanawia/niepokoi trwałość tego urządzenia, bo jakość wykonania jest taka sobie (100% chińszczyzna). Jakby mi, np. wypadł z ręki, to chyba byłby to jego ostatni lot. Nawet nie próbuję tego sprawdzać. Poza tym logger wydaje się całkiem, całkiem...

Dopisane 16 marca 2008: Dioda GPS: pomarańczowa -- szuka satelitów; pomarańczowa/miga -- nawiguje; niebieska/miga -- mało pamięci (mniej niż 20%); niebieska -- pamięć jest zapełniona, stop (cokolwiek to znaczy); trzykrotny błysk -- zarejestrowanie POI. Dioda baterii: czerwona -- bateria prawie wyczerpana; zielona -- ładowanie; zielona/miga -- naładowana. Dioda BT: niebieska -- BT włączone, ale nie połączony; wolno miga -- połączony w sleeping mode; szybko miga -- połączony i gotowy.

Dopisane 16 marca 2008: projekt formularzy w aplikacji bt747 jest daleki od ergonomicznego, stąd poniżej krótka rekapitulacja. Aby usunąć plik: Fmt/Erase (albo Fmr/Set&erase). Pobranie pliku i zapis na dysk: Log/Get Log i inne przyciski z tej karty. Karta File: konfiguracja. Karta Con: połączenie z urządzeniem. Innych kart w zasadzie nie używam.

Dopisane 19 marca 2008: Poniżej skrypt do zamiany pliku NMEA pobranego z bt747 na plik GPX. Skrypt upraszcza uruchomienie gpsbabela. Ponadto uruchomiony z opcją -U wycina niepotrzebne znaczniki (np. <ele>, czyli wysokość, która w moim przypadku zawsze wynosi zero. Dodatkowo liczy długość wyciętego śladu. Pełny skrypt jest tutaj.


# !/bin/bash
#
# Skrypt ułatwiający uruchomienie programu gpsbabel
# Wycina fragment ścieżki + upraszcza ślad do zadanej liczby punktów
# Na koniec plik podaje długość wyciętego śladu.
#
OUT=''
FORMAT=nmea
ROK=`date +"%Y"`
XREDUCE="NO"

while test $# -gt 0; do
case "$1" in

-help|--help) echo "$USAGE"; exit 0;;

-od) shift; START="$1";;
-od*) START="`echo :$1 | sed 's/^:-od//'`";;
-do) shift; STOP="$1";;
-do*) STOP="`echo :$1 | sed 's/^:-do//'`";;
-max) shift; COUNT="$1";;
-max*) COUNT="`echo :$1 | sed 's/^:-max//'`";;
-rok) shift; ROK="$1";;
-rok*) ROK="`echo :$1 | sed 's/^:-rok//'`";;
-format) shift; FORMAT="$1";;
-format*) FORMAT="`echo :$1 | sed 's/^:-format//'`";;
-U) XREDUCE="YES";;
-out) shift; OUT="$1";;
-out*) OUT="`echo :$1 | sed 's/^:-out//'`";;

-h) echo usage; exit;;
-h*) echo usage; exit;;

*) FILE="$1";;
esac
shift
done

if [ "$XREDUCE" = "YES" ] ; then
echo "** Tracks will be simplified! (Option -U)" ; fi

EXTENSION=${FILE##*.}
BASE=`basename $FILE .$EXTENSION`

if [ "$OUT" = "" ] ; then OUTFILE="$BASE.gpx" ;
else OUTFILE="$OUT" ; fi

if [ "$START" != "" -a "$STOP" != "" ] ; then PERIOD="-x track,start=$ROK$START,stop=$ROK$STOP" ;
elif [ "$START" != "" ] ; then PERIOD="-x track,start=$ROK$START" ;
elif [ "$STOP" != "" ] ; then PERIOD="-x track,stop=$ROK$STOP" ;
fi

if [ "$COUNT" != "" ] ; then SIMPLIFY="-x simplify,count=$COUNT" ; fi

if [ -f "$BASE.$EXTENSION" ] ; then
gpsbabel -i $FORMAT -f $BASE.$EXTENSION $PERIOD $SIMPLIFY -o gpx -F $OUTFILE

if [ -f "$OUTFILE" -a "$XREDUCE" = "YES" ] ; then
extension=${OUTFILE##*.}
simname="`basename $OUTFILE .$extension`_s.$extension"
echo "** File $OUTFILE simplified to $simname" ;
# perl -e 'while ( <> ) { unless(/<ele|fix|course|speed>/) ... to błąd !!
perl -e 'while ( <> ) { unless(/<(ele|fix|course|speed)>/) { print $_ }} ' $OUTFILE > $simname
OUTFILE=$simname
fi
else echo "File $BASE.$EXTENSION found!" ; echo "$USAGE"
fi

if [ -f "$OUTFILE" ] ; then
## Oblicz dystans:
echo "** Counting distance covered in: $OUTFILE "

perl -e 'use Geo::Distance; my $geo = new Geo::Distance;
my $qchars = "\042\047"; # znaki cytowania pojedynczy i podwojny
while (<>) {
if (/<trkpt\s+lat\s*=\s*([$qchars])([^$qchars]+)\1\s+lon\s*=\s*([$qchars])([^$qchars]+)\3/) {
$lat=$2; $lon=$4;
unless ($trkpt < 1) { $dist += $geo->distance( "meter", $plon, $plat => $lon, $lat ); }
$trkpt++; $plat=$lat; $plon=$lon;
}
}
print "** Distance covered (meters): $dist\n"; ' $OUTFILE
fi

czwartek, 10 stycznia 2008

Kłopoty z Firefoksem

Rozjechał mi się Firefox. Objawy są takie, że przy starcie okno się od razu zamyka. Nie zawsze, ale bardzo często. Okno potrafi się zamknąć także później. Zawsze bez żadnych komunikatów, ani uruchamiania rozszerzenia Talkback.

Uaktualniłem Firefoksa ze strony www.firefox.pl/ do wersji 2.0.0.11. Nie pomogło. Wykonałem jeszcze kilka chaotycznych prób, ale to też nic nie dało. Między innymi zaktualizowałem pakiet nss.i386 3.11.5-0.5.1.fc5. Wreszcie radykalnie:


mv ~/.mozilla ~/.mozilla.kopia

Wygląda, że coś się poplątało w cache bo teraz wygląda, że jest OK. Okno Firefoksa się nie zamyka. BTW Firefoxa instaluję w katalogu /usr/local/firefox211 a potem dodaję następujące linki:


ln -s /usr/local/firefox/firefox /usr/local/bin/firefox
ln -s /usr/local/firefox211 /usr/local/firefox

piątek, 4 stycznia 2008

Strojenie Emacsa cd.

Do pisania skryptów w Perlu używam trybu cperl. Aby cperl był domyślnym trybem (zamiast perl-mode) trzeba wpisać do .emacs:


(defalias 'perl-mode 'cperl-mode)

Tryb cperl ma użyteczną funkcję: cperl-info-on-command (C-c C-h F). Wystarczy ustawić kursor na nazwie funkcji/polecenia nacisnąć C-c C-h F aby została wyświetlona pomoc z podręcznika Perla. Konkretnie jest wyświetlana strona w formacie .info. Dokumentację do Perla w tym formacie musiałem ściągnąć samodzielnie i umieścić w katalogu, w którym system oczekuje plików .info (u mnie jest to /usr/local/share/info/). Podręcznik jest dostępny pod adresem:


CPAN/doc/manual/info/perl5-old/perl5-info.tar.gz

Tyle, że stary (wersja 5.6 Perla). Ewentualnie można samemu wygenerować strony nowego podręcznika w formacie .info za pomocą pod2texi. Są one dostępne pod adresem:


CPAN/doc/manual/info/perl5/pod2texi-0.1.tar.gz

Tryb cperl zwolnił dramatycznie w Emacsie 22 zainstalowanym na laptopie. Po wpisaniu w google emacs+22+cperl+slow dotarłem do dyskusji na ten temat. Podmiana oryginalnego cperl.el z dystrybucji Emacsa na wersję ściągniętą z tej strony pomogła. W PC poprawnie działa oryginaly cperl, problem jest zatem z gatunku magicznych.

Magicznie też zmienił mi się program do sprawdzania pisowni. Ponieważ aspell był wolny i nic nie wnosił za pomocą niewielkiego haka używałem dalej ispella. W Emacs 22 znowu zaczął być używany aspell. Dopisałem zatem do .emacs:


(setq-default ispell-program-name "ispell")

Ale to już chyba ostatni raz. Wprawdzie aspell dalej jest wolniejszy, ale już można z nim normalnie pracować. Przy następnej zamianie systemu już mi się nie będzie chciało kompilować ispella.

środa, 2 stycznia 2008

Kłopoty z Emacs i AWK

Emacs 22 nie współpracuje z pakietem session.el, który służy do zapisania do pliku na potrzeby następnej sesji iluś tam ostatnio wykonanych poleceń, otwartych plików itp. Ćwicząc Emacs 23 już to przerabiałem i na taką okoliczność wstawiłem do plików startowych tryb desktop-save:


(if (< emacs-major-version 22)
(progn
(require 'session)
(add-hook 'after-init-hook 'session-initialize))
(progn
(desktop-save-mode 1)
(setq history-length 250)
(add-to-list 'desktop-globals-to-save 'file-name-history)))

O tych wszystkich nastawach zdążyłem już zapomnieć. A że Emacs na starcie czyta kilkanaście plików to nie od razu doszedłem czemu wraz z przejściem na Emacsa 22 przestał działać session.el a włączyło się coś innego. (Ten blog jest w dużej części po to, aby takich sytuacji uniknąć w przyszłości:-)

Tryb desktop-save nie podoba mi się: przy starcie Emacsa ładuje się kilkadziesiąt plików, większość z nich zupełnie niepotrzebnie. Najgorzej wygląda sprawa z plikami edytowanymi poprzez trampa. Emacs łączy się z odległą maszyną. Nie wiem czemu robi to kilkakrotnie. Wszystko to trwa oczywiście a próba okiełznania desktop-save nie dała zadowalającego rezultatu. W dokumentacji jest zresztą niewiele na ten temat. Spróbowałem przykładowo ustawić zmienną desktop-restore-eager, ale to niewiele pomogło. Faktycznie Emacs szybciej startował, ale jak tylko chwilę nie dotykałem klawiatury zaczął otwierać resztę buforów. Nie szło tego przerwać... Jednym słowem mulił, tylko że nie na początku.

W ,,sprawie trampa'' wyczytałem w odpowiedzi na żale jakiegoś użytkownika żeby dać sobie z nim spokój i działać na maszynie odległej przez fuse-sshfs. Czy ja wiem? Jak przed uruchomieniem nie zamontuję odległego katalogu, to co zrobi desktop-save? To chyba nie jest dobre rozwiązanie.

Ostatecznie przełączyłem się na standardowy tryb savehist. Działa z grubsza jak session.el. Czemu ja w ogóle zacząłem używać tego ostatniego--nie pamiętam. Tryb desktop-save wyłączyłem.

W temacie AWK też pojawił się problemik. Dawno, dawno temu (ca 1994 mówiąc konkretnie) zrobiłem skrypcik do podliczania moich rocznych finansów. Działał. Aż w tym roku przestał (a może przestał wcześniej, tylko nie zwróciłem na to uwagi). Zaczęło się od komunikatu division by zero.

Miałem od dawna świadomość, że jakiś mądry tak przerobił gawka, iż przy ustawieniu lokali na PL traktuje on jako kropkę dziesiętną przecinek a nie kropkę. Po co to zrobiono--nie wiem. Wydaje mi się, że zrobiono bez sensu. Ponieważ mój skrypt był uruchamiany via skrypt basha, wystarczyło dopisać LANG=C:


#!/bin/bash
LANG=C exec gawk -f $AWKDIR/foo.awk $*

I działa znowu.

Dopisane 19 marca 2008: fuse_sshfs jest jednak świetnym rozwiązaniem. Ostatecznie nie pracuję na dziesiątkach maszyn, tylko na dwóch. W razie potrzeby montuję odległy katalog i już. Super wygodnie, nie tylko w połączeniu z Emacsem. Pakietu tramp już nie używam.

poniedziałek, 31 grudnia 2007

Emacs i Firefox

Funkcja browse-url wyświetla w przeglądarce WWW stronę o podanym adresie URL. Takie tam drobne ułatwienie: nie trzeba wklejać adresu do przeglądarki; wystarczy ustawić ,,na nim'' kursor i wywołać funkcję za pomocą M-x lub uprzednio zdefiniowaną kombinacją klawiszy. Wtedy Emacs uruchomi przeglądarkę, a ta z kolei wyświeli żądaną stronę.

Domyślną przeglądarką jest Mozilla; u mnie np. jest to Mozilla 1.7.12. Wraz z przejściem na wersję 22 Emacsa wróciłem do sprawy skonfigurowania Emacsa z Firefoksem i spróbowałem nastaw podanych na emacswiki.org:


(setq browse-url-browser-function 'browse-url-firefox
browse-url-new-window-flag t
browse-url-firefox-new-window-is-tab t)
(global-set-key (kbd "C-c C-L") 'browse-url)

Działa ale wyświetla każdą kolejną stronę w nowej karcie Firefoxa podczas gdy Mozilla pokazuje nową stronę w starym oknie. Wolę sposób działania Mozilli, więc pozostanę przy domyślnych ustawieniach.

niedziela, 23 grudnia 2007

Migracje grudniowe

W uczuciach jestem stały, nie lubię zmian i związanego z nimi zamieszania i ryzyka. Ale wreszcie po latach pożegnałem Telekomunikację Polską na rzecz firmy UPC. Bo UPC jest tańsze. Prawdę powiedziawszy to wcale nie będę płacił o wiele mniej -- ponieważ wybrałem dość szybkie łącze -- ale gdybym takie coś zamówił w TP to by wyszło znacząco drożej. W związku ze zmianą trzeba było kupić nowy modem, którego konfiguracja była jeszcze prostsza od tego poprzedniego, używanego z Neostradą.

Internet z UPC działa sprawnie za to firma denerwuje mnie swoją absolutnie fatalną stroną WWW. Sprawa o tyle mnie dotyczy, że w ramach umowy mam opłacać faktury via ww. stronę. Z mojego zatem punktu widzenia jej funkcjonalność sprowadza się wyłącznie do możliwości pobrania plików PDF z formularzem faktury. Wydawać by się mogło, że nie można spartaczyć tak prostego zadania. A jednak w globalnej korporacji wszystko jest możliwe: jakiś ,,myśliwy'' wymyślił, że strona będzie wykorzystywała flasha. Po co? Nie wiadomo. Za to nie działa w moim L-systemie. Być może w jakimś bardziej up-to-date by działało ale nie będę sprawdzał. Anyway sprawa jest kuriozalna...

Jest coś śmiesznego w zaufaniu tzw. przeciętnego człowieka do tzw. wielkich firm... Wracając zaś do tematu, w UPC mam mieć ten sam numer co w TP. Zobaczymy co z tego wyjdzie, bo mam niejasne przeczucie, że z tym też będzie problem.

Kontynuując temat migracji: założyłem konto looseheadprop1 na gmail i teraz jest to moja główna skrzynka. Włączyłem IMAP. Na tym etapie doszło zresztą do pewnego nieporozumienia, bo na relewantnych stronach google nie jest napisane wprost, że IMAP jest dostępny wyłącznie dla kont w języku angielskim. Innymi słowy, aby włączyć IMAP trzeba zmienić Gmail display language na English US inaczej można czekać na włączenie się IMAP ad mortem defecatus. No cóż, widocznie ten co pisał ww. stronę założył, że jak dokument jest w j. angielskim to tylko Anglosasi go przeczytają. Taka sobie logika... Problem zresztą być może już nie istnieje, albo zniknie wkrótce.

W związku z powyższym zacząłem korzystać z Thunderbirda (poprzednio używałem pine), który skonfigurowałem według wskazówek ze strony google i wszystko działa doskonale. Doinstalowałem kilka wtyczek: Attachment Extractor, Display Mail User Agent, Enigmail, Quick Locale Switcher oraz Virtual Identity. Na razie tylko korzystam z Display Mail User Agent:-). Więc jeżeli ktoś nie chce wyjść w moich oczach na buraka używającego Outlooka, to przynajmniej niech usunie z nagłówka wiersz X-Mailer (do was m.in. piję w tej chwili kol. BL:-). Wtyczka Quick Locale Switcher przyda się jak będę większego coś w języku wysyłał. Trochę mi się nie podoba sposób jej działania, ale podobna wtyczka Dictionary Switcher nie działa wcale -- i to nie tylko u mnie -- co widać po komentarzach na ww. stronie.

Tak się rozochociłem tą zmianą, że -- idąc za ciosem -- skonfigurowałem też gnusa jako alternatywę do czytania poczty. Nie wchodząc w szczegóły po co mi to, uruchomienie gnus wymagało zainstalowania Emacsa w wersji 22, bo zarówno sam pterodactyl jak i niezbędne do współdziałania z gmailem biblioteki są w wersji 21 raczej dated. W FC5 nie ma -- z tego co mi się wydaje -- wersji 22 Emacsa zatem przygotowałem pliki rpm z archiwum źródłowego. Na marginesie: w swoim czasie skompilowałem i uruchomiłem Emacsa 23, ale... Ale to jest wersja alfa. Niby działa tyle, że co pewien czas następuje crash, zatem do pracy raczej kłopotliwe narzędzie. Od dziś zamiast wersji 21 będę miał 22. Wersja 23 zaś będzie służyła promocji Emacsa w tym, a zwłaszcza, powalaniu niewtajemniczonych na kolana:-)

Zawartość plików ~/.gnus.el oraz ~/.imap-authinfo skopiowałem z bloga Aleksieja Simakowa. Ale to było za mało żeby działało. Poza tym chciałem skonfigurować gnusa do czytania grup nowości, czegu u Simakowa nie ma. Dodałem zatem:


(setq gnus-select-method '(nntp "news.task.gda.pl" ))

A do konfiguracji konta pocztowego wykorzystuję zmienną gnus-secondary-select-methods:


(setq gnus-secondary-select-methods '((nnimap "imap.gmail.com"
(nnimap-address "imap.gmail.com")
(nnimap-server-port 993)
(nnimap-authinfo-file "~/.imap-authinfo")
(nnimap-stream ssl))))

Ponieważ gnus, z niewiadomych powodów, wstawiał błędne nagłówki, ustawiające kodowanie na us-ascii, dodałem wpisy:


(setq message-default-charset 'iso-8859-2)
(setq gnus-default-charset (quote iso-8859-2))
(setq gnus-default-posting-charset (quote iso-8859-2))

Prawie OK. Tzn. w buforze *Groups* widać grupy nowości, mogę je przeglądać i wysyłać wiadomości. Niestety nie widać nigdzie folderów z gmaila. Zaś bufor *Messages* nie zawiera informacji o jakichkolwiek błędach--wygląda, że się z gmailem łączy i wszystko jest OK. Zatem guglamy dalej. No i jest odpowiedź: magiczny klawisz ^, po naciśnięciu którego faktycznie pokazują się foldery i można czytać listy. Niestety, nie można wysyłać -- wyświetlany jest błąd: Sending failed; SMTP protocol error. Znowu google. I jest wskazówka: potrzebne jest zainstalowanie: gnutls-cli. Myślałem, że już to mam, bo locate gnutls coś tam wyświetlało... Zatem:


yum install -y gnutls-utils

I wreszcie (prawie) wszystko działa.

Na koniec wrócę do Emacs jako takiego. Problemy z migracją do wersji 22 są na razie drobne i łatwe do usunięcia. Nie działa ess. Na razie wstawiłem po prostu ; przed (require 'ess-site). Nie działa zapis /ssh::~/public_html (dotyczy biblioteki tramp), należy wpisać w pełnym brzmieniu /ssh:tomasz@gnu.univ.gda.pl:~/public_html. Funkcja My-flickr-images-initmojej biblioteki do ładowania zdjęć na flickr.com wyświetliła wspaniałe okno dialogowe a la MS Windows zamiast skromnie wyświetlić pytanie w minibuforze. Nie tylko wybranie katalogu trwa kilka razy dłużej, ale na dodatek szukane są tylko istniejące pliki. To ostatnie to akurat zapewne mój błąd: parametrem interactive było "fdir: ", a powinno być:


(interactive "Fdir: ")

Tyle, że oba ustawienia działają w ,,trybie minibufora''. Na szczęście nawet deweloperzy Emacsa mieli widocznie wątpliwości co do tego czy w tym wypadku nowe jest lepsze, bo już w ww. oknie dialogowym jest podpowiedź jak wrócić do starych sprawdzonych rozwiązań:


(setq use-file-dialog nil)

Kolejny drobny problem, to nieznana funkcja compile-internal. Faktycznie w dokumentacji jest oznaczona jako obsolete ze wskazaniem compilation-start jako zamiennika. Także i w tym przypadku modyfikacja też była bardzo prosta.

Reasumując: po raz kolejny się okazało, że wszystko poszło w miarę sprawnie. No ale ja z natury jestem panikarz.

czwartek, 13 grudnia 2007

Ciągły kłopot z dźwiękiem w Skype

Ten wpis to takie przypomnienie dla mnie. Skype używam sporadycznie i jak włączę to z reguły rozmówca mnie nie słyszy bo FC5 ciągle się rozkonfigurowuje. Zatem aby mnie słyszano trzeba, np. kliknąć w środowisko-preferencje-regulacja głośności i tam przełączyć nastawy w zakładce nagrywanie tak jak to widać na zrzucie ekranowym obok. Tutaj są pomysły na permanentne rozwiązanie problemu zobaczymy czy działające...

środa, 31 października 2007

Inkscape

Do tej pory diagramy tworzyłem korzystając albo z Dia albo z Metaposta. Oba są dobre ale nie do wszystkiego więc dziś, w wolnej chwili, poświęciłem sporo czasu na rozpoznanie programu Inkscape. Jest w Inkscape nawet plugin pozwalający importować wzory generowane w LaTeXu. Plugin to nawet chyba zbyt mocno powiedziane: wzorek wpisany w okienko dialogowe jest kompilowany przez LaTeXa a następnie zamieniany na SVG za pomocą programu pstoedit. Za całość odpowiada skrypt pythonowy, u mojej Fedorze umieszczony w: /usr/share/inkscape/extensions/eqtexsvg.py.

Wprawdzie skrypt kończy działanie wyświetlając dość dziwny komunikat: Skrypt nie zgłosił błędu, jednak możliwe, że wynik jego działania jest inny niż spodziewany, sugerujący błąd, ale nie -- wszystko jest dobrze. (W mojej dystrybucji FC5 mam Inkscape w wersji 0.45 a pstoedit w wersji 3.44.) Przykładowy ekran zamieszczony jest obok.

Jeżeli ktoś używa Inkscape w systemie Windows firmy Microsoft i też chciałby wstawiać wzorki z LaTeXa, to być może pomocne będą wskazówki, które na swoim blogu umieścił Dave Herman.

niedziela, 28 października 2007

Monitor Iiyama, cd

Musiałem wrócić do tematu konfigurowania nowego monitora, bo okazało się, że pulpit w moim KDE jest przesunięty o jakieś 3 mm w prawo. Dopasowałem go ostatecznie używając programu xvidtune. Używając xvidtune trzeba pamiętać, że wszelkie manipulacje przyciskami Left, Right, Up, Down itp., w tym programie są widoczne dopiero po naciśnięciu guzika Apply (co może być dość zaskakujące--jak się nie wie, można odnieść wrażenie, że program nie działa). Z kolei guzik Show powoduje wypisanie w oknie terminala wiersza zawierającego parametry do Modeline. Moje szczęśliwe numerki, to:


"1680x1050" 188.1 1680 1820 2004 2288 1050 1051 1054 1100 -hsync +vsync

Powyższe wkleiłem do pliku /etc/X11/xorg.conf do sekcji Monitor. I jest lepiej. Tak przy okazji, po raz pierwszy pokazał mi xvidtune kol. Rysiu Kubiak, gdzieś circa 1990 r.

Okazała się też, że nie działa żaden program do odtwarzania plików video: mplayer, xine itp. W przypadku mplayera pomogło wpisanie do ~/.mplayer/config:


# Write your default config options here!
monitoraspect=1680/1050
# http://portal.suse.pl/wiki/index.php/Mplayer#xv
vo=x11

Podobnie dla xine wstawiłem do ~/.xine/config polecane:


video.driver:xshm

Tym razem rezultat jest taki sobie. Film się odtwarza ale są kłopoty z komunikacją z programem via mysz. Program jakoś niechętnie (albo wcale) reaguje na kliki. Mało korzystam z xine, nie jest to więc istotna sprawa. W wolnej chwili może uda mi się problem rozwiązać lepiej.

środa, 24 października 2007

Monitor Iiyama TFT E2001WSV

W końcu zdecydowałem się na zmianę monitora CRC na płaski. Używałem do tej pory 19 calowego modelu NEC MS95F. Straszna skrzynia, a tego kolory wyraźnie wyblakły no i przede wszystkim grzał jak piec. Po dłuższym kombinowaniu i przeglądaniu opinii w Internecie poszedłem ,,na pałę'' do Balty we Wrzeszczu bez określonych preferencji. Sprzedawca okazał się być użytkownikiem Linuksa--chyba pierwszy raz w życiu spotkałem kogoś sprzedającego sprzęt, którego wiedza nie ogranicza się wyłącznie do MSW. Pan z Balty polecał 20 calowy szeroki monitor albo 19 calowy o normalnych wymiarach ekranu--oba firmy Iiyama. Zachęcał to tego szerokiego i mówił, że sam takiego używa.

Trochę się tego szerokiego bałem, bo jakoś tak podświadomie mam zakodowane, że z nowościami mogą być problemy. A ja w tematach hardware'owych jestem totalnym ignorantem. No ale niecałe 900 zł to nie majątek więc wziąłem większy. Iiyama TFT E2001WSV. Podłączyłem i kicha: coś tam out of range, ekran czarny. Ctrl-Alt-F3 zmieniłem ustawienia ,,ręcznie'' w /etc/X11/xorg.conf na ,,generyczny LCD'' w trybie 1024x768. W tym trybie wszytko na pulpicie było oczywiście znacząco i denerwująco większe niż być powinno a ponadto prawa część pulpitu była obcięta.

Konsultując problem z google znalazłem wiele porad wzmiankujących bliżej mi nie znany wpis ModeLine (z /etc/X11/xorg.conf) o tyle nieprzyjemny, że zawierający ca 10 parametrów liczbowych, będących dla mnie kompletną czarną magią. Mój ,,stary'' xorg.conf zresztą nie zawierał ani jednego wiersza zawierającego ModeLine.

Ignorując na razie ModeLine, metodą kilku prób i błędów doszedłem do następującej zawartości pliku /etc/X11/xorg.conf (poniższy listing zawiera tylko relewantne fragmenty):


Section "Monitor"
## ...
HorizSync 31.5 - 83.0
VertRefresh 56.0 - 75.0
EndSection

Section "Device"
Identifier "Videocard0"
Driver "nv"
VendorName "Videocard vendor"
BoardName "nVidia Corporation NV11 [GeForce2 MX/MX 400]"
## poniższe wpisy znalazłem via google, być może są zbędne:
Option "NVreg_SoftEDID" "true"
Option "IgnoreEDID" "true"
EndSection

Section "Screen"
Identifier "Screen0"
Device "Videocard0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1680x1050" "1280x800"
EndSubSection
EndSection

Prawie działało. Tzn. pulpit miał w zasadzie dobre wymiary i nic nie smużyło, tylko ikony i fonty były ciągle obłędnie duże. No trudno, poddałem się na dziś. Jutro doczytam o parametrach ModeLine. Pomógł przypadek: Elka chciała pilnie wysłać pocztę, zalogowała się jako ela no i się okazało, że u niej jest ślicznie. Sprawdziłem Środowisko->Preferencje->Rozdzielczość ekranu. Było ustawione tak jak trzeba, czyli: 1680 na 1050. Okazało się, że u mnie jest ciągle 1152x864 czy coś w tym stylu. Wystarczyło zmienić i już było dobrze. Obyło się bez czytania nt. ModeLine.

Corpus delicti jest tutaj.

poniedziałek, 8 października 2007

Środowisko R i pakiet ESS: instalowanie i rozpoczęcie pracy

R to środowisko do obliczeń statystycznych i wchodzi w skład każdej praktycznie dystrybucji Linuksa. Zainstalować można go bez problemu używając yuma, jeżeli już wcześnie nie został zainstalowany domyślnie. Dokumentację w formacie html odnaleźć można w katalogu /usr/lib/R/html/.

Emacs ma wsparcie do R w postaci pakietu ESS. Instalowanie ESS jest proste: należy rozpakować i dodać do plików startowych Emacsa następujące dwa wiersze (katalog ~/.emacs-local/ess/lisp oczywiście należy dopasować do własnych ustawień):


(add-to-list 'load-path "~/.emacs-local/ess/lisp")
(require 'ess-site)

Uruchamianie ESS jest jakby nieco mniej oczywiste; być może nawet to co opisałem poniżej jest nieoptymalne. Startuję R z wnętrza Emacsa za pomocą M-x R Enter. Zostanie wyświetlone w minibuforze pytanie o katalog roboczy, np.:


ESS [S(R): R] starting data directory ...

Należy wybrać odpowiedni katalog. Po pewnej chwili Emacs przejdzie do bufora *R*, który umożliwia interaktywną pracę z R. W buforze *R* można działać w środowisku R z wnętrza Emacsa dzięki czemu pracuje się wygodniej: działa dopełnienie (Tab) oraz help (C-c C-v). Tyle, że w buforze *R* polecenia R i wyniki obliczeń są przemieszane i szybko można się pogubić. Lepiej pisać program (skrypt) R w osobnym buforze a wyniki oglądać w buforze *R* (ogólnie *R:numer-procesu*, jeżeli działamy z więcej niż jednym skryptem, tj. dla drugiego skryptu zostanie utworzony bufor *R:2*, dla trzeciego *R:3*, itd.). Aby to osiągnąć należy otworzyć (nowy) plik za pomocą standardowego polecenia C-x C-f. Plik powinien mieć rozszerzenie .r. Bufor przejdzie do trybu ESS co zostanie zasygnalizowane pojawieniem się napisu ESS w wierszu trybu (modeline).

W tym buforze także działa pomoc (C-c C-v) i dopełnianie (C-c C-Tab). Pojedynczy wiersz ze skryptu R można uruchamiać za pomocą ess-eval-line (C-c C-j; uwaga: polecenia podzielone na wiersze wymagają naciśnięcia C-c C-j dla każdego wiersza); cały blok poleceń zaś za pomocą ess-eval-region (C-c C-r). Drobna niedogodność to przechodzenie pomiędzy różnymi oknami: tematów pomocy, R oraz bufora ze skryptem R (ESS otwiera/zamyka okna mało ,,intuicyjnie''). Ponieważ skrypty R są krótkie dobrym pomysłem jest podział ekranu na pół (C-x 2) i wyświetlanie w drugim oknie bufora *R*.

Prosty przykład wykorzystania R do określenia związku między poziomem korupcji a sposobem głosowania w sprawie zaakceptowania przez ISO specyfikacji OOXML można znaleźć w Corrupt countries were more likely to support the OOXML document format (Kai Puolamäki). Rysunek obok pokazuje wykonanie skryptu R z ,,wnętrza'' Emacsa (jak widać nawet okno zawierające histogram też się ładnie wyświetliło).

środa, 5 września 2007

Instalowanie pdftk

W uzupełnieniu informacji o manipulowaniu plikami PDF dziś wypróbowałem program pdftk do dzielenia plików PDF na strony. Działa. Jedyny kłopot był z instalacją. Z pomocą yuma się nie dało. Z pliku *.src.rpm ani kompilując ze źródeł też nie, bo za każdym razem był zgłaszany jakiś błąd. Znalazłem wreszcie działający pdftk-1.12-7.fc5.i386.rpm pod 'egzotycznym' adresem: linuxmirror.museum.state.il.us

Przy okazji zmieniłem swój skrypt do publikowania wpisów na tym blogu. Ułatwić sobie chciałem, żeby mi skróty rozwijał do pełnych adresów URL. Nie wchodząc w banalne szczegóły, problem pojawił się w miejscu, w którym apostrof i cudzysłów miały być częścią perlowego wyrażenia regularnego cytowanego w skrypcie basha. Jakoś tak:


perl -ne '..coś-tam...; s/blog:["'] ...itd... '

Po dłuższym kombinowaniu (głównie wokół dokumentów HERE) wreszcie wpadłem na oczywiste rozwiązanie:


perl -ne 'my $qchars = "\042\047"; ...coś-tam; s/blog:[$qchars] ...itd... '

wtorek, 28 sierpnia 2007

Ładniejszy Emacs, uzupełnienie

W nawiązaniu do tekstu nt. Emacsa, kol. Wanted podpowiedział, że oprócz Bitstream Vera, który faktycznie nie ma za dużo diakrytyków, jest klon tego fontu z dużą liczbą znaków pn. DejaVu (DejaVu fonts). Spróbowałem to zainstalować wpisując yum install dejavu-fonts, ale się nie udało:


Error: dejavu-fonts conflicts with fontconfig >= 2.3.0

Hmm, dziwne. Żeby czegoś nie popsuć wolałem działać ostrożnie. Rozpakowałem archiwum .rpm:


rpm2cpio dejavu-fonts-2.18-1.rf.noarch.rpm | cpio -idv

W środku nie było nic nazwyczajnego. Pliki ttf + dokumentacja. Pliki .ttf umieściłem ręcznie w /usr/share/fonts/dejavu/. Na wszelki wypadek uruchomiłem w tym katalogu mkfontdirmkfontscale. Uruchomiłem Emacsa w następujący sposób:


/usr/local/emacs23/bin/emacs-23.0.0 --font "DejaVuSansMono-14" --multibyte

Wygląda, że działa. Przy okazji i zupełnie przypadkowo wygooglałem informację nt. projektu fontów STIX. Z tego co wyczytałem ma to być podobna do Times New Roman rodzina bogatych w diakrytyki fontów. Na dniach mają być gotowe i upublicznione. Zobaczymy, być może będzie to coś ciekawego.

poniedziałek, 20 sierpnia 2007

Ładniejszy Emacs

Kierując się wskazówkami ze strony www.emacswiki.org skompilowałem Emacsa 23, wersja alfa. Ten Emacs umie wreszcie korzystać z dobrej jakości fontów TrueType dzięki wsparciu Xft. Zatem:


cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/emacs co -r emacs-unicode-2 emacs
./configure --with-gtk --enable-font-backend --with-xft --prefix=/usr/local/emacs23
make
mkdir /usr/local/emacs23
chown tomek:tomek /usr/local/emacs23

Na wszelki wypadek dociągnąłem jeszcze yum install giflib-devel, bo ./configure zgłosił błąd (po co mi gify?). Oczywiście nie chcę zmieniać starego emacsa na wersję alfa, stąd pomysł zainstalowania wszystkiego w katalogu /usr/local/emacs23. Będę miał dwa The one true editor -- prawdziwie skumulowana potęga.

Teraz uruchamiam:


emacs --font "Bitstream Vera Sans Mono-10"

Krój Vera fajnie wygląda, ale polskich ogonków nie ma, i nawet nie jest to wina Emacsa tylko po prostu nie ma ich w foncie (Bitstream Vera Fonts).

Spróbowałem zatem z innym ustawieniem, i po dłuższym kombinowaniu czemu zamiast polskich znaków widzę coś zupełnie innego udało się:


## emacs-23 zdaje sie działać:
/usr/local/emacs23/bin/emacs-23.0.0 --font "Monospace-13" --multibyte

Na etapie rozruchu dodałem jeszcze --debug-init, dzięki czemu szybko ustaliłem co się gryzie ze starego .emacs i innych plików startowych z nowym Emacsem. Nie było tego dużo: hscroll-global-mode, pakiety session, trampjde. Zamiast session w dystrybucji Emacsa jest desktop.el; tramp.el też jest już w dystrybucji -- konflikt dotyczył starej wersji. Dodałem zatem kilka warunków w stylu:


(if (< emacs-major-version 22)
(progn (require 'session)
(add-hook 'after-init-hook 'session-initialize))
(progn (desktop-save-mode 1)
;; Customization follows below
(setq history-length 250)
(add-to-list 'desktop-globals-to-save 'file-name-history)) )

Emacs faktycznie używa fontu TrueType. Można to sprawdzić, np. za pomocą sposobu podanego w CSE HUJI Emacs Fonts HOWTO:


(frame-parameter nil 'font)

Wpisujemy powyższe do dowolnego bufora, ustawiamy kursor za zamykającym nawiasem a następnie C-x C-e. W minibuforze pojawi się:


"-b&h-luxi mono-medium-r-normal--15-*-*-*-*-*-fontset-startup"

Wygląda zatem, że to luxi mono Charlesa Bigelowa i Krisa Holmesa.

Jakość (czytelność) tekstu jest faktycznie znacząco lepsza, ale z wyświetlaniem poszczególnych znaków (na pierwszy rzut oka) jest różnie: niektóre znaczki jakby trochę są krzywe:-). Może to kwestia fontu? Sprawa wymaga dalszego zbadania. Poniżej dwa przykładowe ekrany (jak się kliknie to będą większe):

Emacs Emacs

wtorek, 31 lipca 2007

Fuji FinePix A820

No i kupiłem z rekomendacji kol. Wanteda nowy aparat Fuji FinePix A820. Przy okazji się dowiedziałem (ale już po zakupie), że nie każdy aparat cyfrowy da się zamontować, ot tak po prostu wsadzając kabel do portu USB. Mówimy o systemie Linux, of course. Systemu, do którego producent dostarczył sterowniki jakoś nie zamierzam używać. Okazało się też, że takie aparaty obsługuje program gphoto2. Jakoś do tej pory nie widziałem potrzeby jego używania a teraz nie mam wyjścia.

Kol. Wanted radził też spróbować gphotofs albo mtpfs. Pierwszy z wymienionych wykorzystuje bliżej mi nieznany FUSE i pozwala zamontować aparat wykorzystujący protokół PTP. Nawet się zainstalowało w moim FC5:


yum install gphoto2
yum install fuse fuse-devel gphoto2-devel libexif-devel

wget http://orion.lcg.ufrj.br/RPMS/src/gphotofs-0.3-1.fc6.lcg.src.rpm
rpm -ivh gphotofs-0.3-1.fc6.lcg.src.rpm
rpmbuild -ba /usr/src/redhat/SPECS
rpm -Uvh /usr/src/redhat/RPMS/i386/gphotofs-*

Wpisałem też do /etc/fstab:


gphotofs /media/camera fuse users,rw,noauto,defaults 0 0

No i tyle dobrych wieści. Jak wpiszę:


gphotofs /media/camera

system wisi i nic się nie dzieje. Może za jakoś czas; póki co na liście dostępnych aparatów (gphoto2 --list-cameras | grep -i Fuji) są różne Fuji, ale modelu FinePix A820 akurat nie ma.

Posługiwanie się gphoto2 z wiersza poleceń o tyle jest niewygodne, że nie są wyświetlane daty (Albo ja nie wiem jak to osiągnąć). W połączeniu z tym, że nie lubię kasować zdjęć od razu po zgraniu na dysk, jest problem bo nie wiadomo, które zdjęcia są bieżące, a które stare. Same kłopoty z tym Fuji...

Jakimś rozwiązaniem jest gtkam, kolejna aplikacja z projektu gphoto2. Odpowiednie pliki .rpm znalazłem w archiwum http://drpixel.tuxfamily.org/, z którego wcześniej nie korzystałem, zatem najpierw:


rpm -ivh http://drpixel.tuxfamily.org/fedora/drpixel-release-1-1.noarch.rpm

a następnie:


yum install --enablerepo=drpixel gtkam gtkam-gimp-plugin

W promocji został jeszcze zainstalowany pakiet libexif-gtk. Gtkam wyświetla miniaturki zdjęć, można je zaznaczać używając prawego przycisku myszy, kopiować i/lub usuwać.

Ostatni problem do rozwiązania: dlaczego gphoto2 nie widzi portu USB, jeżeli działam jako zwykły użytkownik. Coś nie tak z dostępem, tylko co?


gphoto2 --list-files
Wystąpił błąd w bibliotece io \
('Nie udało się zawłaszczyć urządzenia USB'):

Jest trochę stron w google na temat udev, gphoto2 i wyżej wymienionego problemu dostępu. Jest też rozdział na ten temat w dokumentacji gphoto2. Próbowałem różnych podpowiedzi -- guzik działa. Ostatecznie, okazało się, że jak się włączy usługę haldaemon to wszystko jest OK (Uprzednio ją wyłączyłem, bo wydawała się niepotrzebna.) Zresztą czy wszystko, to się okaże -- przynajmniej gphoto2 działa lepiej.