Subscribe: Marco.org
http://www.marco.org/rss
Added By: Feedage Forager Feedage Grade A rated
Language: English
Tags:
app  apple  audio  battery life  battery  design  iphone  mac pro  mac  much  new  people  pro  time  today  vbr  year  years 
Rate this Feed
Rate this feedRate this feedRate this feedRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics
Preview: Marco.org

Marco.org



I’m Marco Arment, creator of Overcast, technology podcaster and writer, and coffee enthusiast.



 



Courage

Mon, 18 Sep 2017 13:41:26 EDT

Many Apple fans were amused when Phil Schiller explained the removal of the headphone jack on last year’s iPhone as “courage”. But that was nothing compared to what happened last week. For ten years, the iPhone looked like this: A rounded rectangle, bars on top and bottom, and a circle centered in the bottom bar. If you want to get fancy, put a line in the top bar, too. It’s so simple that even when children draw it, it’s instantly recognizable as an iPhone to most of the world’s population. Not just any phone — an iPhone, specifically. As an app developer and fan, I was hoping that the long-rumored edge-to-edge iPhone screen would still be a rectangle, possibly even with room for a Home button on a narrower bezel, so I wouldn’t have to change my habits (or my app’s layout): But that’s the unmistakable image of an Android phone. (Or a generic smartphone — same thing.) Apple would’ve lost what the iPhone has had since its introduction: a unique, recognizable shape that distinguishes itself from all of the other boring rectangles out there. Many are now speculating that Apple will find a way to get rid of the iPhone X’s top “notch” (officially called the “sensor housing”) as soon as they can, and that this is a temporary design meant only for a few years. But I don’t think so. Many app developers are planning to hide the notch in the UI with black bars. But Apple explicitly says not to. This is the new shape of the iPhone. As long as the notch is clearly present and of approximately these proportions, it’s unique, simple, and recognizable. It’s probably not going to significantly change for a long time, and Apple needs to make sure that the entire world recognizes it as well as we could recognize previous iPhones. That’s why Apple has made no effort to hide the notch in software, and why app developers are being told to embrace it in our designs. That’s why the HomePod software leak depicted the iPhone X like this: it’s the new basic, recognizable form of the iPhone. Apple just completely changed the fundamental shape of the most important, most successful, and most recognizable tech product that the world has ever seen. That’s courage. [...]



Removing “Send to Watch”

Thu, 10 Aug 2017 16:54:34 EDT

I’ve spent many months of development on Overcast’s Apple Watch app, especially implementing standalone “Send to Watch” playback. Unfortunately, I now need to remove the “Send to Watch” feature.

I’m sorry to the people who used it. While there weren’t many of you (about 0.1% of active users), I’ve heard from some who it meant quite a bit to.

In retrospect, “Send to Watch” wasn’t good enough to ship. I’ve paid for that in a constant stream of negative App Store reviews that have reduced the entire app’s average, but that alone wouldn’t sink the feature. Here’s what happened.

Many people had been asking for standalone playback since the first Apple Watch was released. I spent months of development on it last winter, but I simply wasn’t able to get a minimum acceptable quality level out of the limited watchOS audio APIs.

I shelved the feature until other Apple Watch podcast apps revealed a workaround that made background audio much more usable on watchOS, so I decided to use the same technique and ship the feature anyway, despite its other shortcomings. That was a mistake.

That workaround doesn’t work anymore in watchOS 4. Rewriting “Send to Watch” playback to use the only supported alternative would likely take at least another month of development and testing that I currently can’t spare, and due to its limitations, the resulting usability and experience wouldn’t be good enough for me to confidently ship.1

Therefore, I’ve decided to remove “Send to Watch” in the latest update today, a bit ahead of watchOS 4’s expected release, before anyone else gets accustomed to it.

I intend to continue supporting and updating the Watch app as a convenient, lightweight, fast remote control for iPhone playback. But it’s not possible to ship a good standalone podcast player on watchOS today, and it’ll probably take a few more years of hardware and software evolution before that changes.

There isn’t much time left before iOS 11’s release, and I need to spend the rest of the summer working on highly requested features and updates in the main app.

I’m sorry again for the loss of this feature to the people who used it. If it becomes possible in the future to do it right, I’ll do my best to bring it back.


  1. watchOS normally doesn’t let apps run continuously in the background, even if they’re playing audio, unlike iOS. The WKAudioFilePlayer API lets your app hand off a file or playlist to the system for playback, and then try to figure out what happened with it next time your app launches (to know whether the user listened to a certain time, reached the end, skipped to the next episode, etc.). Unfortunately, it has major shortcomings, bugs, and non-ideal behaviors for making a usable podcast app.

    The loophole was to declare the app as a workout-monitoring app, which let it run continuously in the background on watchOS 3 if a workout was active — or, for some reason, if it was playing audio. This let me use the much better AVAudioPlayer to build a usable podcast player on the Watch.

    In watchOS 4, that loophole no longer enables background audio playback, so any audio APIs other than WKAudioFilePlayer pause as soon as the foreground app changes or the Watch display sleeps. ↩︎




“MP3 is dead” missed the real, much better story

Mon, 15 May 2017 22:45:43 EDT

