My Whitebook about Node.js is published

My latest Whitebook is published on the Whitehorses knowledge site. It’s written in Dutch though.

If you’re looking for some in-depth articles in English, check out the Whitehorses blogposts about Node.js:


Using MongoDB on a Raspberry Pi

Recently I hooked up my Raspberri Pi 3 as a small testing server for my MEAN stack (mainly Node.js and MongoDB in my case). That works great and I was surprised how fast this setup is on a relatively small pc.

But while utilising the more advanced features of MongoDB I found out they didn’t work as expected. The problem is, Raspbian Jessy has a 32bit kernel and MongoDB with versions higher than 3.0 only support 64bit. Hence, on Raspbian a 2.x version (32bit) is provided which of course lacks the newer features. So if you want to use the full potential of MongoDB, you’ll have to find another OS with 64bit support. I suggest an older laptop or desktop running Linux Mint! There is a tutorial for installing the right MongoDB version on Debian here.

Time Machine issue: not able to activate time machine

What if you always use OS X Time Machine for your backups and find out that restoring doesn’t work as you hoped? I found out recently that the “Activate Time Machine” option didn’t work anymore. It was accessible in the menu, but clicking it did not give a response.

I scoured the internet for a solution, went through all my log files and even did a complete restore (fortunately that still worked!). Still, not being able to restore specific files, I tried a desperate last option: removing the Time Machine backup disk from the selected backup disks in the options, and re-adding it. The good thing is that Time Machine will resume backing up in the same sparse bundle. The best thing is, though, that restoring files from Time Machine works as it should. This problem gave me a lot of head aches and frustration, so I’m very happy I found this solution.

Check these great Oracle JET blogposts

I just want to bring some nice blogposts on Oracle JET to your attention. Oracle JET is a new Javascript Extention Toolkit (yes, yes: JET) from Oracle for interacting with Oracle products and Oracle Cloud services.

They are written by my colleague Herman Brunnekreef. This are the topics:

 Visualizing data with Oracle JET,

Routing and responsive Layout with Oracle JET,

Integrating Oracle Map in Oracle JET

Go check them out. My guess is more blog posts about the subject are coming up 🙂

Running XCode simulator results in “LaunchServicesError error 0.”

So, one moment you’re app was running fine in the simulator and the next moment you get an error saying  “The operation could not be completed. (LaunchServicesError error 0.)”

Bummer! When you check your logs (see ~/Library/Logs/CoreSimulator/CoreSimulator.log or ~/Library/Logs/CoreSimulator/[Device UDID]/system.log) you’ll find errors like “/<app name>.app did not have a CFBundleIdentifier in its Info.plist}”. And when you check your Info.plist all is fine there.

Don’t despair. You probably created a folder “Resources” in your Project Navigator. And while that’s a perfectly reasonable name for a project folder, XCode does not like that. All you have to do is rename the folder and chances are your project will run again.

Javascript keyboard events: the difference between keypress and keydown

Some things you learn the hard way. I was trying to catch some keyboard events in order to replace comma’s with dots in html input items and validating the input against a regular expression along the way. The results I got were at best confusing, but never as expected.

I did some reading on sites like, and found out there is a fundamental difference between the keypress and keydown event. This shows especially when catching the “.” “,” or decimal point (yes, the decimal point on your numeric keypad is another character!)

The next output is consecutively a comma, a dot, and a decimal point on the numeric keypad. The keydown and keyup event present values that are unexpected, like the ¼ character. Only keypress shows comma and dot as expected.

keydown keyCode=188 which=188 charCode=0 char=¼
keypress keyCode=44 which=44 charCode=44 char=,
keyup keyCode=188 which=188 charCode=0 char=¼
keydown keyCode=190 which=190 charCode=0 char=¾
keypress keyCode=46 which=46 charCode=46 char=.
keyup keyCode=190 which=190 charCode=0 char=¾
keydown keyCode=110 which=110 charCode=0 char=n
keypress keyCode=46 which=46 charCode=46 char=.
keyup keyCode=110 which=110 charCode=0 char=n

Remember this when getting unexpected results when grabbing key-events in your web application.

Provisioning to your device is now free with XCode for iOS

Maybe I’m a little late to the party, but apparently this information is known by not so many people.
Since XCode 7 you are now able to provision (or install) to your device without a paid developer account.

However, it may be possible that it still doesn’t work for you. In that case, try the following options, as mentioned in the release notes.

  • Accounts with expired Apple Developer Program memberships may not be able to use free provisioning. (20486606)

    Workaround: Create a new Apple ID and enter it into Xcode’s Accounts preference pane.

  • The list of teams displayed within Xcode’s Accounts preference pane may not update to show your new free provisioning team. (19775448)

    Workaround: Remove your Apple ID and add it again in Xcode’s Accounts preference pane.

IBM released a SWIFT language sandbox in the browser.

Just a few days ago, IBM released a sandbox for Apple’s SWIFT language, and it works in the browser. I think that’s great news, now there is a convenient and easy way for everyone to become acquainted with  SWIFT.

The news is also noteworthy because the site is announced only a few days after Apple put their money where their mouth is and made SWIFT available in the public domain. There must have been some collaboration between the two companies. IBM and Apple are working ever closer together. Remarkable, knowing that the two have been rivals for years.

I’d suggest you give it a try on In the upper left corner there are some sample projects to get you started. There is some more getting started on the IBM blog.

By using this site you acknowledge the use of cookies (which are mostly harmless, btw) More information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below you are agreeing to these settings.