#Language and Life

The Greeks and Romans knew well how poisonous lead is to humans. The symptoms and signs of lead poisoning were first detailed in the second century BCE, and when the Romans built aqueducts they recognised that water supplied through lead pipes was not as ‘wholesome’ as that from earthenware.

By 1656, the German physician Samuel Stockhausen had recognised that lead dust and fumes were responsible for the symptoms which were widespread among lead miners, smelter workers, and others who were exposed to lead and its salts.

For painters, though, Lead White was and remained the white pigment of choice for oils until the end of the twentieth century. Both dangerous and difficult to prepare, large quantities of Lead White pigment had to be produced for the preparation of oil-painting grounds, as well as its use as the colour white.

All that time, though, there was a non-toxic alternative in the form of zinc oxide, the same white that (more recently) makes zinc oxide plaster white. It took until 1780 for artists to look seriously for alternatives to Lead White, and even then zinc oxide was only very slowly adopted in oil painting. It did, though, become popular in watercolour, where it was known as Chinese White when first marketed by Winsor & Newton in 1834. It is, of course, neither Chinese nor of Chinese origin.

George Morland’s Fishermen Pushing a Boat into the Water or Beach Scene from 1793 appears to be one of the first oil paintings to have used Chinese White. Unfortunately, natural sources of zinc oxide are overwhelmingly in the impure mineral form of zincite, which is red in colour. Small-scale production had taken place since ancient times, but it wasn’t until the early nineteenth century that industrial manufacture brought quantity and more consistent quality.

Johann Georg von Dillis’ delightful oil sketch of Triva Castle from 1797 is another early example of the use of Chinese White.

Initial experience was that the paint didn’t dry well, and was not as opaque as (‘had lower hiding power than’) Lead White. These were not so noticeable in watercolour, where darkening in Lead White was a serious problem resulting from its exposure to hydrogen sulphide in the air. So Chinese White was quickly adopted in watercolour and gouache, but remained relatively unused in oil paints.

By the middle of the nineteenth century, when Franz von Lenbach painted this oil sketch of the Village Street, Aresing (1856), zinc oxide was being manufactured for use as a pigment, and offered at last in oil paint as well as watercolour. This was the result of the work of Leclaire in France between 1835-44, and it was he who improved its hiding power and incorporated drying agents to overcome its initial problems.

By the height of French Impressionism, Chinese White oil paint was quite popular, although in many applications it was used in mixtures with Lead White to ensure its hiding power and rapid drying. Paul Cézanne used it in this Self-portrait from 1881-82, most obviously in the white hat which he is wearing (detail below). He has applied the paint quite thickly, so there is no risk of it losing its hiding power over time.

Chinese White enjoyed its most popular period of use in oil paint between about 1890 and the 1920s, before its replacement, Titanium White, came onto the market. Lead White was becoming increasingly difficult and expensive to manufacture, and where it was still popular it was normally mixed with Chinese White.

Being white, cheap, and largely non-toxic (except by inhalation), zinc oxide was widely used to bulk other paints, and to increase their hiding power. Artists who still avoided Chinese White as a pigment in its own right were often unwittingly using it in their white grounds, and in other colours.

Ferdinand Hodler also used Chinese White in his Landscape at Lake Geneva from about 1906.

The arrival of Titanium White in the 1920s has not resulted in the disappearance of Chinese White. Although now commonly used in oil and water media, Titanium White alone doesn’t make for a good paint layer, but one that is rather spongy. Many modern paints labelled as Titanium White contain quite substantial amounts of zinc oxide to deliver optimal handling and performance. Zinc oxide is still widely used to bulk other colours too.

There is, though, a recently-reported danger in the use of Chinese White oil paints, particularly in oil grounds. Zinc oxide paint layers are now known to become very brittle, and can become involved in a process of saponification, particularly if water is present in the paint layer. Soap-formation is an ever-present risk in oil paint as it ages, and results in mechanical weakness of the paint layer, leading to oozing of paint from lower layers, sometimes even gross delamination and paint loss. There are some experts who consider that the use of zinc oxide in oil paint is hazardous to its longevity.

Perhaps Lead White, for all its toxicity, wasn’t such a bad pigment after all.

