2004-10-31
 
DEN HAAG - 11C, bewolkt.

demonstratie

Gisteren was het weer eens tijd voor een demonstratie in de stad; in Den Haag zijn natuurlijk vaak demonstraties, en ditmaal was het de beurt aan de Koerden. De Koerden, een statenloos volk dat leeft op het grondgebied van Iran, Irak en Turkije, streven op verschillende manieren naar een onafhankelijk staat - Koerdistan. In de vorige eeuw zijn die pogingen op vaak bloedige wijze de kop ingedrukt door de Turken, Iraniërs en Irakezen. Zo werden in maart 1988 honderden tot duizenden Koerden gedood bij gifgasaanvallen namens Saddam Hoessein.

Maar de meeste strijd hebben de Koerden geleverd met de Turken. En daarbij werden aan beide zijden weinig middelen geschuwd. In 1999 ontvoerden Turkse commando's Abdullah Öcalan uit Kenia; hij was de leider van de PKK, een van de strijdende Koerdische partijen. Hij werd in Turkijke berecht, en veroordeeld tot de doodstraf. Inmiddels is die straf omgezet in levenslang, onder andere omdat Turkije onder EU-druk de doodstraf heeft afgeschaft in 2002.

De demonstratie ging over de uitlevering van Nuriye Kesbir, een andere PKK-kopstuk. De Turken willen haar berechten voor haar betrokkenheid bij de moord op aangestelde dorpswachters in het Koerdische deel van Turkije, in 1993-1995. Kesbir ontkent, en denkt dat ze geen eerlijk proces zal krijgen. Minister Donner denkt daar anders over, na schriftelijke toezeggingen van de Turkse regering. We zullen zien wat die waard zijn.

De demonstratie verliep overigens rustig (in 1991 en 1999 liepen Koerdische demonstraties volledig uit de hand). Mannen liepen gescheiden van de vrouwen; en die vrouwen wisten dat typische geluid te produceren waarbij de tong snel horizontaal wordt bewogen. Ik kreeg een weinig overtuigend pamflet in handen gedrukt.

kat en muis

Vrijdagavond verveelde ik me een beetje, en speelde wat met m'n teletekstbrowswertje ttb; en nu heb "klikbare pagina's" geïmplementeerd; dat wil zeggen dat als er een paginanummer in beeld komt, je daar ook op kunt klikken om naar desbetreffende pagina te gaan... Het was een feature die ik al een tijdje op m'n lijstje had staan. Sommigen opperden mogelijke manieren om het te implementeren, zoals het gebruik van OCR (urghh), of op de een of andere manier de tekst-versie gebruiken. The bad and the ugly :-)

De juiste manier is om de bestaande image-<map> van de grafische versie te gebruiken. Die parse ik, en ik hou bij waar de muiscursor zich momenteel bevindt. Werkt als een trein.

De code is hier; en ik heb een eenvoudige ttb-homepage gemaakt.


2004-10-29
 
DEN HAAG - 12C, regen.

Om mijn natuurlijk schoonheid *nog* beter uit te laten komen ben ik naar de kapper gegaan; de laatste keer betaalde ik 60 baht, nu was ik liefst 24 euro kwijt... Maar - dat was nog niet genoeg. Ik kocht ook een pyjama, zodat ik nu de hele dag in een ontspannen pyjama-sfeer mijn werkzaamheden kan uitvoeren.

Mijn huisgenoten hebben een huis gekocht; vanaf 01/01/2005 moet ik op zoek naar nieuwe lebensraum. Zo maar eens een pijltje richting de wereldkaart werpen.

sendxmpp

Ik heb een nieuwe versie gemaakt van sendxmpp; eerder nog meldde ik dat je twee xmpp (jabber) accounts nodig hebt, maar je hebt aan eentje genoeg, omdat je meermaals kunt inloggen als een verschillende resource gebruikt, bijv. myaccount@jabber.org/Werk en myaccount@jabber.org/Thuis (achtergrond).

De nieuwe versie is beter gedocumenteerd en een beetje sneller; bugs heb ik niet ontdekt, en ook niet gefixt. Ik heb sendxmpp nu een week of twee in gebruik, en ik vind het zelf best handig :-) Ik heb ook een knagend gevoel dat hier meer mee te doen moet zijn... Hmmm.... 3. Profit!

Code is hier, en doe sendxmpp -h voor een 'gebruiksaanwijzing'.

psychoanalyse

Hmmm...
You are .tar You are rarely seen without your buddy gz. You're talented at bringing ideas together, so they're easier to work with.
Which File Extension are You?
You are Palm OS. Punctual, straightforward and very useful.  Your mother wants you to do more with your life like your cousin Wince, but you're happy with who you are.
Which OS are You?

2004-10-26
 
DEN HAAG - 11 graden, bewolkt.

Vandaag aan wat verschillende projecten gewerkt, en wat mails gestuurd links en rechts. Ik heb nog een beetje energie, en nog wat ideetjes... Ik moet nu ook eens verzinnen wat mijn volgende stap is; ik verwacht dat ik per 1 december weer moet verhuizen, en het zou aardig zijn als ik dan besloten heb waar naar toe.

alles kan een mens gelukkig maken

Gisteren liep ik 38:43, alweer een nieuw record :-) Ik blijf maar harder en harder lopen. Als dit zo doorgaat ben ik over een paar maanden de snelste man op aarde! Binnenkort ga ik een proberen te lopen met een hartslagmeter, om mijn ideale tempo te bepalen voor de wat langere afstanden. Mijn plan is eigenlijk om na de winter ergens een halve marathon te gaan lopen.

René Froger (tip: wallpaper) schijnt *hele* marathons te lopen, hmmm... Ik kan alleen nergens zijn eindtijd vinden, alleen die voor de Dam-tot-Dam-loop (16km) van 2003. Daar liep onze René 1 uur en 38 minuten over, en de 10km in 1:01, zo schijnt het... Dat loop ik een stuk sneller.

emacs

tramp voor emacs is geweldig; ik kan op m'n eigen machine met emacs bestanden bewerken op machines waar ik alleen maar een shell-account heb, alsof ik ze lokaal heb staan! tramp zorgt ervoor dat "onder water" de bestanden gekopieerd worden etc.

