All Articles
Ping / monitoring: Alternative to uptimerobot_com
- uptime kuma
^ that's a self-hosted alternative to Uptimerobot.
How to check where a method is defined, in ruby
You can use this pattern/idea:
CSV.new('string').method(:flock).source_location

Handle configuration settings in custom Drupal modules and example of using the configuration API in Drupal
Handling configuration settings in custom modules involves using the Configuration API provided by Drupal. This API allows you to define, manage, and access configuration settings in a structured and consistent way. Here’s how I approach it and an example of using the Configuration API in Drupal 10/11:
Using the Configuration API
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 gzConverting 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]: drush The specified database connection is not defined: default
Fixing this took me years... I can't believe how long it took. The answers on stack overflow did not help.
The error was due to a mismatching php configuration for running in the shell ( /etc/php/8.1/cli/php.ini ) and in apache (/etc/php/8.1/apache2/php.ini ).
Specifically, I had to enable short tags for the shell:
20250424 Scrum: Switch from consumption to production
...then, the current idea, from completely lacking motivation to work, is as follows. Instead of reading news, etc, and being generally unuseful, I will spend time *writing* news, or scrum updates, or 2d sketches, or whatever else that can be generated, rather than consumed.
[FIXED]: java.io.IOException: Cannot run program "/bin/bash"
Just restart jenkins:
service jenkins restart[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] prosody: usermod: UID '0' already exists
That happens because the${CONTAINER_VOLUME} path must belong to a user other than root, or prosody fails to start.
HTML class naming conventions, and id naming conventions
In HTML, classes should be lower-case with dashes:
<div class="class-name-1 another-class-name"> </div>
There are exceptions:
<div class="BookChapter" ></div>
However, ids should be camelCase or PascalCase (capitalized first letter):
<div id="thisDiv"></div><div id="anotherArray"></div>
What's a better name: tag1 or tag_1 ? Should it be tag-1 or tag_1 ?
Or the same question can be asked as: what's a better name: tag1 or tag-1? Depending on if underscores are disallowed, or dashes are disallowed.
While we are on the topic of dashes vs underscores, check out when to capitalize HTML classes, and when to keep ids in Pascal Case.
[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
How to reset admin password in Fat Free CRM
It appears that you can just re-run the setup in order to do that:
bundle exec rails ffcrm:setup
.
[FIXED]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' when running mysql database in docker, for a ruby on rails application
Change
host: localhost
to
host: 127.0.0.1
in config/database.yml, to make the connection over TCP/IP rather than local socket.
How to run cron from docker
tl;dr: bind the cron definition file as a volume, and wire running it, as part of the image (in your Dockerfile).
Here is frmo a Stackoverflow answer:
Let's say you have a file hello-cron:
A Comparison of Free and Open CRM Clients
ToC
EspoCRM- SuiteCRM
SugarCRM- FatFree CRM
Odoo- Redmine
tl;dr My current recommendation is: Fat Free CRM, Suite CRM, or a custom (other) solution, in that order.
A simple script to login to a docker container
I have two versions: one for linux, and one for mac. If anyone knows how to combine them into one, please post in comments below!
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.
Android: How do you create a local keystore?
keytool -genkey -v -keystore ~/.android/debug.keystore \
-alias debug_keystore -keyalg RSA -keysize 2048 -validity 10000.
ImageMagick security policy 'PDF' blocking conversion
Paperclip::Errors::NotIdentifiedByImageMagickError
## /etc/ImageMagick-6/policy.xml
<policy domain="coder" rights="read | write" pattern="PDF" />.
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.
Testing and browser automation, with Selenium and Rspec: Initial Setup
You can download the Selenium remote grid jar here:
Drupal 9.5: How to render a block from a controller
Based on this excellent stackoverflow answer.
$bid = ??? // Get the block id through config, SQL or some other means
$block = \Drupal\block_content\Entity\BlockContent::load($bid);
$render = \Drupal::entityTypeManager()->
getViewBuilder('block_content')->view($block);
return $render;.
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.
New project requirement posted: a Drupal migration task
Hello everyone! I have a one-off project in Drupal, that I'd like to hire for. The detailed description is available here: https://redmine.wasya.co/issues/3491
If you are interested in talking about this task, or sending me your resume and credentials, please use this contact form: https://wasya.co/contact-us
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:
[FIXED] Jenkins: 403 No valid crumb was included in the request
You may consider clicking 'enable proxy compatibility' in the settings, to resolve this issue:






