All Articles
The Importance of Writing Things Twice
In many domains, critical information is deliberately written down twice in two different places. While this might appear redundant, the practice is a safeguard against errors, loss, and failure. The underlying principle is simple: no single point of failure should be able to compromise the system.
Tutorial: How to package a react app or a static site as an android app.
React is a very nice front-end framework, javascript is nice, but what if you need an android app? Or an iOS app for that matter? You have all read of apps that embed a browser, and in the browser javascript runtime, you'd load a full application, written in react or angular or what have you. Maybe pure javascript.
A first functional test in Drupal 9 (test a redirect in a controller)
...of course this took longer than anticipated, but I have achieved this milestone, writing and executing a complete functional test in Drupal. It was not an easy, trivial test - and the path I took in implementing it highlights the gotchas and difficulty of writing such tests. As well, my process is likely not be unique, and the challenges I faced appear common. It there appears valuable for me to put down a quick writeup on quirks and tricks I saw along the way. In this article, I assume the reader is an intermediate Drupal developer.
Drupal asks for keycloak secret. What is that, where do you get it?
Turns out, our client needs to have Client authentication enabled:
then you will have a new tab credentials where you will see the client secret.
20250911 Daily Scrum
Lost my laptop, possibly due to a virus, and now I have to rebuild it. Yeah, losing a laptop is hard. On the one hand, I have to be ready for such unfortunate events. And I actually am ready - I have a recent backup. I have non-recent backups, as well. Most important things are also duplicated in the cloud. Some heavy files like videos aren't backed up, but I'm actually not losing much there. And I managed to back up text files and important small files of the most recent days, via a tether. So I'm good, overall.
How I set up the docker image with systemd and sshd
For testing ansible roles, I need a docker container that runs systemd or init - a container in which services can be enabled. I also need this container to be accessible via ssh. This way, I don't have to spin up cloud resources (which are not free) in order to test doing something on a remote.
How to setup test-driven development with Molecule in Ansible
Molecule is a testing framework designed for Ansible roles, collections, and playbooks. In the Ansible ecosystem, it provides a structured workflow to develop and verify infrastructure as code.
[FIXED] problem installing ruby 3.4.5 on mac:
I see the following error when compiling ruby from scratch using rbenv:
In file included from debug.c:27:
./vm_callinfo.h:183:9: error: use of undeclared identifier 'RUBY_FUNCTION_NAME_STRING'
rp(ci);
^
./internal.h:89:72: note: expanded from macro 'rp'
#define rp(obj) rb_obj_info_dump_loc((VALUE)(obj), __FILE__, __LINE__, RUBY_FUNCTION_NAME_STRING)I updated rbenv and rbenv-build to latest, to no avail.
According to stack overflow, the solution, that worked for me, was to update xcode:
20250811 Daily Scrum
In order to improve my writing skills, I should write on a regular basis. The amount of writing is measured in either the number of words written, or the hours spent writing. Of course, there is an inherent conflict of interest, an inherent corruption when measuring work in such a way. See The Inherent Corruption of the Employee.
How will I promote and market my material? And for what purpose? What am I selling? What is the path (karate-do) that I'm pursuing, what is in my DNA? These and other questions are answered succinctly in The Core.
How to create image for raspberry pi and virtual box
To create an image for a Raspberry Pi, you generally have two main scenarios:
- Starting fresh with a new OS (e.g., Raspberry Pi OS, Ubuntu, Home Assistant OS).
- Cloning or backing up your existing Pi setup into a custom image.
Here, I'll explain the first method. The steps are:
Using WireGuard to route all your internet traffic through a VPN: a tutorial
Here’s a clear, step-by-step tutorial on using WireGuard to route all your internet traffic through a VPN.
We’ll go through installation, configuration, and making sure all traffic (not just some) goes through the tunnel.
WireGuard: Full-Tunnel VPN Setup
Usage of gamification and psychological rewards to drive sales
Gamification is the use of game design elements, principles, and mechanics in non-game contexts to engage people, motivate action, and solve problems.
An example of NAT routing in docker-compose
This is an example of setting up a NAT inside docker - in a fairly self-explanatory and minimal way. There are three examples that you can run in this setup: a positive example, a negative example, and a chatty positive example for debugging and demonstration purposes.
Art Styles: Painting
21 Types of Painting
There are plenty of different painting styles that you can see in art throughout the centuries.
Abstract
Famous Artists: Wassily Kandinsky, Pablo Picasso, Elaine de Kooning, Henri Matisse, Georgia O’Keeffe
Significant Works: Full Fathom Five by Jackson Pollock, Composition VII by Wassily Kandinsky, Mountains, and Sea by Helen Frankenthaler, Orange, Red, Yellow by Mark Rothko, Red Canna by Georgia O’Keeffe
Utilities: Resizing and scaling images in python. And a filename-insensitive data loader.
I recently wrote this utility... a mere function, really, to resize and scale a python image at the center. This way, I don't have to worry about how my images are being fed into an AI pipeline, if they all get scaled and cropped the same.
Additionally, while previously I used bash to rename files in a folder to sequential names such as 1.jpg , the current implementation ignores filenames, which saves me time when massaging the data.
[FIXED]: Error: Call to a member function transformDimensions() on null in core/modules/ image/image.module
The issue stems from the preview being in an undefined style.
1. Go to configuration -> image styles and review the styles available. I have a style called "200x200 thumb".
2. After adding an image field to a content type, go to manage form display, expand the display of the image, and specify an existing style from step 1 as the preview style.
After taking these steps, the page for adding/editing this content type should render correctly.



