willem.com

Linux on Willem's Blog

Backup Rotation Scheme

Rotate your backups with 'rsync-backup-rotator'

Dec. 15, 2023
Learn about the rsync-backup-rotator tool that helps you automatically rotate backups using rsync, creating and maintaining multiple recovery points from your backups.

In today's digital age, safeguarding your data is paramount. Simply creating a copy of your files may not be enough as they can get corrupted, overwritten or blocked by ransomware. Having multiple, time-rotated (and ideally, offsite) backups is a stronger defense. I created a new tool, rsync-backup-rotator, to help you with this.

Working Offline First

Learning from a 15-year old ThinkPad X200

May 1, 2023
Dive into a digital blast from the past and learn how a 15-year-old ThinkPad X200 can revolutionise your workflow – join my cloud-free adventure today!

As part of a greater plan to optimise my entire workflow, I am doing a little experiment this month: using a 15-year old ThinkPad X200 laptop as main computer. It’s from an era before “the cloud”, popular among free/libre software enthusiasts. What can we learn from this antithesis of modernity?

Cutting Cloud Costs

The Significance of Software Optimisation

Apr. 5, 2023
Facing sky-high cloud costs, I found software optimisation vital. Discover how I saved 90% on cloud expenses!

Like many, I faced soaring cloud service costs for my clients, prompting a wake-up call. To stay afloat, it's essential to incorporate software optimisation as a strategy for managing cloud expenses. Join me as I share how I managed to save up to 90% on cloud costs through optimisation!

Protecting VMware ESXi

Improve security using a firewall and proxy server

Aug. 31, 2021
In response to a possible security breach on a VMware ESXi host machine, I search for a way to improve security of the management console using NGINX and a firewall

In response to an incident on a server, I detected a possible security breach. The affected machine ran VMware ESXi, a bare metal hypervisor used to run virtual private servers. In standalone mode, a web based management console offers full control over the infrastructure, posing a risk.

Migrating to the Cloud

Clearing an on-premise server room

June 30, 2021
Helping a customer clear its on-premise data room and migrate to the cloud: an adventure full of cables, cabinets and bandwidth!

For a Dutch organisation that serves customers throughout Europe, I was asked to help dismantle a live server room. Instead of simply pulling the plugs, some of the services had to be migrated to the cloud. For fun and inspiration I share three different strategies to do so.

Abandoning my own tablet OS

Why I moved back to iPad and the Mac

Jan. 14, 2021
After a year of experimenting with Debian GNU/Linux on a Surface Go 2 I have returned to iPad Pro and the Mac.

The past year I have been experimenting with creating my own tablet operating system using Debian GNU/Linux and the i3 window manager on a Microsoft Surface Go 2 with LTE. After months of intense use I have now decided to abandon the experiment to move back to iPad Pro and the Mac. Read along to find out why.

How to use rsync to make backups

Explaining a powerful file transfer tool

Oct. 30, 2020
In this post I'll explain how to use rsync to transfer files to another computer system in an efficient manner, suitable to be used in a backup script.

It is very important to make backups of your data, as you never know when disaster strikes! One powerful, cross platform, tool to help you achieve this is 'rsync'. In this post I'll explain why rsync is useful and how you can use it to set up your own backups.

Refining my tablet OS experience

Using Surface Go 2 with 4G/LTE, Debian GNU/Linux and i3wm

Sep. 28, 2020
Installing Debian GNU/Linux on a Surface Go 2 with LTE/4G to replace my iPad Pro as daily driver.

Earlier this year I tried to create my own tablet operating system by installing Debian GNU/Linux on a Microsoft Surface Go tablet. I learned a great deal about what I like about tablets. But I still preferred my iPad Pro, mainly because of its polished user experience. This time I set out to refine my tablet software to replace my iPad.

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.

Free from the iCloud: Escaping Apple Photos

Using offline photo library management software

Aug. 31, 2020
Recently I freed myself from Apple Photos, using free software to manage my photo library. Read along to find out what software I use and how to make it play nice with your devices.

After encountering the umpteenth ‘magic’ bug while managing my iPhone’s photos, I was done with it. Apple came a long way since it launched iPhoto (the predecessor of iCloud Photos). But for something as valuable as my personal memories, I want to be in full control. Read along to learn how I migrated my photo library away from the iCloud, using free, open source software.

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.

Making my own tablet OS

Installing and modifying Debian GNU/Linux on Surface Go

Mar. 9, 2020
I wondered if I could escape Windows by installing Debian GNU/Linux on a Surface Go, read along to find out how to do this!

For some years now I use a tablet as main computer, I like its versatility. But, most tablets come with a locked down operating system, like iPadOS, Windows 10S or Android. As I like things my own (weird) way, I wondered if I could escape these "software jails" by installing a free operating system on a tablet. It's possible, read along to find out how I escaped!

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!

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?

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?

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.

Helping people with free software

Installing Debian GNU/Linux on an old laptop

July 20, 2018
This week I helped a man with repairing and reinstalling his computer with Debian GNU/Linux.

This week a man brought his laptop to the community centre where I help people with computer problems as volunteer. The old laptop wouldn't start anymore and had to be reinstalled. Instead of Windows, I installed a free operating system. I think it is important to tell you how and why I did it.

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.

Lessons from a takeaway plastic bag

My ever increasing antipathy to planned obsolescence

Jan. 8, 2018
How we're tricked into repeated purchases replacing perfectly fine products just for the sake of change.

About five months ago I got some take away food from our local Asian restaurant. They packaged the food and gave me a plastic bag to carry it home. On my way home I was thinking about the bag. Although it has some nice styling printed on it, it's designed for single use only. What a waste... making me wonder: how long would it last if you would use it on a daily basis?

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

Building the blog... in style!

Developing on a 20-year old computer with 16MB RAM and Windows 98

June 23, 2016
Find out if it is possible to turn a computer from the 90s into a modern development machine.

One must be a bit crazy to come up with the idea to build a blog (as in: actual programming) on an old 486 laptop with just 16MB RAM. I happen to be that crazy: I took my very first laptop from the 90s and decided to find out if it was possible to turn it into a development machine.

All blog posts
Debian GNU/Linux with i3wm (“aka WillemOS”) running on Surface Go 2
Debian GNU/Linux with i3wm (“aka WillemOS”) running on Surface Go 2
Computers on my desk powering the installation from left to right: ThinkPad X1, iPad Pro and MacBook
Computers on my desk powering the installation from left to right: ThinkPad X1, iPad Pro and MacBook
Check for updates manually using Windows Update
Check for updates manually using Windows Update
Traffic must wait for tokens to become available when the maximum number of tokens is given away, enforcing the maximum concurrent traffic
Traffic must wait for tokens to become available when the maximum number of tokens is given away, enforcing the maximum concurrent traffic
My cron command is wrapped in a check to prevent starting synchronisation when it is already running
My cron command is wrapped in a check to prevent starting synchronisation when it is already running
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
Using EXIF information to rename the photos to include the date and time the photo was taken
Using EXIF information to rename the photos to include the date and time the photo was taken
The Surface Go 2 is a serious tool, capable of powerful things when you connect to the cloud (using a terminal, MOSH and tmux)
The Surface Go 2 is a serious tool, capable of powerful things when you connect to the cloud (using a terminal, MOSH and tmux)
HPE ProLiant DL380p server powered on, green lights indicate the drives are working, monitor is connected and showing the boot process
HPE ProLiant DL380p server powered on, green lights indicate the drives are working, monitor is connected and showing the boot process
Steve Jobs introducing the original iPhone in 2007 as ‘ultimate digital device’
Steve Jobs introducing the original iPhone in 2007 as ‘ultimate digital device’
Debian GNU/Linux Installer Menu on Surface Go - happy me
Debian GNU/Linux Installer Menu on Surface Go - happy me
Clouds below my floor: my little basement datacenter.
Clouds below my floor: my little basement datacenter.
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
Happy engineer with Apple Watch inside the data centre!
Happy engineer with Apple Watch inside the data centre!
Replacement disk
Replacement disk
Much cloud work is remote, but occasionally, a console display is required for specialised maintenance tasks.
Much cloud work is remote, but occasionally, a console display is required for specialised maintenance tasks.
A map of the ARPANET in 1973... imaging mapping the internet today!  (Public domain)
A map of the ARPANET in 1973... imaging mapping the internet today! (Public domain)
Alfa One 802.11b WiFi adapter is recognised by the Debian installer
Alfa One 802.11b WiFi adapter is recognised by the Debian installer

More Linux on Willem's Blog

All blog posts

Articles (155)