Archive for July 15, 2015

Wednesday, July 15, 2015

Apple Watch and Water

Craig Hockenberry (comments):

Make sure you rinse your equipment in fresh water after it has been exposed to salt water. As you’ve seen above, that includes a swimming pool.

[…]

The biggest problem with the Workout app is that it’s basically unusable while you’re in the water. As we’ve learnt, both the touch and force press controls stop working. There’s no way to pause the workout. You have to start the workout before getting in the water and stop after you’ve gotten a chance to dry off.

For an ocean swim, this screws up your timing: you don’t really start swimming until after you get beyond the surf break. If there’s heavy surf, this can take several minutes. Workout data is being collected while you’re standing and waiting for waves to clear.

[…]

The elephant in the room: the touchscreen doesn’t work reliably anywhere near water. The source can be the ocean, a swimming pool, or your own sweat. At the same time, the Workout app is heavily dependent on touch[…] I’m convinced Apple’s recommendation to not use the watch in water is because of the erratic behavior it causes.

Dr. Drang:

The 316L stainless steel alloy Apple uses in the Watch is, as Greg Koenig said in this iMore article, quite resistant to corrosion. Your Apple Watch is extremely unlikely to develop corrosion pits or stains. But stress corrosion cracking, despite the word corrosion in its name, is a distinctly different phenomenon. SCC can break an object apart even as its surface remains bright and shiny.

[…]

316L is known to be susceptible to SCC in a chloride environment, like salt water or salt spray, so two of the three requirements for stress corrosion cracking, material and environment, are met. What about stress?

[…]

It is, I think, on the stress side that Apple is preventing SCC. By keeping the residual stresses low—or by making sure the residual stresses at the surface are compressive rather than tensile—Apple is eliminating one of the three requirements for stress corrosion cracking, and that’s why Craig Hockenberry’s Apple Watch won’t split open, even if he goes swimming in the Pacific every day.

How iCloud Drive Deletes Your Files Without Warning

Mark Jaquith (via Hacker News):

And let’s say that, on your shiny new Mac, you want to move these files from iCloud Drive to your local hard drive, or to another synced drive like Google Drive or Dropbox. Well, you can just drag their folders do the other destination, right? You sure can. Apple kindly warns you that your dragging action is moving that folder, and that the files will be moved to your Mac, and won’t exist on iCloud Drive anymore. Fine. That’s what dragging a file from one place to another generally does!

But what happens if there are files inside this folder that haven’t yet synced to your local machine? Well, the move operation will be slower, because your Mac has to first download them from iCloud Drive. But once they download, they’ll be in their new location. Right?

Nope. Those files are now gone. Forever.

In their place, is a file named FILENAME.original-extension.icloud. This file, only a couple kilobytes in size, is the placeholder that OS X uses to pretend that the file existed on your system. Your original file is gone. It’s gone from iCloud Drive, and it exists nowhere on your hard drive.

Cloud syncing is not a backup, and iCloud (still) doesn’t have good failure modes.

iCloud Drive FAQ (via eclipxe):

If you need to access a file that you recently deleted, you might be able to recover it from iCloud.com. Sign in to iCloud.com, click Settings > Data & Security, then browse the list of files in the Recover Documents tab. Files will be removed from Recover Documents in 30 days.

This is non-obvious and seems to not preserve the folder hierarchy, which could be a serious problem, but it’s better than nothing. In my case, it showed a bunch of unsaved documents that I had discarded.

nickbauman:

Apple doesn’t have the right organizational structure to support cloud services across apps to a level of consistency and quality that Google and Amazon does. Nathan Taylor explains this quite well.

jsmthrowaway:

Speaking as a former resident deep in Cue’s org, I believe this is common knowledge internally, but there isn’t alignment on how to address it. Even at the IC level, most people I spoke with are aware of Apple’s shortcomings in services. Services are not the favored child at Apple. iOS and hardware are, because of revenue. Services ICs know that, and it hits morale directly; I saw (and felt) this. There are attempts to fix it, too, but those manifest as reorganizations. I was subjected to four in a year and a half.

You hear pains from teams like Maps, who were moved from iOS to services during my tenure, and who immediately ran into serious organizational problems, dried up budgets, and so on. The gettin’ is good in iOSville, and once you leave iOS, it’s a whole ’nother Apple. There’s a common story about the origin of Maps at Apple where Maps was basically given a blank check, and they’re still mopping up some of that excess to this day. That doesn’t happen in services.

Meanwhile, organizationally, Siri is kind of outside the typical services structure for various legacy reasons and they’re off iterating like all getout and having a blast without the encumberance of the services organization. Every time I met with Siri I always came away with questions like, in this organizational climate, how on earth are they getting so much done?

Apple needs a serious Microsoftism on services. If you would have told me five years ago that Microsoft under Nadella would completely reverse course and embrace the living hell out of services while Apple meandered in the “let’s buy companies to implement our services strategy” grasslands, I’d have said the opposite is more likely, yet here we are.

Update (2015-07-16): Dan Moren:

[…] back in the iDisk era I encountered a similar data loss loophole.

Adobe Replaces “Rank and Yank” With “Check In”

