Wednesday, September 17, 2014

iPhone 6 Review

Jason Snell:

I’ve been using the iPhone 6 and iPhone 6 Plus for the last week, since Apple’s big event on Sept. 9. You can read my full review on Macworld—it’s my final byline there. You can also listen to episode 1 of my new podcast, Upgrade, in which I discuss the new iPhones and my review with my co-host, Myke Hurley.


I suspect that Apple’s intent here is for Reachability to always go away once you’ve tapped on something. But I could make an argument that the alternate approach — let interactions keep happening until your finger is off the glass for a second — is the better one. Sometimes I do need to make two taps at the top of the screen, and with Apple’s approach I have to reactivate Reachability to make the second tap. And of course, tapping on the black void is always there to dismiss Reachability immediately if I really can’t wait a second.


If an app isn’t written specifically to take advantage of the iPhone 6 or iPhone 6 Plus, the phone will scale the entire user interface up to fill the screen. (There’s no letterbox, because the iPhone 5 and 6 series all use the same 16:9 aspect ratio.)


Apple has added a feature to the iPhone 6 and iPhone 6 Plus called Display Zoom, which lets you choose between using that extra screen space for more stuff, or for bigger stuff. If you turn on Display Zoom on the iPhone 6, the device will scale up the resolution of an iPhone 5 screen. If you turn it on on the iPhone 6 Plus, it’ll scale up the resolution of the iPhone 6.

John Gruber:

One week in and I’m still unsure about the size of the iPhone 6 relative to that of my iPhone 5S, but I’m very sure about the size of the 5.5-inch iPhone 6 Plus: it’s too big for my taste.


Again, they’re more like two different device classes than two variations of the same device. My understanding, talking to people at the event last week, is that Apple’s industrial design team mocked up prototypes of every single size between 4.0 and 6.0 inches, in tenths-of-an-inch increments, and from those 20 sizes selected the two that best hit the sweet spots for “regular iPhone” and “ginormous iPhone”. We might never see new iPhone sizes again — or at least not bigger ones.


No doubt about it, one-handed usability suffers greatly on the iPhone 6 compared to the iPhone 5 series — and the 4.0-inch iPhone 5 displays are themselves less one-hand-able than the classic 3.5-inch iPhone displays. But there are advantages to the larger display of the iPhone 6. I find myself typing much faster and more accurately.


Reachability might make it possible to do everything you want while holding the 6 Plus one-handed, but it’s nothing at all like using a 3.5- or 4.0-inch iPhone in one hand.


Pocketability is going to vary based on your pants and pockets. (I’ve been wearing Levi’s jeans every day I’ve been using both phones.) With the regular iPhone 6, I haven’t had any problems. The fact that it’s so much thinner than the iPhone 5/5S, and now has curved sides, makes it easy to slide into a pocket. The overall volume of the device just doesn’t feel that much bigger in hand or pocket.


Text and fine lines appear sharper on the 6 Plus than on the regular 6 (or any other iPhone with a 326 PPI display, like the 5’s). 401 pixels per inch is high enough that things still look great even if they’re not pixel-perfect. I was deeply skeptical of this on-the-fly downsampling when I heard about it, but having used it for a week, I’m sold.

(When you take a screenshot on the iPhone 6 Plus, you get a 2208 × 1242 image — you get a screenshot of what the app thinks it is displaying, not a screenshot of the actual pixels on screen. If you really do care about pixel-level precision, I’m not sure how you can tell what is being rendered on screen other than to examine the actual iPhone display using an optical loupe.)


The iPhone 6 has a noticeably stronger vibrator to me, and with the iPhone 6 Plus, it’s so powerful it’s actually a bit noisy — the sound made by the 6 Plus vibrator is so strong, I wonder if there are going to be complaints that it’s not “silent” at all.

Bare Feats:

As you can see, the iPhone 6 is 11% to 17% faster than the iPhone 5S. The iPhone Plus is 23% to 24% faster than the iPhone 5S. The iPhone 6 Plus is 6% to 11% faster than the iPhone 6.

Hiding the iPhone 6 Camera Bump

Ben Brooks:

I looked through Apple’s site on the iPhone 6 and interestingly the bump isn’t hidden most of the time, but it is always hidden in profile. When you look at the iPhone in profile the honest way to show the phone is with the bump, but take a look (from Apple’s site)[…]

Via John Gruber:

I think this is a mistake on Apple’s part. If the iPhone 6 is going to have a camera bulge (and it does), they should wear it with pride.

iOS 8 Review

Nick Heer:

It is for this reason that I will be writing a review of iOS 8 in two parts. The first part, which is what you’re reading now, is a review of the first-party aspects of iOS. It is truly a review of iOS 8, not apps built for iOS 8. The second part, which will be released in weeks-to-months, is a review of what is possible when third-party developers get ahold of the thousands of new APIs available to them.

This is what I have gleaned from using iOS 8 every day since June 2 on my primary (and only) iPhone 5S and my Retina iPad Mini.


That’s not to say that there aren’t problems with it. I’ve pointed out a number already, and I’m sure we’ll hear more reports as users update. It’s not without its flaws and its bugs. But I think iOS 8 is the biggest iOS release for users and the most exciting opportunity for developers since iOS 2.0. It’s really that big of a deal.

Andrew Cunningham:

Apple still holds the keys to many aspects of the iPhone and iPad user experience, but compared to past versions of the software iOS 8 represents an opening of floodgates. Don’t like Apple’s software keyboard? Replace it. Want sports scores and updates on your eBay auctions in your Notification Center? Here’s a widget, throw ‘em in there. Want to use a social network or a cloud storage service that Apple hasn’t explicitly blessed and baked into the OS? Cool. Here are some APIs for that.


Still no public transit directions in Maps.


Not all of the features advertised at WWDC were actually done in time for release.

Andrew Cunningham:

The iPhone 4S was Apple’s last to use the original 3.5-inch iPhone screen size, which is now the smallest of four different phone screens that Apple supports. iOS 8's new stuff is all about fitting more information on those larger screens, whether we’re talking about predictive typing, new Mail sorting options, Notification Center widgets, or Spotlight suggestions. The 4S’ screen has always been small, but iOS 8 can make it feel cramped.


The iPhone 4S made the jump to iOS 7 relatively gracefully, though, and it’s fine with rendering all of the fancy transparency and translucency effects. We were expecting speed to stay roughly the same in the jump from iOS 7 to iOS 8, more or less as it did when we moved from iOS 5 to iOS 6 on the 3GS. Testing some application launch times under both operating systems reset those expectations. […] Again, we’re not looking at an iPhone 4-level situation here, but iOS 8 can add as much as 50 percent more time to the same task compared to iOS 7.

Casey Johnston:

Generally [on an iPad 2], iOS 8 is noticeably slower and choppier than iOS 7, in everything from opening apps to typing. Back when we switched from iOS 6, we complained about how we could get 10 characters into typing something before the keyboard realized what was happening. This problem has returned with a force in iOS 8, especially on first opening an app. Screen rotation is stuttery, and any time some part of the OS needs to slide into place (text centering, apps minimizing), it can't do it smoothly.

Rene Ritchie:

iOS 8 feels like Apple took every wish list item on the web and checked them off one-by-one. Interactive notifications? Done. Widgets? Done. Inter-app communication, custom keyboards, document picker? Done. Done. Done. […] In this case, believe the hype. iOS 8 is in every way the biggest functional release for iPhone and iPad since the App Store.

iCloud Adds Support for App-Specific Passwords


If you use iCloud with any third party apps, such as Microsoft Outlook, Mozilla Thunderbird, or BusyCal, you can generate app-specific passwords that allow you to sign in securely, even if the app you’re using doesn’t support two-step verification. Using an app-specific password also ensures that your primary Apple ID password isn’t collected or stored by any third party apps you might use. Starting on October 1, 2014, app-specific passwords will be required to sign in to iCloud using any third party apps.

They’ve also added two-factor authentication for the Web apps and iCloud backup.

