Archive for May 2019

Wednesday, May 22, 2019 [Tweets] [Favorites]

Mac Toolbar Labels and Accessibility

James Riordon:

My Dad (90 yrs old) has developed cognitive issues, including the inability to reconcile symbols. He can’t use Apple Mail anymore as Mail compose window removed the ability to show text labels with buttons. Thanks @tim_cook Happy Global Accessibility Awareness Day on May 16

Rob Griffiths:

This continues a depressing trend—Safari hasn’t had text labels available on its buttons for many years now.

Apple may have done this to save vertical space, which is ironic, as using “text only”—when available—takes the least amount of space possible.

I prefer to see both the icons and the text. This is an option in NSToolbar, which the app can set and the user can configure. However, if the window uses NSWindowTitleHidden to hide the title (another accessibility problem) and put the toolbar in the title bar, the toolbar gets locked in icon-only mode.

At first, I thought this title-free design was intended for single-window apps, but Apple also uses it Safari and Xcode. And it’s been appearing in third-party apps like MarsEdit, OmniFocus, and ReadKit—a shame.

Qualcomm Loses U.S. Antitrust Ruling

Ian King and Kartikay Mehrotra (Hacker News, MacRumors):

U.S. District Judge Lucy Koh sided with the Federal Trade Commission in a case brought in 2017 accusing the company of anti-competitive practices.

[…]

“Qualcomm’s licensing practices have strangled competition” in certain modem chip markets “for years, and harmed rivals, OEMs and end consumers in the process,” the judge wrote. She also found that Qualcomm’s key role in manufacturing modem chips for smartphones using 5G made it likely that its behavior would continue.

Neil Cybart:

Qualcomm must negotiate or renegotiate licensing agreements, license patents to rival chip makers at fair and reasonable prices, be monitored for 7 years.

Florian Mueller:

What was an even greater failure for Qualcomm was the extreme degree to which its senior executives’ testimony contradicted their own handwritten notes, emails, and presentation slides, including but not limited to the question of whether Qualcomm explicitly threatened device makers with a disruption of chipset supplies unless they agreed to certain patent licensing terms. As a result, “the Court largely discounts Qualcomm’s trial testimony prepared specifically for this litigation and instead relies on these witnesses’ own contemporaneous emails, handwritten notes, and recorded statements to the IRS.”

[…]

Later, Apple had to agree to total exclusivity, where any shipment of a non-negligible quantity of devices with non-Qualcomm modem chips on board would have made them lose certain benefits going forward and entitled Qualcomm to a clawback, and that is the basis for one of the FTC’s monopolization claims.

Previously:

Some Users See More Twitter Ads

Kurt Wagner (via Cabel Sasser):

Some journalists first noticed and started tweeting about seeing more ads on Twitter earlier this week. Not all Twitter users have the same ad load, which means the experiment won’t affect everyone. Some people see more ads than others depending on a variety of factors, including how the number of ads influence their use of the platform. (Facebook and Instagram do something similar.) Three years ago, Twitter shut off ads for some of the network’s most prominent users as part of an effort to keep them engaged. Some users still have an ad-free Twitter.

As I recall, John Gruber has wondered why he doesn’t see any Twitter ads. I guess this clears up that mystery.

I still don’t understand why Twitter doesn’t do more with other revenue models. I think lots of people would pay for an ad-free experience or other extra features.

Update (2019-05-22): Brian:

I think @gruber was actually saying he didn’t see IG ads, not Twitter. But now he does so it’s moot

Intel vs. Qualcomm Cellular Modem Speed

Juli Clover:

In testing on LTE band 4 with good signal, there wasn’t a lot of difference in performance between the iPhone XS Max, the newer smartphones from Samsung and OnePlus, and the LG V40, which PCMag added in because it was 2018's best performing phone in terms of cellular speed.

All of the smartphones performed similarly, but the Samsung Galaxy S10 did see some of the slowest speeds, and at peak signal, the iPhone XS came in behind the OnePlus 7 Pro and the LG V40.

In a test with poorer LTE signal, the iPhone XS Max saw the slowest speeds and was outperformed by all of the Qualcomm chips. The iPhone XS Max was quite a bit slower than the Galaxy S10 and the OnePlus 7 Pro specifically.

Previously: Qualcomm and Apple Agree to Drop All Litigation.

Tuesday, May 21, 2019 [Tweets] [Favorites]

MacBook Pro 2019

Apple (Hacker News, iMore, MacRumors, tweet, The Verge):

Apple updated MacBook Pro with faster 8th- and 9th-generation Intel Core processors, bringing eight cores to MacBook Pro for the first time. MacBook Pro now delivers two times faster performance than a quad-core MacBook Pro and 40 percent more performance than a 6-core MacBook Pro, making it the fastest Mac notebook ever.

Looks like a good speed bump. Longer term, I hope Apple will make the Touch Bar optional, make the trackpad smaller, make the display (optionally) larger, fix the arrow key layout, add more ports, add more thermal headroom, bring back matte displays, and stop charging ridiculous prices for SSDs.

Apple:

Apple has determined that a small percentage of the keyboards in certain MacBook, MacBook Air, and MacBook Pro models may exhibit one or more of the following behaviors[…]

[…]

The program covers eligible MacBook, MacBook Air, and MacBook Pro models for 4 years after the first retail sale of the unit.

The repair program now covers the 2018 MacBook Air and MacBook Pro, and even the just-released 2019 MacBook Pro. Some are saying that this shows Apple doesn’t have confidence in the revised keyboard. However, regardless, I think it’s great to know before purchasing that this model will be covered. Previously, you could actually get longer coverage by buying an older model with known problems than a new one! I still think that the keyboard program should cover a lot more than 4 years, though. A new pro Mac bought today should last a long time.

Jason Snell (tweet):

Apple says these new models also feature a fourth version of the butterfly keyboard design, in response to customer complaints that the keyboard would end up in a sad state where key presses were ignored or doubled. While Apple is quick to say that the vast majority of MacBook Pro customers haven’t experienced any keyboard issues, the company still keeps tweaking this design. It claims that the change made in these new MacBook Pro models will substantially reduce the incidence of ignored or doubled characters.

[…]

Where Apple’s laptop keyboard designs go from here is also a question. By extending its repair program and seeking to improve the turnaround of keyboard repairs in Apple Stores, the company is seeking to reassure customers that they won’t get stuck with a laptop with a bad keyboard. But the company also keeps tweaking the design in order to try and make it more reliable—an admirable attempt, but the sheer number of tweaks also send the message that Apple hasn’t really had a handle on the fundamental weaknesses of the design. Whether this new tweak is the one that finally solves the problem, or if it won’t be truly solved until this design is discontinued and fades into memory, remains to be seen.

Matthew Panzarino:

Apple is saying that it is doing 3 things about the MacBook keyboard situation. First, it is changing the mechanism.

Second, it is including all current butterfly keyboards in the new Keyboard Service Program

Third, it is improving repair times at stores and replacing 3rd gen membrane keyboards with the new keyboards.

Steve Troughton-Smith:

TL;DR: we didn’t totally fix the keyboard, the next-gen MBP isn’t ready yet, and we don’t plan to apologize

[…]

Apple still doesn’t mention anything about the keyboard changes nor does it list the keyboard revision on the MBP specs page. Clearly they want to starve this problem of oxygen and pretend it never happened.

Marco Arment:

Important clarification: the new 4th-gen design will be installed during repairs, but only for 3rd-gen-keyboard models: the 2018 Air and the 2018 13/15” with Touch Bar.

Colin Cornaby:

Getting harder and harder for me to justify holding on to my 2010 Mac Pro. But the risky thermals on the MacBook Pro, especially with 8 cores, are a problem. I’d also need to get an eGPU and the only ones that support Thunderbolt output are Blackmagic’s ridiculously priced ones.

There’s also the ongoing problem of putting a large amount of money into a machine where I can never upgrade the RAM or storage. $4000 is a lot for a machine that might run out of internal storage, and doesn’t change with my needs.

Morgan:

I love my 15” 2018 but sticking two more cores in the same body is just insanity. It is way too thermally constrained as it is.

Mark Munz:

My 7 y/o MacBook Pro has never had a keyboard problem EVER.

Now Apple has a keyboard service program that lasts 4 years. I guess I’m supposed to feel more confident. 🤷‍♂️

Would feel a lot better if they had announced a “new” scissor-switch designed keyboard.

Steve Troughton-Smith:

I still don’t understand what is so hard about putting out a press release addressing the butterfly keyboard problem, explaining today’s half-fix, explaining repair & replacement program, & saying that a redesigned keyboard is in the works. Apple’s handling has been infuriating

By now, somebody needs to be fired for the handling of the keyboard situation, and the longer it takes, the higher up the management chain they should be looking. You don’t get to 5 years of ignoring it by accident. The reputation damage will last a decade, nevermind support cost

Today’s keyboard materials update could fix the problem in 99% of cases, but we won’t know from anecdata for years. And Apple’s not prepared to stand by in public what it’s telling press in private. If they don’t have confidence in the fix, why would anybody else?

Craig Hockenberry:

I have a 2013 MBP and my only criteria for upgrading is the keyboard. Size is secondary, and speed is a distant third.

In real estate, the things that matter are “location, location, and location.”

With keyboards, it’s “travel, travel, and travel.”

Mathias Meyer:

Good, now I can send in both my 2016 12" MacBook and my 2018 MacBook Air for repairs. Both have become unbearable to type on.

icabiz:

We repair these as part of our business, and to be clear, both the keyboards and the screens are failing on these at an alarming rate.

iFixit detailed the issues with the screens, which (in Apple’s unending quest for “thinness”) use a thinner flex cable to connect the display to the rest of the laptop. This thinner cable is prone to breakage, and we are already seeing 2016-2017 MacBook Pros in our shop regularly for this issue.

Since Apple built the flex cable into the display, the only solution (even from third parties like us) is a new display. At $600-$700 each, this is unacceptable.

And, like the keyboards, this is a part that’s pretty much guaranteed to fail (unless you basically never open your laptop.)

Apple hasn’t announced a fix yet, even with a petition with over 11,000 signatures, and more screens failing by the day.

Marco Arment:

SSDs are so cheap now that 512 GB should be standard on any Mac ending in “Pro”.

Greg Hurrell:

I’m not in the market or a new laptop, but every now and again I check up on the prices. Amazing how easy it is to spec up a MacBook Pro deep into “frickin’ ludicrous” territory.

For the same money you can get an absolutely monstrous machine from System76 to run Linux. Twice the RAM (64GB), more than twice the disk (10.5 TB!), an actual function keyboard…

Previously:

John Gruber (tweet):

Personally, I’d like to see them add more travel to the keys, go back to the upside-down T arrow key layout, and include a hardware Esc key on Touch Bar models (in that order).

[…]

The best that we could hope for while waiting for a true next-generation keyboard design — which for all we know might be a year or more out — is a mid-generation tweak. At the very least, talking about this material tweak and including all butterfly keyboard models in the service program is an acknowledgement that last year’s keyboards were not good enough. That was the worst case scenario — that Apple didn’t see a problem.

But what pleases me more is that Apple is updating Mac hardware on an aggressive schedule. I wrote “just speed bumps” a few paragraphs ago, but speed bumps are important in the pro market. Apple shipped new MacBook Pros last July, added new high-end graphics card options to those models in October, and now has updated the whole lineup with new CPUs. They also just updated the non-Pro iMac lineup in March. This seems like an odd thing to praise the company for — updating hardware with speed bumps is something a computer maker should just do, right? The lack of speed bumps in recent years naturally led some to conclude that Apple, institutionally, was losing interest in the Mac.

Nick Heer:

This year, however, Apple directly addressed keyboard reliability in their conversations with media. Even though they didn’t mention keyboards at all in their press release, I still see it as a noteworthy acknowledgement.

Benedict Cohen:

One more thing for the MacBook wish list: MagSafe

Steve Troughton-Smith:

OK, perhaps it’s just me; let’s do this one: Do you trust Apple’s ‘butterfly’ MacBook/Air/Pro keyboards (before or after today’s update)?

Paul Haddad:

The replacement program for keyboards is still limited to 4 years. Sucks if you bought a MacBook 12” when it first came out in April 2015…

Ellen Shapiro:

GAH, new 13” MBPs still don’t support 32 gigs of RAM.

I travel too much to really want the 15”, and I often run Xcode/Simulator + Android Studio/Emulator at the same time, so on a new laptop I’d be a lot happier with 32GB RAM.

