RSSAmplifier

Blog

Vic Demuzere

Blog posts written by Vic Demuzere

vic.demuzere.beRSS feed ↗10 posts

Latest posts

Bots are dominating the web

The last few years, web traffic from bots has increased rapidly. Some sources 1 claim that automated activity now accounts for over half of all web traffic. This is even more pronounced on small websites like mine, as I don't receive many human visitors. The table below shows traffic on this website for the last few days: Path Hits 1 /wp-login.php 2751 2 /wp-admin/index.php 2707 3…

How I almost lost my backups

My backup strategy follows the 3-2-1 backup rule : Three copies of your data On two different media One copy off-site Some people argue that your production data (the copy stored on your laptop, for example) counts as one of those copies. I disagree. While it may be a copy of your current data, it's not a copy of your historical data. If I need to recover a file that I modified or deleted 2 years…

Generating UUIDs in SQLite

SQLite does not have built-in UUID functions, but by getting creative with the randomblob(N) function we can generate version 4 (random) UUIDs. Before we continue, it's important to note that you should verify whether SQLite's random functions are adequate for your usecase. They may not return truly random data. However, as the RFC notes, "they (UUIDs) MUST NOT be used as security capabilities".…

You can't change innodb_page_size on PXC clusters

Today, I worked on a ticket for a customer with a Craft 4.x CMS that created a MySQL table with a staggering 270 columns. Most of them were of type TEXT , but it also contained about 50 VARCHAR columns of varying lengths. Attempting to import the table resulted in a Row Size Too Large error. ERROR 1118 (42000): Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current…

Check whether public and private key match

Customers regularly send me x509 key pairs at work 1 . Most of the time these have been forwarded a few times already, and people tend to mess up the files. This means that the public and private keys don't match anymore, and I have to ask for a new pair. Luckily, we can use OpenSSL to check whether a public and private key match. For RSA keys The classic way to compare RSA keys is to check…

Cool URIs don't change, but don't need spotlights

Kev Quirk recently wrote about removing content from public blogs : Generally speaking, I don't delete content from this site. Having said that, if I posted something that I later feel is particularly egregious, I think I probably would. I personally don't think that a website should be a permanent record - how can it be? Nothing last forever. This got me thinking about what to do with some of my…

Today I learned pwgen is not secure by default

Command-line tool pwgen is a well known tool to generate a list of passwords. I use it almost daily: when creating new accounts on remote servers, or when I want to encrypt sensitive data with a temporary password to send to a customer. Sometimes opening my terminal and typing pwgen 30 1 is faster than getting to the generator in my password manager. 1 I had noticed before that the passwords…

Ecowitt protocol on the Alecto WS-5500

Recently, I was looking for an outside temperature sensor. Preferably in an instrument shelter , as my whole garden has direct sunlight during most of the day. I ended up buying the Alecto WS-5500 , which is actually a rebranded Fine Offset WH2900 . It has a decent temperature sensor and also supports uploading data to a configurable HTTP endpoint. Uploading data The inside unit that comes with…

Using bash variables in jq

Due to the special characters used in json, the easiest way to use jq with inline scripts it by putting it between single quotes. That makes it impossible to use bash variables inside your script . Fortunately, jq has an --arg parameter to create a predefined variable from an external source. You can use it to define a $foo variable with the contents of bash variable $FOO , for example: $ export…

The mayor CSS not-so-redesign

Over the past few months I've been working on a new stylesheet for this website, and today I finally pushed the redesign branch to production! The previous CSS code was largely written almost 10 years ago and only received small updates and enhancements. Since then, new features like flexbox and grid s were added and made creating responsive websites much easier. Turns out, the new design looks…