wtorek, 28 kwietnia 2009

Kamień Ernsta Becker-Lee

Skręt do kamienia
Tu skręcić do lasu
Kamień Ernsta Becker-Lee
Kamień Ernsta Becker-Lee

Mniej znana atrakcja Gdańska położona w dolinie Radości. Dojście wygląda następująco: Kierujemy się na hotel Oliwski Dwór. Jak już do tego hotelu dojdziemy to należy iść w górę, wzdłuż doliny ścieżką na skraju lasu (mając ogródki działkowe po lewej ręce). Mijamy małe jeziorko i wychodzimy na łąkę. Teraz trzeba zachować czujność i skręcić w prawo do lasu (miejsce skrętu ma współrzędne (54.399598/18.529976, cf. górne zdjęcie zamieszczone obok). Idziemy według znaków czarnego szlaku. Po przejściu 20--30 metrów droga się rozwidla. Idziemy w lewo (wzdłuż szlaku, tyle że niekoniecznie jest to oczywiste, bo znaczek może być słabo widoczny). Po 100--200 metrach będzie widać skocznię na lewym zboczu doliny (a raczej to co ze skoczni zostało). Dokładnie naprzeciwko skoczni znajduje się kamień--płyta pamiątkowa.

Płyty z dołu nie widać. Trzeba wejść na prawe zbocze--dokładnie naprzeciw zeskoku skoczni (współrzędne 54.40047/18.52563). Informacje nt. płyty są także tutaj oraz tutaj.

Przy okazji jak załadować plik GPX do Garmina (za wiki.gpsbabel.org):


gpsbabel -w -i gpx -f ~/.gps/local.wpts -o garmin -F /dev/ttyUSB0

Nota bene stojąc na rozbiegu skoczni płytę widać doskonale.... Dziwny pomysł na zmotywowanie zawodników:-)

Dopisane 6 maja 2009: Informacja z Panoramy Gdańskiej zamieszczona na youtube.com

TV w Linuksie

W uzupełnieniu do wpisu: TV w Internecie oglądam więcej niż sporadycznie ale dziś chciałem pooglądać mecz Barcelona vs Chelsea i nie potrafiłem uruchomić sopcasta. Ostatecznie zadziałał sposób podany na blogu Mateusza Wójcika, tj. poprzez uruchomienie skryptu (lekko zmieniony przez dodanie if-then-else-fi):


#!/bin/bash
if [ $1 ]
then
sp-sc $1 3908 8908 > /dev/null &
echo "Poczekaj 20 sekund na scachowanie danych i otworzenie odtwarzacza..."
sleep 20
mplayer http://localhost:8908/tv.asf
echo "Zamykanie polaczenia..."
killall sp-sc
else
echo "Podaj kanał..."
fi

Adres kanału znalazłem na stronie http://www.soccer-live.pl/.

niedziela, 26 kwietnia 2009

Drukowanie arkusza Google docs

