Blog
Automatic WordPress Backups
Backups are essential for running a website (or really anything else you do on a computer). And finding a simple solution to perform them regularly can be a challenge. You are, generally, trying to connect to a remote server, capture a backup of the database and the site, archive the files, and then pull the files to your own computer to store them. And you still need to get the backups to a third (and off-site) location to ensure true backup continuity in the case of the worst disasters. The examples below are one's I use to capture backups of a couple of sites I have hosted on DreamHost, but there are many ways to get the same results and this process can easily be replicated. The best part about this method is that it can be easily replicated or modified to meet your requirements and backup technologies of choice. My way demonstrates how to do this using as many open source technologies as well so they are freely available and generally cross-platform (although we all know we will get the best results running on Mac or Linux). If you are doing this on Windows, I highly recommend using the Linux Subsystem to add bash and Ubuntu to your existing Windows command line or use chocolatey to install the required software.
Create SSH keys to your remote server
This system I use assumes that SSH keys have been generated for command-line access to your site. If you are not already using SSH keys, you really should! They massively improve security overall and once set up, you don't need to enter in your password to connect any longer. The most important thing to remember is that you never share your private key with anyone, only your public key (the one that is generated with a .pub file extension). DreamHost has a wonderful article on getting set up with SSH keys on various platforms that I suggest you refer to and if you are using another host, follow their documents or just modify these steps to match their configuration. In addition to setting up SSH keys, I highly recommend setting up an SSH Config alias which will make using keys much simpler when running commands. This allows you to reference your SSH keys using an alias you chose and without the need to reference the additional details of where the key is located.
Backup WordPress
Once you have your keys set up, the first step is to backup your WordPress site and database. The best way to get a copy of that information is to use WP-CLI to capture a database backup first. If you are not familiar with WP-CLI, I recommend getting familiar with the product as it's a wonderful way to manage your site using just the command line.
wp --ssh=dhs_gt:/home/dh_jik7er/buffalochips.online/ db export
This will generate a SQL backup on your remote server in your WordPress site folder with a default name of:
{dbname}-{Y-m-d}-{random-hash}.sql
wp db export
Compress the backup files
Then, capture an archive of your site using zip (using the date variable to capture today's date and prepend that to the archive name):
date=`date +%Y-%m-%d.%H:%M:%S`
zip -r $date_site.zip ~/site/
Backup to your computer using Duck CLI
Duck CLI is a wonderful and fully featured utility made by the same creator of the fantastic Cyberduck app! While you can perform these tasks using built in scp commands or other methods, I like Duck CLI as it works well with multiple backup methods, including working with S3 buckets.
duck --username username --identity ~/.ssh/id_rsa --download sftp://site.com/home/username/folder/
Upload to DreamObjects
We will again use Duck CLI but this time, we will upload our latest backups to a DreamHost DreamObjects bucket using an S3 connection. While I'm using DreamObjects, any S3 compatible bucket will work here but the setup will vary by provider so modify to match their configuration requirements.
duck --username ~/Documents/Buffalo\ Chips/Backups/ s3://.../
Cyberduck and Duck CLI
There are so many different options for accessing files on remote servers and they vary in quality and ease of use. I've tried many of them but, by far, my new favorite is the combination of Cyberduck and Duck CLI. This combination of tools are perfect for accessing a remote server to manage files and automate backups!
Cyberduck is the GUI app that lets you easily navigate any of your remote servers and any local computers on your network using Bonjour. You can easily connect securely to the server with username and either password or ssh keys which are integrated to review the existing keys you have stored in your ~/.ssh folder. You can also store your username and password securely in iCloud Keychain, ensuring they are secure and synced to all your devices. The tight integration doesn't stop there, Cyberduck provides notifications and other standard native integrations with your Mac to provide a seamless experience.
Duck CLI provides the same features as Cyberduck but all from the command line! Updating files and backing up websites are all possible using the simple command line options. To simplify the setup of Duck CLI, I recommend first downloading Cyberduck and setting up the configurations so that they are cached in your iCloud Keychain and then access your servers via the command line. Some examples of what you can use Duck CLI for are:
Backup your files to an S3 bucket on your computer
s3://
Lessons from Facebook's woes
This week has been a wildly terrible time at Facebook, Inc. Between the whistleblower claims published by The Wall Street Journal and their 6-hour outage yesterday which appears to be caused by internal updates to their backbone infrastructure, Facebook is facing some major scrutiny. While each of these incidnets are new and developing, there are some early indicators that show where better controls could alleviate these same pitfalls for another company with infrastructure at scale.
https://apple.news/AqqNhwHfuSaOHp_kcbCceUg
Data leaks
Facebook appears to have a wide open
SharePoint Migration Tool
Moving to the Cloud
Of all the things corporations and businesses seem to be the most recalcitrant to migrate to the cloud, file servers seem to be near the top of the list. Often the data consists of a combination of documents that do have value but are not regularly accessed and recent documents that need to be collaborated on in the moment by teams across the organization. The last type of data, and the one that does not make sense to move to the Cloud are files that are exorbitantly large but require regular use with local systems. There are plenty of other scenarios that further carve out your data usage but for user facing needs, moving to the cloud should be an effortless process for documents they are working on or accessing. For users of Microsoft's suit of products, SharePoint Online offers a solid and reliable solution that provides everything an office worker needs.
Using Windows
After a decade of working on macOS, iPadOS, and iOS, I've switched jobs and been diving into Windows Desktop as a result. So far, the transition has been better than I thought as I have found Windows 10 usable but that's with some heavy caveats that I'll get into later.
The Good
WinGet
The most overlooked thing on Mac is a package manager -- despite there being great third-party alternatives (I ♥ Brew), Apple should really find a way to bring a solid solution to the Mac. WinGet is great but out of the box, there are few repositories that offer many open-source solutions. But there are lots of great Windows apps out there which are included and are easy to install. This also made collecting the apps I needed to get going much quicker as they are just a command line away from installing, especially helpful since a lot more apps are required to bring a Windows laptop up to par (more on that later).
Windows Terminal
This was the thing I was most excited to start using
Windows Subsystem for Linux
Once installed and configured, gives a true Linux terminal
The Bad
The lack of built-in apps
Surprisingly, things have drastically improved in this regard. There was a time where Microsoft just provided an Operating System with the basics and then charged for an Office suite. This left you to your own devices to find everything else that, in 2021, feels like should be there. So, when things which are simply basic (Mail, Calendar, Contacts, Photos, Maps, and OneDrive) are all included, starting out is much quicker. The company provides the Office suite now with Microsoft 365 and the Windows Store offers a broad selection of apps to get started. It was liberating how wide the selection of apps was there -- Microsoft being much more lenient than Apple with their app store policies. These apps leave much to be desired and only fill in a small part of what should be there. The built-in Mac apps like Preview (for viewing and manipulating PDFs and images), Terminal (which has all the BSD Unix goodness baked right in, no additional download required), and Safari (IE is still included, Edge is a great replacement and adds some Preview features like editing PDF's but just doesn't compare) are all present from launch. There is no need to find any replacement apps for most people because they are simply great! And for Preview and Safari, the sync with the iPhone and iPad works so well you can have a consistent experience across devices without any interruption in your workflows. Edge has these features and there are some clever ways they handle this same set of problems, but at the end of the day, you still must install Edge separately and on all devices.
The Ugly
Hardware
While the hardware has come along (notably, the trackpad gestures were much better since the last time I used a Windows device), the overall hardware just cannot compare. Trying to make the laptop go to sleep by closing the lid and placing it in my bag has resulted in coming back to a dead laptop that never made it. Running it in clamshell mode at home is clumsy as the laptop must be woken, plugged in to USB-C, then the lid closed, rather than on a Mac simply plugging in the USB-C waking the laptop and connecting. The headphone jack did not automatically detect that I had plugged in a device, and it wasn't until I contacted support and they recommended shutting down the laptop, plugging in the headphones, and then powering it on that the laptop finally detected them as a device and started working. These are headphones I've used on many devices before that simply just worked, including gaming systems and other laptops -- and the issue was not unique to me either, another co-worker reported the same issue.
Integration
The tight integration with software and hardware on Apple's devices is unbeatable. Microsoft has been working hard with their own line of Surface's to develop a similar set of features, but they lag behind due to their inability to own the entire process. Notably: AirDrop; Safari tabs; iCloud sync of files, settings, third-party apps, and much more; phone calls on any device; device unlock with Apple Watch; and so much more that I am forgetting. These are the intangible things that make it so hard to describe to people who have not used a Mac and iPhone before -- things that seem so simple or
Reboots
You still must reboot Windows. A lot. I am learning it is better to sometimes power off the laptop rather than sleep since it just cannot seem to overcome issues such as switching between networks and such.
Apple could fix some things too...
While there are many things that are a struggle with on Windows, Apple has an opportunity to provide some improvements and potential customers by expanding their apps as well.
Facetime and Messages (and Phone)
One of the best features of Apple devices is their messaging capabilities. And the latest version does add some excellent features that expand on the already great service. But there are so many other potential users of the system that Apple could bring in and, while they are at it, add subscription revenue. By making apps for non-Apple devices (Android and Windows to start) but requiring these users to be subscribed to Apple+, they open a new way to bring in revenue and subscribers who would be more than willing to pay for these features and apps.
Apple Music, Podcasts, and News
Most noticeable is the lack of any web or app presence for their paid subscription offerings, other than Apple Music, and that is just in the form of the web app or the bloated and outdated iTunes client. Podcasts are also available in iTunes but there are many missing features to it that are hard to overcome. The frustrating part is that these are paid services (other than Podcasts) that should have a way for me to use them anywhere I want, not locked to Apple devices.
iCloud

While there are solutions for Windows for some of the features of iCloud, they could be easily improved with some development of a Native or Progressive Web App (PWA) on the Microsoft Store. Twitter is a notable example of a PWA which excels at this. Apple has pushed others to make their apps as PWA's for compatibility and it is high time they did the same!
Are there any solutions to these problems?
I plan to do a follow up article that will outline how I've overcome these challenges. I plan to keep it up to date as things evolve and new solutions present themselves, so stay tuned.
Mastodon verification
I'm checking out Mastodon and you should give me a follow over there. I'm still on Twitter for the moment and cross-post between the two sites. If you are curious, they are really similar but there are some important differences as well. The biggest being one is not owned by anyone person, the other is owned by a single person that may or may not have our best interests in mind.
‘Wordle’ acquired by New York Times for over $1M, could pave the way for an iOS app

I have a feeling this will move behind a paywall sooner rather than later. If so, it was a fun ride. My wife and oldest had even started playing! Hope I’m wrong.
After quickly becoming a viral hit, the popular Wordle word game has now been acquired by The New York Times. The publisher announced the deal today,…
‘Wordle’ acquired by New York Times for over $1M, could pave the way for an iOS app
Sun Dog

Starting a new role means leaving the one I'm at...
I have been, first at TekLinks, and then C Spire, for nearly a decade so posting this is something I do not do lightly. But a great opportunity presented itself and I've decided to take a role at Kemper Insurance in their IT department. I'm really excited for this new challenge but I am absolutely crushed leaving everyone I've gotten to know over the years. I have had a chance to get to know so many folks through this role and I will cherish my time at this company. Many of you really had a massive impact on me and I hope to stay in touch. Please feel free to reach out to me if you need anything (even if it's to chat) any time and I wish everyone the best!