Hypocriete vrijheid

Het is al weer even niet gelukt om hier iets te schrijven. Dat kost tijd, net als zo veel andere dingen. Maar nu dan toch maar, bijna een week na dato, een stukje over bevrijdingsdag.

Click to continue reading “Hypocriete vrijheid”

Posted in Politiek | Tagged , , , , , , , , | Leave a comment

Het leven is een wedstrijd

Bijna iedereen vraagt zich wel eens af wat nou de zin van het leven is. En er bestaan veel antwoorden op die vraag. Veel mensen geloven in een nieuw leven, een hemel, een hel. Voor mij is dat het niet. Want als je dan in die hemel belandt? Begint alles dan gewoon weer opnieuw? Alweer toe leven naar een einde? Of mag je voor altijd het zelfde liedje blijven zingen? Lijke me saai.

Mensen doen allerlei verschillende dingen. Veel daarvan zien we nergens anders in de natuur. De wereld verbeteren en anderen helpen, zijn niet direct dingen waarmee je kan overleven. En dat is wel iets wat we allemaal willen – maar waarom eigenlijk? Terug naar de zin van het leven… en dat weet eigenlijk niemand.

Wat we over het algemeen allemaal bereiken, al is het tegenwoordig meestal via de financiele omweg, is dat we kunnen eten, overleven… en voortplanten! En dát zien we overal in de natuur. Vrijwel alles wat leeft draagt bij aan het voortbestaan van zijn eigen soort. Maar waarom zouden we dat doen?

Misschien ligt daar wel het antwoord op de grote vraag. Misschien gaat het helemaal niet om de individu. Misschien gaat het wel om de soort. Misschien is het leven wel een grote wedstrijd, uitgeschreven door de schepper; op de dag des oordeels wordt de soort met de meeste individuen tot winnaar verkozen. Gaat heen en vermenigvuldigt U. De bijbel zegt het zelf. En laat vooral je medemens in leven, anders winnen wij die wedstrijd nooit.

Posted in Humor | Tagged , , , , , , | Leave a comment

Gratis lesje PHP: Veiligheid

Bouw je wel eens een website met PHP? Wil je dat nog gaan doen? Of vraag je je af waarom de ene na de andere database met persoonsgegevens op straat beland? Zoals Dr. House regelmatig zegt: “Everybody lies”! Gebruikers van een webapplicatie, maar vooral hackers en crackers. Als softwareontwikkelaar mag je daarom de gebruiker nooit vertrouwen.

Click to continue reading “Gratis lesje PHP: Veiligheid”

Posted in Computers | Tagged , , , , , , , , , , , , | Leave a comment

VirtualBox and Mono – ‘Managed’ Virtual Machines on Linux

My previous post already explained how to embed and control a VirtualBox Virtual Machine in a C#/.Net application on Windows. That was too easy, and it’s really less fun if it does not work cross platform, so the next challenge was to make it work on Linux, with Mono as the .Net runtime. A few people have been working on this before, but that was a long time ago and I bet they never got this far. Nevertheless, they were the ones to implement XPCOM interop in mono, making my experiment a lot easier.

On Linux, VirtualBox uses XPCOM as it’s component model, to replace (MS)COM. The two appear to be essentially the same; they both use vtables, interfaces and IUnknown. The two are *almost* (binary) compatible. An important difference is in the object creation or ‘activation’. (MS)COM relies on a system wide database (somewhere deep in the Windows registry) to track all known Objects, and from there provides a platform API function to create an object instance. XPCOM, the Cross Platform Component Object Model, does not provide such a feature. Combined with some missing features and a lack of proper documentation, this resulted in slightly different implementations being in use today. Other, perhaps even more important differences are in how some data types are represented (especially arrays and strings), and the lack of IDispatch support in (VirtualBox) XPCOM. The last one is a real problem, as it changes the layout of *every* interface definition, making the Interop assembly generated by Visual Studio .Net useless on Linux, and making it very difficult if not impossible to support both COM and XPCOM with one codebase.

