18 oktober 2012

Have you ever wondered, when you’re in traffic to work again, how many people commuting in the opposite direction do the same work as you? Wouldn’t it be better if you just traded jobs? I mean not just for you, but for your employers, for the other commuters, for the environment… Commuting is not just a waste of money, it’s a waste of TIME!

I know what you’re going to say: nobody can do your work the way you can. But that alone is a good reason to switch. Maybe you know the work is just right for you, but the employer is not. Maybe you’ve seen everything and keep solving the same problems. So go and have a chat with this opposite-commuter. When you can talk about your work with a colleague, his fresh view might give you new insights. And when you like his work and he likes yours, then trade, everybody wins. Don’t these lines sound fun to say? “Boss, I’ve got to leave you, but I found someone else for you who will do it just as well.” or “I am interested in taking his job, but my current salary is 10% higher, do you think you could bridge that gap?”

So all you have to do is find the opposite-commuter. And do it in a way that doesn’t compromise traffic safety. Just go to this website where you fill in where you work, where you live and what work you do. The website will do a “select * from people where = and his.job = your.home and his.home = your.job”. There is no such website? Then make one! Or I will… Will you help me?

First steps in Scala, second steps in Play Framework

27 september 2012

Last year I experimented with the Play Framework to find out how it works and what its strengths and weaknesses are. Although I was quite enthousiastic about it, I did not look at it any further, seeing no immediate need for it in my professional life.

Now, a year later, I decided to dive into Scala. A free online course is being given by the creator himself, Martin Odersky, on Coursera. I am very happy about both the presentation and the level of the course. The lectures and the exercises are of a high level, and the whole package is well thought through.

As it turns out, the two can be integrated seamlessly, as Scala is the native language of the Play Framework, and is one of the languages of choice (Java being the other) for projects. Here are some findings that I have about the both.

As many Java developers, I am quicky falling in love with Scala. Its syntax is very elegant, but most of all being a functional language it is extremely powerful. At the same time you don’t have to throw Object Oriented Programming overboard. Scala is specifically designed to suppport both OO and functional programming. As Odersky says it, the two paradigms don’t interfere and can be used together well. To be honest, I can not think of anything why Java should still be favoured over Scala, other than the smaller pool of programmers with knowledge of the latter.

The idea of the Play Framework is to bypass the entire Java Servlet stack. Instead it has its own stack built up from the ground. Very noticeable are the short cycles in the development. You edit some code, refresh and see the output in the browser window. No need to look at an empty screen and look at logging to find out what has gone wrong. Even compilation errors show up in the browser. There are numerous helper utilities for HTTP traffic handling, remote web service calling, JSON handling etcetera. In general, working with Play is really fun! It brings back the joy in web development that has been far away with many previous frameworks.

In my research I have started an app that currently does nothing more than make users log in through Facebook or Google. On first login, a User object is created and saved. All other domain classes will circle around it, like with most typical apps. There are two advantages to this approach. First, I don’t need to write the authentication myself, and just rely on Google and Facebook to do it better than I possibly could. I also can’t make any passwords leak, as I simply don’t have them. Second advantage is that I will have access to the users friend list and other data at a later time. As it is such a common requirement, I decided to save the app in its current state as a template for new Play Framework/Scala apps where logging in to social networks is required. The code is on Github: Feel free to download/fork it and start your own project from there.

Raspberry Pi

16 juli 2012

Since a few days I’m the proud owner of a Raspberry Pi. It’s a simple, but complete computer that allows -or rather encourages- tweaking. Since I ordered it (months ago), I have been thinking about what to do with it. There are some features that make the Pi special:

  • Cheap, got mine for €35 including shipping.
  • Small, a bit bigger than a credit card.
  • Runs popular Linux distros, notably Debian and Arch Linux, with Fedora expected soon.
  • It has good connectivity options: USB, Ethernet and open pins that allow you to use low-level protocols such as GPIO, I2C and SPI.
  • It uses little power, somewhat like 4W.


Some people got XBMC running on it, or use it for educational software like Scratch. To me that does not utilize the benefits of the Pi, as these can be run (faster) on any other computer. Instead, its low power consumption and small form factor make it particularly portable. So much so, that one was sent almost into space! Add a smallish solar panel and a battery, and you can place a running computer anywhere! Instead of the solar panel, you can hook it to the cigarette lighter socket of your car. You can program it to do all kinds of measurements and take decisions by controlling motors. With its network interface, you can read its measurements from a distance or manually trigger its controls.


The Raspberry Pi brings the concept of smartdust closer. Instead of one, you can have many Pis communicating with each other. The only state they have in between restarts is the SD card they boot from. Copy that to another Pi, and you have two identical machines.

Where to start