Kyle Howells:

My 2015 15" MacBook Pro slows to a craw when I plug it into a 4K monitor, because of thermal throttling. I have to have a desk fan pointed directly at it at all times to cool it sufficiently to use.

The idea of putting an 8 core i9 into a thinner case design, makes me nervous.

Joanna Stern (tweet):

Stop me if you’ve heard this before: Apple Inc. is promising to fix the MacBook keyboard issues. Yes, again.

Ed Bott:

The butterfly keyboard is Apple’s Windows Vista, a reputation-destroying slow-motion train wreck.

Keith Calder:

You know how people with MacBooks have been having keyboard problems where a random key gets stuck? That just happened to my "delete" key while I was in an important email folder, and all the emails were deleted. Fun times!

Colin Devroe:

As I wrote, I want to switch back to the Mac but only after they produce a laptop with an entirely new, reliable keyboard. I’ve seen the current keyboard in action and I think I would have pitched my laptop into the sea out of frustration if I had owned one.

Jason Cross:

To me, the biggest issue here is that it’s terrible reliability may be giving Apple a black eye, but it’s not like it’s good even when it works.

At best, people seem to think it’s just okay. At worst, they HATE it. This as a replacement for the most beloved laptop keyboard ever?

Marcin Krzyzanowski:

I had this crazy idea to get my Macbook for a keyboard repair to Apple Store while in Berlin. To benefit of fast-path announced yesterday

Observations:

1. Apple doesn’t recognize keyboard issue as a frequent issue
2. not a single slot for genius appointment for the upcoming week

Marco Scheurer:

And that ESC key... it is not just inconvenient when you use it but also when you don’t. I keep hitting hit by mistake.

Rui Carmo:

Living in a country that, to this day, still lacks an official Apple Store and where support centers (even if competent) don’t provide anywhere near the same turnaround times as in first world countries, I don’t find it the least bit reassuring.

Jacob Kastrenakes:

Apple will offer free repairs to owners of 2016 MacBook Pros with backlight issues — a problem that’s increasingly started to appear on the laptops as they age. The repair program, announced this afternoon, covers only the 13-inch MacBook Pro model that debuted in 2016, though both the Touch Bar and non-Touch Bar versions are eligible. Repairs will be covered for four years after a laptop was first purchased.

See also: Why are Creators Leaving the MACBOOK PRO ??.

Colin Cornaby:

It’s funny because the MacBook Pro has reached a point where I should seriously be considering not even using a desktop anymore. But the compromised thermals and lack of swappable memory/storage keep the MacBook Pro from really being a desktop replacement.

Microsoft Edge for Mac Preview

Microsoft (Hacker News):

Microsoft Edge for macOS will offer the same new browsing experience that we’re previewing on Windows, with user experience optimizations to make it feel at home on a Mac. We are tailoring the overall look and feel to match what macOS users expect from apps on this platform.

[…]

Examples of this include a number of tweaks to match macOS conventions for fonts, menus, keyboard shortcuts, title casing, and other areas. You will continue to see the look and feel of the browser evolve in future releases as we continue to experiment, iterate and listen to customer feedback. We encourage you to share your feedback with us using the “Send feedback” smiley.

John Gruber:

I’m glad they put quotes around “Mac-like” because this is not very Mac-like. It looks and feels a lot like Google Chrome, which makes sense, because it’s a fork from Chromium. But even Chrome uses the Mac’s standard contextual menus (what you see when you right-click) — Edge even fakes those.

The whole thing does feel very fast.

Marcin Krzyzanowski:

Isn’t it ridiculous that soon we’ll end up with Chrome, IE Edge, Firefox, Safari, where 3/4 uses the same engine and none of it is 100% compatible with any other? How did we manage to end in this ridiculous situation?

Wojtek Pietrusiewicz:

I don’t trust Google or Microsoft’s priorities (Google’s especially), and Chrome needs to lose some market share for our benefit. History has shown that a monopoly in the browser department doesn’t end well. Apple had the unique ability to challenge Google on competing desktop OSes and they forfeited that fight.

See also: Inside Microsoft’s surprise decision to work with Google on its Edge browser (tweet).

Previously:

Beyond the Tablet: Seven Years of iPad as My Main Computer

Federico Viticci (tweet):

My iPad journey began in 2012 when I was undergoing cancer treatments. In the first half of the year, right after my diagnosis, I was constantly moving between hospitals to talk to different doctors and understand the best strategies for my initial round of treatments. Those chemo treatments, it turned out, often made me too tired to get any work done. I wanted to continue working for MacStories because it was a healthy distraction that kept my brain busy, but my MacBook Air was uncomfortable to carry around and I couldn’t use it in my car as it lacked a cellular connection. By contrast, the iPad was light, it featured built-in 3G, and it allowed me to stay in touch with the MacStories team from anywhere, at any time with the comfort of a large, beautiful Retina display.

Today’s MacBook Air is easier to carry around than an iPad Pro with a keyboard, and it has an even larger Retina display. Inexplicably, Apple still hasn’t added a cellular option.

Today, the iPad Pro is my laptop, the iPhone is my pocket computer, and the Mac is the third device that's better at specific tasks.

[…]

At a fundamental level, after seven years of daily iPad usage, I believe in the idea of a computer that can transform into different form factors. The iPad is such a device: it gives me the freedom to use it as a tablet with 4G while getting some lightweight work done at the beach, but it becomes a laptop when paired with a keyboard, and it turns into a workstation when hooked up to an external display, a USB keyboard, and a good pair of headphones. For me, the iPad is the ultimate expression of the modern portable computer: a one-of-a-kind device that morphs and scales along with my habits, needs, and lifestyle choices.

It doesn’t seem like Mac hardware is on track to be able to do all the things iPads can do (cellular, transformable, pencil, fast displays), but neither does it seem like iPad software is on track to be as powerful and flexible as Mac software.

Previously:

WWDC 2019 Preview

Becky Hansmeyer:

WWDC is now just two weeks away, so I thought I’d share what I’m hoping for in the way of developer tools/APIs.

Nick Heer:

For old time’s sake, I wanted to put together one of those part-retrospective part-speculative pieces where I point out some of the new things I’d like to see this year. Maybe some of these things will be introduced, and that would be cool; I wouldn’t bet on too much of this list, though. These are just a few things that have been swirling in my head.

Damien Petrilli:

My WWDC 2019 wishlist:

- fix the documentation

Previously:

Monday, May 20, 2019 [Tweets] [Favorites]

Google Pulls Huawei’s Android License

T.C. Sottek (Hacker News 3):

Following the US crackdown on Chinese technology companies, Google has cut off Huawei’s Android license, dealing a huge blow to the besieged phonemaker. Reuters first reported the news, and The Verge subsequently confirmed Google’s suspension of business with Huawei with a source familiar with the matter.

[…]

Speaking to Reuters, a Google spokesperson confirmed that “Google Play and the security protections from Google Play Protect will continue to function on existing Huawei devices.” So while existing Huawei phones around the world won’t be immediately impacted by the decision, the future of updates for those phones as well as any new phones Huawei would produce remains in question.

Horace Dediu:

Huawei is nearly the world’s biggest smartphone vendor. Their exclusion from licensed Android and fork away from Google is the biggest news in smartphones since, well, Android.

Update (2019-05-21): Ben Thompson:

Huawei’s preparation for this moment likely started last year when a similar ban was placed on the sale of American component to ZTE[…]

Update (2019-05-22): Tom Warren (tweet, Hacker News):

Chip designer ARM has suspended business with Huawei, threatening the Chinese company’s ability to create its own chips. BBC News reports that ARM employees have been instructed to halt “all active contracts, support entitlements, and any pending engagements” with Huawei due to the US trade ban. The US has banned any US companies from doing business with the Chinese telecom giant without permission from the American government, but ARM is based in the UK and owned by the Japanese SoftBank group.

ARM is concerned it is affected by the US ban, with an internal memo reportedly revealing that its chip designs include “US origin technology.” ARM develops some processor designs in Austin, Texas and San Jose, California, which could place it under the US restrictions.

Timery for Toggl

John Voorhees:

Time tracking helps me weigh the value of the time I spend on every project, identify inefficiencies in the way I work, and acts as an early warning system to avoid burnout.

[…]

I’m still using Toggl in a Fluid browser on my Mac, but since last summer, I’ve been using the beta of Joe Hribar’s Timery on iOS and loving it. In fact, Timery is so good that even when I’m at my Mac, I find myself turning to it to start and stop timers instead of the web app.

[…]

Timery has helped me make peace with time tracking. Where years ago, it was a tedious process of recording detailed notes by hand, now it’s a simple, streamlined process. Instead of being an interruption and something that fed an invoicing system, time tracking has become a tool that helps me work better than before.

I have been using Hours, which can optionally work completely on-device, without a Web service.

Previously: Timing 2 for Mac.

Beware iCloud Video Syncing

Tyler Hall:

Get home, back on WiFi, start uploading everything to iCloud and Google Photos. After an hour or two everything’s synced.

Problem: All videos, of any length, stutter, stall, and skip frames in both Photos.app (macOS) and Google Photos on every Mac I try.

[…]

This is a core competency of iOS that should never, ever fucking break for any reason. Apple markets iPhone’s camera as a top selling point – if not THE selling point.

Lucky for me, I’m tech savvy enough to know about Image Capture.app buried inside macOS’s Utilities folder. So I give it one last try using that to transfer the corrupted videos manually off my phone and into Photos.app and Google Photos.

It works. My memories are safe.

Wow, I guess I need to check all our family videos now. It’s possible I’ve been backing up damaged versions, and the good copies would be lost if I pruned our iCloud Photo Library to save space. Hopefully they weren’t already lost when my wife upgraded her iPhone last year. This is not the sort of thing that can be recovered from a backup because iOS cloud backups don’t include the contents of the Photos library if you’re using cloud syncing.

Previously:

The State of Apple’s Developer Documentation

Scott Anguish:

It appears that most of the old iOS conceptual documents have been moved to the documentation archive and are now unsupported.

Is there really no iOS Text Programming concepts? Or are the indexes just that bad?

That is more than a decade of work by dozens, just being abandoned.

I can’t even grasp how that’s any solution.

If this is the case every single iOS developer should be screaming from the rafters. It’s by far the stupidest move I’ve seen in a decade.

You can’t write apps without authoritative docs.

It’s bad enough the reference doc has reached the point it has.

It’s surprising how much of the documentation is marked as legacy, archived, not up-to-date, or was never written in the first place. At first I thought this was because of some sort of internal transition, but it’s been going on for years now and does not seem to be getting any better.

Steve Tibbett:

As far as I can tell, this is the only documentation on IAP receipt validation. This is part of a current system that’s making Apple billions of dollars. There are errors in it, and it’s “no longer being updated”.

Martin Pilkington:

Fun fact: when I was looking up docs for Help Books for my Appreciating AppKit post, one of the few Mac features already supported in Marzipan, it took ages to find as they’re only available in the documentation archive

Matt Stevens:

If you’re struggling to find an Apple developer document you know exists, it’s not just you. http://developer.apple.com’s robots.txt disallows /library/archive/, where all of the old docs now live. Apple’s own “Search Documentation Archive”…doesn’t search the archive.

Previously:

Update (2019-05-21): Wood Borer:

I remember the good old days when people were annoyed that you couldn’t figure out Cocoa bindings without the stuff mmalc posted on his personal website. That was nothing compared to when the doc browser turned into a lousy webpage instead of Cocoa views and Search Kit.

Randy Scovil:

I’m wondering how much has really disappeared. I used to point students there all the time for source code examples and now I find most any search for those comes up empty. Que?

Jonathan Fischer:

For what it’s worth, DuckDuckGo seems to be ignoring that robots.txt entry for /library/archive. I usually find what I’m looking for without much trouble:

Francisco Tolmasky:

Died Apple just not document AppKit anymore? I can’t find anything about NSWindowTab. Is all information just in like WWDC videos?

See also: Hacker News.

X0R:

Sad but true. 10 years ago when I were starting to learn iOS development it was one of the best documentations I’ve ever worked with. And now it’s more like Microsoft’s in it’s dark age.

Update (2019-05-22): macshome:

One of my biggest issues with the new docs page is discoverability. And yes, I’ve filed radars on it.

Kyle Howells:

This is now my number one WWDC wishlist item.

