I will be travelling to the USA soon and because I am cheap, I have setup a complicated strategy to redirect my phone calls to a VoIP number to avoid paying Telus’s $12/day roaming fee.
This requires setting up call forwarding with Telus.
Here are the steps to forward all call types to my VoIP number.
In case it is not obvious 1234567890 should be replaced with the number you want your calls forwarded to.
I need S3 storage for a number of use cases. I typically create a new IAM user for each use. What I don’t like is that the default S3FullAccess policy unsurprisingly gives that user full access to ALL of my S3 buckets.
While this might be fine if the user will be for my local machine’s AWS CLI package it is not acceptable for a service like a plugin that backs up a WordPress website to S3. If the WordPress site is ever compromised I could lose all my data in all my S3 buckets.
Fortunately it is relatively simple to restrict an IAM user’s S3 access to a single bucket.
Here is the policy I am using from here, which I can confirm does work. (Something I cannot say for the official Amazon article on the same subject.)
A best practice in WordPress is to never modify a third-party theme directly. Instead any modification you need to make should be done inside of a child theme.
The same applies when using Divi (affiliate link).
Here is a quick bash script that will simplify this process.
Note: The commands and theme images are from here.
I used the WordPress droplet from Digital Ocean (affiliate link) to test this script so you may need to adjust the script depending on where your site’s web root is located.
#!/bin/bash
cd /home/becauseiforgetthings/htdocs/becauseiforgetthings.com/wp-content/themes
mkdir divi-child
cd divi-child
cat <<EOT > style.css
/*
Theme Name: Divi Child
Theme URI: https://www.elegantthemes.com/gallery/divi/
Description: Divi Child Theme
Author: Elegant Themes
Author URI: https://www.elegantthemes.com
Template: Divi
Version: 1.0.0
*/
EOT
cat <<EOT > funcitons.php
<?php
function my_theme_enqueue_styles() {
wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
}
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );
EOT
wget https://www.elegantthemes.com/blog/wp-content/uploads/2018/02/screenshot-copy.png
mv screenshot-copy.png screenshot.png
cd
I’ve had several Divi WordPress sites now where the mobile menu (hamburger) was unwanted. The mobile menu is great to hide a complicated navigation structure but for a simple site it can be overkill.
By default the Divi menu component will collapse the menu into a mobile hamburger menu by default and there is no way to disable this functionality in the Divi builder.
A little CSS will solve the problem.
I discovered the solution here but will also put it below in case that site ever disappears.
Add a custom class to your Divi menu module: hide-mobile-menu
Add the following CSS to your Divi site (style.css or Divi options)
I use 2 Sharp 43 inch 4K displays as my Mac mini’s monitors. I love them. What I don’t love is when my Mac decides to drop my refresh rate down to 30Hz instead of the nice smooth 60Hz I am so accustomed to.
When I go into display settings to correct this I no longer even have a 60Hz option.
This issue has been bugging me for years, over at least 3 macOS releases. I was hoping perhaps Monterey would fix this but no.
Usually I would just reboot to fix this issue, but I hate rebooting my computer. I have a reboot reminder that I frequently ignore. It’s just a pain to restart all my apps but my love for 60Hz forces me to do it.
But rebooting is a thing of the past (at least for this particular issue). I finally found a solution, an application to solve this. It’s a command like app named “cscreen”.
cscreen allows you to view the configuration of your displays but more importantly it allows you to force set the configuration of your displays.
The following are the steps I took to install cscreen on macOS Monterey.
First you need to install Homebrew. There may be alternate installation methods, but I use Homebrew for a lot of things so this method makes the most sense to me.
Open Terminal and run: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Install the cscreen cask
brew install cscreen
Unfortunately if you try to run the cscreen command at this point you will get a “This app is from an unknown developer” error. The easiest way around this is to do a “right-click, open” on the app from inside Finder.
Open Finder
Click on the “Go” menu
Select “Go to folder”
Enter the path /usr/local/bin
In the Finder window, scroll down to the cscreen app
Right-click on the cscreen app and choose “Open”
Read the warning and then click the “Open” button
cscreen will run and then exit, and that should be the last time you get the “unknown developer” warning
Go back to your Terminal window where you installed Homebrew
Run the following command: cscreen You should see a list of your displays and their stats
To update the refresh rate (or other setting) enter a command like this: cscreen -d 32 -x 1920 -y 1080 -r 60 -s 1 cscreen -d 32 -x 1920 -y 1080 -r 60 -s 2 Note: d: colour depth, x: horizontal resolution, y: vertical resolution, r: refresh rate, s: display numberYour display will likely turn on/off as it adjusts.
That’s it! You can confirm the new setting is correct in Display Settings or just run the cscreen command with no arguments (which I now do way too often to be sure I always have my 60Hz)
I love to optimize my finances. If I can figure out a way to legally and ethically save money I am going to do so.
One of my favourite money optimizations is to use a credit card for everything. I never carry a balance so any cash back is pure savings.
I’m always looking for new credit cards that will give me the highest percent of cash or rewards possible.
Why so many cards? Well each card has unique features that fit in with our spending habits. Below is a brief overview of each card and why I chose it. I skip over most of the card benefits that I don’t care about, and I do not mention any sign up bonuses as I try to focus on the long-term card benefits.
Amazon.ca Rewards MasterCard
We shop at Amazon a lot. As Amazon Prime members this card gives us a 2.5% cash back on all our Amazon purchases. All other purchases receive 1% cash back, but we only use this card for Amazon. The cash back comes in the form of a virtual Amazon Gift Card. There is no annual fee. I do have one complaint with this card though. There is no way to downloading transaction throughout the month. At the end of the month you can download a CSV of all your transactions but that’s it. I balance all my credit cards daily, so I ended up having to write a special script to import the transactions from Amazon. Not ideal, but I like 2.5%.
Brim MasterCard
We have the $0 annual fee version. This card is only used for foreign purchases because Brim offers a 0% foreign transaction fee. The card offers 1% back on all purchases including foreign transaction purchases. We signed up for this card immediately after our Rogers card decreased their foreign transaction rewards from 4% to 3%. Rogers also charges a 2.5% foreign transaction fee which meant the net rewards went from 1.5% to 0.5%. While Brim doesn’t get me quite back to the 1.5%, 1% is not too bad. Brim also gives you an extra $5 in rewards on your birthday. Interested in trying out Brim? Sign up for a Brim MasterCard (Affiliate link)
Rogers World Elite MasterCard
Since we are a 4 credit card family, sometimes it gets hard to remember which card to use where. This card is our default, catch-all card. I tell my wife, “When in doubt, use Rogers”. The Rogers card offers a 1.5% cash back on everything (used to be 1.75%) and 3% (0.5% net) back on foreign transactions. There is no annual fee. I have yet to see any other no annual fee card come close to 1.5% cash back. I think it’s pretty rare even on an annual fee card. Speaking of annual fee cards…
Scotia Momentum Infinite Visa
Yes, the name is a bit of a mouthful, but it is an amazing card. There is a $120 annual fee but the rewards benefits more than make up for the fee. This card offers a whopping 4% back on groceries, recurring bill payments and subscriptions. They also offer 2% back for gas, and daily transit purchases. For everything else they give a typical 1% cash back. If the “everything else” rate was 1.5% I’d drop my Rogers card. The $120 may sound steep but the 4% back on groceries alone pays off the fee rather quickly.
We are a family of 6. Our monthly grocery budget is about $800. With Rogers our net annual cash back would be $144. With Scotia our net annual cash back would be $264 ($384 – $120). That’s $120 more cash back with Scotia over Rogers. That calculation ONLY accounts for groceries. Typically, our annual Scotia cash back is around $600.
Additional cards for the Scotia Momentum Infinite Visa card are an extra $50/year per card. We only have the one card. My wife carries the physical card but we both have it setup on our iPhones and Apple Watches with Apple Pay.
While cash back is my primary concern when choosing a credit card there are other benefits to consider like insurance. Rogers and Scotia have travel insurance but, well, we don’t really travel anymore… Scotia’s insurance benefits are superior to Rogers which makes sense since Rogers is a no annual fee card.
Only one card
If I had to get rid of all my cards except one, I’d go with the Scotia card. Once my children move out, the Rogers card may actually be more appealing as hopefully our grocery purchases will be much less. My most makes-me-feel-good credit card would have to be my Brim MasterCard (Affiliate link). The birthday cash back is a nice touch, and they come across as a much more modern credit card than all the others.
I love my Synology NAS. I was surprised at the number of features Synology claims to support, but I was even more surprised to find out that they all seem to work (at least all the ones I have tried so far).
One of my favourite features is the ability to run Docker containers directly on the NAS. They even provide a nice little UI to manage images and containers.
The only problem is that I keep forgetting how to update my containers. I usually just set up my containers and forget about them; maybe running the Docker app on my NAS a few times per year.
Because I forget things… below are the steps I go through when I want to update the underlying Docker image for a container.
Open the Synology Docker app.
Click on the Registry link in the left nav.
Find the image that the container you want to update is using, right-click on the image and click “Download Image”.
Choose the version of the image you want to download. You probably want the “latest” version but your requirements may be different from mine
A “1” badge will appear in the Docker app left nav beside the “Images” nav item indicating that your new image is downloading.
When the download is complete the “1” badge will disappear and, if enabled, your browser will display a notification.
Navigate to the Containers page.
Stop the container you want to update.
Right click or select the container and use the “Actions” menu to “Reset” the container.
You will receive a warning message which should be safe to ignore as long as you are using volumes and not storing important information in the container directly.
Start up the container and you should now be on the latest version!