The object activation in VirtualBox is quite simple. The VBoxXPCOMC.so library provides a function named VBoxGetXPCOMCFunctions, which simply returns a structure with a bunch of function pointers (which looks much like a COM vtable). By calling the appropriate functions, one can easily activate the needed XPCOM objects.

To work around the missing IDispatch support in the XPCOM interfaces, the Interop assembly needs to be changed. I ended up writing some C# code which can automatically generate appropriate interface definitions based on the VirtualBox.xidl file (available in the SDK package and in the SVN repository, note that it is important to use the xidl file that corresponds to the VirtualBox version you want to use, as the interface definitions do change over time!). This also provides an opportunity to work around the differences in how strings are represented. Arrays are still troublesome, as VirtualBox internally represents one Array parameter as two parameters (size and a pointer to the first element). Such an array can be ‘marshaled’ as an UnmanagedType.LPArray, but having two parameters instead of one makes the definition incompatible with the one generated by VS.Net (and used on Windows/MSCOM).

So what’s the deal if it is not compatible? Well, if the interface definitions define the same managed interface members, one interop assembly can serve as a drop in replacement for the other. Note that only the functions we use need to match, and the order in which they are defined or their attributes are not relevant. One can write code in VS.Net while using the COM interop assembly, and run the same code on Linux with the XPCOM interop assembly. It’s even better: the framework only loads an assembly when it *needs* a type defined in it, and only if the type is not already available. So if we detect a Linux system, we can simply load the XPCOM interop assembly, before the framework loads the COM interop assembly, and the frontend code won’t know the difference! This is also the reason for using multiple stages in the program initialization (ProgramLoader.Main, ProgramLoader.Main2, ProgramRun.Run, and the Object type of ProgramRun.WaitingForProgress) – to prevent the runtime from loading the assembly before we have had a chance to load the alternative one.

So, arrays are still unsupported in the XPCOM interop code. We don’t really need them much, yet. Currently, only the VBoxEventListener uses an array parameter, and uses an ugly hack for this purpose: it defines an alternative version of the interface it wants to use, where the function it wants to call has two parameters for the array (size and pointer). It then decides which version of the interface to use based on the OS platform. Perhaps a way to properly marshal the arrays already exists, or could be created using custom marshaling. Alternatively, wrapper classes could be created for all COM interfaces, to convert the function parameters appropriately, essentially re-implementing the COM interop/proxying. The use of custom wrapper classes is probably the most flexible one as it gives full control over the marshaling.

Another near-showstopper is what I think is a bug in the Mono runtime: Mono releases COM interface pointers, which it receives as a result of a COM function call, twice. Once in the Interop calling code, and once while marshaling the interface pointer to a .Net interface. This results in crashes while accessing methods and properties which return an interface type. The fix for this is very simple, and will hopefully find it’s way to the Mono distribution soon. Alternatively, the custom COM wrapper classes can be used to work around this issue and avoid the Mono (XP)COM interop code altogether.

On Linux, most users do normally not have ‘root’ privileges, but root privileges are needed to access the VirtualBox kernel driver. VirtualBox handles this by making it’s executables ‘setuid root‘, meaning that any user can run the executables with root privileges. By itself, this would be a gaping security hole, so normally VirtualBox is compiled with ‘hardening’: a wrapper application is started as root, opens the kernel driver, drops all privileges (by calling setuid and setgid) and then loads a dynamic library containing the actual application.

This approach works very well as long as all executables and libraries involved are known, but we can’t easily add a new frontend application without recompiling all of the VirtualBox code. One hackish way is to replace one of the existing shared libraries, for example VBoxBFE, with our own version which will fire up mono. This approach works, but still requires modifications to the VirtualBox installation. Note that the mono engine has to be loaded as a library, as the kernel driver will be closed on exec(ution) of another executable.

Another approach is to start mono as root, with the VBOX_USER_HOME variable set correctly. Then, after starting the VM, the application can drop it’s privileges. This works, but will result in files owned by root appearing in your VirtualBox data directory, possibly resulting in trouble when you want to use the standard frontends later on. Also, VirtualBox may not be able to clean up some unix sockets and pipes which it has created as root. And last, the GTK GUI library, which is used by the Windows.Forms implementation, does not like to be started as root, so the GUI can only be created after the VM has been started. To make it all a bit more friendly, it’s possible to create a ‘setuid root’ wrapper application, which simply executes mono (or loads mono as a library).

