👋 Hi, I'm Roel

Photo of Roel in his garden holding up red berries

I am a product designer living in the Netherlands, interested in how my design work can contribute to a more sustainable way of living.

Latest blog posts

March 10, 2023 15:10

How to build a cablecar

Last week I was in Kitzbühel, and took the 3S cablecar to Jochberg. It was terryfing and impressive at the same time. The cablecar spans over 3 km and only has a single support. It flies over the valley below at 400 meters above the ground. I looked up how it was constructed and found a whole channel of cablecar company Doppelmayr where they show some of the incredible things they build. 

See the 3S bahn on YouTubeSee the 3S bahn on YouTube
March 10, 2023 15:10

New series: Silo

I completely missed that Apple was developing a TV series based on one of my favourite sci-fi novel series: Silo by Hugh Howey. Until the trailer dropped, and it looks awesome!

If you haven't read the 3 books that this is based on, I can recommend them!

Watch the Silo trailer on YouTubeWatch the Silo trailer on YouTube
March 8, 2023 16:40

Cities Skylines 2 trailer

Cities Skylines 2 was announced yesterday and it looks great! I've played the original Cities Skylines for hours and hours so can't wait to play this! Only problem is I have a mac and the game will only be released for PC and consoles..

You can wishlist Cities Skylines 2 on steam already, it will be released later in 2023.

View the trailer on YouTubeView the trailer on YouTube
February 19, 2023 21:14

Review: Falcon Lake

3.5 / 5
Bastien, a young teen, spends his summer with his parents at a cabin with their friends and their daughter. She is a bit older than Bastien and he is immediately drawn to her. And she to him. This is a friendly coming of age movie with mysterious elements in it which I liked. Some scenes felt a bit awkward to watch due to the age of the characters.
Watch on PiclWatch on Picl
February 8, 2023 9:16

Review: M3GAN

⭐️⭐️⭐️⭐️ / 5

I'm a sucker for the whole "human creates robot and things go horribly wrong" movie genre. And M3GAN is a prime example. First it made me want to own a perrrpetual friend toy (a modern furby), but at the end of the movie I was ready to remove all smart home tech from my house and never use siri again. A sequal is already planned for release in 2025..

Watch M3GANWatch M3GAN
February 1, 2023 21:20

Review: the Menu

⭐️⭐️⭐️⭐️ / 5

The Menu is a great movie that is a smart parody of Chef's Table mixed with a good thriller story ala Knives Out. A young couple goes to an exclusive restaurant on an island. The high-end restaurant bullshit bingo starts right from the beginning. You can watch it on Disney+

Watch the Menu via Disney+Watch the Menu via Disney+
February 1, 2023 21:20

Review: Puss in Boots: the last wish

⭐️⭐️⭐️ / 5
Puus in Boots: the last wish is beautifully animated. Every scene with fast paced action switches to a comic book style with lower frame rates and popping colors. And the animation of puss is really cute, when he switches from humanlike to cat like behavior is really funny. The story is a little weak however, and I altough i giggled every now and then, it wasn't really funny either.
Watch via Google PlayWatch via Google Play
January 30, 2023 21:29

Roel radio on Spotify

Now that my first song is released on Spotify, they created a "Roel van der Kraan Artist Radio" playlist. And it is awesome! Just of the one song that I've uploaded, the Spotify algorithms created a list of nice instrumental electronica, including some artists that I absolutely love, like Jamie xx, Plaid and Weval. Give it a listen!
Listen to Roel van der Kraan radio on SpotifyListen to Roel van der Kraan radio on Spotify
January 28, 2023 17:02

New song: Desert Nights

For a Metapop contest I created a song using Hypha, a new synth from Native Instruments. In this song I use 17 (!) instances of that synthesizer. It produces nice organic sounds like organ and bell sounds. Only the drums in this song are made with another instrument. Listen on Spotify:

Or via YouTube:

Listen to Desert Nights on SpotifyListen to Desert Nights on Spotify
January 24, 2023 16:23

New song: Major Lazer - Koo Koo Fun (rule remix)

This was a great opportunity: Meta Pop hosted a remix contest for Major Lazer's "Koo Koo Fun" track! The original song has a really relaxed vibe that I tried to keep. The stems (that are the individual instruments and vocals for the track) were a lot of fun to work with!

Listen Koo Koo Fun (rule remix) on MetapopListen Koo Koo Fun (rule remix) on Metapop
September 6, 2020 17:41
January 24, 2023 15:57

