Archive for December 2017

Thursday, December 28, 2017 [Tweets] [Favorites]

Apple’s Message to Customers About iPhone Batteries and Performance

Apple (Hacker News, MacRumors, ArsTechnica):

We’ve been hearing feedback from our customers about the way we handle performance for iPhones with older batteries and how we have communicated that process. We know that some of you feel Apple has let you down. We apologize.

[…]

Apple is reducing the price of an out-of-warranty iPhone battery replacement by $50 — from $79 to $29 — for anyone with an iPhone 6 or later whose battery needs to be replaced, starting in late January and available worldwide through December 2018.

Early in 2018, we will issue an iOS software update with new features that give users more visibility into the health of their iPhone’s battery, so they can see for themselves if its condition is affecting performance.

Apple:

In addition, a battery’s ability to provide power quickly may decrease. In order for a phone to function properly, the electronics must be able to draw upon instantaneous power from the battery. One attribute that affects this instantaneous power delivery is the battery’s impedance. A battery with a high impedance is unable to provide power quickly enough to the system that needs it. A battery's impedance can increase if a battery has a higher chemical age. A battery’s impedance will temporarily increase at a low state of charge and in a cold temperature environment. When coupled with a higher chemical age, the impedance increase will be more significant. These are characteristics of battery chemistry which are common to all lithium-ion batteries in the industry.

[…]

This power management works by looking at a combination of the device temperature, battery state of charge, and the battery’s impedance. Only if these variables require it, iOS will dynamically manage the maximum performance of some system components, such as the CPU and GPU in order to prevent unexpected shutdowns.

I think this is a pretty good response. An excellent response would have acknowledged the elephant in the room, which is that although Apple didn’t “do anything to intentionally shorten the life” of the phones, all the design parameters were of Apple’s choosing. iPhone’s desktop-class processors seem to draw power in a more problematic way than processors in competing phones, and Apple could have mitigated the problem by using larger batteries. They didn’t “shorten the life,” but neither did they communicate it to the customer, and they could have designed the phone to have a longer life.

If I were Apple, I’d just make the $29 battery replacement fee permanent, or at least for a certain number of years after the phone was purchased. That would generate a lot of good will.

Some remaining questions:

a f waller:

Making the price of a battery replacement $29 will destroy the sketchy third party battery market which has a lot of other benefits for both Apple and customers. Quality replacements that don’t break your phone.

Adam Banks:

This will also be useful for used iPhone buyers - a screengrab of the battery health report should become standard in listings (or a “not worse than” commitment for higher-volume resellers)

Jason Snell:

I don’t think Apple’s entirely disingenuous when it says it designs its products to last.

But I do think that Apple has never made any great effort to promote battery replacement over buying a new phone, or ensure iOS performance is acceptable on older models.

Nilay Patel:

I totally believe that they’re being sincere. I also think they want people to buy a new phone every two years. :)

John Gruber:

The funny thing about Apple is that their communication problems tend to happen only when they don’t communicate at all.

Rui Carmo:

I replaced my iPhone 6 battery back in August because it was failing around the 30% mark, and the performance increase was very noticeable indeed–right until iOS 11 came along, that is.

Even if 11.2 is now almost fast enough on this hardware, if I hadn’t replaced the battery the phone would likely be completely unusable by now.

Previously: Apple Confirms That It Throttles iPhones With Degraded Batteries.

Update (2018-01-02): Tim Hardwick:

This morning, French tech blog iGeneration reported that an internal Apple Store memo has been circulated which states that if a customer asks for a battery replacement on an iPhone 6 or later, then the Genius Bar should allow it, even if their phone passes Apple's own diagnostic test.

Joe Rossignol:

Apple also says customers who paid regular price (aka $79 in the U.S.) “may” be (a.k.a. are) eligible for a refund and should contact Apple[…]

Fred McCann:

The needle we’re using to thread this is that Apple slowed down phones to increase the life of older phones, not to provoke users to upgrade. That said, getting users to upgrade was undoubtedly the outcome of this practice, and Apple most certainly made a lot of money because of this.

Is that fraud? I don’t know, but it sounds like something that should be decided by a court. For anyone who spent hundreds of dollars upgrading a phone they didn’t want to, $50 off a future battery replacement is not a great remedy.

Benjamin Mayo:

If Apple wants to consider iPhone batteries as consumable, I don’t want them to profit off of the battery repairs. $29 is a palatable service cost to bear after two years of iPhone ownership, $79 stings. If their aim is to maximise the longevity of their devices, they should not have conflicts in incentives with making money from repairs down the road. I do not want Apple to run a razor and blades business model, even inadvertently.

[…]

I would also like to see Apple release estimated numbers on how long customers should expect to be able to use their iPhone at full performance.

Update (2018-01-03): Pierre Lebeaupin:

Such a thing was obviously documented internally, because it is an important change of behavior that their own QA teams will notice when qualifying the software for release, also because it resolves a support issue, so obviously customer support was in the loop so as to provide feedback on which compromises are acceptable, etc. And yet, at the end of the day, when the fix is about to widely land in people’s phones, the system inside Apple is so completely stuck up on secrecy that not even an extremely expurgated version of this documentation makes it out the door? What is wrong with you people?

Update (2018-01-05): Geoffrey Fowler (via Dan Masters):

When I showed up with an appointment at my closest Apple store on Jan. 3, there were so many others also trying to replace their batteries that I had to join a weeks-long waiting list. Your local shop might have more supply, but battling hordes for repair (rather than a sexy new phone) is an unusual experience at an Apple store.

Update (2018-01-08): Adam C. Engst:

The fact that Apple was doing something to address those shutdowns wasn’t a revelation. The company had said it was looking into the problem and claimed it had implemented a fix in iOS 10.2.1, back in early 2017. There was some dispute as to whether that actually happened since Apple included nothing in the release notes about it at the time (see “Apple Releases macOS Sierra 10.12.3, iOS 10.2.1, tvOS 10.1.1, and watchOS 3.1.1,” 23 January 2017). Subsequently, however, Apple amended iOS 10.2.1’s release notes to say:

It also improves power management during peak workloads to avoid unexpected shutdowns on iPhone.

[…]

Reading between the lines, it sounds like Apple is actually saying, “The batteries in these iPhones are underperforming in ways that we didn’t expect and don’t entirely understand.”

Update (2018-01-09): Joe Rossignol:

While we previously confirmed that Apple is offering $29 battery replacements to any customer with an iPhone 6 or newer regardless of diagnostic result, Apple has indicated that this policy can only be taken advantage of once, according to new fine print on its iPhone service pricing page.

Update (2018-01-11): Joe Rossignol:

Apple says iPhone 6 Plus replacement batteries are in short supply and won’t be available until late March to early April in the United States and other regions, according to an internal document distributed to Apple Stores and Apple Authorized Service Providers this week and later obtained by MacRumors.

Update (2018-01-19): Benjamin Mayo:

Tim Cook was asked for his take on Apple slowing down iPhones with degraded batteries. He revealed that the developer beta including these features will be released next month, with a public release to follow after.

Moreover, he says that this forthcoming update will give users the option to disable the throttling to maintain normal CPU performance, but will be at risk of unexpected shutdowns.

Benjamin Mayo:

I struggle to see the motivation for Apple to go further and make the behaviour optional. The existence of this setting, which will be available in a iOS developer beta released next month, is a contradiction of what Apple said in the public apology letter.

Update (2018-01-30): Bloomberg:

The U.S. Department of Justice and the Securities and Exchange Commission are investigating whether Apple Inc. violated securities laws concerning its disclosures about a software update that slowed older iPhone models, according to people familiar with the matter.

Update (2018-02-06): Juli Clover:

Apple vice president for public policy Cynthia Hogan answered Thune’s inquiry today and said that Apple is indeed looking into whether a rebate program can be provided to customers.

Update (2018-05-10): Joe Rossignol:

Apple has confirmed that "service inventory of all iPhone replacement batteries is now available without delay," in an internal memo distributed to Apple Stores and its network of Apple Authorized Service Providers on April 27.

Update (2018-06-02): Juli Clover:

Apple is providing a $50 credit to all customers who paid for an out-of warranty battery replacement for an iPhone 6 or later between the dates of January 1, 2017 and December 28, 2017, the company announced today.

The $50 credit is an extension of Apple’s $29 battery replacement program, which went into effect in December of 2017 to provide lower-cost battery replacement options to customers potentially affected by performance throttling due to battery degradation.

Apple Support Tells Customers to Ask Developer for Refund

Charles Perry:

I would like to offer a giant raised middle finger to @AppStore Support for continuing to tell customers that they should contact me directly for a refund. @AppStore knows developers have no way to refund a purchase. Stop telling customers that we can!

This has been happening for all 9.5 years of the App Store. And some of the customers think we’re lying in order to keep their money when we say they have to ask Apple—because they reasonably assume that Apple knows how its own store works. Unfortunately, refunds are quite literally something only Apple can do.

Update (2017-12-28): Allen Pike:

This has happened for years, but since they recently removed the “Not working as expected” option on http://reportaproblem.apple.com, it’s started happening far more often. We’ve sent some angry customers refunds directly at a 30% loss, but it’s unsustainable.

See also: How to get a refund for iTunes or App Store purchases.

Update (2018-01-01): Jerauld:

I subscribed to a year of a digital mag through the @AppStore and they stopped publishing 4 months in @AppleSupport said the app should refund me and I only have 30 days to ask #apple for a refund. Great scam charge for 12 months and Apple won’t help after 1st month

Update (2018-01-25): Dave Howell:

Sure would be nice if Apple Support didn’t tell Apple customers to contact app developers to request refunds for App Store purchases. Nutty.

iOS 11 Double Copying

Dr. Drang:

There are some weird things going on with iOS’s Copy item in the Share Sheet. I made a short Workflow to get around a problem I’ve been having with it when trying to share the URL of a Washington Post story.

I mentioned the problem on Twitter a few weeks ago: I’m reading an article in the WaPo app that I want to link to. I bring up the Share Sheet, tap Copy, and switch to some other app I want to paste the URL into. Could be Drafts, Notes, Slack, Textastic—whatever. I then paste the URL and wait to see what happens. Depending on the app, I might get exactly what I expect (Notes and Textastic), or I might get a doubled version of the URL (Drafts and Slack).

I’ve seen this, too, copying from other apps. I wonder what’s causing this.

Update (2018-01-01): Dr. Drang:

Armed with these two bits of information, I started exploring and quickly confirmed that the text manipulation action in my workflow—the regex substitution that eliminates the superfluous URL—was unnecessary.

In fact, it wasn’t doing anything at all because the URL it was being fed wasn’t doubled.

OkCupid Removes Usernames

OkCupid (via Scott Perry):

You see, DaddyzPrincess29*, we all have names. Good, noble names that took weeks, perhaps months to choose— from Hannah to Jordan to Lady Bird. And what we’ve discovered is that those names actually work best—better than usernames—when it comes connecting with people.

[…]

Ahead of the new year, we’re removing OkCupid usernames. It’s starting with a test group and will soon be rolled out to everyone on OkCupid, so all users will need to update their profiles with what they want their dates to call them.

Andrew Abernathy:

Looking forward to using real names to identify most anyone I see on your site, and email their family & co-workers all the interesting details from their profiles. (Yes, usernames are frustrating. Real names are a nightmare, esp. for people with uncommon names.)

According to Ars Technica, OKC will only be sharing your first name and they won’t be verifying that it’s your legal name, so it seems like in effect this boils down to “display names no longer have to be unique.”

I don’t understand what problem they think this solves, nor what they’ve actually “discovered” about what works. How does having many accounts identified by the same first name help anyone? Why would you want to reveal your real name to people you aren’t even communicating with? The only benefit I see is potentially more privacy for users who reuse the same username across multiple sites.

Update (2018-01-01): Andrew Kelley (via Ashley Bischoff):

I’m an engineer at OkCupid. I think we didn’t communicate this change very well. Users are free to chose any nickname, and user names are no longer unique and identifying. It’s actually more anonymous than before.

So it’s puzzling that their blog post encouraged people to use their real names.

Twitter’s Weeds

Manton Reece:

Because tweets don’t exist outside of Twitter, when you’re banned, you’re done. For this reason, and because their business depends on a large user base, Twitter is hesitant to throw anyone off their service. They’re unwilling to tend the garden for fear of pulling too many weeds.

Imagine instead a service based on blogs, where the internal posts on the platform were the same format as the external posts. The curators of the platform would have more freedom to block harassing posts and ban nazis because those problematic users could always retreat to their own web site and leave everyone else in the community alone.

That’s how the web is supposed to work. It’s a core principle of Micro.blog.

I hope this can work, but as with App.net and Gab I find it hard to think about using a second service alongside Twitter.

Friday, December 22, 2017 [Tweets] [Favorites]

Energy Efficiency: A New Concern for Application Software Developers

Gustavo Pinto and Fernando Castor (via Jeremy W. Sherman):

One of the main challenges of software energy consumption research is to bring analysis to the static level. Currently, software energy consumption instrumentation can only be conducted at runtime. This approach has several limitations; such as sophisticated (and expensive) hardware equipment or applicability only to specific hardware configurations. This fact has the potential of limiting the usability of software energy consumption tools.

[…]

Pinto et al. observed that just updating from Hashtable to Concurrent HashMap in a Java program can yield a 3.5x energy savings. In particular, this transformation yields a 1.4x and a 9.2x energy savings in CPU and DRAM, respectively. As another example, Pathak et al. observed that I/O operations consume more energy partly because of the tail energy phenomenon. According to the authors, bundling I/O operations together can mitigate this tail energy leak. These results have a clear implication: Tools to aid developers in quickly refactoring programs can be useful if energy is important.

[…]

Li et al. discussed how to improve energy efficiency by favoring darker colors instead of lighter ones for smartphones with OLED displays. Using a search-based multi-objective approach, Linares-Vasquez et al. automatically optimized energy consumption and contrast, while using consistent colors with respect to the original color palette. Oliveira Jr. et al. analyzed the energy consumption of Android app development approaches, Java, JavaScript, and Java + C++, in both benchmarks and real apps. In both scenarios it was observed that different approaches have different impacts on energy. In particular, combining different approaches can yield more than an order of magnitude energy savings in compute-intensive apps.

[…]

Pathak et al. focus on understanding and monitoring system calls that are related to I/O operations. As a results, they found that most of the energy consumed in free apps is related to third-party advertisement modules (which can be responsible for up to 75% of the overall energy consumed by an app).

WKWebView Workarounds

Brent Simmons:

WebView — good ’ol trusty friend — has a bunch of things that WKWebView is missing.

The new web view has no built-in support for finding text, for instance. I’m not sure what I’m going to do about this, since the ability to hit cmd-F and look for some text is a pretty fundamental thing, and I can’t skip it.

It also has no delegate method for when you mouse over a link. Seems like another fundamental thing, right? Any browser offers you a status bar or some way to see the URL of the link your mouse is over.

Given the level of progress over the last 3.5 or so years, it seems like WKWebView is the future, and too bad for you if you need more features. Maybe you can hack some of them together using JavaScript. With Apple no longer dogfooding WebView, how much longer will it be supported? This is the sort of thing that worries me about iOS APIs coming to the Mac.

Update (2018-05-14): Howard Oakley:

That may be true, but when I had implemented that in LockRattler, which runs on El Capitan and later, Xcode decided that I couldn’t use WKWebView because of implementation bugs. It only works in Sierra and later, not in El Capitan.

Apple Narrows Ban on Templated Apps

Sarah Perez (MacRumors):

The company’s revised wording now states:

4.2.6 Apps created from a commercialized template or app generation service will be rejected unless they are submitted directly by the provider of the app’s content. These services should not submit apps on behalf of their clients and should offer tools that let their clients create customized, innovative apps that provide unique customer experiences.

