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.

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.

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.

[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.

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.