In the department of Too Subtle UX, your Apple ID is the unique passport for iCloud on every device

I was triggered by the following tweet:

I quickly read the article and saw what was going on. Indeed I did notice it, but I knew to expect the kind of behaviour. The good news is, the feature seems to be working correctly: with a single Apple ID, you can login to any device and get access to your desktop and documents thanks to iCloud. The bad news is, most people will easily overlook the single Apple ID part, they’d only think about each device they’re using and would not make the mental link to a single iCloud account. Apple, with their clout, are bound to know this and should be expected to anticipate on it. However, as far as I can tell, people weren’t explicitly forewarned, and they’re probably supposed to be obviously aware of owning a single iCloud account (as in Duh, what else are you thinking?). And that is precisely the problem, this kind of logical behaviour, although intuitive at first sight, doesn’t take into account the long established mindset that we all have. Therefore, while upgrading the OS you wouldn’t think twice before enabling iCloud sync.

In my personal experience, iCloud did the right thing. The first computer I upgraded was my MacBook. My Desktop and Document were all properly sync’ed to iCloud. Then a few days later, I upgraded my Mac Mini, this time iCloud added a new folder on my ubiquitous iCloud backed-up desktop, prefixing the folder name with my Mac Mini’s hostname. In an instant I could recognise what had happened and weren’t surprised. It seems that the gentleman who posted the article didn’t get the same nice experience that I did. I won’t speculate on that particular case, but had Apple said something about this topic loudly and clearly as they geared up for the official launch, people wouldn’t get startled and maybe some would have thought things through before upgrading.

To my mind, this is a perfect illustration of the kind of problem I was referring to when I wrote the following post: When the UX interaction can be too subtle.

Maybe this article won’t go anywhere, many having got a good experience. Or maybe, since the twitterati is always ready for some outrage-tweetstorm, there will be plenty of chatter and not just compliments to go about. We’ll see. Funny enough, I was actually pondering this weekend, the apparently lack of something-gate to do with MacOs and iOS10 in social media. I didn’t have to wait for too long. 😉

The original article is here, exactly as it’s title reads:

maybe be careful with osx sierra”

Four days with my Upgraded MBP to MacOs Sierra, a few minor tweaks, but so far no complaints.

Yes, I could’ve waited a couple more days. But had I wanted to wait a couple of days, then I wouldn’t actually want to upgrade anytime this year. The reason is simple, anything that still breaks in a significant way right now will probably not see a good fix until a few months down the line. This has been my previous experience. That’s why I decided this time round, if something should fail to install or run then I’d look for a Docker container and not bother about it much.

Docker

Yay! It runs without me doing anything at all. I simply let the upgrade run its course and the restart all happen, when that was all done then Docker continued to work as before. Now I can’t recall, I might have downloaded Docker for Mac once again. In any case, I never tend to remember technical things that went to plan. This flawless upgrade gave me the assurance that my fallback plan, running things in containers, is going to work.

Here is what I did to keep it humming.

Scala and Java

There was an issue with TLS, I fixed it by pointing the JVM to the new location of the CA Certs with this setting:

-Djavax.net.ssl.trustStore=/Library/Java/Home/lib/security/cacerts

I did this for both JAVA_OPTS and SBT_OPTS, then I could run Java apps again.

IntelliJ IDEA

If this wouldn’t work then I might seriously consider downgrading. But nope, I didn’t have to downgrade, it worked first time. The one issue I run into was with running a Java app that tried to establish a TLS connection to the outside world. This issue was resolved as per the previous fix. I run all the JetBrains tools that I use, AppCode, IDEA, DataGrip, and so on, no problems with any of them. So This meant that whatever breaks from this point on will be re-homed in Docker and I won’t deal with it.

Ruby

I’m using RVM, as expected it complained and wouldn’t install or re-install a Ruby binary. I checked the version that ships with MacOS Sierra, it was good enough for me, ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin16]. so I settled with that. Here is what I had to get RVM and the ruby stack going:

  • run, to get the command line tools installed (shouldn’t have to, given that I have Xcode installed, but I was at this spot before and didn’t want to spend any time on it:
  • $ xcode-select --install
  • Switched to System Ruby distro
  • $ rvm use system
  • Restored the install gems to pristine, then everything worked from there.
  • $ gem pristine

Haskell Stack

GHC installs fine, but Haskell Stack doesn’t. I run brew install ghc, but I gave up on Haskell Stack as it just wouldn’t succeed. I run out of my budgeted time, so I stopped trying that.

Rust

I got a few misleading error messages from this, but it turns out the real culprit was a prior failed installation via brew. I run brew doctor, looked for and removed all libraries that obviously look related to rust. You can’t miss them. Once I was done with this, I just built Rust from source and installed it. I haven’t used it in any anger as yet, but it seems to work fine now.

GO

Not a single problem. I didn’t even have to touch it, it worked as it always did.

Homebrew

I run brew doctor, to find out what was broken. I found out I had a partially installed Rust version. Rust would no longer install nor uninstall. I solved that the hard way, got rid of all related libraries as reported by brew. After that everything was working fine.

My daily tools

I found out I actually use lots of tools, none of them showed any issues. Omnigraffle, Sketch, Android Studio, Atom, TextMate, Parallels Desktop, Postgresql and a half dozen other command line tools, not a single glitch with any of those.

Forward with Sierra

This is the chance to do a clean slate on one topic that I’ve had in mind for a while. If you follow this blog, you’d remember my statement about containers providing a new chance to compartmentalising software components. With MacOs Sierra, this is my chance to pursue this idea. I will stop installing development components via Homebrew. Instead, I’ll look for Docker containers. This is what I plan to do for everything like DBMS, ElasticSearch, and other cluster native stuff like Riak, Spark, and so on. Basically, it no longer makes sense to install these locally, it’s best to use a container-based cluster manager as that is the only likely use for them.

Closing notes

Please use your own judgment, decide if you want to risk installing a bleeding edge software on your production machine. Remember that Leslie Lamport statement that I often paraphrase, no two computers will likely have the same state. This is important because the slightest difference, and there will be a lot of them always, could result in different behaviours between two seemingly equivalent environments. If nothing else, ensure you have backups that you can verifiably restore your machine from, before attempting this kind of upgrade. If you still go ahead and break your machine, don’t say that I didn’t warn you.

That being out of away now, if you decide to give it a go and it goes well, you might enjoy the experience. Since the upgrade I noticed that I actually gained about 40GB of additional free space. And this is probably thanks to a feature that promise to move rarely used items off of my computer and on to iCloud. Yes, you guessed right, I have an iCloud account.