The distro I chose was Debian. It is widely used and supported, and comes with a lot of software that you assume to be running on a Linux machine. I got myself a starter kit, that gives me a simple but nicely finished housing, some basic components and a breadboard to stick them in to. I installed the wiringPi library to allow communication with the GPIO port through virtual files on the file system. Then I wrote some Java code that uses these files to actually communicate through GPIO. You can download the project from GitHub. If you have the same starter kit, you can wire up the LEDs and run the algorithms that light them up in different patterns. If you don’t, then you can still use it as a basis to communicate to the GPIO ports from Java.

From an educating view, I hope to take the program to a state where it could be used to introduce people (children) to programming in general and OOP and Java in particular, and provide a framework to try their own algorithms. But for that, the feedback cycle would need to be shorter. BlueJ seems to be a good IDE to compile and run directly on the Pi. For now, I do a mvn install on another PC, scp it to the Pi and launch it over ssh.

If you want a a quick start, just install a copy of my SD card image. It’s the Debian image with wiringPi and OpenJDK 6. Credentials are the same as for the clean Debian distro: pi/raspberry. It’s a 4G image, so you’ll need at least a 4G SD card. From another Linux machine, download the file, bunzip2 it, and write it to your SD card with the correct character for your SD drive:

dd if=./debian4G_20120716.img of=/dev/sd[character] bs=1M

DirectLife van Philips krijgt je in beweging

28 april 2010

Philips heeft een nieuw product: DirectLife. Het bevat een “activity monitor”, een dingetje zo groot als een kleine USB stick, dat je de hele dag in je broekzak draagt (of ergens anders). Naarmate je meer beweegt gedurende de dag, gaan er meer lampjes branden. Af en toe sluit je de activity monitor aan op de PC, en dan kun je op je eigen DirectLife portal je beweegpatroon inkijken. De bedoeling is dat je aan het einde van de dag je bewegings-target gehaald hebt.  Op dat moment heb je 6 lampjes op de monitor en 100% op de portal.

Het sterke is, dat je de hele dag door kunt kijken hoeveel je al bewogen hebt, en dus extra kunt gaan bewegen als je achterop dreigt te raken. Je merkt meteen dat je anders gaat denken. Waar je voorheen je tijd en activiteiten zo efficiënt mogelijk inplande, ga je nu opzettelijk meer bewegen. Je zoekt niet meer de beste parkeerplek op, omdat dat stukje extra lopen je al een “lampje” op kan leveren. Je loopt een keer extra met koffiebekers voor je collega’s in plaats van een dienblad mee te nemen. Je gaat met de trap in plaats van met de lift. Je gaat niet naar de kantine tijdens de lunch, maar maakt een wandeling buiten. Al deze kleine beetjes extra beweging zie je in de uitslag en het uiteindelijk diagram voor de hele dag terugkomen.

Die terugkoppeling is waar het om draait met DirectLife. Die keer dat je met de trap ging in plaats van met de lift, zie je terug als een hoger staafje, en dat loont! Het wordt echt een sport om een zo hoog mogelijke score te krijgen, elke dag opnieuw. Naast de competitie met jezelf, kun je ook met anderen (bekenden of onbekenden) de strijd aangaan, en kijken wie op een dag het meeste kan bewegen. Want je kunt nauurlijk ook meer bewegen dan je target! Mijn record tot nu toe ligt op 199%, en ik zit te popelen om daar op zijn minst 200% van te maken!

DirectLife is niet alleen de monitor, maar is een programma van 4 maanden met een coach die je tips geeft, aanspoort, en met jou je bewegings-target vaststelt. Het pakket kost zo’n €100. Na de 4 maanden kun je de monitor gewoon blijven gebruiken, maar heb je geen coach meer, en wordt de portal iets beperkter. Maar in die tijd heb je je beweegpatroon al definitief veranderd!

Zongeladen accu

24 augustus 2009

Solar charged battery


Veel apparaten hebben adapters om de netspanning van 230V wisselspanning om te zetten naar lage gelijkspanning. Helaas lijken er net zo veel voltages te zijn als adapters. Gelukkig is er een positieve ontwikkeling. Onder aanmoediging van de EU, hebben de belangrijkste telefoonproducenten nu afgesproken dat toekomstige telefoons met de standaard USB aansluiting worden opgeladen. Hopelijk zet deze trend zich voort naar andere (oplaadbare) apparaten in huis. Om USB-apparaten, AA batterijen en de Li-ion batterijen van mijn fototoestel te kunnen laden met zonne-energie, heb ik onderstaande opstelling gemaakt.

Eerst wou ik eenvoudig beginnen, zelfs zonder accu. Uiteindelijk heb ik er toch voor gekozen om een accu te plaatsen. Het voltage dat uit het zonnepaneel komt, schommelt zeer sterk. Dit kan 10V zijn als er weinig licht is, maar ook meer dan 20V in de volle zon. Niet zozeer de accu trekt dit voltage gelijk, maar vooral de bijbehorende laadregelaar. De laadregelaar heeft de volgende functies:

  • Spanning gelijktrekken
  • Laden stoppen wanneer de accu vol is (overlaadbescherming)
  • Belasting uitschakelen wanneer de accu bijna leeg is (diepontladingsbeveiliging)

