Products | Dominik Mayer – Products, Asia, Productivity

ICloud Drive Silently Deletes Your Content

The first time it happened, I was writing a paper. The paragraphs I had just typed vanished into thin air, faster than Time Machine or Backblaze could save them. Gone. The next occurrence was during app development; Xcode suddenly flagged numerous errors in previously error-free code. My recent changes to several files were erased.

Months later, the mystery is solved: iCloud Drive detected a file conflict. It assumed different versions of the same file existed on my Mac and iPhone and couldn’t merge them automatically. This was impossible; the affected files were never opened on the iPhone. But they were in iCloud, as I had moved my Mac’s Documents folder there.

Dropbox manages version conflicts by storing all conflicting files side by side, labeled as “(John Doe’s conflicted copy)“. iCloud Drive, however, doesn’t show these conflicts in the file system. If you open the file in an editor that supports conflict handling, a popup appears asking which version to keep. Editors like Textifier, Xcode, or Obsidian, lacking conflict handling, leave iCloud to decide which version to store on your disk and in your backup.

Over time, newer backups overwrite older ones containing the correct version; your content is gone for good. The only way to get it back is to open the file with an editor that supports conflict resolution.1 Once moved out of iCloud Drive, even that won’t help. The content is lost.2

Masking version conflicts might appear user-friendly, but it has catastrophic consequences. You might not discover the data loss until years later, when reopening significant but infrequently used documents.

Until iCloud Drive exposes version conflicts in the file system or a central, easily accessible location, my strong recommendation is to move all crucial data out of it. Meanwhile, set up a Git repository to monitor your critical files; you might uncover surprising changes.


  1. I use iA Writer↩︎

  2. In my tests, moving the unchanged file back to iCloud brought back the conflicted version popup. This may not happen if the file has been edited or if you’ve continued working on a copy. ↩︎

Playtesting at Valve

Within a few days of prototyping a game mechanic, Valve’s designers start watching users play. And they conduct playtests once a week until their games are fun and it is “no longer excruciatingly painful” to watch.

On a side note: At least in 2012, when its Handbook for New Employees was published, Valve was completely self-organized.

How Tech Companies Manipulate the Media

YouTubers MrWhoseTheBoss and MKBHD explain the techniques tech companies use to get a more positive coverage of their products.

Goals, Not Tasks  

Matt Blodgett:

There’s a whole class of bugs that comes down to the developer followed very specific instructions without understanding the goal. And a well-meaning manager will take that to mean I wasn’t specific enough in my instructions. No! Computers need instructions. Humans need understanding.

Exactly.

I like to take developers with me when visiting customers. A common understanding of the goal removes so much friction and makes life so much easier.

I also recommend Basecamp’s Shape up to break down the barrier between product and IT and have small teams work closely together to ship a new product or feature.

Wanting to Learn

Sir Jony Ive in the California College of the Arts’ virtual commencement for the graduating class of 2021:

Being curious fuels our appetite to learn, and wanting to learn is far more important than being right.

MVP Park  

Using a public park as an example user experience consultant Paul Boag explains how to iteratively build products. And why you should do it.

The Future of Web Software Is HTML-Over-WebSockets  

Over at A List Apart Matt E. Patterson describes HTML-over-WebSockets:

What about multi-user chat? Or document collaboration? In classic frameworks and SPAs, these are the features we put off because of their difficulty and the code acrobatics needed to keep everyone’s states aligned. With HTML-over-the-wire, we’re just pushing tiny bits of HTML based on one user’s changes to every other user currently subscribed to the channel. They’ll see exactly the same thing as if they hit refresh and asked the server for the entire HTML page anew. And you can get those bits to every user in under 30ms.

Most interesting tech article I’ve read in a while.

Basecamp has been pushing this approach with Hotwire.

And Phoenix with LiveViews:

Currency Exchange Rates in the Apple Ecosystem  

Paul Horowitz describes on OSXDaily how to add currency exchange rates to the iOS stock app:

All you need to do is search for a ticker symbol containing the two currencies, USDEUR=X, for example.

In the four years since the article was published macOS has gained support for Stocks as well and you can show the exchange rate in a notification center widget.

Nian

Every Chinese New Year, Apple commissions a short film.

This year it’s about the mythical Nian. Wikipedia explains:

Once every year at the beginning of Chinese New Year, the nian comes out of its hiding place to feed, mostly on men and animals. During winter, since food is sparse, he would go to the village. He would eat the crops and sometimes the villagers, mostly children. […] The weaknesses of the nian are purported to be a sensitivity to loud noises, fire, and a fear of the color red.

Hence the fireworks, noises and the red color everywhere. I remember riding my bike through Shanghai on Chinese New Year with things exploding left and right. It felt like crossing a battlefield.

Here’s the making-of video to the short film with director Lulu Wang and colleagues touting the iPhone 12 Pro Max as a cinema camera:

The Source Code of a Coronavirus Vaccine  

Bert Hubert dives into the source code of the BioNTech/Pfizer SARS-CoV-2 vaccine:

The code of the vaccine starts with the following two nucleotides:

GA

This can be compared very much to every DOS and Windows executable starting with MZ, or UNIX scripts starting with #!. In both life and operating systems, these two characters are not executed in any way. But they have to be there because otherwise nothing happens.

It’s absolutely fascinating how we’re just a combination of myriads of little biological computers.

State Machine of Startup Growth

Former Evernote CEO Phil Libin shares his simple but elegant model of tracking (and converting) different user types.

Also interesting are his remarks about how to create a well aligned business model.

Success Factors of B2B Marketplaces in 2020

James Currier, Managing Partner at NFX, lists 23 success factors of B2B marketplaces.

F-15

Ars Technica:

Today Ars Technica brings you inside the pilot’s seat of an F-15C Eagle fighter jet to break down every button in the cockpit. Join retired United States Air Force pilot Col. Andrea Themely as she walks you through everything at your disposal, from emergency features and communication controls to navigation features and weapons and defense. With 1100 hours of experience piloting F-15’s, Col. Themely expert eye is ready to guide you each step of the way.