Anything else is a bonus, but Apple’s documentation has fallen so far the knowledge about how the platform works is now being buried in archived documents, old WWDC videos and release notes.

Friday, May 17, 2019 [Tweets] [Favorites]

Three iOS Keyboard Changes Apple Should Make

Dan Moren:

I’ve become more and more puzzled about autocorrect in recent years. In my personal experience, it’s become both worse at fixing legitimate typos and more aggressive about taking actual words and turning them into nonsense. The latter is many times more frustrating; I’ve watched more than a few sentences turn incomprehensible before my very eyes.

[…]

Personally, I’ve been impressed with swipe typing when I’ve used it in other keyboards—the biggest thing holding me back is that it’s not available on the system keyboard. Third-party keyboard support is still limited on iOS, and it’s often buggy and crash-prone.

[…]

Apple already offers a way to search for emoji on the Mac, it’s more than a little puzzling that it wouldn’t make a similar feature available on iOS.

Previously:

Microarchitectural Data Sampling (MDS) Mitigation

Ross Mcilroy et al. (via Hacker News):

This paper explores speculative side-channel attacks and their implications for programming languages. These attacks leak information through micro-architectural side-channels which we show are not mere bugs, but in fact lie at the foundation of optimization. […] As a result of our work, we now believe that speculative vulnerabilities on today’s hardware defeat all language-enforced confidentiality with no known comprehensive software mitigations, as we have discovered that untrusted code can construct a universal read gadget to read all memory in the same address space through side-channels. In the face of this reality, we have shifted the security model of the Chrome web browser and V8 to process isolation.

Liam Tung (via Reddit):

Major slowdowns caused by the new Linux 4.20 kernel have been traced to a mitigation for Spectre variant 2 that Linux founder Linus Torvalds now wants restricted.

PierreLebeaupin:

It’s hard to believe it has now been more than one year since the disclosure of Meltdown and Spectre. There was so much frenzy in the first days and weeks that it has perhaps obscured the fact any solutions we currently have are temporary, barely secure, spackle-everywhere stopgap mitigations, and now that the dust has settled on that, I thought I’d look at what researchers and other contributors have come up with in the last year to provide secure processors – without of course requiring all of us to rewrite all our software from scratch.

Apple (via Benjamin Mayo):

Intel has disclosed vulnerabilities called Microarchitectural Data Sampling (MDS) that apply to desktop and notebook computers with Intel CPUs, including all modern Mac computers.

Although there are no known exploits affecting customers at the time of this writing, customers who believe their computer is at heightened risk of attack can use the Terminal app to enable an additional CPU instruction and disable hyper-threading processing technology, which provides full protection from these security issues.

[…]

Testing conducted by Apple in May 2019 showed as much as a 40 percent reduction in performance with tests that include multithreaded workloads and public benchmarks.

John Gruber:

It’s good that there are no known exploits using these techniques, but even if there were, the overwhelming majority of Mac users — almost everyone — would not need to enable this mitigation. These MDS vulnerabilities enable malware on your computer to do bad things. But these vulnerabilities are not ways for malware to get onto your computer.

However, it sounds like the fix is finally a way to work around the hyper-threading bug that can lead to data corruption on my iMac, amongst other Macs.

Previously:

Dynamic Equality Checking and Equatable

Tanner Bennett (tweet):

Note that the arguments for == are defined as Self rather than Equatable. This has some implications and benefits[…]

[…]

The use of Self as in Equatable’s definition restricts how Equatable can be used. You cannot declare collections or variables as a protocol type, like you can in Objective-C.

[…]

Many APIs vend Any, such as JSONSerialization’s .jsonObject(_:_:) methods. For testing purposes, you may want to compare the output of these methods to one another. You’ll quickly find you can’t[…]

See also: Adding a polymorphic Equatable?, Protocol-Oriented Programming in Swift.

Previously:

The Potential Advantages of a JavaScript Whitelist

Brent Simmons:

What I want is two related and similar things:

  • The ability to turn off JavaScript by default, and turn it on only for selected sites. (For me that would be sites like GitHub.)
  • The ability to turn off cookies by default, and, again, turn them on only for selected sites.

If it‘s the opposite — if I have to blacklist instead of whitelist — then I’d be constantly blacklisting. And, the first time I go to a site, it gets to run code before I decide to allow it.

Nick Heer:

When you think about it, it’s pretty nuts that we allow the automatic execution of whatever code a web developer wrote. We don’t do that for anything else, really — certainly not to the same extent of possibly hundreds of webpages visited daily, each carrying a dozen or more scripts.

[…]

It’s baffling to me that trackers, ad networks, cryptocurrency miners, and image lightboxes are all written for the web in the same language and that there is little granularity in how they’re treated. You can either turn all scripts off and lose key functionality on some websites, or you can turn everything on and accept the risk that your CPU will be monopolized in the background.

What if pages were allowed a certain amount of JavaScript CPU time, beyond which they had to request more from the user?

I would also like to see a report of what the JavaScript is doing, i.e. which information it’s reading and which servers it’s contacting. Part of the reason things have gotten so out of hand is that users can’t see what’s happening. I like how the iCab browser would always report whether a page had valid HTML, and how the macOS battery menu shows which apps are using significant energy.

Kyle Howells:

My number one feature request for Safari, a whitelist for Javascript use, defaults to disabled when whitelist enabled. Battery life doubled in one feature!

Previously: Intelligent Tracking Prevention 2.2.

Update (2019-05-21): It looks like Chrome already implements what Simmons is suggesting.

Thursday, May 16, 2019 [Tweets] [Favorites]

How Safari Puts Weblocs on Pause

Howard Oakley:

Safari 12.1.1 can make perfectly good webloc files from its bookmarks, for example by dragging them from Bookmarks in the sidebar. But when they’re dragged in a folder from the Bookmarks page, it refuses to close and release them so that other apps can move or, in many cases, even open them. The only solution is to quit the Safari app, which automatically releases those webloc files so that they can work normally.

It seems to be an issue with file coordination, rather than the file being left open in the Unix sense. The latter, which I tend to see when creating PDF files, is arguably worse because you’re allowed to copy and manipulate a file that may be in the process of changing, whereas the Safari bug prevents you from using the file but doesn’t put you at the risk of data corruption.

Previously:

Detaching Safari’s Downloads Popover

Ricky Mondello:

Did you know that you can drag Safari’s Downloads popover by its title into being a detached, free-standing window, so you can more easily monitor your long-running downloads?

This is actually a general feature of popovers in macOS. For example, you can also use it to detach multiple Calendar events to compare or to leave on-screen for reference. (However, it doesn’t seem to work with Fantastical events—I guess they are either not standard popovers or detaching has been disabled.)

Previously: More Undiscoverable Gestures.

PDFpen 11

Smile:

Top features you’ve requested in v11:

  • Split-view mode for editing
  • New Font Bar for expressive font control
  • Import scans from Continuity Camera
  • Customize page-number locations
  • Add multiple items to the Library at once
  • Option to turn off guides
  • Medical/Legal dictionaries for OCR (English language)
  • Automatic deskew independent of OCR
  • […]

Interestingly, they are offering an upgrade path from the Mac App Store to their store:

  1. Download PDFpen 11 or PDFpenPro 11 from our site.
  2. Launch v.11. It will prompt you to locate your Mac App Store app so that we can verify the receipt.
  3. If your upgrade is…
    – Free you’ll be prompted to enter your name and email address, and will be issued a free license for v.11. Finished!
    – Not free you can click on “Buy an upgrade license” for upgrade pricing.
  4. Go through the screens to purchase the US $30 upgrade to v.11 or the US $50 upgrade to PDFpenPro from PDFpen.
  5. Complete your purchase and PDFpen/PDFpenPro will register with your new license. You will also receive an email of your new license for your records.

This sounds like what Omni tried back in 2013 but had to retract. The difference, I guess, is that Omni actually generated a full serial number for the old version (which was then eligible for upgrade pricing), whereas Smile is just giving you the upgrade pricing directly. Based on Apple’s stated reasoning before, I would expect for them to have a problem with this, too. But perhaps (hopefully) the unwritten rules have changed again.

Previously:

Valve’s Steam Link App Now Available

Juli Clover:

Valve’s Steam Link app, which is designed to let you play Steam games on your iPhone, iPad, or Apple TV has finally made its way to iOS and is available for download as of today.

Valve first announced the Steam Link app in May 2018 and planned to launch it soon after, but Apple ended up rejecting the app due to “business conflicts.”

[…]

Valve said that it would remove the ability to purchase apps from within Steam Link in an effort to get Apple to approve the app, which may have allowed it onto the App Store. When connecting Steam Link to a PC or Mac, the main view is of your library, aka the games you’ve already purchased, and there is no readily apparent option for purchasing content directly on your iOS device.

Apple is always looking out for the customer experience.

Steve Troughton-Smith:

I’m sure the antitrust ruling had nothing to do with its sudden appearance

Thomas Clement:

Users scared Apple might arbitrarily kill a third-party app availability (SteamLink). That’s the world we live in now.

Previously:

It seems bizarre to me that it took a year to resolve this, but I’m glad Apple decided it correctly.

Wednesday, May 15, 2019 [Tweets] [Favorites]

Designing a Dark Theme for OLED iPhones

Vidit Bhargava (via Ryan Jones):

In an OLED display, the black pixel is essentially a pixel that’s turned off. It doesn’t consume any power. This is why OLED are able to show such rich dark colours and why dark themes are power-efficient.

However, When an interface that uses a black theme for its background starts displaying content on the screen, the pixels needs to switch on before they can display the content. So, when you’re scrolling through the content in a black background, the pixels find it hard to keep pace with your scrolling, resulting in a smear on the screen.

He solves this by using dark grey, which still uses significantly less power than white.

Previously: Upgrading From an iPhone SE to an XR.

My Google Activity

Feross:

Stop what you’re doing and turn on “Auto-delete your Web & App Activity” in your Google account.

Set it to the minimum “Keep for 3 months”.

Once you’ve done that, also turn off as many tracking options as you can here.

In some cases, you can also prevent activity from being saved in the first place. I have everything turned off except for location history, which really improves the experience in the Google Maps app.

Amazon S3 Path Deprecation Plan

Jeff Barr:

Even though the objects are owned by distinct AWS accounts and are in different S3 buckets (and possibly in distinct AWS regions), both of them are in the DNS subdomain s3.amazonaws.com. Hold that thought while we look at the equivalent virtual-hosted style references (although you might think of these as “new,” they have been around since at least 2010)[…]

[…]

Support for the path-style model continues for buckets created on or before September 30, 2020. Buckets created after that date must be referenced using the virtual-hosted model.

Image Resizing Techniques

Mattt Thompson:

There are a number of different approaches to resizing an image, each with different capabilities and performance characteristics. And the examples we’re looking at in this article span frameworks both low- and high-level, from Core Graphics, vImage, and Image I/O to Core Image and UIKit[…]

Jeff Nadeau:

If you want to cache a downsampled rendition of some source image, try a block-based NSImage. It’ll cache for you, and it’ll maintain it in the right backing format for display. Pretty low effort for broadly desirable performance characteristics.

Tuesday, May 14, 2019 [Tweets] [Favorites]

macOS 10.14.5 Whitelists Kernel Extensions

Howard Oakley:

Until 10.14.5, AppleKextExcludeLList.kext contained one Property List, KnownPanics.plist, which detailed kernel extensions known to Apple to be the cause of kernel panics, thus excluded from loading in Mojave; that hasn’t changed in 10.14.5. That kext now contains a second property list, ExceptionLists.plist, which is a long dictionary of “secure timestamp exceptions”.

Each entry consists of a string of hex digits, which is presumably an identifier or hash, together with the kext ID (such as com.thiscompany.mykext) and its version number. These appear to be an exhaustive list of over 18,000 existing kernel extensions which have been granted exceptions to the notarization requirement.

Previously:

iOS 12.3’s TV App

Chris Welch:

The redesigned Apple TV app, first announced back at the company’s March event, is being released today on iOS, Apple TV, and Samsung’s latest smart TVs. To make that happen, Apple is rolling out updated versions of iOS and tvOS with a refreshed look and support for a new lineup of paid Apple TV Channels, including HBO, Showtime, Starz, Epix, and other networks. Users can subscribe to Apple TV Channels directly from the Apple TV app, and all content can be watched from right inside the app as well.

Chaim Gartenberg (tweet):