Another acceptable option for template providers is to create a single binary to host all client content in an aggregated or “picker” model, for example as a restaurant finder app with separate customized entries or pages for each client restaurant, or as an event app with separate entries for each client event.

This is Apple’s attempt to clarify how it thinks about templated apps.

Core to this is the idea that, while it’s fine for small businesses and organizations to go through a middleman like the app templating services, the app template providers shouldn’t be the ones ultimately publishing these apps on their clients’ behalf.

Instead, Apple wants every app on the App Store to be published by the business or organization behind the app. (This is something that’s been suggested before). That means your local pizza shop, your church, your gym, etc. needs to have reviewed the App Store documentation and licensing agreement themselves, and more actively participate in the app publishing process.

This makes sense to me.

Brian Stucki:

Happy to see this update. 1) I like it when I load a random app and it’s a design I’m already familiar with and 2) makes apps affordable for small business and 3) the services that build and sign these apps are a popular customer for @MacStadium Mac clouds. Win-win-win.

Previously: Apple Widens Ban on Templated Apps.

Update (2017-12-22): See also: John Voorhees.

Update (2018-02-22): Matt Long:

Apple drops another bomb WRT white label apps. Grandfathered apps must be transferred to customer app store account if updated after April 1.

Apple Confirms That It Throttles iPhones With Degraded Batteries

Matthew Panzarino (Hacker News):

Here’s a statement that Apple provided when I inquired about the power profile that people were seeing when testing iPhones with older batteries:

Our goal is to deliver the best experience for customers, which includes overall performance and prolonging the life of their devices. Lithium-ion batteries become less capable of supplying peak current demands when in cold conditions, have a low battery charge or as they age over time, which can result in the device unexpectedly shutting down to protect its electronic components.

Last year we released a feature for iPhone 6, iPhone 6s and iPhone SE to smooth out the instantaneous peaks only when needed to prevent the device from unexpectedly shutting down during these conditions. We’ve now extended that feature to iPhone 7 with iOS 11.2, and plan to add support for other products in the future.

John Gruber:

Prior to adding this feature to iOS last year, iPhones with older declining batteries were shutting down unexpectedly when taxed at peak performance. That’s obviously not good. So now, iPhones with older declining batteries are throttled, when necessary, to keep them running. But now Apple faces accusations that they’re deliberately slowing these devices down to convince people to buy new iPhones.

Jason Koebler:

iFixit teardown engineer Jeff Suovanen performed similar tests with iFixit employees’ phones and shared the data with Motherboard.

Suovanen found that iPhone 6S devices that still had their original batteries (they are about two years old now) had benchmark scores that were up to 57 percent lower than the GeekBench average. Replacing the battery instantly improved the benchmark scores drastically; he saw 70 percent swings in benchmark performance after swapping the old battery for a new one.

“Everyone came back a day later and said, ‘Wow, it works so much faster,’” Suovanen told me on a phone call.

[…]

What makes it worse is that Apple does not make it easy to replace the battery yourself, discourages third party repair, and doesn’t have the first party repair infrastructure to handle large numbers of in-store battery swaps, especially in states that don’t have lots of Apple Stores.

Andrei Frumusanu:

Capacity and supply voltage of a battery decreases over time as a function of charge cycles and charging behaviour (Higher charging currents causing more degradation per cycle). This causes the total useable battery capacity before the cut-off voltage to decrease.

The problem facing the iPhones as Apple explains it is however two-fold; the issue at hand happens only during load spikes in which the battery isn’t able to maintain a high enough voltage for the PMIC to reliably be able to use as a source.

SoC blocks such as CPUs and GPUs can have very short transitions from idle to load causing steep transients and load spikes going above the +10W ranges. As batteries degrade over time and the cell impedance also rises also in function of the state of charge and temperature, the current flow becomes restricted and the cell is no longer able to satisfy the power requirement at a high enough operating voltage.

[…]

If this is the case then another question rises is if this is indeed just a transient load issue why the power delivery system was not designed sufficiently robust enough to cope with such loads at more advanced levels of battery wear? While cold temperature and advanced battery wear are understandable conditions under which a device might not be able to sustain its normal operating conditions, the state of charge of a battery under otherwise normal conditions should be taken into account during the design of a device (Battery, SoC, PMIC, decoupling capacitors) and its operating tolerances.

If the assumptions above hold true then logically the issue would also be more prevalent in the smaller iPhone as opposed to the iPhone Plus models as the latter’s larger battery capacity would allow for greater discharge rates at a given stable voltage. This explanation might also be one of many factors as to why flagship Android and other devices don’t seem to exhibit this issue, as they come with much larger battery cells.

Jacob Kastrenakes (Hacker News):

There is some good reason for Apple to do this. By their nature, lithium-ion batteries degrade over time, storing less and less of a charge. This happens very quickly on a device we use 24/7. So it's not a bad idea for Apple to limit speeds on older phones, such that they don't push things too far on a depleted battery. That absolutely makes the phone more useable — it apparently helps stop random shutdowns, which are a major pain. And I would think it helps with battery life in general as well.

But it also speaks to a really enormous problem with the iPhone: this $700 to $1,000-plus product, as designed, isn't able to function near its peak after just a year of use. That should be unacceptable.

Slowing down the phone is one way to work against aging issues, but there are other, more obvious things Apple could do here. It could put larger batteries in the iPhone in the first place, so that they last longer before this kind of adjustment needs to kick in.

Some of my thoughts:

Previously: Does iOS Throttle CPUs When Using a Degraded Battery?.

Update (2017-12-22): Rene Ritchie describes additional power management that slows down the CPU separately from the protection during load spikes.

More lawsuits have been filed.

Kirk McElhearn recommends iMazing for checking your battery’s health.

Update (2017-12-23): I already find the iPhone 6–8 thin enough that I need a case to hold them comfortably. I’d much rather carry extra battery than inert plastic.

After the Reddit story broke, an Apple genius told Michael Glenn that iOS does not throttle when the battery is degraded; he was able to fix the performance issues on his iPhone by wiping and restoring it, which got rid of a “rogue system process that somehow persisted through upgrades and restarts” (via John Gruber).

Update (2017-12-28): See also: Accidental Tech Podcast.

Apple has posted a statement.

Update (2018-01-01): Antonio Fonseca:

It seems the SoC team needs to interact more with the battery / engineering team and all of them with the industrial design team. It seems like things are a bit out of sync when it comes to goals for the iPhone project.

Nilay Patel:

Processor speed is just one piece of the battery- and performance-management puzzle, according to Apple: iPhones with older batteries may also more aggressively dim their screens, have lower maximum speaker volumes, and even have their camera flashes disabled when the system needs more peak power than the battery can provide. But other core features, like the cell radio, GPS, and camera quality, aren’t affected, Apple says. The whole approach actually quite clever, but cleverness isn’t a great substitute for speed.

In any event, Apple has a long way to go rebuilding trust with its customers — this story broke well past the tech press and hit TV morning shows and local news with zero nuance about “smoothing instantaneous peaks” and battery chemistry degradation. A lot of people already believed that Apple slowed down their iPhones, and this wave of news was a big data point confirming that for them. It’s going to be a difficult road back.

Ian Spencer:

Key phrase is “whose battery needs to be replaced”. In my experience Apple is loathe to admit a device (iPhone or Mac) has battery problems.

Mitchel Broussard:

In response, iFixit has decided to match that price point and lower the cost of every DIY iPhone battery fix kit to $29 or less.

Rene Ritchie:

No #iPadSlow: Basically, the iPad battery is so big there’s much less concern over power spikes and so Apple hasn’t added them to the same advanced power management system that iPhone 6, iPhone SE, iPhone 6s, and iPhone 7 are on.

dwc1 (via Jon Maddox):

I went to the Genius Bar yesterday and got a walkin appointment for my T-Mobile purchased 6s. The wait time was quoted as 1 hour but took 20 mins. They ran very deep diagnostics to see if I qualify for the $29 offer which I was not expecting since I thought you could just ask for replacement on demand. They told me my battery was working well enough and almost turned me down. I had to press hard that the battery just does not hold the charge long enough anymore. The tech found a workaround by prompting me to sort of claim that the device shuts down unexpectedly on occasion. Once I said yes to shutdown issue that they replaced the battery for FREE. It looks like Apple will be sort of strict about these $29 battery replacements. I also had to leave my phone for the actual repair for about 90 mins wait time while they did the work.

Wednesday, December 20, 2017 [Tweets] [Favorites]

Apple Rumored to Combine iPhone, iPad, and Mac Apps to Create One User Experience

Mark Gurman (Hacker News, MacRumors):

Starting as early as next year, software developers will be able to design a single application that works with a touchscreen or mouse and trackpad depending on whether it’s running on the iPhone and iPad operating system or on Mac hardware, according to people familiar with the matter.

Developers currently must design two different apps -- one for iOS, the operating system of Apple’s mobile devices, and one for macOS, the system that runs Macs. That’s a lot more work. What’s more, Apple customers have long complained that some Mac apps get short shrift. For example, while the iPhone and iPad Twitter app is regularly updated with the social network’s latest features, the Mac version hasn’t been refreshed recently and is widely considered substandard. With a single app for all machines, Mac, iPad and iPhone users will get new features and updates at the same time.

Apple currently plans to begin rolling out the change as part of next fall’s major iOS and macOS updates, said the people, who requested anonymity to discuss an internal matter. The secret project, codenamed “Marzipan,” is one of the tentpole additions for next year’s Apple software road map.

This has long seemed like an obvious thing for Apple to do, but I’m not sure it’s good for the Mac platform. The upside is that we’ll get lots of ports of iOS apps where previously there was no Mac app or only a poor quality Web-based one. The downside is that I don’t want to be using lowest common denominator iOS ports. I like using a Mac because of the apps that really take advantage of what the desktop has to offer. I’m continually annoyed by the apps that essentially put an iOS-style interface in a window and don’t support standard Mac conventions or features. I also worry that bifurcating the platform with UXKit and AppKit apps will inevitably mean that Apple will focus less on enhancing AppKit, while at the same time doubling the surface area for bugs. Having two classes of Mac apps would not be good, but AppKit going the way of Carbon would be even worse.

Steve Troughton-Smith:

macOS 10.14 Toasterfridge

To quote from my piece, with a unified app platform between iOS and macOS, iPad apps would have a migration path to the desktop, and legacy desktop apps to iPad — both platforms could evolve & grow as one, and not one at the expense of the other.

Opening the macOS floodgates to iOS developers is going to be a huge shot in the arm (unintentional pun); it could make a big difference to Apple’s inability to give macOS the development attention iOS gets. We know they need this! Photos on the Mac is a UIKit port using UXKit!

Marco Arment:

If there’s any truth to this, it’s going to make a lot of Mac developers pretty mad (and depends a lot on implementation details), but I’m definitely in favor of it and pretty excited for the potential.

Mike Rundle:

Whoa. Looks like “native Mac apps” that are thin wrappers around websites will be dying soon if we can just run the iOS version native on our Macs. Huge ramifications for this.

Jeff Johnson:

Developers say, “Yay, now we get Mac for free!” But the reality is customers are saying the exact same thing.

Update (2017-12-20): Michael Love:

Also, the release of this story compels Apple to either a) unequivocally deny it or b) work like hell to get it ready for next summer; who’s going to invest any more time in a Mac app with this waiting in the wings?

Heck, it even makes me a bit reluctant to buy macOS software with it unclear whether that will be abandoned + replaced by iOS ports under this new regime.

Paul Thurrott:

Today, Apple invented UWP apps. Psyched!

Jeff Johnson:

There seems to be a big cultural divide between iOS developers who came from the Mac and iOS developers who didn’t. Many in the latter group are ok with destroying the Mac, and that’s very frustrating to me.

Alasdair Allan:

I do worry that in the transition to ‘universal’ apps we’ll loose functionality that currently exists on the Mac side. The infamous example of Apple’s own Keynote app, where the Mac app lost a bunch of functionality to harmonise it with the iOS version, seems like a warning shot.

Jeff Johnson:

The irony is that Mac sales are as high as ever, despite lagging hardware updates. People like the Mac and are buying Macs. It’s not in any sense an endangered or dying platform. It’s wildly successful.

The Mac App Store is suffering, yes. The best Mac apps have left the store, or were never in the store in the first place. That’s a problem with the store, not a problem with the Mac.

Max Seelemann:

I fear radical degradation of macOS’ usability. But maybe also a chance to kill f***ing Electron apps.

Update (2017-12-22): Gus Mueller:

There’s an easy solution for updating the Mac version of Twitter to have the same features as its iOS peers. Twitter has to care enough to update it. That’s it. It’s not as if there needs to be massive engineering efforts put behind it. It’s not as if the road hasn’t already been explored and the server APIs already exposed (which they must have done for the iOS version). They just need to put some effort and care to it. Tweetie for the Mac, which Twitter for the Mac is based on, was built from the ground up by a single person. All Twitter had to to was maintain it. And Twitter, Inc. couldn’t be bothered.

And we see the same behavior from other vendors happening on the iPad where a shared framework already exists (Instagram being the prime example).

Craig Hockenberry:

What if this is all about getting iPhone-only apps to run at iPad (and, by the way, Mac) screen sizes?

The technology to create Universal apps has been around for many years now, yet there’s still a surprising lack of adoption.

You can literally flip a switch and make it “work”.

It’s a lot of work to make your app design & layout work on a wide variety of screen sizes. Adding macOS to this situation isn’t going to make less work.

I speak with a bit of experience here: we built a macOS app with a UIKit framework developed by @BigZaphod.

Even with familiar classes and frameworks, it wasn’t easy to make a macOS app from an iOS source base.

Our second attempt, which used separate UI presentation layers for macOS and iOS, but with and a common data model, was actually simpler to implement and resulted in a better app.

Brian Webster:

I could imagine a system that might work somewhat like the Carbon/Cocoa integration that Apple provided in the early OS X days, where you could do things like embed a Carbon view in a Cocoa view, mix Carbon and Cocoa windows in the same app, and so forth. There would still be some work to do for iOS devs to make their apps work well on the Mac, but I think this might be a good middle ground similar to Carbon, where 80% of the work is already done for you, and you’d just need to handle the extra hooks in order to have your iOS components behave inside a Mac environment.

Colin Cornaby:

What if it’s not a layer on top of AppKit and UIKit, but a layer underneath?

Classes like NSImage and UIImage could be refactored to have a common ancestor, maybe just named Image. When you create an Image you get the platform specific version under the hood, but you can ignore that and work with Image’s shared cross platform functions. When you need something only currently available on the Mac, like image representations, you just downcast your image to an NSImage, and you have all your AppKit functionality back.

Pierre Lebeaupin:

[The] Bloomberg article completely downplays the prerequisites, on the desktop side, of an unified OS.

Rui Carmo:

Even though this makes sense, I have [a] strong feeling it will result in the dumbing down of the macOS user experience to a degree where it will be untenable to use for serious purposes.

Stephen Hackett:

It may look like this is the downfall of the Mac as a platform, but in reality, this may be a life raft into the modern era. It’ll take years to discover which is true, but if it means a Mac ecosystem with more options when it comes to good apps, that’s a win.

Riccardo Mori:

So, Apple keeps stressing the user interface differences between Mac OS and iOS hardware, and the next step could be ‘universal’ apps!? You can see this is a bad idea from miles away. The last thing Mac OS needs are dumbed-down iOS-ported apps.

Daniel Rubino:

Microsoft’s UWP will be hitting the three-year mark in late 2018, right around when Apple’s first attempt at app unification may debut.

[…]

