Like walking on a fluffy cloud

So what would a small-time web-tech blogger all of a sudden need Amazon EC2 or Google App Engine expertise for? For his real job, that’s why!
On Thursday, May 12th someone pretty high up in the company hierarchy decided we had to have a web application ready on the 19th. The catch: it had to be able to handle a shitload of traffic in only 2 days time. After consulting with a couple of specialists and reviewing our options, we decided to go for it with our existing web-development partner. Because of available expertise and resources however, we decided to switch from J2EE to .Net and to deploy the application on Microsoft’s “platform as a service” offering, called Azure.
In 5 days time (what weekend was that?), using a shared Google Docs spreadsheet as project hub (for bug-list, todo’s, translation strings and in document IM) the application was developed, tested and hammered upon with a huge load-test and on Wednesday-evening the final version was deployed on Azure.
The most interesting technical tidbits (as designed by a smart and very motivated lead-developer):

The application handled a huge amount of traffic the first two days. Due to circumstances the load was especially high on Thursday morning (with over 800 HTTP-requests/second), but performance and availability remained perfect. It was like walking on this fluffy cloud, really:

On the rebound with an Acer beTouch e110

On January 28th I was stupid enough to forget my trusty HTC Hero on the train. I filled out the NMBS’ online lost luggage forms and mourned the loss of my faithful personal digital assistant for a couple of days. As my employer is supposed co-finance a new handset in July, I decided to look for a cheap temporary replacement for now. Main requirements: cheap, 3G+, tethering and optionally Android. The Acer beTouch e110 seemed to be a perfect match.
The e110 is a small and light touchscreen device, running Android 1.5 (Cupcake). It comes with 3G+ (HSDPA), Bluetooth, GPS and FM radio and it is one of the cheapest Android-based handset available. And when I say cheap, I mean cheap as in “you can’t even find a decent 2nd hand device for that price”-cheap.
So what’s not to like? Well, the CPU is pretty slow, there’s no WiFI and the touchscreen needs some tough love. Android 1.5 Cupcake isn’t exactly the latest and greatest Android around either. Although Acer did issue new ROM’s in 2010, those were all based on Android 1.5 and there are no plans for an Eclair or Froyo version. What’s more surprising (although some would consider this a plus) is that the e110 is not a Google-branded phone. This means, amongst other things, that there’s no Google Market and no Contacts synchronization. Add the lack of Exchange integration to the equation and you’ve got very empty contacts and calender, which is pretty frustrating if you want to use your phone for work purposes.
No, Acer’s beTouch e110 certainly is no Hero, but I’ve got my HSDPA, tethering and even Android for a very low price. So I’ll cope until my Hero comes home. And if that doesn’t happen, the unboxing of the Desire Z in July will be all the more exiting.

Did Flash really become irrelevant in 2010?

Little over a year ago I must have been smoking some weird shit when writing that Flash would become irrelevant in 2010. Because after all, this is 2011 and there’s still plenty of Flash for Adobe aficionados to make a living and the famous html5 video codec issue hasn’t been fully sorted out yet either. So I was wrong, was I? Well, … not really!
Apple still stubbornly refuses Flash on the iPhone and more importantly the iPad, Microsoft’s Internet Explorer 9 joined the HTML5-crowd in full force and even Adobe is going HTML5 with support in Dreamweaver and in Illustrator and with a preview of Edge, “a tool for creating animation and transitions using the capabilities of HTML5”.
But is was only in December 2010 that I knew I was dead on with my prediction, when I overheard this conversation at work between a business colleague and a web development partner:

Business Colleague: I would like a personalized dashboard with some nice-looking charts in my web application.
Web Development Partner: No problem, we’ll do it in Flash!
Business Colleague: No, we want this to work on the iPad too!

The year technology-agnostic decision-making business people started telling suppliers not to use Flash, that was the year Flash became irrelevant and “the open web technology stack” (somewhat incorrectly marketed as HTML5) took over.

