2006-07-27
 
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.


0 Reacties:

Een reactie plaatsen


Emacs, the UberEditor Powered by Blogger