There’s simply no way around it — actually watching video using Apple’s native TV app is just an appalling user experience. Here’s how it works: if you’re watching a video on the TV app — presumably, one that you bought or rented on iTunes, streamed through one of Apple’s native partner channels, like HBO or Showtime, or whatever the method for using Apple TV Plus will be — on an iOS device, it will play in portrait. It also looks terrible.

If your device is set in rotation lock — as most iPhones tend to be in my experience — there is no way to watch video in landscape. The only way is to disable rotation lock, which requires swiping down into the control center (since there’s no way to access it directly on the playback screen), and then rotate the device. There is also no way to lock it in landscape mode once rotated, so better make sure to hold that phone steady.

[…]

It was only when Apple released iOS 11 that portrait was made default, and it’s been stuck that way ever since.

Meek Geek:

Failing at the basics.

Video playback isn’t hard: If it is 16:9 or wider, lock the device to landscape and only allow it to be rotated 180°. This should be an OS-level default that developers have to override, so everyone benefits.

Mike Hay:

Hey @tim_cook, the Apple apps are supposed to set the standard right?

The subscription text is so small here that any 3rd party app would have been rejected immediately.

Damien Petrilli:

And still no chapter in movies like the old Movie app did since day 1.

Walt Mossberg:

Got the new AppleTV app on iPhone, iPad & Apple TV. Unlike what every review says, I have no “For You” section on any of them. Also, I have an entire row of what’s playing on @hbogo, & the shows play great. But also a huge offer to subscribe to @hbonow.

Ryan Jones:

What the F is this centering. And tap-down state.

Previously: The Sad State of iOS 11’s TV App.

Update (2019-05-16): Dan Masters:

If anybody has tried playing music videos in Apple Music, they won’t be at all surprised by this.

Warren Buffett’s Paper Wizard

Joe Rossignol:

While the game’s developer is listed as Wildlife Designs, Inc on the App Store, the app is copyrighted, maintained, and operated by Apple according to its terms and conditions, making this the first game Apple has developed for the iPhone since Texas Hold’em back when the App Store launched in 2008.

[…]

In an interview with CNBC, Cook said Buffett has made it clear he does not invest in technology companies, meaning he “obviously views Apple as a consumer company.”

A thousand no’s for every yes. And why is Cook proud that Apple is not seen as a technology company? With the services focus, should we view it more like a utility or cable company?

Marco Arment:

Best take on the bizarre Warren Buffet game was on @_connectedfm

I tend to agree with Stephen Hackett. Cook seems to delight in celebrities and goofy stuff like this, much moreso than in product details.

Joe Rossignol:

Given that Warren Buffett’s Paper Wizard only takes minutes to complete, and that Buffett’s high score of 15,350 is seemingly unbreakable, the game appears to be little more than a short-lived novelty. As such, it is not all that surprising that the game has already been pulled internationally.

Previously:

Adobe Case Study in Why Customers Don’t Like Subscriptions

Juli Clover:

Adobe today quietly debuted new pricing for its Photography bundle, which has long been available for $9.99 per month. Starting today, Adobe’s website is listing a price tag of $19.99 per month, which is double the previous price.

[…]

Most users appear to be seeing the updated pricing on the Adobe website, but there is a hidden section of the site where one can still purchase the Photography plan for $9.99 per month.

It looks like it’s still planning to bill me at $9.99. That already seemed steep, given that I don’t use Creative Cloud or Photoshop—only Lightroom CC, which was previously a $149 one-time purchase. However, I still like Lightroom (UI weirdness aside), and post-Aperture I prioritize choosing a product that seems seem unlikely to disappear.

Ashley Lynch (Hacker News):

Adobe is no longer allowing subscribers to download previous versions of Premiere and is even sending notices to people who still have them installed to say they’re no longer allowed to use them.

Matt Roszak (Megan Fox):

I just got an email from @Adobe that I’m no longer allowed to use the software that I’m paying for. Time to cancel my subscription I guess.

William Gallagher (MacRumors):

Users of older versions of Creative Cloud apps, including Photoshop, Premiere Pro and Lightroom Classic, have been told by Adobe that they are no longer licensed to use them, and anyone who continues to use these versions could face “infringement claims” from other companies.

[…]

Prior to the creation of the Creative Cloud subscription service, Adobe licensed certain technologies from Dolby with an agreement based on how many discs of certain apps were sold. Now that the software is distributed online, the companies reportedly renegotiated their agreement to be based on how many users are actually running the software.

According to Dolby’s legal filing, this agreement was subject to the figures Adobe reported being examined by a third-party audit. “When Dolby sought to exercise its right to audit Adobe’s books and records to ensure proper reporting and payment, Adobe refused to engage in even basic auditing and information sharing practices; practices that Adobe itself had demanded of its own licensees,” says the filing.

[…]

Earlier in May, Adobe announced that that users will no longer be able to stay on just any older version they want.

akersten:

So Adobe has a licensing issue with Dolby or an “other third party” as they put it - and end users who paid for the software as recently as 3 months ago are supposed to switch versions in the middle of a project, or be “subject to infringement claims”(!?) in some IP proxy war?

It seems like this is Adobe’s problem. I don’t know if throwing their customers under the bus was a sad attempt at fomenting pressure on Dolby to capitulate, but it’s really scummy and a bad look for Adobe.

Shawn King:

I got my “cease and desist” letter. Adobe continues to make decisions that hurt average customers. It’s unlikely individuals would “face potential “infringement claims” from Dolby and Adobe is just using the wording as a scare tactic.

Previously:

Update (2019-05-16): Wojtek Pietrusiewicz:

I just want Lightroom Classic and I couldn’t care less about the rest, yet I am forced to pay for unused features. Adobe’s Creative Cloud is a very frustrating experience.

How the Apple Store Lost Its Luster

Mark Gurman and Matthew Townsend (Hacker News):

In interviews, current and former Apple employees blame a combination of factors. They say the stores have become mostly an exercise in branding and no longer do a good job serving mission shoppers like Smith. Meanwhile, they say, the quality of staff has slipped during an 18-year expansion that has seen Apple open more than 500 locations and hire 70,000 people.

[…]

The overhaul of the Genius Bar has been especially controversial. Customers looking for technical advice or repairs must now check in with an employee, who types their request into an iPad. Then when a Genius is free, he or she must find the customer wherever they happen to be in the store. Ahrendts was determined to get rid of lineups, but now the stores are often crowded with people waiting for their iPhones to be fixed or batteries swapped out.

The Genius service also lost the human touch. In the past, Geniuses could work on a Mac or iPhone right at the counter, chatting and explaining what they were doing.

Nick Heer:

The store I most frequently visit when I need support has a really strange vibe around the Genius Bar. I guess the intent is that, while you’re waiting five to forty-five minutes for your technician, you can look around for stuff to buy. But I don’t see people doing that. I see lots of people sitting awkwardly waiting at tables with lots of other people also sitting awkwardly. All of us just want our products fixed so we can go home.

Mark Gurman:

A former Apple retail exec tonight: “It was a wholesale leadership takeover by fashion industry insiders and agency people who had no idea what they were doing with Apple. Most of the folks who knew better are long since gone. O’Brien has her work cut out for her.”

Mitchel Broussard:

One former Apple executive said that O’Brien is looking to borrow from the past and break up Apple stores into more clearly defined sections. These include areas that promote Apple’s growing services business, like Apple Music and Apple TV+. A few employees speculated that she will also bring back the original Genius Bar.

Alex Johnson:

Did an iPad trade-in: was what I said it was. Changed offer: no ability to speak to a person. Contrast @gazelle : real people. Retail: per Bloomberg story. iCloud billing: where to begin.

Previously:

Monday, May 13, 2019 [Tweets] [Favorites]

App Store Monopoly Lawsuit

NY Times Editorial Board:

The actions by Apple highlight the inherent tension in the company’s fierce control over its mobile operating system: On the one hand, the closed environment is a boon to consumer privacy because the company has the leverage to insist upon it; on the other hand, that environment fosters a kind of monopoly.

Adi Robertson (MacRumors):

The Supreme Court is letting an antitrust lawsuit against Apple proceed, and it’s rejected Apple’s argument that iOS App Store users aren’t really its customers. The Supreme Court upheld the Ninth Circuit Court of Appeals’ decision in Apple v. Pepper, agreeing in a 5-4 decision that Apple app buyers could sue the company for allegedly driving up prices. “Apple’s line-drawing does not make a lot of sense, other than as a way to gerrymander Apple out of this and similar lawsuits,” wrote Justice Brett Kavanaugh.

Apple had claimed that iOS users were technically buying apps from developers, while developers themselves were Apple’s App Store customers. According to an earlier legal doctrine known as Illinois Brick, “indirect purchasers” of a product don’t have the standing to file antitrust cases. But in today’s decision, the Supreme Court determined that this logic doesn’t apply to Apple.

Ryan Jones:

I believe this is true and right.

Only Apple charges, refunds, owns the customer relationship, sends receipts, etc.

Marco Arment:

I’m no lawyer, but two things have been obvious to me:

- Customers absolutely buy apps from Apple, not developers.

- Apple’s requirement that all in-app transactions go through their system (which takes 30%) is anticompetitive, and should absolutely be challenged by regulators.

Add this to the pile of significant legal anticompetitive challenges that Apple faces by their in-app purchase rules.

They’ll never allow sideloading or reduce the 30%, but I expect all of this to result in a relaxing of the “can’t even mention other payment methods” rule.

Michael Love:

Could be forced to do a lot more, c.f. Microsoft having to un-bundle IE; Apple could be compelled to not only allow other app stores but actually provide a startup alert to invite you to pick an alternate one.

Steve Troughton-Smith:

If antitrust rulings against Apple are finally what it takes to bring Gatekeeper to iOS, then so be it. It is crazy that non-developer users pay for $100 developer accounts just to sideload apps

Previously:

Update (2019-05-14): John Paczkowski (Stephen Nellis):

Here’s Apple’s statement on the #SCOTUS antitrust ruling

Michael Love:

This is… not great spin. And “if the developer chooses to sell digital services through the App Store” is outright misleading - if you choose to sell digital goods for one of the world’s two main mobile operating systems, you have to pay Apple their 30%.

And in the US at least Apple controls more than half of the mobile OS market (almost 2/3) - if you want to sell digital goods of any kind to the majority of Americans, you have to pay Apple 30%, you’re not really offered a ‘choice’ to distribute through the App Store.

Kyle Howells:

1. Yes Apple holds a complete monopoly on iOS users with the AppStore and aggressively shuts down any other options.

2. Simultaneously “app buyers could sue the company for allegedly driving up prices” is laughable. The AppStore is a race to the bottom.

Ben Thompson:

The antitrust case against the Apple App Store is going to move forward. It’s the wrong decision, and the reasons why explain why new legislation is needed.

Michael Love:

I get Ben’s argument, but I can’t sue Apple, because the systems that are supposed to ensure that Apple can’t punish me for suing them are not reliable enough for me to stake my livelihood on. So only way to see justice is to let consumers sue.

Also, I would put myself forward as a textbook example of Apple’s 30% being passed onto consumers: I pay quite substantial royalties on a lot of the stuff I sell and my prices are to a large extent determined by what margins I can live with on that content.

Joe Fabisevich:

I think Apple abuses its App Store monopoly but that this case was ruled incorrectly, and the conservative side of the Supreme Court ruled correctly but lost in this case. If you need me I’ll be hiding in my hole where Twitter doesn’t exist for a bit.

What to Expect from Marzipan

Craig Hockenberry (tweet, Hacker News):

It will be exciting for a lot of developers, including yours truly, to press that button. But it’s also important to temper this enthusiasm with reality: that build setting is just the first step on a long and complicated road. Good interaction doesn’t come for free.

As you saw above, the Mac has seen a lot of tool and framework transitions. But this is the first transition which involves a large group of developers who don’t have any experience on the platform they’re targeting. A Mac developer moving from CodeWarrior and C++ to Project Builder and Objective-C didn’t have to learn anything new about conventions: they were still on a Mac. That can’t be said about iOS developers who are starting to use Marzipan.

[…]

Many of the thoughts in this essay got their start while developing a tvOS app: I found that having a common user interface toolkit wasn’t much help. It’s nice to have familiar UIKit items like UIImage, UIColor, and UIButton, but in the end I found that little code was shared between platforms. Some views could be ported directly between platforms, but anything involving a controller was out of the question.

[…]

