willem.com

Work on Willem's Blog

Linking Lemmid Store with kitchens

Integrating with external systems that you don't control

June 12, 2020
Designing backend servers to connect with external services is challenging as you need to take into account unreliability and unpredictability.

As part of the food ordering app I am building, I needed to design a reliable way to link the app to external systems. These external systems are beyond my direct control and include different checkout registers, kitchen management systems and ticket printers. Read along for more on designing for the unknown and unreliable.

Designing an interface for a food ordering page

Striking a balance between powerful options and mobile usability

May 1, 2020
Designing a food ordering page is surprisingly challenging because of the many variables that need to be accommodated on a very small screen.

Online ordering pages are more important than ever before. The COVID-19 virus, the resulting lockdowns and the social distancing rules have emphasised the need for a well-designed webshop user interface. This is surprisingly hard to get right!

Talking tablets: what makes a great tablet?

Working with Microsoft Surface Pro X

Apr. 14, 2020
Over the past few weeks I worked with Microsoft Surface Pro X to see if it is any good, can it be your main computer?

Earlier this year Microsoft released their brand new Surface Pro X tablet computer, in many ways this is a forward thinking device. As I like working with tablets I wondered what exactly makes a great tablet? Is Surface Pro X any good? Read along to find out.

Traffic shaping using iptables and tc

Limiting outbound network bandwidth per client IP-address

Apr. 1, 2020
This month I responded to an automated alert indicating excessive bandwidth usage on a server, requiring me to apply traffic shaping to mitigate the traffic.

Last month I received an automated alert indicating excessive bandwidth usage, usually a sign of trouble. When this happens, you should follow a standard incident procedure, trying to isolate the source of the traffic before shutting it down. The cause of this incident was not what I expected however... requiring a different kind of mitigation than a simple blockade.

Designing and implementing a (micro) payment system

Monetising my blog with coffee, Apple Pay and Mollie

Mar. 25, 2020
Designing and implementing a micro payment system with an emphasis on simplicity. Read about how I did it in this post.

Online payments are now more important than ever as businesses are disrupted by the COVID-19 virus. It drives my customers to seek new ways to make money online. I designed and implemented a (micro)payment system. This post is about achieving simplicity by solving complex challenges.

Monolithic vs Microservices software architecture

Choosing the right design for your app development

Mar. 3, 2020
This week I flew to Gothenburg to talk about enterprise software architecture, read along to learn about choosing the right architecture for your app development

This week I flew to Gothenburg to meet people from a large international shipping company, talking about the development of enterprise level software. During the meeting there were various experts in the room, one of them asked me on choosing the right software architecture (for big, complex, enterprise level apps). A very good question, well worthy for a blog post.

Your own addressbook and calendar cloud

Share contacts, agendas and tasks with CardDAV/CalDAV

Feb. 28, 2020
You can setup a CardDAV/CalDAV server to manage your own contacts, addressbook, agenda and task data and share it between your devices.

If you use different devices and computers to get things done, you might want to synchronise contacts, agendas and tasks. You can use any of the 'big cloud' services for this, like Apple iCloud, Microsoft Office 365 and Google Gmail. But, if you prefer not to share your addressbook and calendar with big American companies, you can do it yourself.

Realtime human pose recognition through computer vision

Using TensorFlow and PoseNet on a video feed

Dec. 1, 2019
For an exciting new project I have been experimenting with TensorFlow, enabling realtime pose detection using PoseNet.

For an exciting new project I have been experimenting with computer vision using TensorFlow. I wanted to achieve realtime human pose detection to drive interactive video projections and games. Time to dive into the world of machine learning, tensors and computer vision!

Building a professional 72TB NAS

Configuration and installation of an HPE ProLiant DL380 server

Nov. 22, 2019
This month I installed a professional HPE ProLiant DL380p server in a datacenter in Amsterdam, read this post to see how this was done!

Over the past few years I have been moving my data and work from local computers (mostly laptops) into the cloud. Cloud computing is done by servers in a datacenter, powerful computers that do the hard work. As my company grew, I needed more capacity. It was time to add some power to my cloud!

Multi-Window support in your iPad app

Native development for iPadOS

Oct. 7, 2019
Take advantage of the improved support for multiple windows on iPadOS by implementing new UI concepts enabling different use cases for your app.

Last month Apple released iPadOS, the first dedicated operating system for iPad. It differs from iOS with its support for the larger iPad screen, including multi / split screen windows. I develop apps and it was time to take advantage of these new possibilities that iPadOS offers.

Visiting an international hackers conference

OWASP Global AppSec Amsterdam

Sep. 27, 2019
This month I attended Global AppSec Amsterdam, an international conference for hackers and security specialists. Read along for some of the highlights.

This month I was lucky enough to attend Global AppSec Amsterdam, an international conference for hackers and security specialists. There were presentations from former intelligence agents, bounty hunters, academics and software vendors. I learned about some of the newest hacking techniques, met with interesting people and played some cool retro games. Read along for more.

Dig for dummies

Explaining an highly useful network tool

May 24, 2019
Learn how to use the dig command to query domain name servers to find the source of network problems, IP-addresses, hostnames, mail servers and related info.

When you're building websites, apps or email services you may run into domain names and their configurations. When everything is working as it should, most of this is invisible. But when troubleshooting a domain name configuration, it may be necessary to dig a little deeper... read along to learn how!

One year on the ultimate commuter bike

6000KM in 12 months with Gates CDN/CDX and Shimano Alfine

Feb. 27, 2019
Answering questions from one of the most popular posts of last year, I am reviewing my commuter bike after one year of extensive use through winter and summer.

A year ago I tried to create the ultimate commuter bike, a modified Sensa Cintura with the Gates CDN/CDX carbon belt drive. I received lots of messages from cyclists and commuters from all over the world. From the Swiss alps, France, Italy, Germany, United States and even "down under", Australia! You all wanted to know: how does the upgraded bike hold up?

My first weeks as dad

On the challenges and rewards of being a father

Jan. 24, 2019
Last Christmas my wife gave birth of our son. It's a life changing experience to become a parent. Read along for my (biometric) findings and some practical tips.

Last Christmas my wife gave birth to our son, a little boy that would change everything! It's an incredible experience to become a parent, especially if it is your first kid. It introduces a whole new way of living, having to deal with regular feeding, caring and sleepless nights. Read along for my (biometric) findings and some practical tips!

Business in a bag

Using a waterproof backpack to fit my gear

Dec. 22, 2018
After much testing I have selected a bag and set of cases to fit my entire business, wherever I go.

Over the past few months I have been testing different bags and cases to fit everything I need to run my business. As I commute by bike, the bag needs to be waterproof. The problem with waterproof gear is that it is usually very bulky. I need my gear to be both portable and representative, a challenge worth a blog post!

Around town in an electric car

Driving the Smart Electric Drive (EQ fortwo)

Nov. 16, 2018
For one week I drove the electric Smart EQ fortwo in and around town. I found out what it's like to drive electrically: fun!

Earlier this month I drove around town for a week in an electric vehicle, a brand new Smart Electric Drive (EQ fortwo). I used it to commute, for my daily groceries and to visit family, friends and customers. What's it like to drive a fully electric car on a daily basis?

Is the Apple Watch the modern tool watch?

Testing the Apple Watch's usefulness in real life

Nov. 2, 2018
I tested the Apple Watch during my work in Frankfurt this week where I had to go inside an internet data centre.

This week I went to Frankfurt for business. I had to perform maintenance to servers in a data centre. This seemed like a great opportunity to test the Apple Watch's usefulness in real life (other than health and fitness). I wondered, is the Apple Watch the modern tool watch?

Rescuing files from a broken harddisk

Make backups to be safe rather than sorry!

Oct. 16, 2018
Yesterday I helped a young woman with her broken computer containing precious photos, could I safe them?

Yesterday a young woman brought me her laptop, it didn't start anymore and it only showed an error message. It turned out to be a broken harddisk. It startled her when I told her that all data on the disk was lost. She told me it contained precious photos of her pregnancy and young child. What could I do?

Optimising images for the web and performance