If you read the news, you may think the MP3 file format was recently officially “killed” somehow, and any remaining MP3 holdouts should all move to AAC now. These are all simple rewrites of Fraunhofer IIS’ announcement that they’re terminating the MP3 patent-licensing program. Very few people got it right. The others missed what happened last month: If the longest-running patent mentioned in the aforementioned references is taken as a measure, then the MP3 technology became patent-free in the United States on 16 April 2017 when U.S. Patent 6,009,399, held by and administered by Technicolor, expired. MP3 is no less alive now than it was last month or will be next year — the last known MP3 patents have simply expired. So while there’s a debate to be had — in a moment — about whether MP3 should still be used today, Fraunhofer’s announcement has nothing to do with that, and is simply the ending of its patent-licensing program (because the patents have all expired) and a suggestion that we move to a newer, still-patented format. Why still use MP3 when newer, better formats exist? MP3 is very old, but it’s the same age as JPEG, which has also long since been surpassed in quality by newer formats. JPEG is still ubiquitous not because Engadget forgot to declare its death, but because it’s good enough and supported everywhere, making it the most pragmatic choice most of the time.1 AAC and other newer audio codecs can produce better quality than MP3, but the difference is only significant at low bitrates. At about 128 kbps or greater, the differences between MP3 and other codecs are very unlikely to be noticed, so it isn’t meaningfully better for personal music collections. For new music, get AAC if you want, but it’s not worth spending any time replacing MP3s you already have. AAC makes a lot of sense for low- and medium-quality applications where bandwidth is extremely limited or expensive, like phone calls and music-streaming services, or as sound for video, for which it’s the most widely supported format. It may seem to make sense for podcasts, but it doesn’t. Podcasters need to distribute a single file type that’s playable on the most players and devices possible, and though AAC is widely supported today, it’s still not as widely supported as MP3. So podcasters overwhelmingly choose MP3: among the 50 million podcast episodes in Overcast’s database, 92% are MP3, and within the most popular 500 podcasts, 99% are MP3. And AAC is also still patent-encumbered, which prevents innovation, hinders support, restricts potential uses, and imposes burdensome taxes on anything that goes near it. So while AAC does offer some benefits, it also brings additional downsides and costs, and the benefits aren’t necessary or noticeable in some major common uses. Even the file-size argument for lower bitrates is less important than ever in a world of ever-increasing bandwidth and ever-higher relative uses of it.2 Ogg Vorbis and Opus offer similar quality advantages as AAC with (probably) no patent issues, which was necessary to provide audio options to free, open-source software and other contexts that aren’t compatible with patent licensing. But they’re not widely supported, limiting their useful applications. Until a few weeks ago, there had never been an audio format that was small enough to be practical, widely supported by hardware and software, and unrestricted by patents, forcing difficult choices and needless friction upon the computing world. Now, at least for audio, that friction has officially ended. There’s finally a great choice without asterisks. MP3 is supported by everything, everywhere, and is now patent-free. There has never been another audio format as widely supported as MP3, it’s good enough for almost anything, and now, over twenty years since it took the world by storm, it’s finally free. For photos and oth[...]



The new Mac Pro: The audacity to say “Yes” in a design culture of “No”

Sat, 15 Apr 2017 21:11:24 EDT

Much of modern Apple’s design philosophy is to relentlessly strip down most products to the bare minimum in certain areas as technological progress allows, following (and largely defining) the modern design fashion of nearly-unquestioned devotion to minimalism. Saying “no” is the easiest path to what’s considered good design today: if something cannot be easily accommodated, or most people won’t complain too badly in its absence, just omit it.1 While minimalism is one aspect of one view of good design, it’s often overused, underconsidered, and misunderstood, resulting in products with surface-level appeal that don’t actually work very well because they were optimized for visual design and minimalism rather than overall real-world usefulness.2 As with every design decision, removals and omissions have major trade-offs that need to be very carefully considered. Today’s design culture of “no” often goes unquestioned or is assumed to be the best outcome, but minimalism should not be axiomatic in all areas. Often, less is more. But sometimes, it’s just less. *    *    * A lot went wrong with the 2013 Mac Pro. Some of the leading factors that led to its failure: It was more expensive than its predecessor, while also removing major features that many of its customers still needed. (The 2016 MacBook Pro has the same problem.) 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).3 So the only configuration it was offered in was either overspecced (and overpriced) or underpowered for most Mac Pro customers. Less than a year after its release, it missed the desktop Retina revolution started by the 5K iMac, and it was beaten handily in single-threaded performance by a CPU generation that Apple never updated it to use. The last factor was poor timing that could’ve been fixed with regular updates, but the first two are simply major design flaws by making the wrong choices for this product. I understand why Apple went down that path, and it’s all in the context that led to my favorite line ever spoken in an Apple keynote, right after the unveiling of this Mac Pro during the 2013 WWDC keynote: “Can’t innovate anymore, my ass!”—Phil Schiller Back then, Jobs hadn’t been gone for long, Cook had a lot to prove, and the overwhelming press and analyst narrative had been that Apple couldn’t innovate anymore and Samsung was the king of innovation, whatever that meant. (It turned out to just mean big phones.) This clearly bothered Apple, and it almost certainly influenced their overly aggressive decisions with the design of the 2013 Mac Pro. But the Mac Pro is the worst place in the entire Apple product lineup to drastically remove capabilities and versatility (and then to not update it for over four years).4 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: Video creators need as many CPU cores as possible, one or two very fast GPUs with support for cutting-edge video output resolutions (like 8K today), PCIe capture, massive amounts of storage, and the most external peripheral bandwidth possible. Audio creators need fast single-core CPU performance, low-latency PCIe/Thunderbolt interfaces, rock-solid USB buses, ECC RAM for stability, and reliable silence regardless of load. (Many also use the optical audio inputs and outputs, and would appreciate the return of the line-in jack.) Photographers need tons of CPU cores, tons of storage, a lot of RAM, and the biggest and best single displays. Software developers, which Federighi called out in the briefing this m[...]



