Reading view

There are new articles available, click to refresh the page.

Commemorating the centenary of John Singer Sargent’s death: 2 London

By 1880, just two years after he had completed his training under Carolus-Duran in Paris, John Singer Sargent was in the ascendant. His skills were in growing demand for the portraits of the rich and famous, and he also took time to travel and paint abroad, mainly in Spain and Italy.

sargentspanishdancer
John Singer Sargent (1856–1925), Spanish Dancer (1880-81), other details not known. Wikimedia Commons.

When he was in Spain in around 1880-81, he painted this Spanish Dancer.

sargentvenetianglassworkers
John Singer Sargent (1856–1925), Venetian Glass Workers (1880-82), oil on canvas, 56.5 × 84.5 cm, Art Institute of Chicago, Chicago, IL. Wikimedia Commons.

During a visit to Italy in the period 1880-82, he painted these Venetian Glass Workers.

In early 1883, Sargent made overtures to one of the best-known young socialites in Paris, Virginie Amélie Avegno Gautreau, a French creole immigrant from New Orleans, who had married the French banker Pierre Gautreau. Her beauty was the talk of the town, and numerous artists had asked to paint her portrait as a means of promoting their own careers. The first request that she accepted was Sargent’s, in February 1883. She proved a reluctant sitter, and it wasn’t until June of the following year that Sargent was able to pin her down in her estate in Brittany to start preparatory studies. He didn’t complete the finished work until well into the autumn.

John Singer Sargent (1856–1925), Portrait of Madame X (1884), oil on canvas, 235 x 110 cm, Metropolitan Museum of Art, New York, NY. Wikimedia Commons.

We can’t see his original version of Madame X, as its reception drove him to make alterations to tone down its overt eroticism. Her pose was considered sexually suggestive, and one strap of her gown had fallen down her shoulder adding to the image’s sexuality. It caused a scandal when exhibited at the Salon, and was lampooned mercilessly in the press.

Sargent sought temporary solace flirting with the fashion for Impressionism.

Claude Monet Painting by the Edge of a Wood ?1885 by John Singer Sargent 1856-1925
John Singer Sargent (1856–1925), Claude Monet Painting by the Edge of a Wood (c 1885), oil on canvas, 54 x 64.8 cm, The Tate Gallery (Presented by Miss Emily Sargent and Mrs Ormond through the Art Fund 1925), London. © The Tate Gallery and Photographic Rights © Tate (2017), CC-BY-NC-ND 3.0 (Unported), http://www.tate.org.uk/art/artworks/sargent-claude-monet-painting-by-the-edge-of-a-wood-n04103

He had first met Claude Monet in 1876, but it’s thought that this painting of Claude Monet Painting by the Edge of a Wood was made in 1885, when they were painting together at Monet’s house in Giverny. At the right is Alice, Monet’s wife.

That year Sargent decided to move his portraiture studio away from the scandal in Paris, to London.

John Singer Sargent, Carnation, Lily, Lily, Rose (1885-6), oil on canvas, 174 x 153.7 cm, The Tate Gallery, London. WikiArt.
John Singer Sargent (1856–1925), Carnation, Lily, Lily, Rose (1885-6), oil on canvas, 174 x 153.7 cm, The Tate Gallery, London. WikiArt.

By 1886, Sargent had fully settled into his London studio, and the following year had established his reputation, which was reinforced when he exhibited Carnation, Lily, Lily, Rose at the Royal Academy. This was bought immediately by the Tate Gallery. From then until he closed his studio in 1907, he was the leading portrait painter in London. In spite of his obvious success, he was among those who were unhappy with the Royal Academy, and was a founding member of the New English Art Club in 1886.

His uncommissioned work often took him plein air and with progressively loosening style. He visited France frequently, attended Impressionist exhibitions, and developed his friendship with Monet. His informal works were often loose bravura gatherings of marks that appear to have been painted very quickly indeed.

John Singer Sargent, A Gust of Wind (c 1886-7), oil on canvas, 61.6 x 38.1 cm, Private collection. WikiArt.
John Singer Sargent (1856-1925), A Gust of Wind (c 1886-7), oil on canvas, 61.6 x 38.1 cm, Private collection. WikiArt.

This is shown well in Sargent’s virtuoso Gust of Wind from about 1886-7, which compares with Claude Monet’s La Promenade from 1875.

By the end of the 1880s, his critics in England considered him an Impressionist, but Monet thought he was still under too much influence from Carolus-Duran to be considered Impressionist. His portrait business prospered: in 1887-8 he toured the US and gained over twenty important commissions, including that of Isabella Stewart Gardner, a major patron of the arts in Boston, where twenty-two of his paintings were shown in his first solo exhibition.

sargentbunker
John Singer Sargent (1856–1925), Dennis Miller Bunker Painting at Calcot (1888), oil on canvas mounted on masonite, 68.6 x 64.1 cm, Terra Museum of American Art, Chicago, IL. Wikimedia Commons.

Sargent met Dennis Miller Bunker (1861-1890) in November 1887, during that visit to the USA, when Bunker was a rising star of American Impressionism. Like Sargent, Bunker had trained in Paris, and the two became good friends. Bunker stayed with Sargent in England in the summer of 1888, when Sargent painted him at work, in Dennis Miller Bunker Painting at Calcot. Bunker tragically died of meningitis just two years later, at the age of only 29.

John Singer Sargent, Morning Walk (1888), oil on canvas, 67.3 x 50.2 cm, Private collection. WikiArt.
John Singer Sargent (1856–1925), Morning Walk (1888), oil on canvas, 67.3 x 50.2 cm, Private collection. WikiArt.

Sargent painted this Morning Walk in 1888.

sargentoutofdoorsstudy
John Singer Sargent (1856–1925), An Out-of-Doors Study (c 1889), oil on canvas, 65.9 × 80.7 cm, Brooklyn Museum, New York, NY. Wikimedia Commons.

Paul César Helleu (1859–1927) first met Sargent when the former was a precocious student at the École des Beaux-Arts in 1876. Sargent was the first person to buy one of Helleu’s paintings, for which he paid the huge sum of a thousand francs. Helleu and his wife Alice remained close friends with Sargent, and the couple often appear in his paintings. When he painted them in An Out-of-Doors Study in about 1889, they had been married three years.

John Singer Sargent, La Carmencita (1890), oil on canvas, 54 x 35 cm, Private collection. WikiArt.
John Singer Sargent (1856–1925), La Carmencita (1890), oil on canvas, 54 x 35 cm, Private collection. WikiArt.

On the evening of 1 April 1890, when Sargent was back in New York, he, William Merritt Chase and the famous Spanish dancer Carmencita met in Chase’s Tenth Street studio; she danced for them, and they sketched. On this occasion, Sargent opted for a more static pose in his La Carmencita (1890), with her hands at her hips, driving her bust out and her chin high, in assertive pride.

Demand for Sargent’s portraiture skills remained high during the 1890s.

sargentphelpsstokes
John Singer Sargent (1856–1925), Mr. and Mrs. I. N. Phelps Stokes (1897), oil on canvas, 214 x 101 cm, The Metropolitan Museum of Art (Bequest of Edith Minturn Phelps Stokes (Mrs. I. N.), 1938), New York, NY. Courtesy of The Metropolitan Museum of Art.

In 1895, two notable young residents of New York City married. He was Isaac Newton Phelps Stokes (1867-1944), a recent graduate of Harvard who studied architecture for three years at the École des Beaux-Arts in Paris, Sargent’s alma mater. He went on to co-found the architectural firm of Howells & Stokes, and was a pioneer in social housing. She was Edith Minturn (1867-1937), daughter of the shipping magnate Robert Bowne Minturn, Jr., and destined to become a philanthropist, socialite, and artistic muse.

A close friend decided that a good wedding gift would be a portrait of Mrs Stokes painted by the greatest of the age, John Singer Sargent. For various reasons this was delayed, but in 1897 the artist and the couple got together and Sargent started work. His original intention had been to paint Mrs Stokes wearing formal evening dress sitting next to an Empire table. However, he changed his mind and decided to paint her standing in informal walking attire next to a Great Dane. As he was reconceiving this in his mind, he turned to a portrait that had been donated to the Metropolitan Museum of Art by Sargent’s patron Henry Marquand in 1889: that of James Stuart, by van Dyck.

Unfortunately, Sargent was unable to find a suitable dog. Mr Stokes then “offered to assume the role of the Great Dane in the picture”, as he put it in his memoirs. The result puts Mrs Stokes in charge, as an example of ‘The New Woman,’ and her husband as a surrogate dog.

A primer on predicates for LogUI

All good log browsers provide tools to narrow down the log entries they display. Without those, it would be easy to waste all day wandering through tens of thousands of entries. One common tool provided by macOS, directly and in the log command tool, is filtering using predicates. Although LogUI provides easy access to simple predicates, to get the best from them, it’s worth digging a little deeper, as I do here.

Instant predicates

LogUI’s instant predicates filter log entries according to any of four basic predicate types:

  • subsystem, such as com.apple.sharing, the field shown in yellow in log extracts;
  • eventMessage, the text message listed in white/black at the end of each entry;
  • processImagePath, such as mediaanalysisd, shown in blue, the name of the process making that entry;
  • senderImagePath, such as libxpc.dylib, shown in red, the name of the process sending that entry.

These are quick to enter in the text box to the right of the popup menu in the window’s toolbar, but in many circumstances can prove too broad, and need narrowing down further. In other situations, you want to browse entries from two subsystems, or using a combination of criteria. The best way to do that is to write a short predicate. For single use, you can do that in the one-off predicate editor using the Set button.

When you want to reuse that, you can add it to the predicate popup menu using Settings Predicate (currently a bit kludgy).

Predicates

macOS can use predicates in other situations, most commonly for Spotlight search. If you’re interested in those, see Apple’s Predicate Programming Guide. Here I’ll describe predicates as they’re more commonly used to filter log entries, as they’re usually much simpler.

Each simple predicate consist of three parts:

  • the name of one of the fields in a log entry, such as subsystem or eventMessage. This sets where the filter looks in each entry;
  • an operator, which might be == for ‘equals’ exactly, or for text is commonly CONTAINS[c] for case-insensitive contains;
  • text or a numeric value to look for, such as “error” or 513. Only those entries equalling or containing (or whatever the operator means) this in the specified field will then be returned from the log and displayed.

Here are some basic examples.

eventMessage CONTAINS[c] "error"
entries will only be those with the text error in their message field.

subsystem == "com.apple.duetactivityscheduler"
entries will all have that text, ignoring case, but only that text, as the name of their subsystem.

subsystem CONTAINS[c] "com.apple.xpc"
entries will have any subsystem containing that text, which also includes com.apple.xpc.activity.

Fields

Although you can use any of the fields shown in LogUI (and some that aren’t), the most commonly used are, in order as they are shown in LogUI’s window:

  • eventType (red) – matches the type of event, such as logEvent (1024), traceEvent (768), activityCreateEvent (513), or activityTransitionEvent (514). Can be given as characters (case-sensitive) without quotation marks, or using the digits given in parentheses. Use these only with the operators == or !=, as they are treated as numbers rather than text.
  • category (green) – this matches the category, and varies according to subsystem. This is given as text in quotation marks, and is normally lower-case.
  • messageType (white/black) – matches the type of message for logEvent and traceEvent, and includes default (0), release (0), info (1), debug (2), error (16), and fault (17). Can be given as characters (case-sensitive) without quotation marks, or digits as shown in parentheses. Use these only with the operators == or !=, as they are treated as numbers rather than text.
  • senderImagePath (red) – this matches the text pattern in the name of the sender, which might be the name of a library, extension, or executable.
  • processImagePath (blue) – this matches the text pattern in the name of the process that originated the event.
  • subsystem (yellow) – this matches the subsystem specifier, e.g. com.apple.TimeMachine, given as text in quotation marks. You may find it best to use CONTAINS[c] rather than ==, to allow for differences in case and extended subsystem specifiers.
  • eventMessage (white/black) – for this, you specify a text pattern, or text, within the message, given as text in quotation marks.

Operators

The following comparisons and other operators are available:

  • == (two equals signs) for equality
  • != or <> for inequality
  • >= or => for greater than or equal to
  • <= or =< for less than or equal to
  • > for greater than
  • < for less than
  • AND or && for logical and
  • OR or || for logical or
  • NOT or ! for logical not
  • BEGINSWITH, CONTAINS, ENDSWITH, LIKE, MATCHES for string comparisons, using regex expressions when desired; strings can be compared with case insensitivity and diacritic insensitivity by appending [cd] to the operator, e.g. CONTAINS[c] means case-insensitive comparison
  • FALSE, TRUE, NULL have their expected literal meanings.

There are others as well, but you’ll seldom use them to filter log entries.

Building complex predicates

To see the scheduling and dispatch of background activities by DAS-CTS, you need to look at log extracts showing both their entries. Use the predicate
subsystem == "com.apple.duetactivityscheduler" OR subsystem CONTAINS "com.apple.xpc"
to do that. The first part of it includes those entries from DAS, and the second includes those for XPC and its relatives that run CTS. Using an OR between the two parts combines both sets of entries in the one extract.

To see the reports posted by XProtect Remediator, you need to look at those entries made by its subsystem that have the right category, using the predicate
subsystem == "com.apple.XProtectFramework.PluginAPI" AND category == "XPEvent.structured"
Using the AND operator ensures that the only entries shown come from that one subsystem, and they are given just that category.

Time Machine involves a combination of different subsystems and messages. To get a good overview of relevant entries, you can use
subsystem == "com.apple.TimeMachine" OR
(subsystem == "com.apple.duetactivityscheduler" AND eventMessage CONTAINS[c] "Rescoring all") OR
(subsystem == "com.apple.xpc.activity" AND eventMessage CONTAINS[c] "com.apple.backupd-auto") OR
eventMessage CONTAINS[c] "backup" OR
eventMessage CONTAINS[c] "Time Machine" OR eventMessage CONTAINS[c] "TimeMachine"

I’ve broken this down into separate lines, but you shouldn’t do that in the predicate. Taking it line by line it becomes simpler to understand. Use parentheses () to group each part of the predicate carefully as shown.

You can see other examples in the Help book for my free utility Mints: the Further Information pages towards the end give each of the predicates that Mints uses for its log extracts.

Quick summary

  • [field name] [operator] [text or numeric value]
  • common field names: senderImagePath, processImagePath, subsystem, eventMessage
  • common operators: ==, CONTAINS[c]
  • filter info: “text”
  • combine filters using AND, OR.

Commemorating the centenary of John Singer Sargent’s death: 1 Pupil

In the late nineteenth and early twentieth centuries, there were three dominant painters who flirted with Impressionism but retained conventional styles: Anders Zorn from Sweden, Joaquín Sorolla from Spain, and John Singer Sargent, an American expatriate who worked from studios in Paris and London. All three died in the 1920s, and this year we commemorate the centenary of Sargent’s death on 14 April 1925. This is the first in a series of six articles outlining his career with but a small and personal selection of his paintings.

Sargent was born to American expatriate parents in Florence, Italy, in 1856. He was educated at home and showed early skill in drawing. Already competent in watercolour at the age of 14, he saw many of the works of the great Masters during travels around Europe with his family. In 1874 he succeeded in gaining admission to the École des Beaux-Arts in Paris, where he was taught mainly by Carolus-Duran, and less by Léon Bonnat.

Although his initial enthusiasm was for landscapes, Carolus-Duran encouraged him towards portraiture, and his first significant portrait was accepted by the Salon in 1877. His talent was recognised by the critics, and he made friends with Julian Alden Weir and Paul César Helleu, who in turn introduced him to other leading artists of the day, including Degas, Rodin, Monet, and Whistler.

John Singer Sargent, Fishing for Oysters at Cançale (1878), oil on canvas, 41 x 61 cm, Museum of Fine Arts, Boston. WikiArt.
John Singer Sargent (1856-1925), Fishing for Oysters at Cançale (1878), oil on canvas, 41 x 61 cm, Museum of Fine Arts, Boston. WikiArt.

Sargent’s early style was realist, particularly in portraiture, and leaned towards Impressionism as seen in this painting of Fishing for Oysters at Cançale from 1878, but was quite distinct from the work of the leading Impressionists at that time. In the summer of 1878, John Singer Sargent had just completed his studies with Carolus-Duran, and went off on a working holiday to Capri, staying in the village of Anacapri, as was popular with other artists at the time.

Capri was still quite a select holiday destination then, and unspoilt. But getting a local model was tricky, because of the warnings that women were given by priests. History has proved those priests only too right in their advice. One young local woman, Rosina Ferrara, seemed happy to pose for him, though. She was only 17, and Sargent a mere 22 and just developing his skills in portraiture. Over the course of that summer, Sargent painted at least a dozen works featuring young Rosina, who seems to have become almost an obsession with him.

sargentdanslesoliviers
John Singer Sargent (1856–1925), Capri Girl (Dans les Oliviers, à Capri) (1878), oil on canvas, 77.5 x 63.5 cm, Private collection. The Athenaeum.

One, Dans les Oliviers, à Capri, above, he exhibited at the Salon the following year. A near-identical copy A Capriote, below, he sent back for the annual exhibition of the Society of American Artists in New York, in March 1879. The latter is now in the Museum of Fine Arts in Boston.

sargentcapriote
John Singer Sargent (1856–1925), A Capriote (1878), oil on canvas, 76.8 x 63.2 cm, Museum of Fine Arts Boston, Boston, MA. Wikimedia Commons.
sargentviewcapri
John Singer Sargent (1856–1925), View of Capri (c 1878), oil on cardboard, 26 x 33.9 cm, Yale University Art Gallery, New Haven, CT. Wikimedia Commons.

