Too Busy To… Visual Refresh

Update: The changes described in this blogpost were reverted in September 2023 after I decided to move to a new platform and archive this site.

It has been 7 years since I last refreshed the look of this blog. Best practices for delivering a high quality (i.e. fast!) experience continue to evolve, and I wanted to use a more modern theme that would incorporate recent improvements than the default theme WordPress shipped in 2016. This time I picked a third party theme called Astra, which claims to be small and highly performant. I did look at WordPress’ latest (Twenty Twenty-Three), which has a completely redesigned customisation mode based around their blocks editing paradigm, but it was so different that it needed a great deal of customisation work, whereas Astra continues to use the older Customiser theme editor and was thus very easy to continue to use my preferred layout.

The new look is so similar to the old that I initially wondered if the change was too timid. Ultimately I decided it did give the site a more modern polish, and the wider content area works well for the photograph-based posts—now the majority of what I publish here. Unfortunately my other goal of further improving site performance, particularly on mobile, was unsuccessful, with the new theme scoring approximately the same as the old one on pagespeed.web.dev. Interestingly while Jetpack Boost was able to improve some scores this was at the cost of other metrics which are weighted higher in the overall score. This meant that using Boost actually decreased the overall score—I suspect this is the result of starting with a theme which is already well optimised, and so Boost has now been disabled.

Having chosen a lightweight theme, further page load speed improvements require reducing page generation times in the backend php, as well as eliminating javascript and css from being downloaded. Both of these can be achieved by using fewer WordPress plugins, but a WordPress site with nearly 20 years of content cannot simply turn off plugins, even if the most recent post which used them is from years ago, because when that post is part of a dynamic page (for example, when viewing a tag) then the content will not render correctly.

One last experiment to report upon before I close this post: php version. There are reports that version 8.1 of PHP features a dramatic performance improvement and my provider has recently provided a per-website PHP version selection feature and offers versions 7.4 and 8.1 alongside the default 7.3. I briefly tried version 8.1 but the scores were not significantly better for a single test, and it broke the Flickr Justified Gallery plugin which I used in many posts between 2015 and 2018. For the moment I have switched to PHP7.4 so that I am at least I am on a version which WordPress supports, and it gives me some time to figure out the best way to solve the plugin issue.

Replacing legacy web galleries while preserving links

Back in 2002 my friend, Kyle, wrote an easy to use image gallery in PHP called “phish”. It was so good that many other people on the same web server used it on their own site, and since we were all sharing a single student webserver, deploying it was a matter of copying the files from his (world-readable) home directory to your own, and he kindly licensed the code under the GPL to allow us to do that.

Twenty years later phish was, until yesterday, still being used to display the older photographs on this website. The original code was written for PHP version 4, and over the years I had made minor fixes to keep it running on modern versions. These were published on GitHub to ensure I was complying with the original licence.

The PHP language keeps moving forward and the challenge of keeping such old code working meant I had been considering for some time how to modernise these older galleries. I evaluated a few options before settling on sigal as being the simplest to use, but then hit the problem of how to preserve my incoming links. The disadvantage of running your own software may be keeping up with maintenance, but the advantage is the control it gives you when it comes to replacement. In this case, I was able to replace the phish index.php with a new script which calculates the new location of the piece of content your web browser has requested and seamlessly redirects you. Having tested all the links I could find within my own site, it seems to work pretty well but please do let me know if you spot any problems.

