This week a colleage of mine shared an interesting video describing AI (mainly Suno) as problematic to the musical industry in the sense that musicians will become less and less skilled in making truly original music. It coins the term “de-skilling”, which perfectly captures something I also see in the software development area, even though it is beautifully hidden by the “impressive results”.
Category: Software
European alternatives to AWS/Azure/GoogleCloud
This article lists a rough feature comparison between currently available European cloud providers and their American counterparts. European cloud is available and abundant. Stackit, OVHcloud, Scaleway, IONOS, Exoscale, Upcloud are all parties you should have on your radar when building critical infrastructure for European clients. The US is proving to be less and less reliable as an IT partner. You’ve got to move.
Read More “European alternatives to AWS/Azure/GoogleCloud” »
Add iptables to your node-exporter metrics
Querying Classicpress database for page hits
Now that I am running classicpress, I miss the statistics that I received at wordpress.org. I don’t want to install third party cookies or other adware stuff, so I was looking to see how to solve that completely locally. Here’s how I got it working, withouts ads, all local, for free.
When munin df does not list all disks
I am a great fan of using munin for monitoring my servers and I have quite an extensive setup that even sends me Telegram messages when something is wrong.
This weekend I ran into an interesting problem with a backupserver where the ‘df’ plugin on the node did not want to list the backup disk, and I’ve spent quite some time trying to figure out what the problem was.
Testing Kotlin extension functions
This might seem obvious for many Kotlin programmers but I did not realize that extension functions are also applied to mocks. This means that if you have a class you can not instantiate for some reason, like the constructor is private and in another package, or the class is abstract, you can still test your extension functions by simply mocking it.
Reading an ISKRA AM550 P1 Port with a Pi
Although I am the guy with a soldering iron and a bit of software development experience, I am not a fan of the “internet of things”, “smart meters” or smart anything really. Not because I don’t like technology, but because of the potential security and privacy problems it brings with it. That said, because of some unfortunate events I now have a smart meter my home. So when life gives you lemons, you make Pi!
I’ve got an AM550 Smart meter with a P1 port. Seeing all the online content and suggestions about reading your smart meter, I decided to have an hour of fun trying to read the P1 data. Here’s how I did it:
Travis CI and Dependabot added to Anonimatron
With new European rules like the GDPR and local variations like the Dutch AVG, interest in Anonimatron is increasing. Although I do not keep track of who is using it and where, sometimes new requirements do pop up. Recently a feature was added to Anonimatron 1.9.2 to also anonymize files.
In the wake of those additions, I planned to give Travis CI a try to automate the builds. It turns out that Travis CI integrates beautifully with GitHub, and automatically builds branches and pull requests right out of the box.
JSON alerts for Munin
Munin is a great and easy way to monitor your servers. The documentation for Munin is kind of all over the place, and sometimes not all that clear.
- There is the recent “Munin Guide” which is quite informative and well laid out.
- Sometimes additional info and background can be found on the old munin wiki.
Getting the standard mail alerts working on munin is simplest, but as soon as you want custom layouts or send alerts as a push message to a phone, it can take quite some work. Here’s what I figured out to get the Munin alert available to you as JSON inside your own Python script so you can do anything you want with it.
Fixing a Jenkins 1.5 Slave on Windows 2016
When you configure a Jenkins 1.5x slave on a Windows 2016 machine according to the instructions on wiki.jenkins-ci.org you will probably get a warning that the .Net 2.0 is not available. This is reported as issue 21484 and the fix is to upgrade, which sometimes can be a problem.
If you can’t upgrade to the latest version for whatever reason, you can easily fix the .Net problem by changing the jenkins-slave.exe.config file from:
<configuration>
<runtime>
<generatePublisherEvidence enabled="false"/>
</runtime>
</configuration>
To:
<!-- see http://support.microsoft.com/kb/936707 -->
<configuration>
<runtime>
<generatePublisherEvidence enabled="false"/>
</runtime>
<startup>
<supportedRuntime version="v2.0.50727" />
<supportedRuntime version="v4.0" />
</startup>
</configuration>
Hope this works for you. Cheers!
