Retrieving the Time Machine Estimated Full Backup Size

Another handy little magic spell for MacOS Sonoma’s Time Machine tool is…

log show --predicate 'subsystem == ""' --info | grep "Estimated full backup will"

…which – when entered into a suitable Terminal instance – will print out Time Machine’s recent estimates of the storage costs of a full backup…

2024-05-02 06:46:35.507588+0100 0x3c5be8   Info        0x0                  291    0    backupd: (TimeMachine) [] Estimated full backup will contain 3113124 files (8.91 TB) from all sources
2024-05-02 07:46:49.802454+0100 0x3cd657   Info        0x0                  291    0    backupd: (TimeMachine) [] Estimated full backup will contain 3113163 files (8.91 TB) from all sources
2024-05-02 08:46:57.526626+0100 0x3d611b   Info        0x0                  291    0    backupd: (TimeMachine) [] Estimated full backup will contain 3113223 files (8.91 TB) from all sources
2024-05-02 09:47:03.731963+0100 0x3e04eb   Info        0x0                  291    0    backupd: (TimeMachine) [] Estimated full backup will contain 3114585 files (8.91 TB) from all sources
2024-05-02 10:47:35.409635+0100 0x3ecb04   Info        0x0                  291    0    backupd: (TimeMachine) [] Estimated full backup will contain 3116304 files (8.91 TB) from all sources

All very useful when shopping for a new target disk of if your monitoring your storage growth.

Getting Red Hat Linux 5.2 up and running on 86Box

A somewhat oddly rendered Feb 2024 in Netscape 4 on Red Hat Linux 5.2. I suppose we’re lucky a 26 old browser can access google at all..!


One of my longer-running goals for Period Sites in Period Browsers was to include a good number of non-Windows hosted web browsers and the first stage in that is the creation of a functioning instance of the operating system hosted within an easily managed virtual machine. Unfortunately, whenever I’ve tried to install premillennial versions of linux within QEMU, I have categorically failed.

And, given the lack of guides on the internet, I’m not the only one.

In this guide we’re going to install and configure a working (albeit non-perfect) version of 1998’s Red Hat Linux 5.2. By the end of this guide we will produce a Red Hat Linux 5.2 install with a working network connection and functioning XWindows/Desktop environment.

Continue reading

Counting Chrome Tabs on MacOS (Or, I have an open tabs problem!)

Another aide-mémoire; open Chrome tabs can, on MacOS, be counted via the following incantation. This particular incantation will pull the tab count from all open windows – minimised or otherwise – without the need to activate Chrome in any way.

osascript -e{'set text item delimiters to linefeed','tell app"google chrome"to url of tabs of windows as text'} | wc -l

Which, when run on my currently open set of tabs, comes back with a number slightly higher than 4,000.

Continue reading

Losslessly Joining JPEGs with JPEGTran

The Introduction

On occasion, you may find that you need to join – or tile – two or more JPEG images into a single image and that you need to do so without the usual JPEG degradation that comes from saving an edited JPEG again and again and again. Fortunately, under some circumstances, there is a solution – JPEGTran from the Independent JPEG Group.

The Images

Our sample images are two tiles taken from The Map Project – in this case map Yorkshire Sheet CLXXIV.SW, a 1950s map of south-west York in the United Kingdom.

Continue reading

Disabling Windows XP Ballon Tips

And it’s time for an aide-mémoire for a fact that seems to be disappearing into the ether.

Windows XP bubble tips can be disabled by:

  • Opening Regedit
  • Navigating to HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
  • Creating a new String value of ‘EnableBubbleTips’.
  • Setting this value to ‘0’.
  • Restarting Windows.

Headless RDP for Fun and Profit

This solution has been checked on Windows 2019 fully patched as-of spring 2022. Other Windows variations may require tweaks. Those on *nix-based platforms looking to create a headless connection to a Windows host should skip the Windows related initial instructions.


Some applications are just not suited to running as a Windows Services – indeed some applications, such as those which require a full Windows desktop context, cannot be run as a plain Windows Service. One of the possible ways to get around this limitation is to run them under a fully scripted remote desktop instance – the remote user receiving a standard Windows Desktop experience with all the pros and cons this entails – however the default client available on Windows does not allow such a headless connect. Fortunately, newer releases of Windows – including Windows 2019 and Windows 10 – are able to run several versions of Linux as applications.

Continue reading

Time Machine

Apple’s Time Machine is a neat little utility to automate onsite backups. However its machinations are, like so many of Apple’s products, completely opaque to the end user using the standard user interface and so troubleshooting can be rather difficult. Fortunately for us, this is one of those circumstances where Terminal commands can come to the rescue.

Our first magic spell is…

log show --predicate 'subsystem == ""' --info

This will show logged message from the past and can be useful if you’re trying to troubleshoot an issue that’s already in progress. Run this command and macOS will display the last few weeks of Time Machine logs before exiting

The second magic spell is…

log stream --style syslog --predicate 'senderImagePath contains[cd] "TimeMachine"' --info

This command will run – and will remain running until you explicitly exit it – and will display any log messages that Time Machine writes out to the system log.

Prettier Blog Listings

The Jekyll’s introductory tutorial suggests using…

  {% for post in site.posts %}
      <a href="{{ post.url }}">{{ post.title }}</a>
  {% endfor %}

…as liquid code to display a programmatically generated, bullet-pointed list of blog posts titles each with a link to the post in question.

However, a more useful list of blog posts titles can be generated with a little extra effort.

The following code block will generate a bullet-pointed list of posts with a link to the post in question. Next to the post title it will add the canonical date of the post – formatted in a human friendly style – and, below, will append a generated excerpt from the post to tease any potential reader.

  {% for post in site.posts %}
      <a href="{{ post.url }}">{{ post.title }}</a>  ({{| date: "%B %d, %Y" }})
      {{ post.excerpt }}
  {% endfor %}

The end result is something like this:

  • Photography (January 30, 2019)
    As part of moving away from other people’s flaky, terms-terms-of-use changing sites (cough… Flickr!) I have started to add various image galleries to this site.

Jekyll Problems

The Jekyll introductory tutorial encourages you to create all pages with a header block that includes the key pair ‘title: A Page Title’. An unfortunate downside to this is that, under the default theme, every page is now added to your site’s auto-generated header – something that, as your site grows, you are unlikely to want to do.

Fixing this is simple; to exclude a page from the site’s header just omit your ‘title: A Page Title’ key pair.

For example:

layout: page
title: Blog
permalink: /blog/

… would add the page ‘Blog’ to the header and…

layout: page
permalink: /blog/

…would see it omitted.