So what about the next migration? Sigal generates static webpages rather than creating them on-the-fly for each request but the gallery theme (photoswipe) uses Javascript and CSS to display the images and provide the navigation. In the short term I hope that sigal will continue to be maintained by its author so I do not need to do the maintenance work. Longer term, whilst I currently have no experience with Javascript, I hope I can learn enough in the future to perform the same redirection trick for its gallery parameters (the #&gid=1&pid=3 after index.html) when the time comes.

Thanks for reading and you can now visit the new (old) galleries.

Synchronisation woes with macOS Mail.app Signatures

This blog post applies to macOS 12 (Monterey), other versions may differ.

It used to be that setting up a new computer involved the difficult choice of spending hours tweaking settings and trying to remember what arcane incantations were required to obtain the perfect setup, or cloning your old computer and importing years of cruft which quickly removed much of the sheen and speed. To its credit, Apple have been quietly chipping away at the configuration synchronisation for many years now, with Mail settings such as accounts, signatures and rules magically appearing on a new machine when you set it up. Typical of Apple’s slow-but-steady approach, it turns out that for Mail this is actually achieved via iCloud Drive so it is to some extent controllable via the toggle in Preferences➡Apple ID➡iCloud Drive➡Mail.

One reason that developers shy away from synchronisation is that it is a feature fraught with edge cases that make it deceptively hard to do reliably, and unreliable synchronisation is worse than none, at best leading to head scratching frustration and worse, loss of data. This was illustrated to me when my email signatures were failing to appear on a newly configured Mac. I was happy to import them manually but locating the correct place to put them was hard to track down, and iCloud Drive synchronisation meant that it took many attempts to get everything working.

The symptom of the problem was that all my accounts were showing up with 0 signatures. Moreover when I added one manually, it would disappear as soon as I quit Mail. iCloud Drive appeared to be working correctly, with all my other files present. In hindsight I suspect the download process was stuck but iCloud remains frustratingly opaque to troubleshoot and when even a reboot could not persuade the missing files to appear, it was time to attempt surgery.

Confusingly, Mail configuration is stored in multiple places. After much trial and error, my conclusion is that the iCloud synchronised files live in Library/Mobile\ Documents/com\~apple\~mail/Data/V4/Signatures/ (all paths relative to your home directory unless otherwise stated). However adding files to this directory did not fix the problem and at one point I tried deleting this directory and that deletion synchronised to another computer–be warned ⚠️ (Thank goodness for Time Machine backups.)

I was finally able to make signatures work again on the errant Mac by shutting down Mail, and then adding them to Library/Mail/V9/MailData/Signatures/. I believe I also disabled Mail in iCloud Drive but then I restored it afterwards and it did not complain. However on the second Mac where iCloud Drive copied down bad data, any files added to Library/Mail/V9/MailData/Signatures/ were removed the next time Mail started if Mail was enabled in iCloud Drive. Trying to convince iCloud this was a file newer than the server copy by editing the .plist file did not work. This was eventually fixed by copying the contents of Library/Mail/V9/MailData/Signatures/ to Library/Mobile\ Documents/com\~apple\~mail/Data/V4/Signatures/ and re-enabling Mail in iCloud Drive.

And so our tale of synchronisation woe has a happy ending. Credit to Apple for continuing to use text files for configuration, the ability to manipulate these via the terminal and easily restore them from a Time Machine backup were crucial to the successful outcome.

Apple News+ (UK) – A Review

Having caught up on my backlog of reading during lockdown, I decided to accept Apple’s offer of a free trial of their News+ service. The concept seems attractive for someone who would like to read widely without the great investment of time and money needed to take individual subscriptions to many publications. Unfortunately as I near the end of my month-long trial, I do not intend to continue with it.

The News+ “anchor-tenant” for current affairs in the UK is The Times. It had been my expectation that I could open the News+ app every day and peruse a digital newspaper, with all the in-depth articles and quality journalism that one gets that is so often missing from the 24/7 Internet news cycle. However the News+ service just seemed to give me access to a selection of online stories from The Times, with little to differentiate this offering from non-News+ providers such as The Evening Standard, The Independent or BBC News.

Some of these aforementioned providers have very aggressive advertising on their websites so even an advert-free reading experience would have potentially been a benefit, except News+ continues to display adverts, mostly terrible ones, in a way that seemed to maximise the interruption to the reading experience. In contrast, The Guardian app has the option to remove all adverts for £5.99 per month.

News+ also offer a selection of electronic magazines on a wide variety of topics. Some of these magazines are natively formatted for the app which offers a pleasing reading experience on screens both large and small (such as a phone). Sadly the majority I am interested in are just PDFs. Many local libraries (including my own) already offer free access to e-magazine services that include what are termed digital replicas of paper magazines so there is little incentive to subscribe just for the magazines.

Website Changes: 2004–2014

Over the Easter break I spent some time making changes to this blog so that the posts from 2004 through to 2014 are displayed in the style in which they were originally posted rather than the current theme. This might seem like an odd thing to do: these old designs do not conform to modern layout standards, nor are they optimised for the typical screen resolutions in use today. However, as I looked through the older posts, some of them had visual oddities where the original formatting had not translated properly to a new theme, and even when the formatting was OK, there was something odd about reading text written 15 years ago but presented in an up-to-date way.

Method

I was able to implement this by creating a directory structure for the older years and populating it with static files for the older posts. The default WordPress configuration means that if these files and directories exist then they are served instead being given to WordPress to render dynamically. The easiest way to generate the static pages is to use the Preload setting of the WordPress Super Cache plugin, then copy the files it generates from wp-content/cache/supercache to the correct location. Before doing this you should review your theme to make sure that any time-sensitive dynamic content (for example, an instagram feed) is turned off, otherwise the generated pages will remain stuck with today’s content which which may look rather odd in a few months time.

One problem I encountered is that my initial approach broke some of the auto-generated year archive pages (e.g. /tooBusy/2005). The monthly archive pages were produced consistently, but the year ones were sometimes missing. I used the curl command to fill in the missing ones, but it also highlighted that any private posts will no longer appear in these year and month archive pages when you are logged in, although they will be shown in other views such as tags and categories.

Executing this for posts using two older themes, presented a slightly harder problem. I did not want to reconfigure my live website while I experimented with this setup, so I spun up a copy of WordPress on my laptop using Docker and loaded into it a backup of my live website. I then used the WP2Static plugin which, in addition to generating the files, can also post-process them to change any references to the web server running on my laptop to the correct one.

I reviewed many, but not all, of the generated files—if you spot any problems, please let me know. Getting a good quality result using an offline copy of the website took considerably more time and effort than I hoped, but looking through those older posts I am struck by how much better many of them look in their original style, while I find the current theme to be equally good for more recent posts. WordPress continues to offer a first-class writing experience for new posts, and the fact that the same software is still running this blog after 16 years is a triumph of longevity and backwards compatibility. The existence of practical solutions for migrating away from it are just another point in its favour.

MacOS Keyboard Shortcuts for Terminal Users

Despite its reputation for flashy graphics, macOS has a number of nifty features and shortcuts for terminal users. Here are some of my favourite keyboard shortcuts within the Terminal application itself:

  • ⇧⌘a (“shift-cmd-a”) to copy the output of the last command.
  • ⇧⌘v (“shift-cmd-v”) to paste the currently selected text.
  • ⌃⌘v (“control-cmd-v”) to paste escaped text.

The following keyboard shortcuts work in other applications:

  • ⌥⌘c (“option-cmd-c”) in Finder will copy the path to the selected file(s) (via @scriptingosx).
  • ⇧⌘. (“shift-cmd-fullstop”) toggles show hidden files, even in file open/save dialogs (via @howardnoakley).
  • ⌃t (“control-t”) transposes the two characters to the left of the cursor (via @eWhizz).

While testing the copy & paste shortcuts in this post, I also discovered—after 15 years of being a Mac user—that Finder has the ability to show the current contents of the clipboard (Edit→Show Clipboard).

MacOS External Storage Setup

A combination of a growing volume of personal media from 24+ megapixel cameras/4k HD video-recording phones, the switch to smaller solid-state internal drives, and the increasing life-span of our desktop computers, means that at some point you are likely to find yourself needing to offload data to an external storage device. Having gone down this path earlier in the year I thought I would share my experiences with the WD My Book Duo.

Continue reading “MacOS External Storage Setup”

The complexities of Apple’s Photos.app

Since I have recently written about and recommended multiple Extensions for Apple’s Photos.app, I thought I would share a link to this article by the author of the RAW Power application on what happens “under the covers” when using an Extension. It also covers the difference between an Extension and the “Edit With..” functionality. What is happening is far more complex than you might imagine and will probably explain various inconsistent behaviours you may have observed.

Blog news: self-hosting photographs

A few months ago I noticed that the home page of this site was taking multiple seconds to load. Common wisdom is that a “good” loading time is under 200ms, and even though a photo blog such as this might be a bit slower than a text-heavy site, multiple seconds is just too long to wait.

The best lead I had as to why this was taking so long was the comment inserted by the WP Super Cache plugin at the bottom of every page recording how long it took to generate in seconds. This was frequently more than 3 seconds which suggested that the problem was either my web server being too slow or a problem with my WordPress setup. Discounting the first as unlikely, I did some reading up on WordPress performance-tuning. The most practical advice was to minimise the number of plugins you use, and turn off each plugin in turn and check the effect on load-time before and after. I use few plugins but had been fond of Flickr Justified Gallery for displaying my Flickr-hosted photographs, and of course this was the culprit. The problem is not the plugin itself but Flickr’s own API—generating each gallery requires a query to Flickr to retrieve the list of photos in the album.

My preferred solution was to host my own images. This blog is 14 years old now and as I learned last year, third party services can disappear or change unexpectedly. Sadly the built-in gallery layout with WordPress 4.x remains an old-fashioned looking grid of square thumbnails that can fail to represent the underlying photograph properly (example). The JetPack add-on comes with a more attractive gallery layout but automatically uploads and serves all your images from their servers, which has its own downsides.

I looked at a number of third-party gallery plugins but anything outside the WordPress core also has the same “third-party risk” as Flickr: the code could stop working in the future, breaking all my old posts. None could also match the slick efficiency of Flickr’s upload workflow for optimising, arranging and captioning images. Fortunately while I was investigating this, WordPress released their new Gutenberg Editor. This comes with a new Gallery, the first version of which was a bit buggy but has the modern look that I wanted, and has improved over the last few months. (At time of writing there remains a bug where clicking on any photo in a gallery displays the first photo in the gallery not the one you clicked on. This is due to be fixed in mid-January.)

Switching to the new gallery improved page-generation times but without Flickr to optimise my images, I need to do this prior to upload to keep page-load times acceptable. This involves a two-step process:

  1. Use ImageMagick to resize images to no more than 2048 pixels on their longest edge: mogrify -resize 2048x2048 *.jpg (be careful, this changes the original files!)
  2. Reformat to be progressive JPEGs and apply lossless optimisation. There are a number of tools that can do this but ImageOptim is an efficient open-source drag-and-drop option for MacOS.

The final tweak, as recommended by Google’s PageSpeed Insights tool, was to defer offscreen images. This should make the initial page render faster by not loading images that are not yet viewable, and was already available as part of the Jetpack add-on (Lazy Load Images).

Software Review: On1 Photo RAW 2018

On1 Photo is one of the many editing applications I use to process my photographs. I have previously written about my journey from using a single application (Apple’s Aperture) to many so an update post about the latest version seemed overdue. [Due to a delay in publishing this article, RAW 2019 is now available and 2018 is no longer the latest version!]

The upgrade from On1 Photo 10 to On1 Photo RAW had been a bit bumpy. The new features were great but some older ones had not made the transition. While I did not directly experience too many bugs, there were frequent bug-fix releases with the consequence that it seemed like every time the program was opened it wanted to update itself, interrupting my photo editing session. Consequently I did not rush to upgrade to the 2018 version when it was announced, the new features were not initially compelling and the current version was working well enough.

A few months ago I received a significant discount offer to upgrade. (This was before On1 had announced the 2019 version.) I also noticed that their most recent point release (free upgrade within the 2018 version) had added the ability to manage RAW+JPEG pairs in Browse.  Since this is how I shoot, I had found managing the sets of files separately to be tedious and been looking for a better file management solution.  I was also looking forward to trying out the panorama feature since I capture them too infrequently to invest in dedicated panorama software.

Immediately after starting with Photo RAW 2018 I realised that this was a more significant upgrade than I had expected. The interface felt comfortably familiar but also subtly tweaked to be more streamlined to use. The performance was significantly better too—I could not help feeling that this was how Photo RAW should have been at release, and had now arrived after 18 months of feedback and iterative improvements. 

If you were disappointed with the initial release of On1 Photo RAW then I can thoroughly recommend the upgrade to the 2018 version if you have not settled on some other tool instead. I have not upgraded further to the 2019 version, for similar reasons to why I did not upgrade to 2018 at the beginning. I am also waiting for Luminar 3 to be released since its promised libraries feature is very similar to the browse functionality that I use extensively in On1 and it will be interesting to compare them before committing my money. If you have yet to try On1 Photo RAW then their extensive collection of video tutorials is the best starting point—they can really help you understand how to get pleasing results from it.

Photo Editing Application Round Up

The use of Adobe Photoshop® to edit photographs is so ubiquitous that to photoshop became a verb. Photoshop is an incredibly powerful image manipulation program for which the only limit is your imagination, or possibly your knowledge of how to drive it. Given then the maturity of the market, a surprising number of new applications have appeared in the last 18 months. Many of these delineate themselves from the metaphorical 800lb gorilla by providing a very different user-interface paradigm to that of Photoshop, often the “filters” approach popularised by Instagram. This has enabled them to appeal to the large and rapidly growing market of casual photographers for whom the cost of Photoshop’s monthly subscription model is unsuited.

Of the applications I have tried, each one has its strengths and are continuously improving. Consequently I now have a toolbox of different apps I use when when editing a photos but fortunately Apple’s Photos.app makes it very easy to call upon each one as the situation demands.

DxO OpticsPro for Photos: A specialist application with just three functions that earns its place for its tremendous noise reduction. The lens correction and haze removal can also be very useful, and the small number of functions make it quick and easy to use.

RAW Power: I have previously written about this application and continue to find it indispensable for adding advanced RAW editing facilities to Photos.app.

On1 Photo RAW: This is currently my primary tool for comparing and culling photos prior to loading into Photos.app, and occasionally when selecting for publication too. It has a great “Compare Mode” for comparing an arbitrary group of multiple images side-by-side full-screen—a feature that Apple removed from iPhoto in 2010 and still has not been restored in Photos.app. This is also the only tool to provide an edge-detecting brush for creating masks. 1 The filter-based editing approach can produce some impressive images but knowing which filters will achieve the desired result requires considerable retained knowledge acquired through experimentation or watching On1’s excellent and extensive selection of tutorial videos.

Luminar: Similar in concept to the Effects module On1 Photo RAW this provides editing through the paradigm of tuneable filters, which can be masked and stacked to produce an output that ranges from subtle enhancement to heavy stylisation. 2 Luminar wins its place in my toolbox because the filters and presets are more accessible than those in On1—it is easy to see what needs to be done to a photo to improve it and choose the appropriate filter to achieve that. Another reason to like Luminar is that while it is now available on multiple operating systems, its native Mac origin means it seems to integrate much better with the MacOS than On1. 3

Polarr's approach to editing is closer to that of Photos.app: a series of sliders grouped into adjustment blocks of a technical theme. The controls are significantly more sophisticated than those in Photo.app and it also allows some adjustments to be applied to selected areas (masking). There are some interesting presets of the “highly stylised” variety. The face detection is impressive but the automatic enhancement is completely over the top to the point where it noticeably changes the features of the subject. Overall it is an impressive app, but except for the presets and face detection it requires technical skill to understand how to get the best out of it and I do not find myself reaching for it very often.

All of these apps, except RAW Power and DxO OpticsPro for Photos, are available for Windows as well as MacOS.

  1. Disappointingly the previous version, On1 Photo 10, had even more powerful masking tools.[]
  2. Both Luminar and On1 also have an object removal tool that makes automatic what, a few years ago, would have taken hours of careful cloning and puts the repair tool in Photos.app to shame.[]
  3. Specifically, On1 uses a Windows-style installer instead of just being copied to the Applications folder. This became tedious when they were releasing monthly updates. I also suffered a few months where the Photos.app extension just failed to work with an “Unknown Error”.[]

Repairing broken links on this site

Whilst browsing the Google Search Console for this site I noticed that some of my older image galleries were returning errors. This gallery is run by 15 year old PHP code that I occasionally have to hack to keep running on newer versions of PHP so it was not a complete surprise that it might need some fixing. I should pay more attention to webserver upgrade notices though as the logs indicate it has been broken since 1st October.

The error was a bit puzzling at first:
PHP Parse error: syntax error, unexpected end of file
but eventually a helpful StackOverflow page made me realise that I needed to replace all instances of <? with &lt?php and the problem was solved.

During testing of the fix I found a more serious problem. All my links to picasaweb albums where I had hosted my photos from 2008 and 2009 were dead. This was unexpected since Picasa was run by Google and even though they replaced the service with Google Plus/Photos, I knew all my photos and albums were still online at the latest incarnation of Google’s service and I had trusted that Google, a company who place high importance on links for generating their search results, would not break links. It turns out that my trust was mis-placed as Google had broken some links but not others. Any link containing a username was broken but a userid would still work. So, if I could find my user id I could restore the links. Fortunately my Picasa user id turned out to be the same as my Google Plus user id, and because this was only a small number of posts over a 2 year period I could work through each one and replace the user name with that id to repair the link. There were a few direct links to photos that I was unable to repair because the URL did not contain my username.

These problems make me want to reconsider whether my current photo hosting solution with Flickr is the right one. While WordPress has improved since 2015, and has add-on features to make photograph-heavy websites go faster, those add-ons are still third-party integrations so these potential problems of what is known as “link rot” remain. I have recently been thinking about some of the other disadvantages of using WordPress, but I shall leave those for another post.

Configuring SPF for toobusyto.org.uk

As of last week, the toobusyto.org.uk domain is now configured with a Sender Policy Framework (SPF) DNS record. This is a special type of DNS record which identifies which mail servers are allowed to send mail on behalf of toobusyto.org.uk users.

The aim of SPF is to prevent the unauthorised impersonation of users, a tactic frequently used by spammers. In practice it is not reliable because it can cause problems for a number of legitimate use cases related to mail forwarding, including mailing lists. In fact, Google explicitly recommends configuring an SPF record for “soft” failure rather than hard failure because of these issues.

The record was easy to setup once I realised which servers I needed to include. I send mail from toobusyto.org.uk directly via mail.toobusyto.org.uk, which is a CNAME to another system, and occasionally from Gmail’s web interface. Google have clear instructions on how to permission the latter but use of CNAMEs in SPF is discouraged to prevent receiving servers needing to perform an excessive number of DNS lookups so it is necessary to hardcode the name of the target of the CNAME. There is a risk the two can become out of sync but hopefully this is mitigated by the proximity of the two records in the BIND file. You can query the current record using your favourite DNS client but for the record the initial setup is:

; SPF record
toobusyto.org.uk.  IN TXT "v=spf1 a:saturn.retrosnub.co.uk mx include:_spf.google.com ~all"

The result is that Gmail can now successfully authenticate me as a sender and for many users no longer shows a red question mark next to my name. Some experimentation has shown that the red question mark can still be present where I have emailed someone@their.domain.com and he or she forwards to a Gmail account because their.domain.com is not authorised to send mail on behalf of toobusyto.org.uk. This is actually the no worse than those users experienced prior to the configuration of the SPF record and some quick research turned up some forum posts that indicate there are potentially steps email forwarding services can do to mitigate this, although it was not clear whether the mitigation was feasible and/or effective.

RAW Power for MacOS

One of the power features lacking in Apple’s Photos application is the ability to tweak the built-in conversion from RAW to JPEG. The now-discontinued Aperture application allowed manual control of these RAW conversion settings giving the photographer the ability work with more of the captured data to unlock hidden detail without needing a separate specialist application.

RAW Power is a Photos extension that enables this fine-tuning from within Photos. I learned from a YouTube interview with the Developer that he is the former dev lead for Aperture, having left Apple over a year ago, which suggests to me that Apple will likely cede advanced editing functionality to third party developers as I previously speculated.

As a tool with a very specific purpose, its focus makes it simple and effective to use. The interface is clearly laid out and performance nimble, and if it becomes apparent that RAW modifications are not able to improve the photo then you can cancel your edits and return to Photos with one-click.

RAW Power currently costs £9.99, and although this is labelled as promotional pricing, it is my opinion this represents very good value.

iPhone migration: restore from backup or setup from scratch?

In moving to my fifth iPhone I decided it was time to try a fresh install instead of transferring state from my previous one. Apple’s transfer process has always worked works seamlessly but that Star Trek-like transportation of your old phone to the new makes the new one seem, well a little less new somehow. Previously I would have feared losing something small but vital by not using the transfer process but with so much now synchronised between devices by iCloud, it seemed that the most painful and important items were covered. My willingness to experiment was also mitigated by the knowledge that if it all went wrong I could still re-install the new phone from my old backup.

Without the need to wait for a gigabyte of data to be transferred to the new phone, I was up and running very quickly and enjoyed seeing what differences there are between an out-of-the box configuration and my own. With the exception of turning off the sound and vibration notifications for new email, I have customised very little to start with: I want to see if there are any settings or features I have previously overlooked because of some decision I made 7 years ago. Working through my list of apps and choosing to only reinstall those I know I have used recently was also enlightening—there were applications I had forgotten existed buried in never-opened folders, and including some that now crash on startup. I noticed others that are no longer being updated but the developers have instead issued a whole new app instead. I learned that the telltale sign for this is when you tap on the application in your “purchased” list and it fails to display anything about it.

Having chosen which apps would survive the migration and downloaded them all, the main pain point was having to re-authenticate in all of them. The reduced number of apps kept this manageable and I would guess about 50% enabled the use of iCloud Keychain which made it a two-tap process. Given the tedious and error prone nature of typing in a complex password onto a phone keyboard I am shocked that the other 50% do not enable this. Those apps which forced me to lookup and retype my password are certainly strong candidates for deletion if there is an alternative. 1

By not restoring from backup, any applications that store state locally and not in the cloud would lose their data. I was a little worried about my Angry Birds progress but then realised I had not played the game in a very long time anyway, and so far I have discovered only one application which stores data I would like to keep. It is a free app and its paid for version supports data export, which seems fair enough. WhatsApp messages were restored from its own iCloud backup (which it performs nightly) but I did lose my SMS and iMessage history (going back to 2008). Recent iMessages are on my mac anyway and after reviewing the older messages they were all very temporally contextual—“I am here / outside, where are you?”—type stuff. It is noticeable how much longer messages have become recently, perhaps an inevitable consequence of removing the 160 character limit of SMS.

In conclusion, unless you have apps or games that depend on local data, setting up from scratch was not at all painful and it felt really good to have a spring clean. Deleting something always requires metal energy to assess its value, or downside of its loss, and with storage so cheap it is rarely worth the effort. Consequently we accumulate bits and bytes rather too easily, and sometimes a platform migration is a good moment to assess what is no longer required, and start afresh.

  1. Anecdotally, many of those which failed to implement keychain were companion apps from established non-digital companies, for example, airlines and hotel chains. Developers competing for users on the strength of their app alone were far more likely to have implemented it.[]