Thursday, April 20, 2017 [Tweets] [Favorites]

LivePhotosKit JavaScript API

Apple (via Juli Clover):

By including the LivePhotosKit JS script on your page, you can create players by simply adding declarative markup to your HTML. As the page loads, LivePhotosKit JS will determine what player instances are on the page and initialize them. You can use any HTML tag that supports child nodes.

At minimum, each tag requires the following data attribute: data-live-photo. Doing this allows LivePhotosKit JS to find the DOM elements to be initialized as players.

Then you can specify the locations of the photo and video components by setting the data-photo-src and data-video-src attributes, respectively.

I haven’t been using Live Photos because of the problems they cause with Lightroom.

Facebook Instant Articles and Apple News

Casey Newton (via John Gruber):

In practice, Instant Articles typically do reach more people, because people are more likely to read and share them. But as the format spread, competition increased, and any advantage to using Instant Articles was blunted within months. Given that Instant Articles were designed to carry less advertising than mobile web articles, broad reach was essential to ensure publishers would profit from the format. The reach just never arrived.


In a presentation at the Social Media Week conference in February, The Verge’s audience engagement editor, Helen Havlak, presented a slide comparing views of traditional Verge links posted to Facebook to Verge Instant Articles as a percentage of overall Facebook traffic. It showed that article views from Facebook were essentially flat in 2016, with Instant Articles representing a larger share of that traffic over time. Viewed in this light, Instant Articles had simply replaced one kind of view with another, less profitable one.


Simo says that the News Feed is becoming more of a multimedia experience over time, and that Instant Articles — which support video — is part of that. […] And so for publishers that do their journalism primarily by linking to text, the News Feed appears increasingly forbidding.

Lucia Moses:

If publishers are down on Facebook Instant Articles, they’re increasingly effusive about Apple News as a platform partner.

Apple News, a pre-installed app on Apple phones and tablets, has long been the distant No. 3 in platform publishing initiatives. Introduced in 2015, Apple News didn’t elicit the kind of excitement Facebook got with IA and Google with its Accelerated Mobile Pages. But in recent months, Apple began sending more traffic publishers’ way and letting them sell subscriptions on the news aggregation app. Kunal Gupta, CEO of branded content platform Polar, which works with premium publishers, estimates that for those publishers that are benefiting big, Apple News is supplying 10-15 percent of their mobile traffic.

Bose Headphones Spy on Listeners

Jonathan Stempel (Hacker News, MacRumors):

Bose Corp spies on its wireless headphone customers by using an app that tracks the music, podcasts and other audio they listen to, and violates their privacy rights by selling the information without permission, a lawsuit charged.

The complaint filed on Tuesday by Kyle Zak in federal court in Chicago seeks an injunction to stop Bose’s “wholesale disregard” for the privacy of customers who download its free Bose Connect app from Apple Inc or Google Play stores to their smartphones.

Nick Heer:

I downloaded the Bose Connect app and read its privacy policy and terms and conditions. While both explain that the app uses analytics software, nowhere in either document does it say that it will transmit listening habits.


I downloaded the app on android and listened to a few songs on Spotify to find out what information was being sent.

While the app is running, the app sends a HTTPS request every time the track information changes or the volume changes. When the track information changes it sends the artist, album and song name. When you change the volume it sends the new volume level.

Every request includes standard meta-data such as

  • An _anonymous-id_
  • Device serial number
  • Information about whether wifi or cellular are connected and carrier name
  • Device name, model and manufacturer


For those that missed it, a representative from one of the other companies named in the suit helpfully dropped in to provide additional context on their company’s part in this. It even had a super positive “happy to answer … questions” attitude. It was deleted in a few minutes as they realized how poorly that was going to turn out.


In this particular case, people are upset because the hardware is not completely functional without the app - so people can’t just not use it or “opt out” without losing part of what they just paid a fair amount of money for. No one would use the app except for that functionality, so collecting information on “app use” when the use of the app is a manufactured scenario seems quite unfair for a high-end product.

The app is here.

Naming Swift Extensions

David Owens II:

There’s a lot of talk about how extensions are used for code organization. This is even one of the primary defenses for some of the Swift proposals. However, it’s missing a key component of organization: categorization.

If you remember when dinosaurs roamed the Earth, they wrote code to maneuver their space ships with a language that must have been from aliens: Objective-C.

If you wanted to extend a type and provide yourself some new goodies, you would do so like this:

@implementation Raptor (BirdOfPrey)
// new cool stuff here

In Swift, however, it’s not as clear what we should do.

There are several different options, none of them ideal. With Objective-C, you would actually see @implementation Raptor (BirdOfPrey) in the Document Items pop-up menu in Xcode. As far as I can tell, there’s no way to get the Swift type name and category name into a single menu item like that. I have been using:

extension Raptor { // MARK: BirdOfPrey
    // new cool stuff here

To me, this adds the least noise while also making the category name stand out a bit in the source. BirdOfPrey will also show up in the menu, indented under Raptor.

Previously: Swift Type Aliases.

Wednesday, April 19, 2017 [Tweets] [Favorites]

How Google Eats a Business Whole

Adrianne Jeffries (via Danny Sullivan):

In 2014, Warner got an email from Google asking if he would be interested in giving the company access to his data in order to scrape it for Knowledge Graph, for free.


“I didn’t understand the benefit to us,” he said. “It’s a big ask. Like, ‘hey, let us tap into the most valuable thing that you have, that has taken years to create and we’ve spent literally millions of dollars, and just give it to us for free so we can display it.’ At the end of it, we just said ‘look, we’re not comfortable with this.’”

“But then they went ahead and took the data anyway.”

John Gruber:

Now that Warner has had to lay off half his staff, the data is surely going to suffer.

Rumors of the 2017 iMac and iMac Pro

Tim Hardwick:

Apple’s new range of iMacs will launch in the second half of 2017 and will include a “server-grade” model to cater for the high end creative professional market, according to Taiwan-based supply chain sources.

Apple has already confirmed it is working on new iMac models for release later this year, but today’s report offers another hint at what could be in store for creative pros and puts a more specific timeframe on those plans. According to the report, production of two new iMacs is said to begin next month, with a view to launching the consumer desktops between August and October and a “server-grade model” at the tail end of 2017.

We’re not out of the woods yet. Given that Apple was planning a more powerful iMac before it committed to updating the Mac Pro, I would have expected the iMac Pro to be farther along. And the regular iMac is on track for about two years between updates, the longest interval on MacRumors’ guide. I guess that’s the one I’ll wait for because a 4-core Xeon E3 would likely be much more expensive than an i7, for little benefit. The current i7 model (27-inch, 4 GHz, 32 GB of RAM, 1 TB SSD—no 2 TB option) is already $3,789 with a VESA mount. I don’t even really want the 5K display, but the 4K model tops out at the 3.3 GHz processor, 16 GB of RAM, and 512 GB SSD. I already have a display, and if I’m going to be limited to one drive, anyway, why not a Mac mini? Because it’s limited to a 3 GHz dual-core i7 and 16 GB of RAM ($1,999). There just don’t seem to be any good options right now to improve my MacBook Pro’s processor and RAM. Hopefully before fall.

Google Maps Gains New Timeline Feature

Google (via MacRumors):

What was the name of that antique store I popped into the other day? Where was that coffee shop we discovered on our last vacation? Did I drop off the dry cleaning on Tuesday or Wednesday? Answering questions like these used to take some guesswork (and a great memory). But with Your Timeline on Google Maps, Android and desktop users could quickly revisit the things they’ve done and places they’ve been. Starting today, Google Maps users on iOS can join in on the fun and see a daily snapshot of their life as well.


Sometimes you need a reminder to stop and smell the roses. So you can now receive monthly emails summarizing the cities, countries, and places you’ve visited––all in one place.

This sounds really cool.

AirPods Shipping Delay

John Gruber:

But if you order them today, they’re still on a 6-week shipping delay. They’re either unexpectedly popular (like last year’s iPhone SE) or unexpectedly difficult to manufacture (or both).

I’m not sure what to make of this. They were originally introduced last September, supposed to ship in October, and actually shipped in December. They continue to work really well for me, except for Siri, which I turned off. Based on my personal experience, I would expect them to be a hit, except that I don’t hear people offline talking about them and have only ever seen one pair in the wild.

Tuesday, April 18, 2017 [Tweets] [Favorites]

In Praise of Flickr

Matt Haughey:

Flickr represents one of the very best of things in the history of the internet. It was the first popular way to share photos in a social way instead of photos lingering in private accounts online and in the real world in shoeboxes under beds. It brought millions together and helped kick off first the digital SLR revolution, then it was eclipsed by the mobile photography revolution. Flickr—despite being a big corporate entity—embraced open licensing and took on the ambitious goal of being a mirror and gallery for oodles of museums around the globe.

Countless waves of social apps have eclipsed Flickr itself, and even though I don’t really post there much anymore or browse my friend lists (mostly because they’ve all gone inactive, like me), about once or twice a month I drop into the Flickr Explore page to gaze at what I would describe as an entire year’s worth of epic shots from National Geographic, generated each day, automatically by algorithms.

Via Tim Carmody:

It is bizarre to think now that Flickr was only active for about a year before it was acquired by Yahoo. For those of us who were on the site then, that year felt like everything.

Syntactic Diabetes

Vincent Esche:

Swift makes use of this so-called syntactic sugar to make working with it more convenient and to allow for progressive disclosure[…]


While syntactic sugar aims to make it easier to write good code, syntactic salt aims to make it harder to write bad code.


Syntactic saccharin refers to syntactic sugar that, while having good intentions, fails to do its thing, possibly making things even worse than without it.

The Great iPhone Naming Opportunity of 2017

Ken Segall:

I’ve never understood Apple’s motivation for sticking to the S path, year after every-other-year. The most positive spin I can put on it is that it feels compelled to tell the “truth” about the phone’s form factor.


Since phone buyers today have distinctly different likes and needs, I have no problem with multiple models. Four models of phones isn’t complexity, it’s simple choice.


If different style iPhones are destined to co-exist, wouldn’t it be nice if the family felt like a family? Wouldn’t it be great if each name indicated the phone’s reason for being, and reassured buyers that it contained Apple’s latest technology?

Previously: Switching to an iPhone SE.

Avoiding Objective-C Class Name Collisions

Pen & Paper Software (Hacker News):

But checking every name could get tedious. How about we just look at every prefix-less class name that Apple has used?


If we were to use any of those classes, the compiler and linker would not complain. But if you used AppleSpell in a video game to represent the spell an apple casts on your player, and you override some important methods like init to do something relevant to your own game, you might start seeing very strange behavior!


Apple may roll out updates to frameworks between OS updates, which I believe has happened before. Ultimately the best solution is to test your app regularly and pay attention to your logs.

I wonder why Apple doesn’t have an internal tool to prevent shipping unprefixed classes.

Update (2017-04-20): See also: Apple’s naming guidelines (via Rosyna Keller).

Charge Your iPhone Without the Chime or Buzz

Keir Thomas:

The quick and simple solution if you want silent charging? Swipe left on the lock screen to activate the camera and then plug in the Lighting cable. No chime. No buzz. Then press the Home button to return back to the lock screen.

Monday, April 17, 2017 [Tweets] [Favorites]

Flume Leaves the Mac App Store

Rafif Yalda (tweet, via Jeff Johnson):

Just minutes before submitting the update to Apple, we received notification from Apple that after re-reviewing our app by seemingly random selection, we had one week to make significant changes or be removed from the App Store.


Flume’s operation is indeed not explicitly authorized by Instagram (said third-party). We make that clear in our Terms of Use. The reference to “third-party social media alterations” is a vague statement however, and the only issue they chose to highlight was Flume’s uploading capabilities.


Unfortunately, as mentioned above, Apple chose to not reply, leaving us with very little recourse.


The inconsistency of the decision strikes us the most however - 39 Instagram related apps still remain live on the App Store, 13 of which provide upload features[…]

Update (2017-04-17): Flume:

Just a quick update - we decided to try once more to get an answer about the inconsistencies and this time, they did reply (<24h ago).

Didn’t really answer our questions entirely, though this was a follow up to the new update which was rejected.

Classic Mac Emulation in the Browser

Internet Archive (via Jason Scott, Hacker News):

After offering in-browser emulation of console games, arcade machines, and a range of other home computers, the Internet Archive can now emulate the early models of the Apple Macintosh, the black-and-white, mouse driven computer that radically shifted the future of home computing in 1984.


The first set of emulated Macintosh software is located in this collection. This is a curated presentation of applications, games, and operating systems from 1984-1989.

James Friend:

This is great because it provides the same level of accessibility and convenience to emulation as you’d expect of playing a media file or viewing a document.

When you start up the emulated computer on these pages of the Internet Archive, you’re running the PCE emulator, originally a piece of software intended to run natively on desktop operating systems, which has been adapted and recompiled to run in your web browser. As the person who did the initial work of porting this emulator, I thought it would be worthwhile to provide a run-down of the tools and gross hacks which made this possible.


I realised that in classic Mac OS, the mouse position is stored in a few fixed absolute locations in the computer’s memory, called ‘low memory globals’. Basically, I directly write the mouse position value into the emulated computer’s memory.


It’s pretty strange to see adding more and more stuff that’s under copyright without explicit permission.

Update (2017-04-19): See also: John Gruber.

Swift ABI Stability Dashboard

Apple (via Slava Pestov):

One of the top priorities for Swift right now is compatibility across future Swift versions. One major component of this is ABI stability, which enables binary compatibility between applications and libraries compiled with different versions of Swift. The Swift ABI Manifesto describes the engineering and design tasks that need to be complete before declaring the ABI stable. The following dashboard tracks the progress of these tasks.

Previously: Deferring ABI Stability From Swift 4, Swift ABI Stability Manifesto.

Robbing a Bank by DNS

Andy Greenberg (via Nick Heer):

Kaspersky believes the attackers compromised the bank’s account at That’s the domain registration service of, the registrar for sites ending in the Brazilian .br top-level domain, which they say also managed the DNS for the bank. With that access, the researchers believe, the attackers were able to change the registration simultaneously for all of the bank’s domains, redirecting them to servers the attackers had set up on Google’s Cloud Platform.

With that domain hijacking in place, anyone visiting the bank’s website URLs were redirected to lookalike sites. And those sites even had valid HTTPS certificates issued in the name of the bank, so that visitors’ browsers would show a green lock and the bank’s name, just as they would with the real sites. Kaspersky found that the certificates had been issued six months earlier by Let’s Encrypt, the non-profit certificate authority that’s made obtaining an HTTPS certificate easier in the hopes of increasing HTTPS adoption.

Ad-Blocker Using Computer Vision

Jason Koebler (via Hacker News):

A team of Princeton and Stanford University researchers has fundamentally reinvented how ad-blocking works, in an attempt to put an end to the advertising versus ad-blocking arms race. The ad blocker they’ve created is lightweight, evaded anti ad-blocking scripts on 50 out of the 50 websites it was tested on, and can block Facebook ads that were previously unblockable.


First, it looks at the struggle between advertising and ad blockers as fundamentally a security problem that can be fought in much the same way antivirus programs attempt to block malware, using techniques borrowed from rootkits and built-in web browser customizability to stealthily block ads without being detected. Second, the team notes that there are regulations and laws on the books that give a fundamental advantage to consumers that cannot be easily changed, opening the door to a long-term ad-blocking solution.


The article puts a significant emphasis on the idea that bulletproof ad-blocking technology, assuming that’s what this turns out to be in practice, will work long-term because of legal restrictions imposed by the FTC. If Google, Facebook, or other multi-billion dollar entities detect an existential threat arising from this or any other technology, rest assured that the laws will change as quickly as is necessary to keep them happy.


Right now all that people on both sides have to know is human psychology. In that future they’ll have to understand the potentially far more varied world of possible AIs - and if that isn’t enough the complex interactions between them and also between the AIs and the humans.

Switching to an iPhone SE

The volume and power buttons on my iPhone 6s stopped working, so for various reasons I decided to try replacing it with an iPhone SE. It’s been great.

The iPhone SE is much more comfortable in the hand, and especially in the pocket. Sometimes when walking or sitting I find myself checking with my finger to make sure that it’s actually in my pocket—that I didn’t leave it somewhere. Whereas, I would always feel the need to remove the iPhone 6s before sitting for an extended time.

Part of the improvement is because it’s smaller and lighter itself. But the SE’s less slippery and sharp shape means that I can use it without a case. This brings the weight down from 6.6 oz. to 4.0 oz., which feels like a big difference. The iPhone 6s’s weight never bothered me, but now that it’s gone I prefer it that way. Plus, there’s no dust stuck between the edges of the screen and the case.

The other big difference is that it’s much easier to reach the upper corners of the 4-inch screen one-handed. Again, I got used to the iPhone 6s, but I didn’t realize how much shimmying I was doing until I no longer needed to. I thought I would miss the larger screen, but I don’t. Perhaps this is because a few months ago I started using a Kindle again, so I’m no longer doing extended reading on my phone. At first, I noticed a big drop in typing accuracy with the smaller screen, but now that I’m used to it again I’m not sure there’s any difference.

The final area where the iPhone SE feels better is the buttons. The layout with the power button on the top just seems more natural and less confusing, and the volume buttons feel better and are easier to find by touch. There’s also no camera bump, although that’s less relevant since my iPhone 6s would lie flat in its case.

What I thought I would miss the most from the iPhone 6s were the better Touch ID sensor (which seems both faster and more accurate) and 3D Touch (for text editing). In fact, I miss these but am getting used to their absence. The main regression seems to be that (like my other iPhones prior to the iPhone 6s), the screen can be hard to see with polarized sunglasses on. I mostly notice this when taking photos. Depending on the position of the sun, sometimes it seems like all I can do is frame the shot, whereas with the iPhone 6s I could more easily see the exposure and facial expressions on the screen. With more high-contrast images, such as when driving with Google Maps, sunglasses don’t cause any trouble, though they do seem to shift the colors more than with the iPhone 6s.

The iPhone SE’s front camera is much worse, and the display quality and speaker volume seem slightly worse, but these don’t bother me greatly. I rarely use the front camera. Also, the older shape makes me think of it as an iPhone 5s with much a improved processor, camera, and storage, rather than as a downgraded member of the iPhone 6 family. The final difference that I notice is that, like the iPhone 5s, the iPhone SE sounds like there’s something loose inside when you shake it.

There seems to be plenty of demand for the iPhone SE, so my hope is that in the future Apple will treat it as more than a budget model. I’d like to see it updated yearly with the latest processor and camera. There’s no need for a new case design. The current shape and finish still look and feel great.

Update (2017-04-18): See also: Kirk McElhearn, MacDailyNews.

Friday, April 14, 2017 [Tweets] [Favorites]

Theft and Loss Recovery for iOS Users

Fraser Speirs:

Fortunately, the bag was stolen on the final day of the trip and not the first, otherwise we would have had serious problems throughout the holiday. This is another post for another time, but it’s kind of shocking how crippling the loss of a phone is.


I recently changed my Apple ID password to an unmemorable password (a mistake, as we shall see later), so the only password I have memorised is the one to unlock 1Password.


So, second task in this security audit: register a few other Trusted Numbers with Apple, and make sure that at least one of them is someone that you’re not travelling with. Additionally, make sure you know how to get in touch with that person without access to any devices or iMessage or any social media.


So, third to-do item in this process: print and carry a copy of my 1Password Recovery Kit [with your Secret Key but not your password]. It’s probably also wise to create a second copy and leave it with someone you trust and can contact, just in case you are stripped of literally everything.

I would be wary of accessing 1Password from a public computer that might be logging your keystrokes.

I don’t understand why his top priority was disabling Apple Pay. How would the thief use it without Touch ID?

Update (2017-04-14): McCloud:

ApplePay has a “Pay With Password” option you can use. Hidden until you try to use TouchID and fail at least once.

macOS 10.12.4 Locks Console Log Away From Normal Users

Howard Oakley:

Apple has not apparently documented this anywhere, but it has changed access to Sierra’s new log with the 10.12.4 update. When logged in as a normal – as opposed to admin – user, the entire contents of the logs are now inaccessible.


Log entries are still made while running with a normal user account logged in, but log show, Console, and Consolation are simply unable to find them. Consequently the only way to examine the log for a period logged in as a normal user is to log in as an admin user again and then examine previous log entries, something which Console cannot do unaided, making it even more unfit for purpose.


Although not common, apps and macOS can have bugs which only appear when running in normal user mode. This change therefore makes it much harder to use Console to examine such bugs, and much harder to investigate problems which are confined to normal user mode.

Update (2017-04-15): Joseph Chilcote:

Even more strange, log stream still works on standard accounts.

Using Named iOS Font Styles With Custom Fonts

Curt Clifton:

Trying to change the family on the font descriptor gets us a descriptor that includes both the new family and the old named font style […] Creating a font from the confused descriptor takes us right back where we started […] Our Helvetica is nowhere to be found.


What if we had a way to maintain the style information even when switching to a custom font? With that available, we could look up the correct font size even when the user changes their preferred content size.

Here’s an extension on UIFont that does just that. The key trick is using associated objects to piggyback style information on the font.


In awakeFromNib the fonts will start as those set in the nib or storyboard but will end as our custom fonts. In traitCollectionDidChange the fonts will start as our custom ones and will end as our custom ones at the new preferred content size.

Sip Leaves the Mac App Store

Olá Brothers Team (via Dan Counsell):

The App Store is a great platform for distributing software, but right now we need more control and freedom to build what we think is best for our users. Also, there are restrictions imposed by Mac App Store guidelines such as sandboxing that limit some of the features we want to bring to Sip.

In general, we believe that independently distributing Sip will allow us to deliver a better application and support to our users.

Debugging Swift Code in an Embedded Framework

Daniel Jalkut:

After hours of trying to unravel this mystery, I discovered the root cause: the framework that is embedded in my app does not, in fact, contain any headers. They were stripped by Xcode when it copied the framework into the app.


In the mean time, you can work around the problem by setting the REMOVE_HEADERS_FROM_EMBEDDED_BUNDLES build setting to NO in the app that embeds the framework[…]

Previously: Xcode, Frameworks, and Embedded Frameworks.

Wednesday, April 12, 2017 [Tweets] [Favorites]

Apple Icons and Hardware Avoid Tangency

Mark Stanton:

If you haven’t been immersed in iOS interface design, you might look at Apple’s icons and think that they’re just a rounded square or a ‘roundrect’. If you’ve been designing icons, you know that they’re something different and may have heard the word squircle used (mathematical intermediate of a square and a circle). And if you’re an Industrial Designer, you recognize this as a core signature of their hardware products.


A ‘secret’ of Apple’s physical products is that they avoid tangency (where a radius meets a line at a single point) and craft their surfaces with what’s called curvature continuity.


On the right you see what curvature continuity looks like. The curvature comb transition is a curve itself, starting from zero curvature. There’s no sudden break in curvature and, as a result, the highlight is smoother. This difference in curvature is harder to spot in an icon, but the important thing is that now the icons and the hardware are part of the same design language.

Automatic Memory Leak Detection on iOS


Automating this process would allow us to find memory leaks faster without much developer involvement. To address that issue, we have built a suite of tools that allow us to automate the process and fix a number of problems in our own codebase. Today, we are excited to announce that we are releasing these tools: FBRetainCycleDetector, FBAllocationTracker, and FBMemoryProfiler.


Fortunately, Objective-C offers a powerful, introspective, runtime library that can give us enough data to dig into the graph.


If we know that the reference we are dealing with is a block, we can cast it on a fake structure that imitates a block. After casting the block to a C-struct we know where objects retained by the block are kept. We don’t know, unfortunately, if those references are strong or weak.

To do that we are using a blackbox technique. We create an object that pretends to be a block we want to investigate. Because we know the block’s interface, we know where to look for references this block holds. In place of those references our fake object will have “release detectors.” Release detectors are small objects that are observing release messages sent to them.

Analysis of the Facebook iOS App Bundle

Alexandre Colucci:

The version 87.0 is now available: 253 MB on the same iPad Air 2 with only 64-bit code. In just 6 months, the size grew by 88 MB!


One of the reason the app size grew is due to multiple copies of the same resources inside the app.


When analyzing the version 66.0 I completely missed some amusing Objective-C interfaces, protocols and methods:

@protocol FBDeprecatedAppModule_DO_NOT_USE_OR_YOU_WILL_BE_FIRED
@protocol FBLoginFacilitatingAppModule <fbdeprecatedappmodule_do_not_use_or_you_will_be_fired>
@interface FBTimelineModule : FBNativeAppModule_DO_NOT_USE_OR_YOU_WILL_BE_FIRED
@interface FBNotificationsModule : FBNativeAppModule_DO_NOT_USE_OR_YOU_WILL_BE_FIRED
@interface FBProductionLockoutModule : FBNativeAppModule_DO_NOT_USE_OR_YOU_WILL_BE_FIRED
@interface FBSearchModule : FBNativeAppModule_DO_NOT_USE_OR_YOU_WILL_BE_FIRED

John Gruber:

It’s the most popular third-party app in the world, and it’s structured like a pile of garbage.

Previously: The Facebook App’s 18,000 Classes.

Update (2017-04-15): Lawrence Velázquez:

Happened across an old Facebook .ipa on a SuperDuper clone. The years have not been kind.

Update (2017-04-16): Alexandre Colucci:

The version 88.0 of the has now been released[…] As you can see from the smaller download size, the duplicated resources have been removed.

Verizon to Drop E-mail Service


We have decided to close down our email business. We will let you know when it’s time to choose how to handle your email account going forward via email. In addition, you’ll see a message from us when you log into your email from indicating “Email service notice”. Click on “Keep email address” or “Use any other email provider” to complete the setup.


For customers choosing to keep their email address, we are teaming up with AOL to provide our customers with AOL Mail, an enhanced email experience.

Via Josh Centers:

Verizon purchased AOL in 2015 in what was thought to be strictly a content play, but now it looks as though Verizon had some other ideas in mind as well (see “Verizon to Buy AOL,” 12 May 2015). The upside if this approach is that Verizon will transfer your email messages, contacts, and calendars automatically.


I recommend transferring your existing email address to AOL Mail, even if you don’t plan to use it. That way, even if you switch providers, you can still have AOL Mail forward any stray messages to your new address.

Scott Hoenig:

It seems like if you use the Mac Mail program for your mail client, or any other mail client, the SMTP/POP settings will continue to work. You have to tell them you want to keep your address, but that’s it. The only change would be if you want web mail access. So Verizon is keeping its mail servers--they’re just dropping support for their web mail application.

Google’s Search Quality Crisis

Danny Sullivan:

What’s happened to Google search is on par with the Apple Maps fiasco or Samsung’s exploding Galaxy Note7 phones.


Google’s results might be as good as ever. They might even be better than ever. But if the public perception is that Google has a search quality problem, that wins, because we don’t have any hard figures about relevancy.


If you want to go further with me examining the issues in this particular search, see some of my commentary in this Twitter moment. But the facts don’t matter, in terms of Google’s search quality reputation. The Google outrage machine is stoked.


We should continue to hold Google and search engines to a high standard and highlight where things clearly go wrong. But we should also understand that perfection isn’t going to be possible. That with imperfect search engines, we need to employ more human critical thinking skills alongside the searches we do — and that we teach those to generations to come.

Nick Heer:

I agree; I think users should have always been viewing search results with much more scrutiny than they do. But many people are lulled into believing that Google’s representation of the truth is the correct one. Their rich snippet answer box made this already-pervasive belief far worse by highlighting a single piece of a webpage as, seemingly, The Answer, even for questions where The Answer doesn’t exist.

Previously: Google’s Algorithm Is Lying to You About Onions and Blaming Me for It.

Tuesday, April 11, 2017 [Tweets] [Favorites]

What I Want in the New Mac Pro

Justin Williams:

Make it look like the Cheese Grater if you want, or spend time designing something more modern and attractive. If I get a say in size, I’d like something along the size of the Power Mac G4. The Cheese Grater design was nice, but it was also a chore to lug around the few times I needed to move or rearrange my desk.


What I need more than faster CPUs is more cores. The trash can Mac Pro got this right. My iMac maxes out at 4-cores. I’m going to want at least 8 for a Mac Pro.


I don’t need multiple GPUs personally. I’m just a software developer who doesn’t do any game work. I just want to ensure that I have the best GPU I can get when I buy this so that I can ensure that macOS performs as well as it can for a few years. No stuttering when I toggle Mission Control!

Stephen Hackett:

Even if a new Mac Pro had everything I’ve listed and more, I still bet the machine could be smaller than the Cheese Graters. A modern Mac Pro should be able to live on or under a desk. The Cheese Graters were too big and heavy to go anywhere but the floor, while the 2013 Mac Pro begged to be behind a display somewhere. Flexibility here is key. If the new Apple display has a built-in cable, it should be long enough to reach the floor.

Lloyd Chambers:

Dual CPU support still matters for many tasks, particularly server loads. Given the stalled-all performance of single CPU cores today and the continuing instability of GPU-based software, dual CPUs would be a welcome, and are needed for server type workloads.


Support for GPU of choice, and more than one GPU.


At least eight Thunderbolt 3 ports, on 4 busses. And not crammed tightly together.

Support for maximum speed PCIe cards, with at least two available slots.


Don’t make me dangle dongles: 4 USB 3.1 high speed ports and SD card reader slot.

I would like:

Previously: The Mac Pro Lives.

Update (2017-04-15): Jordan Kahn (Hacker News):

To find out what Hackintoshers want in the new machine, and maybe what would help bring back some pros that Apple has lost in recent years, we’ve talked to the moderators at one of our favourite Hacktinosh communities,

We also got some input from our own resident Hackintosh enthusiast (and YouTuber) Jeff Benjamin, and some other pros and gamers that have made the jump from Apple’s pro machines to a Hackintosh.

Update (2017-04-16): Marco Arment (tweet, Hacker News):

A lot went wrong with the 2013 Mac Pro. […] It was designed to accommodate exactly two GPUs with relatively low heat output each, but CPU-heavy users didn’t need the second GPU, and GPU-heavy users needed hotter-running GPUs (and often just one really hot one). So the only configuration it was offered in was either overspecced (and overpriced) or underpowered for most Mac Pro customers.


Overly aggressive minimalism fails most spectacularly when there’s no clear consensus among customers on what can be removed. And if you ask Mac Pro customers what they need and want, there’s very little overlap[…]


The Mac Pro must be the catch-all at the high end: anytime someone says the iMac or MacBook Pro isn’t something enough for them, the solution should be the Mac Pro.

Update (2017-04-17): Daniel Pasco:

I realized that the corner that Apple has painted us into is just another “sweet solution” (similar to Jobs proposal that we develop web apps for iPhone instead of native apps).


This eight year old machine is a beast. It is everything that I have been missing. It embodies the zenith of industrial hardware design. It is literally bristling with ports, has four internal drive bays, and can support TWO of the most cutting edge graphics cards available on the market today.


Realize that the dream that professionals will just accept an iMac or the trash can Mac Pro is your dream, not theirs.

Update (2017-04-20): Kirk McElhearn:

While I don’t need “pro” features, I do want a computer that is more flexible, more upgradeable. The only thing I would demand, however, is silence. When I had the cheese grater Mac Pro, it was quieter than previous Macs, but still a bit noisy.

Lightroom 6.10


The goal of this release is to provide additional camera raw support, lens profile support and address bugs that were introduced in previous releases of Lightroom.

The direct download link is here.

This version seems to finally fix the auto-import bug that was introduced in 6.8.

Update (2017-04-18): This version seems to be much faster at bulk-moving photos, updating the display after a batch rather than after moving each photo.

Twitter Allegedly Deleting Negative Tweets Criticizing United Airlines

Mix (Hacker News):

Numerous users are reporting their negative tweets criticizing United Airlines’ abusive behavior have been vanishing into of thin air – and nobody seems to know why.


While Twitter has previously hidden tweets containing offensive messages from showing up in other people’s timelines as part of its efforts to curb abuse on its platform, deleting tweets against users’ wills goes firmly against the company’s rules.

This sort of moderation is more commonly known as ‘ghost-deleting.’ The term is a little misleading since such tweets are technically not deleted, but merely prevented from appearing in users’ feeds. This measure, however, is usually reserved strictly for offensive tweets – and this is hardly the case here.

There have been many stories about Twitter doing things like this, but it’s hard for those of us outside the company to know what’s really going on. We can’t see Twitter’s databases, only guess as what they might contain by viewing them through different accounts and clients and by watching those views change over time.

Some reported incidents may be misunderstandings or attention-seeking, but there seems to be enough smoke that there’s some sort of fire. Is Twitter censoring for business or political reasons? Are people or bots falsely reporting the tweets as abusive? Are there bugs in Twitter’s anti-harassment algorithms? What kind of evidence could one gather to even investigate this? At the most basic level, if one of my tweets really were censored, I don’t there’s a way I could prove that to you.

It’s all complicated by the fact that the alleged manipulations are more subtle than outright deletions. First, there’s the ghosting and shadow-banning. I have also seen certain hashtags that were trending excluded from auto-completion, which I guess is a way of stopping them from trending without actually manipulating the trending list. It has been alleged that Twitter does that, too, though. When the United story was blowing up, it sure seemed like #United and #UnitedAirlines were popular, but they didn’t show up in the Trends list for me, while the seemingly less popular #NewUnitedAirlinesMottos did. But who’s to say which one was actually more popular or whether some algorithm thought one was more tailored to my interests?

The Walt Mossberg Brand

Walt Mossberg:

I stepped into the Detroit Bureau of the Wall Street Journal and started on what would be a long, varied, rewarding career. I was 23 years old, and the year was 1970. That’s not a typo.

So it seems fitting to me that I’ll be retiring this coming June, almost exactly 47 years later.


And, in the best professional decision of my life, I converted myself into a tech columnist in 1991. As a result, I got to bear witness to a historic parade of exciting, revolutionary innovation — from slow, clumsy ancient PCs to sleek, speedy smartphones; from CompuServe and early AOL to the mobile web, apps and social media.

Ben Thompson:

Mossberg undersells himself: a necessary prerequisite to “convert[ing him]self into a tech columnist” was inventing the very concept. That I had to make such an observation — was there really a time in recent history in which major publications did not have someone focused on technology? — is itself a testament to Mossberg’s vision.


Mossberg was Steve Jobs’ favorite columnist — and Mossberg a frequent admirer of Apple’s products — because both had the same vision: bringing these geeky, impenetrable, and rather ugly boxes of wires and chips and disks called personal computers to normal people, convinced said computers could, if only made accessible, fundamentally transform a user’s life.

John Gruber:

Before Mossberg, tech writing was for tech enthusiasts. Mossberg is a tech enthusiast, but what he did at The Wall Street Journal is bring enthusiasm for tech — particularly the personal computer industry — to a truly mainstream audience. His influence — especially during his years at the Journal — is impossible to overstate.

Friday, April 7, 2017 [Tweets] [Favorites]

curl Is C

Daniel Stenberg (via Peter Steinberger, Hacker News):

No other programming language is as widespread and easily available for everything. This has made curl one of the most portable projects out there and is part of the explanation for curl’s success.


Does writing safe code in C require more carefulness and more “tricks” than writing the same code in a more modern language better designed to be “safe” ? Yes it does. But we’ve done most of that job already and maintaining that level isn’t as hard or troublesome.


The simple fact is that most of our past vulnerabilities happened because of logical mistakes in the code. Logical mistakes that aren’t really language bound and they would not be fixed simply by changing language.


So I looked at


And I’ll stop here, so far 7 out of 11 vulnerabilities would probably have been avoided with a safer language. Looks like the vast majority of these issues wouldn’t have been possible in safe Rust.

Update (2017-04-10): The Changelog (via Jim Rea):

Daniel Stenberg joined the show to talk about curl and libcurl and how he has spent at least 2 hours every day for the past 17 years working on and maintaining curl. That’s over 13k hours! We covered the origins of curl, how he chooses projects to work on, why he has remained so dedicated to curl all these years, the various version control systems curl has used, licensing, and more.

Use macOS VMs in VMware Fusion in Retina Mode

Rob Griffiths:

Here’s what you need to do to use your VMware Fusion OS X/macOS virtual machines in retina mode:

  1. Enable full resolution mode, as shown in the image above.
  2. Open Terminal (in the macOS virtual machine), paste this command, then press Return:
    sudo defaults write /Library/Preferences/ DisplayResolutionEnabled -bool true
  3. Logout and login from the virtual machine.
  4. Resize the macOS virtual machine (by resizing the window) to your desired dimensions.
  5. Open System Preferences > Displays, click on Scaled, then click on the one shown HiDPI mode.

TextExpander by Subscription One Year Later

Michael E. Cohen:

According to Smile, about a third of the TextExpander customer base has moved to the subscription service, which gives Smile the income to pay for continued app updates and to keep the lights on in the server room. And the promised frequent app updates have come: Smile delivered 17 updates to the macOS app last year compared to only 7 the year before.


More interesting, and boding well for TextExpander’s future, is that the TextExpander service provides the management capabilities to build snippet-sharing teams in businesses and organizations. Such teams share common snippet libraries, turning the TextExpander service into something of a low-rent content management system through which, for example, all the members of a customer support team can have access to support documents and links literally at their fingertips. Smile reports that a typical team is about 12 people, but it hosts teams that have nearly 1000 members. The enterprise attractiveness of Smile’s TextExpander service was further enhanced by the successful introduction of TextExpander for Windows.

The version history is here. Last year, I wrote:

The decision to keep selling TextExpander 5 strikes me as strange. On the surface, it sounds like what people wanted: the old product, with the old syncing, at the old price. But what is the future of the standalone version? There’s no announced commitment to add features, and it has the same name and a lower version number than the flagship product. I think the logical assumption has to be that TextExpander 5 is going to be stuck in maintenance mode.

In fact, there have been no updates at all to TextExpander 5.

I ended up switching to LaunchBar and Dash, which I was already using for other purposes, and this has worked out well. They are definitely less powerful, but I was only using the basic features, and I’ve gained easier snippet editing via BBEdit, version control and syncing via Git, and I’ve removed a Dropbox dependency (in addition to needing one fewer app).

I’m still using the old TextExpander on iOS, mostly to enter timestamps in OmniFocus.

Previously: TextExpander 6 and, TextExpander Adjustments.

Clips 1.0

Apple’s Clips app for iOS is now available:

Clips is a new app for making fun videos to share with friends, family, and the world. With a few taps you can create and send a video message or tell a quick story with animated text, graphics and emoji, music, and more.

John Gruber:

Got to play with Clips yesterday. Love it. It’s like iMovie and Keynote had a baby and the kid got all the best genes.

Nick Heer:

It’s not that the app isn’t good at making short, fun videos; in fact, it’s great at doing that. But it seems like it’s trying to shoehorn an Instagram or Snapchat style of app into Apple’s typical UI conventions. As Ulanoff says, it seems less like a competitor to those apps than it does a trimmed-down version of iMovie. Maybe the market for something like that is large, but I’m not sold on it yet.


It’s a small thing, but the icon is also disappointing. It’s supposed to be a fun, creative, silly app, so why does the icon make it look like it will be for corporate videoconferencing?

Michael Rockwell:

I haven’t spent too much time using the application, but I’m very impressed with what I’ve seen so far.

Update (2017-04-07): Manton Reece:

Apple’s Clips is great. One of the best iOS apps they’ve made in years. It’s a useful quick video editor even if you ignore the fun effects.

Update (2017-04-11): See also: The Talk Show.

Update (2017-04-16): Eddie Smith:

Renie Ritchie apparently wrote a treatise on Apple’s new Clips app, but don’t let that intimidate you. Clips is ridiculously easy to use, and most of its features are discoverable by just playing with it.

The real brilliance of Clips is that you don’t even feel like you’re doing movie editing, but that’s exactly what you’re doing.

Thursday, April 6, 2017 [Tweets] [Favorites]

Putting Core Data on the Map

Tim Ekl:

The Core Data setup was fairly straightforward: I wanted Point to store latitude, longitude, and title, so I added two numeric and one string attribute to the Point entity. […] Right off the bat, it seemed like the easiest thing to do was to make the Point instances themselves conform to MKAnnotation. They already had latitude, longitude, and title; all that was left was to merge the former into a coordinate property.


In testing, though, this soured quickly: a critical operation in everyday use was deleting a Point from the database. However, telling the map view to remove a Point annotation wasn’t quite as prompt as it should have been. Annotations would remain on the map for a few seconds, or in rare cases much longer.


In the “Discussion” section of the docs for MKAnnotation.coordinate, there exists this critical qualifier […] As soon as I noticed this, everything clicked: the map was likely using KVO to watch for changes in an annotation’s coordinate, in order to update its location.

OmniOutliner 5

The Omni Group:

Add a password to your documents to secure them with AES-256 encryption.

Keyboard Shortcuts — Easily customize keyboard shortcuts to your own liking within the app.


Smarter Paste — To avoid bringing in extra styles when copying data from outside sources, Paste now removes styles but retain links and images. Use the new Paste with Original Style to retain the styles from your source content.

While .ooutline files are zipped by default, package files are still available for scenarios where that makes more sense, like for version control. Note— The previous .oo3 format can still be opened and edited but features requiring the new format will be disabled.

Inspector Sidebar — The inspectors are now contained in a sidebar, allowing you to show or hide them on a per-document basis.

OmniOutliner is one of my favorite apps, and this looks like a great update. I once used it for even more things: task management, bug tracking, time tracking, project planning, recipes, journals, miscellaneous flat lists, etc. Over time, these have migrated to OmniFocus, FogBugz, and RTF/text files in EagleFiler/BBEdit. OmniOutliner is still my first choice for hierarchical or tabular work/notes and checklists. It also works great when preparing my taxes as a middle layer between MoneyWell and TurboTax.

See also: John Gruber, Brent Simmons.

Previously: OmniOutliner Essentials.

Excluding Files From Spotlight and Time Machine

user495470 (via Rich Trouton):

  • Create a file named .metadata_never_index inside a folder.
  • Rename folders or files so that they end with .noindex.
  • If you only want to hide files from the GUI, move them to a system folder like ~/Library/.
  • Move the files to a folder that starts with a period like ~/.fontconfig/. It doesn't remove them from mdfind queries like mdfind 'kMDItemFSName=*' -onlyin ~/.fontconfig/ though.

The .metadata_never_index trick was new to me. Excluding temporary files, or other files that you know you won’t need to search, from Spotlight can really speed things up.

As for Time Machine, I could not find it documented, but it seems to exclude folders with the .nobackup extension. There are also APIs such as CSBackupSetItemExcluded() and NSURLIsExcludedFromBackupKey for excluding items, and you can use tmutil isexcluded to check whether a particular item is excluded.

Update (2017-04-06): Thomas:

I have another one: disable fsevents by creating a “.fseventsd/no_log” file at the root of the volume. Haven’t tested this in a while though.