He also painted a pair of views of what was probably the roof of his hotel. In View of Capri, above, made on cardboard, Rosina stands looking away, her hands at her hips. In the other, Capri Girl on a Rooftop, below, she dances a tarantella to the beat of a friend’s tambourine. The latter painting Sargent dedicated “to my friend Fanny”, presumably Fanny Watts, who modelled for the first portrait that Sargent had exhibited at the Salon the previous year.

sargentcaprigirlrooftop
John Singer Sargent (1856–1925), Capri Girl on a Rooftop (1878), oil on canvas, 50.8 x 63.5 cm, Crystal Bridges Museum of American Art, Bentonville, AR. Wikimedia Commons.
sargentrosina
John Singer Sargent (1856–1925), Portrait of Rosina Ferrara (1878), further details not known. Wikimedia Commons.

Rosina appears to have danced for Sargent again, for him to paint her in Portrait of Rosina Ferrara, above, as a precursor to his later paintings of Spanish dancers. But of all Sargent’s paintings of Rosina, the finest portrait, possibly one of the finest of all his ‘quick’ portraits from early in his career, is another painted in oils on cardboard: Rosina Ferrara, Head of a Capri Girl, below.

sargentrosinaferrara
John Singer Sargent (1856–1925), Rosina Ferrara, Head of a Capri Girl (c 1878), oil on cardboard, 49.5 x 41.3 cm, Denver Art Museum, Denver, CO. Wikimedia Commons.

This he dedicated to “Hyde” (the artist Frank Hyde), and signed in 1878, while he was still on Capri. There are another couple of portraits he painted of a young woman during that summer on Capri. Although she’s in more serious mood, possibly even a little surly with ennui, I wonder if they also show Rosina Ferrara.

sargentheadcaprigirl
John Singer Sargent (1856–1925), Head of a Capri Girl 1 (1878), oil on canvas, 43.2 x 30.5 cm, Private collection. The Athenaeum.
sargentheadcaprigirl2
John Singer Sargent (1856–1925), Head of a Capri Girl 2 (c 1878), oil on canvas, 47 x 38.1 cm, Private collection. The Athenaeum.

Sargent left Capri, eventually returning to Paris and his inexorable rise to greatness, fortune and success. But that wasn’t the end of Rosina’s modelling career, not by a long way. Frank Hyde, to whom Sargent had dedicated a portrait of her, painted his own version a couple of years later.

sargentcarolusduran
John Singer Sargent (1856–1925), Portrait of Carolus-Duran (1879), oil on canvas, 116.8 × 95.9 cm, Sterling and Francine Clark Art Institute, Williamstown, MA. Wikimedia Commons.

Sargent’s famous Portrait of Carolus-Duran (1879) is not only his personal tribute to his teacher, but when it was shown at the Salon proved the foundation of Sargent’s own career as a portraitist.

John Singer Sargent, Fumée d'ambre gris (Smoke of Ambergris) (1880), oil on canvas, 139.1 x 90.6 cm, Sterline and Francine Clark Art Institute, Williamstown, MA. WikiArt.
John Singer Sargent (1856–1925), Fumée d’ambre gris (Smoke of Ambergris) (1880), oil on canvas, 139.1 x 90.6 cm, Sterling and Francine Clark Art Institute, Williamstown, MA. WikiArt.

He continued to travel in Italy and Spain, where in 1880 he painted Smoke of Ambergris, demonstrating what was to come beyond mere portraits.

Can APFS special files save storage space?

I’ve long been critical of some of the best-selling utilities for the Mac, that set out to perform deduplication of files by detecting which appear to be identical, and removing ‘spare’ copies. This is because APFS introduced clone files, and in the right circumstances those take up no space in storage, as their data is common and not duplicated at all. As it’s practically difficult to tell whether two files are clones, any utility or command tool that claims to save space by removing duplicates can’t tell you the truth, and in most cases won’t save as much space as it claims.

Claims made by those utilities are often exaggerated. This is because they calculate how much space they think they’ve saved by adding the sizes of the potential duplicates they have deleted. That’s not correct when a clone file is deleted, as that doesn’t actually free any space at all, even though the clone file has exactly the same nominal size as the original.

Benefitting from clone files

I’m delighted to see the eminent John Siracusa turn this on its head and finally make better use of clone files in his app Hyperspace, available from the App Store. Instead of deleting clones, his app can replace duplicate copies with clones, and so achieve real space savings. This comes down to simple arithmetic:

  • if you have two copies (not clones) of a file in the same APFS volume, the total size they take on disk is twice the size of one of them;
  • if you have two clones (not copies) of a file in the same APFS volume, the total size they take on disk is only the size of one of them, as its clone takes no additional space at all.

Hyperspace thus checks all the files in a selected folder, identifies which are identical copies, and (where suitable) will replace those copies (except an original) with clones, so saving real storage space.

I also think it has the most user-friendly payment scheme: download Hyperspace free of charge and check your Mac with it. If it doesn’t find sufficient savings, and you decide not to use it to replace any duplicates with clones, then it costs you nothing. If you want to reclaim that space, then you can opt to pay according to the amount of space it saves, by subscription, or with a one-time payment. On that basis, I unhesitatingly recommend everyone to download it from the App Store, and at least check their Home folder to see if it’s worth paying to reclaim space. You have absolutely nothing to lose.

In my case, perhaps because I tend to clone files using the Finder’s Duplicate command, the savings that it offered were of little benefit, but your Home folder could be different and release 100 GB or more.

Sparse files

The other space-saving special file type in APFS is the sparse file. Although it can bring great savings in storage space, that’s largely up to the app(s) that create and maintain the file, rather than the user. Devising an app that could go round converting plain to sparse files is harder, and risks incompatibility with those apps that access those files.

Fitting 285 GB into 16.5 GB

As a demonstration of how effective APFS special files are in saving disk space, I built myself a 100 GB partition (APFS Container) on an SSD and tried to fill it with clone and sparse files until I got bored.

At this stage, the 100 GB partition contains:

  • One 16.5 GB IPSW image file, with nine clones of it, created using the Duplicate command.
  • Eleven 10 GB sparse files and one clone, created using my app Sparsity.

Add those file sizes together and they come to 285 GB, yet the 100 GB partition only has 16.5 GB stored on it, and still has over 83 GB free. No compression is involved here, of course.

As the saying goes, there ain’t such as thing as a free lunch, and that free space could vanish quickly depending on what happens to those files. The worst case is for an app not to recognise sparse files, and write one to disk in plain format, so swallowing 10 GB at once. Editing the cloned files would be a more gradual way of their growing in size. Only changed data would then need to be saved, so free disk space would steadily fall as more changes were made to the clone.

Clone and sparse files are by no means unique to APFS, but they can be impressive, and above all they’re effective at reducing excess erase-write cycles that age SSDs, whatever you do with the storage they free.

I’m very grateful to Duncan for drawing my attention to Hyperspace, and to John Siracusa for an outstanding app.

Apple has released an update to XProtect for all macOS

Apple has just released an update to XProtect for all supported versions of macOS, bringing it to version 5292. As usual, Apple doesn’t release information about what security issues this update might add or change.

This version removes the macos_toydrop_b rule for MACOS.ADLOAD, and amends the rules for MACOS.ADLOAD.I, MACOS.BUNDLORE.MDPLST and MACOS.ADLOAD.IN.

You can check whether this update has been installed by opening System Information via About This Mac, and selecting the Installations item under Software.

A full listing of security data file versions is given by SilentKnight, LockRattler and SystHist for El Capitan to Sequoia available from their product page. If your Mac hasn’t yet installed this update, you can force it using SilentKnight, LockRattler, or at the command line.

If you want to install this as a named update in SilentKnight, its label is XProtectPlistConfigData_10_15-5292.

Sequoia systems only

This update has now been released for Sequoia via iCloud. If you want to check that manually, use the Terminal command
sudo xprotect check
then enter your admin password. If that returns version 5292 but your Mac still reports an older version is installed, you can force the update using
sudo xprotect update

I have updated the reference pages here which are accessed directly from LockRattler 4.2 and later using its Check blog button.

Reading Visual Art: 202 Rabbit & Hare

As today is the first day of April, it’s a double danger: as the first of the month you should say rabbit or white rabbit when you first wake up, and it’s All Fools’ Day as well. I have no hoaxes for you this year, I promise, but I do have rabbits, some of them white, and a few hares as well. Rabbits and hares are relatively infrequent in paintings, and where they do occur they seldom have any deeper reading.

Because they’re so familiar, they appear in animal gatherings.

boschgardenearthlydelightsltmid
Hieronymus Bosch (c 1450–1516), The Garden of Earthly Delights (left panel, detail) (c 1495-1505), oil on oak panel, central panel 190 × 175 cm, each wing 187.5 × 76.5 cm, Museo Nacional del Prado, Madrid. Wikimedia Commons.

In the left panel of Hieronymus Bosch’s Garden of Earthly Delights (c 1495-1505) is a curious mixture of real and imaginary creatures. There’s an elephant and a giraffe, both early depictions of those species, together with monkeys, brown bears, rabbits, and more, even a white unicorn drinking at the lake on the left.

potterorpheusanimals
Paulus Potter (1625–1654), Orpheus and Animals (1650), oil on canvas, 67 x 89 cm, Rijksmuseum, Amsterdam. Wikimedia Commons.

Among the many superb animal paintings of Paulus Potter, Orpheus and Animals from 1650 is one of his most unusual, showing a wide range of different animal species, some of which weren’t well-known at that time, and one of which (the unicorn) didn’t even exist. Those seen include a Bactrian camel (two humps), donkey, cattle, ox, wild pig, sheep, dog, goat, rabbit, lions, dromedary (one hump), horse, elephant, snake, deer, unicorn, lizard, wolf, and monkey.

tintorettocreationanimals
Jacopo Tintoretto (c 1518-1594), Creation of the Animals (1550-53) (E&I 55), oil on canvas, 151 × 258 cm, Gallerie dell’Accademia, Venice, Italy. Wikimedia Commons.

In Tintoretto’s Creation of the Animals, the first of his Old Testament cycle for the Scuola della Trinità in Venice, God flies along as he creates pairs of different species of bird, fish, and animal, from cormorants to rabbits.

Among their leading roles is in Elihu Vedder’s delightful painting of the unfortunate Marsyas.

veddermarsyashares
Elihu Vedder (1836–1923), Young Marsyas (Marsyas Enchanting the Hares) (1878), oil on canvas, dimensions not known, Private collection. The Athenaeum.

Late in 1877, Carrie Vedder, the artist’s wife, recorded in a letter that her husband had been thinking about Marsyas, and considered that, before the contest with Apollo, Marsyas must have proved his skill with the aulos. He therefore came up with the idea that this must have at least been charming hares with the instrument. He started this painting early in 1878, setting it in the New England winter. This was shipped to Paris for show at the Exposition Universelle later that year, but Vedder was disappointed that it didn’t do well there.

The hare is known from fable for its speed, although not so much when racing against a tortoise.

snydershareandthetortoise
Frans Snyders (1579–1657), The Fable of the Hare and the Tortoise (1600-57), oil on canvas, 112 x 84 cm, Museo Nacional del Prado, Madrid. Wikimedia Commons.

At some time during the first half of the seventeenth century, Frans Snyders painted the still popular Fable of the Hare and the Tortoise. The tortoise and the hare disputed which of the two was the faster, so agreed to run a race against one another. Although the hare was much faster when running, he laid down beside the path and slept. The tortoise, being aware of his relative slowness, ran as fast as he could, past the sleeping hare, until he won. Snyders shows the hare at full pelt, and the tortoise crawling away in the distance, giving little clue as to the surprising outcome or its cause.

JMW Turner alludes to this fable in his Rain, Steam and Speed – The Great Western Railway from 1844.

turnerrainsteamspeedgwr
Joseph Mallord William Turner (1775–1851), Rain, Steam and Speed – The Great Western Railway (1844), oil on canvas, 91 x 121.8 cm, The National Gallery, London. Wikimedia Commons.

Running ahead of this very early steam locomotive as it crosses the River Thames at Maidenhead is a hare, barely visible at the lower right.

Albrecht Dürer, Hare, 1502, watercolour and bodycolour on paper, 25 x 22.5 cm. Albertina, Vienna (WikiArt).
Albrecht Dürer (1471-1528), Hare (1502), watercolour and bodycolour on paper, 25 x 22.5 cm. Albertina, Vienna. WikiArt.

Perhaps the most famous painted hare appears in one of Albrecht Dürer’s watercolour masterpieces, dated to 1502.

liljeforsharestudies
Bruno Liljefors (1860–1939), Hare Studies (1885), paper, 32 × 24.5 cm, location not known. Wikimedia Commons.

Following this tradition, one of Bruno Liljefors’ favourite species was the elusive hare. This page of Hare Studies from 1885 shows a tiny part of the image library he assembled, as well as their spring antics.

liljeforswinterhare
Bruno Liljefors (1860–1939), Winter Hare (1910), oil on canvas, 92 × 78 cm, Private collection. Wikimedia Commons.

Unlike the common rabbit, some hares become white for the winter. This is one of the many paintings that Liljefors made of a Winter Hare, here from 1910.

Both hares and rabbits have been traditional meats, and there are several still life and hunting paintings depicting them dead and being prepared for a meal.

NM 785
Jean-Baptiste-Siméon Chardin (1699–1779), Rabbit and Copper Pot (date not known), oil on canvas, 59 x 56 cm, Nationalmuseum, Stockholm, Sweden. Wikimedia Commons.

Several of Chardin’s small output of about 200 paintings included hanging game, here an undated Rabbit and Copper Pot, elsewhere hares and others.

The rise of the sciences during the nineteenth century didn’t spare rabbits from being used in physiological experiments.

lhermitteclaudebernard
Léon Augustin Lhermitte (1844–1925), Claude Bernard and His Pupils (1889), copy of original by unknown artist, oil on canvas, 86.5 x 112.5 cm, Wellcome Library no. 45530i, London. Courtesy of Wellcome Images, via Wikimedia Commons.

Following the death of the physiologist Claude Bernard, the Sorbonne (where he had taught) commissioned Léon Lhermitte to paint his portrait in 1886. Sadly I’ve been unable to trace an image of the original, but Claude Bernard and His Pupils is a faithful copy of the painting that Lhermitte exhibited at the Salon in 1889. This shows Bernard in the midst of performing an experiment on a rabbit, his students discussing its results, and one writing the experimental observations in the laboratory daybook.

Rabbits have been favourites with children, and kept as domestic pets. From there they appear in some of the most surprising places.

zeissigchineseshadows
Johann Eleazar Zeissig (1737–1806), A Family Making Chinese Shadows (date not known), oil on canvas, 55.3 x 45.7 cm, location not known. Wikimedia Commons.

Johann Eleazar Zeissig shows A Family Making Chinese Shadows in his painting from the late 1700s. A family are entertaining themselves late in the evening with the aid of a lamp as a point source of light. An older boy is tracing the silhouette of his mother on a sheet of paper which he holds on the wall behind her. At the upper right are examples of his ‘shadowgraph’ drawings. Three younger children are holding up their hands to form the silhouettes of a rabbit and a cat, clichés of childhood.

mackelittlewalterstoys
August Macke (1887–1914), Little Walter’s Toys (1912), media not known, 50 x 60 cm, Städelsches Kunstinstitut und Städtische Galerie, Frankfurt, Germany. Wikimedia Commons.

August Macke’s Little Walter’s Toys from 1912 includes two of the favourite family pets, a rabbit and guinea pig.

My last guest appearance of a white rabbit is the most curious of all.

The Bay of Baiae, with Apollo and the Sibyl exhibited 1823 by Joseph Mallord William Turner 1775-1851
Joseph Mallord William Turner (1775–1851), The Bay of Baiae, with Apollo and the Sibyl (1823), oil on canvas, 145.4 x 237.5 cm, The Tate Gallery (part of the Turner Bequest 1856), London. © The Tate Gallery and Photographic Rights © Tate (2016), CC-BY-NC-ND 3.0 (Unported), http://www.tate.org.uk/art/artworks/turner-the-bay-of-baiae-with-apollo-and-the-sibyl-n00505

JMW Turner painted this narrative landscape of The Bay of Baiae, with Apollo and the Sibyl in 1823. Apollo is on the left, with his lyre, and the dark-haired Sibyl has adopted an odd kneeling position. She’s holding some sand in the palm of her right hand, asking Apollo to grant her as many years of life as there are grains. Opposite the couple, on the other side of the path, under the trees, is a white rabbit.

Maybe it was just the first day of the month.

LogUI build 37 now has more power for browsing the log

By anyone’s standards, the macOS log contains a great many entries, and being able to filter out the noise is essential. This is accomplished by applying predicates to determine which entries are extracted and shown in a log browser like LogUI. However, using predicates requires knowledge about the log and its entries, and forms the greatest barrier for most users. This new version of LogUI improves features to help you use predicates to make the log more accessible.

This all happens in the toolbar of its browser window.

The section at the left of the lower row of tools now provides two methods to apply your own predicates: a one-off predicate editor, and an editor for custom entries in its popup menu.

One-off predicates

Click on the Set button to open the one-off predicate editor.

Here you can compose and paste in your own custom predicates that will extract only the log entries that you’re interested in. In this example, only entries whose subsystem is com.apple.duetactivityscheduler, or contains com.apple.xpc, will be gathered and displayed. Those tell you what’s going on with DAS and CTS scheduling and dispatch of background activities.

LogUI keeps that one-off predicate, even after a restart, as it’s automatically written to its preference file.

Once you’ve clicked Save, selecting the [ … ] item in the predicate menu will apply that predicate to each log extract you obtain.

There’s also an additional standard predicate using the senderImagePath.

Custom menu predicates

Predicates listed in that menu below blowhole are custom predicates saved to LogUI’s preferences using its new Predicate tab in its Settings. This editor is very basic at the moment, and its use a little awkward. This is because SwiftUI much prefers menu contents to be static, so adding items to the predicate menu doesn’t go down too well. This editor allows you to add one predicate at a time, in plain text format.