Keeping two wildly different groups of customers happy with a single app won’t be an easy task, but it’s one that you’re going to be taking on with Marzipan.

[…]

It’s my opinion that Universal apps were the worst thing to ever happen for the iPad ecosystem. There’s no way for a developer to recoup the costs for new interactions and the extra work needed for more sophisticated apps. Apple makes it easier for a customer up front by offering a single download, but at the same time they make things worse because a Universal version of the user’s favorite app isn’t financially viable.

Brent Simmons:

As a Mac developer, you should do what other Mac developers do: understand and respect the platform and get help from Mac users, power users, and fellow Mac developers.

I’ve always found that Mac users are rooting for our success. They want us to make great apps — and they reward us for it. It’s a smaller, more intimate community, and warmer than iOS world. But you can also blow it by not trying, by not respecting the Mac and Mac users.

Craig Hockenberry:

Here’s a thread of some thoughts that didn’t make it into the post (it was already too long!)

Martin Pilkington:

I often feel that AppKit is under-appreciated by those who don’t have a lot of experience with it, and especially with switching back and forth between Mac and iOS development. To help try and fix that, I am going to go through some of the features in AppKit that don’t exist in UIKit. In this post I’ll cover the many controls of AppKit, and in a future post I’ll go into some of the less user-facing features.

Dimitri Bouniol:

I feel like neither AppKit nor UIKit, nor a “declarative framework” that sits on top of either, depending on the platform, is really the right answer.

AppKit is amazing in that it allows an app’s UI to easily match system conventions, but needs easy customizability badly.

Similarly, UIKit offers a huge amount of flexibility to customize system components, and make new controls, but lacks the depth that AppKit has in terms of great defaults for a newly developed app.

I feel like the ideal on both platforms would really be to have a cleaned up version of AppKit that offers the visual customizability of UIKit, but starts with an excellent set of defaults that any app should expect to have.

Previously:

.NET 5 = .NET Core vNext

Microsoft (Hacker News):

Today, we’re announcing that the next release after .NET Core 3.0 will be .NET 5. This will be the next big release in the .NET family.

There will be just one .NET going forward, and you will be able to use it to target Windows, Linux, macOS, iOS, Android, tvOS, watchOS and WebAssembly and more.

[…]

This new project and direction are a game-changer for .NET. With .NET 5, your code and project files will look and feel the same no matter which type of app you’re building. You’ll have access to the same runtime, API and language capabilities with each app. This includes new performance improvements that get committed to corefx, practically daily.

[…]

Objective-C and Swift interoperability will be supported on multiple operating systems.

Frank A. Krueger:

What lessons can be learned from .NET Framework’s replacement by .NET Core/.NET 5? Platform lock-in is bad? Backwards compatibility can only be achieved for fixed time? Consolidation’s energy efficiency outweighs diversity? Names are arbitrary? Sic transit gloria mundi?

See also: .NET Dynamic Code Execution.

Previously:

Google’s Apparent Turnaround on Privacy

Lauren Goode:

On Tuesday, The New York Times ran an op-ed about privacy written by Google CEO Sundar Pichai, in which he argued that privacy is not a luxury good, and that Google intends to give people “clear, meaningful choices” around their data. On the same day Pichai’s op-ed ran, Google held its annual developer conference, I/O, where it announced that Android Q, its latest mobile operating system, would ship with something like 50 privacy and security features.

[…]

But as Google increases the number of privacy features—part of an attempt to scrub its reputation clean of data-tracking dirt—the setup of the settings, toggles, and dashboards within its apps seems to put more responsibility on the individual user rather than the platform. As Pichai himself said, Google aims to give people “choices.” So it’s your choice if you want to take the time to adjust, monitor, take out, or toggle something off. Just like it’s Google’s choice to not change its fundamental approach to gathering data to help better target advertising and thus make heaps of money.

Google:

We announced at I/O that we will be updating Chrome to provide users with more transparency about how sites are using cookies, as well as simpler controls for cross-site cookies. We will preview these new features later this year.

We are making a number of upcoming changes to Chrome to enable these features, starting with modifying how cookies work so that developers need to explicitly specify which cookies are allowed to work across websites — and could be used to track users.

Chris Smith:

A report says that Google will launch a new feature for the Chrome browser that will make it a lot harder for companies to track you online, but only as long as those companies are not Google.

John Wilander:

What Chrome has announced is a change to their default cookie policy, going from allowing third-party cookie access to not allowing it. However, developers can simply reconfigure their cookies to opt out this new policy and we should expect all trackers to do so immediately.

For a cookie policy to have meaningful effect on cross-site tracking, you also need to partition storage available to third-parties, such as LocalStorage, IndexedDB, ServiceWorkers, and cache. Safari is the only major browser to have such partitioning and we shipped it in 2013.

Nick Heer:

It looks like something spooked Facebook and Google. Instead of ignoring the privacy implications inherent to their business models, they both decided to reposition themselves as privacy-forward companies. Facebook did so by having an op-ed from its CEO published in a national newspaper, and by trying to redefine privacy itself. Google’s strategy has, so far, been similar.

Jack Wellborn:

The use and presentation of this bulleted structure would have a glancing reader coming away with the impression that Apple merits the most skepticism and that Google is doing the most for their privacy. Even close readers could easily come away thinking that the companies are effectively no different when it comes to their privacy.

Whether you trust these companies in the long run or not, the false equivalency rewards the worst privacy offenses happening right now.

Ben Thompson:

Google, on the other hand, didn’t just admit it collects data, it highlighted how that collection makes Google more helpful. Google didn’t just admit that its goal is to be the Aggregator of information for every customer on earth, it bragged about that fact. And Google certainly didn’t engage in any self-effacing comments about how technology could be used for both good and bad: the entire keynote was arguing that technology is not only good, it is going to get better, and Google will lead the way.

David Sparks:

When these lines were first drawn years ago, there was a lot more digital ink being spilled on the wisdom of Apple’s position. You don’t hear as much about it lately.

So how is Apple doing? From my experience, Apple still is lagging, but not as much as I worried it might.

Ron Amadeo (via David Heinemeier Hansson):

Migrating to a Google Account means turning all your Nest data over to Google—data that previously had been kept separate.

Previously:

Friday, May 10, 2019 [Tweets] [Favorites]

2019 Apple Keyboard Problems

These days I mostly use the old USB aluminum keyboard.

Update (2019-05-13): Alejandro Ramirez:

Not on the blog: Backlit keycaps on Macbook Pro are transparent plastic coated with black UV paint and laser engraved. A big hand hits ⌘ with the nail, eventually exposing the full brightness of the LED. This wouldn’t happen with double-shot keycaps (a few cents more expensive).

Damien Petrilli:

Same happened to me. It didn’t last longer than 2y.

Craig Grannell:

Even the Magic Keyboards have problems. They are mechanically reliable but not durable with heavy (but standard) use (I’m a writer). This looks like I’ve gouged the A, S and C keys. Not good enough for something that cost me £100.

nubero:

I bought a couple of wired keyboards and mice after it became clear that they would be discontinued. What a completely silly state of affairs…

Google Is Turning Off the Works-with-Nest API

Nest (via John Feminella, Hacker News):

We want to unify our efforts around third-party connected home devices under a single developer platform – a one-stop shop for both our developers and our customers to build a more helpful home. To accomplish this, we’ll be winding down Works with Nest on August 31, 2019, and delivering a single unified experience through the Works with Google Assistant program. See the Works with Nest FAQs section below.

Previously: Twitter Shutting Down APIs.

iPhone XR Sales in Q1 2019

Juli Clover:

Apple shipped over 4.5 million iPhone XR devices during the quarter, and it made up 13 percent of total North American shipments. Samsung’s Galaxy S10+ and Galaxy S10e were the other two most popular smartphones in Q1 2019, accounting for 6 percent of shipments each.

Though Apple’s iPhone XR was the top selling smartphone in North America during the quarter, Apple still saw a 19 percent drop in year-over-year shipments.

It’s no iPhone 5c. These results are from North America, so they can’t be blamed on China, but they don’t seem to be iPhone-specific, either, as the overall market declined by 18%.

Previously:

Dark Mode Support in WebKit

Timothy Hatcher:

With the Safari 12.1 update in macOS 10.14.4, dark mode support in WebKit has arrived.

[…]

Not all web content is simple. For this reason Safari and WebKit do not auto-darken web content — documents will need to opt-in to dark mode. The main way to signal that your content supports dark mode it to adopt the new color-scheme style property, specified in this proposal.

[…]

Defining color-scheme will get you going for simple content. For most web content, you will need to adopt the prefers-color-scheme media query, specified in this proposal, to style elements with custom colors or images. You can use this media query anywhere media queries are supported, such as in <picture> elements or window.matchMedia() for script triggers.

The best way to deploy a dark and light color scheme in your documents is to utilize CSS variables. Then you can easily specify the colors in one place with the media query, and use those variables throughout your stylesheets. When the media query matches, the variables will change wherever they are used — auto switching with any appearance change.

Safari’s Web Inspector now lets you test dark mode without having to switch the entire system.

Steven Sinofsky:

All the energy going into “dark mode” in every app AND every OS while each attempt yields more, not fewer, bugs…feels like just about everyone could prioritize differently.

There I said it.

Ken Kocienda:

I agree with @stevesi. “Dark mode” isn’t bad in any deep sense, and some people like using it, but the effort to implement it everywhere will not yield benefits in line with the cost. It’s a sideways move. It’s industry-wide bike-shedding.

Howard Oakley:

So when you print a window which the user can see, AppKit lets it get printed in Dark Mode if that is in use. That’s not at all helpful, is it?

The answer is to print from a separate off-screen view, which you can set to Light Mode.

Previously:

Update (2019-05-13): Nikita Vasilyev:

Dark Mode in Web Inspector was introduced in Safari Technology Preview last year. This article highlights implementation details which could be helpful for anyone adapting Dark Mode for their websites or web views.

A Conspiracy to Kill IE6

Chris Zacharias (via Tom Warren):

The plan was very simple. We would put a small banner above the video player that would only show up for IE6 users. It would read “We will be phasing out support for your browser soon. Please upgrade to one of these more modern browsers.” Next to the text would be links to the current versions of the major browsers, including Chrome, Firefox, IE8 and eventually, Opera. The text was intentionally vague and the timeline left completely undefined. We hoped that it was threatening enough to motivate end users to upgrade without forcing us to commit to any actual deprecation plan. Users would have the ability to close out this warning if they wanted to ignore it or deal with it later. The code was designed to be as subtle as possible so that it would not catch the attention of anyone monitoring our checkins. Nobody except the web development team used IE6 with any real regularity, so we knew it was unlikely anyone would notice our banner appear in the staging environment. We even delayed having the text translated for international users so that a translator asking for additional context could not inadvertently surface what we were doing. Next, we just needed a way to slip the code into production without anyone catching on.

[…]

Once they realized what had happened, they cornered our boss for details, grappled with the consequences of our actions and begrudgingly arrived at the conclusion that the ends had justified the means. Between YouTube, Google Docs, and several other Google properties posting IE6 banners, Google had given permission to every other site on the web to add their own. IE6 banners suddenly started appearing everywhere. Within one month, our YouTube IE6 user base was cut in half and over 10% of global IE6 traffic had dropped off while all other browsers increased in corresponding amounts. The results were better than our web development team had ever intended.

Previously:

Windows to Include a Full Linux Kernel

Microsoft (via Miguel de Icaza):

We will be shipping a real Linux kernel with Windows that will make full system call compatibility possible. This isn’t the first time Microsoft has shipped a Linux kernel, as we have already shipped one in 2018 when we announced Azure Sphere. However, this will be the first time a Linux kernel is shipped with Windows, which is a true testament to how much Microsoft loves Linux! We’ll be building the kernel in house from the latest stable branch, based on the source available at kernel.org.

[…]

WSL 2 uses the latest and greatest in virtualization technology to run its Linux kernel inside of a lightweight utility virtual machine (VM). However, WSL 2 will NOT be a traditional VM experience. When you think of a VM, you probably think of something that is slow to boot up, exists in a very isolated environment, consumes lots of computer resources and requires your time to manage it. WSL 2 does not have these attributes. It will still give the remarkable benefits of WSL 1: High levels of integration between Windows and Linux, extremely fast boot times, small resource footprint, and best of all will require no VM configuration or management.

What a time to be alive. Does this mean that Microsoft will now ship more up-to-date Unix tools than Apple?

Owen Williams:

Including a Linux kernel in Windows changes the game. Instead of a Linux environment that has barriers and known edge cases, this is a full-on, no-limitation, macOS-esque Linux environment—with a notable improvement: it’s containerized so you can dispose of it and get a fresh environment in a second, then just keep working.

[…]

The master stroke here is that including a Linux kernel in Windows also dramatically changes the cloud story for Microsoft. Windows Server just gained a huge leg up, now able to run Linux and Windows tooling side-by-side on the same system, making developer tooling and deployment of code significantly easier.

[…]

By building the absolute best developer experience—from acquiring GitHub, to creating the most popular coding tool VSCode, and now, a fully-functioning Linux environment, Microsoft can say it provides the best tools for developers, period, wherever they are.

Tom Warren:

Microsoft also announced Windows Terminal today, a new command line app for Windows. It’s designed to be the central location for access to environments like PowerShell, Cmd, and the Windows Subsystem for Linux (WSL).

Casey Liss:

Everyone doing web development switched to using then-OS X back in the aughts because we could run the entire stack locally, natively. And the keyboards worked.

Seems like soon you’ll be able to do the same on Windows. Where the keyboards work.

🧐

Paul Haddad:

MSFT has two different ways of running Linux binaries on a Windows machine but 32 bit Mac binaries are just too much work for Apple.

Alex Stamos:

This is smart and well-timed. Windows is becoming a legitimate competitor to OS X for cloud-native development at a moment when Macbook Pro users are screaming for working keyboards and features like LTE.

Stephen Nellis:

I can envision developers on their 3rd trip to the overrun Union Square SF Apple store to get a MBP keyboard fixed, thinking...well, maybe it”s time to take a look?

Peter Steinberger:

I admire the new Microsoft. Not only are they super transparent about their plans, release everything open source - they also share Twitter handles of the main folks responsible.

Damien Petrilli:

Microsoft is making great progress at attacking macos exactly where it hurts: development.

We are really not far from seeing how Tim Apple miss management is going to kill a lot of Apple’s value for good.

Doug Gregor:

People are excited about a terminal. Either the 90’s are back or it’s a really slow news day in the tech world

Damien Petrilli:

Nope, it just means that now, there is a real competition to macos on the dev side.

A lot of people including myself are on macos because of its UNIX subsystem. It’s the best platform for all open source / programming language.

This could change soon.

Marco Arment:

If you’ve wondered why Microsoft made the VS Code editor, note how many lines go from “First” to “OSX” [sic] to “Visual Studio Code”.

Macs OWNED web development for a decade. But when Apple lost years alienating and neglecting pros, Microsoft had their foot on the gas.

Alex Harden:

VS Code is not my primary editor (@AtomEditor is) but I may end up using it more if/when I end up on Windows 10 this fall on my work computer. I simply can’t justify staying on MacOS for work when @Apple isn’t designing MacBooks for developers any longer.

Marco Arment:

This perspective (a common one) should be most worrisome to Apple:

“The MacBook Pro seems designed for other people’s needs, not mine.”

…especially coming from developers, which Apple has said are their largest category of “pro” users.

Anonymous Genius:

The irony is that Apple messed up the Mac Pro and the MacBooks Pro by solving problems that didn’t need to be solved. They didn’t neglect them: they over-designed them, fixed what wasn’t broken, and then didn’t fix the keyboards when they broke.

Justin Flood:

I’m a pro photographer. I don’t feel like the MacBook Pro is made for me anymore. I work with video editors and VFX people, and musicians who feel the same. This asks the question:

Who IS the MacBook Pro designed for?

Ken Kocienda:

The success of the iPhone, iPad, and Apple Watch relieves much of the burden from Macs to be the “computer for the rest of us”. It means the Mac can stress power and flexibility as a platform for pros, a tool for developers, and a playground for hobbyists.

After all, pros, developers, and hobbysists are the people that feed the iOS ecosystem with content, apps, and new ideas. Mac and iOS devices already support each other in a virtuous cycle, but that could be stressed more by producing machines that pros and geeks truly love.

I sure hope Apple soon gets through this period of problematic hardware (MacBook keyboards), “Where is it?” hardware (Mac Pro), and of new languages and frameworks that do mostly what the old ones did, only differently (Swift, Marzipan). Bring back “Insanely Great”!

Ken Kocienda:

The reliability and usability failings of the MacBook Pro are rooted in thinness and weight-saving—yet Apple makes the MacBook Air to optimize for those design goals. Let’s face it. Apple doesn’t make a pro laptop today. Sticking “Pro” on the end of the name does not make it so.

Petter Ahrnstedt:

Ex Apple employee here (PR manager). They stopped caring about prosumers in 2011-12. The prosumer managers were made redundant. Entire focus is (was) on consumers.

See also: The Talk Show, Hacker News (3).

Previously:

Update (2019-05-13): Rosyna Keller:

It’ll only have the kernel itself as an optional developer install. Windows still won’t ship with any user space tools. You’ll still have to get those from a distro.

Kyle Howells:

Unrealistic WWDC Wishlist

- Gatekeeper for iOS
- Relaxed AppStore restrictions with new categories, like Dev Tools.
- UIKit for Mac uncrippled (no mandatory sandboxing or AppStore only)
- Redesigned & relaxed notarisation system
- Pro user, automation & performance focus
- A sign that ‘easy things should be easy, hard things should be possible’ has been deeply and culturally accepted into Apple, iOS and macOS.

Rather than the seeming current philosophy of ‘easy things should be easy, and anything more is a security risk’.

Brad Chacos (via Steven Sinofsky):

After years of endless jokes, 2019 is truly, finally shaping up to be the year of Linux on the desktop.

Rui Carmo:

I came to the Mac as a haven from the (then crappy and useless) Windows NT-era desktops we ran. Even though I was one of the first people to use NT 4.0 as a “workstation” (and even ran maliing-lists and web sites on it using the ancient EMWAC servers), I wanted:

  • A powerful UNIX workstation
  • Great hardware that “just worked”

Switching to the Mac was so amazingly great that I even named this site after the overall experience, a little over fifteen years ago.

[…]

And so it has come to pass that, even though I am typing this on my MacBook Pro, I have been using a Surface Laptop for nearly six months as a semi-daily driver[…]

Thursday, May 9, 2019 [Tweets] [Favorites]

StopTheNews 1.0

Jeff Johnson:

Have you ever been annoyed that Safari on macOS 10.14 Mojave wants to open Apple News articles in News app instead of in Safari? Well no more! I’ve just released a new, free, open source Mac app called StopTheNews that stops Safari from opening Apple News articles in News app. Instead, StopTheNews opens the original article URL in Safari. StopTheNews also works with Safari Technology Preview, if that’s your default web browser.

The trick behind StopTheNews is simple. On Mojave, News app is the default handler for Apple News URL schemes. StopTheNews just registers itself as the default handler for Apple News URL schemes, taking over from News app.

Unfortunately, most of my Apple News links come from Twitter. But if I click an Apple News link in Tweetbot, it’s actually an https://t.co link, so it opens in Safari. Then Safari recognizes that the expanded URL has a custom URL scheme. And recent versions of Safari use a fake-looking alert to prompt “Do you want to allow this page to open with ‘App’?” every time. I have to click Allow before StopTheNews can intercept the URL to expand it again and open the final URL in Safari. Still, it’s better than opening the URL in Apple News.

Chance Miller:

Why would you want to do this? The Apple News app on the Mac can be a bit buggy and slow to open. If you want to just quickly skim an article, it’s generally easier to read in Safari than it is Apple News.

It’s also not good for sending text or HTML to MarsEdit.

Jeff Johnson:

With StopTheNews installed you can also copy or drag links to Safari from the Stocks app, because Stocks also uses apple.news URLs!

Simone Manganelli:

Lol, the built-in “expand URL” workflow step in Shortcuts doesn’t actually expand apple.news links.

Previously:

Update (2019-05-10): This Terminal command:

defaults write com.tapbots.Tweetbot3Mac OpenURLsDirectly YES

tells Tweetbot to expand the t.co URLs itself, which avoids the confirmation dialog in Safari.

SD Notary 1.0

Shane Stanley:

SD Notary is a utility for having apps notarized by Apple.

[…]

Most macOS applications are written in Xcode, and the process is designed with that in mind. For apps not written in Xcode, such as script applets, notarizing can be done using command line tools. Some of these tools, though, are still actually part of Xcode.

SD Notary is an app that wraps a more friendly user interface around these tools. Although it was designed with script applets in mind, it should work with any application that has relatively straight-forward requirements.

Not surprisingly, coming from Late Night Software, it’s scriptable.

Previously:

Wednesday, May 8, 2019 [Tweets] [Favorites]

Optional, throws, Result, and async/await

Joshua Emmons:

Ah ha! So we see that the Result type can serve as a concrete reification of Swift’s abstract idea of “that thing that’s returned when a function is marked as throws.” And as such, we can use it to deal with asynchronous operations that require concrete types for parameters passed to their completion handlers.

[…]

Thankfully, we can clean this up by taking advantage of the fact that, like Optional, Result implements flatMap. Specifically, flatMap on a Result will, in the case of .success, apply the given transform to the associated value and return the newly produced Result. In the case of a .failure, however, flatMap simply passes the .failure and its associated error along without modification.

[…]

In the near term, we just have to lump it. It’s better than the other alternatives native to the language, and chaining asynchronous calls isn’t as common as for synchronous calls.

But in the future, just as Swift used do/catch syntax to define away Result nesting problems in synchronous error handling, there are many proposals being considered to do the same for asynchronous errors (and asynchronous processing, generally).

See also: Localized​Error, Recoverable​Error, Custom​NSError.

Previously:

Tuesday, May 7, 2019 [Tweets] [Favorites]

Tying the Locale to the Localization

Apple:

The locale is formed from the settings for the current user’s chosen system locale overlaid with any custom settings the user has specified.

However, it doesn’t work that way anymore on macOS 10.14. (And I think this was documented or explained at WWDC, but I can’t seem to find it in the release notes or video.)

Peter N Lewis:

So basically there is no way an OSX application in 10.14 can display the time according to the user’s settings unless it is localised in the user’s language? That is severely messed up.

[…]

NSLocale currentLocale returns english (if you are localized in english) regardless of the user language. And there does not appear to be any way to read the 24 hour setting, or even just change a date formatter to a specific 24 hour setting.

I think the reasoning was to make the display within the app consistent, which kind of makes sense, though I think many users would rather see consistent dates (that follow their preferences) across all apps. But then there are cases like Lewis’s where the formatted text is not even necessarily displayed in the app; it’s just produced by it:

Keyboard Maestro generates dates based on the “current” locale. Pre-10.14, that was your locale as you define. In 10.14, they change it so that it is the locale of the localization of the app. So since Keyboard Maestro is English-only, you get an English locale regardless.

Previously: +[NSLocale preferredLanguages] vs -[NSBundle preferredLocalizations].

Non-Standard Emoji Colors

Howard Oakley:

I wanted to include the international Quarantine flag, known as Flag Lima, with black and yellow chequers. That is the flag still flown from ships in harbour when they remain under quarantine, before being allowed free entry into a port. It would have been very appropriate to my two articles.

[…]

So just what is the colour of Unicode code point U+1F397? How could WordPress possibly have found me a blue ribbon when everywhere else it’s yellow?

[…]

I’ve long had my doubts about the ability of emoji, particularly those included in Unicode, to support even the vaguest emotional communication. This only goes to show how flawed they are. So I’m sorry if you were somewhat mystified by the appearance of unrelated emoji in the titles of those two articles. It wasn’t me, it was a standard which in this case doesn’t appear to define anything meaningful.

Previously: Quarantine: Apps and Documents.

Monday, May 6, 2019 [Tweets] [Favorites]

Quarantine: Apps and Documents

Howard Oakley:

The quarantine flag is among the stickiest of all xattrs. When you unZip an archive which has been flagged, the xattr is normally propagated to all items which are saved from that, a behaviour which ensures that compressed apps retain their flag when uncompressed, for example. This isn’t, though, imposed by macOS, and some tools and utilities which can decompress archives may not follow this behaviour; the bundled Archive Utility does, though.

Howard Oakley:

macOS has been attaching quarantine flags, in the form of the com.apple.quarantine extended attribute, to documents for as long as it has been to apps, since macOS 10.5 in 2007, as part of the the same process. If a webpage or other file is downloaded from the Internet and saved on your Mac by an app which adds quarantine flags, then a normal quarantine xattr will be added to it. When you decompress a flagged Zip archive, quarantine flags are automatically attached to all the files extracted from it.