Ter leering ende vermaeck, als ik emacs gebruik voor het typen van HTML, komt het natuurlijk vaak voor dat ik een stukje tekst in tags wil zetten, zoals <em>dit</em>. En natuurlijk wil ik dat automatiseren, in mijn .emacs kan ik dan een functie definiëren:

(defun tag-region (b e elm)
  (interactive "r\nselement:")
  (let ((tag1 (concat "<" elm ">")) (tag2 (concat "</" elm ">")))
    (insert-string 
      (concat tag1 (delete-and-extract-region b e) tag2))
    (goto-char (- (point) (+ (length tag2) (- e b))))))
Maar dat gaat niet goed als de mark niet gezet is (als er geen region (selectie) is); in dat geval moeten gewoon start en eind-tags worden ingevuld:
(defun tag-region-maybe (elm)
  (interactive "selement:")
  (when (not mark-active) 
    (set-mark (point)))
  (tag-region (region-beginning) (region-end) elm))
Nu hoef ik alleen nog maar wat handing keybindings te definiëren en de wereld is alweer een beetje makkelijker geworden!
  (local-set-key (kbd "C-c i") (lambda()(interactive)((tag-region-maybe "i"))))
  (local-set-key (kbd "C-c b") (lambda()(interactive)((tag-region-maybe "b"))))
  (local-set-key (kbd "C-c s") (lambda()(interactive)((tag-region-maybe "small"))))
Toegegeven, html-helper-mode doet natuurlijk al iets soortgelijks, maar zelf doen is leuker, in ieder geval leerzamer :-)

2004-10-24
 
DEN HAAG - 16 graden, regen.

Vrijdag werkte ik in Amsterdam aan wat PHP-code. Niet echt mijn favoriet, maar ook niet echt heel vervelend. Het lijkt genoeg op Perl om snel op dreef te komen, en om de soms subtiele verschillen te vergeten :-) Ik deed wat onderhoud op bestaande code, en die was helaas niet altijd even duidelijk. Maar dat is op zichzelf natuurlijk ook weer een uitdaging, en grep en vrienden bleken onontbeerlijk.

's Avonds wat bier gedronken - daar was ik wel aan toe - ergens in de Warmoesstraat met Louise c.s.. We vervolgden de avond met een groeiende groep, en aten bij een goedkoop maar redelijk Chinees restaurant. Van daaruit ging ieder zijns weegs, maar we hergroepeerden ons bij een Ierse pub, zoals altijd volgepropt met Ieren en trendvolgers. Uiteraard was er een band met twee Ieren, een gitaar en viool. En natuurlijk was er bier...

(...)

Ik werd een beetje katerig wakker, misselijk en hoofdpijn. En dat is een tijd geleden! Gelukkig herstelde ik me snel.En ik was allang blij dat het van het bier was, en niet van de Chinees :-)

part chimp

Zaterdag bezocht ik het Schotse Part Chimp in het plaatselijke culturele centrum SCSIcell, met Rebecca, zusje van de gitarist.

SCSIcell bevindt zich op 200 meter van m'n huis, maar ik had er werkelijk nog *nooit* van gehoord. Het is een of ander oud kantoor (ministerie?), dat nu in handen van kunstenaars en aanverwanten is gevallen; behalve als atelier wordt het dus ook gebruikt als concertzaal, op de vertrouwde alternatieve manier: goedkoop (toegang 5 euro, halve liters bier 1,50 euro) en hier en daar wat spartaans ("water hebben we niet meer, maar haal wat water uit de stortbak van de wc").

Maar goed, Part Chimp dus. De band speelde al een aantal concerten in Japan (als voorprogramma) voor, zeg, 1500 mensen. De concert'zaal' hier was even groot als mijn slaapkamer!!! En Part Chimp heeft als doel zo hard mogelijk te spelen. En dat lukte - mijn oren piepen nog steeds! Het publiek (30-40 mensen?) werd tegen de achterwand geduwd door de geluidswal. De muziek deed me soms wat aan Black Sabbath en Cathedral denken (in de langzamere passages), maar soms ook als een snoeiharde Nirvana, maar dan een stuk strakker gespeeld. Maar ach, al dat soort nuances gaat een beetje verloren in een sonisch Tunguska van zo'n drie kwartier.

Na het optreden had ik kans nog even met de band te spreken; vriendelijk en met zachte stem, de woorden zorgvuldig kiezend, spraken ze over hun Japanse tourervaringen.

Met nog immer piepende oren keerde ik huiswaarts (200m!), en zo werd ik ook wakker...

xmpp

Eerder noemde ik al XMPP als voorbeeld van een open standaard die het moeilijk heeft in een non-open wereld. XMPP (beter bekend als 'Jabber') is een standaard voor Instant Messaging (chatten) - te vergelijken met MSN Messenger, Yahoo Messenger, ICQ, AIM, ... In de echte wereld doet dit soort dingen er natuurlijk niet zo toe; het gaat er om wat je vriendjes en vriendinnetjes gebruiken. En in Nederland is dat meestal MSN-Messenger. Het is niet eenvoudig voor xmpp om daar mee te concurreren, hoe wenselijk dat ook is.

In de tussentijd is het protocol echter *wel* erg handig. Ik beheer wat machines, en het leek me handig als die mij xmpp-berichtjes sturen als er wat aan de hand is. Dat gebeurt nu via email, maar het werkt sneller als ze als instant message verzonden worden. Waar ik ook ben, de berichtjes kunnen mij daar bereiken. Zelfs achter firewalls, proxy's enzovoort: xmpp kan zich 'voordoen' als normale HTTP.

Daarom heb ik sendxmpp geschreven, een eenvoudig Perl-script waarmee je xmmp-berichten kunt versturen op dezelfde manier als mail met mail(1). Het maakt gebruikt van de Net::XMMP::-modules van Ryan Eatmon.

Voorbeeld: op een server wordt via cron elke 5 minuten een script uitgevoerd dat controleert of de processorbelasting (load average) niet te te hoog is. Als dat wel het geval is, doet het script het volgende:

	top -b -n 1 | sendxmpp -s "Processorbelasting $cpuload op `hostname`" myaccount@jabber.org  
En op mijn desktop, waar dan ook, verschijnt een venstertje met die melding, en de proceslijst. Ik kan dan beslissen of het noodzakelijk is om in te loggen om een probleem te fixen. Zie hieronder zo'n venster (licht gegimpt :-) Ik gebruikte in dit geval gnome-jabber, maar er zijn heel veel verschillende clients. Ik overweeg er zelf eentje te schrijven, speciaal voor systeembeheer-achtige dingen.