Click on the Append button here and there’ll be a new predicate named XProtect Remediator with the predicate shown. You can only add one new predicate, then need to quit the app before adding another. I’m sorry that’s so laborious, but once you have set up your custom predicates you can return to using LogUI fully.

The Settings General pane now contains a button to Reset Predicates back to their defaults.

Predicates

A basic predicate is composed of a log field name, like subsystem, followed by an operator such as == (equals) or CONTAINS[c] (case-insensitive contains), and a filter term, usually a string like "com.apple.xpc". So the predicate
subsystem CONTAINS[c] "com.apple.xpc"
will return all log entries with their subsystem containing the text com.apple.xpc. You can combine those basic elements into a more selective predicate using combinators such as AND and OR, so
subsystem == "com.apple.duetactivityscheduler" OR subsystem CONTAINS|c] "com.apple.xpc"
returns entries with a subsystem of precisely com.apple.duetactivityscheduler together with those whose subsystem contains the text com.apple.xpc.

Some years ago I wrote a primer here, and you’ll find some useful predicates in the Further Information section in the Help book for Mints. I’ll be writing more here to help you get the best out of LogUI.

There are a couple of oddities with predicates. SwiftUI tends to like using typographic double-quotation marks, but the macOS predicate builder doesn’t accept them as a substitute for straight marks. So LogUI changes all styled marks to straight ones automatically for you, to ensure those shouldn’t cause a problem. However, when it encounters errors it can behave erratically; while I’m trying to make this more robust, I apologise in advance if using a broken predicate upsets LogUI. It’s worth being careful to check your predicates before trying to use them.

LogUI version 1.0 build 37 is now available from here: logui137

My next task is to improve editing and saving predicates to its preferences, to make them accessible as menu customisations.

Apple has released macOS Sequoia 15.4, and 14.7.5, 13.7.5

Apple has just released the update to macOS Sequoia to bring it to version 15.4, and security updates for 14.7.5 and 13.7.5.

The Sequoia update for Apple silicon Macs is about 6.2 GB in size, and 3.9 GB for Intel models, making it one of the largest intermediate updates for some years. For Apple silicon Macs, the update to 14.7.5 is about 3.7 GB, and to 13.7.5 about 3.3 GB.

Among the changes listed by Apple for 15.4 are:

  • Adds Memory movies in Photos using AI.
  • Adds a Sketch Style option in Image Playground, in AI.
  • Adds Mail Categorisation.
  • Apple silicon Macs with an internal SD card reader now support SDUC cards larger than 2TB.
  • This should resolve problems with some M4 Macs being unable to launch Virtual Machines.
  • Content filter extensions correctly receive non-TCP/UDP network protocol traffic.
  • Finder no longer fails to copy some dataless files from SMB file shares.

Enterprise release notes are here.

Software Update settings will be automatically changed to enable future macOS updates to be downloaded and installed automatically: if you don’t want that, you’ll need to change that setting once your Mac boots in 15.4.

Security release notes are available for Sequoia, Sonoma and Ventura updates. There are a total of 131 vulnerabilities fixed in 15.4, which must be a record. None is reported as being suspected of exploitation in the wild, and the security updates for Sonoma and Ventura are almost as numerous.

Firmware updates include iBoot (Apple silicon) to version 11881.101.1, and T2 Macs to 2075.101.2.0.0 (iBridge 22.16.14248.0.0,0). The macOS build number is 24E248.

The new version of Safari in 15.4 is 18.4 (20621.1.15.11.10). APFS is updated to version 2332.101.1.

As so much has changed, I won’t be posting a separate article listing significant changes: it looks like pretty well everything has!

Just for reference, the Sequoia 15.0 major version upgrade from Sonoma was 6.6 GB for Apple silicon, and 4.9 GB for Intel – those aren’t that much larger than this ‘minor version update’.

Those intending to update Apple silicon Virtual Machines currently running 15.3.2 should be prepared for the 15.4 update to fail. I’ve tried with two VMs now, one with a fresh copy of 15.3.2, and both have failed early during installation with a kernel panic. However, 15.4 does install correctly from the latest IPSW image file. Older VMs with 14.7.4 and 13.7.4 do update correctly to 14.7.5 and 13.7.5 respectively.

[Last updated 1715 GMT 1 April 2025.]

Changing Paintings: 64 Scylla meets Glaucus

By the end of Book 13 of Ovid’s Metamorphoses, Aeneas is on the island of Sicily. Scylla has been combing Galatea’s hair, listening to her tell the tragic story of the death of her lover Acis. Ovid resumes the narration for the tale of Scylla, which doesn’t conclude until the start of the next book.

Scylla is walking naked along the beach when the figure of Glaucus suddenly breaks the surface of the water. He’s immediately enchanted by her, and tries to engage her in conversation to stop her from running away. But Scylla runs away in terror, and climbs a nearby cliff. There, she gets her breath back, and tries to work out whether he’s a god or monster with long hair and fishy scales below the waist.

Glaucus assures her that he’s a sea-god. He had once been an ordinary mortal, and fished with nets, and rod and line. One day, the fish that he had caught started to move when he had laid them out on the grass, and one by one they escaped back into the water. He couldn’t understand how that had happened, so chewed stems of the plants they had rested on. He was then transformed and swam off in the sea to visit the gods Tethys and Oceanus for removal of the last remains of his mortal form.

Scylla runs away, leaving Glaucus angry, so he makes his way to the sorceress Circe.

sprangerglaucusscylla
Bartholomeus Spranger (1546–1611), Glaucus and Scylla (1580-82), oil on canvas, 110 × 81 cm, Kunsthistorisches Museum, Vienna, Austria. Wikimedia Commons.

Bartholomeus Spranger painted his version of Glaucus and Scylla in 1580-82. Although the artist hasn’t followed Ovid’s distinctive colour scheme for his body, Glaucus is clearly pleading his case before the beautiful young woman. In the next book, Ovid will describe how Scylla was turned into a rock, and Spranger provides that link forward in the story in his background.

rosaglaucusscylla
Salvator Rosa (1615-1673), Glaucus and Scylla (date not known), oil on canvas, 87.5 x 75 cm, Musée des Beaux-Arts de Caen, Caen, France. Wikimedia Commons.

In the middle of the seventeenth century, Salvator Rosa makes Glaucus more of a beast, roughly mauling Scylla’s fair body and giving her good cause for her flight to the cliff.

vaccaroglaucusfleeingscylla
Nicola Vaccaro (1640–1709), Glaucus fleeing from Scylla (date not known), oil, dimensions and location not known. Wikimedia Commons.

A little later, probably in the late seventeenth century, Nicola Vaccaro is more sympathetic in his Glaucus fleeing from Scylla. Glaucus may be a bit rough, but arouses more pity. Scylla is accompanied by three Cupids as she flees not to the top of a cliff, but to the goddess Diana above.

The most interesting and unusual depiction of this story is surely JMW Turner’s from 1841, just a decade before his death.

turnerglaucusscylla
Joseph Mallord William Turner (1775–1851), Glaucus and Scylla (1841), oil on panel, 78.3 x 77.5 cm, Kimbell Art Museum, Fort Worth, TX. Wikimedia Commons.

Turner’s Glaucus and Scylla (1841) would perhaps have looked more at home among paintings made fifty or even eighty years later.

The naked Scylla is on the beach at the right, with a couple of cupids flying about. The inchoate form of Glaucus is emerging to the left of centre, holding his arms out towards Scylla. She will have none of it, though, and has already turned to run, and looks back over her shoulder towards him.

We look directly into the setting sun colouring the world a rich gold. In the right background the low coastal land rises to sheer cliffs with a temple on top. A tower atop a nearer pinnacle, or more distant lower red rocks, may be a reference to Scylla’s fate.

turnerglaucusscylladet
Joseph Mallord William Turner (1775–1851), Glaucus and Scylla (detail) (1841), oil on panel, 78.3 x 77.5 cm, Kimbell Art Museum, Fort Worth, TX. Wikimedia Commons.

In the foreground are clues of the beach setting, with a crab, and several seashells. Turner has applied his paint in innovative and gestural ways, resulting in richly varied textures.

Turner had made an earlier and more traditional study in about 1810-15, but revised it almost completely by the time that he painted this in 1841. Its light appears influenced by the harbour landscapes of Claude, and its general lack of form anticipates Impressionism, perhaps even Abstract Expressionism in passages.

Rejected by the scared Scylla, Glaucus travels from Sicily to visit the sorceress Circe, whom he implores to use her dark arts to force Scylla to return his love. But Circe refuses, telling Glaucus to woo another: as she is in love with him, he could spurn Scylla and love Circe instead.

Glaucus rejects her, saying that nothing will change his love for Scylla. That annoys Circe, who cannot harm Glaucus because of her love for him, so turns her anger on Scylla instead. The sorceress prepares a magical potion from herbs, weaving her spells into it. Dressed in a deep blue robe, she then goes to a small bay where Scylla likes to bathe, and pours her potion into the water.

When Scylla wades into the water the lower half of her body is transformed into a pack of dogs. As Ulysses’ ship passes her, those dogs take some of its crew, but they allow Aeneas to pass safely. Scylla is finally transformed into a rock and becomes a famous hazard to navigation.

waterhousecirceinvidiosa
John William Waterhouse (1849-1917), Circe Invidiosa (1892), oil on canvas, 180.7 x 87.4 cm, Art Gallery of South Australia, Adelaide, Australia. Wikimedia Commons.

John William Waterhouse chose to portray the figure of Circe the sorceress in his Circe Invidiosa (1892). Despite its narrative limitations, this offers a marvellous insight into the character of Circe, as she pours her brilliant emerald green potion into the water, ready for Scylla to come and bathe.

strudwickcircescylla
John Melhuish Strudwick (1849–1937), Circë and Scylla (1886), oil on canvas, dimensions not known, Sudley House, Liverpool, England. Wikimedia Commons.

John Melhuish Strudwick also chooses a moment early in Ovid’s story, which makes his painting of Circë and Scylla (1886) narratively rather thin. Circe, dressed in brown rather than blue, is sprinkling her potion into the water from within a small cave, as Scylla, at the left, walks down to bathe.

vanderneercircepunishesglaucus
Eglon Hendrik van der Neer (1634–1703), Circe Punishes Glaucus by Turning Scylla into a Monster (1695), oil on canvas, 64 x 53.3 cm, Rijksmuseum Amsterdam, Amsterdam, The Netherlands. Wikimedia Commons.

By far the most complete visual account is Eglon van der Neer’s Circe Punishes Glaucus by Turning Scylla into a Monster (1695). Circe takes the limelight, as she casts her potion from a flaming silver salver held in her right hand. Dripping onto that is the wax from a large candle, held in her left hand. In the water below, Scylla has already been transformed into a gorgonesque figure, with snakes for hair, and the grotesque Glaucus watches from behind. Above and to the right of Circe is a small dragon perched on a rock ledge.

renancharybdisscylla
Ary Renan (1857–1900), Charybdis and Scylla (1894), oil on canvas, 89.5 x 130 cm, Musée de la Vie romantique, Paris. Wikimedia Commons.

Ary Renan’s Charybdis and Scylla (1894) shows Charybdis the whirlpool with its mountainous standing waves at the left, and the rocks of Scylla at the right.

alloriulyssesscyllacharybdis
Alessandro Allori (1535–1607), (Odysseus passing Scylla and Charybdis) (c 1575), fresco, dimensions and location not known. Wikimedia Commons.

This fragment of fresco by Alessandro Allori shows Odysseus’ ship passing Charybdis, depicted as a huge head vomiting forth the rough waters of the whirlpool at the right, and the dogs’ heads of Scylla, which have captured three of Odysseus’ crew.

fuseliodysseusscyllacharybdis
Henry Fuseli (1741–1825), Odysseus in front of Scylla and Charybdis (1794-96), oil on canvas, 126 × 101 cm, Aargauer Kunsthaus, Aarau, Switzerland. Wikimedia Commons.

Henry Fuseli’s Odysseus in front of Scylla and Charybdis (1794-96) is another vivid depiction of Odysseus passing the twin dangers. He stands on the fo’c’s’le of his ship, holding his shield up in defence as the oarsmen down below him struggle to propel the craft through the Straits of Messina.

Solutions to Saturday Mac riddles 301

I hope that you enjoyed Saturday’s Mac Riddles, episode 301. Here are my solutions to them.

1: Roll pasted on the interior background.

Click for a solution

Wallpaper

Roll pasted on the interior (what wallpaper is) background (it sets the Desktop, and replaced Desktop & Screen Saver).

2: Secure partition for the idle display.

Click for a solution

Lock Screen

Secure (to lock) partition (a screen) for the idle display (it sets what is shown on the display when it’s idle).

3: Pastime bull’s-eye for the player.

Click for a solution

Game Center

Pastime (a game) bull’s-eye (a centre) for the player (it enables access to game features).

The common factor

Click for a solution

They were all introduced in macOS Ventura’s System Settings, but weren’t in System Preferences.

I look forward to your putting alternative cases.

External boot disks: structure and problems

Most modern Macs start up from their internal SSD, and have a single bootable system installed. Although its structure has changed considerably over recent years, and differs between Intel and Apple silicon Macs, they are generally reliable, and knowledge of their structure and function is seldom required.

Those who need to start their Mac up from two or more versions of macOS, or who do so from an external disk, may be able to get by without deeper understanding, but the moment there’s a problem can become confused, and end up having to install macOS from scratch.

Intel T2 and Apple silicon

Both types of Mac are designed to support Secure Boot, but because of the reliance of Intel Macs on UEFI firmware, they can only boot securely from their internal SSD. Enabling an Intel T2 Mac to start up from an external disk thus requires its boot security to be reduced by changing that in Startup Security Utility, in Recovery mode. Booting from an external system is then straightforward, and doesn’t require additional security measures as used in Apple silicon.

Apple silicon Macs have been designed from the outset to support Secure Boot when starting up from both internal and external disks, and don’t require any reduction in their boot security to be able to start up from multiple systems on external SSDs. It’s a common misunderstanding that trying to change Boot Security in Startup Security Utility can help solve Apple silicon boot problems, but if anything it only complicates them. Almost the only good reason for reducing boot security of an Apple silicon bootable system is when third-party kernel extensions are required. Otherwise don’t tamper with Startup Security Utility, as it will only confuse, as we’ll see later.

For an Apple silicon Mac to boot from a macOS system, that must have a LocalPolicy created and saved to the internal SSD. LocalPolicy is normally created during macOS installation, or when intending to start up from a suitably installed system. Problems with LocalPolicy have been common when using external disks, and are covered in these articles:

Boot disk architecture

Another significant difference between Intel and Apple silicon Macs is the architecture of their internal SSDs: Apple silicon has two additional partitions (APFS containers), and lacks the traditional EFI partition. However, there are no such differences in the structure of their bootable external disks, and its relevance here is limited, and mainly affects Big Sur as I explain below.

macOS 10.13-10.15

DiskStructureMojave

Bootable disks in versions of macOS between High Sierra and Mojave (above) are based on their single boot volume, supplemented by hidden Preboot, Recovery and VM volumes. macOS 10.15 Catalina (below) divided that boot volume into a Boot Volume Group, consisting of paired System and Data volumes, in addition to the same three hidden volumes.

DiskStructureCatalina

Basic support for volume roles was introduced in the first release version of APFS in macOS 10.13, and was extended to cover further roles in 10.15. Thus versions of APFS prior to 1412.x.x don’t understand volume roles used by subsequent systems. From Catalina onwards you can use the command
diskutil apfs listVolumeGroups
to see paired System and Data volumes, for example
+-- Container disk5 5BA1AAC8-3AD4-4594-AF01-7C0AA75CABAD
| |
| +-> Volume Group 68627CBB-D774-444E-97C6-F9511B5030F3
| =================================================
| APFS Volume Disk (Role): disk5s1 (Data)
| Name: Macintosh HD - Data
| Volume UUID: 68627CBB-D774-444E-97C6-F9511B5030F3
| Capacity Consumed: 580769214464 B (580.8 GB)
| -------------------------------------------------
| APFS Volume Disk (Role): disk5s5 (System)
| Name: Macintosh HD
| Volume UUID: 8B9FF440-75C8-4F7F-B09E-9222D44A2276
| Capacity Consumed: 11239186432 B (11.2 GB)

Note that each volume group has its own UUID, which is normally the same as that of the Data volume in the pair. Identification of volumes, containers and other structures in APFS is dependent on these UUIDs, which are an essential part of the GUID Partition Table scheme used to partition disks.

Catalina’s System volume is mounted read-only, but macOS is booted from that volume rather than the Signed System Volume snapshot introduced in Big Sur.

macOS 11

BootDiskStructureIntelBigSur

Although the structure of Big Sur internal SSDs in Apple silicon Macs has two additional partitions (APFS containers), Apple_APFS_ISC containing three volumes, and Apple_APFS_Recovery containing two volumes, bootable external disks have the same structure as the internal SSD in Intel Macs.

One important functional difference, which remains relevant to Big Sur boot disks, is that Apple silicon Macs don’t use the paired Recovery volume as their primary Recovery system: booting an Apple silicon Mac running Big Sur into Recovery should instead use the Recovery system installed in their internal SSD, in the Apple_APFS_Recovery partition. In subsequent versions of macOS, that’s used instead for secondary or Fallback Recovery. Thus Big Sur can be a problem when it comes to Recovery, and for this reason is best avoided on Apple silicon Macs. If it’s essential to install a copy of Big Sur, then be prepared for problems with Recovery mode.

macOS 11 also established the architecture for dual-boot partitions, with two or more Boot Volume Groups.

BootDualDiskStructureIntelBigSur