These tools combined make Windows 10 an OS that can live anywhere, on any device, with any screen size, running any processor. With UWP, the apps can run on all those devices with only minor changes. […] Apple has some of this with shared components between iOS and macOS, but its app story is very far behind. Apple has not – to our knowledge – taken any steps to unify its UI across macOS and iOS.

See also: Under the Radar, Matt Birchler, Ben Lovejoy, Dave Verwer.

Update (2017-12-23): John Gruber (tweet):

“One user experience” is neither possible nor desirable. The truth is that this effort by Apple is almost certainly not about cross-platform applications but instead cross-platform frameworks for developers. It’s developer news, not user news.

[…]

There is a lot of work involved getting an iPhone app to work well on an iPad. That’s why you still see iPhone-only apps. Even with good new cross-platform Mac/iOS frameworks, there would be way more work involved to bring an iPhone app to Mac than there is to bring to iPad.

[…]

Caring is ultimately what makes true Mac apps Mac apps. Caring about the details, caring about the Mac way of doing things. No amount of shared frameworks between MacOS and iOS can make iOS developers care about doing things properly on the Mac.

[…]

My concern with this whole situation is that even if this is all true — if Apple is indeed working on creating cross-platform UIKit-like frameworks for iOS and MacOS, and that the existence of such frameworks would spur more developers and companies to create Mac apps — it wouldn’t to the creation of good Mac apps.

Even Apple, much to my concern, has fallen short in this regard. Photos for Mac is one of the worst Mac apps I use. […] It’s as though Photos for Mac was created by iOS developers who saw a Mac one time and said, “Sure, we can do that.”

I take the details of the Marzipan story with a grain of salt, considering that Gurman also told us that Swift would be ABI stable for version 2.

Update (2017-12-28): See also: Accidental Tech Podcast on some of the problems with Photos, which is probably the best of Apple’s ported iOS apps.

Daniel Rubino:

UWP is not a "write once, deploy everywhere" model, though in some ways it can be used as such. Nor is it only about phones, which apparently are on the sideline now for Microsoft. UWP is about building a next-generation app platform that can quickly adapt to new hardware paradigms, whether it is Windows Mixed Reality, traditional PCs, tablets, mobile devices, or your living room.

Joe Cieplinski:

No doubt about it. Thousands of previously iOS-only apps will end up on the Mac barely altered with bad UI on day one. […] Here’s the thing: People who care about good software will find the good stuff. People who care to make good software will make the good stuff. There aren’t many people in either group. And there never will be.

[…]

There are some apps, however, built with universal storyboards that take full advantage of iPad. The problem here isn’t the tool, but rather the people using the tool. The same will be true for Marzipan apps.

[…]

I suspect more developers will go the non-universal route this time around. And given this is not a simple matter of screen size, as it was on the iPad, a port of an iOS app to the Mac, even using Marzipan, is going to take quite a bit of time. It will be a while, in other words, before the pressure from other developers gets extreme to start selling your existing app as universal.

[…]

It stands to reason that after Marzipan gets released into the wild, both UIKit and AppKit will be on “borrowed time.” Just as Cocoa replaced Carbon, eventually Apple will very likely want all apps to be written using Marzipan.

[…]

If Apple only has to maintain one framework for adding new features to iOS and macOS, it’s less likely to leave the Mac out of new APIs. That means no longer waiting a year or more to get the same interesting cool new features we see on iOS.

See also: Accidental Tech Podcast.

Update (2018-01-01): Todd Ditchendorf:

Languages: same (Swift/ObjC)
IDE: same (Xcode)
Standard lib: same (Foundation)
User Interface lib: extremely similar (UIKit vs AppKit)

It’s not clear to me that a write-once-run-anywhere toolkit across iOS (touch) & Mac (WIMP) more unified than this is actually desirable.

Google Maps’s Moat

Justin O’Beirne (via Paul Rosania, Hacker News, Reddit):

Similar to what we saw earlier this year at Patricia’s Green in San Francisco, Apple’s parks are missing their green shapes. But perhaps the biggest difference is the building footprints: Google seems to have them all, while Apple doesn’t have any.

[…]

But what’s most interesting is how fast Google is making these buildings.

Just two years after it started adding them, Google already had the majority of buildings in the U.S. And now after five years, it has my rural hometown—an area it still hasn’t Street View’d (after 10+ years of Street View).

[…]

And this building-generation process seems automated to such a degree that buildings sometimes appear on Google’s map before roads do[…]

[…]

So Google seems to be creating [shared Areas of Interest] out of its building and place data. But what’s most interesting is that Google’s building and place data are themselves extracted from other Google Maps features.

[…]

The challenge for Apple is that AOIs aren’t collected—they’re created. And Apple appears to be missing the ingredients to create AOIs at the same quality, coverage, and scale as Google.

Explanation of HomeKit Vulnerability

Khaos Tian (tweet):

HomeKit didn’t check the sender of remote message before processing the request, which ended up allowing potentially anyone to remotely control HomeKit accessories in the home.

[…]

Of all the messages you can send to HomeKit daemon, there are some really interesting ones. There is one message that will let HomeKit on watchOS to reply with a list of home identifiers, along with the public and private key that used to encrypt home data and communicate with accessories to the sender. Once an attacker got the reply, it’s game over for HomeKit. With pairing identity and private key, the attacker can trick HomeKit into thinking him as the owner of the home, even after Apple fixed the messaging issue.

[…]

Those message mishandling issues were discovered back in late October, and was disclosed to Apple’s product security team the next day I found it (Oct 28). I got ONE email (on October 30) from Apple’s product security team saying they are investigating it through the entire November. During that time, I sent multiple emails (Oct 31, Nov 2, and Nov 16. Additionally there was one sent to Federighi on Nov 27.) to try to ensure the engineering team understood the issue but no reply at all. I observed that Apple deployed the watchOS server fix so I assumed they just being typical Apple not replying people (hello radar 🙃), so I thought the engineering team should have sufficient understanding of the issue and hoped they properly fixed the issue with iOS 11.2. But then iOS 11.2 officially released, while they did fix some issues in my report, they didn’t do a full security audit to ensure all messages are being handled properly, and instead they introduced a new message which makes the whole attack a lot easier 🤦.

[…]

So I ended up reaching out to friend at 9to5mac and turned out Apple PR channel is much more responsive than product security, from them reaching out Apple PR to Apple come up with a temporary fix all happened with 48 hours. No wonder nowadays people just throw security issues on Twitter right? What a world we live in.

Khaos Tian:

They declined my request to get an invitation to join their bounty program since they think me involving the press to have them fix the issue voided the qualification for the invitation ¯\_(ツ)_/¯ We’ll see how it goes.

Previously: HomeKit Vulnerability Allowed Remote Access to Smart Accessories Including Locks.

Patterns for Working With Associated Types

Benedikt Terhechte:

The first solution for the archetypical problem is also a really simple one. Instead of enforcing Equatable on your custom protocol, you can simply require your full fledged, final, types to conform to the Equatable protocol instead of your custom protocol.

[…]

As you can see in the example above, using Self as a method parameter or using Self as a property type automatically introduces an associated type (like we saw with Equatable, earlier).

The most helpful note here is that once you use a method instead of a property in order to return something of type Self you will not opt in to an associated type[…]

[…]

The idea here is that you define two protocols that share common methods. Only one of those protocols contains associated types, the other does not. Your types conform to both protocols. This means that you can use the normal protocol as a type for all situations. If you, then, need to use the parts of the type that only affect the associated type, you can do so by means of a runtime cast.

Apple, CALEA, and Law Enforcement

Matthew Green:

Nick contends this is a serious weakness in iMessage; I agree. This problem can arise in iMessage because of the way the iMessage protocol has been set up. Neither the sender nor the receiver has a way of knowing if any others are in the communications path because Apple provides no way for Alice or Bob to check. Other end-to-end encrypted systems have been designed to prevent this problem. WhatsApp or Signal, for example, both provide users a way to check if there is a man in the middle (see here and here respectively). This is a security weakness of the iMessage protocol and should be fixed.

[…]

There’s another way that Alice and Bob’s encrypted communication can be eavesdropped upon. Because iMessage allows multiple devices on a single account, Apple could add the FBI as a second “virtual device” to Bob’s account.

[…]

If Apple was to change its technology to be able to surreptitiously add a device to the account—that’s the way the wiretapping would work—it would have to deactivate the warning system. (Otherwise the bad guy would know he’s being tapped.)

The real question is not whether Apple can do this. (The answer is yes.) The real answer is whether Apple can do this in a way that doesn’t disrupt the system for everyone else and destroy their security. That’s far from clear.

Tuesday, December 19, 2017 [Tweets] [Favorites]

Transferring SD Card Data to iOS, Fast

Jason Snell:

The big challenge has been iOS’s sad and continued lack of support for external storage devices. When I’m traveling with only my iPhone and iPad, I can record audio on an external device—an SD-card recorder from Zoom, usually—but how do I get those files onto my iOS device? iOS can’t see the contents of a standard SD card.

[…]

This year, though, I found a new device that solved my problems. It’s the Kingston MobileLite G3, a peculiar little multi-tool of a product that can charge iOS devices, act as a mobile router to convert hotel Ethernet into Wi-Fi, and more. But there’s only one feature that I really use: its onboard SD card slot.

Update (2017-12-19): John Gruber:

Apple even makes an SD card reader for iOS devices. It just seems downright wrong that it only allows you to import photos to your camera roll. Clearly a connected SD card ought to show up as a source in the iOS 11 Files app, right?

Apple Watch Series 3 Carrier Fees

Juli Clover:

On AT&T in North Carolina, fees and surcharges add an additional $4.39 to the $10 per month charge, bringing the total to almost $15 per month for an Apple Watch. In some states, these fees on Verizon and AT&T are even higher.

[…]

If you’re planning to avoid fees by deactivating service and activating again when it’s needed, that may not be the best plan of action. As Macworld’s Michael Simon points out, line activation fees that come with reactivation can be hefty.

Broken Photos Drag and Drop

Ilja A. Iwas (tweet):

For almost a year now you cannot drag images from Photos to Safari, and in extension every other macOS application that uses WebViews, like our own GarageSale and many other 3rd party apps that work with images.

Imagine that: The default image handling app on the Mac platform cannot communicate via drag & drop with the default browser. And that’s been going on for almost a year now. On the desktop platform that used to excel in drag & drop!

Not a day goes by without frustrated users in asking our support team why GarageSale cannot receive drags from Photos.

How Extended Validation Certificates Can Be Used to Scam

Dan Goodin:

Researcher Ian Carroll filed the necessary paperwork to incorporate a business called Stripe Inc. He then used the legal entity to apply for an EV certificate to authenticate the Web page https://stripe.ian.sh/. When viewed in the address bar, the page looks eerily similar to https://stripe.com/, the online payments service that also authenticates itself using an EV certificate issued to Stripe Inc.

The demonstration is concerning because many security professionals counsel end users to look for EV certificates when trying to tell if a site such as https://www.paypal.com is an authentic Web property rather than a fly-by-night look-alike page that’s out to steal passwords. But as Carroll’s page shows, EV certs can also be used to trick end users into thinking a page has connections to a trusted service or business when in fact no such connection exists. The false impression can be especially convincing when end users use Apple’s Safari browser because it often strips out the domain name in the address bar, leaving only the name of the legal entity that obtained the EV certificate.

Amazon Changes Its Review Policy

Amanda Green (via Hacker News):

Since Amazon first opened its virtual doors, there have been concerns about reviews. Not just for books but for all the products sold through its site. It is no secret that authors have paid for reviews — and some still do. Or that there have been fake accounts set up to give sock puppet reviews. There have been stories about sellers and manufacturers planting fake reviews as well, all in the hopes of bolstering their product rankings and ratings. From time to time, Amazon has taken steps to combat this trend. One of the last times they did it, they brought in a weighted review system. This one differentiates between “verified purchasers” and those who did not buy the product viz Amazon. Now there is a new policy in place, once that should help — at least until a new way around it is found.

Simply put, Amazon now requires you to purchase a minimum of $50 worth of books or other products before you can leave a review or answer questions about a product. These purchases, and it looks like it is a cumulative amount, must be purchased via credit card or debit card — gift cards won’t count. This means someone can’t set up a fake account, buy themselves a gift card and use it to get around the policy.

Amazon Will Resume Selling Apple TV and Chromecast

Ina Fried (via Hacker News):

There’s a lot of frenemy stuff at play here, with Google, Apple and Amazon all selling their own streaming devices, but also looking to offer their own services on one another’s devices. Apple doesn’t offer its programing on rival devices, but does move a lot of hardware through Amazon.

Monday, December 18, 2017 [Tweets] [Favorites]

Developer Documentation for MailMate Bundles

Benny Kjær Nielsen:

Bundles have existed for MailMate for a long time, but the creation of bundles has been largely undocumented. This changed recently when I created a documentation page for bundles. This should make it easier to create personal bundles, but you are also very welcome to create bundles to be shared with other MailMate users. Companies with multiple MailMate users might also want to create their own company-wide bundles which could, for example, integrate with local issue tracking systems or provide easy creation of standard replies. If there’s something you would like to do which is not possible using bundles then let me know. I’d like to make it even more flexible than it already is.

Moving Acorn to Metal

Gus Mueller:

IOSurface is neat. A shared bitmap that can cross between programs, and it’s got a relatively easy API including two super critical functions named IOSurfaceLock and IOSurfaceUnlock. I mean, if you’re sharing the data across process boundaries then you’ll need to lock things so that the two apps don’t step on each other’s toes. But of course if you’re not sharing it across processes, then you can ignore those locks, right? Right?

[…]

What I couldn’t do though, was make a CIImage directly from that IOSurface. Every time I tried, I’d end up with an image that was either 100% blue, or 100% red. I had convinced myself that these were some sort of mysterious debugging messages, but I just hadn’t come across the correct documentation letting me know what it was.

[…]

Yes, you can use a CGBitmapContext with an IOSurface without locking it. But then some other frameworks are eventually going to grab that same IOSurface for drawing and they are going to lock it and then some crazy black magic is going to swoop in and completely ruin your image. Even if you aren’t using it across processes. So you better make sure to lock it, even if you’re not actively drawing to it, or else things are going to go south.

Update (2017-12-28): Gus Mueller:

And then there’s the issue of actually trying Metalcorn (get it, Metal + Acorn?) on another machine. Up to now it’s been on a couple of iMacs. But I threw in on a 2012 MBP the other day and wow, it was janky and not at all what I was expecting. Rendering problems related to alpha channels, jittery behavior, and general funkyness.

When rendering through GL + CGBitmapContexts I always got predictable behavior that scaled linearly with the CPU power of your machine. Not so with Metal.

Firefox Pushes Looking Glass Add-on

Chris Siebenmann:

This [Allow Firefox to install and run studies] preference sounds relatively harmless, and probably it used to be. Then very recently Mozilla pushed out a nominal SHIELD experiment in the form of a new extension called ‘Looking Glass 1.0.3’, with the helpful extension description text of ‘MY REALITY IS JUST DIFFERENT THAN YOURS’. Unsurprisingly, a lot of people who noticed this extension appearing were quite alarmed, because it certainly does look like malware from surface appearances, and to add to the fun there was no particular sign in Firefox of what it did. People on Reddit who noticed it resorted to reverse engineering the extension’s code in an attempt to figure things out, eg.

What this extension actually is is some kind of promotion from the Mr Robot TV show:

[…] Firefox and Mr Robot have collaborated on a shared experience to further your immersion into the Mr Robot universe, also known as an Alternate Reality Game (ARG). […]

From the outside, this collaboration certainly seems like it was actually ‘Mr Robot gave Mozilla a bunch of money and Mozilla abused its browser experiments system to inflict a Mr Robot promotional extension on people’. To make it worse, this is not just any old extension; this is an extension that apparently silently alters text on web pages (some text, only for a while).

