Filtering ancient Drupal comments for spam using an LLM

I have been meaning to resurrect my blog for a long time. I’ve written many versions of this post, whether on dev.to, wordpress.org, Obsidian Publish, etc. etc. etc. I have spent hundreds of dollars on the question “how do blog?!” and I’m back to “Pay $5/mo for a VPS, put HTML files on the internet.”

I have an old Drupal 5 blog from ~2014 which I migrated my ~2010 Drupal 4 blog posts from. I really liked the 2014 era content from when I first started experimenting with software defined radio and had some moderately well-commented posts on GQRX SDR and Linux gaming at the time.

[Read more]

Google Play Music & Gnome Shell Media Buttons

I have been trying to figure out how to use the media keys on my keyboard to control Google Play Music for a while. It turns out that Chrome is set up to listen for the media keys, but the X11/Gnome were capturing these events and not propagating them to the browser.

TLDR: Disable the Play/Pause, Next, and Previous keyboard shortcuts in the Gnome Keyboard controls.

Screenshot of Gnome Shell Keyboard shortcuts

[Read more]

Let’s Encrypt!

I’ve finally completed my goal of securing https://marcinkowski.ca and https://analytics.marcinkowski.ca using Let’s Encrypt. The process is easier than setting up the pretty URL rules for Drupal in nginx.

I followed Digital Ocean’s setup instructions found here: https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-14-04

Setting up certificate renewals

See my next article about setting up automatic certificate renewals:

Let’s Encrypt Renewal

TLDR:

Prerequisites:

  • Your user needs to have write access to your webroot
  • I have installed certbot-auto in to /opt/certbot
  1. Get certbot from the EFF (https://certbot.eff.org/)
  2. Configure nginx to allow access to http(s)://domain.com/.well-known/*:
    /etc/nginx/letsencrypt-authorization.conf:
        location ~ /.well-known {
            allow all;
        }
    
    /etc/nginx/enabled/domain.ca:
        include letsencrypt-authorization.conf
    
  3. Create a cert using certbot-auto script:
    
    /opt/certbot/certbot-auto certonly -a webroot --webroot-path=PATH/TO/WEBROOT -d domain.ca
    
  4. Add my new letsencrypt certificate and private key to the config file for this domain:
    
    ssl_certificate /etc/letsencrypt/live/domain.ca/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/domain.ca/privkey.pem;
    
  5. Followed the rest of the Digital Ocean article: a. Generate a Strong Diffie-Hellman Group:
    
    sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
    

b. Add additional SSL params to use modern practises, including HSTS (Thanks Digital Ocean) ~~~

[Read more]

Let’s Encrypt Renewal

In my last article I TLDR’d how I got Let’s Encrypt set up for https://marcinkowski.ca and https://analytics.marcinkowski.ca.

Getting automatic renewals set up using certbot is pretty straightforward. I collected the following from a couple of places, including the github:certbot/docs/using.rst#Renewal

Add a twice daily cron entry for certbot to check for renewals:

    30   6/18 * *   *     /opt/certbot/certbot-auto -q renew --post-hook "service nginx reload"

The --post-hook "service nginx reload" will reload Nginx’s config only if a certificate renewal is performed. You can check on this by adding -v to the call to /opt/certbot/certbot-auto and see the logging output stating that no renewals were attempted.

[Read more]

Turning Drupal into a static site using HTTrack

I am currently running three blogs on one of my Linodes. This blog, one for my cousin Stef Marcinkowski and one for my brother Erik Marcinkowski.

Stef and I have made the decision to move to a simpler static portfolio site to showcase his incredible graphic design skills; something which I felt Drupal was getting in the way of. Drupal makes a lot of things unnecessarily difficult, and our new vision for Stef’s site is far less focused on blog entries and articles.

[Read more]

Making the Mad Catz R.A.T.7 Contagion gaming mouse not suck in X11

I have done this several times, across multiple installs on my desktop, laptop and work computer.

The Mad Catz R.A.T.7 is a great mouse that I bought on a whim not because I’m much of a gamer (I’m not) but because it fit my hand and I felt a pang of Retail Acquisition Syndrome while looking at the damn thing. It turns out that the selectable DPI setting is great for switching between a Linux desktop machine and the OSX at work. I could never get the standard acceleration setting in OSX to behave like I wanted, but turning the DPI down in hardware on my mouse worked great!

[Read more]

Projects

Google Calendar Node Synchronization for Drupal

Designed to sync information about your Drupal nodes to a Google calendar. There are site-wide settings for your Google Calendar account information and node-specific configuration settings for exact values such as dates, timezones, event location and event information. Each node type can have different field settings to suit your needs.

More Info

Project Overview Project Documentation Screenshots

[Read more]

Piwik Analytics and new privacy policy

After putting it off, I managed to get Piwik installed last night and felt it necessary to create a privacy policy. I have configured Piwik to adhere to the DoNotTrack header sent by modern browsers, so you don’t have to worry about me tracking you if this is set.

That is all.

[Read more]