czwartek, stycznia 21, 2010

Sita Sings the Blues

Wow. Ten film animowany mnie po prostu oczarował. Co mam tu na myśli? Oczywiście tytułowy "Sita Sings the Blues" autorstwa Niny Paley. Po pierwsze mamy tu ciekawie animowaną Ramajanę, czyli indyjski epos o dziejach Ramy (siódme wcielenie boga Wisznu) i jego żony Sity. Po drugie jest to nowożytna, autobiograficzna opowieść o rozpadzie związku stawiająca istotne pytanie - "dlaczego?". Po trzecie jest to musical, w którym usłyszymy piosenki Annette Hanshaw, jazzowej piosenkarki z lat dwudziestych i trzydziestych XXw. Zaskoczyło mnie jak można w taki sposób pogodzić ze sobą tyle odmienności, ale reżyserce naprawdę się to udało!
Rama, Hanuman i Sita
Co ciekawe film jest rozpowszechniany na licencji Creative Commons Uznanie autorstwa-Na tych samych warunkach, co oznacza, że film możemy swobodnie kopiować, rozpowszechniać i odtwarzać (zachęcam do obejrzenia w gronie znajomych). Na oficjalnej wiki filmu możemy też znaleźć napisy m.in. w języku polskim (kodowane w UTF-8). Oniemiałem gdy dowiedziałem się, że film był całkowicie tworzony na domowym komputerze, a nie na jakimś klastrze renderującym, czy też przez profesjonalne studio animatorskie. Z drugiej strony to od czasu "Katedry" Tomka Bagińskiego nie powinno mnie dziwić, że dobry film animowany może powstać w domowych czterech ścianach.

czwartek, stycznia 14, 2010

2 minutes

Nie lubię chodzić do stomatologa, no bo w końcu kto lubi? Ba, można powiedzieć, że mam taką fobię do tego typu wizyt. Zapewne wzięło mi się to po traumatycznym wyrywaniu zęba mlecznego przez lekarza, który ewidentnie minął się z zawodem (facet mógł zostać całkiem niezłym rzeźnikiem, a poszedł na medycynę). Jak zaraz po komunie wyglądała służba zdrowia to każdy chyba wie. Człowiek się cieszył, że po odstaniu swojego w kolejce wreszcie go zaczęli leczyć. Empatia dla pacjenta? Ha, good joke. Wracając do tematu - chodzę jak już naprawdę muszę. A ostatnio naprawdę muszę. Rozbolała mnie "ósemka" i chciałbym ją usunąć. Zadzwoniłem, umówiłem się na wizytę. Półtora tygodnia czekania. Gdyby nie paracetamol i kodeina to pewnie chodziłbym po suficie tylko po to, by myśleć o czymś innym niż ból zęba...

Dziś był termin. Często zdarza mi się spóźniać, więc przyszedłem wcześniej. Siedzę sobie w poczekalni i słyszę jak z gabinetu dochodzą dźwięki różnych wierteł wżynających się w kość. Po jakiś pięciu minutach przyszła do pracy, chyba pani radiolog i nawiązała się taka dyskusja radiolog-stomatolog:
No, bo wiesz ten mój teściu to ma fatalne zęby. Jak mu tą szóstkę wyrywano to było ciężko. Nie dość, że się ząb złamał na pół od tych dźwigarów to mu strasznie ropa poleciała. Dużo mu się tej ropy nazbierało pod tym zębem. Trzeba było przerwać na piętnaście minut, żeby najpierw wszystko wyciekło. A mówię ci nieźle go bolało. Zużyliśmy trzy ampułki tego normalnego środka znieczulającego i jedną tą... mocniejszą.
Całej historii wysłuchałem oczywiście przy akompaniamencie brzęczącego wiertła. Nie ma to jak poczuć klimacik z gatunku survival-horror zanim się jeszcze wejdzie do gabinetu... W końcu przyszła moja kolej. Pani doktor zajrzała i stwierdziła: "My nie usuwamy ósemek. Tu trzeba chirurga. Umówię Pana na termin. Najbliższy jest za dwa tygodnie. Może być?". Dwie minuty i nie było mnie już w gabinecie. Najszybsza wizyta u stomatologa jaką w życiu miałem. Tak się teraz zastanawiam, czy mam się z tego powodu cieszyć, czy płakać. Może po prostu powinienem iść na spacer... po suficie.

piątek, grudnia 11, 2009

Excuse me

Sam nie wiem jak to się stało, że całe dwa miesiące nic nie pisałem. Najwidoczniej podczas drogi na uczelnię nie przejechał mnie autobus skoro teraz piszę te słowa ]:) Brak nowych wpisów mogę w zasadzie zwalić tylko na 3 rzeczy:
  1. zepsuł mi się laptop
  2. byłem zawalony pracą
  3. mam dziewczynę
