2007-01-27

Ulubione pluginy do Firefoxa

Firefoxa tak często instaluję, że wypada zrobić listę moich ulubionych pluginów.
Moja lista bazuje na dyskusji z reddita.

  1. Blokowanie reklam i innych świństw
  2. Developer
  3. Ergonomia
  4. Inne
Będę starał się tą listę aktualizować.

PS. Aby zmienić działanie zakładek, troche tak jak to jest zrobione w Operze, należy zmienić w about:config "browsers.tabs.tabClipWidth" i "browsers.tabs.tabMinWidth" na wartość 5.


2007-01-25

Ja i Eclipse

Powoli ten blog przeradza się w dokumentację mojej zabawy z linuxem. Ja jestem z tego zadowolony. Przynajmniej nareszcie będę miał jedno miejsce gdzie zgromadzę wszystkie dane, które potrzebne są do skonfigurowania komputera po mojemu.

Nie wiem jakiego IDE do programowania w C/C++ użyć. Miałem już przygody z Eclipse, KDevelop, Motor i wieloma innymi. Przez pewien czas moim ulubionym edytorem był nawet mcedit. Teraz głównie siedzę na poczciwym edytorze Kate, ale zdecydowałem się dać Eclipse kolejną szansę. Może tym razem uda mi się je tak skonfigurować żeby działało wystarczająco szybko.

1) Pobrać Eclipse
2) Pobrać Javę (podobno Java Suna jest szybsza niż Gij czy Kaffe)
3) Dodać do Eclipse dodatkowy software do doinstalowania (w menu Help/Software/Find&Install)
CDT: http://download.eclipse.org/tools/cdt/releases/callisto
SubClipse: http://subclipse.tigris.org/update_1.0.x
4) Odpalać Eclipse ze skryptu, który wymusi używanie Javy z konkretnej ścieżki, ja mam coś takiego:

#!/bin/sh
export JAVA_HOME=$HOME/.jre
export PATH=$JAVA_HOME/bin:$PATH:$JAVA_HOME/bin
$HOME/.eclipse/eclipse
#Jakieś magiczne opcje: -ws motif -Xms=256m -Xmx=512m


2007-01-24

Beryl i Ubuntu na mojej ATI RV280 (9200se)

Dziś zapragnąłem przetestować Beryla. I faktycznie, jeśli chodzi o efekty graficzne to jest to nowa jakość. Zobaczymy czy w praktyce ten natłok bajerów nie będzie denerwujący.

Jeśli chodzi o proces instalacji na Ubuntu Edgy to poszło dość prosto. W kilku krokach:
1. Trzeba dodać archiwum beryla do /etc/apt/sources.list:

deb http://ubuntu.beryl-project.org edgy main
2. Zainstalować beryla:
apt-get install beryl emerald-themes
3. Zmienić /etc/X11/xorg.conf tak aby użyć otwartego drivera:
Section "Device"
#Identifier "{your card model}" <-do not edit this line in your xorg.conf
Driver "radeon"
Option "DRI" "true"
Option "ColorTiling" "on"
Option "EnablePageFlip" "true"
Option "AccelMethod" "EXA"
Option "XAANoOffscreenPixmaps"
Option "RenderAccel" "true"
#Option "AGPMode" "x" <- x may be 2 or 4 depending on your system
#Option "AGPFastWrite" "on" # Ta opcja wiesza mojego radeona 9200se
EndSection
Jeśli ktoś jeszcze nie wie na co stać Beryla to polecam ten filmik.


Konwerter template #2

Mój projekcik z AUGów robi to co powinien. Konwertuje frazy z templatów Genshi do Mako-podobnych. Może komuś się to przyda. Dla wyjaśnienia o co chodzi umieszczam przykładowe dane wejściowe i wynik. Problem z xpathem pozostał nie ruszony.

Mój program powstał na podstawie projektu z w3.org.



2007-01-16

Konwerter template

No więc zgodnie z przypuszczeniami w ramach zabaw z yacc i bisonem będę robił konwerter template. Z genshi do makotemplates. Zobaczymy co z tego wyjdzie. Najwiekszy problem to co zrobic z xpathem z genshi.



2007-01-13

Co dalej z Motomanami?

Mam kilka pomysłów na dalsze prace nad Motomanami ale żaden z nich mnie jakoś specjalnie nie porywa. Moje stare pomysły zaczynają mi się nudzić. Na przykład zabawa z kostkami wymaga sporo pracy a efekt nie będzie zapierał tchu w piersiach. Z kolei pomysł z tym, żeby Motomany odbierały rzuconą piłkę wymaga babrania się ze sprzętem, który nie potrafi osiągnąć zadowalającej prędkości.

