Bobbie Smulders Creative Software Developer

Serializing Leaflet Draw layers


On a project I recently worked on, I used Leaflet.draw to draw polygons and rectangles on a map. Leaflet.draw is perfect for this task but does not support storage of these objects out-of-the-box. I solved this issue by using the draw:edited, draw:deleted and draw:created events to store the objects to a database using a REST API.

To save everyone else the frustration of having to figure this out, I created a project called Leaflet Draw Serialize Demo that demonstrates how to use these events to save the drawn objects to an external service using a REST API. The interesting stuff is in the front-end javascript.

Feel free to use this project as a reference for your own implementation.

Repairing a greyed-out disk on OS X

A request I recently got was to fix an external USB disk. This disk appeared to be broken beyond repair, as all options on OS X’s Disk Util were greyed out. Both on OS X and the recovery boot system. Luckily, I was able to restore the disk. Unfortunately, I was not able to recover the contents.


Read more »

Automated backups from DirectAdmin to Synology NAS

Synology Task Scheduler

For the past couple of years I’ve been a customer of Antagonist. I have a shared hosting package from them that is running on DirectAdmin. DirectAdmin has an option for manual backups, but as this option takes a lot of time and manual labor, it would be better if we could automate it. To automate it I came up with a three step process:

1. Create a full backup from DirectAdmin and store it locally

DirectAdmin has released a script on their website to automatically create backups. This script works on accounts that do not have admin rights (typical on shared hosting servers). Follow the instructions up until step 5. I have set up the cron job to create the backup at 04:00. This is how my cronjob looks like in DirectAdmin:

00 04 * * * /home/USERACCOUNT/backup.php
Read more »

Reverse engineering the KPN IPTV recording system


A while back, I visited my parents to replace their current digital cable setup with an IPTV setup. This had some great advantages, as the set-top boxes only needed network cables instead of coax cables. I used power line communication so that I didn’t have to lay any cable. In the end, every TV-set in the house was able to watch high-definition television, and every iOS and Android device was capable of watching standard-definition television.

The provider (KPN) has an interesting approach to recording television. When you record a certain program, whether it’s currently on or in the future, you don’t record anything on the set-top box. It is recorded on their servers, and if you want to play it back, you can stream it from their servers to your set-top box. This complicated process is all brilliantly hidden from the user. The advantage of such a system is that a recording on one device can be played back on all devices in the house. Every set-top box can display a list of recorded programs that is retrieved from the server. Another advantage is that you can start a recording from the provider’s website or their mobile application, even when you’re not at home. And you don’t need to have your set-top box running 24/7, which saves power.

But there was one rather large issue with scheduling a recording…

Read more »