Although the Boot Volume Group has only ever referred to paired System and Data volumes, within each partition/container the group also requires three or four additional volumes, for Preboot, Recovery, VM and (apparently in Big Sur only) Update. How those work with multiple Boot Volume Groups is explained below. Once way to avoid the inevitable complexities is to install each Boot Volume Group into a separate partition/container, which provides each with its own suite of Preboot, Recovery and VM volumes.

As the Signed System Volume (SSV) was introduced in macOS 11, versions of APFS prior to 1677.x.x shouldn’t be expected to understand SSVs.

macOS 12-15

The next significant architectural changes in Apple silicon Macs were the introduction of paired Recovery volumes in macOS 12 Monterey, and of cryptexes in macOS 13 Ventura.

In macOS 11 and 12, Safari, its supporting components, and some other parts of macOS are installed to the Data volume for ease of maintenance. Apple replaced that with separate secure disk images termed cryptexes, loaded from the Preboot volume during the boot process and grafted into the root file system. As a single Preboot volume can be shared by more than one Boot Volume Group, bundled cryptexes must be provided to the correct group, and I suspect that’s accomplished by associating them with their Volume Group UUID. If that becomes confused in any way, cryptexes could be incorrectly associated or missing altogether, something that’s almost certainly fatal to the boot process.

Above is the current layout of a partition/container containing a single bootable system for a Mac running Sequoia. Device names given are illustrative, although their numbering is typical of that seen for external bootable volumes. In this instance, the base name for the Boot Volume Group is External, and the External System volume is unmounted as usual.

Below is a typical partition/container containing two bootable systems named ExternalA and ExternalB. This has two Boot Volume Groups, each consisting of a System volume with its SSV, and a Data volume, to which are added their three common volumes, Preboot, Recovery and VM.

Management

Creation

The most reliable tools for creating and working with Boot Volume Groups and other system components are those in macOS installer apps, and even they can have their moments and bugs. It’s usually possible to ‘clone’ groups using the asr command tool, a feature that’s offered in some third-party utilities including Carbon Copy Cloner and SuperDuper. However, Apple has made it clear that given a choice between supporting asr and addressing boot security, it gives the latter absolute priority. asr has suffered some serious bugs since the SSV was introduced in Big Sur, and shouldn’t be relied on.

asr is careful to ensure that, when cloning Boot Volume Groups, UUIDs are changed so that it doesn’t end up with volumes or groups with the same UUID. That may not be the case when using some other tools such as dd for duplication. If you prefer a simple and stress-free life, it’s better to put your trust in a macOS installer rather than try crafting your own Boot Volume Groups.

Apple’s own tools such as Disk Utility now try to steer the user away from making mistakes, such as deleting just one of a Boot Volume Group, leaving the other orphaned with its firmlinks broken.

Firmware

Firmware is another source of confusion. That installed in the Mac, using its internal storage, should always reflect the firmware that has been included in the most recent version of macOS installed or updated on that Mac, whether that was installed to the internal SSD or to an external disk. The only exception to this is when installing or updating macOS in a Virtual Machine, which can’t affect the host’s firmware.

What may appear more puzzling are the versions reported in System Information: that given as System Firmware should be the iBoot version for the main Mac, and the most recent. The OS Loader, though, varies with the Boot Volume Group, and in older macOS is likely to be earlier than the iBoot version of the main Mac.

Recovery

Recovery system versions are even more complex. When everything works as it should, the version installed in any paired Recovery volume should be the newest of the Boot Volume Groups that it’s paired with, in the same partition/container. If a Mac running 15.3 from its internal SSD has a bootable external disk with a single container with two Boot Volume Groups for 13.7 and 14.7, then the Recovery system for the internal SSD should be 15.3, while that shared by the two systems on the external disk should be 14.7. It’s likely that Fallback Recovery on the internal SSD will be from an earlier version of macOS 15, but that’s less predictable, and there’s no separate Fallback Recovery in external systems.

Switching between systems and their Boot Volume Groups is normally performed using Startup Disk in General settings, or its equivalent in System Preferences. Those record the chosen Boot Volume Group in NVRAM, from where it’s used during the next boot.

That setting is used to determine which Recovery system is used if the next boot is performed with the Power button pressed to enter Recovery mode. That in turn determines what can be performed in Recovery. This is most critical for determining how Startup Security Utility works, as that can only change boot security settings for the chosen Boot Volume Group saved in NVRAM.

For example, in the dual-boot container shown above, selecting ExternalB as the Startup Disk, shutting down, then starting up into Recovery mode should enable Startup Security Utility to control boot security for ExternalB but not ExternalA, nor the system installed on the internal SSD. This can be used to discover which Recovery system is running: open Startup Security Utility and the only boot system that can be changed there is the current default boot system.

APFS

Although APFS should be backward compatible, making it relatively safe to make changes to an older version of APFS from a newer system, forward compatibility is more limited. Using older versions of Disk Utility or tools like fsck on newer versions of APFS risks errors, failure and at worst damage. The Appendix at the end of this article summarises version numbering in APFS and major changes to beware of. Although not easy to discover the version of APFS used to create or modify any given volume, one way is to use
fsck_apfs -n -S [device]
giving the volume’s device name. The report should then be prefaced by a statement such as
The volume [volume name] was formatted by diskmanagementd (1412.141.1) and last modified by apfs_kext (945.250.134).
telling you that volume was created by macOS 10.15, and was last changed by macOS 10.14.

Troubleshooting

The first and fundamental step in trying to diagnose the cause of problems with multiple Boot Volume Groups or bootable external disks is to examine their container and volume structure using two diskutil commands:
diskutil apfs list
lists all APFS volumes by container and gives key information about each, including role and UUID, and
diskutil apfs listVolumeGroups
lists all recognised Boot Volume Groups, which you can tally against the first. Pipe these to text files so you can study and refer back to them.

Those should enable you to verify that the structure is as intended, and to establish the relationships between systems and paired Recovery volumes. From there you should be able to focus on the Boot Volume Group that’s misbehaving, ensuring that its Data volume has been backed up. If necessary, that can be used as a migration source if that group needs to be deleted and reinstalled.

Tips & tricks

  • The host Mac must be capable of running that version of macOS.
  • macOS installers are the most reliable means of creating and installing Boot Volume Groups.
  • During macOS installation, an external disk must be connected to a port other than the DFU port, as listed here and in Mactracker.
  • When installing an older major version of macOS, perform this from an external bootable HFS+ volume as detailed by Apple.
  • Use an HFS+J partition on an external SSD rather than a USB ‘thumb’ drive.
  • Boot from an installer volume through Recovery mode.
  • When using a laptop Mac, run it from mains power throughout macOS installation.
  • Apple silicon Macs boot from external disks in Full Security, and reducing that doesn’t solve any problems.
  • Each container with one or more Boot Volume Groups contains one set of Preboot, Recovery and VM volumes shared between them.
  • If you’re unsure which Recovery system you’re using, open Startup Security Utility, as the only group it can change settings for is the one it’s booted into.
  • Big Sur doesn’t support paired Recovery on Apple silicon, and that can cause problems.
  • The version of Recovery installed in any paired Recovery volume should be that of the newest of the Boot Volume Groups that it’s paired with.
  • Use fsck_apfs -n -S [device] to discover the APFS version.
  • Use diskutil apfs list and diskutil apfs listVolumeGroups to discover volume structure.
  • Try using a Virtual Machine instead, if you don’t need to be able to run software from the App Store.

Appendix: APFS version numbers

APFS major version numbers change with major version of macOS:

  • macOS 10.12 has APFS version 0.3 or 249.x.x, which shouldn’t be used at all.
  • 10.13 has 748.x.x, which doesn’t support Fusion Drives, but has basic support for volume roles.
  • 10.14 has 945.x.x, the first version to support Fusion Drives.
  • 10.15 has 1412.x.x, the first version to support the multi-volume boot group, and introduces extended support for volume roles, including Data, Backup and Prelogin.
  • 11 has 1677.x.x, the first version to support the SSV, and Apple silicon. On M1 Macs, it doesn’t support the paired Recovery volume.
  • 12 has 1933.x.x until 12.2, thereafter 1934.x.x, which support the paired Recovery volume on Apple silicon.
  • 13 has 2142.x.x, and is probably the first to support trimming of UDRW disk images and their storage as sparse files.
  • 14 has 2235.x.x, until 14.3, thereafter 2236.x.x.
  • 15 has 2313.x.x until 15.2, thereafter 2317.x.x until 15.4, thereafter 2332.x.x.

Paintings of the Franco-Prussian War: 2 The Siege of Paris

Following a series of disastrous defeats of the French Army, on 19 September 1870, Prussian forces had taken control of the country around Paris, and put the capital under siege. With the surrender of the French Emperor Napoleon III, a provisional republican government had been established, and ushered in the Third Republic as successor to the Second Empire, in the most difficult of circumstances.

The new French government wasn’t yet ready to admit defeat. They called for guerilla warfare against the occupying Prussian forces to deprive them of supplies, and the formation of large armies from the unoccupied provinces to the west and south. Prussian opinion favoured the bombardment of Paris to try to bring the war to a more rapid conclusion, but thankfully Prussian High Command wouldn’t accept that on moral grounds.

As the Prussians sent small armies out to the provinces to disrupt French attempts at re-organisation, conditions in Paris steadily deteriorated.

vonwernertroopsquarters
Anton von Werner (1843–1915), In the Troops’ Quarters Outside Paris (1894), oil on canvas, 120 x 158 cm, Alte Nationalgalerie, Berlin, Germany. Wikimedia Commons.

Anton von Werner shows the contrasting life In the Troops’ Quarters Outside Paris (1894), here in the luxurious Château de Brunoy, which had been abandoned to or requisitioned by those occupying forces. Prussian soldiers were blamed for the almost complete destruction of Pissarro’s work prior to the war, when they occupied his house in 1870.

detaillechampigny
Édouard Detaille (1848–1912), Champigny, December 1870 (1879), oil on canvas, 121.9 x 218.4 cm, location not known. Wikimedia Commons.

Édouard Detaille’s painting of action at Champigny, December 1870 (1879) took place only 12.5 km (under eight miles) from the centre of Paris.

deneuvillebivouacafterbattle
Alphonse-Marie-Adolphe de Neuville (1836–1885), Bivouac after the Battle of Bourget, 21 December 1870 (1873), media and dimensions not known, Musée d’Orsay, Paris. Wikimedia Commons.

There were French counter-attacks. On 29 October 1870, General Carey de Bellemare attacked the Prussian Guard at Le Bourget, despite having no orders to do so, and forced them to cede the town to his troops. Despite these positions being of little value to either side, the Prussians re-took them in the Battle of Le Bourget on 30 October. Although incorrectly dated, de Neuville shows French soldiers sheltering in a Bivouac after the Battle of Bourget, 21 December 1870 (1873). This was a major blow to the beleaguered citizens still in Paris.

As the winter grew colder, Parisians were starting to starve. A city which had long been proud of its restaurants and food was reduced to scavenging meals based on horse, dog, cat, and even the city’s rats.

meissoniersiegeparis
Jean-Louis-Ernest Meissonier (1815–1891), The Siege of Paris (1870), oil on canvas, 53.5 x 70.5 cm, Musée d’Orsay, Paris. Wikimedia Commons.

Jean-Louis-Ernest Meissonier’s romanticised view of The Siege of Paris from 1870 combines almost every symbol relevant to the city’s distress, dressing Marianne in a lionskin against a battle-worn flag. Meissonier had originally been attached to the staff of Napoleon III, and accompanied him in early phases of the war in Italy. During the siege of Paris, though, he was a Colonel commanding an improvised infantry unit, and knew well the realities of combat.

doresistercharity
Gustave Doré (1832–1883), Sister of Charity Saving a Child. An Episode of the Siege of Paris (1870-71), oil on canvas, 97 x 130 cm, Musée Malraux (MuMa), Musée des Beaux-Arts, Le Havre, France. Wikimedia Commons.

Another artist who was trapped inside Paris was the great illustrator and painter Gustave Doré, who made several works showing scenes such as this Sister of Charity Saving a Child. An Episode of the Siege of Paris (1870-71).

barriasdefenceparis
Louis-Ernest Barrias (1841-1905), The Defence of Paris (1883), sculpture cast in bronze, dimensions not known, La Défense, Paris. Image by Velvet, via Wikimedia Commons.

The greatest memorial to those who lost their lives in the siege, and those who survived it, is Louis-Ernest Barrias’ bronze The Defence of Paris of 1883. This has so dominated the part of the city where it’s situated that the area is known as La Défense.

Military action continued into 1871, although it was already clear that France was utterly defeated. Secret discussions about an armistice started on 23 January, but the French government feared that their capitulation could precipitate rebellion, even revolution.

detaillearmistice
Édouard Detaille (1848–1912), The Armistice of 28th January 1871 (1873), media and dimensions not known, Deutsches Historisches Museum, Berlin, Germany. Wikimedia Commons.

Édouard Detaille’s depiction of The Armistice of 28th January 1871 (1873) shows the moment the symbolic white flag was raised over a bleak plain.

vonwernercrowningwilhelm
Anton von Werner (1843–1915), Crowning of Wilhelm I as Emperor of Germany, in Versailles (second version) (1882), media and dimensions not known, destroyed in World War 2. Wikimedia Commons.

To the nearly 400,000 French dead from the war, the Prussians were determined to add profound insult: as shown in Anton von Werner’s painting of the Crowning of Wilhelm I as Emperor of Germany, in Versailles (1882). Prussia had celebrated victory in this ceremony held at the most famous of French royal palaces, on 18 January 1871.

huntenwelcomeempresseugenie
Emil Hünten (1827–1902), Welcome of Empress Eugénie by Prussian Soldiers (date not known), oil on canvas, 64.5 x 85 cm, location not known. Wikimedia Commons.

Neither were participants afraid to spread ‘false news’: Emil Hünten’s undated Welcome of Empress Eugénie by Prussian Soldiers shows an event that never occurred. When the Empress was told of her husband’s surrender to the Prussians at the Battle of Sedan, she’s reported to have said:
“No! An Emperor does not capitulate! He is dead!… They are trying to hide it from me. Why didn’t he kill himself! Doesn’t he know he has dishonored himself?!”

With hostile crowds forming outside her Tuileries Palace, she slipped out to find sanctuary in the company of her American dentist, then fled to England by yacht on 7 September 1870. She was later joined by the former emperor, and the couple lived at Chislehurst in Kent. She never fraternised with Prussian soldiers.

Gustave Doré had a deeply personal involvement, as he had been born in Strasbourg, a French city the Prussians had taken early in the war. He volunteered to serve in the National Guard, and produced several moving paintings of the suffering of Paris.

doreenigma
Gustave Doré (1832–1883), The Enigma (souvenirs de 1870) (1871), oil on canvas, 128 x 194 cm, Musée d’Orsay, Paris. Wikimedia Commons.

His The Enigma (souvenirs de 1870) and two other works were painted using grisaille, greys normally used to model tones in traditional layered technique. This shows the shattered and still-burning remains of the city in the background, bodies of some of the Prussian artillery in the foreground, and two mythical beasts silhouetted in an embrace. The winged creature is female, and probably represents France, who clasps the head of a sphinx, who personifies the forces that determine victory or defeat. The enigmatic question would then relate to the Franco-Prussian War, and the reasons for France’s defeat.

Over the next seventy-five years, France and Germany were to fight one another twice more, before the Treaty of London of 5 May 1949 created the Council of Europe, which West Germany joined in 1951, and became ancestor of the European Union.

Last Week on My Mac: Bring back the magic

One of the magic tricks that characterised the Mac was its association between documents and their apps. No longer did a user have to type in both the name of the app and the document they wanted it to edit. All they needed to do was double-click the document, and it magically opened in the right app.

In Classic Mac OS, that was accomplished by hidden Desktop databases and type and creator codes. For example, a text document might have the type TEXT and a creator code of ttxt. When you double-clicked on that, the Finder looked up which app had the creator code ttxt, which turned out to be the SimpleText editor, and opened that document using that app.

Although those ancient type and creator codes still live on today in modern macOS, they no longer fulfil that role. Instead, each file has what used to be a Uniform Type Indicator (UTI), now wrapped into a UTType, such as public.plain-text, normally determined by the extension to its name, .txt or .text. When you double-click on a file, LaunchServices looks up that UTType in its registry, discovers which app is set as the default to open documents of that type, then launches that app with an AppleEvent to open the document you picked.

Recognising that we often want to open a document using a different app rather than the default, the Finder’s contextual menu offers a list of suitable apps in its Open With command. That list is built and maintained by LaunchServices, and has changed in recent versions of macOS. Whereas those lists used to consist of apps installed in the traditional Application folders, LaunchServices now scours every accessible volume and folder using Spotlight’s indexes to build the biggest lists possible. If you happen to have an old copy of an app tucked away in a dusty corner, LaunchServices will find it and proudly display it alongside those in everyday use, like a game dog triumphantly presenting not one dead pheasant but every one from miles around.

For those with lean systems, this gives them the flexibility to open a large text document using BBEdit rather than TextEdit, or to select which image editor to use for a JPEG. But for those of us with lots of apps lurking in storage, the result is absurd and almost unusable. It’s bad enough working through the 33 apps that LaunchServices lists as PNG editors, but being offered 70 text editors is beyond a joke.

Unfortunately, there’s no lasting way to block unwanted apps from being added to the list LaunchServices builds for this Open With feature. You can gain temporary relief by excluding them from Spotlight search, but should you ever open the folder they’re in using the Finder, those are all added back. This also afflicts apps in folders shared with a Virtual Machine, where the list includes App Store apps that can’t even be run from within that VM.

There are, of course, alternatives. I could drag and drop the document from its Finder window towards the top of my 27-inch display to the app’s icon in the Dock at the foot, which is marginally less awkward than negotiating my way through that list of 70 apps.