Właściwie to czekam na taki pomysł, który będzie na tyle fajny, że mnie zmobilizuje.



VLC do streamingu z v4l

Czasem istnieje potrzeba streamingu video. Przeszukałem wiele programów, które zczytują obraz z tunera v4l i wysyłają to jakoś w sieć. Ostatecznie używam starego, poczciwego vlc. Niestety dokumentacja vlc kuleje. Może komuś się przyda moja konfiguracja.


Na serwerze:
vlc -vvv --color \
v4l:/dev/video0:norm=pal:channel=$1:size=320x240:\
adev=/dev/dsp0:audio=0 \
--sout "#transcode{vcodec=h264,channels=1,acodec=mpga,\
vb=70,fps=24,ab=32,samplerate=32000,vt=0,keyint=750,\
venc=x264{vt=0,keyint=750}}:\
std{access=mmsh,mux=asfh,dst=:1234}" \
--ttl 12 -I dummy

Na kliencie
vlc mmsh://10.10.10.10:1234


2007-01-12

Why Django sucks

Django sucks. I tyle. Pytanie tylko czy istnieje jakiś framework, który mniej sucks. I tu odpowiedzi niestety nie znam.

Django ma sporo poważnych wad. Domyślny system templateów jest żałosny. Sorry, w nim nie da się odróżnić foo[bar] od foo.bar, nie da się zdefiniować funkcji czy nawet makra.
Kierowany chęcią uruchamiania normalnych pythonowych wyrażeń przesiadłem się na template genshi.
Genshi też nie potrafi wszystkiego, ma problemy np z zagnieżdżeniami komentarzy lub cudzysłowów. Jednak jest nieporównywalnie przyjemniejsze dla programisty niż cholerne djangotemplates.
W dalszej perspektywie przymierzam się do wypróbowania makotemplates. Wygląda na to, że te template nie mają tych wad co genshi. Choć nie mają też tych samych możliwości jak np xml z xpathem.

Inne z mechanizmów django, których nie da się używać to 'forms and manipulators' czyli obsługa formularzy htmlowych. Strasznie namieszali z nazewnictwem. W kodzie mylą pojęcia, trudno zorientować się czy 'field' to pole w sensie atrybutu na modelu czy widget, który wyświetla jakiegoś boxa htmlowego. Tym niemniej największą wadą djangowych formularzy jest kompletny brak możliwości zmiany ich zachowania.
Chciałem zmienić kilka widgetów, tak aby dodać im htmlowy atrybut 'readonly'. Oczywiście modyfikowanie źródeł django odpada, więc stosując monkey patching powolutku pozmieniałem zachowanie kolejnych widgetów (lub Fieldów w notacji django). Mój kod poprawek rósł i rósł. Z pomysłu na zmianę djangowych widgetów trzeba było w końcu zrezygnować.

Ostatecznie sam napisałem system widgetów. Jest prosty, czysty i ma spore możliwości. I co najważniejsze, nie jest sztywno związany z django. Integracja z django to zaledwie jedna funkcja, która robi mokey patching na modelu i kilka funkcji generujących widgety.

Po tych cięciach wychodzi na to, że jedyne cechy django, z których da się kożystać to ORM i cała logika http typu dekodowanie url i obsługa http request i responce. A to nie wiele jak na nowoczesny framework.



Piraci na Sealandii

Podobno najtrudniejszy jest początek. Znacznie lepszym pomysłem jest kontynuowanie. Więc kontynuujmy...

Po przeczytaniu posta na slashdocie o pomyśle piratów na wykupienie Sealandii jestem wstrząśnięty. Pomysł z jednej strony absurdalny, z drugiej zaś jeśli się powiedzie to konsekwencje będą gigantyczne. Podobno ten rok ma być rokiem praw autorskich. Coś się z tym musi niedługo zmienić. Jednak obawiam się, że proces walki z Konceranami potrwa długo.

Z drugiej strony kraje rozwinięte idą w stronę 'wszyscy są nielegalni'. To, że oglądanie dvd z linuxa jest we Francji nielegalne można nazwać absurdem.

Przyszłość pokaże, bo coś musi się zmienić, w jedną lub drugą stronę. Przygotujmy się na kocioł, bo Polskę już niedługo czeka ustawa o DRM.