Voor alleen het opladen van wat batterijen is een 10W paneel misschien overkill. Omdat de laadregelaar 4A kan leveren, zou ook een autokoelbox een uur of twee moeten kunnen draaien op een volle accu, of zelfs 4 uur, als je ’s morgens met een volle accu begint.


Omschrijving Prijs Winkel
Zonnepaneel polykristallijn 10W/12V €71,99 Conrad
Laadregelaar 12V/4A €23,99 Conrad
Accu 12V/7,2Ah €27,50 DIL
Behuizing geschikt voor buitengebruik €16,55 DIL
Stopkontakt “sigarettenaansteker” €8,50 DIL
Snoer, 1m*2,5mm² €1,55 DIL
Totaal €150,08

Geavanceerdere laadregelaars hebben een functie die MPPT wordt genoemd. Hiermee wordt het punt gevolgd waarop het zonnepaneel het maximale rendement geeft. Dit kan de stroomopbrengst van het paneel met tientallen procenten verhogen.

Een echte auto-accu kost meer (zo’n €200), maar heeft veel meer capaciteit. Ik weet niet of een auto-accu praktisch is, in gebruik. Hij is sowieso veel groter en zwaarder.

Als de accu niet iedere dag geheel wordt leeggetrokken, kan met een kleiner/goedkoper paneel volstaan worden. Het omgekeerde geldt natuurlijk ook.

Omdat het zo’n compact setje is, zul je gauw geneigd zijn om het paneel gedurende de dag recht op de zon te zetten. Zo zul je vaak de 10 Watt-piek halen. Dit is niet het geval met grote, gefixeerde zonnepanelen op daken. Mijn ervaring is dat het paneel goed rendeert bij weinig licht. Zelfs toen de zon onder was, werd de accu nog opgeladen, al zal dat met weinig stroom geweest zijn.

Dit is het setje, zoals ik het aan elkaar geknoopt heb:
Solar battery - inside

Nuttige/leuke uitbreidingen

Omschrijving Prijs
USB lader met autostekker €13 Philips
AA NiMH batterijlader met autostekker, laadt batterijen per stuk €55 GP
Li-ion batterijlader met autostekker (tbv fototoestelbatterijen van o.a. Canon, zoals BP511) €20 GP
LED lampje 12V/1.2W, genoeg licht om bij te lezen €6

Hier is een GP Li-ion acculader aangesloten om de BP-511 batterijen van mijn Canon DSLR op te laden:
Solar battery charging Canon DSLR battery

Tips en ervaringen

Als je 2,5mm² snoer gebruikt, probeer dan snoer te vinden dat één dikke ader heeft in plaats van vele kleintjes. Ik heb veel ruzie gehad met te kleine connectoren, en heb uiteindelijk veel kleine adertjes niet gebruikt, wat ten koste gaat van het piekvermogen. Daarnaast leveren afgeknipte adertjes risico op kortsluiting op.

Eigenlijk hoort een accu goed geventileerd te worden. Mogelijk gaat dit problemen opleveren, omdat mijn streven juist was om het een gesloten kast voor buiten te maken. De autostekkerdop kan open, waardoor er lucht naarbinnen kan, maar ook water. Bovendien is er ook dan weinig luchtcirculatie.

Houd kleine kinderen uit de buurt van de losse onderdelen (“Victoria gevonden!”)…


Als de accu iedere dag geheel wordt opgeladen en ontladen, wordt per dag 0,0864 kWh opgewekt. Het kost dan 11,9 dagen om 1 kWh te produceren. Op basis van de huidige netstroomprijs (€0,09 per kWh), is de terugverdientijd dan 19.833 dagen, oftewel 54 jaar en 3 maanden. In die tijd moet in ieder geval de accu meerdere keren vervangen worden…
Gunstige factoren:
Adapters in het stopcontact lekken energie. Dit wordt nog meer als ze ongebruikt in het stopcontact worden gelaten.
De olieprijs is het afgelopen jaar gehalveerd tot zo’n $70 per vat op het moment van schrijven. Deze zal in de toekomst stijgen, en wel waarschijnlijk tot ver boven het hoogste niveau van vorig jaar, dat $140 per vat was. Hiermee zal ook netstroom (veel) duurder worden.
Je koopt ook een stukje vrijheid. Je hebt energie op plaatsen waar geen netstroom is, bv in de bergen, op het strand… Ook als het stroomnet uitvalt, kan ik nog steeds mijn telefoon laden. Tenzij ook het telefoonnet uitvalt, dan heb ik daar niet zoveel aan, behalve als rekenmachine. 🙂