My struggles with NSPersistentCloudKitContainer

Read about my struggles with the new NSPersistentCloudKitContainer and how I got it to work in my app Hippo.

This is going to be a bit of a technical post.

During WWDC 2019 Apple announced a super simple way of adding iCloud synchronization to your app with NSPersistentCloudKitContainer. The promise is great: simply switch your CoreData stack from a regular NSPersistentContainer to NSPersistentCloudKitContainer and voila, your app will sync 🥳.

For the basic setup, follow this tutorial or check Apples documentation.

While this basic premise does hold up, I encountered quite some practical issues while adding iCloud sync to my app Hippo. To be honest, it drove me kind of crazy, so much that I almost ditched iCloud sync to move on to something easier 😬

I thought to share some of my biggest struggles here, maybe it will help you with getting iCloud sync into your app!

Issue 1: where is the existing data?

Probably your users will have some data in the app after you add iCloud sync. But NSPersistentCloudKitContainer did not sync existing to iCloud from my app initially.

The issue was that the original NSPersistentContainer did not have history tracking enabled. Thus only newly created objects or updated objects would be pushed to iCloud.

To solve this I implemented an ugly work-around: I've added a isSyncedToiCloud flag to all CoreData entities which defaults to false. Then on launch, the app checks if there are entities that havent been updated and will flip this flag.

This will trigger NSPersistentCloudKitContainer to push the entities to iCloud.

Issue 2: crash when adding an entity to the model

This issue took me forever to debug.  When you add a new entity to your model, you could get these kind of errors: Constraint unique violation, reason=constraint violation during attempted migration It turns out that this is a bug in NSPersistentCloudKitContainer on iOS 13.

New models should be ordered alphabetically and be added at the bottom of the list 🤦‍♂️. My solution was to prepend a "Z" to the new entity name, but this is quite an ugly solution.

This should be fixed in the latest iOS 14 beta's, but while you support iOS 13 you'll need to be careful with naming new entities.

Issue 3: how to let users enable/disable iCloud sync

Most apps allow users to enable and disable sync in the apps settings screen. Or sync is a premium feature only enabled if you have a subscription.

I tried to implement a setting switch to disable iCloud in Hippo from the app, but it's rather impossible to implement with NSPersistentCloudKitContainer.

First of all, there is a recommended way to turn off syncing, by setting cloudKitContainerOptions to nil. Be sure to do this before you call loadPersistentStores.

But, you will run into issues with this code. Since the container will only be loaded once when the app starts, and its contexts will be used in various views and background processes in your app, it's not simple to change this while your app is running.

I tried for quite some time to get this implemented but gave up after I got a reply from Apple. I now point my users to their iCloud settings in the Settings app to enable or disable sync. Not ideal, but I have no clue how to do this otherwise.

iCloud in production

I've submitted Hippo 1.4 with NSPersistentCloudKitContainer to Apple today, hopefully my users can enjoy the benefits of syncing, and I can move on to another feature 😁

January 2, 2022 17:05
January 23, 2023 11:56

The tools I use

This is a list of tools I use to run this website, work on my app and focus.

Website

SimpleAnalytics

A privacy friendly alternative to Google Analytics, SimpleAnalytics doesn't use cookies and has no personal tracking, I love it's simplicity.

Sign up via this link and get one month for free!

DigitalOcean

I used DigitalOcean to host a large scale restaurant website, and now I'm using it to host this site, my statistics server and a database that records all my sensor data.

Sign up via my personal link and get $100 in credits to spend.

DigitalOcean supports one-click server setup for a lot of different tools, including Ghost (see below).

Ghost

Ghost is a nice and simple CMS for blogs and sites like this. Also supports paid subscriptions and newsletters.

Productivity

Things 3

The best task manager I've used, and I've tried a lot! I love the way Things handles dates and allows you to postpone tasks till someday.

Notion

I use Notion for my more structured notes, like feature roadmaps, plans, weekly reviews. I love the ability to link notes and easily create pages.

Readwise

To keep my book notes in sync with Notion I use Readwise, it takes the highlights from my kindle and bundles them neatly. I also like the review feature where Readwise gives 5 highlights randomly. It makes me revisit sections of books I read and remember the takeaways.

Sign up for Readwise and get one extra free month!

Evernote

While Notion is nice for structured note taking, I still use Evernote as a document archive. It contains most of the receipts, letters, contracts. Evernote's search is fast and fluid and makes it a breeze to retrieve documents when I need them.