Building a 6502 Computer

I’m currently in the process of building a computer based on the 6502 microprocesser, following Ben Eater’s instructions. It’s a nice way of learning the lower level parts of a computer by wiring up and eventually coding everything yourself. In this post I want to share my (more or less structured) notes of the steps taken and lessons learned so far (covering part 1 to part 7). While my notes were mainly created to explain things to myself, I hope you can get some value out of it as well. ...

January 10, 2024

allgood.systems: Monitoring the duration of your background jobs

Since the launch of allgood.systems you were able to monitor if your background jobs, scheduled tasks, cron jobs, etc. were running whenever you expected them to be running. This was accomplished by defining an interval on allgood and then sending a request to a check-in URL at the end of your script. If the request didn’t arrive at the end of the specified interval, you would get a notification that your job is down. ...

September 26, 2023

Deciphering the FileMaker Server keystore

A description of how FileMaker Server stores secrets and how to approach deciphering an unknown keystore.

May 29, 2023

Uploading files to FileMaker Server without a Pro client

Back in the dark ages the FileMaker Server admin console (then Java Web Start) allowed you to remotely upload new fmp12 files to the server. For some reason this feature did not survive the admin console rewrite a decade (?) ago. Rather, the upload feature was integrated into the Pro client. Later, as the Admin REST API was released, the upload feature was still missing. The only two options to upload fmp12 files to the server are thus: ...

March 16, 2023

Beware of wilcards paths in sudo commands

Say you want to allow a non-root user on Linux to execute a couple of scripts as root or another user with more privileges. A common way of doing this is to make an entry in the sudoers file. If the scripts are written in Python, it could look something like this: johndoe ALL=(ALL) /usr/bin/python3 /opt/utils/*.py Essentially, this means that the user johndoe can execute /usr/bin/python3 /opt/utils/*.py on any machine (ALL) as any user ((ALL)). ...

February 24, 2023