misinterpretation of silence and its disastrous consequences
HELSINKI - Eigenlijk wilde ik gaan slapen. Ik was nogal sportief vandaag. Na een rondje in de gym deed ik nog een rondje Lauttasaari - een gevecht tegen de tijd. Ik won: een nieuw persoonlijk record - 42:30. Maar net voordat ik mij ter bedde leggen wilde, kreeg ik een heldere ingeving, dankzij twee boeken. Interactive Computer Graphics, A top-down approach with OpenGL (Second Edition) van Edward S. Engel, en The C++ Programming Language van Bjarne Stroustrup. De opeenstapeling van deze twee boeken gaf mij ongeveer 7 centimeter - precies genoeg om mijn (CRT) monitor op te zetten zodanig dat 'ie met z'n achterste over de vensterbank gaat. En de ruimte op mijn tafelblad nu groot genoeg is om ook mijn ellebogen toe te laten. Dat is innovatie. Enige nadeel is dat ik mijn rolgordijn nu niet meer volledig kan sluiten - zodat ik me voorlopig zal moeten afzien van naakte programmeersessies. Bummer. Toch voel ik me nu al meer productief.
(Foto rechts door Ann-Christin)
Niet zo productief natuurlijk als de schijnbaar onvermoeibare Philip (ha, mijn vaste link), die Tinymail nu ook geschikt heeft gemaakt voor OLPC, en daarnaast nog de Evolution-developers overstelpt met patches *en met vriendelijke aanmoedigingen* :-). Ik ben zelf ook best productief; er blijkt toch heel veel kleine, tijdrovende klusjes te zijn, zelfs in de julimaand waarin Finland verder uitgestorven lijkt. Maar er is nog wat tijd om wat software te schrijven. Ik schreef wat code om de instellingen GtkWidgets tamelijk generiek in een configuratiesysteem (zoals GConf) op te slaan. Bij het herstarten van een programma is het toch fijn als de userinterface weer zo tevoorschijn komt als ze is afgesloten. Een interessant geval zijn de kolommen die getoond worden in een e-mailprogramma. Welke kolommen (Van:, Aan:, Onderwerp:, Ontvangen:,...), met welke breedte en in welke volgorde. Ik doe dat nu met twee eenvoudige functies, ongeveer:
gboolean save_settings (Conf *conf, const GtkWidget *w, const gchar *name); gboolean restore_settings (const Conf *conf, GtkWidget *w, const gchar *name);Het moge duidelijk zijn wat er gebeurd; via introspectie worden de relevante parameters van widgets opgevraagd, en met behulp van een unieke naam opgeslagen; bij restore_settings gebeurd het omgekeerde. Het is goed dat ik deze maand de tijd heb om wat over dingen na te denken.
Een andere interessant project is Avahi, de software voor service discovery in het lokale netwerk. Het protocol (ooit bedacht door Apple) maakt gebruik van multicast-DNS om uit te vinden welke service op welke machine in het lokale netwerk te vinden. Daar zijn heel veel toepassingen voor te bedenken - met name ook in draadloze netwerken. Het is gebruikers van bijv. e-mailprogramma's maar moeilijk uit te leggen dat SMTP-servers meestal niet werken buiten het eigen netwerk... als ik het netwerk echter kan vragen wat de lokale SMTP-server is, gaat alles 'automagisch' goed.
Ubuntu/Edgy is bijhoorlijk gebroken op AMD/64 op dit moment - zozeer zelfs dat ik ben teruggeschakeld naar XFCE. Hopelijk snel weer mijn vertrouwde desktop.
rage, despair, release, transcendence
HELSINKI - De Finse zomer (kesä) houdt maar aan... alweer een prachtig weekeinde. Tot laat in de avond blijft het licht (al worden de dagen al korter(!)). Finland is in een zomerslaap - ik kan het niet duidelijker zeggen dan de grootste krant van Finland, Helsingin Sanomat:
HS INTERNATIONAL EDITION IS OFFICIALLY OFFLINE FROM 23.6.-31.7.Ik geniet van de weekenden, en wat het rustige kantoorleven. Een schrikbarend hoog percentage van de weinige aanwezige collega's, hult zich in korte broek... Iets weerhoudt me dat voorbeeld te volgen... of?
We wish all our readers a warm and relaxing holiday month
Mijn Italiaanse vrinden van Rhapsody heten nu Rhapsody of Fire. Met die naam worden ze eindelijk serieus genomen - na hits als The Magic of the Wizard's Dream en Steelgods of the Last Apocalypse (en mijn persoonlijk favoriet, Queen of the Dark Horizons). Gitarist Luca Turilli licht de naamswijziging (wegens een ©-conflictje) toe: "The power of the dragonflame will burn brighter than ever before".
Ik ontdekte het indrukwekkende stellarium, een WYSIWYG-planetarium voor mijn desktop. Het toont mij precies de namen van sterren(beelden), planeten en andere hemellichamen. En geheel grafisch, welhaast foto-realistisch. apt-get install stellarium
sonata subtropica
HELSINKI - Gisteren was het zo warm, dat ik na werktijd ben gaan zwemmen. In de zee. Ik woon op vijf minuten van het strand - maar dit was de eerste keer dat ik me door stenen en zeewier worstelde, samen met AC. Het water was lauw. Finland - van subarctisch naar subtropisch -- geweldig, dat broeikaseffect. Zondag bekeken we met wat Italiaanse collega's de finale tegen Frankrijk; resultaat is bekend. Matterazi noemde Zidane een terrorist?! Gelukkig won Italië; uitzinnige Italianen hingen om mijn nek. En nu weer vier jaar wachten...
In juli is heel Finland op vakantie - dat betekent heel weinig vergaderen, en zelfs minder e-mail. En wat meer tijd om wat te hacken, zoals aan mijn modest vaporware.
Ik probeer de dingen op te schonen, te herordenen, te verbeteren. Softwareontwikkeling is een constant proces van verbetering (tenminste, dat zou het moeten zijn). Ontwikkelen via het oeroude 'watervalmodel' (eerst alles tot in de details specificeren, en dan implementeren) leidt zelden tot goede software. De details van goed software-ontwerp zijn eenvoudigweg niet te doorzien voordat je een deel geschreven hebt. Dat wil niet zeggen dat het softwareontwerp wordt gedaan tijdens de implementatie (of erna --> zoals bij programmeeropdrachten op school/universiteit :-). Het is zeker belangrijk eerst goed na te denken over het hoe en wat. Maar ook om te beseffen dat het eindresultaat er waarschijnlijk anders uitziet. Een goede manier om goede ontwerpideeën te kanaliseren zijn design patterns. Voor een beginnend programmeur zijn die behoorlijk nutteloos, maar na het schrijven van een aantal grotere programma's wordt hun waarde steeds duidelijker.
De meeste goed ideeën komen niet met de vingers op het toetsenbord - die komen als ik douche, of hardloop, of stofzuig. En het is een geweldig gevoel om te zien dat goed ontwerp ook werkt - in een goed ontworpen systeem vallen de puzzlestukjes als het ware vanzelf in elkaar. Veel van de regels van het ontwerpen leerde ik van eerdere probeersels; maar het is goed om te zien dat mensen dat soort dingen documenteren: anti-patterns.
kesä suomessa
HELSINKI - De zomer blijft maar aanhouden hier in Finland; 28°C, geen wolkje aan de lucht. En heel Finland is op vakantie. Weinig meetings en rapporten, zodat ik tenminste wat kan doen op kantoor :-)
En woensdagochtend, kwart voor zeven, was het zover: Ann-Christin landde op Vanttaa, na haar Zuidoostaziatische odyssee, na meer dan vijf weken. Woorden schieten te kort etc. etc.; het was erg goed haar weer te zien. Ze heeft heel veel foto's gemaakt.
evolution + intelligent design
Philip sprak al eerder over het gebruik van mmap in libcamel, en voegde nu de daad bij het woord. De eerste resultaten lijken erg bemoedigend. Evolution/libcamel gebruikt voor een zekere hoeveelheid mail meer dan 100Mb geheugen, terwijl libtinymail/libcamel daar slechts enkele Mb's voor nodig heeft; en mmap zou voor meer verbeteringen moeten zorgen (met name in snelheid). En daarmee is libtinymail zeer geschikt geworden voor semi-embedded systemen, zoals de Nokia 770. En dan neem ik de voortdurende API-wijzigingen in tinymail graag op de koop toe :-)De code van modest (het tinymail-gebaseerde e-mail programma) is nog steeds niet publiekelijk beschikbaar - ik werk er aan, maar dingen gaan soms langzaam in grote bedrijven... Ik kijk er in ieder geval naar uit om een vlot, stabiel email programma te hebben voor m'n desktop. En ik kijk er naar uit om met anderen samen te werken om daartoe te komen. De laatste tien jaar heb ik mutt gebruikt, maar misschien wordt het eens tijd voor wat anders...
catalonië
Nog een interessante observatie uit Vilanova (GUADEC). Het stadje ligt in Catalonië. Zoals bekend spreekt men er geen Spaans maar Catalaans (in mijn oren klinkt het als een mengsel van Castilliaans ("Spaans") en Frans). Ik wist wel dat ze er een beetje nationalistisch (nou ja, regionalistisch) waren, maar dat het zo sterk was...De foto (rechts) nam ik de dag nadat Frankrijk Spanje versloeg tijdens het WK. En ook in de Sagrada Familia liet men niet na de Catalaanse gevoelens van Gaudi te vermelden. En ongeveer een maand geleden stemde zo'n driekwart van de Catalanen voor het uitbreiden van de autonomie.
guadec
HELSINKI - Dinsdagavond. Tijdens het bekijken van een spannende Duitsland tegen Italië schrijf ik maar weer eens wat in mijn blog. Ditmaal was niet het gebrek aan belevenissen de oorzaak van mijn lang afwezigheid - het tegenovergestelde.
Vorige week was ik in het Spaanse Vilanova voor de GUADEC-conferentie. Een week van onderdompeling in het laatste wat GNOME te bieden heeft. En da's behoorlijk wat. Hoewel ik toch redelijk op de hoogte ben van wat er speelt, zijn er toch altijd weer heel interessante projecten die aan mijn Sauron-oog weten te ontkomen.
Zoals Jackfield, een programma om Apple's Dashboard widgets (te vergelijken met gDesklets) op de GNOME-desktop te gebruiken.
Of Diva, een zeer nifty video-editor (op basis van C# en GStreamer). En wat te denken van Jokosher - een multitracker voor het bewerken van geluidsopnamen (Python, GStreamer)? Of, Elisa (Python, GStreamer), een zeer bling-bling media-center, vol met fraai OpenGL-oogsnoep. Al de programma's worden gekenmerkt door de zorg en liefde waarmee de user-interface is vervaardigd. Zeer indrukwekkend.
Gimmie experimenteert met nieuwe manieren om met informatie om te gaan - en presenteert die in vier categorieën - People / Documents / Applications / Computer. De demo was erg sterk - een zeer geslaagd experiment.
Maar misschien nog wel het meest indrukwekkend was One Laptop per Child - het project om arme kinderen een computer te bezorgen, kostprijs ongeveer US$100. Jim Gettys ging tot in detail in op allerlei hardware trucs die ze verzonnen hadden om het stroomverbruik te minimaliseren. En de ingenieuze manier om ad-hoc 'mesh' netwerkjes op te zetten tussen verschillende computertjes, zonder server. De software is een uitgekleed Fedora-systeem, met daar bovenop een user interface met GTK+/Python. De software is nog sterk in ontwikkeling. Later spraken we met Jim, en als ervoor gekozen wordt om 'traditionele' e-mailfunctionaliteit aan te bieden, dan gooit tinymail hoge ogen. OLPC is een zeer interessant project, zowel technisch als *hoest* ideëel.
Maar GUADEC gaat natuurlijk vooral om de sociale contacten. En die waren er veel. In de avonduren waren er vele (strand)feesten, waarbij mede-hackers werden aangetroffen. Zoals bij de Fluendo-party, waar iemand op het lumineuze idee kwam de id-badges te verwisselen... Ik ontmoette heel veel mensen, schudde handen en wisselde kaartjes uit... Het was goed eindelijk de zeer energieke Philip eens te ontmoeten. De man achter Tinymail sprak zich kritisch (maar weloverwogen) uit over veel projecten; en met name de huidige Evolution-ontwikkelaars moesten het ontgelden... Ik sprak met hem over tinymail, modest en een heleboel andere dingen - inspirerend.
GUADEC was, kortom erg geslaagd. Het Spaanse organisatietalent is niet zo groot als het Duitse (vorig jaar was GUADEC in Duitsland) - maar een kniesoor die daar op let... Tussen neus en lippen door brachten we ook nog de totaal vernieuwde software voor de 770 uit. En het was goed te zien dat we de populariteit van de 770 op GUADEC hebben kunnen behouden, na de introductie vorig jaar!
Na GUADEC bracht ik het weekend met wat collega's (Makoto, Andrea + Valentina) door in het prachtige Barcelona. Werkelijk een prachtige stad, vol met de beelden van Gaudi, Dali en Picasso. Ik heb wat foto's geplaatst op mijn Flickr pagina (in klein formaat; mijn ruimte daar is beperkt).
fast wieder dabei. En morgenochtend keert Ann-Christin weer terug, na meer dan vijf weken in Azië gereisd te hebben. (Ze is nog niet op de hoogte van de uitslag van een dramatische Duitsland - Italië...).. Ik mis haar erg!!! Maar het wachten is gelukkig bijna voorbij.