Luckily, VBoxXPCOMC.so also exports the hidden RTR3InitAndSUPLib function. This function can open the kernel driver, without starting a VM. This function can be called from the C# code, before dropping privileges, and the application can then safely create the GUI and start the VM. One problem here is that mono and the .Net code still needs to be started as root, which might be dangerous if we don’t properly lock down what code mono will run. An easy way to get around this, is to create a wrapper application in C, which initializes the kernel driver, drops privileges and then runs the .Net code. According to the VirtualBox team, it should be very difficult to abuse the kernel driver access for anything other than hanging the host system, so this should be pretty safe, although you should still be careful.

And again, the sourcecode for the complete project, including Linux support, is available in my Mercurial repository at http://oss.ucis.nl/hg/vboxdotnet/.

Posted in Computers, English | Tagged , , , , , , , , , | 1 Comment

VirtualBox and .Net – Virtual Machines in a Managed environment

About a week ago an old, crazy idea (re)occured to me: why not try to interface with VirtualBox from .Net? In case you did not know – VirtualBox is a Virtual Machine software, which allows you to run a virtual computer with it’s own operating system and software on another computer. The Microsoft .Net framework is an application (development) framework, runtime library, and comes with multiple high level programming languages. Microsoft calls programs that run in the .Net environment ‘Managed’. Ofcourse, .Net would not have been as good as it is if there were no Linux support for it, provided by the Mono software. And ofcourse, I could not resist making my VirtualBox frontend written in C# work on Linux.