Hier is sendxmpp; het is een alpha-versie, maar het lijkt goed te functioneren. Het script vereist Net-XMPP, en twee jabberaccounts. Bovenin het script staan gebruiksinstructies. Het is, zoals gezegd, een eenvoudig scriptje - maar ik vermoed dat het veel interessante dingen mogelijk maakt.


2004-10-21
 
DEN HAAG - 14C; bewolkt maar zonnig.

put

Woohh! De Haagse tramtunnel (de gemeente spreekt zelf liever over Het Souterain) is het afgelopen weekeinde eindelijk geopend! Eigenlijk had de opening in 2001 moeten plaatsvinden, en werd de oospronkelijke 140 miljoen euro met bijna 100 miljoen overschreden, maar ach, dat zijn maar details.
DEN HAAG - Oud-wethouder Meijer van verkeer zegt in zijn afscheidsinterview met de Haagsche Courant dat er geen echte fouten zijn gemaakt bij de bouw van de tramtunnel. "Wel kan er geleerd worden van de ervaringen", aldus Meijer.
Dat was in 2000, en toen moest het ergste nog komen. De experimentele bouwmethode kwam niet echt uit de verf, overal doken lekken op. Het zwarte-pietenspel kon beginnen! En de scherpe onderhandelaars van de gemeente namen alle schuld op zich, belastingbetalers hebben immers geld genoeg.

Maar laat ik niet te negatief doen over wat kleine rimpeltjes bij dit geweldige project. De tunnel levert de trams in de binnenstad zo maar vier hele minuten tijdwinst op

ttb

Onlangs berichtte ik al over mijn teletekst-browsertje tb in Python/GTK+. Ik begrijp nu wat meer van meer van Python :-) en heb de code herschreven. De nieuwe versie heet ttb (voor.... teletekstbrowser, suggesties voor betere naam zijn welkom!).

De volgende nieuwe features zijn beschikbaar:

Hier is de code. Vereisten zijn Python 2.3 en PyGTK 2.x. Code en Glade/XML staan allemaal in hetzelfde bestand, zodat er verder geen installatie nodig is. Licentie: GPL.

Genoeg geschreven over zo'n triviaal programmaatje :-)

misc

Vandaag eindelijk eens een aardappel gegeten bij mijn huisgenote Kate en Hot Potato. De foto toont de wagen nabij de Hofvijver, en mijn door schaduwen icognito huisgenote. De gevulde aardappel (met zure room en bieslook) smaakte overigens heerlijk. <shameless plug>aanrader!</shameless plug>.

Mijn muis in MouseSystems-mode gezet, ipv. Microsoft-mode. En nu doet mijn middelste muisknop het ook; in FireFox betekent middelklik "open link in nieuwe tab". Geweldig!

Naast die muis heb ik nu ook headset gekocht van kwaliteitsmerk Trust; nu kan ik nog vaker bellen met mijn allerbeste vrienden!

Zo nu en dan heb ik de neiging van Scheme en/of Lisp te gaan programmeren; emacs is natuurlijk belangrijk. Of guile... Om Scheme te leren heb ik vaak Structure and Interpretation of Computer Programs (online) van Abelson/Sussman gebruikt. En nu ontdekte ik dat ook hun colleges online beschikbaar zijn. Wow.

Jamie Zawinksi legt uit waarom de xscreensaver 'unlock' dialoog er zo lelijk uitziet.

But now I've taken my leave of that whole sick, navel-gazing mess we called the software industry. Now I'm in a more honest line of work: now I sell beer.

2004-10-19
 
DEN HAAG - 6C - maar het regent niet! Het is zelfs heerlijk weer!

skype

Er is de nodig hype geproduceerd door Skype, het programma/netwerk om te kunnen telefoneren via internet. Er is zowaar een Linux-versie. Op mijn debian/unstable machine werkte alleen de versie met een statisch gelinkte Qt. Skype ziet er wel erg klunky uit als 'm opstart; het lijkt wel een TCL/TK-app! Ergens moet ik dat in kunnen stellen?

Nou ja, het programma *werkt* in ieder geval wel. Bellen via internet is geen nieuws; via Yahoo Messenger, MSN-Messenger etc. kon je altijd al met je miljoen allerbeste vrienden 'telefoneren'. Dat kan ook met Skype. Bij Skype kun je echter ook credit kopen, zodat je naar normale telefoons kunt bellen, vaak voor 0,017 euro/minuut. Ik heb daarmee wat testjes gedaan. Bellen met Nederland ging prima, net als met Duitsland. Maleisië liep wat stroef (veel uitval). En met Nederland, maar met een andere computer ging het erg slecht; de andere partij klonk als een dove. Ik ga de komende dagen nog wat andere landen proberen. Niet echt wetenschappelijk enquetewerk natuurlijk :-)

Voor voice-over-IP (VoIP) wordt getracht SIP te standaardiseren; SIP zelf is tamelijk eenvoudig, HTTP-achtig, en dient alleen om een sessie te starten. Daarna wordt RTP/RTCP (bovenop UDP) gebruikt om de data (beeld, geluid,...) over het netwerk te laten vloeien. En die data zelf wordt weer door allerlei verschillende protocollen beschreven. Uiteindelijk is het allemaal tamelijk ingewikkeld; het gaat bijna in de richting van H323, een *urghh* ITU-standaard voor multi-mediacommunicatie.

Ik krijg hoofdpijn als ik aan de ITU-protocollen denk... OpenH323 is een open-source implementatie, incl. ASN.1-compiler.

Een probleem met SIP is in ieder geval het gebruik van achter een NAT.

Skype gebruikt geen SIP, maar een eigen, geheim protocol; er is natuurlijk wel enige analyse gedaan (bijv. Henning Schulzrinne, de bedenker van SIP, schijnt een van zijn studenten te hebben gezet op het ontrafelen van Skype) maar er zijn geen alternatieve implementaties. Het protocol is semi-P2P (er zijn hard-coded 'superservers'), en gebruikt UDP/TCP voor communicatie, maar geen RTP/RTCP. Verder biedt het protocol versleuteling; niemand kan je Skype-telefoongesprekken afluisteren; nou ja, het stuk communicatie dat via internet verloopt tenminste. Daarna houdt de versleuteling op, wat de begrijpelijkheid voor degene met wie je praat natuurlijk wel aanzienlijk verbetert :-)

Een sterk punt van "skype-protocol" is dat het geen configuratie vereist, en, zoals gezegd, probleemloos werkt van achter een NAT. Normaalgesproken is het lastig twee computers te verbinden die beide achter een NAT zitten; altijd moet je expliciete forwarding, proxy's etc. gebruiken. En da's meestal niet zo handig. En om al die voice-communicatie via de servers van Skype te laten verlopen, da's ook niet zo'n goed idee... Het 'trucje' dat skype gebruikt is om nodes (andere gebruikers!) in het skype netwerk in te zetten voor de communicatie, zodat NAT'ers altijd via een node met een vast (non-NAT) IP-nummer communiceren: P2P. Dat verklaart ook de nadruk die men legt op encryptie... Er staat een hele lijst in ~/.Skype/shared.xml.

Blijft het punt dat het een slecht idee is te standaardiseren op een proprietary protocol van een klein bedrijfje... Van de mensen die wereld KaZaa schonken, met gratis addware. Ik kan niet controleren of de crypto niet vol met gaten zit, of de software. En ik kan ook geen eigen client schrijven, in de plaats van dat Qt-appje. Ik hoop dan ook dat er een makkelijk te gebruiken, open protocol komt, waarvoor iedereen dan z'n client kan schrijven. SIP en vrienden zouden kunnen werken, als ze iets verzinnen op de NAT-problemen. Tja, open protocollen blijken niet erg goed in het verdringen van gevestigde proprietary protocollen (bijv. xmpp). En vice versa.

misc

Achtergrondplaatjes van Digital Blasphemy, Dead Dreamer

Voor 99 euro naar Bangkok (enkele reis, vanaf Frankfurt). [tip: Ulrike]

gnuvd als one-liner

% echo -e "#\!/bin/sh\nlinks -dump \"www.vandale.nl/opzoeken/woordenboek/?zoekwoord=\$1\"|awk '/Opnieuw/{e=1}b&&\!e{print \$0}/RESULTAAT/{b=1}'">~/bin/gnuvd.sh;chmod +x ~/bin/gnuvd.sh
% gnuvd.sh enquete

          en.que.te (de ~, ~s)
             1 [pol.] onderzoek op last of door
             tussenkomst van een
             volksvertegenwoordiging

          (...)
% gnuvd enquete
en`quĂȘ|te (de ~, ~s)
1 [pol.] onderzoek op last of door tussenkomst van een volksvertegenwoordiging
(...)
De echte gnuvd begrijpt meer van accenttekens en geeft de resultaten compacter weer. Gelukkig maar!

2004-10-17
 
DEN HAAG - Regen, 11C. En door die regen liep ik 39:29! En dat terwijl ik me deze week nog afvroeg of en wanneer ik de 40-minutengrens zou doorbreken. Maar het ging goed; ik had wat minder aan :-), meer geluk met het verkeer, en ik liep gewoon harder. Applaus voor mezelf! :-)

bezoek

Zaterdag kreeg ik Opal en Arean op bezoek - meer dan een jaar geleden dat ik hen voor het laatst zag. Arean zag ik vorig jaar juli (incl. klein auto-ongelukje :-), Opal voor het laatst tijdens kerst 2002 in Chicago. Maar ik lunchte met haar zusters bij MK Restaurant in Bangkok in maart. Het was erg leuk ze weer te zien! Maar ja, wat kan ik ook anders zeggen, ze lezen dit waarschijnlijk zelf :-)

Ik had me een beetje ingelezen in de vele wetenswaardigheden van Den Haag, zodat ik kwistig kon strooien met trivia terwijl we door de stad wandelden. Zoals over de Ridderzaal, die gebouwd is van 1248 tot 1280 en voltooid door de later vermoorde Floris V. De bouw is echter begonnen door graaf/koning Willem II (1228-1256), niet te verwarren met stadhouder Willem II (1626-1650), of koning Willem II (1792-1849).

Wikipedia is nu ook mobiel beschikbaar; natuurlijk kon je de database altijd al downloaden, maar hier zijn instructies om op een PDA door de encyclopedia te bladeren, mbv. een shareware/crippleware programmaatje Tomeraider (tip: MartinW).

Mijn gasten hadden natuurlijk ook snel genoeg van mijn achtergrondinformatie :-), dus we dronken wat bij het Goude Hooft, en aten daarna wat bij een Indonesisch restaurant - ik at bami met geitenvlees, dat echter niet al te verrassend smaakte.

Het was een bliksembezoek, te kort enzo, maar het duurt waarschijnlijk geen jaar voordat ik hen weer zie; februari 2005 is hun bruiloft in Bangkok. Dat wordt nog interessant, een Thaise bruiloft. Ben benieuwd of ook 'stukjes' doen, een Thaise ABC ofzo (*oef* 76 'letters'?!).

software

Ik heb mijn programmaatje om Teletekstpagina's te bekijken een beetje opgeschoond (herschreven). Ik heb Dive Into Python nog eens doorgelezen, zodat mijn Python-code er wat meer uitziet als Python. Het #pygtk-kanaal op IRC (Gimpnet) bleek ook nuttig. Maandag of dinsdag een nieuwe versie.

De minst slechte muziekspeler voor het GNOME-bureaublad die ik ken is Rhythmbox, ooit begonnen als iTunes-kloon, maar nu met een wat eigen karakter. Ik ontdekte een bug in de Debian/unstable-versie, dus gebruikte JHBuild om de laatste versie uit CVS te halen. Nou ja, uit Arch.

Gebouwd, gestart, crash?!! WTF?

Breakpoint 1, rb_shell_construct (shell=0x8191028) at rb-shell.c:860
(gdb) list
855				pathname = g_build_filename (rb_dot_dir (), "rhythmdb.xml", NULL);
856	
857			rhythmdb_exists = g_file_test (pathname, G_FILE_TEST_EXISTS);
858			
859	#ifdef WITH_RHYTHMDB_TREE
860			shell->priv->db = rhythmdb_tree_new (pathname);
(gdb) p pathname
$4 = 0x81da758 "/home/djcb/.gnome2/rhythmbox/rhythmdb.xml"
(gdb) s
rhythmdb_tree_new (name=0x1 <Address 0x1 out of bounds>)
    at rhythmdb-tree.c:769
?!! De parameter is kapot; multi-threaded hel of iets anders?!

2004-10-14
 
DEN HAAG - 283K, bewolkt.

rennen

Gisteren liep ik 42:20 en vandaag... 41:43! Vooruitgang! En dat terwijl ik bijna een minuut moest wachten op het verkeer. Ik denk dat het voor mij mogelijk moet zijn om onder de 40 minuten te lopen. Wat erg zou helpen is wat hardlopers in de verte - liefst trage. Soms zie ik ze, en het helpt geweldig. Ze zijn vaak herkenbaar aan de joggingbroek.

Begin 2001 begon ik met hardlopen; na enkele jaren IT was ik wel wat kilo's aangekomen, maar na een aantal maanden hardlopen was ik aardig in vorm. En sindsdien heb ik het weten vast te houden en zelfs uit te bouwen -- waar ook ter wereld :-)

exact

Ik chatte wat met een Chinese die een interview ging doen met de baas van de Aziatische tak van Exact. Ze vroeg of ik nog wat bijzonders wist te melden over de Nederlandse maker van boekhoudsoftware. Nou... Ik herinnerde de me de eerste versies omschreven worden als het werk van de gefrustreerde penningmeester van een postduivenvereniging, die op zijn MSX wat in elkaar geklust had :-) Gelukkig hebben we nu GnuCash...

Vanaf 2005 moeten ondernemers elektronisch aangifte gaan doen. Beter dan bij de Windows-only belastingdiskette heeft men nu echter de specificaties beschikbaar gemaakt (en tests), voor software-ontwikkelaars; als je tenminste een (gratis) abonnement afsluit. Het overwegen waard natuurlijk, want als er een ding *nog leuker* dan het betalen van belasting is, is het wel het schrijven van software daarvoor. Nou ja, ik ben wel benieuwd naar de specs.

sleur&pleur

Ik implementeerde drag & drop in mijn teletekstviewer (zie enkele dagen terug). De plaatjes kunnen zo vanuit het programma naar mijn bureaublad (Nautilus) gesleept worden, maar ook naar bijv. een gaim-venster. De code is eenvoudig, al moest ik de Nautilus source even greppen om het juist MIME-type te vinden.

Allereerst registreer ik het widget met het plaatje als 'drag source', en de callback functie:

 self.image_view.drag_source_set (gtk.gdk.BUTTON1_MASK,[('text/uri-list',0,1)],
                                         gtk.gdk.ACTION_COPY)
 self.image_view.connect('drag_data_get',self.on_drag_data_get)
Ik geef aan dat de drag-actie start met muisknop-1, en dat ik een text/uri-list aanbied. Die callback is ook nogal simpel,
 def on_drag_data_get (self,widget,context,selection,target_type,event_time):
        selection.set(selection.target,8,'file://' + self.imgfile)
De callback wordt aangeroepen als het bureaublad (of een ander venster) aangeeft die 'ie de drag accepteert, in het bijzonder het target_type. Omdat alleen text/uri-list aanbied, check verder niet, maar retourneer een URI verwijzend naar het plaatje (mijn lokale kopie).

Het laatstse trucje was om niet een tijdelijk bestand aan te maken met het plaatje, maar een tijdelijke directory, en het plaatje daarin een wat vriendelijker naam te geven, zodat het bestand diezelfde vriendelijke naam krijgt op het bureaublad.


2004-10-13
 
DEN HAAG - Het wordt wat kouder - maar om 01:35 is het nog altijd 8 graden.

wanderlust

Zondag pikte ik Louise op van Schiphol na haar Spaanse avonturen. Natuurlijk had het vliegtuig vertraging, en liep ik wat doelloos rond op de luchthaven. Het zien van zoveel mensen, terugkerend of vertrekkend, gaven mij wel wat reiskriebels...

Zoveel luchthavens zag ik... vertrekken gaat vaak gepaard met verschillende gevoelens. Weer een plaats achterlaten, met zoveel herinneringen, verhalen, mensen om nooit meer te vergeten. En dan op weg naar de volgende bestemming, vol met nieuwe geuren en kleuren.

Aankomen is doorgaans wat minder spectaculair. Na het ophalen van de bagage en passeren van de douane moest ik meestal op zoek naar onderdak. Maar niet voordat ik een half uur wat doelloos heb rondgezworven. En dan bel ik impulsief het eerste beste nummer, en zit ik vervolgens maanden tussen de Koreanen, zoals in Sydney. Hoe dan ook, reizen is een geweldige inspiratiebron. De verre streken gaan nooit meer weg.

Met Louise ging het overigens goed, en ze had meer Spaans geleerd dan ik kon veinzen met een semestertje *lang* geleden :-)

ramadan

Zondag sprak ik (elektronisch) geruime tijd met Aini uit Maleisië, die ik ook al weer zo'n twee jaar ken, en voor het laatst zag in april. Ze was al aan haar ramadan begonnen. Eigenlijk begint deze jaarlijkse islamitische vastenmaand dit jaar op 15 oktober, maar sommigen beginnen eerder. Mensen doen dat voor spirituele reden cq. bonuspunten. Voor vrouwen geldt bovendien dat hun 'onreine dagen' niet meetellen voor de vier weken ramadan, en dat ze geacht worden die dagen 'goed te maken'.

Het doel van de ramadan is om tot grotere spirituele helderheid te komen, en de eigen materiële welvaart meer te waarderen, in verhouding tot die van anderen. Elke dag van zonsopgang tot zonsondergang wordt er gevast - niet eten en niet drinken. Na zonsondergang kan dat worden 'gecompenseerd' met uitgebreide maaltijden en ander vertier, maar serieuze moslims (zoals Aini) vinden dat niet nodig, net als de praktijk om je voor zonsopgang vol te eten en dan een zo groot mogelijk gat in de dag te slapen. Nood breekt menige islamitische wet, maar van valsspelen houdt Allah niet zo.

De ramadan volgt de bij islamieten belangrijke maankalender, met maanden van 28 dagen. Dientengevolge is de begindatum t.o.v. de normale kalender elke jaar ongeveer twee weken vroeger. Dat het vasten plaatsvindt tussen zonsopgang en zonsondergang is dan natuurlijk minder handig in plaatsen verder verwijderd van de evenaar. De Islam is ook nooit erg aangeslagen bij eskimo's :-)

boem

Maandagavond ging ik ter gelegenheid van Nadja's verjaardag naar Boom Chicago, de comedy-club in Amsterdam waar een groep Amerikanen (waarschijnlijk uit Chicago!) een show opvoert, semi-improviserend, semi-stand-up-comedy. Er wordt ook behoorlijk met het publiek geïnteracteerd. Zo werd een groepje toeschouwers geïnterviewd, en de hele show kwamen zij in verklede vorm terug op het podium.

Ik had al eens (of tweemaal?) eerder gezien, maar het blijft er amusant. Het is bewonderenswaardig hoe snel ze op opmerkingen uit het publiek reageerden, spontaan liedjes verzonnen etc. En bovendien was het erg grappig!

Na afloop van de show kwam er al toegift nog iemand die een (kennelijk grappig bedoelde) observatie van de Amerikaanse presidentsverkiezingen. Bush is natuurlijk altijd een populair doelwit voor grappenmakers, maar om hem nu met Hitler te vergelijken? Zeker als je Jon Rosenfeld heet. En als het nou nog grappig was...


2004-10-10
 
DEN HAAG - aardig zondag. Licht bewolkt, 11C. Zo vertelt mijn Gnome Weather Applet, zodat ik ook niet steeds naar buiten hoef te kijken - wat een productivity booster!!!

Hardlopen ging een tandje trager dan vorige week; 43 minuten.

Ik dronk gisteren wat koffie en at wat Chinees met JeanetteG; erg gezellig. Ze is nogal into de spirituele kant van het leven, en dan met name de aspecten die ik onz^H^H^H niet direct begrijp. Interessante om de vele verschillende betekenissen van woorden als 'energie', 'dimensie' etc. door elkaar te horen. En ik ben nu weer een beetje bij in de wereld van reiki, tarot, astrologie (Wikipedia laat zelfs beide kanten aan het woord!), psychometrie, enz.

Ik opperde nog dat de combinatie van voodoo en acupunctuur wellicht mogelijkheden bood om mensen op afstand te genezen (denk aan de "Flying Doctors"). Maar helaas, terwijl acupuntuur wel enigszins door wetenschappelijk onderzoek gesteund wordt (hoewel placebo-naalden soms ook goed werken!), geldt dat niet voor voodoo. Nog niet, moet ik zeggen, de wetenschap is nog niet zo ver...

Hmmmm... mijn paspoort is verlopen; ik kan geen nieuw paspoort aanvragen in Den Haag, maar zal naar Hellendoorn moeten. *zucht*.

wikipedia

Ik maak nog veelvuldig/overmatig :-) gebruik van Wikipedia. Hier enkele tips - nu met plaatjes!

Snelzoeken in Wikipedia met Firefox

Steeds meer mensen gebruiken de FireFox webbrowser; die is tamelijk veilig, snel etc. Maar de browser heeft ook wat aardige functies, zoals slimme bookmarks (misschien kan Internet Explorer dit ook?). Ga naar de de Bookmarks manager, kies New bookmark; een venstertje zoals aan de rechterzijde verschijnt. Vul het zo in (kies eventueel http://nl.wikipedia.org/wiki/%s voor de Nederlandse versie), Ok, en typ nu in de adresbalk enc den haag. En de The Hague-pagina van Wikipia verschijnt!

Dit kan natuurlijk met meer sites...

Willekeurige pagina

Ook leuk voor de dagelijkse weetjes is om een willekeurige pagina uit Wikipedia als startpagina te gebruiken. Voor de Nederlandstalige versie, gebruik: http://nl.wikipedia.org/wiki/Speciaal:Randompage, en voor de Engelstalige: http://en.wikipedia.org/wiki/Special:Randompage.

broodje aap

Er zijn vele urban legends oftwel broodje-aapverhalen. Ik vertel ze zelf ook wel eens :-) zonder me te realiseren dat ik gewoon ergens een verhaal opgepikt heb dat wel aardig klonk. Maar eigenlijk is het beter ze eens te controleren... dankzij sites als straightdope, snopes en vele andere, is het gelukkig niet zo moeilijk wat onderzoek te doen. Het overgrote deel van de verhalen is in ieder geval niet waar. Twee voorbeelden die ik de afgelopen week nog gehoord heb: En het staat op het internet, dus het moet wel waar zijn!

2004-10-09
 
DEN HAAG - Een prachtige, zonnige zaterdag... 13 graden.

werk

Mijn project is min-of-meer voltooid, en ik ga verder met het volgende.

python

Eerder het had ik het al over de programmeertaal Pyton (tutorial). Ik had het een tijdje niet meer gebruikt, en gisteravond zat ik me wat te vervelen, en schreef ik tb of Teletekst Browser, een programmaatje dat ongeveer hetzelfde doet als de programma's die teletekst.nos.nl levert voor Windows en MacOS-X.

In 1999 schreef ik TeleGNOME, een programaatje dat ongeveer hetzelfde deed, in C; overigens nog voordat de NOS met een vergelijkbaar programaatje voor Windows kwam. Nadat ik mijn interesse een beetje verloren had, hebben anderen het overgenomen, maar sinds medio 2000 is het behoorlijk dood.

En nu dus in Python. Het lastigste was nog wel het ophalen van het plaatje van de teletekst-webserver. Python levert urllib, urllib2 en httplib, maar het blijkt verbazingwekkend lastig om mijn http-request goed te krijgen. De teletekst-server geeft namelijk een Forbidden-melding als de client onvoldoende lijkt op een 'echte' webbrowser; dat betekent dat je HTTP/1.1 moet gebruiken, en Accept-Encoding. Dat volgde uit wat geëxperimenteer met de headers die Firefox stuurt (Ethereal!) De Python-libraries blijken echter wat weerbarstig, en ik moest wat onelegante boilerplate-code schrijven om het allemaal werkend te krijgen.

Mijn versie werkt op Linux, maar zou het ook moeten doen op Windows (vereisten) en MacOS-X (met X-server). Het programma kan zeker nog wel wat liefde gebruiken, maar het lijkt redelijk te werken. Hier is de code (GPL).


2004-10-07
 
DEN HAAG - Bewolkt, 12 graden.

bug jihad

Ik heb een tamelijk drukke week. Deze week staat in het teken van het verhelpen van zoveel mogelijk problemen. Bugs in de brede zin van het woord; echte fouten, maar ook gewenste extra functionaliteit. En zo ben ik code aan het schrijven in een stuk of vijf computers, in drie talen (c++, perl en sh). Maar het gaat goed, en ik heb vandaag het de magische 0 bugs kunnen bereiken (beter bekend als 'needs more testing' ;-)

gnuvd

En na een uur of negen code schrijven is er geen 's avonds geen betere ontspanning denkbaar dan... nog wat code schrijven! Daarom heb ik eindelijk versie 1 - beta 5 van gnuvd, mijn woordenboekprogramma, uitgebracht.

Het is een simpel programmaatje, dat ik in 2001 schreef om mijn kennis van C socket programming weer een beetje op te vijzelen. Sindsdien heb ik het een beetje onderhouden. De vorige versie is overigens al weer van zo'n veertien maanden geleden. Echte bugs zaten er (voor zover ik weet) niet in, maar af en toe krijg ik patches van gebruikers (de kracht van open-source!), en tezamen met wat andere cleanups heb ik maar weer eens een versienummertje opgehoogd. Ik heb geen idee hoeveel mensen het gebruiken, maar ik spreek soms gebruikers, en volgens Google zijn er meer dan tienduizend pagina's die naar gnuvd verwijzen(!).

djcb@mindcrime (0) % gnuvd aap
aap (de ~ (m.), apen)
1 vierhandig zoogdier uit de orde der primaten dat tot de onderorde Anthropoidae behoort
2 deugniet [Belg., niet alg.]

a.a.p. (het ~)
1 [Belg.] assisterend academisch personeel

`aap|je (het ~, ~s)
1 vroeger huurrijtuig in Amsterdam

`aap|mens (de ~ (m.))
1 [inf.] voorhistorische mens met aapachtige trekken
Eerst heette het programma gvd, ik vond dat wel een treffende naam... Maar het parasiteert op de website van Vandale, en die verzochten mij de naam te wijzigen omdat zij "gvd" zelf al gebruiken... Grote VanDale. Toen heb ik het maar hernoemd in gnuvd, als eerbetoon aan het GNU-project.

rammelende vensters

Ik gebruik voor mijn internetverbinding thuis de bestaande spullen van Wanadoo - in dit geval een ADSL aansluiting die via een USB-modem loopt. Het HM121dp-modem wordt niet ondersteund onder Linux. Er zijn drivers voor Windows en voor MacOS, maar niet voor Linux. En het is non-triviaal om zelf een driver te schrijven, zeker als de technische spec niet beschikbaar zijn. En dus gebruik ik maar een oude laptop met Win2K om me te verbinden met het internet.

En zo kwam ik in de wereld terecht van internet via Windows... een wereld vol met spyware, addware enzovoort. Ik gebruik geen Internet Explorer, de voornaamste vector bij het verkrijgen van ongewenste rommel. Behalve voor Microsofts Windows Update, dat alleen werkt met IE. Verder doe ik eigenlijk niets met die machine; behalve elke dag Spybot, het free-as-in-beer programma dat redelijk succesvol lijkt in het verwijderen van rommel. Maar toch blijft er altijd wat achter. Of worden er via de poreuze beveiliging nieuwe ziektekiemen binnengelaten?

Geen zin om dat uit te zoeken. En Win firewalls *urghh*. Waar is netfilter als je het nodig hebt?!

misc

Ik ben een space invader volgens de de test van 'personages' uit het gouden tijdperk van videospellen (1979-1984).

Ik luister naar wat muziek, Pain of Salvation (sucky site) en Royal Hunt zijn best aardig, maar Spock's Beard vind ik wat minder.


2004-10-03
 
DEN HAAG - Het is grijs vandaag, 15 graden.

De begrafenis was geslaagd (voor zover mogelijk). Na de ter aarde bestelling werd nog een ronde geloven om het kerkhof ter verjaging van boze geesten; een pre-christelijke gewoonte die stand gehouden heeft.

o o den haag

Vanmiddag heb ik weer eens heerlijk hardgelopen. Het hardlopen blijft tegenwoordig een beetje beperkt tot het weekend, vanwege wat drukte en met name de vroege duisternis. Maar vanmiddag heb ik de zoute schoenen maar weer eens aangetrokken.

Ik begin bij mijn huis aan de Herengracht. De foto rechts had vanuit kamer genomen kunnen zijn, ongeveer een halve eeuw geleden. Het was toen een stuk drukker op straat dan nu! En er reed een tram.

Vanuit de Herengracht ren ik richting het station, maar buig af naar links. Aan mijn rechterhand het Malieveld. Het Malieveld is ontstaan nadat bomen van het Haagse Bos aan het eind van de 16e eeuw gekapt werden om (tevergeefs) een muur om de zo'n 8000 inwoners tellende "stad" te bouwen, om de Spanjaarden tegen te houden. En naderhand werd het door de adel gebruikt om er Paille Maille te spelen. Vandaar die naam. En tegenwoordig wordt het Malieveld gebruikt voor demonstratie, kermis en Pasar Malang. (Lees meer)

Na het Malieveld ren ik verder richting het Haagse Bos. Volgense de geruchten is het Haagse Bos na zonsondergang een homo-ontmoetingsplek. Ik heb daar nooit veel gemerkt. Wel zie je af en toe wat duistere types in het bos. Maar wat is nu een betere motivator als je aan het hardlopen ben?!

Het Haagse Bos was tijdens de Tweede Wereldoorlog een opslagplaats en ook lanceersite voor honderden Duitse V2's. Op 3 maart 1945 werd het gebied door de geallieerden gebombardeerd, maar door een navigatiefout werd ook een woonwijk getroffen: 486 slachtoffers. (Lees meer).

Midden in het Haagse Bos ligt Huis ten Bosch, alwaar de koningin Beatrix woont. Ik geef meestal een symbolisch tikje op het hek, en wordt vriendelijk begroet door de wacht. Beatrix' aanwezigheid wordt aangegeven met de gegehezen koninklijk banier op het paleis.

De eerste steen werd in 1645 gelegd door asielzoekster Elizabeth, voormalig koningin van Bohemen. Zij was uit Bohemen (Tsjechië) gevlucht na de door de protestanten verloren Slag op de Witte Berg van 1620.

Het paleis bleef in koninklijk handen totdat de Franse bezetter het in 1795 aan het 'Bataafse volk' schonk; tot op de dag van vandaag is het nationaal bezit.

Na de oorlog was het paleis erg beschadigd; maar na renovatiewerkzaamheden was het in 1956 weer geschikt voor bewoning. In 1981 betrokken koningin Beatrix, prins Claus en hun kinderen het paleis, en de koningin woont er, zoals gezegd, nog steeds. (Lees meer).

Dat was het mooie gedeelte van mijn hardlopen :-) Ik ren verder door het Haagse bos, richting Rijksweg 14. Ik ga naar naar rechts, loop weer door het Haagse bos, steek de Bezuidenhoutseweg over en ren over de Diamanthorst, Vlaskamp, Theresiastraat. Richting Centraal Station.

Op het stationsplein staat het meest wanstaltige kunstwerk denkbaar de Art de Triomph, een enorme poort opgebouwd uit containers. Maar -- het werk is plotseling verdwenen! Daarom een foto van een hoekje van het station, ingepakt tussen grote brokken moderne architectuur. Die ik met grote snelheid passeer, bijna weer thuis.

Een laatste inspanning en ik ben terug op de Herengracht. En dat allemaal in 42:21. Ik ga het zo nog eens proberen!

ubuntu

Ik speelde wat met Ubuntu Linux, een Linux-distro voor eindgebruikers, gebaseerd op Debian en Gnome. Het Ubuntu-project wordt gefinancierd door Mark Shuttleworth, een Zuidafrikaan die zijn fortuin maakte via Thawte, met beveiligde webservers (https, PKI, certificaten... hmmm...). Genoeg fortuin om als eerste Afrikaan een ruimtereis te maken in 2002.

Alsof dat nog niet genoeg is, is die Shuttleworth ook nogal fan van de Python-programmeertaal, ooit bedacht door onze landgenoot Guido van Rossum. Er worden zelfs beloningen uitgeloofd

Ubuntu is gebaseerd op Debian, maar helaas kan ik niet naadloos (apt-get)upgraden vanaf mijn Sarge-systeem naar Ubuntu, omdat versienummers conflicteren. Verder lijkt het een tamelijk gelikt GNOME-systeem, standaard met root gedeactiveerd, maar met sudo. En natuurlijk met veel extra Python-tools. Ik ga ook maar weer eens wat Python coden. En Mono/GTK#.

perl

Ik was net wat over Python aan het lezen, toen ik een accute perl-aanval kreeg. Resultaat: een linkchecker in een enkele regel perl, die HTML leest van STDIN, en niet-werkende links op STDERR print.
$ perl -MHTTP::Request::Common -MLWP::UserAgent -nae 'x:if(s/href\s*=\s*\"([^\"]+)\"//){print STDERR $r->code.":".$r->message."\n"if(!($r=LWP::UserAgent->new->request(GET $1))->is_success);goto x;}' < test.html
Perl rocks! Maar de echte meesters zitten bij Perl Golf. Bijvoorbeeld: zet een getal in tekst om in cijfers, dus >one thousand five hundred three => 500. De korste inzending zonder gebruik te maken van speciale karakters komt van Ton Hospel - en die ken ik!
-lp040 $a+=$a%1e3*(9x(3*y/dbl//-4*/e/))||/te|lv/././+index(')"4 &37%.Q!',$&^V&$').$[x/y/}{$_=$a;1while s/\B..\d\b/,$&/

misc

Jeremiah Abaka uit Nigeria beweert een vaccin tegen AIDS ontwikkeld te hebben. Zijn aanpak is wat... onconventioneel, en hij beweert zijn vinding succesvol op zichzelf getest te hebben. Het klinkt als een hoax, maar zijn bevindingen zijn nu gepubliceerd in Vaccine, hetgeen een gerespecteerd wetenschappelijk journaal schijnt te zijn. Hopelijk blijkt deze Abaka wat betrouwbaarder dan sommige van zijn landgenoten.

2004-10-01
 
DEN HAAG - Donderdagavond.

final bug

Deze week heb ik het erg druk met het schrijven en installeren van software, en het oplossen van de spreekwoordelijke final bug. De final bug is die allerlaatste fout in software die nog gefixt moet worden. Computer-god Donald Knuth denkt dat het aantal fouten asymptotisch afneemt, en geeft zijn TeX daarom versienummers die naderen naar pi (op dit moment zijn we bij versie 3.141592; zie ook zijn error log).

In de EchteWereldTM loopt het iets anders met bugs. Ze verstoppen zich een hele tijd, en lijken dan eerder asymptotisch toe te nemen richting die verticaal, beter bekend als deadline :-)

Natuurlijk is het ontwerpen en schrijven van nieuwe software een stuk interessanter dan het verhelpen van kinderziektes [in software], maar ja - het hoort erbij. Extra leuk is het zoeken van verbetering (of niet?!) in de homedirs van afwezige mede-hackers, aangezien CVS niet altijd het laatste woord blijkt... *zucht*. Gelukkig kon ik me de woorden van Anthony Robbins herinneren, en doorstond ik alle beproevingen met een glimlach. Nou ja, *bijna*.

Ik ontdekte dat ik mijn mail zo'n vijfmaal sneller kon downloaden met retchmail dan met fetchmail. Da's best aardig; alleen vraagt retchmail zich niet af of een bericht misschien al eerder gelezen was, en blijft 'ie dezelfde berichten steeds opnieuw downloaden. En dus moet ik berichten meteen verwijderen... En apt-get besluit fetchmail maar te verwijderen als ik retchmail installeer! Maar verder best aardig...

Het ongedocumenteerde MSNP9-protocol gedocumenteerd.

geluid

Ik beluisterde het werk van Shadow Gallery; klinkt erg goed. Sympho-rock. Soms een beetje als een wat hardere Pink Floyd (maar minder saai ;-), soms als Dream Theater in hun "When day and dreams unite"-periode. Ze weten hoe ze hun instrumenten moeten bespelen ("Stilleto in the sand"). Of over de moderne communicatie (erg treffend voor mij...):
The way you come to me is such a mystery
I just reach out and connect
A thousand miles from me and yet it's all right here
It's electric on a silver thread
I never see your face you're such a mystery
Where you are I can only guess
Addictive screens
I just cannot turn away
Where are you anyway?

(uit: Mystery)

misc

Morgen begrafenis.


Emacs, the UberEditor Powered by Blogger