Overcast 3: Design walkthrough

Mon, 20 Feb 2017 18:02:04 EST

Overcast 3 is now available, and it’s a huge update, mostly in the design and flow of the interface. I’ve been working on it since last summer, informed by over two years of testing, usage, and customer feedback. I designed Overcast 1.0 in 2014 for iOS 7, and it was a product of its time: it used ultra-thin text and lines against stark, sharp-edged, full-screen white sheets and translucent blur panes, with much of the basic functionality behind hidden gestures. That fundamental design carried through every update until today. My design goals for 3.0 were: Update the style from iOS 7 to today: More affordances, more curves, thicker fonts, less translucency, more tactility. App-design fashion doesn’t stand still, and many iOS 7-era designs now look dated. Bring all functionality into the open: Add visible controls and affordances to anything that was previously hard to find or behind a hidden gesture, such as table-cell swipe actions and actions that first require tapping corner “Edit” buttons. You wouldn’t believe how many customers have asked me to add features that were already there, or couldn’t find basic functions like deleting episodes, because they weren’t apparent enough in the design. Adapt to larger phones: Enlarge touch targets and make one-handed use faster and easier, even when only part of the screen is within easy reach. I also wanted to reduce the potential for (and effects of) mis-tapping, especially around the lower left and right screen edges, which I believe will become increasingly important as future iPhones presumably get thinner side bezels. Overcast 1.0 was designed for the iPhone 5S. Some fundamentals needed to be revisited now that the vast majority of my customers are on 4.7- and 5.5-inch screens. Now Playing screen, card metaphor I began by revamping the fundamental structure between the rest of the app and the Now Playing screen with a new card metaphor, which slides up from the bottom instead of pushing in from the right: Old New Most popular music and podcast apps have adopted slide-up methods for their Now Playing screens (including the iOS 10 Music app), so this matches what people are already accustomed to elsewhere. It can be smoothly pulled up from the miniplayer (or just tap it), and can be smoothly dismissed by swiping down anywhere on the Now Playing screen (or tapping the “down” chevron).1 This card metaphor is carried throughout all other modal screens in the app, and they all work the same way, speeding up common tasks and greatly enhancing one-handed use. I also redesigned the Now Playing screen itself. The old one revealed episode notes in a hidden scroll zone — you’d need to swipe up on the artwork to reveal them, which relatively few people ever discovered. Old New The new Now Playing screen can be swiped horizontally to reveal effects on the left or episode notes on the right, and — critically — this is indicated by a standard “page dots” indicator below the artwork.2 The Effects and Playback popovers have been consolidated into a single effects pane:3 Old New Along with a tightening of the seek-back/forward tap zones, this moved critical controls away from the lower-left and lower-right screen edges, which are often mis-tapped when handling large phones. Playlists, episode info, and podcast screens Playlists have been manually reorderable since 1.0, but many iOS users never tap “Edit” buttons in navigation bars, so many people never even knew they could do it. Even for those who knew they could reorder episodes, the two-step process was cumbersome. The new playlist screen has full-time reordering handles for faster access and better discoverability: Old New The miniplayer is also now larger and easier to grab, has larger buttons, and hides when nothing is playing. I’ve also replaced the episode-info popovers, which[...]



Automatically test your database backups

Wed, 01 Feb 2017 11:31:08 EST

One of the issues of yesterday’s GitLab.com “database incident” is that most of their database backups weren’t being tested, and when they needed a restore, they discovered that most of the backup methods hadn’t been working.

Untested backup methods that turn out to be missing or broken are extremely common. I can’t fault them much because it’s a very easy mistake to make: most backups, by nature, never need to be restored from, so you never realize if something changes and they stop working… until it’s too late.

The solution is to frequently and automatically test backups by:

  1. Regularly downloading the latest backup from S3 (or wherever) and performing a full restore onto a clean server.
  2. Testing its validity in a way that a human is sure to notice if it stops working properly.

The first part sounds hard, but isn’t. For Overcast, I run an inexpensive Linode server devoted to automatically fetching, installing, and testing the latest backup every day and emailing me a report.1

The emailed report contains query results from multiple database tables that change regularly and are easy for me to mentally verify as I read it every day, such as the number of users and Premium subscribers, how long ago the latest user signed up, and the most recent episode titles of my own podcasts and other popular shows I listen to.

Automated backup testing isn’t difficult — it’s one simple shell script, called by cron every night, piping its results to mail. If you can run a server, you can do this.

The second part is the trick, though: it’d be too easy to start paying less attention to those daily emails over time, and if they stopped arriving, I may not notice for a while.

My solution is to tie backup tests to a task I do every week: stats collection.

I keep a running spreadsheet with pretty graphs to monitor the health and growth of my business, I update it once a week, and — critically — I pull almost all of the stats I need from the backup emails.

So if the backup ever stops working in a way that the script doesn’t detect or I fail to notice from the daily reports, I’ll still find out pretty quickly, because it’ll impact this other thing I always do that’s a high priority for me and involves important business and money things.


  1. If the script detects any failures itself, it emails me with a very alarming subject line that a Mail.app rule highlights in red and shows an alert for. ↩︎




The future of computing

Tue, 31 Jan 2017 20:27:18 EST

The quarterly results are in and Apple’s doing fine overall, but the iPad really isn’t, with another year-over-year decrease in sales.

Apple and commentators can keep saying the iPad is “the future of computing,” and it might still be. But we’re starting its seventh year in a few months, and sales peaked three years ago.

What if the iPad isn’t the future of computing?

What if, like so much in technology, it’s mostly just additive, rather than largely replacing PCs and Macs, and furthermore had a cooling-fad effect as initial enthusiasm wore off and customers came to this conclusion?

The moving-average unit sales graph would look something like this, right?

(image)
(Courtesy of Six Colors)

And Mac sales might appear mostly unaffected, or possibly even increasing as iPad sales cooled off, right?

(image)
(Courtesy of Six Colors)

Is Apple prepared for that possibility?

Is the Mac?




State of Apple from two perspectives

Mon, 23 Jan 2017 11:32:05 EST

Two of the best pieces I’ve read about Apple recently:

  • Grading Tim Cook: The optimistic business-analyst take. Tim’s doing great and the products are pretty much fine.
  • Apple Inc: A Pre-Mortem: The pessimistic customer take. There are big problems that aren’t getting better.

They may seem at odds, but I agree with a lot from both, and every Apple enthusiast and commentator would be well-served by reading and considering both.

Apple can — and, I believe, does — have both a well-performing CEO and significant problems in its products that have me both worried and saddened as an Apple customer and enthusiast.




Apple’s statement on the Consumer Reports battery test

Tue, 10 Jan 2017 16:16:16 EST

Apple’s official response to Consumer Reports’ poor 2016 MacBook Pro battery test: We appreciate the opportunity to work with Consumer Reports over the holidays to understand their battery test results. We learned that when testing battery life on Mac notebooks, Consumer Reports uses a hidden Safari setting for developing web sites which turns off the browser cache. This is not a setting used by customers and does not reflect real-world usage. Their use of this developer setting also triggered an obscure and intermittent bug reloading icons which created inconsistent results in their lab. After we asked Consumer Reports to run the same test using normal user settings, they told us their MacBook Pro systems consistently delivered the expected battery life. We have also fixed the bug uncovered in this test. This is the best pro notebook we’ve ever made, we respect Consumer Reports and we’re glad they decided to revisit their findings on the MacBook Pro. Apple’s tone and framing here, and in most recent PR statements where they’re on the defensive, rubs me the wrong way. Consumer Reports has a spotty history with calling Apple out on product flaws. They’re usually written overly sensationally, and they often overstate the importance of minor issues. But almost every time, the problem they’re reporting is real — especially in retrospect, after everyone’s defensiveness has passed and we’ve lived with the products for a while. It’s just debatable how big of a deal it is in practice. The iPhone 4 antenna design really was flawed. The iPad 3 really did get uncomfortably warm. And the 2016 MacBook Pro really did have poor, inconsistent battery life in their test. Apple’s framing here is almost Trumpian, evading responsibility for the real problem — Apple’s bug — by attempting to insult the test (“does not reflect real-world usage”), discredit and imply malice by Consumer Reports (“a hidden setting”), and disregard the bug as irrelevant (“obscure and intermittent bug”). It reframes the story to be about Consumer Reports’ own failings and Apple helping them see the right way forward. But disabling the browser cache during a battery test to make results more consistent is reasonable, Apple’s browser offers that feature, and it’s neither very well hidden nor unused by any customers.1 Nothing about a battery-life test truly reflects “real-world usage.” Battery tests are approximations, designed to mimic the most common tasks but in an artificial, automated, repetitive way for hours on end to get reproducible results. Real-world usage is so varied, with such wildly different software and usage patterns, that nobody’s battery test is relevant to much of anything except relative comparisons of its own results. A test that lasts 5 hours on a 13-inch and 6 hours on a 15-inch tells you that the 15-inch probably has better battery life than the 13-inch, but that’s about it — it certainly doesn’t mean that your 15-inch will get 6 hours the way you use it. Reloading web pages without a browser cache is no more or less valid than whatever Apple uses to tell me that my laptop will get 10 hours of battery life when my actual workload usually gets about half of that. The real story here is that Consumer Reports did get very poor and inconsistent results from their battery test, which was a reasonable and valid test, due to a real bug in Apple’s web browser. With the bug now fixed (in beta, at least), the MacBook Pros deserve a retest, and Consumer Reports is conducting one. But their previous results were real, and Apple’s bug was to blame. There are a lot of web developers out there, and I bet a lot of them use MacBook Pr[...]



Ten years of iPhone

Mon, 09 Jan 2017 11:04:57 EST

I’ll never forget watching the iPhone keynote live.1

It was a cold Tuesday afternoon in New York. My hair was still brown. We were supposed to be working, but even David had to suspend his usual workaholism for a few minutes in awe of what we were seeing.

Everything about the iPhone seemed impossible to the technology world of early 2007.

“You can’t make a good phone without buttons.”
“You can’t fit a desktop-class OS on a phone.”
“There’s no way that’s a full-blown web browser.”
“That has to cost a thousand dollars.”

Yet over the course of an hour, Steve destroyed every rule we thought we knew.

Not only was it truly mind-blowing at the time, but in retrospect, so much of modern computing was invented for the first iPhone and revealed to the world in that hour. Just watch the software demos: most modern UI mechanics and behaviors, large and small, began that day.

When it shipped six months later, it was possibly the best 1.0 in tech history, followed by a decade of relentless hardware and software improvements with the highest success rate and fastest advancement of any product line I’ve ever seen.

I’ve seen a lot of major product launches and technology changes in my life and career so far, but nothing else I’ve seen has ever come close to the surprise, magic, and magnitude of the first iPhone, and I don’t expect it to be surpassed in my lifetime.


  1. This was before Apple events were streamed, so “watching it live” really meant watching liveblog transcripts with occasional photos from people who were there. ↩︎




iPhone spam-call-blocking apps

Sun, 08 Jan 2017 00:08:39 EST