[…]

The role and purpose of these quarantine flags added by sandboxed apps remains obscure, beyond being used to prevent the execution of shell scripts, web archives, etc.

Unfortunately, it can also prevent opening shell scripts, e.g. just to edit them.

Howard Oakley:

Opening a document using LaunchServices, by double-clicking or dragging and dropping it, is very different. macOS then checks both the quarantine flag and the OpenWith xattr. If the latter points to the same app as the default for that document type, then regardless of the quarantine flag, the document is opened as expected; similarly, if there’s no quarantine flag, none is enforced.

But if a document has both quarantine flag and OpenWith xattr, and the app specified in the latter isn’t the default, macOS refuses that request when it’s made through LaunchServices. This results in the dialog that you see, which doesn’t make any sense because it’s actually intended for apps which can’t pass their first run tests, not for documents at all.

[…]

macOS is clearly behaving in this way as a defence against malware, which might install an innocent-looking document but set its OpenWith xattr to ensure that it’s processed (installed or run in some way) using a third-party tool instead. However, there are several serious flaws in the way that this is currently implemented, in particular the differences in operation between app and document quarantine.

[…]

Furthermore, determining document behaviours like this through opaque metadata prevents the user from making judgements of their own on which documents to trust. It essentially deems every document untrusted for ever, which is most bizarre in comparison with the treatment of apps, which once they have passed their first run checks are so trusted that they can even have broken signatures and macOS doesn’t bat an eyelid at running them.

Howard Oakley:

I think that these log extracts demonstrate how the failure to open these documents is a behaviour determined by XProtect as a result of its scan not of the document contents (which were entirely innocent), but on discovery of the quarantine flag and the OpenWith extended attribute. The error returned, -67062, is incorrect, and results in the wrong alert being displayed to the user.

As far as I can discover, this behaviour and its use of this alert is undocumented by Apple in either its user documentation or that for developers.

[…]

Apple needs to correct this immediately: blaming its third-party developers for an undocumented feature in macOS is plain wrong.

Howard Oakley:

Open the Security & Privacy pane in its General tab. If you’re quick enough, there will be an additional item at the bottom offering the button to Open Anyway. If you don’t see it, it’s because you were too slow to react: try again, only faster!

If you click on the Open Anyway button, you’ll see another security dialog which has a similarly incoherent message.

What a bizarre user interface.

What happens is that macOS sets the quarantine flag on that document to indicate that XProtect has approved it, by changing its first numbers from something like 0082 to 00e2. This is what my free app Pratique does without your having to go through two security alerts and the Security & Privacy pane. This ensures that the next time that document – and that document alone – has its quarantine flag checked, it will not be blocked in the way that it was.

[…]

Open the Finder contextual menu on the document, then press the Option key. Now the Open command at the top will open that document via the security confirmation dialog, or you can choose any other app to open it instead. This results in the same change being made to the quarantine flag, with the added bonus that, as you were holding the Option key, the Finder window will automatically vanish too.

Previously:

Update (2019-05-14): Howard Oakley:

Pratique has a similar interface to my free utility for stripping ‘spurious’ quarantine flags, Sandstrip, but instead of removing them, it marks files with a flag which indicates that they have been checked by XProtect – in the same way that flags change when an app has passed its first run checks. So long as that modified flag remains attached to a document, you can change the app set to open it, and double-clicking it won’t trigger a security alert and refusal.

This should prove a more lasting way of dealing with the problems caused by quarantine flags on documents, particularly if you don’t save them using an app which runs in a sandbox.

Howard Oakley:

In certain circumstances, trying to open a document in macOS 10.8 and later can result in a security error and refusal. This article summarises knowledge about this issue: how it arises, what it means, and how to work around it.

The Apple Watch Turns Four: Some Thoughts

Nick Heer:

From a convoluted and much-mocked start, it has grown to become an invaluable accessory for millions. One more reason it was so often misunderstood: it’s truly the kind of product that you need to use to understand it.

[…]

I adore the activity and fitness tracking, for example. […] I also like some of the smart watch face features. It feels completely natural for me to glance at my watch to check the weather or to see what appointments or reminders I have that day. Having Siri on my wrist is also a revelation. These features combine to help create the kind of passive technology future many of us have dreamed of. If only I could tilt my wrist and see when the next bus or train is due to arrive — that would nearly complete a feeling of immersion.

[…]

But then there are the things that I feel more negative about, and which have not meaningfully changed over the past four years — the worst of which is the third-party app ecosystem on the device. Even though I have a Series 1 Apple Watch, this has little to do with speed and everything to do with functionality. It feels like third-party developers either cannot figure out what they want to do with their WatchOS apps, or they’re not able to do what they want because of API limitations.

[…]

I’m also not wholly convinced that pushing notifications to my wrist is somehow beneficial for either my phone use or my attentiveness.

Jim des Rivieres, RIP

Ottowa Matters:

Jim, aka “Jeem” to many computing friends and colleagues and “Moth Man” to his Lepidoptera friends, will be fondly remembered by the many friends made over the years (Bell High School, Carleton University (as a Honours BSc graduate, computer programmer at the former Centre for Computing Services, and Assistant Professor), University of Toronto, Knights of the Lambda Calculus, Xerox PARC, Object Technology International (OTI), IBM, Photography Collectors Group, National Gallery of Canada, Camera Club of Ottawa, School of Photographic Arts Ottawa (SPAO) and the Museum of Nature) along with those gathered through his photography and mothing passion.

Gilad Bracha:

Sad news, once again. Among Jim’s many accomplishments, he co-authored the classic “Art of the Metaobject Protocol”, which many can still learn from.

MIT Press:

Kiczales, des Rivières, and Bobrow show that the “art of metaobject protocol design” lies in creating a synthetic combination of object-oriented and reflective techniques that can be applied under existing software engineering considerations to yield a new approach to programming language design that meets a broad set of design criteria.

One of the major benefits of including the metaobject protocol in programming languages is that it allows users to adjust the language to better suit their needs. Metaobject protocols also disprove the adage that adding more flexibility to a programming language reduces its performance. In presenting the principles of metaobject protocols, the authors work with actual code for a simplified implementation of CLOS and its metaobject protocol, providing an opportunity for the reader to gain hands-on experience with the design process.

Wikipedia:

In his 1997 talk at OOPSLA, Alan Kay called it “the best book anybody’s written in ten years”, and contended that it contained “some of the most profound insights, and the most practical insights about OOP”, but was dismayed that it was written in a highly Lisp-centric and CLOS-specific fashion, calling it “a hard book for most people to read; if you don’t know the Lisp culture, it’s very hard to read”.

Some chapters of the book are available online, and Amazon has the paperback. I haven’t seen the hardback version anywhere.

Friday, May 3, 2019 [Tweets] [Favorites]

Apple Developer CD Covers

James Thomson:

Very interesting photos by @nbeadman featuring covers of the old developer CDs, when Apple liked terrible puns

Aside from seeing Inside Macintosh in bookstores, these CDs were my first exposure to Apple’s developer program.

MongoDB Acquires Realm

Eliot Horowitz (Hacker News):

The best thing in the world is when someone just gets you, and you get them, because when you share a vision of the world like that, you can do incredible things together. That’s exactly the case with MongoDB and Realm, so I’m very happy to report that MongoDB has just entered into an agreement to acquire Realm.

[…]

Realm and MongoDB are a natural fit because we share a vision that when developers can interact naturally with data, they are happier and more productive, and because our products are complementary. We’re excited to get to work crafting our shared roadmap and will be ready to announce concrete details at our annual global conference, MongoDB World, held June 17-19 in New York City.

One key principle guiding that process is simple: we will not introduce backwards breaking changes.

Marcin Krzyzanowski:

“Both MongoDB and Realm are committed to supporting our customers on their current solution, and nothing will change right now.”

“Parse has agreed to be acquired by Facebook. Rest assured, Parse is not going away. It’s going to get better.”

Previously:

Update (2019-05-10): Drew McCormack:

Realm did a great job marketing themselves — their talk series was great — but I think they took their eyes off the ball. The core product was secondary. Sync was added very, very late, in a world where it is absolutely essential.

But even worse, and this applies to both Parse and Realm, these services didn't offer a very attractive proposition to developers. They locked you in to their API, and their server — you had to bet your whole company on a shaky startup.

TurboTax Dark Patterns and Robots Exclusion

Justin Elliott and Lucas Waldron (Hacker News):

Intuit and other tax software companies have spent millions lobbying to make sure that the IRS doesn’t offer its own tax preparation and filing service. In exchange, the companies have entered into an agreement with the IRS to offer a “Free File” product to most Americans — but good luck finding it.

[…]

We took a close look at the source code of the TurboTax website and noticed something strange. Even though we clicked on the “FREE Guaranteed” option and met all the requirements to file for free, the company had tagged us as a potential paying customer.

[…]

Even though TurboTax could tell we were eligible to file for free, the company never told us about the truly free version.

It turns out that if you start the process from TurboTax.com, it’s impossible to find the truly free version. The company itself admits this.

Justin Elliott (tweet):

There’s a new wrinkle: It turns out, Intuit, the maker of TurboTax, is deliberately hiding the truly free edition — TurboTax Free File — from Google Search.

[…]

The code in question, which can be found in a file called robots.txt or in an HTML tag, has to be actively added to a site, as Intuit has done. It is typically used on pages that designers want to hide from the open internet, such as those that are for internal use only. Without that code, Google and other search engines default to adding a site to their search results.

Nick Heer (tweet):

TaxSlayer, 1040.com, and Free Tax USA also request that search engines do not index their free filing webpages.

Justin Elliott:

NEW - statement from TurboTax / Intuit:

“we are undertaking a thorough review of our search practices to ensure we are achieving our goal of increasing eligible taxpayers’ awareness of the IRS Free File Program and its availability.”

Previously:

Update (2019-05-10): Justin Elliott and Meg Marco (Hacker News):

The makers of TurboTax have long been luring customers into paying for a service that they promised the government they’d give away for free. Now they’re lying to customers to avoid giving refunds.

We’ve heard from 16 people who say they were denied refunds and told that the truly free version — Free File — is a government product that’s not run by TurboTax. Ten others reported being told that ProPublica’s stories were inaccurate, or that our coverage is “fake news” or “fictitious.”

Thursday, May 2, 2019 [Tweets] [Favorites]

The Future Is Weird

Paul Kafasis:

Thinking quickly, I whipped out my phone and opened up an app called “Plane Finder AR”. Simply aiming my phone in the direction of the fast-departing plane let me learn all about it. Plane Finder AR is an augmented reality app that overlays plane details on a view of the real world. Below is an example of what this looked like, using another random flight (the red circle showing the difficult-to-spot plane has been added)[…] And sure enough, I confirmed the pandas I thought I saw, because I found B-6998 was apparently painted in a special all-red “Kung Fu Panda” livery.

AppleCare Support Is Broken

Kirk McElhearn:

Several times in the past couple of years, I’ve had cases where senior advisors give me hope, have me send data to them, then nothing happens. They just drop the cases. There is no further communication, no information, nothing. They just forget me. On their end, they probably close the cases so they can juke the stats. And I don’t get that common request for feedback regarding my case, so they don’t get negative feedback.

In one case, I was having battery issues on a MacBook, which dragged on and on, as it was hard to figure out exactly what was happening. I eventually traded that MacBook in to buy a new MacBook Pro, because it wasn’t worth my hassling with Apple’s support any more.

[…]

And that’s the general result of my contacts with AppleCare. They “consult with engineering,” promise to call back, and never do.

I will second that I never seem to get the request for feedback when my issue wasn’t resolved.

Previously:

Nils Nilsson, RIP

Yann LeCun (Hacker News, Andrew Ng):

Nils Nilsson passed away.

He is best known for the invention of the A* algorithm for path finding, and for his leading role in the Shakey project at SRI, one of the first mobile robots with visual perception and trajectory planning....

Bob Nystrom:

There’s a good chance you’ve never heard of him because he didn’t stick his name on an algorithm. But, if you’ve ever made or played a videogame, you have benefitted from his work. A* is the foundation of most enemy behavior in games.

Fangyu Cai:

Nilsson was the first Kumagai Professor of Engineering (Emeritus) in Computer Science at Stanford University, and his contributions to search, planning, knowledge representation, and robotics have been long respected and broadly applied. In his twenty-three years with Stanford’s Artificial Intelligence Center Nilsson worked on statistical and neural-network approaches to pattern recognition, co-invented the A* heuristic search algorithm and the STRIPS automatic planning system, and co-directed work on the integrated mobile robot, SHAKEY.

See also: Story of A* and STRIPS by Nils Nilsson.

Google’s Response to Edge Chromium

Tom Warren:

We understand that Google doesn’t have a block list for Google Meet, rather an allow list, and that Google should be supporting Meet on the new version of Edge very soon. Microsoft’s latest version of Edge initially worked before it switched to a new user agent string, and Google Meet stopped working. There might have been genuine fears about Chrome-only sites only a year ago, but it seems the worries about Google blocking out the new Edge are just fears, for now.

Tom Warren:

Google has added “unsupported browser” warnings for Edge Chromium on Google Docs

Previously:

Lobbying Against Right to Repair

Jason Koebler (via Kay-Kay Clapp, Hacker News):

In recent weeks, an Apple representative and a lobbyist for CompTIA, a trade organization that represents big tech companies, have been privately meeting with legislators in California to encourage them to kill legislation that would make it easier for consumers to repair their electronics, Motherboard has learned.

[…]

The lobbyists brought an iPhone to the meetings and showed lawmakers and their legislative aides the internal components of the phone. The lobbyists said that if improperly disassembled, consumers who are trying to fix their own iPhone could hurt themselves by puncturing the lithium-ion battery, the sources, who Motherboard is not naming because they were not authorized to speak to the media, said.

The argument is similar to one made publicly by Apple executive Lisa Jackson in 2017 at TechCrunch Disrupt, when she said the iPhone is “too complex” for normal people to repair them.

[…]

Though Apple hasn’t publicly talked much about repair in recent months and years, Motherboard reported in March that Apple has quietly approached independent repair companies with a new program called “Apple Genuine Parts Repair,” which would allow a select few companies to purchase repair parts from Apple with few restrictions. The slides associated with the program, obtained by Motherboard, suggest that Apple could comply with right to repair legislation without much burden.

Rory Prior:

Apple’s stance against making hardware user repairable seriously negates all their ambitions towards being a ‘green’ company. Recycling hardware for raw materials is hugely wasteful (in the rare instances it even happens) vs. extending useful life.

Previously:

Wednesday, May 1, 2019 [Tweets] [Favorites]

Apple’s Q2 2019 Results

Jason Snell:

Apple’s quarterly results are in. The company posted revenue of $58 billion, down 5% from the same quarter a year ago. iPad revenue was up 22% and Services revenue was up 16%, but Mac revenue was down 5% and iPhone revenue was down 17%.

We’ve got lots of charts below, as well as a transcript of CEO Tim Cook and CFO Luca Maestri’s conference call with financial-industry analysts.

John Gruber:

At 20% of the company’s revenue, Services now accounts for more revenue than Mac and iPad combined.

I don’t see how this is good for the quality of the products or, ultimately, for customers. The continual notifications and extra screens to tap through are like the laptop stickers that Steve Jobs hated, and they’re just the smallest example of how the focus on services is shifting the company’s attention and priorities.

Tim Cook:

For our Mac business overall, we faced some processor constraints in the March quarter, leading to a 5 percent revenue decline compared to last year.

This seems like an odd comment, unless it’s just intended to lay more groundwork in Apple’s case for ARM. Are Mac buyers really that worried about processor speeds rather than, say, keyboards? And if slower processors are the problem, isn’t that mostly self-inflicted?

See also: Dave Girouard.

Previously: Apple’s Q4 2018 Results.

Update (2019-05-02): John Gruber (tweet):

I asked an Apple source last fall why it took so long for Apple to release the new MacBook Air. Their one-word answer: “Intel.”

Jeff Baxendale:

I know there’s not going to be a switch given impending ARM Macs, but would have been nice to just have Ryzen Macs instead of complaining about Intel.

They’re a way better deal, nobody buys for “Intel Inside”, and then maybe the integrated GPUs wouldn’t be total garbage 🤷‍♂️

Microsoft’s Resurgence

Microsoft:

Microsoft Corp. today announced the following results for the quarter ended March 31, 2019, as compared to the corresponding period of last fiscal year:

  • Revenue was $30.6 billion and increased 14%
  • Operating income was $10.3 billion and increased 25%
  • Net income was $8.8 billion and increased 19%
  • Diluted earnings per share was $1.14 and increased 20%

As someone who doesn’t follow Microsoft that closely, I’m impressed with how they have turned things around—and how quickly. It seems like they have a plan that makes sense and are executing well.

Tom Warren (Hacker News):

Microsoft has become the third US company to pass a market cap of $1 trillion. The software giant passed the milestone briefly today after a jump in stock price today following strong fiscal Q3 earnings. Microsoft joins Apple and Amazon in hitting the $1 trillion valuation ahead of rival Google.

[…]

Microsoft’s latest earnings also revealed that the three main buckets the company splits its businesses up into are all doing well and roughly contributing the same amount of revenue this quarter (around 30 percent each).

  • Office, LinkedIn, and Dynamics = $10.2 billion in revenue
  • Azure cloud, server products, and enterprise services = $9.7 billion in revenue
  • Windows, Xbox, and Surface = $10.7 billion in revenue

Bryan Beal:

Microsoft’s conversion of Office to a ubiquitous enterprise cloud service is truly impressive.

Remember when everyone said Google Apps would “take over the Enterprise”? I laughed back then. Now it’s all but impossible. Google missed the chance.

John Gruber:

One amusing side note: The press release was obviously written in Word and exported to HTML. Just look at the source.

Ben Thompson:

The critical breakthrough was three-fold, and, as it so often the case, the three break-throughs were really about the same existential question — whither Windows:

The most important factor that made all of this possible, though, is that for all of the disruption that the enterprise market has faced thanks to the rise of software-as-a-service (Saas), Microsoft was remarkably well-placed to take advantage of this new paradigm, if only they could get out of their own way.

A contrary take:

From revenues as well as profit perspective Ballmer actually grew Microsoft more than Nadella. Market just decided not to reward that. Current growth centers including Azure, Surface etc were all started and championed originally by Ballmer. It was Ballmer who was willing to pour in investment like crazy in Hololens as well Bing. On the other hand, Nadella has failed to add single new product in Microsoft's portfolio during his half decade as CEO. Microsoft today has simply no presence in home automation, smart assistants, wearable or self-driving markets that have emerged during past 5 years. Nadella has literally missed boat in every single new category that has came around during his time. All the while its rivals have moved fast and picked up top spots in these new markets. Windows revenues is still falling like crazy and obviously there is no Smarthone story from Nadella yet.

The only thing that is compensating all these troubles is cloud and that too had been hazy on actual utilization. The engineering execution in Azure begs a question about how much worse it can get. Out of all providers, Azure literally has been the least impressive from technical standpoint in everything from UX to availability to features to documentation to API design. Once cloud market saturates and race to bottom ensues, Microsoft could have big trouble in maintaining current revenues and profits due to lack of new products. It will take few quarters before stock market reacts but all of these same people praising Nadella right now would suddenly come around and brand him the worst CEO in history as soon as stock dips.

TextEdit Deletes Original File Even When You Cancel

Chris Hamady:

Unbelievable...why in heaven’s name does Apple allow TextEdit to modify files EVEN IF the user CANCELS the save command. This video was just made on Yosemite, but I’ve also confirmed that TextEdit on Mojave does this as well:  … Notice html changes to rtf.

I’m interested in your take on this. Should any app on Mac OS have the ability to change a file format/type without a user saving the change?

CM Harrington:

This whole thing is probably an extension of autosave… and why it takes forever to close a file without changes you’ve made even if you have autosave off (I think it’s deleting all the SQLite rows).

Ben Szymanski:

It’s really hard to trust the system auto save functionality with these UX oversights. It was rough in Lion and it’s gotten maybe(?) marginally better since then.

I think it’s gotten worse with Preview.

Howard Oakley:

The real bug is in older macOS, where that second dialog doesn’t do what it claims. But the whole behaviour is unnecessary: TextEdit is going out of its way to delete your original HTML document when there’s no need at all. It does that because whoever implemented this behaviour didn’t understand macOS (or iOS for that matter).

[…]

For many years, Apple used TextEdit as exemplary code for macOS developers to see how it’s done. The last time it did this was seven years ago, in early 2012, since when I can only presume that TextEdit has gone steadily downhill and is now too embarrassing to release in source form. Like so many other standard tools in macOS, TextEdit is another festering sore on the rump of Apple’s engineering indolence.

Previously:

Folder Access and Inconsistent App Review

Matthias Gansrigler:

It’s the typical case.

A feature that was approved with a previous build suddenly is not allowed anymore.

I bet if I remove this feature as requested, I’ll get rejected again, because Yoink is able to install a (macOS Mojave) Quick Action (which was also approved before).

Apple:

2.4.5 Apps distributed via the Mac App Store have some additional requirements to keep in mind:

(i) They must be appropriately sandboxed, and follow macOS File System Documentation. They should also only use the appropriate macOS APIs for modifying user data stored by other Apps (e.g. bookmarks, Address Book, or Calendar entries).

All he’s trying to do is let the user click a button to install a PDF service. You’d think that would be allowed, since the app is sandboxed, the installation is happening due to explicit user request, and it prompts to allow access to the PDF Services folder. As far as I can see, the documentation doesn’t say not to do this. There is no API for installing PDF services, so the only alternative is to put up some instructions and ask the user to do it manually (which is what I had to do for EagleFiler). What’s the point of having the com.apple.security.files.user-selected.read-write entitlement if you aren’t allowed to actually use it? Or, rather, how can something so basic not be handled consistently by App Review?

I’ve heard similar stories from other developers. And when I’ve asked whether certain designs/features would be allowed for my apps, I could only get perfunctory responses saying that I needed to follow the guidelines and would have to develop the feature and submit the app before finding out whether it would be acceptable.

Previously:

Plans for Third-Party Marzipan Apps

Steve Troughton-Smith:

Are any iOS developers ready to commit to bringing their apps to the Mac via UIKit publicly? Any Mac/iOS developers preparing to sunset their existing Mac app for its iOS variant? I aim to go all-in on Marzipan with at least four apps on day one, one replacing a Mac version

Marco Arment:

It’s hard to say with 100% certainty since we don’t have concrete info and released tools yet, but I plan to ship Overcast as a Marzipan app on day one if I can.

Kyle Howells:

I intend to port several of my personal utilities and 2 as yet unreleased in progress iOS apps to the Mac if marzipan is good enough.

Only one of those was ever likely to see an AppKit version.

Erik Schwiebert:

The really interesting thing will be what the LargeCo’s do with their apps. I don’t yet know what we (MSFT) will do with Office; there’s a lot of code shared between Mac and iOS but much is very different. Multiple windows, file management, app/suite integration, sandboxing, etc.

Peter Steinberger:

Pretty likely that we bring @pdfviewerapp over to the Mac. After all the prototype last year already worked great and there’s definitely a market.

Greg Pierce:

Regardless of what technical aspects you have uncovered that make you bullish on Marzipan, it would be reckless for anyone who does this for a living to commit to shipping on it until we hear how the business end of this transition is going to work.

Mike Piontek:

I’ve spent 2 years working on updates that include big changes to my Mac app, so I’m not in a rush to throw that out… but If I have to for features like Siri Shortcuts I’ll consider it. I was previously assuming I’d want to wait a couple years, since this will require 10.15+.

Pádraig:

I’d love to bring Castro to Mac some time, but I’m pessimistic about Marzipan so if I was doing it this year, I think I could make something more Mac-like using AppKit 😬

Wooji Juice:

Not going to commit to something sight-unseen, but strongly interested in creating a Mac version of Ferrite (and maybe 1-2 other apps) using Marzipan. Will have to see what gets released, how stable it is, & what issues there are making quality non-shovelware Mac apps with it

Halide:

We’re excited to bring proper manual controls to MacBook and iMac webcams and intend to ship early April next year

Christian Selig:

I’d love to bring Apollo to the Mac, if only to scratch my own itch.

Markus Müller-Simhofer:

It really depends on what Apple is doing. If Apple uses Marzipan for it‘s productivity apps (Mail, iWork) we will also switch. I always disliked how Carbon apps felt. I don‘t want to be one of the apps that „feels“ different than all the other apps.

Previously: