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
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
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.
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.
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.
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-init
z mojej 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.
Zrezygnowałem wreszcie z używania do komunikacji z GPSem programu GPSman na rzecz GPSBabela. Ten pierwszy jest programem interaktywnym a przez to niezbyt wygodnym bo trzeba się trochę naklikać żeby przegrać zawartość pamięci Geko na PC. GPSBabel działa w trybie wsadowym, dzięki czemu można oszczędzić dużo (cennego) czasu:
#!/bin/bash TODAY=`date +"%Y%m%d"` # zapisz do pliku yyyymmdd.gpx gpsbabel -t -r -w -i garmin -f /dev/ttyS0 -o gpx -F "$TODAY.gpx"
Przyznać muszę, że podchodziłem do tego GPSBabela jak do jeża bo przy poprzednich próbach coś mi tam nie działało. A niesłusznie -- wystarczyło przeczytać dokumentację.
Najwięcej czasu straciłem zresztą na podłączeniu Garmina do komputera.
Mój Geko 301
jest podpięty do PC standardowym ,,fabrycznym'' kablem
pn. RS232 serial port connector
(part number: 010-10310-00). Port szeregowy, tj. /dev/ttyS0
w nomenklaturze Linuksa, w FC5 jest dostępny tylko dla superużytkownika.
BTW mam poczucie, że wcześniej był dostępny dla wszystkich.
Kłopot ten rozwiązałem w sposób przedstawiony
tutaj:
ls -l /dev/ttyS0 crw-rw---- 1 root uucp 4, 64 gru 18 2007 /dev/ttyS0 /usr/sbin/usermod -G uucp tomek # dodanie tomka do grupy uucp
Uwaga: program usermod
działa tak, że jeżeli
użytkownik jest obecnie członkiem grupy, której nie podano na
liście--wartości opcji -G
, to zostanie z niej usunięty.
Lepiej więc zwyczajnie uruchomić vi
i dopisać co trzeba
do /etc/groups
.
Mając już zgrany ślad (track) i punkty (waypoints)
zacząłem kombinować co dalej z tym robić. Sposób w jaki publikuję
moje ślady korzysta
z biblioteki
gpx-viewer
Kaza Okudy. Każdy punkt z pliku GPX jest przedstawiony w postaci
standardowej ,,pinezki'' znanej z google maps. Pinezka po
kliknięciu zamienia się w okienko zawierające zawartość
elementów-dzieci elementu wpt
(tj. ele
,
name
, cmt
, desc
oraz sym
)
oraz atrybuty tego elementu (lat
i lon
), np.:
<wpt lat="54.443087485" lon="18.540491704"> <ele>69.340332</ele> <name>168</name> <cmt>168</cmt> <desc>168</desc> <sym>Flag</sym> </wpt>
Gdyby ww. element zawierał element extension
, to
pokazana by była tylko zawartość extension
.
W przykładach ze strony Okudy extension
zawiera
element img
zawierający z kolei zdjęcie
zrobione w tym właśnie miejscu:
<wpt lat="49.237919" lon="-122.760106"> <ele>4.0</ele> <name>Photo 2</name> <extensions><html><![CDATA[ <a href="http://okuda.blogspot.com/2005/07/traboulay-poco-trail.html" target="_blank"> <img src="blog/2005-07/IMG_2370-01.jpg" /> </a> ]]></html></extensions>
Teraz mała dygresja: odsyłacze do zdjęć na flickr.com są tworzone według pewnego schematu.
Strona główna zdjęcia ma adres http://www.flickr.com/tprzechlewski/<photo_id>/
, gdzie
<photo_id>
oznacza identyfikator zdjęcia.
Plik ze zdjęciem ma zaś następujący URL:
http://static.flickr.com/<server>/<photo_id>_<secret>_<size>.jpg
Wartości <server>
oraz <secret>
można ustalić
np. poprzez wykonanie metody flickr.people.getPublicPhotos
.
Wartościami size
są s
(square), t
(thumbnail), m
(small), b
(large), o
(original). Oznaczają one odpowiednio pliki o wielkościach
75, 100, 200, 1024 pikseli i wielkość oryginalną. Rysunek typu
square to kwadrat, pozostałe to prostokąty o dłuższym boku
równym podanej licznie pikseli. Prostokąt o dłuższym boku równym 500 pikseli
to wielkość zdjęcia, która jest wyświetlana na stronie głównej zdjęcia.
Ta wielkość
jest wybierana jeżeli URL nie zawiera części _<size>
.
Ja chciałem żeby element img
wewnątrz extension
w pliku GPX
wskazywał na zdjęcie w rozmiarze thumbnail
na flickr.com a element a
odsyłał na stronę główną tego zdjęcia. Żeby nie wpisywać
kodu ręcznie wymyśliłem to następująco.
Za pomocą skryptu
flickr_getphotolist.pl
pobieram informacje nt. wszystkich zdjęć (publicznych, ale to ograniczenie
akurat jest OK). Skrypt zapisuje informacje w postaci następującej listy haszy:
@photos = ( {'owner' => '20425995@N00','isfriend' => '0','ispublic' => '1','secret' => '95826dcd42',\ 'farm' => '3','title' => 'dscf1209','server' => '2343','id' => '1747402167','isfamily' => '0'}, ...
do pliku ~/.flickr/hr.icio.ph
. Prosty skrypt zwraca kompletne
adresy URL po podaniu tytułu zdjęcia (działa przy założeniu, że tytuły są unikatowe):
#!/usr/bin/perl require "$ENV{HOME}/.flickr/hr.icio.ph" ; $photo_title = shift; for (@photos) { if ($photo_title eq $_->{title} ) { print "<extensions><html><![CDATA[ <a href=\"http://www.flickr.com/tprzechlewski/$_->{id}/\" target=\"_blank\"> <img src=\"http://static.flickr.com/$_->{server}/$_->{id}_$_->{secret}_t.jpg\" /> </a> ]]></html></extensions> \n"; } }
Teraz wystarczy dopisać w .emacs
funkcję, która w miejscu wywołania albo zapyta
o tytuł zdjęcia, albo pobierze go sama z wiersza gdzie jest kursor po czym wstawi to co
wypluje ww. skrypt do Emacsowego bufora. Genialne:-)
Na próbę dodałem zdjęcia do śladu
wygenerowanego 16. 12. 2007 r.
BTW patrząc na ten dziwny ślad nie mogę się powstrzymać od sarkazmu, mając w pamięci opinię niejakiej squishy z forum flickr.com: ... it's smaller than many cell phones and I think it's fabulous. I just turn it on and toss it in a backpack, then download the track log later to sync with photos... Gdzie ona mieszka? Na pustyni Gobi? Albo pracuje w Garminie... Albo to sync with photos jest plus/minus 10 kilometers. Bo mój geko 301 prawie zawsze zgubi ślad w trudnym terenie typu las, duże budynki, głębokie doliny itp...
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...
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.
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.
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.
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).
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... '
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 mkfontdir
i mkfontscale
. 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.
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
,
tramp
i jde
. 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):
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.