But there are better solutions: why not empower me to determine which of those 70 apps should be offered in the Open With list? This is such a radical idea that it used to be possible with the lsregister command that has become progressively impotent, as LaunchServices has cast its net further in quest of more apps to flood me with. Or maybe use a little machine learning to include only those text editors I use most frequently to open documents? Apple could even brand that LaunchServices Intelligence, although that’s a little overstated.

I can’t help but think of what those magicians from forty years ago would have done, but I’m certain they wouldn’t have offered me that list of 70 apps to choose from.

Paintings of the Franco-Prussian War: 1 Collapse

Painting in Europe during the latter half of the nineteenth century was centred on Paris. A lot happened in other countries too – such as the Pre-Raphaelites – but the major movements of the time came together in the capital city of France. Yet in the middle of this, from 1870-71, there was a major war in northern France between two of the great empires of the day, France and Prussia. Paris was put under siege, fell to Prussian occupation, and was then torn apart by the Commune.

These events had great impact on art and artists at the time. Some fled for safe places: several went to London, where they were exposed to important influences such as the paintings of Turner and Constable, who were formative to the Impressionists. Some died during that war, and promising and influential careers were terminated abruptly. Many stayed, and witnessed the horrors of war at first hand.

This weekend I look at the Franco-Prussian War and its immediate aftermath, stopping short of the ensuing turmoil of the Paris Commune.

Like so many wars, the Franco-Prussian War arose because of the conflicting ambitions of countries. The French Second Empire under Napoleon III had been in decline for several years, and had already demanded Belgium, Luxembourg, and the left bank of the Rhine in ‘compensation’ for Prussia’s annexation of territories to form the North German Confederation. Prussia was clearly seeking to become the dominant power in Europe, by forming a single nation from those previously separate states, plus the Southern German States and the French territory of Alsace-Lorraine.

France and Prussia were on a collision course, and on 19 July 1870 France declared war on the North German Confederation, a war for which the French were almost completely unprepared.

chenutrainees
Augustin Pierre Bienvenu Chenu (Fleury Chenu) (1833-1875), Trainees, Snow Effect (1870), oil on canvas, 170 × 152.5 cm, Musée d’Orsay, Paris. Wikimedia Commons.

Fleury Chenu’s father in Briançon, France, was a master tailor working for the French Sixth Regiment at the time. Chenu’s Trainees, Snow Effect from 1870 gives a good idea of the limited preparation which the French had made as tensions mounted during the previous winter. Although a detailed realist painting, Chenu’s sky is powerful, and sets the scene for the straggling trainees as they make their way along the icy road.

jeanniotreservistes
Pierre-Georges Jeanniot (1848–1934), Reservists (1870), further details not known. Wikimedia Commons.

Pierre-Georges Jeanniot had become an officer in the French infantry in 1866, and at the time of the war was a Lieutenant in the 23rd Infantry. He must have known how numerically inferior and weak the French forces were when he painted these Reservists (1870) queueing in the heavy showers to enlist and serve their country. This mobilisation occurred before reforms had been implemented to the system, and proved chaotic and inadequate.

Jeanniot was wounded at Rezonville, was awarded the Légion d’Honneur for his service during the war, and eventually left the army in the rank of Major.

vonmenzeldepartureofking
Adolph von Menzel (1815–1905), Departure to the Army of King William I, 31 July 1870 (1871), oil on canvas, 63 x 78 cm, Alte Nationalgalerie, Berlin, Germany. Wikimedia Commons.

Emperor Napoleon III left Paris for the new headquarters in Metz, as commander of the Army of the Rhine, on 28 July 1870. Although the Prussian army had its own professional General Staff under the command of Field Marshal von Moltke, Adolph von Menzel here shows the ceremonial Departure to the Army of King William I, 31 July 1870 (1871). That same day, Napoleon’s forces moved towards the Saar River to pre-emptively seize the Prussian town of Saarbrücken.

vonwernercrownprince
Anton von Werner (1843–1915), Crown Prince Friedrich Wilhelm with the Body of General Abel Douay, Weißenburg, 4 August 1870 (1888), media and dimensions not known, Germanisches Nationalmuseum, Nuremberg, Germany. Wikimedia Commons.

Anton von Werner had been sent with the staff of the Prussian Third Corps under the command of Crown Prince Friedrich Wilhelm of Prussia. When French and Prussian forces fought their first substantial action in the Battle of Wissembourg on 4 August, the French were soundly defeated and forced to retreat. The commander of the French I Corps was killed, and von Werner committed that to canvas in 1888 as Crown Prince Friedrich Wilhelm with the Body of General Abel Douay, Weißenburg, 4 August 1870.

That was the first of a series of major defeats for the French during August.

deneuvillelastcartridges
Alphonse-Marie-Adolphe de Neuville (1836–1885), The Last Cartridges (1873), oil on canvas, 109 x 165 cm, Musée d’Orsay, Paris. Wikimedia Commons.

Alphonse-Marie-Adolphe de Neuville made his reputation with a succession of popular paintings showing the war. The Last Cartridges (1873) shows French snipers from the Blue division of the Marines ambushing Bavarian troops in l’Auberge Bourgerie in Bazeilles just prior to the Battle of Sedan, in which the French suffered their most disastrous defeat to date: on 2 September 1870, Napoleon III himself was forced to surrender with 104,000 of his soldiers.

deneuvillespy
Alphonse-Marie-Adolphe de Neuville (1836–1885), The Spy (1880), oil on canvas, 130.2 x 213.4 cm, Metropolitan Museum of Art, New York, NY. Wikimedia Commons.

De Neuville’s The Spy from 1880 shows a scene exploiting the humiliation of the French defeat. As Prussian forces advanced through northern France, they captured and shot good French citizens who they considered had got in their way. The Frenchman in blue to the right of centre is being searched and stripped in front of a group of Prussian officers, clearly accused of trying to defend his own country. Paintings like this fuelled Revanchism, the lasting sense of bitterness and demand for revenge against Prussia, and were disturbingly popular.

deneuvilleintrenches
Alphonse-Marie-Adolphe de Neuville (1836–1885), In the Trenches (1874), oil on canvas, 57.7 x 96.5 cm, Walters Art Museum, Baltimore, MD. Wikimedia Commons.

De Neuville’s In the Trenches (1874) is perhaps a more faithful depiction of the conditions that French soldiers had to endure as the Prussians took more French territory during the early winter. Members of the Garde Mobile take what shelter they can in the bitter cold.

boutignyscenewar
Paul-Émile Boutigny (1853–1929), Scene from the Franco-Prussian War (date not known), oil on canvas, 49 x 60 cm, location not known. Wikimedia Commons.

Paul-Émile Boutigny’s undated Scene from the Franco-Prussian War shows that life was no easier for the better-trained and properly equipped Prussian forces as the fighting moved into the winter. I’m very grateful to Boris for decoding the uniforms and equipment shown here (see his comment below). The soldier on the left is French, and holds a French Chassepot musketon with a long yataghan bayonet, while his colleague on the right appears to be Prussian, with his pickelhaube spiked helmet and a heavy cavalry cuirass that’s essentially modernised armour. Behind them is a group of mixed French and German soldiers who appear to be walking wound proceeding in front of an ambulance wagon.

betsellerelost
Émile Betsellère (1847–1880), L’Oublié! (Forgotten) (1872), oil on canvas, dimensions not known, Musée Bonnat-Helleu, Bayonne, France. Wikimedia Commons.

Émile Betsellère’s moving L’Oublié! (Forgotten) from 1872 shows the appalling conditions facing the wounded after a winter battle.

ankerbourbakis
Albert Anker (1831–1910), Bourbakis (1871), media not known, 95 x 151 cm, Musée d’art et d’histoires, Neuchâtel, Switzerland. Wikimedia Commons.

Albert Anker was a Swiss artist who you wouldn’t have expected to have painted scenes from the Franco-Prussian War. However, in January 1871, he was witness to a strange event that must have affected him deeply.

The French General Charles Bourbaki (1816-1897) had been put in command of the Army of the East, soldiers who had been hastily trained and were ill-equipped. He and his troops were defeated in their attempt to raise the siege of Belfort, and were pursued by the Prussians until they crossed the border into Switzerland in late January and early February. Just over half of his 150,000 men had survived, and were in desperate straits by this time, as the winter conditions worsened. The Swiss disarmed them, gave them as much shelter and aid as they could, as shown in Anker’s painting of Bourbakis from 1871, and returned them to France in March.

Most important of all, though, was the fact that on 19 September 1870, Prussian forces had taken control of the country around Paris, and put the capital under siege.

Saturday Mac riddles 301

Here are this weekend’s Mac riddles to entertain you through family time, shopping and recreation.

1: Roll pasted on the interior background.

2: Secure partition for the idle display.

3: Pastime bull’s-eye for the player.

To help you cross-check your solutions, or confuse you further, there’s a common factor between them.

I’ll post my solutions first thing on Monday morning.

Please don’t post your solutions as comments here: it spoils it for others.

A brief history of compression on Macs

Given that it was over three years before Apple first shipped a Mac with an internal hard disk, it’s not surprising that one of its early shareware apps was Harry Chesley’s PackIt III for compressing archives of files, in 1986. At that time, the emphasis was more on working out how to archive both forks of Mac files and how to restore them, and less on achieving efficient compression.

The following year, 16 year-old Raymond Lau, then still a high school student, developed and marketed its replacement, Stuffit, which rapidly established itself as the standard, and probably the most popular shareware utility for the Mac. From 1987 until the release of Mac OS X in 2001, Stuffit had few rivals and its .sit archives were widespread across Macs, but didn’t make it to PCs or Windows until much later.

In 1988, Aladdin Systems was formed to take over development and sales of Stuffit, and in 2004 it changed name to Allume Systems, and was bought by IMSI. The following year, Allume was bought by Smith Micro Software, Inc.

Aladdin continued a shareware version as Stuffit Classic, and launched a commercial version as Stuffit Deluxe. This line-up was later augmented with a freeware decompressor Stuffit Expander that was bundled in Mac OS X until 10.4 Tiger.

Less known today are Stuffit’s self-expanding archive apps, with built-in decompressors and the extension .sea, that enabled the few Macs without a copy of Stuffit to open them with a double-click.

Until more powerful Macs of the mid-1990s, compression was performed in software and painfully slow. One of the more popular add-in cards for expandable Macs like the Macintosh II was Sigma Designs’ DoubleUp NuBus card that compressed in real time using Salient Software’s DiskDoubler.

This is Stuffit Deluxe version 8.0.2 from 2003, the year before Aladdin was renamed Allume.

Stuffit Deluxe included support for conversion to and from BinHex encoding, used for sending binary files via email without the risk of data corruption.

DropStuff was a drag-and-drop tool or droplet for compressing files into Stuffit, Zip or Tar archives, with support for encryption, and segmentation for use where file sizes were limited.

Its Zip option also preserved resource forks.

Archives in a range of formats, including RAR, could be managed in Stuffit Archive Manager, which could even schedule automatic creation of archives.

Although Aladdin launched a Mac OS X version with a new archive format, .sitx, and support for additional compression methods beyond its own proprietary formats, Stuffit entered decline by the time it was acquired by Smith Micro. Compression requirements had changed in Mac OS X, with decreasing use of resource forks, and free availability of bundled cross-platform compression tools such as GNU Gzip.

In 2007, BetterZip supported a standard set of compression formats, including 7-Zip, but never really caught on.

This is cross-platform WinZip seen in 2015, five years after its first release for the Mac. This originated as a graphical interface for PKZIP.

Apple started including compression tools in /System/Library/CoreServices, initially with BOMArchiveHelper in Mac OS X 10.3 Jaguar, which became Archive Utility that lives on today, supporting the Compress command in the Finder’s contextual menu. This uses a modified implementation of the Zip method that preserves extended attributes, successor to the resource forks of Classic Mac OS.

For many years, Mac OS X has had access to compression at a system level, but Apple has unaccountably not opened that up to developers. In modern Macs, compression is extensively used both on disk and in memory. However, in macOS Big Sur in 2020 Apple introduced AppleArchive with its system-level support for LZ4, LZMA, zlib and a proprietary implementation of LZFSE, and those are available in a new command tool aa.

Archive Utility offers a few options, and from 2020 has included support for plain and encrypted AppleArchive format.

The arrival of Apple silicon Macs has expanded options available for compression utilities to make better use of their two core types and energy efficiency. Freeware Keka now gives the user the choice.

polycore4

Legacy copies of Stuffit are still available from here.

Urban Revolutionaries: 9 Poverty

The reality of urban life was that precious few who migrated from the country ever made their fortune in the city. For the great majority life was a constant battle to avoid poverty that, in the long run, turned out to be their only reward. Just as there were social realists who painted rural poverty in the middle of the nineteenth century, so there were a few who depicted urban poverty in its closing decades.

raffaelliragpicker
Jean-François Raffaëlli (1850-1924), The Ragpicker (1879), oil on panel, 77 × 69 cm, location not known. Wikimedia Commons.

During the mid-1870s, Jean-François Raffaëlli started painting the poorer residents of Paris and its surrounds. The Ragpicker from 1879 was a great success, and his work was promoted by the influential critic Joris-Karl Huysmans.

raffaelligarlicseller
Jean-François Raffaëlli (1850–1924), Garlic Seller (c 1880), media not known, 71.8 x 48.9 cm, Museum of Fine Arts Boston, Boston, MA. Wikimedia Commons.

Raffaëlli’s elderly Garlic Seller from about 1880 is making his way across a muddy field just beyond one of the new industrial areas on the outskirts of Paris, his battered old wickerwork basket containing the garlic he hoped to sell. Behind him is his companion, a dog.

raffaelliparisianragpickers
Jean-François Raffaëlli (1850-1924), Parisian Rag Pickers (c 1890), oil and oil crayon on board set into cradled panel, 32.7 × 27 cm, Brooklyn Museum, New York, NY. Wikimedia Commons.

Raffaëlli painted these Parisian Rag Pickers in about 1890 using mixed media of oil paints and oil crayons.

breitnerdistributionsoup
George Hendrik Breitner (1857–1923), Distribution of Soup (1882), watercolour, dimensions not known, Stedelijk Museum Amsterdam, Amsterdam, The Netherlands. Wikimedia Commons.

In 1882, George Hendrik Breitner met Vincent van Gogh, and the pair went out sketching and painting in the poorer parts of The Hague. Among Breitner’s paintings of that campaign is his watercolour Distribution of Soup (1882), showing those from poor families queuing for free soup.

pelezhomeless
Fernand Pelez (1848-1913), Homeless (1883), oil on canvas, 77.5 x 136 cm, location not known. Image by Bastenbas, via Wikimedia Commons.

Most of Fernand Pelez’s paintings of the poor are deeply unsettling, often frankly depressing. His Homeless from 1883 shows a worn and weary mother and her five children living on the street. She stares from sunken eyes straight at the viewer, as her children huddle in filthy blankets and sacking around her.

pelezmartyrvioletvendor
Fernand Pelez (1848-1913), A Martyr – The Violet Vendor (1885), media and dimensions not known, Petit Palais, Paris. Wikimedia Commons.

Pelez’s painting became even more pointed, as in A Martyr – The Violet Vendor from 1885, showing a child of the street. One of the small bunches of violets has fallen from his tray. His eyes are closed, and his mouth agape: is he dead asleep, or simply dead?

krohgstruggleforsurvival
Christian Krohg (1852–1925), The Struggle for Existence (1889), oil on canvas, 300 x 225 cm, Nasjonalgalleriet, Oslo, Norway. Wikimedia Commons.

In the late 1880s the Norwegian artist Christian Krohg had been working on his next major painting, The Struggle for Existence (also translated as The Struggle for Survival) (1889). It shows Karl Johan Street in Oslo in the depths of winter, almost deserted except for a tight-packed crowd of poor women and children queuing for free bread. This was Oslo’s main street at the time, and three years later was to be the setting for Edvard Munch’s famous painting of Evening on Karl Johan Street.

The people are wrapped up in patched and tatty clothing, clutching baskets and other containers for the food. A disembodied hand is passing a single bread roll out to them, from within the pillars at the left edge. That was yesterday’s bread; now stale, the baker is giving it away only because he cannot sell it. A policeman, wearing a heavy coat and fur hat, walks in the distance, down the middle of the icy street, detached from the scene.

geoffroynighthostel
Henri Jules Jean Geoffroy (1853–1924), The Night Hostel (or, The Soup Kitchen) (1891), further details not known. Wikimedia Commons.

Better known for his many paintings of schools and children, Henri Jules Jean Geoffroy’s painting of The Night Hostel or The Soup Kitchen (1891) shows homeless women and children being fed in what appears to be almost a prison.

henningsenevicted
Erik Henningsen (1855–1930), Evicted (1892), oil on canvas, dimensions not known, Statens Museum for Kunst (Den Kongelige Malerisamling), Copenhagen, Denmark. Wikimedia Commons.

In Denmark, Erik Henningsen’s Evicted from 1892 shows a family of four being evicted into the street in the winter snow. With them are their meagre possessions, including a saw suggesting the father may be a carpenter. In the background he is still arguing with a policeman.

macOS 15.3.2 Sequoia won’t install older macOS on Apple silicon Macs

Installing macOS on external bootable disks connected to Apple silicon Macs has been one of the most frustrating experiences of my life, and has driven some more experienced than me to abandon their attempts altogether. The latest bug in this was reported by Michael Tsai earlier this week, and can prevent you from installing any version of macOS prior to Sequoia, on an external disk connected to an Apple silicon Mac running macOS 15.3.2, and likely earlier versions of Sequoia.

To reproduce this, I partitioned an external 2 TB SSD connected to my MacBook Pro M3 Pro, which originally shipped with Sonoma 14.1. I have on many occasions installed macOS on that SSD for use with Apple silicon Macs, and hadn’t had a failure with it. To ensure favourable winds, I connected the SSD to the USB-C port at the right of the left side of the case, which isn’t the designated DFU port.

