Disposable vs. masked email addresses
Sometimes it’s helpful to give the terms “disposable” and “masked” two different meanings when referring to types of email addresses. Both disposable addresses and masked addresses are great at protecting you from spam and phishing emails. Instead of giving out your main address, you can give out ones that are temporary or easy to replace. Some email protection services have different sets of features: addresses with inboxes that are completely public addresses with private inboxes, but you only get access to a random address for a short time (say, 10 minutes) addresses that you keep access to as long as you want, and all emails they receive are automatically forwarded to your main address I’ll refer to the last of those as “masked addresses” and the others as “disposable addresses” even though Wikipedia’s page on disposable addresses doesn’t make a distinction between them....
Restic vs. Duplicati
Restic and Duplicati are both great for making backups of your computer’s files. I have experience with both. They’re mostly the same, but they have some differences that might be important depending on your needs. Similarities They’re the same in many ways, including: free open source versioning of backups choose specific files and folders to back up encryption compression deduplication verification scheduling of backups and retention (I now use Resticprofile for this) support for many storage locations (I happen to use Backblaze B2) Differences Setup Duplicati requires less technical skill to set up because its user interface is graphical....
Types of secrets management
When creating software, it’s common to deal with secrets like database passwords, API access tokens, etc. There are many ways to make secrets available to software. Below are notes on some of the ways. Threat Modeling might help you determine which way is best for what you are doing. Environment variables Putting secrets in environment variables (env vars) is very easy and might be fine if your setup is simple and otherwise very secure....
Security benefits of SQL stored procedures
Using stored procedures instead of putting SQL statements directly into a service’s code can increase security. There are multiple reasons why. Reduced attack surface The main security benefit is that hackers will be more limited in what they can do if the database credentials they steal can only call stored procedures. As a demonstration, let’s say your data can only be accessed by stored procedures that each take a Discord user ID as input....
Making Discord bots
Discord bots run as web services that use Discord’s API. They listen for requests from Discord and send responses. They need their own databases if a way to persist data is necessary. However, some Discord bot features require saving some data about the bot in Discord’s servers, such as slash command names. Automated testing of Discord bots tends to be very limited or nonexistent since Discord has rate limits and is too complex to practically mock....
Pointers vs. references
Some differences between pointers and references can be confusing, especially since there are several different definitions for those words. This can make it difficult to answer simple questions like “Does Golang have reference types?” (TLDR: most people and the official Go FAQ say that Go does have reference types.) Pointers In some languages like C++, pointers can point anywhere in memory. They can point to null, or to memory with data of the pointer’s type, or any other part of memory....
Go dev tools
Below are a bunch of commonly used packages and other tools for software development with Go. Go has excellent backwards and forwards compatability, so tools that haven’t been updated in a long time may still be a great choice. Unless otherwise noted, each tool listed here appears to me to be good enough at what it does that I don’t feel the need to look at alternatives. If you’re new to Go, check out Learning Go....
Bookmarklets
Bookmarklets are browser bookmarks that run some JavaScript instead of navigating to a website. They can do anything JavaScript can do including change fonts, search for phone numbers, remove all images, change the background color, automatically fill a form, and so much more. This guide by Hongkiat Lim explains bookmarklets in more detail and lists many of the most popular ones. More examples Here’s one I made. You can drag it into your bookmarks bar: copy markdown link....
PDF tools
Here are a bunch of tools I found for reading, editing, and more with PDFs. I have not tried all of these but they all look promising. Read Sumatra PDF is the best PDF reader for Windows. The default PDF readers on other platforms seem to work well. Edit, annotate, sign, or fill SimplePDF is an in-browser PDF editor. Some browsers, such as Firefox, include PDF editing tools. You can select a PDF and “Open with” a browser....
Stardown v1.0.0
The first full version of Stardown has been released! Stardown is a free browser extension I created for copying markdown links for websites. One click on its icon copies a markdown link for the current page. A double-click copies markdown links for all tabs. Right-clicking a website gives you a markdown link for where you right-clicked. Although I have tons of bookmarks, I save even more website links into markdown files in Obsidian and notes about software I’m working on....