Hiya creepily requires access to all of my contacts, which I think they transmit to their servers for vaguely specified reasons.

Truecaller creepily requires my name, phone number, and email address to add to their directory, which I think might allow people to find my phone number under vaguely specified conditions.

Nomorobo isn’t creepy about anything, but costs $2/month with an in-app-purchase subscription.

I had Hiya installed for weeks and it never identified a single spam call, during which time I got about ten. I followed all of their voodoo troubleshooting steps, but it just never worked, so I deleted it. (Too bad I can’t un-send them my contacts. Thanks a lot.)

I had Truecaller installed for a few days, and it correctly identified two spam calls with no drama or voodoo required. It just works.

When I learned about Nomorobo from readers and saw how creepy it wasn’t, I deleted Truecaller immediately and subscribed to Nomorobo, and it works great.

A few days ago, after a 100% success rate for a couple of weeks — every spam call (and zero non-spam calls) identified before I answer — I enabled the option to send spam calls directly to voicemail.

Now, from my point of view, I just don’t get spam calls anymore.

To me, that’s $2/month very well spent.




→ Indie Microblogging: Owning your short-form writing

Sat, 07 Jan 2017 16:22:53 EST

We’ve lost something big. We’re all complicit, myself very much included.

We’ve all been pouring a lot more of our writing and attention into Twitter and Facebook than the rest of the web, and the diversity and decentralization of the web has suffered greatly. Far too much power now rests in far too few hands, and we’re starting to suffer tremendous consequences. (Bigly. A disaster.)1

Apathy and inaction lead to further entrenchment and concentration of power. It’s only going to get worse unless we take action.

Manton Reece is giving it the best try I’ve seen. We still have a chance to take back the web. Please help however you can.


  1. Sorry. ↩︎

∞ Permalink




Apple fixes MacBook Pro battery life by removing time estimate

Tue, 13 Dec 2016 18:13:01 EST

My 15-inch 2016 MacBook Pro with Touch Bar is pretty good in most ways, but it’s a noticeable regression in battery life from the previous generation. Apple claims it lasts 10 hours, but I’ve never gotten that — in a fairly light web-productivity workload, I average around 5–7 hours, and if I’m using Xcode, I’m lucky to get 4–5 hours. This seems common — many other customers and reviewers have noted similarly disappointing battery life in the 5-hour range. Apple issued a software update today to address this. You see, the problem wasn’t that Apple’s brand new, flagship, “pro” laptop’s battery only lasts 5 hours for a lot of its customers’ actual usage. The real problem, according to Apple in a statement to Jim Dalrymple, is the estimated “time remaining” display: You can still see the image on the top of the screen, and you can see the percentage, but you will no longer be able to see how much time is remaining before your battery dies. The reason for removing it is very simple: it wasn’t accurate. Apple said the percentage is accurate, but because of the dynamic ways we use the computer, the time remaining indicator couldn’t accurately keep up with what users were doing. Everything we do on the MacBook affects battery life in different ways and not having an accurate indicator is confusing. Well, I’ve always found the time-remaining indicator pretty accurate. Just last night, I brought my 100%-charged laptop to the couch to order some nuts and browse the web for a while, and it reported about 5 hours remaining. After just over an hour, the battery was down to 77%, and it estimated that I had about 4 hours remaining. I found it equally helpful when using Xcode normally at the start of a 5-hour flight, as it told me that I had about 4 hours of battery left. I ran it down to 8% before stopping — with about 30 minutes left in the flight — and it remained accurate the whole time. Having used Apple laptops for over a decade, I’ve always found the time-remaining estimate to also be a good indicator of how much power I’m burning with my current activities so I can “budget” my battery usage when I’m going to need it. At the start of a long flight, for instance, I can check the time estimate, and if it only says I have 2 hours left at 90%, I know something’s burning a ton of power and I can go do something about that. A percentage only tells you the current state, not the rate of change — it would take much longer to notice an unexpected power drain from the percentage alone. (Fortunately, I can still check the estimated time remaining with iStat Menus.) Apparently, that’s all wrong, and my laptop really would’ve lasted for that full flight had I just let it discharge past 8%. Problem solved! [...]



A letter to today’s young people

Fri, 11 Nov 2016 15:24:29 EST

The strongest despair I’ve heard about this election has come from high school and college students. I don’t know if this will really help anyone, and I hope it’s not patronizing. But just in case it helps:

George W. Bush was elected during my freshman year of college. For the next 8 years — all of college, my first job, and the first two years of Tumblr — we suffered through that horrific administration. It was half of my adult life so far.

It felt hopeless. It felt like we’d never have a functional government again. It felt like the damage would be irreparable. It felt like the good side lost and would never win again.

But then, in 2008, the good side won, propelled into victory by Americans’ motivation after those regressive and destructive years, and we had our turn for 8 years. It wasn’t perfect, and Obama didn’t (and couldn’t) fix everything Bush broke. But we did fix most of it, and made a lot of progress in major new areas as well. Overall, we came out way ahead.

And we’ll do it again, because when you average it out over time, progress tends to only go in one direction: people being healthier, better educated, and better to each other. We have ups and downs, and we don’t end every year better than the last, but in the long run, we come out ahead.

Most people in the world are good, and want to be good to each other. Whether they vote that way or not, far more Americans believe in progressive, liberal, inclusive views than regressive, aggressive, conservative ones.

Young people know this better than anyone, because young people are overwhelmingly liberal, even more than older people. That’s not because you’re inexperienced — it’s because you’re right. Your generation is, by definition, further ahead on the march of progress than everyone else. It is literally you who cause the progress as older people die and you rise into power.

