willem.com

Server on Willem's Blog

Syncing files seamlessly between smartphone and tablet

Using unison to automatically sync between GNU/Linux and the iPhone

Sep. 16, 2020
In order to optimise my workflow, I was looking for a way to seamlessly access the same files on both my computer and smartphone. Read along to find out how I did it.

In order to optimise my workflow, I was looking for a way to seamlessly access the same files on both my computer and smartphone. This is useful to when you want to quickly send files from your computer using your smartphone through various messaging apps and vice versa. Read along to find out how I did it.

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.

Scalable application design without magic

Leveraging client computing power for high performance with many users

May 11, 2020
I needed to design a scalable backend infrastructure that could handle lots of concurrent users. I did this by leveraging the client's computing power having it handle most of the user interaction workload.

As part of the online food ordering app I'm building, I needed to design a scalable backend infrastructure that could handle lots of concurrent users. Scalability is considered a hard problem to tackle. Often it's presented like it's something magical, done by million dollar companies using secret tools. But, there is no such thing as magic, or is there?

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.

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!

Fighting backscatter spam at server level

Configure Postfix to block spam before it enters the server

Sep. 10, 2019
Deal with backscatter spam by implementing a stringent SMTP delivery policy at MTA level.

This month I had to deal with backscatter spam, affecting one of the mail servers I manage. As server engineer I make sure that servers don't send spam and that incoming email gets filtered. Despite all good efforts, this server kept being blacklisted for sending spam to iCloud, Office 365 and Google Gmail for Business (G Suite). Read along to find out how what caused this and how to fix this.

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!

WordPress: 10 tips to secure your website

Keep hackers out of the world's most popular content management system

Mar. 31, 2019
A lot of people use WordPress to manage their website. Prevent your site from being hacked using this blog post.

A lot of people use WordPress to manage their website, therefore it's no surprise people ask me to have a look at their site's security. As ethical hacker, I encounter WordPress in different shapes, sizes and states. Some of them are really badly protected against hacks. Prevent your site from being hacked using these 10 practical tips.

Understanding the security concerns in shared hosting

Considering open ports and unused network facing services

Feb. 28, 2019
People pay me to hack them, provided I'll explain how I did it. Read along to learn how hackers use security holes to hack your app, webshop or website!

People pay me to hack them, provided I'll explain how it was done, so future hacks can be prevented. As security consultant, I scan for weaknesses in my clients' apps, webshops and websites. Very often a hack starts by exploiting a security hole that is visible remotely. Read along to learn how hackers find security holes and what you can do to secure them.

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?

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.

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?

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.

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...

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!
Controlling Snake using a Super Nintendo gamepad is awesome (using a SuperSmart-joy USB connector)
Controlling Snake using a Super Nintendo gamepad is awesome (using a SuperSmart-joy USB connector)
World champion of Snake '97 - but not for long...
World champion of Snake '97 - but not for long...
Check the reputation of a WordPress plugin by looking at the number of downloads and its rating
Check the reputation of a WordPress plugin by looking at the number of downloads and its rating
Prevent backscatter spam by checking all messages before forwarding them to another server
Prevent backscatter spam by checking all messages before forwarding them to another server
My Unison profile with parameters for the ‘WillemCloud’
My Unison profile with parameters for the ‘WillemCloud’
Handling lots of traffic through distributed computing
Handling lots of traffic through distributed computing
Typical slide on pace-cme.org
Typical slide on pace-cme.org
Update WordPress from the wp-admin dashboard
Update WordPress from the wp-admin dashboard
Café 't Pakhuis in Amsterdam - where Snake '97 was
Café 't Pakhuis in Amsterdam - where Snake '97 was "invented"
Inside a HPE ProLiant DL380p Gen8 server (LFF)
Inside a HPE ProLiant DL380p Gen8 server (LFF)
Driving to the internet: visiting XS4ALL / KPN in Amsterdam
Driving to the internet: visiting XS4ALL / KPN in Amsterdam
Designing the coffee cup using Picta Graphic for iPad
Designing the coffee cup using Picta Graphic for iPad
Simple software architecture example - different structures composing a system with different relations between them
Simple software architecture example - different structures composing a system with different relations between them
Inspecting quality: left original, right pngquant
Inspecting quality: left original, right pngquant
Average web page weight, divided by asset type (HttpArchive, September 2018)
Average web page weight, divided by asset type (HttpArchive, September 2018)
Once a hacker knows what software your website uses, its easy to lookup known security holes using databases like cvedetails.com
Once a hacker knows what software your website uses, its easy to lookup known security holes using databases like cvedetails.com
Snake '97 available as free download for iOS, Android, macOS, Windows and ChromeOS
Snake '97 available as free download for iOS, Android, macOS, Windows and ChromeOS

More Server on Willem's Blog

All blog posts