Over hoe ik aan den lijve ondervond dat ge altijd een fietshelm moet dragen

Op de fiets door Brussel, is dat niet gevaarlijk?” vroeg men mij soms. “Nee” zei ik dan altijd een beetje stoer, “goed afgestelde remmen, een beetje geconcentreerd rijden en dan valt dat goed mee”.
Tot gisterenavond een voetganger met typisch Brusselse doodsverachting de straat zonder boe of ba overstak, een auto de remmen voor haar moest dichtgooien en ik hetzelfde deed om niet achterop die monovolume te knallen. Remmen dicht, de lucht in, door de achterruit van die vervloekte Opel het Schaarbeekse ziekenhuis binnengevlogen.
Op de spoed moesten ze 3 sneeën op m’n linkerarm dichtnaaien en hebben ze paar mooie zwart/wit foto’s genomen om daar -na lang wachten- op te zien dat er niets gebroken of gebarsten was in pols of nek, waarop ik goed bevonden werd om me terug in het verkeer te begeven, voorlopig wel zonder vouwfiets.
“Het valt mee, het had veel erger kunnen zijn” en “Ge hebt geluk gehad dat ge een helm ophad Mijnheer” zeiden Mario en Pieter (de vriendelijke ambulanciers), verpleegsters en dokters heel de avond lang. Absoluut! Ik en mijn Giro Flak fietshelm, wij zijn vanaf nu helemaal onafscheidelijk. Hopen dat Veerle dat geen belemmering vindt, zo in bed …

‘Cause I’m free, to do what I want, any old time

Freedom comes in many shapes and forms, but give me a computer which is not burdened by corporate software and enforced group policies and give me internet access that is not limited by proxies that prohibit you from using half of the web and I’m a happy little futtta. I cracked the proxy thingie problem at work some time ago already, but the computer/OS-part remained an issue up until now. I tried virtualization with VMWare and Qemu but wasn’t convinced and booting into my “disktop” (Ubuntu 8.04 intalled on an USB-connected external HD) while at work was far from efficient, so I kept jerking around in the uninviting environment which is the maimed Windows XP we have to put up with here.
But some time ago my laptop got a memory upgrade (from 1 to 2 Gb) and last week Paul Cobbaut wrote about Virtualbox on his blog. I installed this example of German craftsmanship (both a “free as in beer” and an open source version are available, version 3 was just released a few hours ago!) and my computer hasn’t been the same since. I’m now running a fullscreen (guest additions rock) Virtualbox virtual machine with Ubuntu 9.04, using an openssh-provided (with some help from corkscrew, off course) socks-proxy for unlimited internet access and I feel like a kid that has just been allowed in a playground.

a screenshot of virtualbox 3 on windows xp
Next to Ubuntu, I also installed Opensolaris (which seems to need a shitload of RAM) and a leaked version of the emulator of that much anticipated (well, by me at least) Palm WebOS. On my disktop I installed the Linux-version of Virtualbox and I’ve got OS-weirdness such as ReactOS, Haiku and Syllable running there. Hell, maybe I’ll even install (a clean version of) Windows XP in a virtual machine there, just to make it full circle. ‘Cause I’m free!
Soup Dragons - "I'm Free"

Fun with RFP’s: organizing a RAD-race

the original rad race logoSelecting a good (web-)application development partner is not an easy task. Between writing your RFP, reading offers, organizing Q&A-sessions, commercial and juridical negotiations, … it’s easy to lose sight of what is most important: finding someone with the right tools and the right knowledge and experience to efficiently build (web-)applications.
That is why (at work) we decided to include a POC in the last phase of our “web framework and development services” selection process. But not just your normal POC, where you have no control over the context in which the development takes place. No, we brought in Ivan Verborgh to help us organize an “original RAD race“. In such “development competition” you put the participating teams in 1 room and give them 1,5 days to create the same administrative application. And somewhere along the line you throw in a change request as well, just for the kicks of it (and to check agility off course).
Our participants had to use a Java-based solution (as defined in the RFP), but their frameworks were very different, with one opting for a commercial product and the other one for an open source component stack. Without going into too much detail, the RAD-race was a great experience for us as well as for the participants. Although neither team was able to complete the assignment, there was a clear difference in the teams’ performance. For some colleagues the results were a true eye-opener, with one competitor clearly having less knowledge and experience with their chosen framework. The result of the RAD-race was an important element in our decision process and it was a fun experience during an otherwise sometimes dull RFP-process.

