All Articles

Keycloak: How to override the password reset emails

In order to override the text of the password reset emails in Keycloak, you want to do the following.

Make your own copy of the default themes. These can currently be found at: https://github.com/Halazv2/keycloak-theme/tree/master/themes/base/email 

Then, make changes to the theme as appropriate. There are several themes: the login theme stores the styling of the login pages. But the email theme contains the wording of the emails. 

Default Drupal file attachment types

I have the following list of extensions that I usually permit in drupal attachments:

  txt pdf doc docx html csv xlsx xlsm sh json
  cer pem pub key
  png jpg jpeg gif
  mkv sfv avi mp3 mp4 webm mov
  zip tar gz

Converting mbox to maildir

From Mellowhost blog.

mbox and maildir both are popularly used techniques to store mails. The simple way to understand the difference is, mbox uses a single directory to store all mails while maildir would utilize a directory structure to store mails. Most of the cases, advance mail receiving techniques IMAP over POP3 uses these sort of folder based concept to provide enhancement in mail organizing.

[FIXED] ruby on rails :: LoadError: cannot load such file -- distribution

Specifically for the wco  stack, gem 'iron_warbler' had to be included in that particular instance's (micros_*) Gemfile. Which is a bit disappointing since I wanted libraries to be decoupled - but hey, I'm not going to fix this right now. But please be aware: it may seem that there is a separation between libraries and some libraries (namely models and content) can be installed without the rest of the stack - but that's not the case. The whole stack must be installed.

[FIXED]: An external drive not mounting on mac (fsck, not fdisk)

This happened to me recently... I may have unplugged an external 5Tb harddrive without ejecting it from mac os x 13, and it could not be mounted again. I plugged the harddrive into a windows machine, run "repair" there (whatever that means) and the data was perfectly readable. It's just that the disk would not mount on mac.

Stackoverflow to the rescue! The solution is:

sudo pkill -f fsck

Or actually

ps aux | grep fsck 

Should Openstack be used as self-hosted s3 service, in 2025? (Answer: no)

Hello everyone, very quickly, I have spent several days looking into self-hosting s3 solutions, because I am in the process of moving out of AWS cloud for security reasons.

One of the alternative options that I have considered for S3, the object storage solution, is OpenStack. Some 10 years ago, I have actively developed in the openstack ecosystem, and I remember they provide one or several s3-compatible solutions. In particular, the OpenStack Swift supposedly provides an option for self-hosted s3. You can install it as part of the devstack, which can run on a single machine.

Google Fi: Suggested APN Settings

APN Name	Google Fi
APN	h2g2
Proxy	
Port	
Username	
Password	
Server	
MMSC	http://m.fi.goog/mms/wapenc
MMS Proxy	
MMS Port	
MCC	310
MNC	260
Authentication Type	
APN Type	
APN Protocol	IPv4/IPv6
APN Roaming Protocol	IPv4/IPv6
Bearer	
MVNO Type	
MVNO Type

.

Alternatives to S3

Sometimes, you need an alternative to S3 storage. While Amazon S3 is a go-to for cloud storage solutions, there are plenty of reasons to explore other options. Whether you’re looking for a more cost-effective solution, need specific features, or just want to diversify your cloud infrastructure, alternatives to S3 can offer a tailored approach to fit your needs. In this post, we’ll explore some of the best alternatives to S3 storage, how they compare, and what makes each one stand out. Let’s dive into the options that might be just right for you.

How to program Drupal Cron

From drupalsun.

Implementing Cron tasks in Drupal

Cron tasks are defined by implementing the hook_cron hook in your module, just like in previous Drupal versions.

/** 
 * Implements hook_cron(). 
**/ 
function example_cron() { 
  // Do something here. 
}

And that's pretty much it. Rebuild cache and next time cron runs your hook will be called and executed.

Pytorch cuda tries to allocate memory but it is not available

If you see an error similar to this one:

RuntimeError: CUDA out of memory. Tried to allocate 11.88 MiB (GPU 4; 15.75 GiB total capacity; 10.50 GiB already allocated; 1.88 MiB free; 3.03 GiB cached)

then, try reducing the batch size.

    train_loader = DataLoader(
        train_dataset,
        shuffle=False,
        pin_memory=False,
        batch_size=2, # was: 16
        num_workers=12,
    )

Canon Digital Photo Professional - free download

One of the pieces of software that I enjoy using very much is the Canon Digital Photo Professional. I originally got it a loooong time ago, back when I was taking photography classes. It came with one of the Canon cameras that I've bought over the years. At the time I used it to browse and sort my pictures, sure - and only years later I realized just how valuable and useful this piece of software is.

A recommendation to rename "criticality" -> "priority"

Just throwing two cents here - if the pandemic taught us 10 things, one of those ten gotta be that small details in communication matter very much. With that, I recommend renaming the word "criticality" -> "priority". The reasoning is as follows. And be careful with the red color in the smart sheet too, please, for the same reason. 

An example of a bug report and the technical conversation around it to resolve it

I recently had to justify the amount of effort that software development takes. Someone unfamiliar with the process thought that software development is easy, or that it doesnt take much time. They thought, for example, that an advanced reporting app can get pdf export capability if they just said to the development team, "implement pdf export." Literally, they thought that writing a single line of text like that in a specification document would result in the organization gaining that functionality. 

Encryption (on linux and mac)

What I'm using is encfs. The advantage is that it's portable: just a folder. The disadvantage, I think, is that it is slow. I would actually prefer an encrypted partition.

Some choices of encrypted partitions are:

A directory of SMTP sending services

Due to an unexpected service interruption, I've recently had to evaluate numerous options for SMTP services, to replace a one that was showing signs of performance degradation. The AWS SES is an obvious choice, but what if it is not available, or your organization requires diversifying to other providers? Below is a quick list of contenders that I have compiled, with my comments on each. 

Drupal 9: How to make the /user/register form available in a twig template

Q: When comments in a (content type) Article are enabled, for an anonymous user Drupal 9.5 shows a text with links, "please regiter or login to post a comment". I would like the login form to be rendered there already, so that the user can login without leaving the article. For this, I would like to make the /user/register form available inside a twig template. How would I do that?

A: Install Twig Tweak (reference) and try this:

Testing async code with Jest

After a little bit of struggle, I have managed to implement a jest that correctly tests an async fetch call. That is, suppose clicking a button initiates a POST request, and upon success some action takes place or some message gets displayed. I needed a test to assert that the action indeed took place.

My component looks as follows:

How to import and export users to keycloak

First, I recommend setting up a backup. This way, exporting and importing users is done via backup. You would not need to recreate the realm: you can do a partial import of users into an existing realm.

My keycloak is setup with backups via docker:

A review of some on-prem software services

I recently came by this picture at r/selfhosted and thought it useful for reviewing which services I use, and more importantly, which services I am missing.

The original post said that he hosted all of these on a single raspberry pi. Regardless of whether that is the case for you, or for me, I think reviewing which services are running, would be useful.