Problem After setting up my email server on DigitalOcean, I thought I was done. Turns out I was just getting started on a long journey through email deliverability hell. The issue was that at one point I marked emails from my domain as “Not Spam”. So the emails were actually showing up in my inbox. When I tried on another email address, they went straight to spam. The PTR Record Problem I found a website mail-tester.

Setting Up an Encrypted Email Server on DigitalOcean

- 3 mins read
Problem I needed to set up a professional email server for my project that could send emails reliably without ending up in spam folders. Gmail and other major providers have become increasingly strict about email authentication, so a simple SMTP setup just won’t cut it anymore. Solution After researching modern email deliverability requirements, I built a complete email server stack using Postfix (SMTP), Dovecot (IMAP), and OpenDKIM on a DigitalOcean droplet with proper DNS authentication records.

Fixing Wireguard Site to Site VPN DDNS Issues

- 3 mins read
Problem In my previous post, I setup a site-to-site VPN between my home and my parents’ house using WireGuard and dynamic DNS. Everything worked great initially, but I ran into an issue: when the ISP changes the IP address of either location, the WireGuard connection fails and doesn’t recover automatically. The problem is that WireGuard resolves the DDNS hostname (like <parents_ddns>.ddns.net) to an IP address when the service starts, and then uses that cached IP address for all subsequent connections.

Fixing Filelight Pie Chart Rendering on KDE

- 1 min read
Problem Recently Filelight hasn’t been displaying pie chart visualization. Instead it showed a blank gray background. This makes the program almost unusable. Here we fix it. Solution Below you can see how it is rendered: To fix this we need to set an environment variable for Filelight using KDE Menu Editor. I just learned this tool existed! It’s a handy way to modify application launch parameters without editing desktop files manually.
Problem I fixed filelight rendering when launching from the menu, however, a good amount of the time I want to launch it from dolphin. I noticed that my did not solve the issue. Solution When running a find on .desktop files we get the following: dru@TheArchBeast:~$ sudo find / -name '*.desktop' | grep filelight find: ‘/run/user/1000/doc’: Permission denied /var/lib/flatpak/runtime/org.kde.Platform/x86_64/5.15-24.08/ca531f435f2a16f9487cdce9727d7f20c9fd1c489bf89c2a581e3aa47c4772a3/files/share/kf5/kmoretools/presets-kmoretools/org.kde.filelight.desktop /home/dru/.local/share/applications/org.kde.filelight.desktop /usr/share/applications/org.kde.filelight.desktop /usr/share/kio/servicemenus/filelight.desktop /usr/share/kf5/kmoretools/presets-kmoretools/org.kde.filelight.desktop My solution was to find the Exec=filelight line in each of these and insert env QT_QPA_PLATFORM=xcb before filelight and after Exec=

Permanently Pausing Windows Updates

- 2 mins read
Problem There’s nothing quite as infuriating as setting up a large data transfer over SSH before bed, expecting to wake up to completed files, only to discover that Windows decided 3 AM was the perfect time to force a restart for updates. I learned this the hard way when transferring several gigabytes of project files last night. Windows Update’s aggressive restart behavior has become increasingly problematic in recent versions. When you’re doing serious data management or running long-running processes, this behavior is simply unacceptable.

Fixing Cursor IDE UI Freezing on Linux

- 2 mins read
Problem I’ve been using Cursor IDE for a while now and overall it’s been a fantastic experience. However, I started running into some really annoying UI freezing issues on my Arch Linux setup. The editor would randomly become unresponsive for several seconds, making it nearly impossible to maintain a good coding flow. The mouse cursor would turn into a spinning wheel, and sometimes the entire interface would lock up completely.

Force Updating Pacman Repo Database

- 2 mins read
Problem This will be a quick post. If you run arch you will be familiar with pacman or yay. You subscribe to a mirror and fetch the list of latest packages which then get downloaded and installed onto your computer. The issue I had recently was that my mirror updates its package list once every 4 hours. And by sheer luck the discord package went out of date just after one such update.
Problem For my UoT Continuing Education program we regularly do things in jupyter notebooks. I made a script to launch these notebooks in a local docker container. Solution Full Command: docker run -it --rm --gpus all -v "${PWD}:/tf/notebooks" --user root -e CHOWN_HOME=yes --name tensorflow -p 8888:8888 tensorflow/tensorflow:latest-gpu-jupyter /bin/bash -c "source /etc/bash.bashrc && cd /tf && pip install jupyterlab-vim && find /tf/notebooks -type f -name '*.ipynb' -exec jupyter trust {} + && jupyter lab --notebook-dir=/tf --ip 0.

Setting Up Wireguard Site to Site VPN

- 9 mins read
Problem I want to connect my home and my parents’ house. For the time being I only need to access resources on their network. The best solution for this is to use a site-to-site vpn and use masquerading to facilitate communication on their network. Solution To solve this I need dynamic dns setup and two pis connected via ethernet to the router at each house. DDNS First I need to be able to get the ip address for either house from anywhere in the world.