futtta saboteert televisie-reportage over bedrijfswagens

In de uitzending van Volt van gisteren (5/11) kon de aandachtige kijker (mijn ouders, tiens) mij een reportage over bedrijfswagens zien saboteren, door helemaal op het einde wild vouwfietsend in beeld te komen stormen. Kijk maar;

frank saboteert reportage over auto's

U ziet me mooi voor de fleetmanager de parkeergarage induiken, de vouwfiets voor de Mercedes. Prachtige symboliek, toch?

The WordPress-on-an-intranet nightmare

[UPDATE june 2009: this is solved in WordPress 2.8]
wp for dummies book coverHaving a fair amount of experience with WordPress installations and configuration, I wanted to install trusty old WP 2.5.1 on an idle desktop (winXP+xampp) at work to do some blogging on our intranet. The installation itself went smoothly (how hard can unpacking a zip-file be) but after some time the damn thing stopped working, producing nasty timeout-errors caused by a.o. wp-includes/update.php and wp-admin/includes/update.php.
The problem is that WordPress tries to open an internet-connection (using fsockopen) to see if updates are available. Great, except when you’re trying to run WordPress on an intranet behind a proxy without a (direct) connection to the internet. After some unsuccessful fiddling in multiple WordPress php-files, I ended up disabling fsockopen in php.ini (disable_functions)!

Disabling! Fsockopen! In php.ini! Just to have a working WP?

I mean, come on guys, why doesn’t WordPress provide configuration options where you can specify if and how (what type of proxy, what address to find it on, …) it should try to connect to the internet? I even made this truly amazing UI mock-up which you guys can just like copy/paste straight into your code;

_______________________________________________________________________________
How should WordPress connect to the internet to check for updates?
(*) Direct connection to the internet (default)
( ) Use a proxy:
    Proxy type:     (*) http ( ) socks
    Proxy URL:      ___________________________________________
    Proxy User:     ___________________________________________ (optional)
    Proxy Password: ___________________________________________ (optional)
( ) No internet connection available (WordPress won't be able
    to warn you about updates!)
________________________________________________________________________________

_
😉
Pretty please?

Samen in het taalbad

Een tijdje geleden hoorde ik op de trein twee oudere pendelaars praten over de onwil van Franstaligen om Nederlands te leren. ‘Pardon’, onderbrak ik de vurigste van de twee, ‘Pardon, maar waar ik werk worden tijdens de werkuren cursussen Nederlands gegeven en er zijn echt veel Franstalige collega’s die dat volgen.’
‘Ah, da’s toch interessant’ zei de gematigde medereiziger, waarop de andere enigszins gepikeerd riposteerde met ‘Ja maar, dat is bij bedrijf XYZ ook zo, maar kennis van de andere taal is verplicht om promotie te kunnen maken en dat is de enige reden waarom Franstaligen daar Nederlands willen leren!’
‘Misschien’, zei ik, ‘maar aangenomen dat dat klopt, is het dan nog geen sterk signaal dat een bedrijf van haar medewerkers de facto inspanningen voor tweetaligheid verwacht? Toont het feit dat Franstalige collega’s me vragen om Nederlands te spreken, niet aan dat er tussen de mensen toch wederzijds respect is, over de taalgrens heen?’ De twee mannen konden enkel instemmend knikken, onder de indruk van zoveel redenaarstalent.
Niet dus. In werkelijkheid bekende ik schaapachtig dat ik niet wist of de blinde ambitie van mijn Franstalige collega’s de enige reden is waarom ze Nederlands te volgen. Waarom ben ik soms toch zo sloom, mensen? Niet genoeg koffie, misschien?

