- Hide menu


How to download 200GB of photos off iCloud

Apple doesn’t make this easy. When your iCloud storage is full and you want to download 200GB of photos to free up space, one of the options, and arguably the most reliable, is to request Apple to compile the data via a request at privacy.apple.com. You can read about the issue with other methods in this recent Reddit post. Apple will email you when the compilation is ready. Here is a screenshot of a request to download almost 200GB of photos with a maximum size of 25GB per part.

Note that the 25GB size is a pretty loose limit with 5 of the parts exceeding the limit. More importantly, requesting concurrent downloads yields unreliable results. Make sure you monitor the expected size of each part as the download may silently terminate early like part 3 which failed at 3.9MB instead of 31GB. You’ll also note that the download speed seems to be capped at around 7MB/s at the sending server’s end. These downloads were on a Gigabit Internet connection.

But if you persevere, the downloads will all complete and you’ll be able to download your files from iCloud.

After all the parts have been downloaded, unzip the file and you’ll find a Photos folder in each part. I suggest you create a new album in the Apple Photos app and import all the files into Photos. This is a convenient way to review your photos archive library. All the media types like Live Photos, Videos, Portraits seem to work with the import. As does People and Pets.

Tips on using Migrate Guru to move a WordPress Multi-site with FTP


I wanted to move a WordPress Multisite from Digital Ocean to a Raspberry Pi running on my LAN. The total size of the sites was just over 1 GB. After checking Google, it seems the Migrate Guru plugin could do the job. After several failed attempts, it finally worked and here are my tips, and limitations:

  1. If you’re moving a Multisite, create a working Multisite with a couple of sites on your destination server before starting the migration. If you just have a standard site the migration failed for me with redirection errors.
  2. I had an ftp server setup on the destination server but I could never get Migrate Guru to work with FTP. Rather, install the Migrate Guru plugin on the destination server and copy the Migration Key into the Migrate Guru’s migration page on the origination server. This method seems to use http as the transfer protocol and you don’t need to enter any IP address or site URLs.
  3. The migration took around 3-4 hours to complete for my 1 GB and 8 web sites.

After the transfer, if you want to have the same primary site as the origination server, you’ll need to edit the wordpress database tables. Otherwise, the primary site will be the name you setup prior to the transfer.

You may also need to update your DNS records to point the host to the new IP address, create virtual host files in your Apache configuration as well as getting SSL certificates for all the hosts.

Tech Tip: Port forwarding WordPress on Raspberry Pi and DNS name resolution

I was following the excellent instructions on how to Build a LAMP Web Server with WordPress on my Pi running on my LAN. Everything worked fine with the internal LAN IP address. I wanted to have the web server accessible from the Internet and I thought all I had to do was setup port forwarding and point an A record on a DNS to the public IP address. But I was wrong.

While I could access the WordPress server using the external IP address, so port forwarding was working correctly, it would not respond when I used a host name set up in the DNS A Record. Turns out the reason is that Apache needs to be set up with a Virtual Host record. And it’s best to setup WordPress via the host name URL rather than the internal IP address. So, here are some modified steps to the above tutorial:

  1. Install Apache as per the tutorial. Stop there, don’t install the database and WordPress yet.
  2. Add an A Record with the host name to your DNS and setup port forwarding so the host name access your Apache server. You should forward ports 80 and 443 for http and https. More on this later.
  3. Now set up a virtual host on Apache. There are good tutorials on doing this here and here. Basically you want Apache to respond correctly when you use a host name rather than an IP Address. Once you’ve done this, test the accessibility by using a web browser with a VPN (or another method such as using your smartphone’s mobile data) to confirm that your web server is accessible from outside of your LAN. Note, some web browsers, eg Apple’s Safari on iOS and iPadOS will not connect to your web server on http. So use Firefox or Chrome to test.
  4. Now set up an SSL certificate so your virtual host is accessible using https. I use the instructions here. Test the connection using the VPN enabled web browser.
  5. Now that you’ve got your web server accessible via http and https from outside your LAN you can finalise the setup of WordPress.
  6. Continue with the installation of the Marian DB and WordPress. When it comes to setting up WordPress, using the VPN enabled web browser with the host name rather than the internal LAN IP address

You’ll now have an externally accessible WordPress server running on a Pi on your LAN. But if you run the Site Health test, it will suggest that the install the following php modules:
sudo apt install php7.4-gd
sudo apt install php7.4-curl
sudo apt install php7.4-xml (for DOM)
sudo apt install php7.4-mbstring
sudo apt install php7.4-zip
sudo apt install php7.4-intl
sudo apt install php-imagick

I also added <host name> to the /etc/hosts file and used certbot to add SSL/https access.

URL to show Google reviews

Took a bit of Googling to find, but here’s the answer on StackOverflow:


The answer is to find the placeid and use this stub

Or use the hack via Google Maps and getting the link to reviews via the embed map popup

How to upgrade the soldered SSD on your Macbook Mini and Studio

Apple has soldered the SSD storage onto the motherboard for years now. Here is detailed and succinct explanation of how you might upgrade the storage, and probably why you won’t want to do it yourself.