Archive for March 13, 2018

Tuesday, March 13, 2018

Time for a Complete Home App Makeover

John Voorhees:

I’d like to say I got the setup right the third time, but I didn’t, though I think it helped me understand better why groups are so deeply buried in Home’s UI. I had forgotten that after a group is set up, its component accessories are no longer available in Home’s UI. This makes sense if you have a lamp with two bulbs in it that you always want to come on at the same time and behave in the same way, but it’s a limitation that greatly reduces the utility of groups because it means the individual accessories that make up a group cannot be added separately to scenes. I backed out of the partially built scene realizing that I had to reconfigure my group.

The solution was to ungroup my desk lamp from the rest of my lights in the studio and set up a scene that turns the desk lamp red and a workflow that triggers that scene when the back door opens. The trouble is, scenes have a very limited concept of state so my lamp can’t be toggled back to its prior color using an automation workflow or by toggling the scene manually. I could add a timer to the automation to turn the desk lamp off after a certain amount of time, but I don’t want to turn off the light, I want to turn off the scene, and you cannot attach timers to scenes. Instead, I needed another scene to return the desk lamp to its original settings.

You probably get the point by now. Home is both too complex because of the way it splits things into rooms, zones, groups, scenes, and automations and too simple because it lacks features like robust state awareness and, in some places, timers. However, the problems with the Home app run even deeper. They are compounded by a generic UI and complex navigation.

Update (2018-03-16): See also: Take Control of Apple Home Automation, The Menu Bar.

Calendar 2 App Could Mine Crypto-Currency in Lieu of IAP

Dan Goodin (MacRumors):

The app is Calendar 2, a scheduling app that aims to include more features than the Calendar app that Apple bundles with macOS. In recent days, Calendar 2 developer Qbix endowed it with code that mines the digital coin known as Monero. The xmr-stack miner isn’t supposed to run unless users specifically approve it in a dialog that says the mining will be in exchange for turning on a set of premium features. If users approve the arrangement, the miner will then run. Users can bypass this default action by selecting an option to keep the premium features turned off or to pay a fee to turn on the premium features.


“On the one hand, using the user’s CPU for cryptomining has become extremely unpopular,” Thomas Reed, director of Mac offerings at antimalware provider Malwarebytes, told Ars. “The fact that this is the default is something I don’t like. I would want to see a legit app informing the user in advance or making it an option that can be turned on but is off by default. On the other hand, they [the developers] do disclose that they are doing it and give other options for people who don’t like it. My personal feeling on this is that, given the disclosure, I think the user should be allowed to make their own choice. Some people might be perfectly willing to let an app like this mine cryptocurrency so that they can use it for free.”


In an e-mail sent about 90 minutes after this post went live, Magarshak said he has decided to remove the miner from future versions of Calandar 2.

Patrick Wardle (tweet):

Hooray for honestly I guess!? And is getting “all advanced features for free” in return for allowing the app to turn your box into a cryptocurrency miner a fair deal? Maybe? But users clearly are not stoked about this[…]

Patrick Wardle:

Apple’s App Store guidelines seem rather clear RE: cryptocurrency mining in Apps: “monetizing built-in capabilities provided by the hardware or operating system” is “Unacceptable”-section 3.2.2 (ii)

I don’t think this is the type of thing the guideline is talking about, but who knows how Apple would interpret it.

Update (2018-03-15): Dani Deahl (MacRumors):

Apple pulled Calendar 2 from the Mac App Store yesterday, and today, Qbix CEO Greg Magarshak tells 9to5Mac that it was because it violated App Store guideline 2.4.2, which states: “Design your app to use power efficiently. Apps should not rapidly drain battery, generate excessive heat, or put unnecessary strain on device resources.”

Magarshak says that within an hour Qbix had removed all mining features and worked with Apple to expedite putting the app back on the App Store. It is now offering both new and preexisting users a free year of premium features. He also says that in the three days the app was mining, it earned about $2,000 worth of Monero[…]

Via Marcin Krzyzanowski:

Best AppStore business model, or what?

Smart Debugging

Peter Steinberger (tweet):

Debugging can be exciting, but often also very, very frustrating. In this talk, I’ll show you some lesser-known tools and techniques to find problems faster and make the compiler show you issues, before they become a crash for your users. Of course we also look at some real world examples.

The Origins of QuickTime

Computer History Museum (via Stephen Hackett):

In 1991, Apple released QuickTime, the first mass-market digital video software for personal computers. QuickTime is a multimedia platform for developers to add audiovisual recording, editing, and playback to their applications. Because it was built into the Macintosh operating system, users did not need to buy more hardware or software to play video. QuickTime became the most widespread media format on PCs after Apple brought it to Windows, and its incorporation into the MPEG-4 standard, used in every cell phone, computer, and set top video player today, cemented Apple’s position as a leading provider of media creation technology. How was QuickTime created? What role did it play in Apple’s history? And what impact does it have today?

Center for Software History curator Hansen Hsu leads a conversation with members of the original QuickTime team about the creation of QuickTime, its evolution, and its impact on the computer and media industries.

Update (2018-03-13): Ilja A. Iwas:

‘Pencil Test’ was the first QuickTime movie I saw. Got it on a dozen floppy disks, needed to wipe out almost my entire hard drive to make room. Took hours. Today, it’s just a link to YouTube.

Swift 4.1 Conditional Conformance Is Amazing

Stephen Celis:

Here’s a non-empty collection type that works with any collection.

Wrapping a MutableCollection type gives the non-empty type all those methods for free!

Previously: Conditional Conformance in the Standard Library.

Update (2018-03-23): See also: Swift Unwrapped.

Update (2018-03-27): See also: Swift Unwrapped.

Update (2018-05-01): See also: Ole Begemann.