O ile punkty 1 i 2 nie są usprawiedliwieniami, o tyle moja dziewczyna aktualnie zabiera większą część mojego czasu wolnego. No dobrze. Będę szczery i przyznaję się do winy - jestem leniwy i ostatnio mi się nie kleiły ręce do pisania. Postawiłem, więc sobie postanowienie grudniowe - zadbać o organizację swojego czasu, powalczyć z zimowym rozleniwieniem i napisać kilka notatek. Następna już niebawem tzn. po kilku ostatnich beta testach kodu.

wtorek, września 08, 2009

GPRS on Linux Part 2 - Bluetooth

Było o GPRS przez USB, a teraz czas zabawić się znów Bluetooth'em. Konkretnie to profilem DUN. W tym celu potrzebny będzie włączony protokół rfcomm (ot, taki sobie emulowany port szeregowy, tylko że bezprzewodowy). Zakładam, że BT już zostało skonfigurowane i urządzenia zostały sparowane. Teraz przyda się polecenie sdptool wchodzące w skład pakietu bluez.
# sdptool search DUN
Inquiring ...
Searching for DUN on 00:XX:XX:XX:XX:EA ...
Service Name: Dial-up Networking
Service RecHandle: 0x10002
Service Class ID List:
  "Dialup Networking" (0x1103)
  "Generic Networking" (0x1201)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 2
Profile Descriptor List:
  "Dialup Networking" (0x1103)
    Version: 0x0100
Polecenie odpytało wszystkie znajdujące się pobliżu urządzenia BT czy dostarczają usługi Dialup Networking. Jak widać laptop znalazł moją komórkę i wykrył, że może ona działać jako modem używając protokołu rfcomm na kanale 2. Informacja odnośnie kanału na którym pracuje telefon, będzie nam potrzebna. Edytujemy plik /etc/bluetooth/rfcomm.conf wpisując zdobyte informacje.
#
# RFCOMM configuration file.
#

rfcomm0 {
#       # Automatically bind the device at startup
        bind yes;
#
#       # Bluetooth address of the device
        device 00:XX:XX:XX:XX:EA;
#
#       # RFCOMM channel for the connection
        channel 2;
#
#       # Description of the connection
        comment "Lightnirs SE k550";
}
Teraz restartujemy demona bluetooth, aby zastosować zmiany. # /etc/rc.d/bluetooth restart Do komórki będziemy odwoływać się jako urządzenia /dev/rfcomm0. Podobnie jak w przypadku GPRS poprzez USB będą nam potrzebne dwa pliki - jeden do negocjacji połączenia, a drugi do ustawień pracy modemu. Pierwszy plik (/etc/ppp/chat-era) wygląda dokładnie tak samo jak w wersji GPRS poprzez USB, co jest logiczne skoro dostawca internetowy jest ten sam. Ponieważ tym razem modem to inne urządzenie (z punktu widzenia systemu), więc wymaga nieco innych ustawień. Utworzyłem sobie taki oto plik konfiguracyjny /etc/ppp/peers/erabt
/dev/rfcomm0
115200
defaultroute
usepeerdns
crtscts
lock
hide-password
holdoff 3
maxfail 3
ipcp-accept-local
lcp-echo-failure 12
noauth
novj
novjccomp
persist
mtu 1500
mru 1500
linkname erabluetooth
#nodetach
#debug
connect '/usr/sbin/chat -v -f /etc/ppp/chat-era'
Teraz o ile użytkownik posiada odpowiednie uprawnienia (por. "GPRS on Linux Part 1 - USB") może nawiązać połączenie wykonując sudo pon erabt Analogicznie by się rozłączyć wpisujemy sudo poff erabt. Na koniec jeszcze małe zestawienie wad i zalet GPRS przez USB oraz Bluetooth. Zaletą Bluetooth niewątpliwie jest wygoda użytkowania, bo nie trzeba nosić ze sobą dodatkowego kabla by podłączyć telefon. Niestety technologia Bluetooth w porównaniu z np. z Zigbee działającym na tym samym paśmie jest naprawdę prądożercza i zakłada, że urządzenia BT będą w miarę często ładowane. Nie jest to więc optymalne rozwiązanie jeśli jesteśmy w szczerym polu i laptop posiada nie w pełni naładowaną baterię. Wariant z USB jest bardziej korzystny, ale telefon posiada ustawienia fabryczne, które włączają automatyczne ładowanie akumulatora podczas połączenia USB. Całe szczęście można to wyłączyć korzystając z ukrytego menu serwisowego. By się do niego dostać w telefonach Sony Ericsson trzeba wystukać następującą sekwencję na klawiaturze → * ← ← * ← *, gdzie strzałki to ruchy joysticka. W menu serwisowym wybieramy "Ustawienia usług" -> "Ładowanie wył."

Ach, aż mam ochotę wybrać się gdzieś na łono natury. Tylko ja, świeże powietrze, rower, laptop i komórka... ]:)