Apple disables installers for previous major versions of macOS from running in more recent versions. Trying to run a Sonoma installer in Sequoia is therefore doomed to fail. Instead, the installer has to be converted into a bootable installer volume, and the Mac booted from that to perform the installation. Although you can use a USB ‘thumb’ drive for that purpose, I prefer to use a 100 GB partition on a convenient external disk, in this case the same SSD on which macOS was to be installed. One of the quirks of bootable installers is that they must still use HFS+ rather than APFS, hence they get a partition of their own.

The three partitions I created were:

  • APFS container with two APFS case-insensitive unencrypted APFS volumes in 900 GB
  • APFS container with one APFS case-insensitive unencrypted APFS volume in 1 TB
  • HFS+ Journaled volume in 100 GB.

I used two Sonoma full installer apps, one for 14.6.1 taken from my library, the other for 14.7.4 freshly downloaded from Apple, both installed from InstallAssistant packages into /Applications. Each was successfully installed individually into the HFS+ volume on the external SSD following the instructions given by Apple.

In each test, I entered the external installer from Recovery mode as detailed by Apple, and started installation to one of the two APFS volumes in the first APFS container on the external SSD. After long periods attempting the installations, both failed with exactly the same error reported by Michael Tsai: com.apple.OSinstallerSetup.error error 702

Between the two attempted installations, both the HFS+ volume and the destination APFS container were erased and set up again. Following those two failures, I successfully installed macOS 15.2 and 15.3.2 direct to the three APFS volumes on the external SSD without any problems, and verified that all three Sequoia installations had been completely successful.

I therefore conclude that, in Sequoia 15.3.2 at least, it’s not possible to install any version of macOS prior to Sequoia 15.0 on an external SSD connected to an Apple silicon Mac. If your experience differs, then please let me know how you did it.

Michael Tsai appears to have been successful only when running the installation from Sonoma. If you do need access to a non-virtualised installation of Sonoma or earlier, it appears the only way you’re likely to succeed is from Sonoma, which would require you to perform a full DFU Restore to revert the Mac to macOS 14.

Useful tricks

  • The Mac must be capable of running that version of macOS.
  • The external disk must be connected to a port other than the DFU port.
  • When installing an older major version of macOS, perform this from an external bootable HFS+ volume as detailed by Apple.
  • Use an HFS+J partition on an external SSD rather than a USB ‘thumb’ drive.
  • Boot from the installer volume through Recovery mode.
  • When using a laptop model, run it from mains power throughout macOS installation.
  • If essential, you can revert the Mac’s internal SSD to an older version of macOS and firmware using a full DFU Restore with an appropriate IPSW image file.
  • Use a Virtual Machine instead, if you don’t need to be able to run software from the App Store.

Interiors by Design: Writing desks

Even for those well versed in the act of writing, it usually demanded a formal technique and took place at a dedicated piece of furniture, a writing desk. That often provided storage for the quills, pens and ink required, as well as a stock of paper. They could also be more elaborate and house a complete office with correspondence sorted into drawers, and pigeonholes that much later were models for software mailboxes. For the wealthy these more elaborate writing desks might be crafted by a joiner using exotic woods into a large bureau.

Antonello da Messina, Saint Jerome in his Study (c 1475), oil on lime, 45.7 x 36.2 cm, The National Gallery, London. Wikimedia Commons.
Antonello da Messina (c 1430–1479), Saint Jerome in his Study (c 1475), oil on lime wood, 45.7 x 36.2 cm, The National Gallery, London. Wikimedia Commons.

Antonello da Messina’s groundbreaking oil painting of Saint Jerome in his Study from around 1475 features an integrated office with shelving, although there are few books visible.

terborchwomanwriting
Gerard ter Borch (1617–1681), Woman Writing a Letter (c 1655), oil on panel, 39 x 29.5 cm, Koninklijk Kabinet van Schilderijen Mauritshuis, The Hague, The Netherlands. Wikimedia Commons.

Gerard ter Borch’s Woman Writing a Letter from about 1655 shows a more modest desk doubling as a table. Its heavy decorated table cover has been pushed back to make room for the quill, ink-pot, and letter. Behind the woman is her bed, surrounded by heavy drapery, and at the lower right is the brilliant red flash of the seat.

vermeerladywriting
Johannes Vermeer (1632–1675), A Lady Writing a Letter (1665-1666), oil on canvas, 45 × 39.9 cm, National Gallery of Art, Washington, DC. Wikimedia Commons.

Vermeer painted at least two works showing women writing, of which the earlier is A Lady Writing a Letter from 1665-1666. The fur trimmings on her golden jacket confirm that this is no country bumpkin, but the lady of an affluent and well-educated house. Rather than looking down at her quill, she stares the viewer out, her faint smile of confidence lit by sunlight coming through the window off to the left. This illustrates the importance of placing a writing table or desk where it can be lit well by daylight, hence an association between writing desks and windows.

kernstudyinteriorstpolten
Matthäus Kern (1801–1852), A Study Interior at St. Polten (1837), brush and watercolor on white wove paper, dimensions not known, Cooper Hewitt, Smithsonian Design Museum, New York, NY. Wikimedia Commons.

Matthäus Kern’s watercolour showing A Study Interior at St. Polten (1837) reveals two contrasting types of writing desk: that at the right edge has a drawer and pigeonholes above to order papers and correspondence, while the long desk to the left of it has books, papers and writing instruments laid out across its flat surface, and a folding extension leaf to accommodate even more.

Kit's Writing Lesson 1852 by Robert Braithwaite Martineau 1826-1869
Robert Braithwaite Martineau (1826–1869), Kit’s Writing Lesson (1852), oil on canvas, 52.1 x 70.5 cm, The Tate Gallery (Presented by Mrs Phyllis Tillyard 1955), London. Photographic Rights © Tate 2016, CC-BY-NC-ND 3.0 (Unported), http://www.tate.org.uk/art/artworks/martineau-kits-writing-lesson-t00011

Robert Braithwaite Martineau’s painting of Kit’s Writing Lesson from 1852 shows this young character from Charles Dickens’ novel The Old Curiosity Shop struggling to write with a more modern dip pen. Sewing next to Kit Nubbles is the orphaned heroine Nell Trent, who is teaching him to write in the shop where he works.

urywomanwriting
Lesser Ury (1861–1931), Woman at a Writing-Desk (1898), oil on canvas, 71 x 51.5 cm, Alte Nationalgalerie, Berlin, Germany. Wikimedia Commons.

Lesser Ury’s Woman at a Writing-Desk from 1898 is an everyday interior with a woman, a pianist perhaps, sitting writing at her bureau-style desk. The popularity of bureaux was perhaps one mark of the achievement of education.

helleummehelleusecretaire
Paul César Helleu (1859–1927), Madame Paul Helleu Seated at Her Secretaire, Seen from the Back (c 1900), oil on canvas, 80.7 x 64.8 cm, Private collection. The Athenaeum.

Paul Helleu’s portrait of Madame Paul Helleu Seated at Her Secretaire, Seen from the Back from about 1900 is an unconventional view of his wife, who appears dressed for a social engagement rather than catching up with her letter-writing.

vallottonwomanreading
Félix Vallotton (1865–1925), Woman Reading in an Interior (1904), oil on board, 60.3 x 34.6 cm, Museum of Fine Arts, Houston, TX. Wikimedia Commons.

There’s dispute as to whether this painting by Félix Vallotton shows a Woman Reading in an Interior, as given by its French title, or a woman writing. Vallotton painted this in 1904, and its single figure doesn’t show her face as she sits at her small bureau, backlit by the light streaming in through the window.

bonnardletter1906
Pierre Bonnard (1867-1947), The Letter (c 1906), oil on canvas, 55 x 47 cm, The National Gallery of Art, Washington, DC. The Athenaeum.

Pierre Bonnard painted a few interiors featuring a woman writing. The Letter from about 1906 is a conventional portrait of a well-dressed woman sitting at a desk or table to write a letter, and may have used Anita Champagne as the model. Her right hand holds a fountain pen with its own ink reservoir, a big step forward from the quill.

paxtonnewnecklace
William McGregor Paxton (1869–1941), The New Necklace (1910), oil on canvas, 91.8 x 73.0 cm, The Museum of Fine Arts Boston (Zoe Oliver Sherman Collection), Boston, MA. Image courtesy of The Museum of Fine Arts Boston.

The New Necklace (1910) is one of William McGregor Paxton’s best-known paintings, and perhaps his most intriguing open narrative. A younger woman is sat at a narrow bureau writing. She has turned her chair so that she can reach behind and hold out her left hand to receive the new necklace of the title. This is being lowered into her hand by a slightly older woman, in a dark blue-green dress, whose face and eyes are cast down, and her left hand rests against her chin. The writing desk of this bureau is hinged so that it stores vertically and encloses the drawers inside.

A last aside: not one of these writers appears to be holding their quill or pen in their left hand. Teachers of the past weren’t as accommodating.

Controlling LaunchServices in macOS Sequoia

As its name suggests, LaunchServices is responsible for key features integrating the launch of apps and document types. Together with the more recent RunningBoard subsystem, it handles much of the work involved in launching apps, as I explored yesterday for Sequoia. This article looks in more detail at LaunchServices and what you can do to address problems, such as ensuring that only the apps you want are listed in the Finder’s Open With… contextual command.

RunningBoard is concerned with the control of resources such as memory, GPU access, CPU limits and the process lifecycle. Events are handled as assertions, and for apps that it manages those can result in reallocations and changes of state. Each running app has a lengthy and detailed job description created during launch but that doesn’t persist once an app has shut down.

In contrast, LaunchServices compiles a large registry database of apps and their associations with and capabilities for handling different document types. Its records determine which app opens a document when you double-click on its icon in the Finder, and most prominently which are listed when you open the Open With… item in the Finder’s contextual menu. Apps are registered there automatically, and their details are updated each time they’re run. Although the user can’t interact directly with LaunchServices, there is a command tool that offers control over it, lsregister, although it’s buried deep in the system frameworks, doesn’t have a man page, and now works differently.

lsregister

This command tool can be found at /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister, and typing that in with the -h option will show its usage information, as the closest you’ll come to documentation. If you’re going to use it much, you’ll want to create an alias for it, or add it to your PATH with
PATH=/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support:"$PATH"
to use the command as lsregister, as I’ll do here.

Useful lsregister commands follow one of two forms:
lsregister [options] [path]
to register or unregister an item (usually an app) specified by the path, and
lsregister [options] [-apps domainlist] [-libs domainlist] [-all domainlist]
to act on the LaunchServices database for the given types (apps, libs, all) and domains. Domains are usually specified as a list of letters:
u,s,l,n
is the complete set, covering user (your Home folder), system, local and network.

Registration

In the past, apps used to populate the LaunchServices registry were those located in the traditional Applications folders, but recent versions of macOS have extended that to cover almost any accessible folder. This has been explored by Jeff Johnson, who has shown that excluding folders and volumes from Spotlight indexing, by adding them to the list in Search Privacy… in Spotlight settings, will exclude those apps from LaunchServices’ list. Alternatively, you can hide the folder they’re in by adding a dot to the start of its name. However, that can still fail at times, for example if you open that excluded location in the Finder, resulting in those hidden apps being added back into that list.

You can try to remove an app from the LaunchServices registry using the command
lsregister -R -f -u pathname
where pathname is the path and name of the app. In Sequoia, that invariably returns an error that lsregister “failed to scan [path]: -10814 from spotlight,” where the path given is that to the app. That error code comes from LaunchServices, and its name reveals the cause: kLSApplicationNotFoundErr, even when the pathname given to lsregister is correct. Despite that error, if that app is hidden from Spotlight search, this should prove effective until something undoes it again.

This over-enthusiasm to register apps can be even more than a nuisance when running a lightweight macOS Virtual Machine on Apple silicon. If you make the host’s Applications folder a shared folder with the VM, then open that shared folder within the VM, all the apps within it are promptly added to the Open With… list in the guest, a behaviour likely to be unwanted.

Given the current state of LaunchServices discovery, you’re unlikely to want to add an app to the database, as it’s most probably already there, whether wanted or not.

Resetting the registry

In the past, one last-ditch method of addressing LaunchServices problems has been to reset its registry. You can perform that using either
lsregister -kill -r -v -apps u
to affect just the user domain, or
lsregister -kill -r -v -apps u,s,l
to widen its coverage to other domains.

Running either of those in recent versions of macOS including Sequoia is likely to wreak havoc, though. While this appears to be effective with the Open With… list, its effects on System Settings can be catastrophic. This can remove its entire contents, and even blow the wallpaper away. Normal function should start to return after restarting the Mac, but even then problems can persist.

Dumping the registry

Even on a minimal Mac, LaunchServices’ registry is very large. If you want to inspect its contents, use a command like
lsregister -dump > ~/Documents/lsregisterDump.text
to write its contents to the file lsregisterDump.text. Browsing that should keep you occupied for many hours or days.

Summary

  • LaunchServices is responsible for making associations between apps and documents, and maintains a large registry of all apps and document types.
  • Its registry is used to populate the list for the Open With… item in the Finder’s contextual menu.
  • LaunchServices now tries to include all apps in accessible volumes and folders.
  • You can control (to a limited degree) its registry using the hidden lsregister command tool.
  • You can exclude apps only if their location is excluded from Spotlight search by adding it to Search Privacy… in Spotlight settings.
  • LaunchServices in a VM will also try to include all apps in shared folders on the host.
  • Resetting the registry using lsregistry -kill can wreak havoc with System Settings and should be avoided.
  • Dump the registry to text using lsregister -dump if you enjoy a long read.

Reading Visual Art: 201 Dancing, ballet and erotic

In this second article about reading dancing in paintings, I move on to its most formalised expression, in ballet, which came to dominate the work of several artists in the late nineteenth century, most notably that of Edgar Degas.

degasdanseusebasculant
Edgar Degas (1834–1917), Danseuse basculant (Danseuse verte) (Swaying Dancer, Dancer in Green) (1877-79), pastel and gouache on paper, 64 x 36 cm, Museo Thyssen-Bornemisza, Madrid, Spain. Wikimedia Commons.

His ballet paintings came to concentrate on smaller groups of dancers, focussing more on their form and movement, as in Swaying Dancer (Dancer in Green) from 1877-79. This is painted not in oils, but a combination of pastel and gouache.

stuckdancers1896
Franz von Stuck (1863-1928), Dancers (1896), further details not known. Wikimedia Commons.

Depicting movement has always been a technical challenge. At the end of the century, Franz von Stuck appears to have used flowlines in his Dancers in 1896, rather than simple motion blur.

sargentcarmencita1905
John Singer Sargent (1856–1925), La Carmencita (c 1905), other details not known. Wikimedia Commons.

A decade after the dancing career of La Carmencita went into decline, John Singer Sargent used his virtuoso brushstrokes to capture her motion. His inspiration was the swish of Giovanni Boldini, in the movement of the fabric rather than its form.

Exotic dancing also featured in Orientalist paintings, with their erotic associations.

chasseriaumoorishdancers
Théodore Chassériau (1819–1856), Moorish Dancers (1849), oil on panel, 32 x 40 cm, Musée du Louvre, Paris. Wikimedia Commons.

Théodore Chassériau painted this sketchy portrait of two Moorish Dancers in 1849, in the style of Delacroix.

rochegrossepalaceentertainment
Georges Rochegrosse (1859–1938), The Palace Entertainment (date not known), oil on canvas, further details not known. The Athenaeum.

Georges Rochegrosse’s undated Palace Entertainment shows a dancer with a musical group entertaining some Algerian men, her routine involving a pair of short swords.

The early Christian church had developed moral concerns over popular performing arts including music and dancing, and by the time of Hieronymus Bosch they were included alongside gambling in those who had gone to Hell.

poynterioniandance
Edward Poynter (1836–1919), The Ionian Dance: Motus doceri gaudet Ionicos, Matura virgo et fingitur artubus (1895), oil on canvas, 38.5 x 51 cm, location not known. Wikimedia Commons.

Edward Poynter’s The Ionian Dance: Motus doceri gaudet Ionicos, Matura virgo et fingitur artubus (1895) quotes the ‘Roman’ Odes of Horace, and describes the ‘corruption’ of a young woman who learns the ‘lascivious’ movements of this particular dance. The Latin text may be translated as it pleases the mature virgin to be taught the movements of the Ionian Dance, and shapes her limbs. However, artubus may be a double entendre, as it can also refer to the sexual organs.

Poynter’s painting shows a shapely young woman, wearing nothing but a diaphanous dress, dancing vigorously in front of an audience of eight other women, who seem critically engaged in her performance. This appears decidedly Aesthetic, as well as more than a little risqué.

seuratlechahut
Georges Seurat (1859–1891), Le Chahut (The Can-Can) (1889-90), oil on canvas, 170 × 141 cm, Kröller-Müller Museum, Otterlo, The Netherlands. Wikimedia Commons.

Although it may seem a paradoxical subject for the slow and painstaking Divisionist approach to painting, Georges Seurat’s Le Chahut (The Can-Can) (1889-90) is a well-known celebration of a dance that became notorious in its day.

It was an infamous dance from a reinterpretation of the martyrdom of John the Baptist that swept Europe and North America in the early twentieth century, that of Salome.

moreauapparitionfogg
Gustave Moreau (1826–1898), The Apparition (1876-77), oil on canvas, 55.9 x 46.7 cm, Harvard Art Museums/Fogg Museum (Bequest of Grenville L. Winthrop), Cambridge, MA. Courtesy of Harvard Art Museums.