W przykładzie poniżej Perl pobiera dane z arkusza Google Docs, i zapisuje je do pliku tymczasowego. Następnie TeX -- uruchomiony ,,z wnętrza'' skryptu -- formatuje ww. dane (układ graficzny jest zdefiniowany w stylach (por. \input brasskoncert.sty):


use Net::Google::Spreadsheets;
use Getopt::Long;
use Encode qw(encode);

my $STitle = 'Konkurs_Brass'; # nazwa arkusza do pobrania
my $pdftexprogname = 'pdfmex'; # nazwa programu uruchamiającego TeXa
my $outputname = "tmp__.tex"; # nazwa pliku tmp

my $pdfintermode = "-interaction=nonstopmode"; # lepsze niż "-interaction=batchmode";

GetOptions( 't=s' => \$title,);

## nazwy kolumn w arkuszu:
my @Cols = ('nazwisko', 'kraj', 'instrument', 'srednia');

my $service = Net::Google::Spreadsheets->new(
username => '???', password => '???' );

my @spreadsheets = $service->spreadsheets();

my $spr_title = $service->spreadsheet( { title => "$STitle" });
my $worksheet = $spr_title->worksheet( { title => 'sheet1' });
my @rows = $worksheet->rows;

open (OUT, ">$outputname") || die "Nie mogę otworzyć $outputname.tex!\n\n";
print OUT "\\input brasskoncert.sty\n\\HEAD{$title}\n";

for $r (@rows ) { $rc = $r->content; print OUT "\\Row";
for $t (@Cols ) {
print OUT "{", encode("iso-8859-2", ${$rc}{$t}), "}";
}
print OUT "\n";
}

print OUT "\\TAIL \\bye\n";

close (OUT);

my @run_pdftex = ($pdftexprogname, $pdfintermode, $outputname);
system ( @run_pdftex ) == 0 || die "Cuś nie tak\n" ;
##

Być może da się prościej, bez Net::Google::Spreadsheets a poprzez LWP...

piątek, 24 kwietnia 2009

Elka w wikicommons

Skrypt Erika Möllera , którego używałem do ładowania zdjęć na WikiCommons przestał działać. Konsultacja na stronie wykazała, że jest outdated and should be considered deprecated and useless. Program proponowany w zamian nie podoba mi się. Może i jest dobry, ale zbytnio się różni od poprzedniego a ja nie mam czasu go rozgryzać. Znalazłem za to poprawioną wersję skryptu Möllera, która działa, tutaj (lub tutaj).

Jest ciągle problem z kodowaniem (używam domyślnie ISO-8859-2), bo po przesłaniu na WC tekst jest niepoprawnie zakodowany. Metodą prób i błędów ustaliłem, że działa dopisanie na początku skryptu czegoś takiego:


binmode( STDOUT, ':utf8' );
use open IN => ':encoding(iso-8859-2)'; ## I am using legacy encoding, ha!
use open OUT => ':utf8'; ## write utf8

Opis zdjęcia w pliku tekstowym jest w ISO, po przesłaniu na WC kodowanie jest OK. Próbowałem wysyłać pliki kodowane jako UTF-8, ale to też nie działało (mój perl jest w wersji v5.8.8).

Rysunek obok znalazłem przypadkiem. Ktoś skopiował moje zdjęcie z flickr.com na WC dodając zabawny opis...

Przy okazji ustaliłem jak przejść do ,,trybu UTF'' otwierając nowy plik w Emacs: C-x C-m f utf-8

Jak przekazać liczbę do AWK

Z tej racji, że na mojej stronie jest trochę informcji nt. AWK spory odsetek ją odwiedzających szuka informacji właśnie nt. tego języka. Z wpisów w logu serwera WWW dotyczących pola REFERER wynikałoby m.in., że nie jest oczywiste -- dla niektórych -- w jaki sposób można przekazać wartość zmiennej do skryptu AWK (Jak przekazać liczbę do AWK). Jest o tym napisane w Opisie... -- a konkretnie tutaj Argumenty wywołania programu -- może zbyt szczegółowo. Poniżej zatem bardziej łopatologiczny przykład:


gawk -v qq="A ku ku" 'BEGIN { print qq }'

Albo via skrypt shella:


#!/bin/bash
ARG1="$1"
ARG2="$2"
gawk -v A1="ARG1" -v A2=ARG2 'BEGIN { print A1, A2 }'

poniedziałek, 6 kwietnia 2009

Write only publications

Bynajmniej nie chodzi o nieprawomyślną (dla wyznawców Lecha W.) książkę mgr. Zyzaka (żart -- sarkastyczny do tego). O co chodzi można poczytać tutaj: Write-only publications. A tutaj jest to samo z grubsza, ale trochę inaczej opisane: IGI Global and Other Vampire Presses...

Vampire Press -- celne porównanie, trzeba to przyznać.