This is going to be difficult for everyone — some much more than others. It may seem like it’ll last forever, especially if you weren’t an adult during the Bush years.

But it won’t.

In the meantime, do everything you can to help, support, and stand up for the millions of people whose country just let them down, many of whom live in homes and communities that have just become unwelcoming or unsafe.

We’ll get our chance to repair the damage and move forward again, and you’ll bring us there.

Hang in there.




A world without the Mac Pro

Sat, 05 Nov 2016 11:41:39 EDT

It’s looking increasingly likely that there will never be another Mac Pro. Here’s why that would be a shame. Pro buyers depend on Apple to make the hardware that satisfies our needs. And we’re flexible. We’ve adapted over the years to new CPU architectures, port changes, capability changes, price increases, and a slower update pace. The 5K iMac is a truly great computer. It’s the best general-purpose desktop Apple has ever made. It almost replaces the need for the Mac Pro. Many of us can get by with the 5K iMac. But there are some things that only a Mac Pro can deliver. More than 4 cores. Per-core performance has been eking out diminishing returns for years, so today’s newest processors aren’t much faster than those from a few years ago. If you need more performance for parallel workloads — very common for video, photography, 3D, science, medicine, and software development — the only way to jump meaningfully ahead of mainstream CPUs is to add more cores. Today’s Mac Pro-class Xeon CPUs easily pack 8 cores at pro-accessible prices, 10 or 16 for a bit more, and scale all the way up to 22 cores.1 It may take a decade for an iMac to match the speed of today’s 16-core Xeons.2 High-end GPU power. Only the Mac Pro has the space, budget, heat capacity, and PCIe bandwidth to offer high-performance desktop- and professional-grade GPUs. If gamers, game makers, visual effects workers, and OpenCL aren’t enough, the rapidly-emerging VR and AR markets should be — they’re the next wave of high-end pro buyers who need the fastest hardware money can buy, and Apple has nothing to offer them. The most RAM. The brand-new MacBook Pro maxes out at 16 GB and the iMac maxes out at 32 GB from Apple or 64 GB with aftermarket RAM. The three-year-old Mac Pro can go to 64 GB from Apple, 128 GB aftermarket. Some pro workloads simply need more RAM than the consumer and mobile chips support. The freedom of thickness and AC power. High-core-count CPUs and powerful GPUs need far more wattage and thermal management than the other Macs will ever have the thickness or battery capacity to accommodate. The Mac Pro doesn’t need to be small, thin, lightweight, or power-constrained — the rest of the lineup fills those roles well, freeing the Mac Pro to be as big as it needs to be. Silence. Unlike every other Mac except the low-performance 12-inch MacBook, the Mac Pro remains inaudible in most rooms even under sustained heavy workloads — you don’t hear the fan spin up — because its size and clever thermal design allows for a massive heatsink, cooled by a huge, slow fan. This isn’t only important for pro environments such as recording studios and video sets, but it’s nice for all of its users (and their officemates). The Mac Pro is the only Mac that handles heavy workloads gracefully. Reliability and longevity. The Mac Pro’s workstation chipsets, Xeon CPUs, and ECC RAM are all designed with more strict tolerances, resilience, and error correction than the mainstream components in every other Mac. And the heavy-duty thermal design keeps components cooler, which prolongs their life and improves stability. Most Macs have long lives before they break or become outdated, but Mac Pros outclass every other model by starting with a huge performance lead, then working hard for years without breaking a sweat. And by separating the computer from the display, either can be upgraded more freely, promoting customer investment in high-end displays and high-end computers as needs and technologies change. Taking the burden off of the other Macs. Pros wouldn’[...]



Design for the present

Wed, 02 Nov 2016 00:14:39 EDT

It’s hard to get anyone to agree on what constitutes “pro” use, but I’d say it has three core requirements:

  • Reliability: Pro gear absolutely must be dependable, even when used heavily or in demanding conditions.
  • Power: Pro apps usually need more of every hardware resource than consumer apps — at least CPU power and memory, and often GPU power or I/O bandwidth — and pros will often pay high costs for high-spec machines that won’t hold them back or leave them waiting.
  • Versatility: Pro gear is used in diverse environments, often with unpredictable needs. Many pros never know when they may suddenly need an obscure port or feature, or when they will unexpectedly need to keep working on battery for a few more hours, and the consequences of not handling these conditions could be expensive or very inconvenient.

The new MacBook Pro is probably great, and most of the initial skepticism probably won’t age well. But I want to pick on one aspect today.

Having four USB-C ports is awesome.

Having only four USB-C ports is going to hurt the versatility requirement of pro gear, because there’s a very real chance that you won’t have the right dongle when you need it.

This is going to happen a lot, because even though USB-C is the future, it’s definitely not the present. We’ve had the standard USB plug (USB-A) in widespread use for 18 years, and it’s going to take a few more years for USB-C to become so ubiquitous that we can get away without USB-A ports most of the time.

A pro laptop released today should definitely have USB-C ports — mostly USB-C ports, even — but it should also have at least one USB-A port.1

Including a port that’s still in extremely widespread use isn’t an admission of failure or holding onto the past — it’s making a pragmatic tradeoff for customers’ real-world needs. I worry when Apple falls on the wrong side of decisions like that, because it’s putting form (and profitability) over function.

Design for the future, but accommodate the reality of the present.


  1. I’d also argue that removing the SD-card reader was premature. SD cards are ubiquitous on cameras (even recent high-end models), and card readers are by far the fastest and most versatile way to import a lot of photos from of a camera. A lot of other pro A/V gear uses SD cards as well, such as most audio and video recorders. Standalone card readers work well, but they’re yet one more dongle that you won’t always have with you. ↩︎