On a Windows system, it’s all pretty straightforward. Create a new .Net project (I use C#), add a reference to the ‘VirtualBox type library’ COM library, and experiment. Create an instance of the VirtualBox.VirtualBoxClass, an instance of the VirtualBox.SessionClass, find an IMachine (using IVirtualBox.FindMachine), lock the machine to the session and power it up. You can find this code somewhere in the ProgramRun class. Yep, it is that simple. Now we have a running machine – but no graphics, no mouse, not even a keyboard. We’ve just created a simplified version of VBoxHeadless. No fun. Let’s start with some graphics.

By the way, notice that the IMachine interface also has a function call named LaunchVMProcess, which you can use to easily launch the standard “headless” or “gui” frontends, but this is ofcourse less fun. Also note that for the resulting executable to work, it may be necessary to copy it to the VirtualBox installation directory, or to copy a bunch of files from the VirtualBox installation directory to the application directory.

My approach, as I have done this before for the VirtualBox VNC support, was to create the Framebuffer class, which implements IFramebuffer. Basically, the framebuffer provides a buffer, a block of memory, where VirtualBox can write the image to. Now, to display the framebuffer, a Bitmap object is constructed, using the same block of memory. Then simply put this Bitmap instance in a PictureBox, or anything that can display an Image. All that’s left is to attach an instance of the framebuffer object to the Session.Console.Display. Note that the framebuffer may have to be resized when the Virtual Machine changes video modes, allocating a new block of memory and releasing the old one. Be careful that the old block of memory is really not used anymore, before releasing it. Also note that the form can set a VideoModeHint on the IDisplay interface, to inform the guest (additions) about the desired video mode. The guest may or may not listen to this request.

Adding some mouse support is quite simple, some mapping is needed for the buttons, and depending on the guest mouse driver, a relative position may have to be calculated. Also note that, when sending ‘absolute’ mouse positions, the top left pixel has the coordinate (1,1). This is handled in the Form’s Mouse* event handlers in the Display class.

The virtual keyboard is a bit more troublesome. VirtualBox expects ‘good old’ keyboard scancodes, as sent to the computer by old AT/PS2 keyboards. Each *key* has it’s own code (so the only difference between a 1 and a ! is whether the shift key is down). The scan codes appear to be ordered the same way as the keys on the keyboard (eg ‘Q’ comes before ‘W’). Some lookup tables are used to map the .Net key codes to these scancodes. Luckily, the framework does not differentiate between ‘1’ and ‘!’ either at this point, and sends the shift key like any other key, so we can get away with a simple one-to-one mapping, which is implemented in the VBoxKeyboardHelper class.

I have also added a VirtualBox EventListener to the user interface (Display class). The event listener itself is implemented in the VBoxEventListener class and simply forwards the events to a .Net EventHandler. It’s used for informative purposes, as well as to control the machine state flow.

My next blog post will talk about adding Linux/mono/XPCOM support to the application, which is perhaps (even) more interesting, and was definitely more challenging.

The sourcecode for the complete project, including Linux support, is available in my Mercurial repository at http://oss.ucis.nl/hg/vboxdotnet/.

Posted in Computers, English | Tagged , , , , , , , , , , , | 1 Comment

Een nieuwe dag met koperdiefstal en de Sp!ts

Mijn dag begon vanochtend al goed. Of eigenlijk kwam er nooit een eind aan de vorige dag: rond een uur of twee op bed gaan liggen, en vervolgens niet kunnen slapen. Gebeurt wel vaker, als ik vroeg op moet staan. En inderdaad, om 6:20 ging de wekker. Opstaan ging eigenlijk nog vrij makkelijk, helaas bleek het buiten te regenen. Owja, het had al de hele nacht geregend. Op het station nog een verse Sp!ts meegekregen van onze altijd vrolijke Sp!ts-uitdeler, en op naar de trein.

Pas in de trein had de conducteur een trieste mededeling voor ons. Voorzichtig werd ons uitgelegd dat er op het traject Tilburg-Eindhoven koperdieven actief waren geweest, waardoor diverse spoorwegovergangen niet functioneerden. De machinist zou deze overgangen slechts met tien kilometer per uur mogen passeren, en dat zou uiteraard resulteren in een vertraging van zo’n 20 minuten. Bah!

Tijd om de Sp!ts open te slaan voor het vrolijke nieuws van vandaag. Weinig nieuws op de voorpagina. De tweede pagina had echter weer een droevige mededeling: “Generatie Pech is de sjaak”. De jongeren van na 1985. Ik dus. Te vrij opgevoed, slechte scholing en nog meer gezeik. Bovendien krijgen wij ook nog de gevolgen van de vergrijzingsgolf over ons heen. Fijn om te weten. Tijd om verder te bladeren, zo de paginagrote advertentie voorbij.

Op pagina vijf wordt het echt interessant: “Ben ik nog verdacht?”. Een artikel over het nieuwjaarsfeest van Yashna van Kinderen, of eigenlijk de nasleep. Yashna werd tijdens nieuwjaarsnacht aangehouden in een shoarmazaak, waar zich mogelijk een dader van een schietpartij zou bevinden. Volgens het artikel heeft het zo’n twee uur geduurd voordat de 26 kersverse verdachten het pand mochten verlaten. Met tie-wraps om de handen, bij gebrek aan fatsoenlijk materieel. Vervolgens nog mee naar het politiebureau voor een ondervraging: drie simpele vraagjes over wat meneer gezien had. Vervolgens nog even spulletjes inleveren en de cel in. Als verdachte. Pas zes uur later werd Yashna weer vrijgelaten, zonder excuus of verdere mededeling.

Dan denk ik: WAAR ZIJN WE GODVERDOMME MEE BEZIG? Je gaat toch niet het leven van 26 mensen na een geweldig nieuwjaarsfeest op pauze zetten omdat er mogelijk zich mogelijk iemand met een pistool onder hen bevind? Nog even de nacht afsluiten met een klein trauma. Even ondervragen, oke. Maar niet twaalf uur lang als verdachten behandeld worden. Dat kan echt niet! We zijn hard op weg naar een verpauperde politiestaat. En op dit ene artikel na wordt er verder weinig aandacht aan dit incident besteed. Een incident wat niet op zichzelf staat; neem bijvoorbeeld de recente ongelukkige verdenking en arrestatie van een stel Somaliërs. Ook het veelvuldig platleggen van het spoorverkeer wegens “zich vreemd gedragende personen” past in dit plaatje. Kunnen we hier niet meer nadenken? Een beetje onderzoek verrichten voordat we actie ondernemen? Het lijkt wel of de politie hier vrij spel heeft, met het alleenrecht op machtsvertoon en burgertje pesten. Machtsvertoon? Kijk maar eens naar het TV programma “De politie op je hielen”. Die lui kunnen er wat van. Al ben je onschuldig, dan weten ze zich zo te vertonen dat je ze vanzelf een dreun zou willen verkopen.

Maar genoeg over de wandaden van de politie. Door naar pagina zes en zeven: tweemaal Chemie-Pack. Meer media aandacht dan de duurste reclamecampagne die het bedrijf had kunnen betalen. Niet helemaal zoals gewenst, maar ach. Maar dan heb je al die zeikende angsthazen nog. Wantrouwen jegens de overheid – en terecht. Maar, mogen we hier ook al niet meer zelf nadenken? Of misschien is het maar beter van niet. Lijsten met gevaarlijke stoffen en dikke zwarte rookwolken vormen een mooi uitgangspunt voor een mooi stukje paniekvoetbal. Een enkele chemicus durft zich nog in de discussie te mengen door te vermelden dat het gevaar van dergelijke stoffen afhankelijk is van de hoeveelheid danwel concentratie. Maar nee, kankerverwekkend is kankerverwekkend, aldus de welgeschoolde burger. Nou, niet dus. En dan hebben we ook nog de roetdeeltjes, die misschien wel op de speelpleinen en spruitjes zijn geland. Is dat nou echt zo moeilijk? Plens water er overheen en weg roetdeeltjes. Hoppa. Maar daar waagt de overheid zich dan ook weer niet aan. Vroeger aten we lood voor ontbijt, lunch en avondeten, hoor. Niet goed, nee, maar de mensheid heeft het wel mooi overleefd. We vallen echt niet ineens allemaal om van een roetdeeltje met wat lood en dioxine.

Genoeg bagger voor vandaag. Pagina acht maakt een hoop goed met een foto vanuit Brisbane, Australië. Rare mensen, eigenlijk. Hun huizen zijn ondergelopen, en nu peddelen ze met een big smile in een opblaasboot over de weg. Metro voegde daar nog aan toe dat het best een kick gaf om de hele dag lang met een stel vrienden en een kratje bier langs de waterkant (het balkon?) te kijken wat er langs drijft. Restaurants en daken enzo. Ja, mooi volk. Altijd positief. Op de volgende pagina’s eigenlijk weinig interessants. De stripjes zijn wel leuk, de ingezonden brieven brengen vaak weer de nodige irritatie met zich mee… die mensen snappen het echt niet!

De Sp!ts inmiddels uitgelezen, maar nog steeds niet in Eindhoven aangekomen, en inmiddels wel te laat voor mijn afspraak. Gelukkig had ik de vertraging al in een kort maar krachtige mail vanaf mijn smartphone doorgegeven. Vervolgens had de conducteur nog meer droevig nieuws: het rampgebied had zich uitgebreid want ook de seinen werkten niet naar behoren. Prognose: 30 minuten vertraging. Ach ja joh, goed begin van de ochtend! Op station Eindhoven moest er nog een gaatje in de vloer van de stationstunnel gemaakt worden, uiteraard met veel kabaal… is vast niet verantwoord zonder gehoorbescherming, maar wat maakt het uit… klanten zijn geen werknemers, daar hoef je dus geen rekening mee te houden.

In Eindhoven aangekomen bleek het nog steeds te regenen, en grote plassen hadden zich inmiddels op de straten gevormd. We zijn toch geen derdewereldland zonder riolering? Aangekomen op de TU/e en na het maken van excuses voor de vertraging stond ik na drie minuten alweer buiten. Had niet verwacht dat ik zo snel klaar zou zijn. Shit. Weer terug naar huis met de NS, met uiteraard nog steeds vertraging. Nog even een Metro meepakken als leesvoer, die uiteraard ook weer voortijdig uitgelezen was. Nog even een geld-terug-bij-vertraging formuliertje meepakken, hoe zielig ik het ook vind voor de NS, het is echt niet hun schuld, maar ik heb er wel recht op. Thuis aangekomen nog maar eens lekker op bed gaan liggen, om nu weer wat te gaan leren voor een tweetal tentamens. Wish me luck!

Posted in Politiek, TU/e | Tagged , , , , , , , , , , , , , , , , , , , | Leave a comment

Keith Bakker – verslaafd aan taarten

Vanochtend met grote letters in de Televaagraaf: ‘Keith Bakker misbruikte patiëntes’. Keith Bakker? Ik ken die kop ergens van…

En inderdaad, het bleek te gaan om onze ervaringsdeskundige op het gebied van allerlei verslavingen (lees: hij is/was zelf verslaafd). Zo’n vier jaar geleden bedacht Keith dat het tijd was om een heuse afkickkliniek te openen voor gameverslaafden. Een gameverslaving zou immers zeer schadelijk zijn, en vaak zelfs samen gaan met drugsgebruik. De details licht Keith zelf toe in een nieuwsitem van actualiteitenprogramma Nova.

Tijdens CampZone 2006 werd er echter niet erg enthousiast op de videobeelden gereageerd. Nova had met behoorlijk wat creatief knip- en plakwerk een suggestieve reportage weten te bouwen met zowel beelden van CampZone als Keith Bakker’s afkickkliniek. Het was duidelijk dat het merendeel van de CampZone bevolking zou lijden aan een gameverslaving, en daarbij zouden zelfs harddrugs, zoals cocaïne, gebruikt worden.

Creatief als men was, werd daar gelijk op gereageerd met een voice-over. Hier onder een nieuwsitem over de Keith Bakker en zijn taartenverslaving.

En voor de volledigheid ook de originele video:

Posted in Computers, Humor, TV | Tagged | Leave a comment

Wie heeft er zijn bomkoffertje vergeten?

Vandaag in het nieuws: “Geen bom gevonden na noodlanding Zweden“. Met daarnaast, geheel gepast, een advertentie voor de NS Hispeed

Die zelfde NS die mij gisteren de hele dag heeft mogen vermaken. Rond 10:45 uur werd er namelijk op het centraal station in Tilburg een ‘verdacht pakketje’  gevonden. Volgens de Leeuwarder Courant was het perron al rond een uur of 11:30 afgezet, en het station ontruimd. Tip voor bommenleggers: je hebt zo’n 3 kwartier om te vluchten en op de knop te drukken.

Uiteraard had ik juist gisteren besloten om op tijd naar huis te gaan – om 12:30 klaar met college, 12:45 lopen, 13:02 in de trein. Niet dus. Ruim 2 uur na vondst van het pakketje mocht er nog steeds geen enkele trein langs station Tilburg. Advies van de NS: omreizen via Utrecht C, Rotterdam C… Van Eindhoven naar Breda… Advies van de conducteur? Een uurtje wachten; dan zou de storing wel voorbij zijn. Mijn advies: vertrouw nooit een conducteur. Is niet hun fout, maar zij krijgen van de werkgever niet meer informatie dan ik zelf al had verzameld.

Vervolgens dus maar weer terug lopen naar de TU/e, onderweg nog even lunch halen, en mijn tijd uitzitten. Wel goed voor je lichaamsbeweging: ik moest ongeveer een kwartier lopen! Vandaag dus viermaal. Aldaar vertreek de tijd, langzaam helaas, ik had eigenlijk gehoopt om al lang in bed te liggen, en het Walhalla was ook nog niet geopend. Zo’n uurtje later, rond 14:00, werd de storingsmelding op de NS website eindelijk geupdate. Opgelost? Opgelost? Niks opgelost. Men had nog zeker drie uur nodig, tot zo’n uur of 16:30, en de NS zet stopbussen in. Het station had inmiddels al lang weggevaagd kunnen zijn. Maargoed, fuck it, ik ga maar gewoon aan mijn reis beginnen. Conducteurs wisten mij geen eenduidig antwoord te geven over de snelheid van de NS bussen… en aangezien mijn vertrouwen in de NS toch alweer tot een dieptepunt was gedaald, besloot ik om om te reizen via Utrecht en Rotterdam. En dat duurt lang.

Rond een uur of 4, eindelijk in de buurt van Rotterdam, station Alexander om precies te zijn, bleek dat mijn broertje daar ook rond die tijd aan zou komen. Hij was net onderweg naar zijn huis – vertraagd, met dank aan de NS. Maar wel eindelijk een beetje gezelschap voor mij, en na de verbazing (huh? wat doe jij hier?) te hebben overwonnen, ook weer een blik kunnen werpen op zijn huis. Hij woont tegenwoordig trouwens in Rotterdam, op zich zelf, samen met twee anderen…

Bij mijn broer thuis nog even wat gedronken, en toen was het echt tijd om (nu samen) naar Breda te vertrekken. Toch best gek, om vanuit Eindhoven aan te komen op het perron in Breda, waarna die zelfde trein zonder om te keren doorrijdt naar Eindhoven…? Ik was toch wel erg blij met de herkenbare omgeving rond het spoor – gevolgd door het vertrouwde perron. Zo rond een uur of half 7 waren we dan eindelijk thuis, een slordige 4 uur later dan gehoopt. Eindelijk tijd voor voedsel, en ‘s avonds lekker op tijd naar bed… mijn dag begon immers al om 6:20.

Bedankt NS. Bedankt politie. Bedankt paranoïde medelanders.

En uiteindelijk? Bleek het gewoon om een onschuldig koffertje te gaan. Nog lelijk ook. De verleiding is groot om ‘per ongeluk’ een antieke PTT transformator of condensatorbank te laten slingeren. Gegarandeerd dat ze daar ook een bom in zien. Mijn aanvraag voor ‘geld terug bij vertraging’ is in ieder geval onderweg. Had dat ding toch gewoon opgepakt en op het naastgelegen rangeerterrein neergepleurd. Als er de bedoeling was om iemand op te blazen, was dat toch al lang gebeurd.

Posted in Breda, School, TU/e | Tagged , , , , , , , , , | 2 Comments

Sneeuwpret

Ondanks de vulkanische tegenslag in IJsland en de as die daardoor in ons luchtruim hangt, weet het zonnetje zich iedere dag weer beter te vertonen. De nachten kunnen helaas nog wel vrij koud zijn… In ieder geval een mooi moment om eens terug te blikken op de winter, omdat ik dat nog niet gedaan heb. Het was een lange winter met, voor Nederlandse begrippen, veel sneeuw. Ruim drie maanden zaten er tussen de eerste en de laatste sneeuwbui van het seizoen. Gelijk hadden we er weer een buzzword bij: zoutcrisis! Een aantal mensen reden daardoor helaas hun auto in meer of mindere mate in de kreukels. Gelukkig pakte deze witte winter niet voor iedereen negatief uit: wij hebben zowel een sneeuwpop als een echte iglo gebouwd! Zie hier de foto’s:

Ik moet toegeven, toen ik na de kerstvakantie weer om 6 uur ‘s ochtends mijn bed uit moest was ook ik die sneeuw wel beu. Op naar de zomer… wacht maar… zoals SBS6 het zou verwoorden: “Nu al de warmste zomer ooit!”. Je zal smeken om een koude sneeuwbal in je nek als je in je tentje/caravan/huis of hotelkamer zonder airco zit weg te bakken.

Posted in Vakantie | Tagged , , , , , , , | Leave a comment

De lente…

Na een vermoeiende woensdag-studiedag en een misschien nog wel slaapverwekkendere treinreis stap je dan zo rond een uur of zes uit de trein, op station Breda. En dan ruik je iets… niet de gebruikelijke combinatie van diesel, olie, pis en kebab… Het is bijzonder, benadrukt de zin van het leven, geeft weer verse energie (dat is hard nodig op zo’n moment), geeft een warm gevoel, maakt dorstig en brengt de behoefte aan zon, zee, strand en vakantie weer naar boven.

Ja mensen, de lente komt eraan.

En nu maar weer braaf verder leven tot aan de ingang van de zomertijd op 28 maart… de dag dat de duisternis zal wederkeren op het moment dat ik op moet staan.

Posted in Vakantie | Tagged , , , , | Leave a comment