Use SF Mono Outside of Terminal and Xcode

Collin Donnell:

Run this command from the Terminal and you’re all set:

cp -R /Applications/Utilities/Terminal.app/Contents/Resources/Fonts/. /Library/Fonts/

Ai.Type Keyboard Leaks Data for 31 Million Users

Bob Diachenko (via Bryan Chaffin):

Ai.Type accidentally exposed their entire 577GB Mongo-hosted database to anyone with an internet connection. This also exposed just how much data they access and how they obtain a treasure trove of data that average users do not expect to be extracted or datamined from their phone or tablet. MongoDB is a common platform used by many well known companies and organizations to store data, but a simple misconfiguration could allow the database to be easily exposed online. One flaw is that the default settings of a MongoDB database would allow anyone with an internet connection to browse the databases, download them, or even worst case scenario to even delete the data stored on them.

[…]

Phone number, full name of the owner, device name and model, mobile network name, SMS number, screen resolution, user languages enabled, Android version, IMSI number (international mobile subscriber identity used for interconnection), IMEI number (a unique number given to every single mobile phone), emails associated with the phone, country of residence, links and the information associated with the social media profiles (birthdate, title, emails etc.) and photo (links to Google+, Facebook etc.), IP (if available), location details (long/lat).

[…]

6,435,813 records that contained data collected from users’ contact books, including names (as entered originally) and phone numbers, in total more than 373 million records scraped from registered users’ phones, which include all their contacts saved/synced on linked Google account.

Previously: SwiftKey Keyboard Leaked User Information to Strangers, iOS 8 Keyboards.

Friday, December 15, 2017 [Tweets] [Favorites]

Using GitUp

I’ve recently rediscovered GitUp, and I like it much better now than the first time around. I’m not sure whether this is due to improvements in the app itself or simply my better understanding from reading the documentation and listening to this podcast. The user interface is non-standard—and to me not very self-explanatory—but it is actually very functional once you know how to use it.

Update (2018-01-03): One annoyance I’ve found is that you cannot see from the Commit view, which is where I live, whether there are changes that you need to push or pull. So it’s easy to switch Macs and leave some changes stranded.

Drive Genius 5.1 Adds High Sierra Compatibility

Prosoft Engineering:

macOS 10.13 High Sierra introduces additional security changes which prevent normal applications from accessing the current startup drive’s raw contents.

This change, which is an expansion of the existing System Integrity Protection feature introduced in macOS 10.11 El Capitan, prevents some features of Drive Genius from functioning correctly. As a result, Physical Check and Speed Test will require you to run Drive Genius from a secondary startup drive. Drive Genius can create such a drive for you, using BootWell. These features will still run as normal on macOS versions 10.12.6 and below (earliest supported).

In addition, due to the inability to access the raw data of an APFS drive, Drive Genius does not support Repartition and Defragment of APFS Volume/Partition and Drives.

These features continue to work on non-startup drives in 10.13 and all drives in 10.12 and earlier without needing to restart.

Previously, Drive Genius 5 would prevent itself from launching on macOS 10.13, even if you only wanted to use it on an external drive.

This is the utility that I use to check for bad blocks. It used to be that this particular feature was available for unlimited use with the free demo, with other features not available until you paid. Now, there is instead a fully-featured demo that expires after 30 days.

A free and open source tool for finding bad blocks is dd_rescue, which is on Homebrew (via Pepi Zawodsky).

App Store Introductory Pricing

Apple:

To attract new subscribers, apps with auto-renewable subscriptions can offer a discounted price or a free trial for a limited time at the beginning of a subscription. You can offer one of the following introductory price types per subscription, per territory:

Pay as you go. New subscribers pay an introductory price each billing period for a specific duration — for example, $1.99 per month for 3 months for a subscription with a standard price of $9.99 per month. This type may be useful if you want to attract price-sensitive users with a recurring discount without having to offer that price for the lifetime of the subscription.

Pay up front. New subscribers pay a one-time introductory price for a specific duration — for example, $9.99 for 6 months for a subscription with a standard price of $39.99 per year. This type may be useful if you want to offer an extended introductory experience that gives users time to enjoy the subscription before the next renewal.

Free trial. New subscribers access your subscription for free for a specific duration. Their subscription begins immediately but they won’t be billed until the free trial period is over. This type may be useful if you want to give users the ability to try out your subscription with the option to cancel before billing occurs.

This is good news for apps that are suitable for subscriptions and which can do something useful for non-subscribers. I still fail to see how all this complication (for both users and developers) is better than offering traditional trials.

But Apple does now let you buy before the app is even available. Juli Clover:

Apple is implementing a new feature that allows developers to offer pre-orders for unreleased apps, letting customers purchase popular apps ahead of their release date.

I guess this is supposed to help with marketing for certain types of apps. Previously, it was only available to Super Mario Run. The best news, in my opinion, is that the pre-order feature is launching simultaneously for iOS and Mac.

Update (2018-01-22): Pre-orders are buggy on the Mac.

How to Use Apple Pay Cash

Dan Moren:

Remember that if you pay with a credit card, there’s a 3 percent credit card fee, which I learned the hard way.

[…]

Under Settings > Wallet & Apple Pay, you’ll find a new Apple Pay Cash card—tapping on that gives you a few additional options, including a transaction history, whether or not you want to automatically accept payments, and ways to add money to your Apple Pay Cash balance or transfer your balance to a bank account. Remember that when you have a balance on your Apple Pay Cash card, you’ll be able to use it like any other card you have in Apple Pay. (I’m not sure yet what happens if there’s not enough balance to cover your purchase—does it simply fail or fall back to another card?)

Apple’s got a more thorough help document on Apple Pay Cash if you’re curious, as well as one that details the monetary limits.

Apple’s New Utility Swift Library

Paul Hudson:

Apple has unveiled a new collection of open-source utility code for Swift developers, grown out of its Swift Package Manager project. The collection contains some interesting new data types (OrderedSet – hurray!), some tools to make command line programs easier to write, and some helpers for common tasks like temporary files and SHA hashing.

The code is here.

N.Y. Times Scales Back Free Articles

Gerry Smith (via Hacker News):

The New York Times, seeking to amass more paid subscriptions in an era of non-stop, must-read headlines, is halving the number of articles available for free each month.

Starting Friday, most non-subscribers will only be able to read five articles rather than 10 before they’re asked to start paying. It’s the first change to the paywall in five years. A basic Times subscription, with unlimited access to the website and all news apps, is $15 every four weeks.

Tuesday, December 12, 2017 [Tweets] [Favorites]

The iMac Pro

Joe Rossignol:

Apple today announced the iMac Pro will be available to order on Thursday, December 14. Pricing starts at $4,999 in the United States.

[…]

With four Thunderbolt 3 ports, the iMac Pro can drive two 5K displays or four 4K displays at 60Hz simultaneously. It also has a 10 Gigabit Ethernet port, four USB-A 3.0 ports, an SD card slot, and a 3.5mm headphone jack.

Joe Rossignol:

Brownlee in his hands-on video said the high-end 18-core iMac Pro will ship early next year, alongside an unannounced 14-core model that will apparently be added to the lineup for a total of four Intel Xeon processor configurations.

Marco Arment:

iMac Pro reviews are out! Great! I’m excited! Let’s go!

But we still can’t order them or even view their configurations, pricing of every option is still a mystery, and only the lower half of the CPU options will be available at launch.

I miss clean launches with no asterisks.

Apple doesn’t consider developers “pros” for PR purposes. It’s pretty much always and only video editors.

Even though we’re a FAR bigger industry that probably buys more pro Macs, PR likely thinks nobody wants to see Xcode builds or VM containers. They’re probably right.

David Heinemeier Hansson:

I spoke with the iMac Pro team yesterday and they’re keen to change this, they said. Developers is the biggest pro group for them. I did give them shit for failing to press that point and for the flubs like TouchBar. Hope they listen!

Cabel Sasser:

Apple (amazingly/unprecedentedly?) provided me with a loaner iMac Pro a few days ago to check out, and in turn, I’m very eager to share my notes with you. Here are six initial impressions in a thread[…]

We tried compiling one of our meatier Xcode projects on the iMac Pro (10-core Xeon W, 3 GHz) vs. our standard Mac Pro (3.5 GHz Xeon E5, 6-core). Sure, the Mac Pro is old, but the iMac Pro compiled the project 41% faster. A pretty sincere boost.

I would like to see a comparison with a 2017 iMac. iMacs, and even Mac minis, have outperformed Mac Pros at compilation for a while now.

Craig A. Hunter:

Most of my apps have around 20,000-30,000 lines of code spread out over 80-120 source files (mostly Obj-C and C with a teeny amount of Swift mixed in). There are so many variables that go into compile performance that it’s hard to come up with a benchmark that is universally relevant, so I’ll simply note that I saw reductions in compile time of between 30-60% while working on apps when I compared the iMac Pro to my 2016 MacBook Pro and 2013 iMac.

That’s actually rather underwhelming for development. There’s a much bigger performance difference for video stuff.

Colin Cornaby:

I will say this about the iMac Pro: Even though I’m holding out for the Mac Pro, it’s the first Mac in a while that in theory could actually meet my needs.

Mark Damon Hughes:

The specs on this are actually top of the line, it has sufficient max RAM (128GB!), the AMD Vega card is a great choice. We’d have to wait to see benchmarks between the 10-core, 14-core, and 18-core models for ideal multi-core vs single-core performance.

That said, this isn’t the machine I want. Non-expandability is a massive problem for these machines. Wrapping a high-end CPU inside a tight thermal enclosure like the iMac is not great, no matter how much ventilation you put out back; and fans running right behind your screen and speakers is awful, it needs to be on the floor or far end of a desk.

I’m glad the iMac Pro exists, but I don’t think it makes very much sense for the type of work I do. It’s so much more expensive than a regular iMac for seemingly little benefit.

Previously: My 2017 iMac, The 2017 iMacs.

Update (2017-12-13): No word yet on whether the keyboard is bendy.

See also: John Voorhees.

Russell Ivanovic:

“Spec out a similar PC and you’ll see the iMac Pro is priced reasonably!” 2 issues:

1. I’d never build a PC like that. I’d pick consumer graphics and consumer parts. It would be half the price and better for my needs.

2. The iMac will still cost that a year from now. The PC won’t

What I actually want is a desktop Mac I can put consumer parts into and upgrade. Shocking. I know. The iMac 5K doesn’t have the CPU and GPU I want, and I can’t ever change that.

Colin Cornaby:

This is kind of an issue with the iMac Pro. Want a consumer CPU with a nice GPU? Nope. The iMac doesn’t have nice GPUs and the iMac Pro doesn’t have consumer CPUs.

I think the iMac Pro would have made a hell of a lot more sense with 6 and 8 core i7s and a 10 core i9 instead of going to Xeons. Use Vega GPUs. Much lower starting price, more options, fills an actual hole in the Mac lineup. Doesn’t compete with the Mac Pro.

Such an iMac Pro would have been a lot more interesting to me.

Rob Art Morgan:

Here’s an interesting tidbit: Geekbench OpenCL Computer Score for Pro Vega 64 in 2017 iMac Pro = 169397. Score for RX Vega 64 in 2010 Mac Pro = 184835. (Both running macOS 10.13.2)

Colin Cornaby:

And the Mac Pro is already handicapped on Vega 64 because of the slower CPU. So that’s a positively dismal showing for the iMac Pro.

Basically: If you care about graphics performance, wait for the Mac Pro. Which is where we started to begin with.

I suspect Apple at some point realized that the iMac Pro wasn’t going to be a sustainable replacement for the Mac Pro for reasons like this. If this was the Mac Pro replacement, people would be leaving the platform with performance like that.

Honestly with those scores you’d literally be better off buying a 2013 Mac Pro and throwing a Vega 64 in an eGPU box.

Update (2017-12-14): Rene Ritchie:

You can’t upgrade RAM yourself but you can take it to an Apple Store or certified service center and they can upgrade for you.

Marco Arment:

Sure, but only by Apple service places, and probably therefore only Apple RAM, and definitely therefore at Apple RAM prices.

So technically, yes, but probably not the way people want when they ask for “upgradeable RAM”.

Paul Haddad:

128GB upgrade $2400 vs [$1432.95]

Apple:

Introducing the Apple T2 chip, our second-generation custom Mac silicon. By redesigning and integrating several controllers found in other Mac systems — like the system management controller, image signal processor, audio controller, and SSD controller — T2 delivers new capabilities to the Mac. For instance, the T2 image signal processor works with the FaceTime HD camera to enable enhanced tone mapping, improved exposure control, and face detection–based auto exposure and auto white balance. T2 also makes iMac Pro even more secure, thanks to a Secure Enclave coprocessor that provides the foundation for new encrypted storage and secure boot capabilities. The data on your SSD is encrypted using dedicated AES hardware with no effect on the SSD’s performance, while keeping the Intel Xeon processor free for your compute tasks. And secure boot ensures that the lowest levels of software aren’t tampered with and that only operating system software trusted by Apple loads at startup.

Update (2017-12-15): Jason Snell:

It’s a big milestone. This is almost four years to the week that Apple last released a professional desktop Mac, with the release of the redesigned, cylindrical Mac Pro. Since then there’s been… nothing, other than the grousing of high-end Mac users concerned about the lack of updates.

Matthew Panzarino (via Phil Schiller, Hacker News):

The messaging was interesting to me. It was absolutely, clearly, a love letter to developers.

Rene Ritchie:

The definition of pro has grown and expanded over the years. […] Once upon a time, it was graphics and publishing, and then eventually video and sound professionals, that defined the category. Now, developers are by far the biggest group.

Samuel Axon:

While the iMac Pro offers much faster compile times (2.5 times the other iMac in some cases), the multiple cores create some impressive multitasking opportunities, too. In one use case demonstrated by Apple, a 10-core iMac Pro was set up to run three simultaneous iOS instance tests, multiple virtual machines, and other tasks including regression testing—all while working with a large project in Xcode with no slowdown.

Lance Ulanoff:

Apple also wanted to make it clear that the iMac Pro is also a developer’s tool and demonstrated how a 10 Core iMac Pro can simultaneously handle three iOS simulations (on screen was what looked like screens for an iPhone 8, an iPad and iPhone X all running the same application), a Linux Ubuntu VM serving Apache PHP code, a, yes, Windows 10 virtual machine running 20 Chrome browser sessions, and a virtualization of the previous Mac OS, without missing a beat or making loud wheezing sounds. Seriously, I didn’t hear a peep from the system.

The iMac Pro has performed some of the fastest compiles Apple has ever seen.

I would hope so! Apple’s page shows Build Time benchmarks of a 10-core iMac Pro being 1.9x the speed of a top-of-the-line 5K iMac at compiling Clang/LLVM/compiler-rt. The 18-core iMac Pro is 2.4x. (Rene Ritchie says that he saw a demo of a 10-core iMac Pro that was 2.4x.) These are much more impressive numbers than Craig Hunter and Cabel Sasser reported (above). I would guess that Apple’s numbers are less representative of what Mac and iOS developers would see because they don’t focus on Objective-C or Swift code, and Swift compilation benefits less from multiple cores.

Gabe Weatherhead:

It’s a very reasonable price for what the iMac Pro delivers so I’m not moaning about the price points. It seems very fair but here’s the price rundown for an entry level iMac Pro and and a comparable iMac 5K[…]

Paul Haddad:

The base modela are never that bad of a deal, its once you start adding in the extras that it starts getting ridiculous.

Marco Arment:

If Xeons are pointless to you, you’re not an iMac Pro customer.

The real argument from the “iMac Pro is overpriced!” camp is usually, “Apple won’t make the consumer gaming PC I want.”