Shame on Y Combinator

Mon, 17 Oct 2016 21:16:34 EDT

Y Combinator is extremely influential in tech startups and startup culture. Peter Thiel, an investor who often participates in Y Combinator, is donating $1.25 million to Donald Trump’s political efforts, which has incited outrage among the tech community with many calling for Y Combinator to sever ties with Thiel. Y Combinator has apparently decided not to. President Sam Altman defended this position in a blog post, framed as a Clinton endorsement, that begins with a partial overview of how reprehensible and dangerous Trump is, but ends with a defense of continuing Thiel’s involvement in Y Combinator that’s effectively framed as a free-speech or tolerance issue: Some have said that YC should terminate its relationship with Peter over this. But as repugnant as Trump is to many of us, we are not going to fire someone over his or her support of a political candidate. […] The way we got into a situation with Trump as a major party nominee in the first place was by not talking to people who are very different than we are. […] That kind of diversity is painful and unpopular, but it is critical to health of a democratic and pluralistic society. We shouldn’t start purging people for supporting the wrong political candidate. That’s not how things are done in this country. Altman’s framing of Thiel’s Trump support as a diversity issue isn’t just incorrect — it’s a harmful distortion that reveals a deep misunderstanding of the tech industry’s actual diversity issues. (I don’t and can’t fully understand our diversity problem, but I at least won’t pretend to.) To help illustrate why, here are some of Altman’s own words from the first half of that same post: This election is exceptional. Donald Trump represents an unprecedented threat to America… He represents a real threat to the safety of women, minorities, and immigrants… Trump shows little respect for the Constitution, the Republic, or for human decency… I do not understand how one continues to support someone who brags about sexual assault, calls for a total and complete shutdown of Muslims entering the US, or any number or other disqualifying statements. Wrapping reprehensible statements or actions as “political beliefs” doesn’t protect them or exempt their supporters from consequences. Racism is racism. Sexual assault is sexual assault. Labeling reprehensible positions as “political beliefs” is a cowardly, meaningless shield. But even if such protection existed (it still doesn’t), this isn’t calling for someone to lose their job because they merely voted Republican — the scale of Thiel’s support and the conditions of this particular candidate matter. Thiel, a non-employee (a “part-time partner”), is directly supporting Donald Trump at a massive scale — over a million dollars! — after we’ve learned even more of Trump’s horrendous statements, positions, and past actions than we could’ve ever imagined. This isn’t voting for an economic or social policy — this is literally paying a huge amount of money to directly support a racist, sexist bigot with rapidly mounting allegations of multiple sexual assaults. One more quote from Altman: If Peter said some of the things Trump says himself, he would no longer be part of Y Combinator. Funding Trump, especially at this scale, represents general support of what Trump has said and done. If saying what Trump said would be enough to override [...]



Dash’s removal from the App Store

Mon, 10 Oct 2016 19:02:45 EDT

Last week, Apple terminated the developer account of one of my favorite Mac apps, the Dash documentation viewer for programmers, for alleged App Store review manipulation. Dash is a great app that many Mac and iOS programmers use (and that needs no help getting positive reviews), and developer Bogdan Popescu insisted he’d never engaged in such fraud. Since Apple has a history of controversial App Store decisions that often get reversed after public scrutiny, many developers (including me) came to his defense last week, assuming that someone at Apple had made a mistake, and yelled on Twitter for Apple to reconsider or provide more concrete justification. Michael Tsai has a good overview with more links. Apple just issued the following statement to a handful of sites, included in this great write-up on iMore about the issues (which you should read in its entirety): Almost 1,000 fraudulent reviews were detected across two accounts and 25 apps for this developer so we removed their apps and accounts from the App Store. Warning was given in advance of the termination and attempts were made to resolve the issue with the developer but they were unsuccessful. We will terminate developer accounts for ratings and review fraud, including actions designed to hurt other developers. This is a responsibility that we take very seriously, on behalf of all of our customers and developers. This isn’t enough proof for some, but it’s enough for me. (Some quick searches support Apple’s position, if you’re still unconvinced.) Like any controversial decision involving people’s livelihoods, Apple probably needs to be careful to avoid potential legal issues, and it would be in poor taste for a huge company to sling more mud than necessary in public against a tiny opponent. I’m glad our community assumed the best of another developer and pressured Apple to justify this severe action. We should now accept that they have. The public often doesn’t get the full story behind decisions and changes they see, but it’s usually not for sinister reasons — it’s often just someone taking the high road and letting another party save face. Update! Bogdan Popescu responded with his side of the story and a recording of a phone call from Apple (without their consent, which is illegal in California, but apparently not in Romania). In summary, he bought another developer account for a relative with his credit card and using his old test devices, which made Apple’s fraud team consider them the same entity (seems reasonable), and that account engaged in the fraud. His post makes Apple sound pretty bad. But if you listen to the call (which I was torn about whether to do), it’s clear that Apple was being incredibly reasonable and going above and beyond to help him get reinstated and clarify what happened in a public statement, but Popescu didn’t seem to agree with Apple regarding the wording of key facts. We don’t know what happened between that call and Apple’s statements tonight. I’m guessing Popescu and Apple couldn’t reach an agreement over the wording of the public story, but I think what Apple asked for in that phone call was extremely reasonable. It’s also notable that Apple investigated this and tried to resolve it as well as they did. If it were any other company — say, Google for a suspended AdSense or YouTube account — I suspect the amount of effort devoted to it would be much lower. [...]



Overcast trying ads, dark theme now free