The paintings Gustave Moreau made of Salome initiated this, among them being this later oil version of The Apparition from 1876-77. Those prompted Gustave Flaubert to write a short story telling this radical rewriting of the martyrdom, from which Oscar Wilde wrote his play Salomé, and that in turn led Richard Strauss to write his opera. In 1906, the dancer and choreographer Maud Allan produced a show in Vienna featuring the Dance of the Seven Veils that had been included in both Wilde’s play and Strauss’s opera, and many considered to be nothing short of a striptease.

henrisalome
Robert Henri (1865–1929), Salome (1909), oil on canvas, 196.9 x 94 cm, John and Mable Ringling Museum of Art, Sarasota, FL. The Athenaeum.

Strauss’s opera arrived in New York in 1907, and inspired Robert Henri to invite a Mademoiselle Voclexca to perform the notorious Dance of the Seven Veils in his studio. He then interpreted her dance into a series of paintings, including this Salome (1909), in which John’s head has been omitted altogether.

We’ve strayed a long way from faeries and country folk.

How macOS Sequoia launches an app

Each new version of macOS has increased the complexity of launching apps, from the basics of launchd, the addition of LaunchServices, to security checks on notarization and XProtect. This article steps through the major landmarks seen when launching a notarized app that has already passed its first-run checks and is known to macOS Sequoia 15.3, on an Apple silicon Mac.

Rather than trying to provide a blow-by-blow account of what’s written in the log over the course of thousands of entries, I’ve extracted landmarks that demonstrate when each subsystem gets involved and its salient actions. These have been gleaned from several similar app launches, and are ultimately timed and taken from one complete record of one of my simpler notarized apps that has no entitlements and uses only basic AppKit features. The app hadn’t been through quarantine as it had been built and notarized on the same Mac, and had been run previously but not in that session since the previous boot. It had thus been previously registered with LaunchServices and other subsystems. The host was a Mac mini M4 Pro, so timings should be briefer than on many other Macs, it was run from the main Applications folder on the internal SSD, and AI was enabled.

LaunchServices and RunningBoard

LaunchServices has been around for many years, and handles many of the tasks exposed in the Finder, including mapping of document types to app capabilities, Recent Items and Open Recent lists, making it the backbone of app launching. RunningBoard was introduced in Catalina and has steadily assumed responsibility for managing resources used by apps, including memory and access to the GPU. Although the test app doesn’t have any of its resources managed by RunningBoard, LaunchServices launched it through RunningBoard.

RunningBoard’s first task is to create a job description, which it helpfully writes to the log as a dictionary. This is a mine of useful information, and has replaced the copious information compiled by LaunchServices in the past. This includes:

  • a dictionary of Mach services
  • whether Pressured Exit is enabled
  • a full listing of environment variables, such as TMPDIR, SHELL, PATH
  • RunningBoard properties including another TMPDIR
  • whether to materialise dataless files.

Once that job description has been constructed for the app, RunningBoard tracks the app and its assertions, providing a detailed running commentary through the rest of the app’s life. LaunchServices still performs its traditional tasks, including creating an LSApplication object and sending an oapp AppleEvent to mark the opening of the app, and launchd still reports that it’s uncorking exec source upfront.

When the app is running, its preferences are loaded from the user CFPrefsD, and its pasteboard is created. Almost 0.1 second later (0.3 seconds after the start of launch) there’s a sustained flurry of log entries concerning Biome, and signs of AI involvement (Apple silicon only). The latter include a check for the availability of generative models and WritingTools. There are also entries referring to the loading of synapse observers.

LaunchServices log entries are readily accessed through its subsystem com.apple.launchservices, and RunningBoard through com.apple.runningboard.

Security and privacy

The first serious engagement in security is the verification of the app’s signature and its evaluation by Apple Mobile File Integrity (AMFI, using amfid). Shortly after that comes the standard Gatekeeper (GK) assessment, with its XProtect scan, starting less than 0.1 second after the start of launch. Immediately after the start of that scan, XProtect should report which set of data files it’s using. In Sequoia those should be at /var/protected/xprotect/XProtect.bundle/Contents/Resources/XProtect.yara. That scan took just over 0.1 second.

While XProtect is busy, syspolicyd checks the app’s notarization ticket online, through a CloudKit connection with the CKTicketStore. That’s obvious from log entries recording the network connections involved, and the complete check takes around 0.05 second. Once that and the XProtect scan are complete, syspolicyd reports the GK scan is complete, and evaluates its result.

At about the same time that the Gatekeeper checks are completing, privacy management by TCC (Transparency Consent and Control, in tccd) is starting up. Its initialisation includes establishing the Attribution Chain for any Mach-O binaries run by the app, so that TCC knows where to look for any required entitlements. Following that, TCC writes bursts of entries as different components such as the Open and Save Panel service are set up for the app.

The final phases of security initialisation come in provenance tracking, which first appeared in macOS Ventura. This may be associated with presence of the extended attribute com.apple.provenance, but details are currently sketchy.

Following syspolicy in the log is best through its subsystem com.apple.syspolicy, you can watch XProtect using com.apple.xprotect, and TCC is com.apple.TCC.

Overall

Downloadable PDF: applaunch153

Main landmarks with elapsed time in seconds:

  • 0.000 Finder sendAction
  • 0.023 LaunchServices, launch through RunningBoard
  • 0.029 RunningBoard launch request
  • 0.043 AMFI evaluate
  • 0.066 Gatekeeper assessment
  • 0.080 XProtect scan
  • 0.085 check notarization ticket
  • 0.187 TCC checks
  • 0.204 launched

Previous article

Launching apps in Sonoma 14.6.1: Conclusions

Apple has released an update to XProtect for all macOS

Apple has just released an update to XProtect for all supported versions of macOS, bringing it to version 5291. As usual, Apple doesn’t release information about what security issues this update might add or change.

This version amends the Yara rule for MACOS.PIRRIT.OBF.DROPPER, but doesn’t add any new rules.

You can check whether this update has been installed by opening System Information via About This Mac, and selecting the Installations item under Software.

A full listing of security data file versions is given by SilentKnight, LockRattler and SystHist for El Capitan to Sequoia available from their product page. If your Mac hasn’t yet installed this update, you can force it using SilentKnight, LockRattler, or at the command line.

If you want to install this as a named update in SilentKnight, its label is XProtectPlistConfigData_10_15-5291.

Sequoia systems only

This update has also been released for Sequoia via iCloud. If you want to check that manually, use the Terminal command
sudo xprotect check
then enter your admin password. If that returns version 5291 but your Mac still reports an older version is installed, you can force the update using
sudo xprotect update

I have updated the reference pages here which are accessed directly from LockRattler 4.2 and later using its Check blog button.

Reading Visual Art: 200 Dancing, myth and folk

There are few greater challenges to the figurative artist than painting figures in movement when they’re dancing. This week’s two articles about reading visual art consider the significance of rising to that challenge, and how we should read that dancing. I have already looked at paintings associated with death in the Danse Macabre, and won’t be revisiting that here.

As a rhythmic physical activity, dance has long been associated with the natural rhythm of time, particularly the hours of the day.

poussindancemusictime
Nicolas Poussin (1594–1665), A Dance to the Music of Time (c 1634-6), oil on canvas, 82.5 × 104 cm, The Wallace Collection, London. Wikimedia Commons.

Nicolas Poussin’s brilliant Dance to the Music of Time (c 1634-6) shows four young people dancing, who are sometimes interpreted as being the seasons. That probably isn’t the case, as they’re most likely Poverty (male at the back, facing away), Labour (closest to Time and looking at him), Wealth (in golden skirt and sandals, also looking at Time), and Pleasure (blue and red clothes) who fixes the viewer with a knowing smile. Opposite Pleasure is a small herm of Janus, whose two faces look to the past and the future. Above them, in the heavens, Aurora (goddess of the dawn) precedes Apollo’s sun chariot, on which the large ring represents the Zodiac. Behind the chariot are the Horai, the hours of the day.

previatidancehours
Gaetano Previati (1852–1920), Dance of the Hours (1899), oil and tempera on canvas, 134 x 200 cm, Gallerie di Piazza Scala, Milan, Italy. Wikimedia Commons.

Gaetano Previati’s Dance of the Hours from 1899 shows the Horai dancing in the air around a golden ring, with the orbs of the moon in the foreground and the sun far beyond. Every fine brushstroke is rich in meaning: in the Horai they give the sensation of movement, elsewhere they form a third dimension, or give texture to the ether.

In addition to this association with the Horai, when they’re not playing their musical instruments, the Muses are often depicted as dancing.

mantegnaparnassus
Andrea Mantegna (1431–1506), Parnassus (Mars and Venus) (1496-97), oil on canvas, 159 x 192 cm, Musée du Louvre, Paris. Wikimedia Commons.

Andrea Mantegna’s Mars and Venus, known better as Parnassus, (1496-97) refers to the classical myth of the affair between Mars and Venus, the latter being married to Vulcan, who caught them in bed together and cast a fine net around them for the other gods to come and mock their adultery. The lovers are shown standing together on a flat-topped rock arch, as the Muses dance below. To the left of Mars’ feet is Venus’ child Cupid aiming his blowpipe at Vulcan’s genitals, as he works at his forge in the cave at the left. At the right is Mercury, messenger of the gods, with his caduceus and Pegasus the winged horse. At the far left is Apollo making music for the Muses on his lyre.

thomaeightdancingwomen
Hans Thoma (1839–1924), Eight Dancing Women with Bird Bodies (1886), oil on panel, 38 × 58.5 cm, location not known. Wikimedia Commons.

More unusual is Hans Thoma’s Eight Dancing Women with Bird Bodies from 1886, which most probably shows the sirens dancing to their alluring voices.

Putti and their relatives such as amorini are also prone to dance, usually in the sky, presumably with the joy of love.

thomaspringfairytale
Hans Thoma (1839–1924), Spring Fairytale, An Allegory (1898), oil on canvas, 120 × 75 cm, location not known. Wikimedia Commons.

Thoma’s Spring Fairytale, An Allegory (1898) shows a woman who may have been influenced by the figure of Flora in Botticelli’s famous Primavera (c 1482). She’s surrounded by meadow flowers, two small fawns, and sundry winged putti dancing in the sky.

Similarly, the little people in ‘faery’ paintings are adept at formation dancing.

daddcomeuntotheseyellowsands
Richard Dadd (1817–1886), Come unto These Yellow Sands (1842), oil on canvas, 55.3 × 77.5 cm, Private collection. Wikimedia Commons.

Richard Dadd’s Come unto These Yellow Sands (1842) refers to William Shakespeare’s play The Tempest, rather than A Midsummer Night’s Dream, and was exhibited with the descriptive quotation:
Come unto these yellow sands,
And then take hands,
Curt’sied when you have, and kissed
(The wild waves whist).
Foot it featly here and there,
And sweet sprites the burden bear.

puvisdeathmaiden
Pierre Puvis de Chavannes (1824–1898), Death and the Maiden (1872), oil on canvas, 146 x 107 cm, Sterling and Francine Clark Art Institute, Williamstown, MA. Wikimedia Commons.

Pierre Puvis de Chavannes’ Death and the Maiden from 1872 is most probably based on Schubert’s song of the same title, expressing the inevitability of death, almost in terms of vanitas, that had last been popular during the Dutch Golden Age. This linked with the recent war, when so many young French and Prussian people had died, and with contemporary scourges such as tuberculosis resulting in so many deaths of young people. The maidens are seen dancing together, and picking wild flowers, as the personification of death is apparently asleep on the grass at the lower left, his black cloak wrapped around him and his hand resting on the shaft of his scythe.

This leads us to country and folk dancing, which in northern Europe has long been associated with traditional mid-summer feasts.

bretonfeastsaintjohn
Jules Breton (1827–1906), The Feast of Saint John (1875), oil, dimensions not known, Philadelphia Museum of Art, Philadelphia, PA. Wikimedia Commons.

One of Jules Breton’s major paintings from the 1870s is The Festival of Saint-Jean, shown in the Salon of 1875; I’ve been unable to locate a suitable image of that finished painting, but this study for it, The Feast of Saint John (1875) may give you an idea of its magnificence.

zornmidsummerdance
Anders Zorn (1860–1920), Midsummer Dance (1897), oil on canvas, 140 x 98 cm, Nationalmuseum, Stockholm, Sweden. Wikimedia Commons.

Anders Zorn’s major painting of 1897 was Midsummer Dance, capturing the festivities in his home town in Sweden, with women and men dancing outdoors in their uniform country dress.

axentowiczfolkdance
Teodor Axentowicz (1859–1938), Kołomyjka, Oberek Taniec ludowy przed domem (Oberek Folk Dance in Front of a House) (1895), oil on canvas, 85 x 112.5 cm, Muzeum Narodowe w Warszawie, Warsaw, Poland. Wikimedia Commons.

The title of Teodor Axentowicz’s painting of folk dancing, Oberek Folk Dance in Front of a House, appears confusing. Although it names this dance as the Oberek, the second most popular Polish folk dance after the polka, the first word Kołomyjka makes it clear that this is what’s now known as kolomyika (Ukrainian: кoлoмийкa). That’s a combination of a fast and vigorous folk dance with music and rhymed verse. It originated in the Hutsul town of Kolomyia in Ukraine, but has also become popular in north-eastern Slovenia and parts of Poland.

thomachildrendancingring
Hans Thoma (1839–1924), Children Dancing in a Ring (1872), oil on canvas, 161 × 115 cm , Staatliche Kunsthalle Karlsruhe, Karlsruhe, Germany. Wikimedia Commons.

Hans Thoma’s eight Children Dancing in a Ring (1872) are set in a Bavarian alpine meadow, with pastures and high mountains in the far distance.

Tomorrow I’ll start with the most formalised expression of dancing, at the ballet.

Better security means less recoverability

In the last couple of weeks I’ve been asked to help recover data lost when files have been accidentally deleted, and an internal SSD has been wiped remotely using Find My Mac. What we perhaps haven’t fully appreciated is how improved security protection in our Macs has made it far harder, if not impossible, to recover such lost data. Allow me to explain in three scenarios.

Lost files on a hard disk

When files are deleted from a hard disk, the file system marks them as no longer being in use, and they’re left in place on the hard disk until they need to be overwritten with fresh data. If the hard disk has ample free space, that could occur days, weeks or even months later. Data recovery software and services can be used to scan each storage block and try to reconstruct the original files. If the file system and its data are encrypted, the encryption key is required to enable the contents to be decrypted.

There’s extensive experience in such data recovery, and provided the disk isn’t physically damaged or malfunctioning, results can be surprisingly good. As services charge according to the amount of data they recover, there are also strong incentives.

This works both ways, of course, in that someone who gets access to that hard disk could also recover files from it if they’re unencrypted. For this reason, when you’re passing on or disposing of a hard disk, you should perform a secure erase to overwrite its entire contents. If it’s going for recycling, once that has been done, you should also render the disk unusable by physically damaging its platters.

Deleted files on an SSD

What happens on an SSD depends on whether there’s already a snapshot of that volume. If there is, and that snapshot includes the deleted files, the file system metadata for them is retained in that snapshot, and the storage containing their data is also retained. The files can then be recovered by mounting that snapshot and either reverting the whole volume to that earlier state, or copying those files to a different volume.

If there’s no prior snapshot containing the files, the file system marks their extents as being free for reuse. At some time after their deletion, that information is sent to the SSD in a Trim command. When the SSD next has a moment to perform its routine housekeeping, the physical storage used will then be erased ready to be written to again.

Although there’s some uncertainty as to when that Trim command will be sent to the SSD, one time that we know that supported SSDs are Trimmed is during mounting, in the case of an internal SSD when that Mac starts up. So if your Mac has started up since the files were deleted, those files are most likely to have been completely erased from its internal SSD. With their erasure, chances of ever recovering those files have gone.

Wiped Data volume

Macs with T2 or Apple silicon chips have an ingenious method of ‘wiping’ the entire contents of the Data volume when it’s encrypted on the internal SSD. This can be triggered using the Erase All Content and Settings (EACAS) feature in the Transfer or Reset item in General settings, or remotely via Find My Mac. Either way, this destroys the ‘effaceable key’ and the ability to decrypt the contents of the Data volume, even if it’s not additionally protected by FileVault. As Apple states: “Erasing the key in this manner renders all files cryptographically inaccessible.”

This is to ensure that if your Mac is stolen, no one can recover the contents of its internal SSD once it has been wiped in this way. Nearly a year ago there were claims that old data could re-appear afterwards, but those turned out to be false.

I’m afraid that the only way to recover the data from a volume wiped using EACAS or Find My Mac is to restore it from a backup.

Backups are more important

For Intel Macs with T2 chips, and Apple silicon Macs, the chances of being able to recover files from their internal SSDs have become diminishingly small. This makes it all the more important that you make and keep good and comprehensive backups of everything in your Mac’s Data volume.

I’m always sad to hear of those who have suffered data loss, and shocked to learn of how many still don’t keep backups.

Changing Paintings: 63 The tragedy of Galatea

As Ovid nears the end of Book 13 of his Metamorphoses, Aeneas and his companions are in transit across the Mediterranean, heading towards Italy and destiny. He rushes them through a rapid succession of adventures before bringing them to Sicily for the closing stories in this book.

Ovid summarises much of Virgil’s Aeneid in just a few lines, taking Aeneas from Crete through Ithaca, Samos, Dodona, and Phaeacia, to land on Sicily, where Scylla and Charybdis threaten the safety of mariners. Scylla is combing the hair of Galatea, as the latter laments her tragic love-life. Wiping tears from her eyes, Galatea then tells us her story.

When he was only sixteen, Galatea had fallen in love with Acis, the son of the river nymph Symaethis, but the Cyclops Polyphemus fell in love with her. The Cyclops did his best to smarten himself up for her, while remaining deeply and murderously jealous of Acis.

Telemus, a seer, visited Sicily and warned Polyphemus that Ulysses would blind his single eye, as told in a separate story in Homer’s Odyssey. This inevitably upset the Cyclops, who climbed a coastal hill and sat there playing his reed pipes. Meanwhile, Galatea was lying in the arms of her lover Acis, hidden behind a rock on the beach.