I have switched back to working on Cirrus, the start of a tool to diagnose and attempt to fix iCloud Drive problems. At this stage, I was hoping to have a new beta-release to post here for use, but I have run into some rather strange problems which give insight into how iCloud Drive works, and its limitations.

Cirrus 1.0b2 provides regular users with an easy way of uploading a small test file to iCloud Drive, and of removing it once done. For advanced users with experience of reading the macOS unified log, it also provides tailored log access to help diagnose problems occurring during such uploads.

Working through the macOS developer documentation, I have come across information which can be obtained from files stored in iCloud Drive, and two potentially useful functions to download and evict items (I will explain these shortly). These gave me the idea of tackling problems with individual files, and of getting more information about their status, and controlling it.

Files in iCloud Drive are quite unlike ordinary files. They exist in two states: downloaded to local storage, and held in iCloud.

When a file is downloaded to local storage, there are two copies of it, one on your Mac, the other on Apple’s iCloud servers. When you change that file, you are working with the local copy, which appears to be in a special Finder location named iCloud Drive. As far as Terminal’s command line and the file system goes, there is no such volume or directory: folders in iCloud Drive are actually stored in ~/Library/Mobile Documents/com~apple~CloudDocs. You are blocked from being able to access that in the Finder, though.

So any app or other software which inspects or opens this dual file does in fact use the local copy, which has extended attributes and everything else you would expect of a Mac file.

Change your local copy of a file held in iCloud Drive, and macOS tells iCloud’s servers that changes have occurred, and uploads the changes to the servers. Other connected devices, such as another Mac or iPad, are then notified of the changes, and any local copies which they might have of that file are then updated, to keep them in sync.

If you disable Optimize Mac Storage in your iCloud pane, that is all you get: each file held in iCloud will also be stored as a local copy.

When that optimisation is enabled, macOS will optimise the use of local storage by only keeping ‘active’ files locally, and others will display the iCloud icon next to them, to indicate that no local copy is available. The process of turning a file from being stored locally and in iCloud, to being stored only in iCloud is called eviction (from local storage).

Although it may not appear so, you can’t do anything by way of editing or even previewing evicted files. macOS doesn’t stream these files live from iCloud’s servers to your app, but has to download them first. So it keeps stub files, of less than 1 KB size, in ~/Library/Mobile Documents/com~apple~CloudDocs. When anything tries to access that stub, it triggers macOS to request the iCloud servers to supply the file they hold remotely.

My first task in changing Cirrus to tackle individual files was to split the advanced user section to access the log into its own window.

Then each open document is a file in iCloud, with indicators to show its uploading and downloading status, and to let the user evict and download the local copy of that file.

This all works very nicely now, apart from two significant problems. First, most of the special iCloud attributes associated with a file return spurious results, at least some of the time, in both Sierra and High Sierra. Those may be related to the second, and more serious, problem: once a file or folder has been evicted, macOS finds it very difficult to access that file!

Here I have evicted a complete folder of screenshots, which are now shown with the iCloud icon next to them. Note the QuickLook thumbnail next to the selected image has a white border around it: this is because it isn’t a normal thumbnail, but is associated with the stub file which is left in local storage. With this file evicted, the Open button is disabled, as macOS can’t open the file while it is stored remotely.

I then clicked on another file’s iCloud icon to download it to local storage. Note how it gains a normal QuickLook thumbnail, without the white border, and now the Open button is enabled.

The same applies to folders containing evicted files: although this version of Cirrus can open folders, until the contents are at least being downloaded, macOS won’t let you open the enclosing folder.

This is what you see if an app is quick enough to try to open an evicted file: macOS looks at the stub and recognises that it can’t access the file (yet), so tells you that it doesn’t exist. At least, not until it has been downloaded.

Here I have managed to open a stub file using xattred, before macOS has downloaded a copy from iCloud, and it is only 714 bytes in size.

For Cirrus to do anything with files which haven’t been downloaded yet, it has to be able to open them. But it can’t open them until they have been downloaded.

Having found this catch-22, I now need to find a way around it. And that’s my long-winded apology for not being able to offer you Cirrus version 1.0b3. Yet.