Fri, 09 Sep 2016 19:46:52 EDT

Overcast has had two business models to date: Year one: Free up front, but with many limits and missing features unless you bought the $4.99 (one-time) in-app purchase to unlock them. This brought in good money up front, but income slowly declined, as all paid-once purchases do, and it restricted the app’s best and most compelling features to the very small percentage of people who paid. Everyone else got a sub-par app. Year two: Free for all features that were previously locked behind the purchase, with an optional $1/month patronage, to deliver the best app to the most people and hopefully change the direction of the downward revenue curve by replacing one-time purchases with recurring income. This simply hasn’t brought in enough money, which I’ll get into below. Starting today, I’m trying a third: Year three: Free for almost everything, with simple ads on some screens, and everyone now gets the dark theme. Patronage is now Overcast Premium, now just $9.99 per year, for ad-free use, file uploads, and some future features. Existing patrons become Premium accounts of the same duration, with all Premium benefits. At the end of your patronage, you’ll be asked to renew as Premium. Buyers of the old $4.99 unlock from year one: Restore Purchases from the Premium screen, and you won’t see the normal ads, but you may see occasional promos for Premium to support further development. How patronage performed Patronage was a big risk, both in finance and reputation. I took a lot of heat for it, and it initially made much less money than the previous model. But I knew that if I could convince 5—10% of the userbase to pay, I’d come out ahead. Here’s how that went: Patronage initially brought no new exclusive features, based solely on goodwill, which only convinced about 1.9% of people to pay. This wouldn’t be sustainable, so I had to add perks to patronage that some people would want enough to pay for. But to prevent the year-one problem of most people using an inferior or annoying app by not paying, the absence of the patron-only features needed to be inconsequential or unnecessary for typical usage. In March, I added the two new features only for patrons: a niche file-upload feature that required ongoing hosting costs, and a dark theme that was highly demanded but purely cosmetic. It worked fantastically at first. The patronage rate jumped from 1.9% to 2.6% in one week, and slowly rose to just under 3%. But growth has stalled there, and it’s clear that I’m not going to reach my 5–10% goal. And keeping the dark theme behind a subscription has been extremely unpopular, even among those generous enough to pay. People really don’t want to pay a monthly fee for what seems like a basic app feature, even if it’s purely cosmetic, and many patrons have been getting very angry when they stop paying and the dark theme goes away. Options Faced with these problems, I came up with a few solutions, all of which were terrible: No change: The status quo brings in enough money to keep the service running and fund basic maintenance and occasional updates, but I want to do more: more frequent updates, more cool features, more server capacity, more users, and higher quality. Lock existing free features behind patronage: This would anger pretty much everyone, and once it settled down, I’d be stuck with the same problem as year one: most users never get the best parts of the app. Add new patron-only features: If any new patron-only features are widely demanded, [...]



Why don’t podcasts use VBR MP3s? Because iOS and macOS don’t accurately seek them

Mon, 15 Aug 2016 13:46:09 EDT

Filed as Apple bug (Radar) 27848317. The problem, in short: AVFoundation, the low-level audio/video framework in iOS and macOS, does not accurately seek within VBR MP3s, making VBR impractical to use for long files such as podcasts. Jumping to a timestamp in an hour-long VBR podcast can result in an error of over a minute, without the listener even knowing because the displayed timecode shows the expected time. Why VBR? VBR encoding is far more space-efficient and better-sounding than constant-bitrate (CBR) encoding. It’s especially pronounced in podcasts, where VBR makes most podcasts 20–50% smaller AND better-sounding than the 64 kbps CBR encoding that most podcasters are forced to use today. VBR could save podcast listeners massive amounts of data transfer over time. (And therefore money, and battery life, and precious storage space on phones.) Without accurate seeking, streaming and web audio players don’t work properly, including share-at-timestamp links that are becoming key drivers of the sharing and spreading of podcasts. Why can’t podcasters use it? I explained how MP3s work, and why this is a problem, on Accidental Tech Podcast last week — see that? That’s a share-at-timestamp link, and if that file was VBR, it wouldn’t seek to the correct time. See for yourself: here’s that same podcast in VBR. Note that the file is 25% smaller and the theme song (at 1:22:47 in the original file) sounds way nicer in the VBR version. But if you seek to the same timestamp as the above share link — 1:24:30 — you’ll hear the wrong audio. The player will say 1:24:30, but you’re actually hearing the audio at 1:25:16. That’s 46 seconds off, and that’s enough to break timestamp sharing, and that’s enough to ensure that nobody ever uses VBR files, and podcasts keep transferring more bytes to sound worse for the foreseeable future. We fixed this in the same year the Backstreet Boys released “I Want It That Way” Three simple solutions to accurate VBR stream-seeking have existed for almost twenty years to embed seek-offset tables at the start of VBR MP3s for precise seeking: “MLLT” ID3 tag, circa 1999 (preferred, most precise) Fraunhofer VBRI frame, circa 2003 (moderately precise) Xing/LAME frame (too imprecise for long files) But AVFoundation supports none of them. VBRI and legacy Xing frames are read, but only the duration is used from each, not the seek table. MLLT tags are seemingly ignored. It appears that AVFoundation simply estimates byte offsets with the simple ratio of (timestamp / duration) × totalBytes, but that assumes a constant average bitrate over the file, which is incorrect and an unsafe assumption for VBR encoding. (ABR maintains an average bitrate over the whole file, but doesn’t achieve a better enough size-to-quality ratio than CBR for most podcasts.) Supporting either MLLT or VBRI at the AVFoundation level (therefore affecting Safari, HTML5