Archive for December 11, 2017

Monday, December 11, 2017

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


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.