sobota, września 05, 2009

GPRS on Linux Part 1 - USB

Jak już się bawię tym moim telefonem pod pingwinem to opiszę jeszcze jak można z niego korzystać jako modemu zarówno pod USB, jak i pod Bluetooth. Osobiście uważam to za dość przydatną funkcję, bo już parę razy zdarzyło mi się, że byłem gdzieś głęboko w sercu borneańskiej dżungli i musiałem nagle wysłać kilka ważnych maili, albo zrobić przelew. Przejdźmy jednak do konkretów. Podpięcie SE k550 za pomocą kabla USB do komputera powoduje wykrycie go jako dwóch urządzeń szeregowych: /dev/ttyACM0 i /dev/ttyACM1.
# dmesg | tail
usb 2-2: new full speed USB device using uhci_hcd and address 9
usb 2-2: configuration #3 chosen from 1 choice
cdc_acm 2-2:3.1: ttyACM0: USB ACM device
cdc_acm 2-2:3.3: ttyACM1: USB ACM device
cdc_wdm 2-2:3.7: cdc-wdm-176: USB WDM device
usb0: register 'cdc_ether' at usb-0000:00:1d.0-2, CDC Ethernet Device, 02:80:37:09:03:00
Po podpięciu kabla na telefonie wybieramy "Połączenie USB: Tryb telefonu". Teraz pozostaje jedynie konfiguracja komputera. Niezależnie od metody połączenia (USB, BT) i używanego programu trzeba najpierw skonfigurować sposób negocjowania połączenia zależny od naszego dostawcy. Ponieważ posiadam telefon w Erze utworzyłem sobie plik /etc/ppp/chat-era, który wygląda następująco:
TIMEOUT 5
ECHO OFF
ABORT 'BUSY'
ABORT 'NO ANWSER'
ABORT 'ERROR'
ABORT 'NO CARRIER'
SAY "Ustawianie polaczenia...\n"
'' 'ATZ'
SAY "Ustawiam APN\n"
OK 'AT+CGDCONT=1,"IP","erainternettt"'
SAY 'Wydzwaniam...\n'
OK 'ATD*99***1#'
SAY "Czekam na polaczenie....\n "
CONNECT ""
SAY "POLACZONO. Milej zabawy ]:)\n"
Wytłuszczony fragment jest loginem jaki używamy w danej sieci komórkowej. W Tak Taku jest to "erainternett", w Plusie "www.plusgsm.pl", a w Orange i Play "internet". Następnie zabieramy się za utworzenie pliku konfiguracyjnego dla wywoływania połączenia. Mój /etc/ppp/peers/era wygląda tak:
/dev/ttyACM0
115200
noipdefault
usepeerdns
defaultroute
crtscts
lock
hide-password
holdoff 3
ipcp-accept-local
lcp-echo-failure 12
noauth
novj
novjccomp
persist
#nodetach
#debug
connect '/usr/sbin/chat -v -f /etc/ppp/chat-era'
W zasadzie najważniejsze są cztery pierwsze wiersze oraz ostatni. /dev/ttyACM0 jest ścieżką do modemu, 115200 jest szybkością transferu (baud rate) do urządzenia szeregowego(modemu), noipdefault ustawia oczekiwanie na przydzielenie nam adresu IP przez dostawcę, a usepeerdns włącza pobranie adresów serwerów DNS od dostawcy. W ostatnim wierszu zdefiniowany został sposób w jaki negocjowane ma być połączenie, czyli w tym wypadku program chat pobiera stosowne komendy wywoławcze modemu z utworzonego wcześniej pliku /etc/ppp/chat-era. Wiersze za komentowane są przydatne w poszukiwaniu przyczyny niepowodzenia podczas połączenia - nodetach wyłącza wybieranie jako proces w tle, dzięki czemu można śledzić stan negocjacji połączenia w konsoli, a debug jak sama nazwa wskazuje włącza odrobaczanie. Ostatnią rzeczą jaką należy zrobić to pozwolić użytkownikowi na wykonanie połączeń. W systemach unixowych tak już jest, że interfejsy sieciowe normalnie może uruchamiać i zamykać tylko root. W innych przypadkach potrzebne jest polecenie sudo oraz stosowne wpisy w na liście sudoersów. Logujemy się na konto roota i uruchamiamy polecenie: # visudo Dopisujemy lightnir ALL=NOPASSWD: /usr/bin.pon, /usr/bin/poff, /usr/sbin/pppd a następnie zapisujemy i zamykamy(:wq). Dzięki temu użytkownik lightnir będzie mógł uruchamiać polecenia pon, poff oraz pppd na uprawnieniach roota bez pytania o hasło. Teraz aby nawiązać połączenie wystarczy jedynie wykonać polecenie: sudo pon era lub sudo pppd call era. Analogicznie, by się rozłączyć wykonujemy sudo poff era lub killall pppd.