And that’s a good argument to have. But that doesn’t mean this Xeon workstation is overpriced.

Colin Cornaby:

It looks like the iMac takes a 10-20% hit in GPU horsepower compared to the same retail Windows part. Vega 56 should be 10.5 TFLOPS. Vega 64 should be 12.66 TFLOPS.

Lloyd Chambers:

What Apple has done is to ‘spin’ form over function as top-notch engineering for heat management. By designing too small an enclosure (very poor decision for heat removal) it then became necessary to use top-notch engineering to deal with the heat problem which would not exist if a proper-sized case had been used. And that would make the iMac Pro less svelte—and form takes precedence over function. The disappointing kicker is to realize that Apple is using downclocked (slower) CPUs because the faster ones would generate too much heat because the decision was made to make a too-small enclosure for the iMac Pro and/or not to size up the venting and fans. Gorgeous engineering visually (!), but impaired performance and non-upgradeable memory.

Paul Haddad:

The base clock on the 8 core is 700MHz lower than it should be and boost is 300. The 10 core’s base is only 300 lower and boost is spot on.

Seems like they are handicapping the 8 to sell more of the 10s. If you are going to buy one the 10 is definitely the one to get.

Lloyd Chambers:

When only 1 to 4 cores are used (common in my own Photoshop usage), the fastest clock speed wins, e.g., the 2017 iMac 5K has a base clock of 4.2 GHz and turbo boosts to 4.5 GHz, so none of the cores drop below 4.2 Ghz. The iMac Pro 8-core has a base clock of 3.2 GHz and turbo boosts to 4.2 GHz, the 10 core has a base clock of 3.0 Ghz and turbo boosts to 4.5 Ghz. But when more cores are used, the iMac Pro CPUs drop towards base clock speed—much lower than the 2017 iMac Pro. Hence there is some average clock speed for the number of cores used that determines which machine wins, and this is not likely to be the iMac Pro until 6+ cores are used.

John Gruber:

Second, and to me far more importantly: how committed is Apple to keeping the iMac Pro up to date? It’s an impressive piece of engineering — do not let the appearance fool you into thinking that the iMac Pro is just an iMac with a dark finish and speed-bumped processors. Internally, it’s a completely different architecture. But the 2013 Mac Pro was an impressive piece of engineering and design that Apple put a lot of effort into, too.

My hope is that the iMac Pro has been designed with the future in mind.

See also: Accidental Tech Podcast, Hacker News, Mac Rumors, Josh Centers.

Juli Clover:

If an iMac Pro becomes unresponsive and requires restoring, like if there’s a power failure during a software update, there are a special set of instructions iMac Pro users must follow, which require a secondary Mac.

As outlined in an Apple Configurator 2 support page, an iMac Pro restore requires a second Mac running macOS High Sierra with internet access and Apple Configurator 2.6 or later installed.

[…]

This restore process is similar to what must be done for an iPhone or iPad that is unresponsive, and it is necessary due to the extra security afforded by the Apple-designed T2 chip.

Stephen Hackett:

All security measures must be weighed against the inconvenience they cause. Personally, I don’t think this tips in the wrong direction, but I know many will disagree with me.

(I assume that disabling Secure Boot doesn’t do anything to make a restore possible without a second Mac and a copy of Configurator.)

Users with bricked iMac Pros aren’t going to know how to do this, unless they are super nerdy. That may not be a big deal now, but I think it is safe to assume this sort of thing will trickle down to consumer-oriented Macs at some point. That’s not to mention the headaches this may cause in the enterprise.

It’s not clear to me what benefits we are getting from Secure Boot.

Update (2017-12-20): Apple (via Vas):

iMac Pro computers don’t support starting up from network volumes.

Update (2017-12-22): See also: Accidental Tech Podcast.

Update (2018-02-19): See also: Gabe Weatherhead, Samuel Axon (Hacker News).

Monday, December 11, 2017 [Tweets] [Favorites]

Apple Widens Ban on Templated Apps

Sarah Perez (tweet):

Following its Worldwide Developers Conference, Apple released updated App Store guidelines that included a new rule allowing it to ban apps created by a “commercialized template or app generation service.” The understanding at the time was this was part of Apple’s larger App Store cleanup, and the focus was on helping rid the marketplace of low-quality clone and spam apps. But things have since changed. A number of app-building companies that had earlier believed themselves to be in the clear are now being affected, as well.

[…]

What’s unfortunate about the expanded policy enforcement is that these app makers specifically target the small business market. They build apps for businesses that don’t have the internal resources to build their own apps or can’t afford to hire a custom shop to design a new iOS app from scratch.

Instead, these companies help small businesses like local retailers, restaurants, small fitness studios, nonprofits, churches and other organizations to create an app presence using templates, drag-and-drop wizards and various tools to put together a more basic app that can then be customized further with their own branding and images.

[…]

As one app builder put it, the decision to limit these small businesses’ ability to compete on the App Store is as if a web hosting company said that they would no longer allow web pages built with WordPress templates or those made using website wizards from services like Wix or Squarespace.

Tim Schmitz:

Not everyone needs or can afford a bespoke app, and I say that as someone who builds bespoke apps for a living. I’m not sure who Apple thinks it’s helping with this.

I don’t either. What is the point of rejecting legitimate apps as if they’re spam? Can Apple really not tell the difference? I would think that templates would actually increase the quality (not to mention availability) of these types of apps. And a family of apps that work the same way is also easier for customers to learn how to use.

See also: Peter Steinberger.

Update (2017-12-11): See also: Benjamin Ragheb (2010), Bob Warwick.

Does iOS Throttle CPUs When Using a Degraded Battery?

Tim Hardwick (Hacker News):

A Reddit post over the weekend has drawn a flurry of interest after an iPhone 6s owner reported that a battery replacement significantly increased the device’s performance running iOS 11. The ensuing discussion thread, also picked up by readers in the MacRumors forum, has led to speculation that Apple intentionally slows down older phones to retain a full day’s charge if the battery has degraded over time.

According to TeckFire, the author of the original Reddit post, their iPhone had been very slow after updating to iOS 11, especially compared to their brother’s iPhone 6 Plus, so they decided to do some research with GeekBench and battery life apps, and ended up replacing the battery.

Just over a year ago, Apple launched a repair program for iPhone 6s owners after some users reported their devices were unexpectedly shutting down. Apple said the problem was down to a manufacturing issue affecting a “very small” number of iPhone 6s devices, and offered battery replacements free of charge to owners of devices within a limited serial number range.

Chance Miller:

Some in the thread speculate that Apple was inundated with battery replacement requests because of the random shutdown issue, and instead of coming clean about it, throttled devices with a software update to “solve” the problem[…]

[…]

If you feel that you’re affected by this problem, you can use an app like CpuDasherX to see your device’s clock speed. Users report that the clock speed shown here is less than what it should be, adding merit to suggestions that Apple throttles devices affected by the shutdown issue.

While Apple says that Low Power Mode can reduce device speed in an effort to save battery life, this appears to be completely different and affects users without that featured enabled.

Matt Birchler:

But if this is indeed legit, I honestly don’t think it’s a bad decision by Apple. If your phone has a worn out battery and the system has to choose whether to make your phone last longer or run faster, I think making it run a little slower so that it doesn’t die is the right call. It’s essentially doing what Low Power Mode does already, just without your need to toggle it on or off.

That would make sense—and also vindicate all the people who were dismissed (including by me) for complaining about iOS updates intentionally slowing down their phones. But Apple should be up-front about doing this and about which iPhones are affected.

Previously: Do iPhones Get Slower Over Time?, iOS 10.2.1 Update Reduces Unexpected Shutdowns, Apple’s Support Gap.

Update (2017-12-18): John Poole:

First, it appears the problem is widespread, and will only get worse as phones (and their batteries) continue to age. See, for example, the difference between the distribution of iPhone 6s scores between 10.2.1 and 11.2.0.

Second, the problem is due, in part, to a change in iOS. The difference between 10.2.0 and 10.2.1 is too abrupt to be just a function of battery condition. I believe (as do others) that Apple introduced a change to limit performance when battery condition decreases past a certain point.

[…]

Users expect either full performance, or reduced performance with a notification that their phone is in low-power mode. This fix creates a third, unexpected state. While this state is created to mask a deficiency in battery power, users may believe that the slow down is due to CPU performance, instead of battery performance, which is triggering an Apple introduced CPU slow-down. This fix will also cause users to think, “my phone is slow so I should replace it” not, “my phone is slow so I should replace its battery”. This will likely feed into the “planned obsolecense” narrative.

See also: Paul Haddad.

Update (2017-12-19): Bob Burrough:

If this is confirmed (the data sure looks compelling), I don’t think this is a defensible decision. People expect batteries to deteriorate. They don’t expect CPU’s to deteriorate. If the CPU were left alone, it just means your battery would die sooner. That’s a service call...

Just head into any Apple store (etc), they’ll replace the battery, and you’re good as new. However, if you’re feeling that your phone is just slow, there is no service call for that. Only a new phone would help.

Also, there’s no reason not to display a dialog that says “Your battery has reached the end of its usable life, please bring your iPhone to the nearest Apple store for a replacement.”

Zac Cichy:

This is really damning if it turns out to be the case. Hesitant to comment much further....

But. If true, this demonstrates an Apple that is transforming into everything their harshest critics say. Planned obsolescence!?!

See also: Hacker News.

I still think slowing down the phone to save battery makes sense for most users. But iOS should say that it’s doing this so that the user can get the battery replaced. In other words, help the customer fix the root problem rather than papering over it. Many of these phones are still under AppleCare. Secondly, it seems like enough phones are affected that either there’s something wrong with the batteries or the phones were not designed with enough battery capacity.

Update (2017-12-20): Zac Cichy:

It should be possible to opt-out. And Apple ought to be able to give users some kind of warning when battery degrades past a certain point, with an option to service the device.

But again, they are not incentivized to do that.

Except that it will really hurt Apple’s reputation when customers find out they’ve been deceived.

The Case for Learned Index Structures

Nick Schrock:

Jeff Dean and co at GOOG just released a paper showing how machine-learned indexes can replace B-Trees, Hash Indexes, and Bloom Filters. Execute 3x faster than B-Trees, 10-100x less space. Executes on GPU, which are getting faster unlike CPU. Amazing.

The paper is here, and there’s also a presentation (via Hacker News).

Update (2018-01-08): See also: Adrian Colyer.

Update (2018-01-09): See also: Adrian Colyer.

Update (2018-01-14): Peter Bailis et al.:

While learned indexes are an exciting idea for many reasons (e.g., they could enable self-tuning databases), there is a long literature of other optimized data structures to consider, so naturally researchers have been trying to see whether these can do better.

AI-Generated Images

NVIDIA:

To date, much of deep learning has used supervised learning to provide machines a human-like object recognition capability. For example, supervised learning can do a good job telling the difference between a Corgi and a German Shepherd, and labeled images of both breeds are readily available for training.

To give machines a more “imaginative” capability, such as imagining how a wintery scene would look like in the summer, Liu and team used unsupervised learning and generative modeling. An example of their work is shown below, where the winter and sunny scenes on the left are the inputs and the imagined corresponding summer and rainy scenes are on the right.

The NVIDIA Research team’s work uses a pair of generative adversarial networks (GANs) with a shared latent space assumption to obtain these stunning results. Considering the top two images above, the first GAN is trained on the winter scene — overcast skies, bare trees, snow covering just about everything but the cars sailing down the frozen road. The second GAN is trained to understand generally what summer looks like, but hasn’t been trained on the same specific scene as its counterpart.

Via René Schulte:

In the near future we can’t trust any photos we see and you won’t need humans with superhuman Photoshop skills for that.

Friday, December 8, 2017 [Tweets] [Favorites]

SuperDuper 3.1 Supports APFS Snapshots for Both Source and Destination

Dave Nanian (tweet):

This means you don’t just have to copy from the drive as it is “now” (the default choice). You can select from any existing snapshot, and we’ll copy the state of the files as they were at that time.

[…]

That means there’s not just one available backup on the drive—if you’ve been using Smart Update, there are many! Start up from your backup drive, click the triangle, and you’ll be presented with a list of available snapshots. Pick one, “Copy Now”, and you’ve restored a day ago’s backup, or a week ago’s.

[…]

In fact, not only can you use SuperDuper to copy from these snapshots, you can even open Time Machine, select your backup volume, and see older versions of files, deleted files - they’re all being saved, automatically, every time you Smart Update. Even though you’re not backing up your backup to Time Machine.

[…]

Snapshots are managed by the system, and at present they have some lightly-to-not documented constraints. You need to have about 20% free in a container to create a snapshot, and the system consolidates and removes snapshots according to its own logic.

This may be the best reason to update to macOS 10.13 High Sierra. And I would consider backup drives to be an exception to the general rule of not using APFS with spinning hard drives.

Mailsploit

Sabri Haddouche:

Mailsploit is a collection of bugs in email clients that allow effective sender spoofing and code injection attacks. The spoofing is not detected by Mail Transfer Agents (MTA) aka email servers, therefore circumventing spoofing protection mechanisms such as DMARC (DKIM/SPF) or spam filters.

Bugs were found in over 30 applications, including prominent ones like Apple Mail (macOS, iOS and watchOS), Mozilla Thunderbird, various Microsoft email clients, Yahoo! Mail, ProtonMail and others.

Via Benny Kjær Nielsen:

In short, it tricks some email clients into finding the wrong email address within an email address header like “From”. The email client would then display the wrong sender. The definition of “wrong” here is based on RFC5322.

It is important to understand that spoofing a “From” header has always been easy and, in my opinion, it is still easy.

[…]

In the most recent test release of MailMate I’ve added the following improvement: Whenever the name part of an address header contains a @ then it’s replaced with a skull (💀). That should at least make the user aware of simple attempts to spoof an address header.

SpamSieve 2.9.29 is vulnerable to the spoofing problem, which could manifest as a whitelist rule matching a message that was not actually “from” that address. This is fixed in the public beta.

EagleFiler 1.8.1 is not affected by the spoofing.

Neither is affected by the code injection attacks.

Null characters can cause all sorts of problems outside of e-mail. For example, testing my fix for this bug crashed Xcode’s SourceKitService.

Update (2017-12-08): Here’s the Thunderbird tracking bug.

HomeKit Vulnerability Allowed Remote Access to Smart Accessories Including Locks

Zac Hall:

A HomeKit vulnerability in the current version of iOS 11.2 has been demonstrated to 9to5Mac that allows unauthorized control of accessories including smart locks and garage door openers. Our understanding is Apple has rolled out a server-side fix that now prevent unauthorized access from occurring while limiting some functionality, and an update to iOS 11.2 coming next week will restore that full functionality.

[…]

The issue was not with smart home products individually but instead with the HomeKit framework itself that connects products from various companies.

[…]

I would also like to know — just like with the root security issue that affected the Mac last week — that the development process that led to this vulnerability shipping and the issue remaining live for weeks without users knowing is audited and changes are made if possible.

Update (2017-12-13): Lily Hay Newman:

And while Apple has earned a strong reputation for security, a string of significant vulnerabilities in macOS and iOS have strained Apple’s safety net—and led some security researchers and developers to question whether the issues are systemic.

[…]

“In my opinion, Apple’s desire to get all of its platforms—iOS, macOS, watchOS, and tvOS—on the same public relations, product management, and marketing-friendly annual release cycle is starting to take a toll,” says Pepijn Bruienne, a research and development engineer at Duo Security who focuses on Apple products.

Juli Clover:

The iOS 11.2.1 update addresses bugs and issues that have been discovered since the release of iOS 11.2.

According to Apple’s release notes, the update re-enables remote access for shared users of the Home app. Apple broke remote access for shared users when implementing a fix for a major HomeKit vulnerability last week.