futtta klunst weer (met MBR’s)

Ik had weer eens stom gedaan! Ubuntu installeren, daar kan tegenwoordig niets fout bij gaan, toch? Dacht ik ook, toen ik mijn laptop bootte met de Ubuntu Gutsy CD om van een externe HD (a whopping 4Gb in een Icybox!) een ‘disktop’ te maken. Met die disktop wilde ik de regel dat een werknemer geen ander OS mag installeren op de precious company hardware, een beetje geniepig omzeilen.
Wat er dan fout liep? Wel, omdat ik mijn laptop eerst had laten booten van de Ubuntu CD en dan pas de externe HD had ingeplugd, overschreef de Ubuntu installer (na succesvolle setup op /dev/sdb) de MBR van de interne harde schijf (/dev/sda, hd0 voor grub) waarop mijn corporate WinXP stond. Het nuken van de MBR op de eerste HD is in een aantal scenario’s ongetwijfeld wenselijk, maar ik zat daar wel mooi met de gebakken peren: Grub bleef hangen in stage 1 zolang de externe schijf er niet aanhing.
Door dat stomme kabeltje te laat in te pluggen, heb ik een beetje moeten wroeten vooraleer ik terug een volledig werkend systeem had. De MBR herstellen met de XP recovery console kon al niet: ik heb hier thuis geen XP en die cd gaan vragen aan onze helpdesk leek me al bij al geen goed idee. Google toonde me gelukkig de weg naar MBR-zielerust; ms-sys is een linux utility om MS Windows compatibele mbr’s te schrijven. Booten van Ubuntu CD, “apt-get install ms-sys” en “ms-sys -m /dev/sda” en mijn corporate PC was terug in originele staat! Oef, konden ze mij alleszins al niet meer op staande voet ontslagen 😉
Volgende stap; een MBR met grub stage 1 op de externe HD schrijven en grub dan volledig van die schijf laten booten. No biggy; opnieuw booten met de Ubuntu CD, vanop de command line grub opstarten, met “find /boot/grub/stage1” checken waar grub geinstalleerd staat (hd0 dus) en dan grub zijn ding laten doen met “root (hd0,0)” en “setup (hd0)“. Tenslotte /boot/grub/menu.lst nog aanpassen om te booten van hd0 ipv hd1 en pats-boem-klets; ik had niet enkel een WinXP op mijn laptop, maar ook een bootende Ubuntu op de externe harde schijf. Free at last! Free at last!
Laatste probleempje; de Icybox was nu hd0 voor grub, maar /dev/sdb eenmaal ik in linux was. Geen probleem, behalve bij een Ubuntu kernel upgrade, want dan werd mijn /boot/grub/menu.lst verkeerd aangepast en probeerde grub zijn stage 2 terug op hd1 (de interne schijf) te vinden. Daarvoor paste ik /boot/grub/devices.map nog aan naar

(hd0) /dev/sdb
(hd1) /dev/sda

Het was nog even wachten op een kernel upgrade om te zien of dat werkte zoals verwacht, maar ik was de afgelopen weken alleszins weer een happy pinguin. Tot -tja, ik ben echt wel een kluns- … tot ik deze ochtend mijn Icybox al vouwfietsend uit m’n halfopen computertas op straat hoorde vallen. Proberen booten, maar alles is kapot en fsck biedt geen redding. Ik heb dus geen Ubuntu disktop meer. Zal maar eens naar een 2,5 inch HD van 20Gb ofzo zoeken op Kapaza zeker, dan kan ik nog eens van voren af aan beginnen? Freedom is never free 🙂