Reduce filesize with jpegoptim, optipng, pngcrush and pngquant

Sep. 26, 2018
Make your website faster by optimising the images. This posts explains how you can do this.

One way to make your website faster is to make it smaller. Not with tiny fonts, but with less bytes! More than half the weight of an average website is because of images. Yet very few people optimise their images for the web and performance, time to find out how much bytes you can safe!

Google Analytics vs AWStats

Understanding web traffic statistics software

Aug. 20, 2018
Comparing Google Analytics with AWStats to find out where they differ and which is better.

This month I have been working on website statistics, tracking traffic using different technologies. Some of my customers use Google Analytics, others use AWStats, and some use both. Which is better is often debated, but few people really understand the differences. Time to shed some light on the magic of web statistics.

Off the grid: Working on 100% renewable energy

Collecting, storing and using solar electricity to power my phone, computer and wearables

Apr. 30, 2018
Learning from powering my personal devices using nothing but self generated electricity using a solar panel and power banks.

For the past 10 days I have powered my personal electronic devices (phone, computer, wearables) using nothing but energy collected using a small solar panel. I disconnected all grid-connected chargers. I hoped that by going off the grid, even in such a small way, I would gain insights that enable me to save energy (and money).

Cyber security: 5 easy tips to protect your server against hackers

Server hardening best practices for Windows and Linux

Mar. 10, 2018
These 5 practical cyber security measures will improve the safety of server, website and data.

This week one of my clients was hacked and asked me for emergency assistance to help secure their server infrastructure. It was a web server that ran WordPress websites on Apache (with PHP/MySQL), including a few webshops with customer data. This hack could easily have been prevented with the following best practices, is your server secure?

Tablet as main computer

Comparing the Microsoft Surface Pro to iPad Pro

Mar. 7, 2018
I have been using a tablet as my main computer for quite some time now. In this blog post I share you my experience on using Surface Pro and iPad Pro to get my work done.

For the past few weeks I have been using the Microsoft Surface Pro as my main computer. It's a modern tablet computer that can be used as laptop with the type cover. With the Surface Pen, it's a versatile PC that works in a lot of different ways. Time to find out if it's any good and how it compares to my other tablet computer, iPad Pro.

Creating the ultimate commuter bike

Riding at 35KM/h with Nexus Alfine 8 and Gates Carbon Drive

Feb. 24, 2018
Creating the ultimate commuter bike by upgrading the Sensa Cintura belt drive bike.

This winter I use a Sensa Cintura bike with a Gates Carbon belt drive as my daily commuter. It's a bike designed to be nice to ride thanks to its sporty lightweight frame. It's also meant to be low on maintenance thanks to the belt drive and Nexus Afline 8 integrated gear hub. After 1800KM in just eight weeks, it was time for some upgrades.

Updating Snake '97

About the challenges of developing a wildly popular game

Feb. 21, 2018
This month I bit the bullet big time: I redesigned the game engine of the wildly popular Snake '97 game. Read about the design challenges in this blog post.

Few years ago my brother threw a beer on my iPhone in an Amsterdam bar. The poor thing didn't like the Dutch brew as much as I do: it died. While waiting for a new phone to arrive, I used an old one that couldn't do anything but texting, calling and... Snake! The idea for Snake '97 was born and this month it was time to update the wildly popular game.

Commuting by bike

One week (240KM) on the VanMoof Electrified S

Dec. 2, 2017
One week on the VanMoof Electrified S E-bike testing it for commuting and comparing it to a normal bike.

For a few years now, I commute to work using a bicycle. I have lost more than 15KG since I stopped using my scooter. This week I tested a VanMoof Electrified S, an electric bike with an industrial, minimal design. Is it any good? How does it compare to a normal bike? Will an electric bike make you lazy? Read along to find out!

Clouds below my floor

Building a little datacenter in my basement

Aug. 31, 2017
Building a little datacenter in my basement utilising a very fast internet connection.

At my home I have this crazy fast optical internet connection. It is a 600MB up and down fibre connection which directly arrives in my home (no copper cables involved). It's like a private internet highway. Reason enough to find out if I could do something to make better use of all this speedy fiber galore...