Update (2017-12-18): Phil Schiller:

We just had a bad week. A couple of things happened, that’s all. The team is going to audit the systems and look carefully at the process and do some soul-searching, and do everything that they can to keep this from happening again.

ProtonMail Introduces IMAP/SMTP Bridge

Tim Hardwick:

Basically, the downloadable Bridge app enables ProtonMail users to access their encrypted email accounts using their favorite email client, without compromising on the security provided by the end-to-end encrypted service, and without needing to modify their email application. At the same time, local copies of the emails are stored on the user’s computer, allowing them to use the search features of their email client as normal.

To achieve this, the Bridge app functions like a local IMAP/SMTP email server capable of communicating with the remote ProtonMail server to encrypt and decrypt incoming/outgoing messages locally. In this way, it translates end-to-end encrypted email data into a language that any email client can understand, thus “bridging” the gap between ProtonMail’s end-to-end encryption and a user’s standard email client.

How Brands Secretly Buy Their Way Into Stories

Jon Christian:

Interviews with more than two dozen marketers, journalists, and others familiar with similar pay-for-play offers revealed a dubious corner of online publishing in which publicists, ranging from individuals like Satyam to medium-sized “digital marketing firms” that blur traditional lines between advertising and public relations, quietly pay off journalists to promote their clients in articles that make no mention of the financial arrangement.

People involved with the payoffs are extremely reluctant to discuss them, but four contributing writers to prominent publications including Mashable, Inc, Business Insider, and Entrepreneur told me they have personally accepted payments in exchange for weaving promotional references to brands into their work on those sites. Two of the writers acknowledged they have taken part in the scheme for years, on behalf of many brands.

[…]

One of them, a contributor to Fast Company and other outlets who asked not to be identified by name, described how he had inserted references to a well-known startup that offers email marketing software into multiple online articles, in Fast Company and elsewhere, on behalf of a marketing agency he declined to name. To make the references seem natural, he said, he often links to case studies and how-to guides published by the startup on its own site. Other times, he’ll just praise a certain aspect of the company’s business to support a point in an otherwise unrelated story.

I get requests like these from time to time and have always declined them.

Nick Heer:

An important update to a story I linked to two weeks ago about an Android system service that was collecting location data even when location services were switched off — according to Tony Romm of Recode, Oracle seeded that story to Quartz as part of a PR campaign against Google[…]

[…]

But I don’t necessarily think this reflects poorly on Oracle; if anything, it shakes my confidence in Quartz’s reporting. I don’t know what Quartz’s sourcing attribution guidelines are, but the New York Times’ style guide indicates that a source’s interest in the story should be communicated to readers as candidly as possible. In their story, Quartz did not indicate how they were tipped-off to Android’s behaviour.

Thursday, December 7, 2017 [Tweets] [Favorites]

The Magic Keyboard With Numeric Keypad Is Apparently Bendy

Bluetooth problems forced me to give up my aluminum wireless Apple keyboard and also plagued the Magic Keyboard and Logitech K811 that I tried as replacements. For the last several months, I’ve been using a Logitech K750. I chose this because it’s wireless but uses its own USB transceiver rather than Bluetooth, thus bypassing the problems introduced in Sierra. Unfortunately, I’ve started encountering problems with the K750. It now reports that its solar cells are not getting enough light to keep it charged. I don’t understand how this is possible since my office as four bright light bulbs, two displays, and a window. Is December in New England that much darker? In any event, there’s no way to charge the K750 directly, and the solar charging now only works when it’s away from my desk. The other problem is that it keeps forgetting that I’ve set the function keys to operate in standard mode, i.e. pressing F1 doesn’t require fn. Perhaps this is because the battery level is low.

So it’s time to change keyboards again. After many years using compact Apple keyboards—because of their feel and similarity with internal MacBook Pro keyboards—the K750 reminded me of how nice full-sized keyboards are. Most importantly, I use Page Up/Page Down and Home/End all the time, and it’s more comfortable to able to type those without chords. I also appreciate having the numeric keypad, a real Enter key (since fn-Return doesn’t work properly on third-party keyboards), good arrow keys, and extra function keys.

Right now I’m back to using my old Apple wired aluminum keyboard, which is no longer sold. The angle and feel are not as nice as with Apple’s newer keyboards, but otherwise it works well. Since it’s an Apple keyboard, I don’t need third-party software to make the function keys work without fn, and the fn key is also available to accept taps for dictation and LaunchBar. I was never able to get this to work with a third-party keyboard.

The old keyboard works fine, but since I would prefer something wireless I thought I would check out Apple’s new full-sized offering, which it calls the Magic Keyboard with Numeric Keypad. The price is kind of ridiculous. But aside from that, it seems like it would be great, presuming the Bluetooth issues are ever fixed. However, I noticed a large number of reviews from Apple’s own store that describe it as “bendy.”

Guy P:

Brand new just opened box - keyboard is bent!

Christopher E:

BENT! - it has become slightly bent (or perhaps it started that way and I didn’t notice it) - obviously it needs an additional rubber foot/feet in the middle, since the force of typing is concentrated in the centre of the keyboard, while the feet are on the edges. time will tell whether this becomes a functional problem - for now it is just very uncool for such an expensive item from the “it just works” company.

Kevin L:

After only five weeks of light use my “caps locks” key stopped working reliably. Sometimes it works fine, sometimes I have to tap it 5-6 times—very annoying. And, like many of the posts below, my keyboard is warping like a banana. The entire keyboard is sagging in the middle. I am really disappointed in the flimsy quality and poor workmanship. I expect so much more from Apple. I hope there is a recall so I can get one that works better. I went to an Apple store today and they agree to replace it; but, they don't have any in stock so I am waiting for a phone call when it comes in. I appreciate that Apple will replace it after six weeks, but I fear that the replacement will be just as bad.

Natalie J:

My space key through normal typing has gotten stuck on the left side so typing is now cumbersome on it. The entire keyboard appears to be bent despite my best efforts.

Adrien L:

The keyboard is bent. Seriously. It moves on the desk when I'm typing. This is bad, Apple, really bad.

Jan B:

After I paired the Keyboard with the Macbook I started typing. Immediately the Keyboard bounced around on my desk while using the Shift / Tab or Control Keys. After looking closely I saw that my Keyboard was bent in the middle so I filed a refund. After doing so Apples shipping time jumped to over 2 Months. So I ordered another Magic Keyboard from Amazon. This one had the exact same Problem.

Jeffrey C:

This keyboard is too thin and within a few weeks will bend in the center to the extent that it's touching the desk (while the rubber feet on the sides tilt up). I returned mine to our local Apple Store thinking it was defective, only to find all of the keyboards there with the same issue. I loved everything about the keyboard except for the flimsy construction. Hopefully Apple recognizes this issue and fixes it soon. For now, I went back to my 10-year old wired Apple keyboard, which works perfectly.

Mark W:

The problems - and it is a really annoying one - is that the keyboard is warped; wobbly on a flat surface. I like my Mac, my magic mouse, and even a trackpad, but this keyboard is just too stylish to hold up to it's basic function.

Kevin C:

The keyboard was so warped straight out of the box that it was unusable. Placed on a flat desktop it rocked from side to side. This is both a design and quality control failure. Ready to return in the box without its shrink wrap and the box is bulging on one end, push that end and it bulges on the other.

My first Mac was a 512K, there have been many since and there are six Apple products in the room I am writing from; Retina5K, iMac, MacBook Pro, iPad, iPhone, MacMini. I have never seen anything so completely shoddy before, never imagined it possible.

Very disappointed.

Donald M:

But after 5 weeks of use, typing hours a day (I'm a writer and book designer), it bent down in the center of the QWERTY portion, the pads at the end couldn't contact my desk, and the kb slid around. Useless.

No help from Apple -- they claimed I must have damaged it, that there was no way it could have happened except from accidental damage. Ridiculous.

Peter C:

I used this keyboard for two months. It had a distinct warp - while typing on the left side, the right side would rise off the desk. I decided to exchange mine for a new one, which we unboxed in store (Apple's policy - they return the old one in the new box). The new keyboard had the same warping problem, so I returned mine instead. That was disappointing - otherwise really liked the product.

This is just from the first page of reviews. MacRumors readers are reporting the same thing.

Fravin:

Mine is one week old and it looks like a banana. The bottom is bending down, making the edges being lifted from my table.

AppleSmack:

Yes, mine arrived bent, dipping in the middle. I gently bent, twisted, persuaded it until it was as straight as I could make it.

The previous model aluminium keyboard was aluminium all through. The Magic keyboard, despite being 2.5x more expensive than the previous version, is thin aluminium on top, plastic underneath. “Our best keyboard ever: lighter, thinner, flexibler.” Great.

Fravin:

I’m leaving an Apple Store without my keyboard but with the money back. The guy in the store had opened four bed news keyboards and all of them was bent.

Addie2020:

I had the same problem. Contacted Apple support and they arranged replacement very quickly after I returned the curved keyboard. It was a bit of a nuisance, but Apple support put it right efficiently.

iBug2:

Went to an Apple store to replace mine. They opened 4 boxes, all bent. So they will replace mine when they get a new shipment.

NightFox:

Yeah, I’ve just had one delivered and without even knowing of this issue, the first thing I thought when I got it out of the box was “that’s bent”!

When I put it on my desk, the middle touches the desk whereas the edges are unsupported, up in the air like a see-saw, one side more than the other.

Frankfurt:

2 months in and my keyboard is bent. That is probably too late for an exchange.

As the keyboard has been sitting on a flat service ever since I acquired it, this is clearly a design flaw.

davita70:

The rise at each side IS small, but big enough to make the keyboard rattle as you type. Like the sensation of eating at a table with one leg slightly slightly shorter than the others.

For the very expensive cost of this accessory, it’s a pretty fundamental issue, that outweighs some of the good points.

ZapNZs:

I was hesitant to say too much either way at first, given the tendency for an isolated issue to quickly become a something-SOMETHING-gate. But, from what I can gather, this is a serious problem that is affecting a significant portion of keyboards - i.e., more than half the models sold from one location have been returned (and, considering not everyone who gets a bendy keyboard is going to return it...) Some have had functional problems - it is unclear if these functional issues were related to the bending, were related to some other design issue, were related to misuse, or something else.

The US version is backordered too. Hopefully Apple is addressing this - whether that means recalling a batch of lots with bad heat treatments, or redesigning the keyboard if this is in fact a design flaw that affects all models.

This is discouraging, especially after the problems with the MacBook and MacBook Pro keyboards. I wonder whether this will be addressed in the dark version for the forthcoming iMac Pro.

Update (2017-12-07): Aaron Vegh:

Heh, thought it was just me. Replaced my first keyboard, and the new one is the same. Functionally fine, but aesthetically annoying.

Here’s a brief video showing the extent of it.

Update (2018-02-27): Mark Philpot:

By way of keyboard follow up: To be clear, the keyboard was originally flat. 100% of similar models in my company show equivalent stress “curves.” You can “bend” them back a bit so it’s less pronounced, but my conclusion is “thin has it’s costs…”

Update (2018-05-15): Josh Ginter:

My peak experience with the Magic Keyboard was on day one. Ever since, day by day, that experience has diminished. Slowly. But surely.

[…]

For one, my Magic Keyboard has suffered from that warping everyone talked about a few months ago. Does it inhibit the ability to type? No, not directly. But it drives me nuts every time I look at it.

Amazon Prime Video Finally Available for Apple TV

Chance Miller:

As announced in the Amazon Prime Video iOS app release notes, the Apple TV Amazon Prime Video app is now rolling out. The release notes say users have to download a separate tvOS app, which apparently will work on the third-generation Apple TV as well.

The Apple TV 3 doesn’t run tvOS or have downloadable apps, however the Amazon icon automatically showed up on my Apple TV 3. It seems that Amazon wrote a separate app using the legacy Apple TV SDK—much appreciated—and Apple auto-installed it for everyone. This is despite the Apple TV itself not getting any software updates in years.

John Gruber:

I’ve heard there is indeed a good story behind this delay.

Steve Troughton-Smith:

TL;DR it’s no wonder Amazon took so long in porting their app to tvOS; it’s a giant, [presumably] in-house web-based multi-headed hydra designed for a hundred different devices and consoles that probably needed a new UI glue layer for tvOS (but probably doesn’t use webviews)

Andrew Abernathy:

Like Netflix before it, Amazon Prime Video has a “Settings” section in the app that doesn’t actually have any settings. Have to go to web site to turn off auto-playing the next episode. I don’t understand this. So hostile.

One huge advantage of Amazon Prime Video over Netflix on Apple TV is that you can actually rest on a video for a moment without a trailer starting up and blaring at you.

See also: Ryan Christoffel, Dave Mark, Juli Clover.

Previously: Amazon Prime Video Coming to Apple TV, Movies Anywhere.

Microsoft Launches Windows 10 on ARM

Brett Howse:

The first PCs will be the ASUS NovaGo, which is a convertible laptop, and the HP ENVY x2 convertible tablet.

This is exciting news on a couple of fronts. The Qualcomm Snapdragon 835, which was the processor first announced for Windows 10 on ARM, offers reasonable performance, but with lower power consumption than what we’ve been used to in the PC space, and especially in low-power states. Without having the devices in-hand, we still don’t know how the SD835 compares in performance to the competition. We should finally be able to answer that soon though.

[…]

Battery life should also be a big win, and while we don’t have our own tests done yet, Microsoft’s information is claiming up to 30 days of standby and up to 22 hours of active use, while the detachable tablet-style HP ENVY x2 is claiming up to 20 hours of active use.

Peter Bright:

Branded as Always Connected PCs, the new Windows on ARM systems are positioned as bringing together the best of PCs and smartphones. They have PC form factors, with the productivity enabled by a real keyboard, touchpad, and general purpose operating system capable of running regular Windows software, but they bring with them the seamless switching between LTE and Wi-Fi, instant on, multiple working day battery life, and slimline, lightweight packaging that we’re accustomed to on our phones.

[…]

The emulator runs in a just-in-time basis, converting blocks of x86 code to equivalent blocks of ARM code. This conversion is cached both in memory (so each given part of a program only has to be translated once per run) and on disk (so subsequent uses of the program should be faster, as they can skip the translation). Moreover, system libraries—the various DLLs that applications load to make use of operating system features—are all native ARM code, including the libraries loaded by x86 programs. Calling them “Compiled Hybrid Portable Executables” (or “chippie” for short), these libraries are ARM native code, compiled in such a way as to let them respond to x86 function calls.

Learning With Privacy at Scale

Davey Alba (tweet):

BuzzFeed News interviews with a dozen AI experts paint a picture of Apple’s artificial intelligence research that shows the company is opening up a bit more — but there is still a disconnect between the academic AI community’s values and Apple’s way of doing business. The company’s obsessive focus on the AI applications in Apple products can make working for the company less desirable to some talented experts who have no shortage of options, researchers said. And that’s bad news for Apple, which faces an uphill battle in attracting the people it needs to become a true frontrunner in AI among the giants of tech.

[…]

“That blog is completely useless,” an AI professor of an elite university, who asked to remain anonymous because they did not want their name attached to criticisms of an influential tech company, told BuzzFeed News a few weeks ago. “There are absolutely no details, for example, in Apple’s post about AI in handwriting recognition. It amounts to bragging and it is impossible to actually learn anything from it. It feels like they realized most big-name institutions have blogs and created one, but didn't do it in a way that adds any value. I would contrast it with Google’s post about neural networks for language understanding, which has many more details and points to public code along with walkthrough explanations.”

[…]

Doubling down on its commitment to privacy, Apple also keeps most user data on the phone itself and deletes it after a few months. But Eugenio Culurciello, a professor at Purdue University who works on machine learning hardware, said that while AI processing on a chip is better than it has been before, limitations on power and memory bandwidth still make a mobile device no match for cloud AI — which is what Google and Amazon use. […] Essentially, Skymind’s Nicholson added, Apple is accepting a commercial disadvantage based on its business model. “AI at Apple is hobbled by the way they handle information,” said Nicholson.

Apple’s Differential Privacy Team:

Given the popularity of emojis across our user base, we want to determine which specific emojis are most used by our customers and the relative distribution of these characters. To that end, we deploy our algorithms to understand the distribution of emojis used across keyboard locales.

[…]

Some websites are exceedingly resource-intensive, and we wish to identify these sites in order to ensure a better user experience. We consider two types of domains: those that cause high memory usage and those that cause excessive energy drain from CPU usage. In iOS 11 and macOS High Sierra, Safari can automatically detect these exceptional domains and report them using differential privacy.

[…]

We want to learn words that are not present in the lexicons included on the device in order to improve auto-correction. To discover new words, we deploy the Sequence Fragment Puzzle (SFP) algorithm described above.

Previously: Apple’s Machine Learning Journal/Blog, iOS 11 Autocorrect Bug, Why Little Bugs Need to Get Fixed.

Wednesday, December 6, 2017 [Tweets] [Favorites]

Google Again Removes YouTube From Echo Show

Dan Moren:

This is the second time Google has blocked access, though the story also suggests that Amazon’s implementations of YouTube on the Fire TV and Echo Show were workarounds, rather than Google’s own versions of the apps.

[…]

Long story short, everybody’s got their turf they’re trying to protect. And guess who gets caught in the middle? If you thought “consumers,” you win a prize! That prize is having three set-top boxes attached to your TV so you can watch all the content you want to.

Janko Roettgers (via Matt Birchler):

In an unusually frank statement, a Google spokesperson squarely blamed Amazon’s unwillingness to strike a business deal with Google for the step:

We’ve been trying to reach agreement with Amazon to give consumers access to each other’s products and services. But Amazon doesn’t carry Google products like Chromecast and Google Home, doesn’t make Prime Video available for Google Cast users, and last month stopped selling some of Nest’s latest products. Given this lack of reciprocity, we are no longer supporting YouTube on Echo Show and FireTV. We hope we can reach an agreement to resolve these issues soon.

Amazon shot back Tuesday afternoon, sending Variety the following statement:

Echo Show and Fire TV now display a standard web view of YouTube.com and point customers directly to YouTube’s existing website. Google is setting a disappointing precedent by selectively blocking customer access to an open website. We hope to resolve this with Google as soon as possible.

Previously: YouTube Drops Echo Show, Amazon Adds Apple TV.

Android Oreo Review: An iOS User’s Review

Matt Birchler:

Android has grown up considerably over the last decade. It’s no longer a complete disaster of a user experience, and some elements have actually surpassed what Apple is doing with iOS. Notifications are much better than they are on iOS and Google Assistant is more accurate and more helpful than Siri. That said, there are a million little (and not so little) things that truly make Android a sub-par experience for me. Your mileage may vary, but the abysmal third party software available for the platform, poor inter-app communication, and countless stability issues make Android a place I only want to visit for a month or two per year, not something I can see myself using full time.

Matt Birchler:

As a general rule, there tends to be an app that does everything on Android, but typically only one good one. Podcasts are a good example of this. I use Pocket Casts for my podcast needs, as does just about every other serious podcast listener on Android because there simply aren’t any good alternatives. On m iPhone, I’m constantly switching between Pocket Casts, Overcast, Castro, and even Apple’s Podcasts app as they each are special in their own ways. The same is true of some other categories as well, and it’s just frustrating to have to go with one app because that’s “the good one” and not have a library of alternatives nipping at the current leader’s heels.

And then there are some app categories where there simply aren’t any really good options. One answer I get to these are “just use the Google app” which is note great, and the other answer is that I don’t really need a fancy app to do XYZ, and I should be happy with the barebones options available to me. Neither of these answers are particularly appealing.

Matt Birchler:

In day to day use, Android on the Pixel 2 does not feel much slower than the iPhone 8. Apps launch quickly on the Pixel, sometimes even faster than they do on the iPhone. Part of this is due to the shorter animations on Android, but other times it is just that the Pixel is just as fast or faster than the iPhone. I don’t think I’ve ever been able to say this before, but apps actually tend to launch a tiny bit quicker on Android than they do on iOS.

Once you get into apps, the experience changes a bit. While iOS takes milliseconds longer on average to load apps, once you’re in apps everything seems to go in iOS’s favor. First is general performance things like scrolling, which holds steady at what appears to be 60fps much more often than Android. Scrolling through lists or websites is where this is more noticeable, as Android has a slightly harsher feeling to moving around pages. It’s not bad by any means, and may be a preference thing, but i just feel more like I’m directly manipulating content on iOS than I do on Android.

JR Raphael:

It seems like a funny thing to say, but when you look back at Android’s history, you realize how many once-transformative-sounding features ended up fizzling and being forgotten soon after their grand debuts. Some remain buried in the software while others quietly vanished after a period of inertia, but they all share the fact that they’re nowhere near the center-stage-worthy elements they once appeared to be.

So grab some popcorn and get ready for a nostalgia-filled journey — one bound to be filled with more than a few “oh, right, what ever happened to that?!” reactions.

Update (2017-12-07): Thom Holwerda:

A week with iPhone X, from a former Android user:

- holy shit this thing feels nice and expensive
- holy shit this thing is fast
- holy shit these gestures and animations and interactions are fluid
- holy shit this screen is goddamn good
- True Tone is bae

Flip side:

- inter-app communication like deep linking is still shit
- SpringBoard is literally less advanced and less useful than the PalmOS launcher
- apps are not nearly as pretty as Material apps on Android
- why can I still not set my own default apps

Update (2017-12-08): Matt Birchler:

One of the things you’ll notice every time you use AirPods on Android is that they don’t turn themselves on the same way as they do on iOS/macOS. When using AirPods with an iPhone, AirPods will turn “on” and iOS will start routing your audio to them when you put them in your ear. Android does not get the ear detection magic that iOS does. Instead, your AirPods will turn on and connect to your phone the moment you take both of them out of the case. Losing ear detection also means that your audio will not pause when you take an AirPod out of your ear, you will need to put them in the case for them to disconnect.

Update (2017-12-13): Matt Birchler:

Honestly, if I could run all of my iOS apps on the Android operating system I think I’d feel a lot better about Android. It’s a lack of consistent quality software on the platform that really drives me away. The vast difference in quality software from non-Google companies is just depressing for someone coming from the iOS world. Websites like MacStories exist almost completely to talk about third party apps on iOS, and there is enough new and exciting software coming out on a regular basis that they can make a business of it. You simply don’t have that on the Android side, as Android-centric sites instead focus mostly on hardware, sales, and what updates Google themselves are making. In the past 2 months with the Pixel 2, the only “exciting” app releases have been AR Stickers for the Pixel 2 camera app and a new file management app made by Google.

Update (2018-01-22): See also: The iPhone is Dead.

Update (2018-02-20): Scott:

I feel like switching from iOS to Android right now is equally impactful to when I switched from Windows to Mac in 2004.

I remember the sense of amazement at how much better OS X was despite a lifetime of Windows use. I feel that again using Android. It’s just so far ahead.

Jony Ive Responds to Criticism

Rick Tetzeli (via MacRumors):

The first product Ive shepherded to market after Jobs’ death, the Apple Watch, should have been the ultimate “intimate device”: What could be less obtrusive than a tiny computer you wear on your wrist? In fact, though the first Apple Watch had defenders (“smartwatches finally make sense,” the Wall Street Journal wrote), many critics slammed it (“you probably shouldn’t buy one,” warned the tech website Gizmodo). I stopped wearing mine after two weeks. The interface was cluttered, and unlike my iPhone, I had to stop walking to use it on the street.

Two years later, reviews of Series 3, as the new watches introduced this fall are called, are glowing (“the next iPhone,” Wired proclaimed). How did that happen? Ive, and Apple, adapted. They realized they had been underplaying the watch’s role as a fitness tracker and brought on Nike as a partner. “We don’t get it right all the time,” Ive says of the long process of perfecting any Apple product. “As designers, you’re having to constantly learn.” By September, the Apple Watch had reportedly become the best-selling timepiece in the world.

Kif Leswing:

Jony Ive, Apple’s chief design officer, just doesn’t understand the criticism of the company’s new corporate headquarters.

More than that, he doesn’t think any of it is valid.

[…]

“We didn’t make Apple Park for other people,” Ive said. “So I think a lot of the criticisms … are utterly bizarre, because it wasn’t made for you. And I know how we work, and you don’t.”

Kif Leswing:

If there’s a silver lining for Mac users, it’s that Jony Ive, Apple’s chief design officer and one of the most powerful people at the company, says he’s listening to user complaints.

“Absolutely, all of your feelings and feedback around the MacBook you use, we couldn’t want to listen to more,” Ive said earlier this week in Washington DC. “And we hear — boy, do we hear.”

Previously: Apple Park’s Open Work Spaces, New MacBook Pros and the State of the Mac.

The Pollyannish Assumption

Ben Thompson:

Apple is the easy one, and I started with them on purpose: using a term like “return on investment” gets a whole lot more problematic when dealing with abuse and human exploitation. That doesn’t mean it isn’t a real calculation made by relevant executives though: in the case of Apple, I think most people would agree that whatever investment in forum moderation would be effective enough to catch this post before it was surfaced on Twitter a couple of weeks later would be far better spent buttressing the internal quality control teams that missed the bug in the first place.

I’m not sure I agree with that. Apple’s developer forums (contra the general support forums) do not actually have overwhelming volume. Is it really not worth paying someone to read them? I don’t mean to try to reproduce every issue that people mention, but rather to look for outliers (in either frequency or severity) like the root access one. I got to thinking about this while listening to Brian Covey talk about how The Omni Group does support. Not everyone is going to file Radars about every problem they encounter, but there is a lot of valuable information already out there if Apple is willing to sift through it. If no one is doing this already, I would think that adding one person who can leverage the experiences of thousands would make more of a difference than that marginal increase in resources for the existing QA team. Along the same lines, why isn’t there someone whose job it is to go through the top Stack Overflow questions and advocate for fixing the bugs and the documentation that is missing or unclear?

A major factor driving this growth is YouTube’s machine-learning algorithm for watching more videos[…] This should expose the obvious flaw in YouTube’s current reporting-based policing strategy: the nature of search and recommendation algorithms is such that most YouTube viewers, who would be rightly concerned and outraged about videos of child exploitation, never even see the videos that need to be reported. In other words, YouTube’s design makes its attempt to leverage the Internet broadly as moderator doomed to fail.

[…]

This is why it is critical that YouTube lose its pollyannish assumptions: were the company’s moderation approach to start with the assumption of bad actors, then child exploitation would be perhaps the most obvious place to look for problematic videos. Moreover, we know it works: that is exactly what Uziel and BuzzFeed did. If you know what you are looking for, you will, thanks to Google/YouTube’s search capabilities and recommendation algorithms, find it.

Tony Zhou:

But as always, there’s a difference between what the law says and how the law is implemented. You could make a video that meets the criteria for fair use, but YouTube could still take it down because of their internal system (Copyright ID) which analyzes and detects copyrighted material.

So I learned to edit my way around that system.

Nearly every stylistic decision you see about the channel — the length of the clips, the number of examples, which studios’ films we chose, the way narration and clip audio weave together, the reordering and flipping of shots, the remixing of 5.1 audio, the rhythm and pacing of the overall video — all of that was reverse-engineered from YouTube’s Copyright ID.

Via Nick Heer:

If YouTube’s automatic flagging system didn’t exist, it’s likely that “Every Frame a Painting” would feel completely different. Whether it would have been better, I’m not sure, but I think the limitations of YouTube helped birth something truly unique and very, very good.

Month 13 Is Out of Bounds

Rob Griffiths (tweet):

But if you’re unlucky enough to be a Mac user in the month of December, 2017, then you’ll probably be seeing a lot of “Month 13 is out of bounds” messages in your Console. And by ‘a lot,’ I mean an exceedingly excessive never-ending stream of spewage…

Thousands and thousands and thousands of them—I’m getting anywhere from two to 20 per second, continuously.

Benjamin Mayo:

The plot thickens. Similar logs are generated by my iOS 11.2 iPhone, which is up-to-date. It seems like Apple patched over the Springboard crashing but the underlying calendar logic is still broken somewhere.

Tim:

I’m getting this and it is causing UserEventAgent to consume all my cpu and RAM. Only solution is to set the date back until November.

William Osman:

My MacBook Pro was rinsed by UserEventAgent. Took full use of CPU and memory. I had to force quit it within Activity Monitor every ten minutes to keep laptop running.

Alexandre Colucci:

’Month 13 is out of bounds’: The official CoreFoundation ‘__CFYMDFromAbsolute’ source code is available online. You can see the new ‘ASSERT_VALID_MONTH’ define causing all the ‘Month 13 is out of bounds’ logs.

See also: Apple Developer Forums.

Previously: Rushed iOS 11.2 Update to Fix Date Crasher.

Update (2017-12-06): Stuart Breckenridge:

It’s appearing at least 20 times per second and other than disabling Bluetooth, I haven’t found a way to stop it.

Update (2017-12-08): Gus Mueller:

Wait, 10.13.2 didn’t fix the Month 13 is out of bounds problem?

Update (2018-01-01): James Thomson:

I hate to tell you… it’s January here and Month 13 is still out of bounds.

Update (2018-02-06): Zeeshaan Aamir:

After updating 10.13.3 still i am getting the same problem

Tuesday, December 5, 2017 [Tweets] [Favorites]

Safari Tab Search

Gabe Weatherhead:

Hit Shift-⌘-\ to enter the Safari “Show all tabs” mode. From there it’s just a simple ⌘-F to search the open tabs.

This is great. I was aware of the Show All Tabs mode but had no idea that it was searchable. Why on earth is the search field hidden until you invoke the Find command?

(I still think it’s too bad you can’t see a list view or rearrange your tabs.)

Update (2017-12-05): Bartek notes that you can just start typing your query without even pressing Command-F.

John Gruber:

It seems crazy to me that you can use this to find tabs open on other devices, but not tabs open in other windows on the Mac you’re currently using.

iPhone Charging Speeds Compared

Juli Clover:

The absolute fastest way to charge an iPhone 8, iPhone X, or iPhone 8 Plus is with a USB-C power adapter and an accompanying USB-C to Lightning cable. Charging with USB-C activates a “fast-charge” feature that’s designed to charge the iPhone to around 50% in 30 minutes, and I saw about that level of charge in all of my USB-C tests.

5W wireless charging and 5W wired charging with the standard iPhone adapter were the slowest methods that I tested. 7.5W wireless testing was faster than 5W wireless charging, but not by much.

Charging at 12W with the iPad adapter wasn’t ultimately too far off of the fast charging results at the end of an hour, making this one of the better compromises between cost and speed.

[…]

For a separate post on wireless charging options, we’ve been investigating third-party wireless chargers, and it’s looking like there may be a restriction put in place by Apple to limit 7.5W charging to approved manufacturers. […] Just because a wireless charger offers more than 5W, it’s not necessarily going to offer 7.5W charging speeds when used with an iPhone.

Previously: iPhone 8 Charging Speed.

MarsEdit 4.0

Daniel Jalkut (tweet):

Big news today: MarsEdit 4 is out of beta and available for download from the MarsEdit home page and the Mac App Store. This marks the end of a long development period spanning seven years, so it’s a great personal relief to me to finally release it. I hope you enjoy it.

[…]

After the trial expires, all features of the app continue to work except for actions that update published content on the web. […] Anybody who purchased MarsEdit 3 on June 1, 2017, or later, is entitled to a free update to MarsEdit 4. Anybody who purchased MarsEdit 3 earlier than June 1 is entitled to a discounted $24.95 upgrade. This applies to Mac App Store users as well! Because MarsEdit 4 embraces the Mac App Store’s in-app purchase model, the app can use a downloaded copy of MarsEdit 3 to validate a discounted or free upgrade to MarEdit 4, as appropriate.

MarsEdit is one of only a few third-party apps (along with BBEdit, LaunchBar, and OmniOutliner) that I’ve used nearly daily for the last 13 years or so. Here are the highlights of what’s new.

Previously: MarsEdit 4 Public Beta, Acorn 6 Public Beta, Omni’s IAP Trials and Upgrade Discounts, MarsEdit 1.0.

Update (2017-12-05): Brad Ellis:

Updated the MarsEdit icon for the latest release. Teal and orange, because I enjoy Michael Bay movies.

Brent Simmons:

My blog doesn’t have a browser-based interface at all. None. Every single post goes through MarsEdit.

Jeff Johnson:

There seems to be zero info in the Mac App Store about how much the app costs.

Also quite surprised that “purchase a full license” is allowed in the description.

Nick Lockwood:

I’m constantly amazed at the tortuous purchase processes Apple is willing to put users and developers through instead of just providing the free trial mechanism that we’ve all wanted since day one.

See also: John Voorhees.

John Gruber:

The basic premise — a native Mac blog editor that follows the basic layout and structure of an email client, remains as sound today as it did 13 years ago. MarsEdit is both great in terms of its integration with various blogging platforms and its integration with MacOS as a native app.

Movable Type, Blogspot, and LiveJournal are all still around, but today they’re dwarfed in usage by WordPress and Tumblr. It’s a testimony to the strength of MarsEdit’s engine-neutral design that it remains relevant today, despite a nearly complete change in the publishing systems people use to blog.

Manton Reece:

We are so used to these silos and these apps that are not compatible with anything, that we just accept it. But that’s how it should work.

You should be able to use multiple apps to post to different services. And that’s what’s happening with apps that are built with some compatibility in mind, especially on IndieWeb standards. That’s what’s happening with MarsEdit and Micro.blog, although on a much smaller scale.

Update (2017-12-07): Jeff Johnson:

As I suspected, App Store doesn’t show the price until someone purchases. Which is absurd.

Note that this is criticism of MAS and not of MarsEdit.

Update (2017-12-18): See also: Vector.

Key Difference Between Dictionary and NSDictionary

Jeff Johnson:

The recent article Strings in Swift 4 by Ole Begemann talked about how Swift String equality is implemented as Unicode canonical equivalence. As a result, two String instances can be equal even if they contain different Unicode code units. […] Two NSString instances are equal if they have the same sequence of UTF-16 code units.

[…]

This difference in behavior between Swift and Objective-C is troubling. Suppose that you had some old Objective-C code that saved user defaults in dictionary format with string keys, and then you wrote new Swift code to access the user defaults, naively using dictionary(forKey:), because of course that’s what you’d think to use.

What happens is that you get a weird bridged Swift Dictionary. This is supposed to be an O(1) wrapper around the NSDictionary. Indeed, its count is the same. But when you look up the keys it uses the Swift rules for string quality. So a lookup that would find no matches in Objective-C may find one with Swift. Removing an entry removes multiple entries with equivalent keys. When you get the description it coalesces the entries with equivalent string keys, so that the description doesn’t match the count. And if you try to cast it as NSDictionary, which should always succeed and just give you the underlying wrapped dictionary, it crashes.

Update (2017-12-11): Joe Groff:

It’s a known problem. Eventually we want to do away with the “lazy bridging”, which would allow the crash to at least happen deterministically on bridging and avoid the inconsistent view of the Dictionary.

It’s supposed to crash if it detects a key collision introduced by the difference in equality model (theory being that keys differing only by normalization form are almost always by mistake).

Another possibility is to opt out APIs from bridging when they deal with NSStrings that may significantly differ in normalization.

We already know we need an opt-out mechanism for things like Core Data NSArray/NSDictionary objects where their class-iness is part of the magic.

Airspeed Velocity:

Bit of clarification: the crash is definitely a bug. The code to bridge into Swift from ObjC coalesces keys and shouldn’t trap, but it assumes the count from the NSDictionary, an invalid optimization.

O(1) bridging from Swift to ObjC only happens when the types in the ObjC container are verbatim-bridged. Which String/NSString aren’t.

Saturday, December 2, 2017 [Tweets] [Favorites]

Rushed iOS 11.2 Update to Fix Date Crasher

@jeremybank:

PSA from staff: if you have an iPhone, it will likely crash due to a date bug when date rolls over to 2 December, depending on time zone.

The temp fix is to manually set date/time to a date prior to 2 Dec. This will make some apps unusable due to date checks on server.

Juli Clover (tweet):

A date-related bug in iOS 11.1.2 appears to be causing iPhones and iPads to continually crash or respring when time-based local notifications are received after 12:15 a.m. on December 2, according to reports on Twitter and reddit.

Tom Warren:

Apple is taking the highly unusual step of releasing a significant iOS update today, just hours after an iOS 11 bug started crashing iPhones. A bug in iOS 11.1.2 started causing iPhones to crash if third-party apps use recurring notifications for things like reminders. Apple is releasing iOS 11.2 today, which addresses the issue and includes a number of new features. Apple usually releases iOS updates on a Tuesday, so this appears to have been issued early to fix the crash bug.

Yoshimasa Niwa:

And here is what Apple recommends to address this crash on iOS 11.1.

Simply it said, disable notification one by one and then update to iOS 11.2.

Evgeny Cherpak:

I just want to point out that this issue being fixed in iOS 11.2 beta makes me think that someone in the company KNEW this problem exists, fixed it, but failed to make this fix available ASAP for production to prevent this.

Steve Troughton-Smith:

I was once told it would have to be a real damn emergency to release an iOS version on a weekend, so, here we are… iOS 11.2!

Mark J. Douglas:

I have to say 11 has been categorically the worst release ever, it rendered my iPhone 7 almost unusable for a month. You do have to wonder what the hell is going on, is it just too big to QC effectively now?

Ryan Jones:

Just woke up. Thought I was still asleep/dreaming when I read about this iOS 11 date bug. WTF.

This better be a WAKE UP CALL for Apple software and Craig Federighi.

Security holes, infinite loop crashes, and keyboards that can’t type I or it.

Maynard Handley:

I see Apple’s problems as

- technical debt. The company has chosen to prioritize new features every year over the “boring” fixing of long-standing problems.

- insistence on a fixed annual schedule; new iPhones (and new iOS) every September.

Bob Burrough:

I think it’s fair to say they are literally shipping beta software as GM. No software development organization beta tests for 14.5 hours.

Bradley Chambers:

Apple’s had a rough week with needing to rush out software updates, but they also got them patched extremely quickly. Bugs happen (they need to do better), but, as an IT admin, I am thankful for the quick response.

SwiftOnSecurity:

I’m genuinely concerned about Apple’s recent spate of performance on software testing and security. This is really concerning to me.

Again and again, Microsoft employees and observers tell me how much the company was shook by 2000s-era bugs, and remolded by Bill Gates’ Trustworthy Computing memo. I’m not saying it’s the same, but I really wonder if there are lessons for Apple now.

Tom Bridge:

There’s no question that Apple has been pushing the envelope for a while. They’ve done some things incredibly well (iOS Security), and some things…

…well, some things not so well. 10.13.0 was unusable in many businesses because of security concerns AND Active Directory concerns.

If Apple wants people to trust the Mac and iOS with their businesses, they need to get back to “It Just Works” because right now, it emphatically does not.

John Gruber:

I ran the iOS 11.2 betas on my iPad and Apple Pay Cash worked great. On my iPhone, after updating to 11.2 today, it doesn’t appear. WTF?

Apparently, the release notes were already written to include Apple Pay Cash, which hasn’t launched yet, and they weren’t revised in time for the unexpected early release.

Timi Cantisano:

If you have updated to iOS 11.2, you might have noticed that Face ID isn’t working on properly on the first reboot. By diving into the settings and trying to reset Face ID, you’ll be greeted with the message above in the image, stating that “Face ID is Not Available”. The issue seems to affect people randomly, with our iPhone X being affected and only a handful of reports across the internet on various sites and Twitter.

Steve Troughton-Smith:

Sounds like iOS 11.2 bricking Face ID is a real problem. If you can make it to midnight without the SpringBoard notification crash loop on 11.1.2, might be worth holding off on 11.2 for a few days… (this is why OTAs don’t go out on a weekend)

Previously: Why Little Bugs Need to Get Fixed, High Sierra Bug Allows Root Access With Blank Password.

Update (2017-12-02): See also: Hacker News.

Rene Ritchie:

Why do date/time bugs keep happening?

Seriously. You’d figure Apple would have torn any all time-based code apart by now and stamped all of this out. Once is a bug. Twice is a bad bug. More than that, it’s a problem beyond the code.

Tom Warren (Hacker News):

Let’s recap the week of Apple software problems:

  • macOS High Sierra critical flaw with root admin access
  • macOS High Sierra update released, but breaks file sharing
  • iOS 11 crashing on some iPhones due to a date bug
  • macOS High Sierra fix not installing correctly on some systems
  • iOS 11.2 released early to fix iPhone crash bug

Josh Centers:

Something is clearly rotten in the state of Denmark, by which I mean Apple’s quality assurance department. Many long-time TidBITS readers have been complaining for years about Apple’s declining software quality. Major missteps like these give Apple a black eye and, when they affect tens or even hundreds of millions of users, cause a significant waste of the world’s time.

Diane Ross:

Looks like I’m in good company when I say, Apple needs to concentrate on fixes not yearly updates.

Update (2017-12-05): nullpixel:

Face ID only got bricked by the fucked up date some people had. Most encryption uses the date in it, so it’s bound to fail when the time is so far out.

Friday, December 1, 2017 [Tweets] [Favorites]

The Power of RAW on iPhone

Sebastiaan de With:

RAW files store more information about detail in the highlights (the bright parts) and the shadows (the dark parts) of an image. Since you often want to ‘recover’ a slightly over or under-exposed photo, this is immensely useful. […] It also stores information that enables you to change white balance later on.

[…]

Now this is where most people get confused: apps that don’t support RAW will still load the image. However, they just load the low resolution preview instead of the full-resolution image. And they won’t warn you. Believe it or not, the built in iOS Photos app doesn’t support RAW[…]

[…]

RAW Caveat 2: RAW Skips Apple’s Magic

Apple’s stock camera app does a lot of cleanup behind the scenes. This is ‘magic’. Yes, magic. The imaging processor in every smartphone and camera does some magic. This is the kind of stuff that is a closely guarded secret. […] Sounds wonderful, but this isn’t always great. Sometimes the noise reduction is aggressive and destroys fine detail; other times the grain can be pleasant.

Update (2018-03-02): Sebastiaan de With:

Remember how I mentioned 90% of my edits are just to make the image look like what I perceived with my naked eye? Selective color adjustments are perfect to let you tweak individual colors so they look ‘right’. Don’t get too caught up in wild adjustments; try to make it faithful to the mood and look of what you shot.

[…]

With a split tone adjustment, you assign a tint to the highlights in your image and a tint to the shadows — preferably contrasting tints like yellow highlights and blue shadows. This gives the image a color contrast, which is visually interesting and pleasing. It changes the entire look!

[…]

If you’re editing in Adobe Lightroom, it’s automatic perspective correction tools are incredibly powerful[…]

iOS 11 Allows Device and PIN to Reset iTunes Backup and Apple ID Passwords

Oleg Afonin (via Hacker News):

In iOS 11 you can still specify a backup password in iTunes, and you still cannot change or reset it through iTunes if you don’t know the original password. However, this means very little as you can now easily remove that password from iOS settings.

[…]

For Apple accounts with two-factor authentication, one can simply reset their Apple ID password from the device by confirming their device passcode (as opposed to supplying their old Apple ID password).

[…]

With the release of iOS 11, Apple developers made too many assumptions, breaking the fragile security/convenience balance and shifting it heavily onto convenience side.

Once an intruder gains access to the user’s iPhone and knows (or recovers) the passcode, there is no single extra layer of protection left. Everything (and I mean, everything) is now completely exposed. Local backups, the keychain, iCloud lock, Apple account password, cloud backups and photos, passwords from the iCloud Keychain, call logs, location data, browsing history, browser tabs and even the user’s original Apple ID password are quickly exposed. The intruder gains control over the user’s other Apple devices registered on the same Apple account, having the ability to remotely erase or lock those devices. Finally, regaining control over hijacked account is made difficult as even the trusted phone number can be replaced.

[…]

Since the passcode is now the one and only safeguard left, make sure you use at least 6 digits. Four-digit PINs are no longer secure.

Previously: Find My Mac and Remote Wipe.

Update (2017-12-02): Rich Mogull:

There is no question that allowing the iOS device passcode to act as a secondary backup password reduces the security of encrypted iTunes backups on an individual level. As a professional paranoid I really wish Apple hadn’t made this change.

But there is also a legitimate case to be made that Apple improved the overall iOS experience for a much larger percentage of its customer base by making it less likely that average users could lose access to their encrypted iTunes backups entirely.

As an Apple customer who once had to factory-reset one of my children’s iPads because I had forgotten the backup password, hadn’t backed up to iCloud to save space, and couldn’t recover it from the Mac keychain where I… had failed to store it, I can certainly see Apple’s point of view.

I wonder what the explanation is for increasing the ease of resetting an Apple ID password, though.

Class Action Suit for Google’s Invisible Form Trick

Graham Ruddick:

A group led by the former executive director of consumer body Which?, Richard Lloyd, and advised by City law firm Mischon de Reya claims Google unlawfully collected personal information by bypassing the default privacy settings on the iPhone between June 2011 and February 2012.

[…]

“I want to spread the world about our claim. Google owes all of those affected fairness, trust and money. By joining together, we can show Google that they can’t get away with taking our data without our consent, and that no matter how large and powerful they are, nobody is above the law.”

A Google spokesperson said: “This is not new. We have defended similar cases before. We don’t believe it has any merit and we will contest it.”

Via Nick Heer:

The Safari workaround is something that an engineer had to actually build. Someone had to understand that Safari’s default cookie settings were incompatible with tracking, but instead of choosing not to track users, they thought it was their right to override those preferences. Egregious.

Previously: Google’s Cookie Trick.

“Mother of All Markets” or a “Pipe Dream Driven by Greed”?

Peter H. Lewis, in 1992 (via Anil Dash):

Sometime around the middle of this decade no one is sure exactly when -- executives on the go will begin carrying pocket-sized digital communicating devices. And although nobody is exactly sure what features these personal information gizmos will have, what they will cost, what they will look like or what they will be called, hundreds of computer industry officials and investors at the Mobile ’92 conference here last week agreed that the devices could become the foundation of the next great fortunes to be made in the personal computer business.

“We are writing Chapter 2 of the history of personal computers,” said Nobuo Mii, vice president and general manager of the International Business Machines Corporation’s entry systems division.

[…]

These devices are expected to combine the best features of personal computers, facsimile machines, computer networks, pagers, personal secretaries, appointment books, address books and even paperback books and pocket CD players -- all in a hand-held box operated by pen, or even voice commands.

[…]

“The problem with all this is that they all have to be put together,” [Andrew Seybold] said, “and as I look around here, there are some guys working on one part, and a few companies working on another part, and they all have to work together.”

Chris Espinosa:

For everybody who ever said that Sculley was out of touch, read this. He was right about it being the mother of all markets.