Tuesday, September 16, 2014

Full-Text Search on iOS with FMDB

Andrew Goodale (via Gus Mueller):

When I started working on an iPhone app to play music from the phone’s library based on GPS location, I needed a way to index the song metadata and other textual content. SQLite is built into iOS, and I wanted to use its full-text module support (FTS3/4). Apple provides no full-text search index functionality for iOS, and other options, such as Lucene, are focused on Java-based environments.

Since I was working with SQLite, I knew the best approach was to work with the excellent FMDB library, which provides an Objective-C wrapper to the SQLite C API. My effort extends that library with additional Objective-C interfaces and protocols to simplify working with the FTS3 module.

Assigning Relationships Between Tasks and People in OmniFocus

Tyler Hall:

For years I’ve used on-hold “waiting” contexts named after coworkers and family members to denote tasks that I’ve assigned to other people and am waiting on them to finish. But a few weeks ago I had a realization that there are two other types of relationships between tasks and people that I haven’t been tracking. And with a few quick modifications to how I title my tasks, it’s possible to track them in OmniFocus.

PCalc Construction Set

Dr. Drang:

With version 3.3 of PCalc, James Thomson has gone Espinosa one better: he’s not only built a customizable PCalc, he’s given all of us the power of Steve Jobs.


To edit a button, press and hold on it until the display shifts and handles appear at the corners of the button. You can use the handles to resize the button, and you can drag it around to any place you like.

To change what the button does, tap the Edit button along the bottom, and a screen will appear that’ll let you change the name and the behavior of the button. You can have it work like any of the regular commands, run a user function, perform a unit conversion, or insert a constant. You can have the button appear in the normal view, the 2nd view, or both.

This is going to be great. None of layouts were ever quite what I wanted. Now I can tweak them.

Status Magic and iPhone 6/6 Plus Screen Sizes

Dave Verwer:

There is no doubt in my mind that this is the best way to take your App Store screenshots and this is the main reason that we’re discontinuing Status Magic. It’s very sad, but I’m not going to fight against something that provides better results and is integrated into the operating systems.


I loved this app, it wasn’t useful every day but it really made a difference to App Store screenshots and every time I saw a 9:41 on an App Store screenshot I wondered if we had helped create it. Farewell, Status Magic!

iOS 8 and iCloud Drive

Nik Fletcher:

If you upgrade to iCloud Drive, you will only be able to sync with devices running iOS 8 or OS X Yosemite. As OS X Yosemite is still pre-release (and not yet available) upgrading to iCloud Drive will prevent you from syncing with Clear for Mac until both OS X Yosemite is released and you upgrade to OS X Yosemite.

Developers cannot work around the choice made when upgrading to iOS 8, so please make sure you pay close attention to the iCloud Drive screen shown after you update to iOS 8.

If you need to sync with devices that are not (currently) iCloud Drive-compatible, ensure you choose “Not Now”. this will keep iCloud’s “Documents and Data” sync feature enabled on your iOS 8 device so that you can sync with OS X Mavericks (and iOS 7 devices).

Update (2014-09-17): Caitlin McGarry:

You can go back and upgrade at any time, but unless you want a file-syncing nightmare on your hands, you’ll wait for Yosemite’s official release. You don't even have to take our word for it: Developers like Realmac Software and Bloom, which makes Day One have taken to their blogs to warn users about potential syncing problems and the lack of iCloud Drive support for pre-Yosemite versions of OS X.

Adam C. Engst:

Beyond the basic inability to access iCloud-stored documents on the Mac, this limitation also prevents you from working on iCloud-stored documents on both an iOS device and a Mac. So, if you’re a fan of switching back and forth between Pages on your iPad and on your iMac, you really want to postpone upgrading to iCloud Drive until Yosemite ships.

Monday, September 15, 2014

Minecraft to Join Microsoft


The Mojang team will join Microsoft Studios, which includes the studios behind global blockbuster franchises “Halo,” “Forza,” “Fable” and more. Microsoft’s investments in cloud and mobile technologies will enable “Minecraft” players to benefit from richer and faster worlds, more powerful development tools, and more opportunities to connect across the “Minecraft” community.

Under the terms of the agreement, Microsoft will acquire Mojang for $2.5 billion.


Minecraft has grown from a simple game to a project of monumental significance. Though we’re massively proud of what Minecraft has become, it was never Notch’s intention for it to get this big.

As you might already know, Notch is the creator of Minecraft and the majority shareholder at Mojang. He’s decided that he doesn’t want the responsibility of owning a company of such global significance. Over the past few years he’s made attempts to work on smaller projects, but the pressure of owning Minecraft became too much for him to handle. The only option was to sell Mojang. He’ll continue to do cool stuff though. Don’t worry about that.

There are only a handful of potential buyers with the resources to grow Minecraft on a scale that it deserves. We’ve worked closely with Microsoft since 2012, and have been impressed by their continued dedication to our game and its development. We’re confident that Minecraft will continue to grow in an awesome way.

Markus “Notch” Persson:

I don’t see myself as a real game developer. I make games because it’s fun, and because I love games and I love to program, but I don’t make games with the intention of them becoming huge hits, and I don’t try to change the world. Minecraft certainly became a huge hit, and people are telling me it’s changed games. I never meant for it to do either. It’s certainly flattering, and to gradually get thrust into some kind of public spotlight is interesting.

I have no idea what to make of this.

Navigation Bar Interactions in iOS 8

Natasha The Robot:

Have you noticed how nicely the mobile Safari navigation bar condenses on scroll, and how the tab bar disappears?

In iOS8, Apple has made this type of interaction (and more!) very easily available to us all – well, almost… While Apple demoed the condensing navigation bar at WWDC, they have since changed it to hiding the navigation instead, and the tab bar is not included (I’m guessing they’ll add separate tab bar hiding properties later on…).

Removing U2’s “Songs of Innocence”

Kirk McElhearn and others have shown how to hide the album in your account via the Recent Purchases screen. Apparently, a lot of people want to do this because Apple went to the trouble of creating a special URL to make this even easier:

I don’t have a problem with the U2 promo per-se, but I certainly don’t want unsolicited free albums showing up in my library on a regular basis.

Update (2014-09-15): Andrew Hampp (via Josh Centers):

With lead single “The Miracle (Of Joey Ramone)” set to be featured in a massive media campaign from Apple, valued at $100 million by multiple sources, U2 has already scored arguably the biggest launch in music history. And it’s one that’s already fraught with a little controversy, from angry retailers to Grammy and SoundScan guidelines. Oseary, 41, rang Billboard on Sept. 11 to address the many questions about the launch, and what’s next (another album?) from this landmark deal with Apple.

Nick Heer:

Sure, it’s “historical” for 500 million people to own a single album all at the same time. But there’s a huge difference between 500 million people buying an album and 500 million people being given an album. We buy albums we like or might potentially like, from artists that we already know or look interesting. I wasn’t planning on buying this record, yet I now own it. That’s weird, and not in a “pleasant surprise” kinda way.


Apple knows that music is both powerful and personal, they have highlighted that they think both customization and privacy are important and they have made a big fucking deal about their services to the user being in service of the user and not for some other ulterior motive. Apple could have asked “do you want this?”, but they didn’t, and the reason they didn’t was exactly because then they couldn’t help their friends chase a bogus world record.

Dan Wineman:

We’ve surrendered the physical trappings, but the connotations remain. And I think Apple didn’t see this because — no matter how deeply they insist music runs in their DNA — from the perspective of the iTunes Store, “library” means licensed content the user is currently authorized to stream or download. But due to various design decisions Apple’s made over the years, that’s not what it means to anyone else. I’d wager that to a majority of iTunes users, “library” means my personally curated collection of stuff that I enjoy and feel comfortable associating with my identity. Messing with that is, to be frank, nothing short of a violation.

Marco Arment:

Being angry about an album you were given for free does sound dumb, but due to the way iTunes purchase libraries work, that’s not the whole story. As far as most people can tell, purchases stick around forever. I didn’t even know you could hide purchases from your history until this, and I’m supposed to be an expert in Apple stuff.


The damage here isn’t that a bunch of people need to figure out how to delete a (really quite bad) album that they got for free and are now whining about. It’s that Apple did something inconsiderate, tone-deaf, and kinda creepy for the sake of a relatively unimportant marketing campaign, and they seemingly didn’t think it would be a problem.

Update (2014-09-16): Daniel Jalkut:

I tend to agree with Marco Arment’s take, both about it being a mistake to overlook the nuances of this situation, and that the nut of the problem, the part especially worthy of scrutiny by Apple’s fans, is the extent to which this move, and the threat of more moves like it, erodes our trust that the company has our best interests at heart.

Steven Frank:

It’s that my various document libraries, and especially my iTunes library, are sacred. You DO NOT touch them. If I entrust them to your cloud service, you double-triple especially DO NOT touch them.

This “free gift” could have just as easily been issued as a redemption code, and nobody would have minded. Instead it was pushed into everyone’s library apparently just so the band could brag about having the most widely-“owned” album of all time. It had that layer of marketing slime on it that most Apple promotions do not.

Dave Winer:

For a company that makes products that are supposedly about personal creativity, they seem to focus on elite creativity a bit too much. I suspect in their minds, the people who run Apple, and the people who run U2, our function is to admire them, and accept our own mediocrity.

Chuq von Rospach:

If you bought a Windows-based PC anytime in the last 15 years, it came with a lot of software put there “for your convenience”. It was generically known as crapware, and it was because PC vendors were paid to stuff it down your throat, even though you didn’t ask for it. This is a tactic generally reviled by people who had to try to clean all of that stuff out for their less tech savvy family members.

Apple was a company that even marketed itself as above that kind of activity, because they were.

Update (2014-09-17): John Gruber:

Did anyone among Apple’s leadership raise questions about this promotion? Regarding either the “we’ll just add it to everyone’s purchased music” thing that has so many people upset, or, the way the whole thing was a complete and utter distraction punctuating the otherwise nearly flawless iPhones/Pay/Watch event.


The “free cassette” image was just a digital fabrication, however, an altered version of a vintage Argos catalog as from 1986 (viewable on the Retroash web site).

Visualizing Garbage Collection Algorithms

Ken Fox (via Ole Begemann):

I’ve built a toy with five different garbage collection algorithms. Small animations were created from the run-time behavior. You can find larger animations and the code to create them at It surprised me how much a simple animation reveals about these important algorithms.

Tim Cook Interview

Charlie Rose interviews Tim Cook, who has some interesting things to say, particularly about Steve Jobs. At this point, I think it would be hard to argue that anyone else would have been a better successor as CEO. Unfortunately, he still doesn’t have a satisfying explanation for the maps situation.

Update (2014-09-17): Serenity Caldwell:

We’ve put together edited highlights from his first hour chatting with the ABC talk show host about Apple’s new products, the Apple TV, Steve Jobs, and the future of the company.

Charlie Rose’s site has part 2 of the interview, as does YouTube.

OmniGraffle Stenciltown

Ken Case:

Stenciltown makes it easy to find free OmniGraffle stencils which have been shared by the community. You can browse and search the collection through its web interface, and once you’ve found a stencil you’d like to use it’s as easy as ever to download and use.

You can also search Stenciltown from within OmniGraffle itself, both on Mac and iPad.

An Introduction to Cocoa Bindings

Amy Worrall:

Most tutorials teach you how to use bindings with Interface Builder. While this is by far the most common way to use bindings, Interface Builder can leave the impression that bindings are a kind of magic, and developers who never dive deeper and gain a full understanding of how they work can often struggle to solve certain problems, especially when trying to debug some unexpected behaviour.


There are benefits if the object being bound to implements NSEditorRegistration. This is one reason why it’s a good idea to bind to controller objects rather than binding directly to the model. NSEditorRegistration lets the binding tell the controller that its content is in the process of being edited. The controller keeps track of which views are currently editing the controller’s content. If the user closes the window, for example, every controller associated with that window can tell all such views to immediately commit their pending edits, and thus the user will not lose any data.


In bindings, the view does all the work. It is responsible for observing the model, pushing its own changes back to the model (using Key Value Coding) at an appropriate point, and keeping track of all the information about the binding. If you’re binding to Apple-supplied views (or Apple-supplied controllers that expose bindings) all this is taken care of, but it becomes important if you are creating your own bindable views.

Saturday, September 13, 2014

Eulogy for the iPod Classic

Josh Centers:

Overshadowed by the excitement of Apple’s latest product announcements was the loss of a long-standing Apple product. On 9 September 2014, Apple took its Web site offline briefly to slip in a redesign, new iPhone models, and the Apple Watch, but when the site returned, there was something missing: the iPod classic, which had been unceremoniously scrubbed from both the site and Apple’s online store. The 160 GB iPod classic is survived by the 2 GB iPod shuffle, the 16 GB iPod nano, and the iOS-based iPod touch.

Update (2014-09-15): Mat Honan:

In all likelihood we’re not just seeing the death of the iPod Classic, but the death of the dedicated portable music player. Now it’s all phones and apps. Everything is a camera. The single-use device is gone—and with it, the very notion of cool that it once carried. The iPhone is about as subversive as a bag of potato chips, and music doesn’t define anyone anymore.

Soon there will be no such thing as your music library. There will be no such thing as your music. We had it all wrong! Information doesn’t want to be free, it wants to be a commodity. It wants to be packaged into apps that differ only in terms of interface and pricing models. It wants to be rented.

A Warm Welcome to Structs and Value Types

Andy Matuschak:

If classes are so much more powerful than structs, why use structs? Well, it’s exactly their limited scope that makes them such flexible building blocks. In this article, you’ll learn how structs and other value types can radically improve your code’s clarity, flexibility, and reliability.

The whole issue about Swift is good.

iPhone 6 Size, Points, and Pixels

Ben Markowitz:

Want to get a feel for the new iPhone 6 Plus? Stack two standard checkbooks. Gets you length, width, and depth.


Like many of you, I’m still having trouble deciding which size to get. I put together these images that display the two models at actual size, keyboards included.

Tim Schmitz:

Both the iPad Air and the iPad mini have a "regular" size class in both dimensions, which implies that Apple is at least leaving room for something larger than the iPad. The likeliest explanation is that they’re keeping their options open for shipping larger devices in the future.


The new iPhone substantially changes the way graphics are rendered on screen. We’ve made an infographic to demystify this.


iPhone 6 Plus - with Retina display HD. Scaling factor is 3 and the image is afterwards downscaled from rendered 2208 × 1242 pixels to 1920 × 1080 pixels.

Marcel Weiher:

The iPhone 6 Plus has a 1920x1080 panel, but the simulator renders at 3x. These two resolutions don’t match and so the pixels will need to be downsampled to the display resolution. Whether that is accomplished by downsampling pixel art (which happens automagically with Quartz and the proper device transform set) or as a separate step that downsamples the entire rendered framebuffer doesn’t matter (much). Either way, there are no more “pixel perfect” pre-rendered designs.

Pablo Bendersky:

3x assets and the scaling is weird. I figure it’s a stop gap measure until we can get screens at 4x resolutions, so we can go back to pixel perfect assets if we wish to. While iOS 7 and 8 have a visual style that do not require pixel perfect mockups, iOS 7 was touted as designed for retina displays, and the recommendation was to use retina assets (like 1px lines) which might not look good on the 6 Plus.

Brent Simmons:

The @3x thing makes me feel like one of those computers in the original Star Trek that Kirk destroys by feeding it bad input. Does. Not. Compute. Can’t. Divide. Three. By. Two. Help. Me.

Swift 1.0 Performance and Compilation Times

Marcel Weiher:

About a month ago, Jesse Squires published a post titled Apples to Apples, documenting benchmark results that he claims show Swift now with a roughly 10x performance advantage over Objective-C. Although completely bogus, the post was retweeted by Chris Lattner (who should know better, and was supposedly mostly interested in highlighting the improvements in the Swift optimizer, rather than the bogus comparison) and has now been referenced a number of times as background knowledge as to the state of Swift. More importantly, though the actual mistake Jesse makes is pretty basic and not that interesting, it does point to some deeper misunderstandings about performance and language that I at least do find interesting.


A second takeaway is that the question "which language is faster" doesn’t really make sense, a more relevant and interesting question is "does this language make it hard/possible/easy to write fast code". Objective-C lets you write really fast code, if you want to, because it has the low-level chops and an understandable performance model. Swift so far can achieve reasonable performance at times, ludicrously bad at other times (especially with the optimizer turned off, which hardly fazes Objective-C), with as far as I can tell fairly little predictability or control. Having 10% faster (or slower) performance for code I don’t particularly care about is not worth nearly as much as the knowledge that I can get the 1-5% of code that I do care about in shape no matter what. Swift is definitely not there yet, and given the direction it is taking I am not sure whether it will allow that kind of control, at least in comprehensible ways.


A third point is something more general about language. The whole argument that NSNumber and NSArray are “built in” somehow and int is not displays a lack of understanding of Objective-C that to me seems staggering. Even more so, the whole idea that you must only use what comes provided with Cocoa and are not allowed to build your own flies in the face of modern language design, throwing us back to the times of BASIC (Cathy Doser, in the comments).

Christoffer Lernö:

Recently I discovered that our current project is seeing O(n²) compile times. While a small project compiles real fast, compile times for projects with 20.000+ lines of code will easily take a few minutes to compile. This is Swift supposedly at 1.0 with no optimizations turned on.

In other news, using Dictionary instead of NSDictionary when interfacing with ObjC code was able to incur a performance penalty of over 14000%. Yes, that’s Swift being 140 times slower than using NSDictionary.

Furthermore, putting your source code in the same or different files can give you a performance penalty of over 3000% in itself. Again, yes that is Swift being 30 times slower if you call something in a different file.


I’d like to see Swift succeed. It is certainly less bulky than Objective-C. However, when Swift becomes unworkable for projects exceeding 15.000 LOC, then no amount of liking the language is going to help. Nor will you be able to replace it with ObjC/C if you have a performance sensitive application.

Marcel Weiher on the compilation time:

1000x slower? Wow, that’s worse than I would have expected (and I expected bad). Unlikely to change significantly (see C++,Scala etc)

Expensive default semantics, 100% reliance on optimizer to get remotely reasonable perf., unpredictable performance model.

I still like the potential of Swift, but it sounds like it’s currently very easy to paint yourself into a corner. It is troubling that basic features like dictionaries are so slow.

Update (2014-09-14): Christoffer Lernö:

Since Scala is a bit infamous for slow compilation times – partly attributed to type inference – my fear has been that Swift would remain fairly slow at compilation. However, I’ve been assured that Swift’s model is much closer to that of F# and C#. The current O(n²) compiler times are due to bugs and not due to any inherent complexity in the language itself.

BeeLine Reader

BeeLine Reader (via Lukas Mathis):

BeeLine Reader makes reading faster and easier by using a color gradient that guides your eyes from the end of one line to the beginning of the next. This gradient makes you less likely to skip or repeat lines, so you read faster.

It really seems to work.

A Brief Visual History of Apple Home Page Tabs

James Dempsey:

First, we see how the user interface has evolved. The tabs begin with the natty pinstripes and bubblicious tabs of the original Aqua interface, appearing on the home page immediately after Aqua was introduced in January 2000. This was the first production use of Aqua elements by Apple—the release of Mac OS X, 10.0 was over a year away. Through the next fourteen years, we see the designs become simpler as the candy look becomes more subtle before disappearing entirely. With the removal of dividing lines between items, the original tabs have finally morphed into a simple menu bar.

This week’s update also ended the reign of Lucida Grande as the font of choice—the honor now belongs to the Apple variant of Myriad.

Larger Screens, But Not for Macs

Jeff Johnson:

If Apple is willing to give us a bigger screen on the iPhone, will they once again please ship a 17 inch MacBook Pro?

Having a larger screen on my MacBook Pro would make me much more productive. The normal 15-inch resolution just doesn’t show very much content. The 1900×1200 shows a lot, though less than my desktop setup, but it is tiring on the eyes.

When traveling, if the available Wi-Fi doesn’t block the port, I supplement with my iPad mini via Air Display (App Store). Unfortunately, there is (according to Avatron) a bug in the OS that prevents MacBook Pros from outputting at HiDPI resolutions. So Air Display can only run the iPad at full Retina resolution (way too small to read) or at a blurry 1024×768.

Apple Addresses iOS Surveillance and Forensics Vulnerabilities

Jonathan Zdziarski on the changes in iOS that address his reported iOS Backdoors, Attack Points, and Surveillance Mechanisms:

The file relay service is now guarded. While the service still exists, all attempts to extract data from it will fail with a permission denied error (see screenshot at the bottom of this post). Only under certain circumstances, such as beta releases and on managed devices can the file relay be activated.


Connections to a number of other services (house_arrest, afc, and others) on the device, has now finally been restricted and these mechanisms are deemed “usb only” services. Wireless clients are no longer permitted to obtain file handles to application sandboxes (only USB clients), so third party application data can no longer be dumped across WiFi. Additionally, wireless clients are not permitted to access the user’s media folder via AFC (Apple File Connection) or access certain other types of data.


Lastly, wireless access to the built-in packet sniffer ( has been disabled, and the service has been listed with a new “usb only” descriptor, so that lockdownd will refuse to attach to it over WiFi. The packet sniffer can only be accessed while the device is connected over USB, eliminating it as a surveillance risk, while retaining its use for debugging and engineering.


While closing off the file_relay service greatly improves the data security of the device, one mechanism that hasn’t been addressed adequately is the ability to obtain a handle to application sandboxes across a USB connection, even while the device is locked. This capability is used by iTunes to access application data, but also presents a vulnerability: commercial forensics tools can (and presently do) take advantage of this mechanism to dump the third party application data from a seized device, if they have access to (or can generate) a valid pairing record with the device.


While the amount of data that can be scraped from an iOS 8 device has been greatly reduced, there is still some risk, and therefore still some steps you can, and should, take to ensure the data security of your device. When traveling through airports, or if you suspect you may be detained by law enforcement, powering down the device will cause the data-protection authentication (NSFileProtectionCompleteUntilFirstUserAuthentication) to be discarded from memory, rendering this type of attack unsuccessful, even with a valid pairing record from a desktop machine. Secondly, consider pair locking your iOS device using Apple’s Configurator tool. I have outlined instructions to do this. This will prevent an unlocked device from being able to establish a pair record with any device, other than the computer you’ve initially paired with in setting it up.

Wednesday, September 10, 2014

Swift Has Reached 1.0


Today is the GM date for Swift on iOS. We have one more GM date to go for Mac. Swift for OS X currently requires the SDK for OS X Yosemite, and when Yosemite ships later this fall, Swift will also be GM on the Mac.


You’ll notice we’re using the word “GM”, not “final”. That’s because Swift will continue to advance with new features, improved performance, and refined syntax. In fact, you can expect a few improvements to come in Xcode 6.1 in time for the Yosemite launch. Because your apps today embed a version of the Swift GM runtime, they will continue to run well into the future.

How much overhead is there for that runtime?

Airspeed Velocity:

As such, the first beta of Xcode 6.1 saw more changes to the standard library than we saw in the pre-1.0 beta, and here they are […]

Update (2014-09-13): Tim Wood notes a strange bug.

iPhone 6

The iPhone 6 and 6 Plus are pretty much what people expected, except it turns out that the ugly antenna lines are real. Although I welcome the larger form factors, I’m disappointed that there is no longer a 3.5-inch or even 4-inch model. If there’s a smaller watch for people with smaller wrists, why can’t there be a smaller phone? It’s not just a matter of physically fitting in one’s pocket. The larger size will simply not be as comfortable in the pocket when moving around or seated. I find the iPhone 5s to be less comfortable in that way than the previous, smaller models, but it’s still acceptable and the larger screen is nice. It’s not clear to me that the same will be true of the iPhone 6.

And I’m skeptical that the one-handed Reachability mode will work well.

Update (2014-09-10): Clark Goble:

No RAM increase. And no new compelling features at all beyond size. For many of us larger, despite the Anrdroid market, is a big step backwards. I hope that in the future they move to keeping the 4″ form factor as the low end but put the latest chip inside. Because the 4.7″ (the smallest) is just too big for my use. I remember the days when having a small phone was a plus.

Ryan Smith:

From a performance perspective Apple is promising 25% faster CPU performance than A7. As is usually the case with Apple, they aren’t talking about the underlying CPU core – though this is a problem we’re working to rectify – so it remains to be seen how much of this is due to CPU architectural upgrades and how much is from clockspeed improvements afforded by the 20nm process.


Meanwhile Apple is being even less specific about the GPU, but from their published baseline performance comparisons against the iPhone 1, the A8 is said to be 84x faster on graphics. This compares to a published figure of 56x for the A7, which implies that the A8’s GPU is 1.5x faster than the A7’s.

Joshua Ho:

Looking past the size of the iPhone 6, there are a lot of noticeable subtle changes to the device compared to the iPhone 5s. In terms of low-hanging fruit, the side-mounted power button definitely helps with keeping a firm grip while turning on the phone, and I didn’t find any real issues when trying to turn the phone on or off. The slightly curved glass that helps to make for a smooth transition when swiping off the edge of the display is also a nice touch, although I’m concerned about the implications that this has for drop resilience and screen protectors.

Joshua Ho:

However, dual domain pixels are actually not as complicated as they seem. […] Anyone that has tried the HTC One (M7) or One X will probably understand the effect of this change as these phones have had this type of skewed subpixel format to get better viewing angles and less color shifting with changes in viewing angles. This can carry some risk though as black backgrounds may have some color shifting towards purple instead of yellow/blue, which can look strange but is quite subtle in my experience.

Andrew Cunningham:

The back of the phones are made out of aluminum with some clearly visible cutouts made to allow wireless signals in and out. The design as a whole is more reminiscent of the 2012 iPod Touch than current iPhones, an observation that extends to the slightly protruding camera lens. You won’t notice this bulge if you keep your phone in a case or sit it on a soft surface, but if you set the phone on a hard table it definitely will wobble a bit in place.


We’ll need to spend more time with it, but Reachability feels like a compromise right out of the gate. It’s a necessary concession to reality—iOS relies overwhelmingly on navigation buttons kept in the upper-left and upper-right corners of the screen. These were reachable with one hand on 3.5- and 4-inch screens. They are emphatically not reachable on either iPhone 6. Android and Windows Phone both solve the problem by putting a hardware or software Back button at the bottom of the screen, an element that has been criticized for its inconsistency but generally gets the job done.

Reachability solves the problem for iOS, but it does so in a way that doesn’t feel very intuitive. First, it’s an odd gesture that sort of overlaps with an existing one (double tap the Home button without pressing to enter Reachability mode, double press the button to bring up the multitasking switcher). Second, every time you press a button in Reachability mode, the app “window” zooms back up to the top of the screen, and you have to double tap again to re-enable Reachability and press the button again. It’s an OK solution for when you need to press one button, less so when you need to tap several navigation buttons at once.

Dave Klein:

The first and most significant reason is that it shows that Apple is being directed by their competitors and detractors. I know that there are some number of iPhone users who wanted a larger phone, though I’d argue that the 4.7 would have sufficed most of them, but the vast majority of noise about Apple’s lack of a giant phone was coming from the phone manufacturers who currently make them, or from the media pundits who inherently hate Apple. It’s very similar to when you hear political party A saying that party B is doomed unless they do X. Then party B does X, and it backfires on them, just as party A had hoped. In other words, don’t take direction from your enemies. With the iPhone 6 Plus, it appears that Apple is doing just that. And that scares me.

Apple Pay


Gone are the days of searching for your wallet. The wasted moments finding the right card. The swiping and waiting. Now payments happen with a single touch.

Apple Pay will change how you pay with breakthrough contactless payment technology and unique security features built right into the devices you have with you every day. So you can use your iPhone 6 or Apple Watch to pay in an easy, secure, and private way.

As a wallet replacement, I don’t really see the attraction. If it’s not ubiquitous, I’ll still have to carry my cards. I’ll need my driver’s license in any case. Even if everyone accepted Apple Pay, I wouldn’t want to leave home with all my eggs in one breakable basket. I’m not convinced that Passbook and NFC are easier than using a card.

But the potential for purchasing from third-party stores, within an app, is very promising:

Convenient checkout. On iPhone, you can also use Apple Pay to pay with a single touch in apps. Checking out is as easy as selecting “Apple Pay” and placing your finger on Touch ID.

Too bad it isn’t available on Macs or older iPhones.


Apple Pay marks the first time a popular operating system is making payments a platform service for real-world, non-digital-good transactions, in a broad, inclusive manner that is compatible with the mainstream payments processing industry. At Clover we’re particularly excited because we believe it opens up lightweight apps that can interact and transact with small-and-medium brick-and-mortar restaurants. By lightweight, I mean that these apps won’t need to maintain a user database, require user logins, worry about getting cards on file, or being an unwilling payment aggregator. i.e., it will be at least 10x easier. I expect a huge amount of innovation in real-world mobile commerce as a result over the coming years because of the revolution that Apple Pay is starting.

Marko Karppinen:

Apple Pay comes with the key benefits of IAP: frictionless transactions, strong privacy protections for the consumer, and a user base that will soon number in the millions. It is backed, in part, by those same credit cards on file at iTunes.

The big difference is that Apple doesn’t charge anybody anything for the use of Apple Pay. That’s because Apple sees Apple Pay as an end-user feature of iPhone 6, not as an independent revenue source. (Update: According to Bloomberg, Apple is charging banks. But that is coming from the fees paid to banks by merchants, so the thesis about this being free for both merchants and customers still stands.)

The comparison with In-App Purchase is interesting:

A newspaper’s iOS app can sell print subscriptions using Apple Pay, get all the conversion benefits of the one-tap payment, and pay 2.9% (to Stripe or some other credit card processor) for the transaction. But if the paper offers the same content digitally, within the same app, Apple will charge 30% in IAP commission.


Apple’s overall business would be well served by dismantling of the IAP monopoly on iOS and allowing Apple Pay to be used for the payment of in-app goods and services.


So Apple Pay is a payment method management application. It is not a payment protocol. The payment protocol Apple Pay uses to interface with point of sale terminals is the same EMV protocol that is used for other solutions.

Update (2014-09-13): Rich Mogull:

Tokenization is great because it reduces or eliminates the need to update legacy systems that expect a credit card number, without ever exposing the real number. Tokenization is typically handled by the payment network, which (in some implementations) encrypts the credit card number right when you swipe it, sends it back for the token, and then provides that to the merchant to keep for things like refunds or customer tracking. If the merchant’s system is breached, no real numbers are exposed; the tokens can also be merchant-specific for any given credit card, making them useless anywhere else.


Using per-device tokens means that only the bank that issued the card (or its payment network) ever has your card: You don’t have to trust Apple with it. This is different from the Google Wallet system, in which Google holds your cards on their servers.


Apple is in a unique position due to its business model. It doesn’t want or need to track transactions. It doesn’t want or need to be the payment processor. It isn’t restricted by carrier agreements, since it fully controls the hardware.

Macworld Layoffs

Jason Snell:

I’ve been working continuously in what is now called “tech journalism” for 20 years, 8 months, and 7 days. In January 1994 I started at MacUser magazine while I still had a semester of grad school left to go. I haven’t had a day where I wasn’t either a full-time student or a full-time employee of a publishing company since the day I toddled into Kindergarten in the fall of 1975.

Until today, that is.

Roman Loyola:

Pretty much the whole Macworld staff has been let go. Looks like the end. Sad

Dan Frakes:

After 10 years as a Macworld editor, I’m a freelancer again (along with too many of my colleagues). Sad day for me, but also for Macworld.

Philip Michaels:

So, um... anyone hiring?

Best wishes to all of the Macworld folks. Thanks for so many years of great work. I have read, I think, every issue since about 1990. Thank you for the Eddy, which was one of the major factors in getting my business going. Thank you for holding the line with real journalism and lab testing in a world of click-bait headlines. I’m looking forward to seeing what you do next.

Update (2014-09-10): Dan Miller:

Macworld print is going away, but will continue.

David Pogue:

My first writing job was Macworld magazine; 13 wonderful years. Today, nearly the entire staff has been laid off. Breaks my heart.

Adam C. Engst:

Also troubling is the demise of the print edition of Macworld. Since the launch of the Macintosh in 1984, Macworld has been a stalwart of the Mac community, a role that has continued through the 1997 merger with MacUser (see “MacUser and Macworld Merge,” 11 August 1997) and the disappearance of MacWEEK (“MacWEEK to Roll into MacCentral,” 5 March 2001). The print magazine world is tough, but it’s still surprising that Macworld would fold now, with Apple so dominant and Apple products used by so many millions around the world.

The Macalope:

My thanks also to @jsnell who took a chance on a furry mythical creature with a bad attitude. Guy’s like a cat, he’ll land on his feet.

Dan Moren:

If you haven’t heard: Today’s my last day at @macworld along with a lot of other fine folks. Thanks for all your support—you guys are swell.

Brent Simmons:

Is it just that it’s hard to make enough money to run a quality publication?

Update (2014-09-11): Serenity Caldwell:

Took a self-photobombed shot of yesterday’s liveblog crew in action. I’ll miss these jerks.

Tom Negrino:

Losing Macworld Lab is a real blow to the Mac community. Knowing how to do good performance testing on Apple gear requires deep knowledge.

Glenn Fleishman:

Be more pissed about 20 years of inadequate response to digital media through determined executive resistance. Cuz, you know, IDG could have owned the *world with the great staff they had.

Laura Blackwell:

The designers and photographer who made Macworld/PCWorld/TechHive look great have also been laid off. So much talent for hire!

Josh Centers:

RIP Macworld Labs. You will never see this awesomeness again.

Jon Seff:

To those saying Macworld layoffs related to print were inevitable, understand that the bulk of our/their jobs was daily online work.

Marco Arment:

Over the last few years, we’ve all seen Macworld’s website degrade further into reader-hostile designs and lower-rent ads, borrowing against their future goodwill and relevance just to keep the lights on, while hoping for better economic conditions that we all know will never return to that business. Like a beloved relative whose last years were difficult and undignified, I’m going to choose to remember only the good times.

Update (2014-09-13): Serenity Caldwell:

I’ve loved every second working for Macworld’s editorial staff. These are some of the best folks in the business, and they took a 22-year-old Apple-obsessed tech enthusiast who didn’t quite know what she was doing and helped her evolve into a full-fledged reporter. I am so grateful to every one of these people—both for what they’ve meant to me as my friends and as my colleagues. Working in this field is a dream job.

Jason Snell:

I should mention that PCWorld, TechHive, and Greenbot all lost staff yesterday. Macworld was most dramatic change, but far from the only.

Christopher Breen:

It’s easy to blame management because, hey, it’s always The Man, right? But the truth is that Macworld continued as a print publication for as long as it did because the people at the very top had a soft spot for it. They tried every way they could think of to make it work. Regrettably, the realities of economics eventually took hold.


But I’m not here to feed Internet tittle-tattle. Rather, as someone who’s been with Macworld (and MacUser before it) for a very long time, I’d like to provide potential employers (and those who are simply interested in their favorite writers) some details about my departed colleagues.

Dan Moren:

For the last eight years, I’ve devoted most of my waking moments to following Apple coverage. To say that I’ve loved every moment would be an overstatement: like any job, there are plenty of ups and downs; for every triumph, there was an opportunity to learn from mistakes. But I had the privilege of working alongside folks who I’d been a fan of from afar—Jason, Chris Breen, Dan Frakes, Jim Dalrymple, Peter Cohen, Rob Griffiths—folks who worked just as hard, even if their names didn’t always come to the forefront—Scholle Sawyer-McFarland, Philip Michaels, Dan Miller, Jon Seff, Jackie Dove, Jim Galbraith—and folks who I met along the way—Roman Loyola, Serenity Caldwell, Lex Friedman—as well as more freelance contributors than I can name.

Paul Kafasis:

For years, Macworld set the standard for Mac journalism, and the volume of talent that is presently unemployed is simply obscene. There’s little doubt that these talented folks will quickly find new opportunities. I only hope that many of them will remain in the Apple space, so that we can continue to benefit from their work for years to come.

Jon Phillips:

This week, the Macworld family lost many key staffers whose passion, creativity and tech knowledge made this website and our magazine an industry flagship. But amid the loss we’re excited about what the future holds. Please stay tuned for great things ahead.

Apple Watch

Before the event, I was skeptical about a potential iWatch for two reasons:

  1. Competing smart watches are giant, unattractive bricks. Apple may have better taste, but how could they do much better without overturning the laws of physics?
  2. I have been incredibly happy not wearing a watch since I started carrying an iPhone. What could this type of device possibly do that would change my mind?

Apple itself hyped the announcement like crazy. So I thought, “I have no idea how, but maybe they really did crack this thing.” But, in the end, I don’t think Apple Watch (not so fond of WATCH) answers either of my questions.

  1. Maybe it’s different in person, but in the photos it looks big in every dimension, probably more so than a calculator watch. I don’t think it blows away Samsung’s products in appearance, and it’s not that far off from a parody of a mini original iPhone on a band. It will apparently need to be charged nightly. We don’t know yet whether it’s waterproof.
  2. There are lots of impressive features and creative ideas. But, based on the presentation, Apple itself doesn’t seem to have a clear explanation of what it’s for. Even if I somehow got one for free, I doubt I would wear it. The original iPhone announcement was the opposite: I wanted one yesterday, even at $600, even though it didn’t have apps, even though it only supported AT&T.

Right now, I think Apple Watch is an amazing technical achievement, but I just can’t see this one being a mass-market success. It seems like the type of product where you’d really feel burned buying the 1.0. In five to ten years, when it’s much thinner and lighter? And when, I presume, people will have more use cases figured out? That could be really interesting.

Today, though? What I want from Apple today is not new product categories. I would rather they put all those brilliant engineers to work fixing bugs and maintaining the apps that I use. That’s what would really make my life better.

Update (2014-09-10): John Gordon:

This isn’t the usual Apple 1.0 product. The usual 1.0 Apple product is interesting and somewhat useful for early adopters with high pain tolerance and it comes with a clear path to a strong 2.0. This is version 0.5. It’s far too ambitious for its time -- and it’s 6 months behind schedule.

Dave Winer:

The Apple Watch was basically paying a debt, and it’s not a product Steve Jobs would have shipped. The debt is that the new Apple management has to show investors that they can ship something new. It probably indicates that they don’t have anything better in the pipe, and that’s fine. It could be at this point in history there aren’t any new devices that make sense.

Clark Goble:

I just can’t quite figure out how many people would want the watch. I didn’t see that Apple made a compelling need case for it. Say what you will about Jobs. But he always had a killer function — even for the iPad. Exercise seems to be the attempt for the watch, but even that isn’t that compelling given the limits of the watch itself.

Brian Dunagan:

That’s the question for Apple’s iWatch. How does it go beyond a novelty? I use my Mac, my iPhone, and my iPad every day, not for the sake of using them, but to do things. The current assortment of smart watches still seem geared toward early adopters, who are interested in the device itself rather than doing things with the device.

Khoi Vinh:

As first sight, the look of the Apple Watch struck me as boxy and inelegant. Its vaguely space age-y curves seemed like the antithesis of what I personally favor in watch fashion, which is something more conservative.


There aren’t quite as many SKUs for the Apple Watch as there are, say, in the Nixon watches catalog, but there are far more variants on offer than for any Apple product that’s ever come before. And remember, this is a company that, at the onset of its comeback, prided itself on selling fewer things, on an almost flagrantly reductive product matrix.

Ben Thompson:

Then came the introductory video, and we never got an explanation of why the Apple Watch existed, or what need it is supposed to fill. What is the market? Why does Apple believe it can succeed there? What makes the Apple Watch unique?

Benjamin Clymer:

The overall level of design in the Apple Watch simply blows away anything – digital or analog – in the watch space at $350. There is nothing that comes close to the fluidity, attention to detail, or simple build quality found on the Apple Watch in this price bracket.


If I had to criticize the actual form of the Apple Watch, it would be a complaint you’ve heard from me before (most recently with the Habring2 in our latest Three on Three); the Apple Watch doesn’t fit under my shirt cuff without serious effort, if at all. I believe that great design should not disrupt daily life, and a watch that doesn’t fit under a shirt sleeve is missing something. Apple is amazing and building thin, elegant machines, and I was surprised by how bulky this is, especially when the 45 minutes prior to the introduction of the Apple Watch were spent discussing how svelte the new iPhone 6 is. I understand the physical limitations and the required dock on the rear of the watch, but the Apple Watch is bulkier than I would’ve liked.

Update (2014-09-13): Dave Chap shows how the Apple Watch is slightly thinner than two iPhones.

Om Malick has lots of photos.

Rainer Brockerhoff speculates that Apple Watch doesn’t run iOS.

Mark Bernstein:

My guess is that, somewhere around 2017, looking at your phone in company is going to be considered bad manners, but looking at your watch will be OK.

xkcd on smart watches (and thinkpieces).


The Apple Watch will use a unique system to authorize NFC mobile payments, reports say. Normally Apple Pay is authorized via Touch ID, but there's no such sensor on the Watch. Instead, when someone puts on the device for the day, they'll have to enter a PIN to authorize transactions. The sensors on the bottom of the watch can detect skin contact, and once that's lost, a person will have to re-enter their PIN.

Ken Segall:

One could also argue that the i has been hijacked by many other companies, while the Apple-word is un-stealable. So, the naming of Apple Watch could well be the start of a new naming direction, with more importance placed on Apple and less importance placed on the i.


What Samsung did with the Gear is somewhat predictable. It created a wrist-sized version of a phone. Apple took a more unexpected route, based on the realities of the small screen — with the digital crown being a highlight. Apple’s strength is in imagining solutions that feel simple and natural.

Alex Vollmer:

This is going to sound funny, but I think the tactile pulsing feature of the Apple Watch is one of its most intriguing. It got me thinking about how, paired with the right software, it could be a fantastic way to teach a wearer certain timing-related skills.

Update (2014-09-15): Andy Ihnatko:

This has been bothering me since Tuesday. I was at the iPhone and the iPad launch events and though I left with some questions and concerns, I left San Francisco tingling a little bit. I wasn’t unimpressed by Apple Watch, and my thoughts are overall positive. But it concerns me a little that it’s such an important new product for Apple and that they put so much effort into this event … and I’m still not entirely sure what the Apple Watch is or what role Apple thinks it will perform in people’s lives.

Marco Arment:

Apple didn’t find a way around the laws of physics. They didn’t somehow unveil a revolutionary battery or screen technology that the world had never seen before. They punted again. In the absence of any better alternative approaches, they just did what they could with today’s technology.

It’s kinda big, but the touch screen isn’t big enough for good touch input and can’t fit much text or UI. It seems fashionable enough, but it’s unquestionably electronic-looking. It’s about as thick as it could reasonably be, but the battery only lasts a day. And the primary functions still seem to be telling time and showing phone notifications.

This shouldn’t be a big surprise, though. This is what Apple usually does.

Update (2014-09-16): Kyle Baxter:

But that idea of what smartwatches are for, making it more convenient to deal with the flood of notifications and information our phones provide us, is unimaginative. I think what the smartwatch can do is make the phone unnecessary for many purposes, create new purposes altogether, and allow us to benefit from a wrist-sized screen’s limitations.

Benedict Evans:

If you wanted a nine inch touch-screen tablet, the iPad executed that idea pretty well, but did you want one? Was it a good idea? If you want a very small computer on your wrist, both Apple and Motorola (and perhaps Samsung, if that’s your taste) have each made one that’s pretty good, but do you want one?

Update (2014-09-17): Jean-Louis Gassée:

But let’s not get ahead of ourselves — we’re still barely past the demo. We’ll have to wait for the actual product to come to the wrists of real users. Only then will we have the Apple Watch make-or-break moment: Word-of-mouth from non-experts.

John Gruber:

I think Apple Watch prices are going to be shockingly high — gasp-inducingly, get-me-to-the-fainting-couch high — from the perspective of the tech industry. But at the same time, there is room for them to be disruptively low from the perspective of the traditional watch and jewelry world. There’s a massive pricing umbrella in the luxury watch world, and Apple is aiming to take advantage of it.


The most intriguing and notable thing about Apple Watch’s design, to me, is the dedicated communication button below the digital crown. The entire watch is fully operational and navigable using just the digital crown and touchscreen. You can go anywhere and do everything using taps, force presses, or turning and pressing the digital crown. There is no need for that extra button (which, in the unveiling video, Jony Ive described only as “the button below the digital crown”).


I’ve seen some skepticism about Apple Watch’s use of “force presses”. To wit, that this capability is unneeded — anything you can do with a force press could be done on a regular (non-pressure-sensitive) touchscreen using a long press. I disagree. Force pressing means you won’t have to wait. Talking to Apple people behind the scenes last week, they are very keen on the force press thing.

It would be nice to be able to force press to select text in iOS.

Amy Worrall:

thing it was lacking was something telling us “Here’s why you need Apple Watch”. There was a big list of things the watch could do, but nowhere did they tell us how much better our life would be for being able to do those things. I bought the Pebble (which was less than half the price of the lowest end Apple Watch) because I was interested in what the future might bring for smart watches. Do I buy the Apple Watch for the same reason, or do they have a unique selling point yet?

New iCloud Pricing

Like Dropbox, Apple has reduced its cloud pricing:

Customers will continue to get 5GB of storage for free, with 20GB available for $0.99 per month. 200GB of storage costs $3.99 per month, and 500GB is $9.99 per month. Apple’s top tier storage, 1TB, costs just $19.99 per month, slightly more than Dropbox’s new $9.99/month price for 1TB storage.

(Is 2x really “slightly”?)

Apple’s September 9th Live Event Stream

Dan Rayburn (via Amy Worrall):

The bottom line with this event is that the encoding, translation, JavaScript code, the video player, the call to S3 single storage location and the millisecond refreshes all didn’t work properly together and was the root cause of Apple’s failed attempt to make the live stream work without any problems. So while it would be easy to say it was a CDN capacity issue, which was my initial thought considering how many events are taking place today and this week, it does not appear that a lack of capacity played any part in the event not working properly. Apple simply didn’t provision and plan for the event properly.

All the other recent Apple streams have worked really well for me. That said, the refreshing and JSON don’t explain why the stream was also unreliable on Apple TV.

Update (2014-09-13): igrigorik:

Why? No idea. All of them are served via, which is also fronted by Akamai, but once again, a short TTL really doesn’t help with caching, which means there were a lot of requests hitting the Apple origin servers. Those poor Apache servers powering Apple’s site must have been working really, really hard. I’m not surprised the site was experiencing intermittent outages.

Oh, and speaking of load on origin servers… Remember feed.json? Every 10 seconds the page makes a polling request to the server to fetch the latest version. Combine that with a really short maxage TTL and missing gzip compression, and you’ve just created a self-inflicted DDoS.

Simon Fredsted (via John Gruber):

I’m sure that at this point Apple and their streaming partner has done a complete investigation of the causes of the many problems of the stream. Here’s what I think they have found.

Markdown and CommonMark

Jeff Atwood has been repeatedly trying to hijack Markdown rather than fork it. It’s hard to believe that he would think Common Markdown would be acceptable when Standard Markdown was not. Gruber clearly doesn’t want to give him the name, so this reads as Atwood increasingly trying to rationalize just taking it.

Dave Winer:

Whatever his feelings for Gruber are, he’s hurting himself a lot more by taking the name of the project. It isn’t his to take. If he wants to make a contribution, let it stand on its own and accept competition from others.

Gruber did the hard work, had the vision, and used his goodwill to get Markdown to happen. He can’t and shouldn’t stop anyone from building on what he did (and as far as I can tell he doesn’t want to), but they shouldn’t stop him either.

Winer (of course) sees parallels with RSS:

Now it is what it is. A bunch of programmers fighting over who gets to be the Holy Father of Markdown is only going to create confusion, it won’t actually change what Markdown is.

Programmers always underestimate deployment, and think they can wave a magic wand and get everyone to upgrade.

Werner Vogels:

It is a case of “Worse is better” - instead of excellent formalized frameworks we favor tools that work. Help us (in this case writers) do our jobs. My two favorite tools in this case (e.g. Textmate and Byword) seem to be fine with the definition as is and as such I don’t see reason to resort to an standardization effort.

I think it’s great that people have been able to extend Markdown in different ways, for different purposes, even creating domain-specific derivatives. However, the argument that it’s good for the basic features to remain underspecified has never been clear to me. Today, people wouldn’t say that about HTML and the Web, so why should Markdown be different? How is it more user-friendly to the writer to get different output from different tools?

So I think the formalization effort is a good thing, and (given Gruber’s wishes) that it’s also good for it to proceed under a different name, CommonMark:

Because there is no unambiguous spec, implementations have diverged considerably. As a result, users are often surprised to find that a document that renders one way on one system (say, a GitHub wiki) renders differently on another (say, converting to docbook using Pandoc). To make matters worse, because nothing in Markdown counts as a “syntax error,” the divergence often isn’t discovered right away.

Monday, September 8, 2014


Swifter is auto-generated documentation for Swift’s standard library (via Ole Begemann).


Mattt Thompson:

When interacting with frameworks like Foundation in Swift, all of those NS_ENUM declarations are automatically converted into an enum—often improving on the original Objective-C declaration by eliminating naming redundancies […] Unfortunately, for NS_OPTIONS, the Swift equivalent is arguably worse.


Compared to the syntactically concise enum declaration, RawOptionsSetType is awkward and cumbersome, requiring over a dozen lines of boilerplate for computed properties.

Phone Sizes

Lukas Mathis:

The interesting thing is that there are a lot of iPhone owners out there for whom — relative to the size of their hands — their iPhone is already bigger than the Galaxy Note was for the men who wrote those articles. It didn’t occur to those authors that their hands were probably larger than most women’s hands, and that the experience they had with the Note wasn’t altogether unlike how many women feel while using their iPhones today.

In that context, it shouldn’t have been a surprise that the Note turned out to sell well — after all, in relative terms, a lot of iPhone owners were already using very large phones.


That’s why phone size is such a difficult topic. It depends on you, and it depends on what you do with it. I’m glad that Apple is about to introduce a larger phone, but I also still believe there are people who would benefit from an additional phone that’s even smaller than the 4S.

John Gruber:

The thing is, I’m not laughing. You wanted Apple to make a 5.5-inch iPhone? This is what you get.

Core Data Batch Updates

Geppy Parziale:

First of all, Apple introduced a new method executeRequest:error: in the NSManagedObjectContext class. It is very similar to the executeFetchRequest:error: method that you can use to perform a fetch request to populate the Managed Object Context. Its first argument is a NSBatchUpdateRequest. This is a new class, subclass of the NSPersistentStoreRequest recently introduced in iOS 7, and provides very similar functionalities to its sibling NSFetchRequest. The batch request is composed of an entity (the entity containing the property or properties you want to update) and a predicate to define a subset of data you want to update. Eventually, you can also define a dictionary containing the properties you want to update and their new values.

Once created, the NSBatchUpdateRequest is passed to the executeRequest:error: method. After its execution, this method returns an NSBatchUpdateResult object (subclass of NSPersistentStoreResult), the result property of which contains the batch updates result value(s). You can define the type of results you want from the executeRequest:error:, when you define the NSBatchUpdateRequest. You choose among three types of results:


The legacy Fetch-Update-Save takes 7.2s to run on the iPhone 5s, while the new batch updates run in only 0.81 s.

Impressive is also the memory usage. As expected, since the batch updates run directly on the Persistent Store, the memory usage is incredibly lower than the old approach.

I’ve been wanting something like this for a long time. (Note that it doesn’t handle deletion.)

Thoughts on ADN and Dropbox

Clark Goble:

For most people ADN is yesterday’s news. It’s considered as dead as the dodo. However there’s actually still a pretty good community going on there. As people have noted the signal to noise ratio has gone up quite a bit. Unfortunately the people who run ADN don’t seem to share the hope that some of the continuing users have. Which makes it a bit of a self-fulfilling prophecy. I know a few people with innovative clients there aren’t finishing because it doesn’t seem worth the effort. 

The best hope for ADN is for some other company like DropBox to make a competitor that uses ADN’s excellent APIs. Even the critics of ADN and its management always acknowledged that in terms of actual engineering it was an amazingly well designed system.

How to Correct Siri’s Pronunciation

Christopher Breen:

When Siri mispronounces a name, reply “That’s not how you say that.” Siri will respond with “OK, how do you pronounce the name (firstname)?” where firstname is that contact’s first name. Say the first name and Siri offers you three pronunciation choices. Tap each sample and then tap Select next to the one closest to the pronunciation you prefer. If none of them are as close as you’d like, you can tap Tell Siri Again and she’ll take another stab at it.

Thursday, September 4, 2014

Faux Pas 1.0.1

Faux Pas:

What the Clang Static Analyzer is to your code, Faux Pas is to your whole Xcode project.

Faux Pas inspects your iOS or Mac app’s Xcode project and warns about possible bugs, as well as about maintainability and style issues.

I downloaded this a while ago but hadn’t gotten a chance to try it out until I was reminded of it by Brent Simmons. I love the idea, but when I ran it on all my projects it didn’t help much. It recommended that I use GCC_PREPROCESSOR_DEFINITIONS rather than OTHER_CFLAGS and -D, which seems like a good suggestion. The other times it flagged were either debatable style issues or just plain wrong (e.g. telling me that my .app and .xctest bundles should be added to version control).

I guess the bottom line is that my projects were in OK shape to begin with. I can see this tool being more useful for people working on teams or with code that they inherited.

Update (2014-09-16): The problem with telling me that I should add my build products to version control is fixed in Faux Pas 1.1.

PlotDevice 0.9.4


PlotDevice is a Macintosh application that lets you write Python scripts to generate 2D graphics using simple drawing commands. Under the hood, your code drives the system’s Quartz imaging engine, giving your scripts the same graphical power as a full-fledged Cocoa app.

Your code can combine basic geometric shapes, typography, freeform Bézier curves, and a panoply of image formats. This omnivorousness makes PlotDevice ideal for both workaday tasks like image-processing as well as more exotic uses ranging from procedural texture generation to data visualization.

Like NodeBox, which it’s based on, it’s open-source. It sounds similar to Schwartz, another app for driving Quartz 2D from Python. But whereas Schwartz is like a Python IDE for the Quartz API, PlotDevice has its own Pythonic drawing API.