Polyphemus then launched into a long soliloquy imploring Galatea to come to him and spurn Acis. When he saw the two lovers together, he grew angry, and shouted loudly at them that that would be their last embrace. Galatea dived into the sea, but her lover was buried by the side of a mountain hurled by the Cyclops. The blood of Acis was turned into a stream that gushed forth from a reed growing in a cleft in the rock, with him as its river-god.

claudeacisgalatea
Claude Lorrain (1604/1605–1682), Coastal Landscape with Acis and Galatea (1657), oil on canvas, 102.3 × 136 cm, Gemäldegalerie Alte Meister, Staatliche Kunstsammlungen Dresden, Dresden, Germany. Wikimedia Commons.

Claude’s wonderful Coastal Landscape with Acis and Galatea (1657) is first and foremost a coastal landscape, but also tells Ovid’s story faithfully. Polyphemus is seen at the right, watching Acis and Galatea in their makeshift shelter down at the water’s edge, with Cupid sat beside them. Additional Nereids are tucked away in the trees at the left.

bertinacisgalatea
Nicolas Bertin (1667–1736) Acis and Galatea (c 1700), oil on canvas, 71 × 55 cm, Musée des beaux-arts de Carcassonne, Carcassonne, France. Wikimedia Commons.

Nicolas Bertin’s Acis and Galatea from around 1700 also follows Ovid’s detail. At its centre, the two lovers are behind a rock pinnacle, with three cupids sealing their love. Polyphemus is already in a rage at the upper right, although he hasn’t yet armed himself with the huge boulder. Below the couple Bertin provides a link into Ovid’s greater narrative, with Scylla and Charybdis, and possibly the goddess Venus with her son Cupid by her breast.

tischbeinacisgalatea
Johann Heinrich Tischbein (1722–1789), Acis and Galatea (1758), oil on canvas, 40.8 × 47 cm, Neue Galerie und Städtische Kunstsammlungen, Kassel, Germany. Wikimedia Commons.

Johann Heinrich Tischbein prefers a plainer account in his Acis and Galatea from 1758. Galatea is almost naked in the arms of Acis, as Polyphemus peers at them, a voyeur behind a tree trunk. There are now no cupids or other distractions.

guillemotacisgalatea
Alexandre Charles Guillemot (1786-1831), The Love of Acis and Galatea (1827), oil on canvas, 146 × 111 cm, Private collection. Wikimedia Commons.

Alexandre Charles Guillemot’s The Love of Acis and Galatea (1827) doesn’t pursue the theme of Polyphemus’ voyeurism, but returns to a more conventional composition of the Cyclops sitting on a distant hill. He also sows potential confusion: Polyphemus is holding his reed pipes, although they are harder to see, and the pipes on Acis’ back are extras that are perhaps a little too obvious.

Later in the nineteenth century, emphasis switched from the jealousy of Polyphemus at the sight of the couple together, to Tischbein’s theme of voyeurism.

moreaugalatea
Gustave Moreau (1826–1898), Galatea (c 1880), oil on panel, 85.5 × 66 cm, Musée d’Orsay, Paris. Wikimedia Commons.

Gustave Moreau’s first Galatea from about 1880 shows her resting naked, alone in the countryside with her eyes closed, as the Cyclops plays sinister voyeur. Surrounding them is a magical countryside, filled with strange plants recalling anemones, as would be more appropriate for a sea-nymph. Acis is nowhere to be seen.

moreaugalatea1896
Gustave Moreau (1826–1898), Galatea (1896), gouache on wove paper, 39.5 x 25.7 cm, Harvard Art Museums/Fogg Museum (Bequest of Grenville L. Winthrop), Cambridge, MA. Courtesy of Harvard Art Museums.

Moreau’s second Galatea from near the end of his career in 1896 is dark, and shows Galatea and Polyphemus hemmed in within a deep canyon. Around her aren’t flowers but the seaweeds and corals more appropriate for a sea-nymph.

redoncyclops
Odilon Redon (1840–1916), The Cyclops (c 1914), oil on cardboard mounted on panel, 65.8 × 52.7 cm, Kröller-Müller Museum, Otterlo, The Netherlands. Wikimedia Commons.

One of the masterpieces of Symbolism, Odilon Redon’s The Cyclops from about 1914 follows Redon’s personal theme of the eye and sight, and further develops that of voyeurism. Polyphemus’ face is now dominated by his single eye looking down over Galatea’s naked beauty, with Acis absent.

Curiously, none of the above paintings shows the moment of climax, or peripeteia, in which Polyphemus murders Acis.

batoniacisgalatea
Pompeo Batoni (1708–1787), Acis and Galatea (1761), oil on canvas, 98.5 x 75 cm, Nationalmuseum, Stockholm, Sweden. Wikimedia Commons.

Only Pompeo Batoni’s Acis and Galatea from 1761 shows the Cyclops, his reed pipes at his feet, hurling the boulder at Acis, so making clear the couple’s tragic fate.

Solutions to Saturday Mac riddles 300

I hope that you enjoyed Saturday’s Mac Riddles, episode 300. Here are my solutions to them.

1: The first chips with six-packs celebrated Halloween.

Click for a solution

M3

The first chips (Apple silicon SoCs) with six-packs (the M3 family is the first to support six-core clusters) celebrated Halloween (they were announced at Apple’s ‘Scary Fast’ event on 30 October 2023).

2: First with FireWire and almost see-through in its two-tone case.

Click for a solution

Power Macintosh G3 (Blue and White)

First with FireWire (it was the first Mac to come standard with FireWire ports) and almost see-through in its two-tone case (it has a distinctive translucent blue and white case).

3: It brought Exposé, Fast User Switching and Xcode.

Click for a solution

Mac OS X 10.3 Panther

It brought Exposé, Fast User Switching and Xcode (all three were new features in 10.3, released on 24 October 2003).

The common factor

Click for a solution

The number 3; in binary 11, which looks like the number 2 in Roman numerals.

I look forward to your putting alternative cases.

What are app entitlements, and what do they do?

Entitlements are settings baked into an app’s signature that enable it to do things that otherwise wouldn’t be allowed. Many let App Store apps do things their sandbox wouldn’t normally permit. Others give access to features that are controlled by privacy protection, so may be used by apps that aren’t sandboxed. A few enable apps specially approved by Apple to use features in macOS that aren’t generally available, such as working with APFS snapshots.

One way to run third-party apps in relative security is to confine them to a tightly restricted environment, a sandbox. That denies them the ability to access storage or other resources outside those dedicated to it in its sandbox. That’s too restrictive for the great majority of apps, which need to be able to open and save documents to folders such as ~/Documents, so entitlements specify which sandbox restrictions they’re allowed to break. In the case of opening and saving documents outside the sandbox, the entitlement is named com.apple.security.files.user-selected.read-write, and gives that app read and write access to files the user has selected in a standard macOS Open or Save dialog. Apple requires that all apps distributed through its App Store run in their own sandbox, so they all claim entitlements to be able to work beyond that.

Sandboxed apps all have their own entitlement to their sandbox, com.apple.security.app-sandbox, which isn’t used by apps that are notarized but not sandboxed. Whether sandboxed or not, an app might need access to the Mac’s camera, and for that it will need an entitlement named com.apple.security.device.camera.

Thus, entitlements fall into groups:

  • Those that can be used by any app that wants access to controlled features, depending on whether it’s sandboxed or not.
  • Those that give access to macOS features that have to be approved by Apple.
  • Those that are private to Apple’s own apps and can’t be used by third-parties.

Viewing entitlements

The Finder and other macOS utilities don’t reveal whether an app runs in a sandbox, nor list its entitlements. For that you’ll need a third-party tool such as Mothers Ruin’s Apparency.

Apparency’s Entitlements pane lists all those baked into that app’s signature. My own free Taccy also lists entitlements, but for this purpose Apparency is the better tool by far.

Apps that aren’t sandboxed, only hardened and notarized, will only have entitlements if they need to access privacy-protected features, or use restricted features in macOS. In many cases, that means they will have neither entitlements nor a provisioning profile.

com.apple.security

These give an app access to files and features that are restricted, either by the sandbox, or by privacy protection.

Sandbox controls

These are options that extend an app’s abilities beyond the sandbox, starting with the entitlement that sets the sandbox in the first place. They aren’t used by apps provided outside the App Store that are only notarized and not sandboxed. Apple provides fuller details of the sandbox here.

Examples include:

  • com.apple.security.app-sandbox runs the app in a sandbox, and is standard for all sandboxed apps
  • com.apple.security.files.user-selected.read-write gives read and write access to files the user has selected in a standard macOS Open or Save dialog
  • com.apple.security.files.bookmarks.app-scope gives access to security-scoped bookmarks with app scope
  • com.apple.security.files.bookmarks.document-scope gives access to security-scoped bookmarks with document scope
  • com.apple.security.network.client allows it to open outgoing network connections
  • com.apple.security.print allows it to print.
Privacy controls

These give access to information, devices and features that are controlled by the privacy features in macOS, enforced either by Location Services or by TCC. These are used by any third-party app, whether supplied through the App Store or not, and include:

  • com.apple.security.personal-information.addressbook gives access to the content of the address book
  • com.apple.security.personal-information.location gives access to location data from Location Services
  • com.apple.security.device.camera gives access to the camera
  • com.apple.security.device.microphone gives access to the microphone
  • com.apple.security.automation.apple-events enables automation using AppleEvents.

These normally have a corresponding list in Privacy & Security settings.

com.apple.developer

These entitlements can only be granted by Apple, and control access to macOS features that aren’t generally available. Among the most common are:

  • com.apple.developer.endpoint-security.client enables it to monitor system events for potentially malicious activity using Endpoint Security
  • com.apple.developer.persistent-content-capture is required for a Virtual Network Computing (VNC) app to have persistent access to screen capture
  • com.apple.developer.driverkit gives an extension permission to run as a user-space driver
  • com.apple.developer.vfs.snapshot gives access to snapshot features
  • com.apple.vm.networking allows virtual network interfaces without their having to escalate privileges to the root user, typically in bridged networking.

com.apple.private

These are private to Apple’s own apps, and encompass many other com.apple entitlements that aren’t documented for third-party developers. Examples include:

  • com.apple.private.applemediaservices
  • com.apple.private.dmd.policy
  • com.apple.private.octagon
  • com.apple.authkit.client.private
  • com.apple.duet.activityscheduler.allow.

Some appear self-explanatory, others are opaque.

Command tools and standalone executables

Although Mach-O binaries such as command tools and daemons can be hardened and signed, thus can be notarized, they can’t have a provisioning profile embedded, so can’t have entitlements. Apple recommends working around this by wrapping them in an app-like structure, as explained here.

Entitlements for access to features controlled by privacy protection rely instead on the attribution chain to determine whether they’re entitled. Thus a command tool called by an app isn’t expected to have the entitlement, but the app calling that binary is.

Stripping signatures

Because entitlements are baked into the signature, if you were to strip the signature from an app, that would remove all its entitlements. For a sandboxed app, that might not be fatal, but for most other types of entitlement, that could render the app non-functional. Resigning the app with an ad hoc signature wouldn’t help either.

References

Apple’s Entitlements documentation
Tech Note 3125 on provisioning profiles for code signatures
If you can’t find an entitlement in any of those lists, try looking in Jonathan Levin’s database of all known entitlements for iOS and macOS, which is as comprehensive as we’re likely to get.

Roman Landscapes: 2 Development

Between about 1782-85, the great French landscape painter Pierre-Henri de Valenciennes (1750–1819) built his personal library of oil sketches of the countryside around the city of Rome. He then returned to France, where he assembled them into finished paintings in his studio.

valenciennescapriccioromemarathon
Pierre-Henri de Valenciennes (1750–1819), A Capriccio of Rome with the Finish of a Marathon (1788), oil on canvas, dimensions not known, Fine Arts Museums of San Francisco, San Francisco, CA. Wikimedia Commons.

A Capriccio of Rome with the Finish of a Marathon from 1788 is a direct descendant from the pioneering landscapes of Nicolas Poussin of more than a century earlier. Groups of figures at the left and right are watching athletes run in to the finish of their race. Behind them is a town based on passages of Roman architecture, but isn’t recognisably a depiction of Rome. This is an intermediate between the completely idealised landscapes of Poussin, and later topographically accurate views.

Valenciennes then wrote up this technique of sketching in oils in front of the motif in his influential manual on landscape painting published in 1800. This remained the standard work well into the twentieth century, and was used by Impressionists including Paul Cézanne. Most budding landscape artists travelled across Europe to train in the Campagna during their formative years.

michallongoatherdtivoli
Achille Etna Michallon (1796–1822), Goatherd Opposite the Falls of Tivoli (c 1817-19), oil on canvas, dimensions not known, Minneapolis Institute of Art, Minneapolis, MN. Wikimedia Commons.

Achille Etna Michallon was one of the earlier visitors in about 1817-19, when he painted the spectacular scenery of Tivoli, shown here with a Goatherd Opposite the Falls of Tivoli. These waterfalls are more painterly than his early realism.

michallonsaintescholastiquesubiaco
Achille Etna Michallon (1796–1822), View of Santa Scolastica in Subiaco (1818), oil, dimensions not known, Fondation Custodia, Paris. Wikimedia Commons.

Michallon’s unusual View of Santa Scolastica in Subiaco from 1818 shows this famous Benedictine monastery in Subiaco, Lazio, dedicated to the sister of Saint Benedict of Nursia.

Carl Eduard Ferdinand Blechen, (Stormy Weather over the Roman Campagna) (1823), oil on board, 28 x 45 cm, Alte Nationalgalerie, Berlin. Wikimedia Commons.
Carl Eduard Ferdinand Blechen (1798–1840), (Stormy Weather over the Roman Campagna) (1823), oil on board, 28 x 45 cm, Alte Nationalgalerie, Berlin. Wikimedia Commons.

Carl Blechen studied at the Berlin Academy from 1822, then travelled to Dresden and Switzerland. After he was dismissed as a stage painter at the Royal Theatre in Berlin in 1827, he travelled first to the Baltic coast then south to Italy, where he too painted plein air in the Roman Campagna. His copious oil studies were in a similar style to those being painted in the early nineteenth century by others in the area, but back in Berlin were seen as being radically different.

Jean-Baptiste-Camille Corot, View of the Convent of S. Onofrio on the Janiculum, Rome (1826), oil on paper mounted on canvas, 22 x 33 cm, Fitzwilliam Museum, Cambridge, England. WikiArt.
Jean-Baptiste-Camille Corot (1796-1875), View of the Convent of S. Onofrio on the Janiculum, Rome (1826), oil on paper mounted on canvas, 22 x 33 cm, Fitzwilliam Museum, Cambridge, England. WikiArt.

Camille Corot was perhaps the first major landscape painter both to follow Valenciennes’ teaching and to show his sketches in public. During his first stay in Italy between 1825-28, he developed his skills painting outdoors in the Campagna, producing classics such as his View of the Convent of S. Onofrio on the Janiculum, Rome above, and The Bridge at Narni below.

Jean-Baptiste-Camille Corot, The Bridge at Narni (1826), oil on paper, 34 x 48 cm, Musée du Louvre, Paris. WikiArt.
Jean-Baptiste-Camille Corot (1796-1875), The Bridge at Narni (1826), oil on paper, 34 x 48 cm, Musée du Louvre, Paris. WikiArt.
burkelshepherdscampagna
Heinrich Bürkel (1802–1869), Shepherds in the Roman Campagna (1837), oil on canvas, 48.3 x 67.7 cm, Bayerische Staatsgemäldesammlungen, Munich, Germany. Wikimedia Commons.

Heinrich Bürkel’s Shepherds in the Roman Campagna from 1837 has an almost documentary quality, in the rough and dusty peasants slumped on their horses and donkeys. In the foreground a couple of ewes are looking up at their lambs being carried in a pannier, and a dog is challenging a snake by the roadside.

In 1850, the twenty-two year-old Swiss artist Arnold Böcklin moved to Rome, where he too started painting in the Campagna.

bocklinalbanhills1851
Arnold Böcklin (1827–1901), In the Alban Hills (1851), oil on canvas, 57 x 77 cm, Staatliche Kunsthalle Karlsruhe, Karlsruhe, Germany. Wikimedia Commons.

In the Alban Hills from 1851 is a fine depiction of these hills about 20 km (12 miles) south-east of the city of Rome. Unlike many artists working in the Campagna at the time, Böcklin must have painted this work in the studio from extensive sketches and studies made in front of the motif. Look closely, though, and there’s a dark figure standing beside a small smoking fire, to the left of the central mass of trees, and further to the left might be the entrance to a dark cavern.

bocklinromanlandscape
Arnold Böcklin (1827–1901), Roman Landscape (1852), oil on canvas, 74.5 × 72.4 cm, Brooklyn Museum, New York, NY. Wikimedia Commons.

Böcklin uses more dramatic lighting in this Roman Landscape from 1852. Its dark wood is very dark indeed, not the sort of place to enter alone. At the foot of the prominent tree at the right is what appears to be a woman undressing, as if going to bathe in the stygian gloom.

blommeritaly
Nils Jakob Blommér (1816-1853), Landscape from Italy (study) (date not known), oil, 21.5 x 33.5 cm, Kansallisgalleria, Ateneum, Helsinki, Finland. Wikimedia Commons.

Nils Jakob Blommér’s undated Landscape from Italy is another plein air oil sketch of the Roman Campagna in the tradition of Valenciennes.

In the middle of the nineteenth century, the young French Impressionists broke new ground by applying Valenciennes’ teaching to plein air sketches they made in the countryside around Paris, and on the north coast of France. They then exhibited those sketches as finished works, the working method of Impressionism.

❌