Anne Fisher (via Hacker News):

Especially troublesome was that the company’s “rank and yank” system, which forced managers to identify and fire their least productive team members, caused so much infighting and resentment that, each year, it was making some of the software maker’s best people flee to competitors.

So, based in part on ideas crowdsourced from employees, Morris and her team scrapped annual evaluations and replaced them with a system called Check In. At the start of each fiscal year, employees and managers set specific goals. Then, at least every eight weeks but usually much more often, people “check in” with their bosses for a real-time discussion of how things are going.

[…]

Morris says that transparency has paid unexpected dividends. For one thing, fewer valued staffers are leaving, despite the ferociously competitive Silicon Valley market for tech talent.

Perfect App Store Screenshots

Felix Krause (via John Saddington):

All MindNode screenshots shown above are created completely automatically using 2 steps:

Using snapshot you can take localised screenshots on all device types completely automatic. All you have to do is provide a JavaScript UI Automation file to tell snapshot how to navigate in your app and where to take the screenshots. More information can be found on the project page. This project will soon be updated to use UI Tests instead of UI Automation to write screenshot code in Swift or Objective C instead.

This step will create the raw screenshots for all devices in all languages. At this point you could already upload the screenshots to iTunes Connect, but this wouldn’t be so much fun.

[…]

frameit was originally designed to just add device frames around the screenshots. With frameit 2.0 you can now add device frames, a custom background and a title to your screenshots.

MAIKit: Framework for Sharing Code Between iOS and OS X

Michael Donald Buckley:

Third-party frameworks like Chameleon exist, but because UIKit lacks APIs for some features of OS X, apps built with UIKit feel limited on OS X. However, since UIKit and Appkit are very similar, many developers alias UIKit and Appkit classes and use methods common to both frameworks.

For the past few months, I've been experimenting with automating this technique by parsing the UIKit and AppKit headers to extract the interfaces common to both, and the result is MAIKit. I thought that even if this wasn't an ideal way to develop cross-platform code, if this is something a lot of developers are doing, we could all benefit by automating the process.

“MAI” stands for “Mac and iOS.”

Font Parsing Vulnerabilities

John Villamil:

During my research into various OS X frameworks I chose to focus on OS X font parsing and spent a week fuzzing and reversing native libraries. This research resulted in six CVEs, five of which are shared between OS X and iOS.

Client side font parsing is often a good target because the file formats are varied and complicated. For example, TrueType comes with its own turing complete instruction set which you can learn more about here. OTF and the less popular PostScript file formats are complex and also supported.

Many of these flaws are the result of using untrusted length values extracted directly from the file without validation. In one example CoreText, a low level font layout framework, the ArabicLookups::AddLookup function (shown below) reads a length value from the memory mapped font file, using it to increment a pointer out of bounds. The pointer is held in the rdi register which is later dereferenced in the ResolveLookup function.

iPod touch 6th Generation

Jim Dalrymple:

Apple also made some significant changes to the cameras in the iPod touch. In addition to an 8 Megapixel camera, Apple updated the image sensor processor and added burst and slo-mo modes to the iPod touch.

Not to be outdone by the iPhone when capturing movies, the iPod touch also gains cinematic video stabilization. This is especially handy if you’re capturing a movie while moving—the technology stabilizes the movie automatically.

If, for some reason, you don’t want an iPhone, this seems like a great deal for a fast iOS device with a solid camera.

Jason Snell:

The new iPod touch has the same weight and dimensions as the previous model, and continues to sport a 4-inch Retina screen. (Yes, this means that for the moment, the new iPod touch is the most advanced device Apple makes with a four-inch screen, since the iPhone 5S still uses the older A7 processor. This move also makes me even more convinced that Apple will release an A8-powered 4-inch iPhone this fall, as a successor to the 5S.)

One can hope.

Update (2015-07-16): John Gruber:

Word from a few little birdies is that what remains of the iPod software team is now working on Apple Watch — the Nano UI wasn’t updated to look like iOS 7 because there’s no one left to do it.

Update (2015-07-20): Matt Birchler (via Marco Arment):

With this week’s update to the entire iPod lineup, many have been asking “Who are iPods even for these days?” Well, I worked the last 3 years managing an electronics department for Target, and have sold a lot of Apple devices over that time. Since Apple doesn’t break down demographics for who is buying each device, I thought I would share my experience.

Rene Ritchie:

The iPod touch 6 is clearly better than the iPod touch 5, about the same as the iPad Air 2, and just behind the iPhone 6.

Update (2015-07-22): Kirk McElhearn:

So why buy an iPod touch, when I have an iPhone and an iPad? My use case is different from that of most people: I need a device I can use for testing, on which I can install beta software. The 5th generation iPod touch lagged a lot with the iOS 9 betas, and the new model is really fast; faster than my iPhone 5s. But beyond that, I plan to use the iPod touch as an Apple Music device. With all the problems caused by the iCloud Music Library, I won’t trust my iPhone, or my main iTunes library, to use this service. Having an iPod touch makes it easy to use Apple Music at home, in conjunction with a library on my MacBook Pro.