The day I killed my LAN

Turned off my local network and went 4G only

July 31, 2017
I killed my office LAN and went 4G only. Saves a lot of clutter, energy and money.

Today I called my provider to quit my office's ADSL internet subscription, I don't need it anymore. I have turned off my local area network and switched my workflow onto mobile internet only. The simplicity and savings actually surprised me so much, that I made blog post for it.

Programming on Apple Watch

Serious about crazy experiments

Feb. 16, 2017
Programming with VIM over SSH on Apple Watch using a bluetooth keyboard

Over the past years I have been no stranger to crazy experiments, but this time I really wanted to push it into the extreme: programming on an Apple Watch. Would it be possible to actually write code on such a tiny device? Why even bother? This post is about the case for crazy experiments, and why you should try too!

iPad Pro next to my primary machine

Using it with Apple Pencil as a creative powerhouse

Jan. 30, 2017
Using iPad Pro with Apple Pencil next to my computer to form a create powerhouse

I wanted see if I can find something better than my old fashioned pencil and paper that I use for designing software as professional developer. I knew iPad Pro from my test last summer, figuring out if it could replace my primary development machine. While it may not be able to completely replace my thrustworthy ThinkPad, it turned out to be a totally different story when it comes to paper.

iPad Pro as primary computer

testing iOS as primairy development platform

Aug. 15, 2016
Is the time right to use an iPad as primary development platform to get some real work done?

The lack of physical clutter, distracting branding, or blinking LED's makes the iPad Pro a textbook example of minimal design. My despiction of distraction explains my interest in using the iPad Pro as only computer to test if it is up to the task. Is Apple's latest effort on iOS enough to enable it to do serious development work?

All blog posts
UX-design for an international audience. Designing interfaces without words is difficult!
UX-design for an international audience. Designing interfaces without words is difficult!
Electric drive train inside the Smart EQ
Electric drive train inside the Smart EQ
Sensa Cintura from the rear - I didn't like the excessive branding on the fenders
Sensa Cintura from the rear - I didn't like the excessive branding on the fenders
Bandwidth graph of AMS-IX shows a predictable pattern - notice the wave-like pattern
Bandwidth graph of AMS-IX shows a predictable pattern - notice the wave-like pattern
Classic Rolex advertisement - highlighting the functionality first
Classic Rolex advertisement - highlighting the functionality first
Bandwidth graph with unusual spike indicating that something is wrong - you don't need to be Sherlock Holmes to find it
Bandwidth graph with unusual spike indicating that something is wrong - you don't need to be Sherlock Holmes to find it
Ken Ferry explaining the design of multiple window support for iOS during WWDC 2019
Ken Ferry explaining the design of multiple window support for iOS during WWDC 2019
Smart fortwo cabrio featuring the special
Smart fortwo cabrio featuring the special "nightsky" style
Shiny new Apple iPad Pro, Apple Pencil and the Smart Keyboard
Shiny new Apple iPad Pro, Apple Pencil and the Smart Keyboard
Initial sketch for the food ordering user interface
Initial sketch for the food ordering user interface
Programming on iPad Pro using VIM, Blink and a Linux VPS
Programming on iPad Pro using VIM, Blink and a Linux VPS
Holding my son for the very first time - trying to make sense what the little man wants... (a recurring theme as I would find out)
Holding my son for the very first time - trying to make sense what the little man wants... (a recurring theme as I would find out)
Ortlieb Urban daypack 15L
Ortlieb Urban daypack 15L
Snake '97 rocking the carts with Angry Birds and WhatsApp
Snake '97 rocking the carts with Angry Birds and WhatsApp
My desk, daddy style
My desk, daddy style
Google Analytics and AWStats - web traffic statistics software
Google Analytics and AWStats - web traffic statistics software
Using the Cyclemeter Pro and a Wahoo Tickr I measured speed and performance during the test
Using the Cyclemeter Pro and a Wahoo Tickr I measured speed and performance during the test
Charging the car on a public parking place
Charging the car on a public parking place

More Work on Willem's Blog

All blog posts