How a smart mirror project finished after years of work
Introduction Early 2019 I noticed the Magic Mirror project. To me the way of how woodworking and technology come together really got me. I just had to build one from scratch, ofcourse. It was a great opportunity for me to build something physical and learn a few things about some fancy new JavaScript frontend framework. I decided to call it the mirrorm8 project. I never wrote about it until now.
published on Tue, 22 Feb 2022
C# Performance - Profiling introduction
Welcome! In this blog series I will share some of the knowledge I gained when doing performance optimizations for a project some time ago. Optimizing code for performance requires good knowledge of the fundamental concepts of computer architecture. In this first blog post I will explain about software profiling, some of the computer architecture concepts and my personal experience what worked for my and what did not. In later post(s) I will go more into detail in how to optimize code for performance.
published on Wed, 14 Oct 2020
Reactive testing with Gherkin, ReactiveX and asyncio
Have you ever written integration test with asynchronous behavior? I have, and it has always been a struggle… CI/CD pipelines which regularly fail because of some timeout. Then, “a wild project manager appears!”, and starts asking questions why investigating takes so long…
Solution: The timeout is increased to quickly solve the issue, when usually the failure is caused by regression.
There must be some more elegant way to assert or await asynchronous calls in Behavior Driven Development (BDD) steps.
published on Mon, 14 Sep 2020
How to setup docker credential-store
Since docker version 19 it start notifying the user that the docker credentials are stored unencrypted.
WARNING! Your password will be stored unencrypted … To solve this we will use the Docker credential-store feature.
Ubuntu: docker-credential-pass OSX: osxkeychain Windows: wincred In this blog post we are going to use install the latest docker-credential-pass helper in combination with pass as a store and gpg for key generation.
sudo apt-get install -y pass gpg gpg2 --gen-key # copy gpg-key pass init "<gpg-pub-key>" sed -i '0,/{/s/{/{\n\t"credsStore": "pass",/' ~/.
published on Tue, 28 Jul 2020
How to set Linux MAC address
Last post I wrote about a embedded device running Linux where a MAC address is stored in the EEPROM. The first six bytes are reserved for the MAC address which (ideally) only should be written once.
To apply the MAC address the numbers need to be hexadecimal formatted and separated with a colon(:) symbol. It is possible to dynamically change the MAC address of Ethernet, beware that you need to be root and that the ethernet interface is not up.
published on Mon, 27 Jul 2020