Archive for April 2018

Monday, April 30, 2018

Reimplementation of Implicitly Unwrapped Optionals

Swift:

The new mental model for IOUs is one where you consider ! to be a synonym for ? with the addition that it adds a flag on the declaration letting the compiler know that the declared value can be implicitly unwrapped.

[…]

There are three places where using ! as part of a type is permitted:

  1. Property declarations
  2. Parameters in function declarations
  3. Return values in function declarations

[…]

Because implicitly unwrapped optionals are no longer a type distinct from optionals, they can’t be inferred as a type or as any part of a type.

[…]

Note that the result of AnyObject lookup is treated as an optional that is implicitly unwrapped. If you lookup a property that itself is also declared as implicitly unwrapped, the expression now has two levels of implicit unwrapping[…] if let and guard let only unwrap a single level of optionality.

NSColor, CGColor, and Layers

Jeff Nadeau (tweet):

NSColor is dynamic, so its exact color value depends on the view’s context. CGColor isn’t dynamic, so resolving a CGColor produces a snapshot from the current context at the moment you ask for it. As your view’s context changes, you’ll be left with a stale value that might look very wrong compared to the surrounding UI.

[…]

Besides the obvious NSAppearance changes which can occur (vibrancy, Increased Contrast mode, etc.), there are more subtle ones. For example, in the Touch Bar there are specific elements of the UI that get white balanced automagically as ambient light readings change. […] The amount of context-sensitivity is only going to increase over time.

[…]

The layer tree is a side effect of the view hierarchy, not its model. This probably annoys UIKit people a lot, but this approach is extremely intentional.

Sunday, April 29, 2018

Multiple Cursors in Xcode

Daniel Martín:

For the new refactoring engine, the Xcode team developed a simple implementation for testing, but kept it disabled:

defaults write com.apple.dt.Xcode PegasusMultipleCursorsEnabled -bool true

Press Command and click/select some text and the editor will create a new cursor.

Any edits that you make are then repeated by all the cursors simultaneously. This can make certain batch changes faster and more reliable than doing them one-by-one, and for many common cases it’s easier (and requires less of a mental context switch) than writing a regular expression or script. The Xcode implementation is difficult to use in practice, though, because when Command is down, Xcode often wants to do something with the word I’m clicking on/near, rather than letting me place the cursor. Also, the edits are not bundled into undo groups the way you would expect.

Update (2018-06-04): Ole Begemann on Xcode 10:

“The Xcode Source Editor now supports multi-cursor editing allowing you to quickly edit multiple ranges of code at once.

Place additional cursors via ⌃+⇧+Click or with column select (⌥+Click+Drag), or using ⌃+⇧+Up/Down.”

Update (2018-08-02): Benjamin Mayo:

Xcode 10 multiple cursors are too good not to share.

Update (2020-11-27): Dave DeLong:

Discovered a way in #Xcode to do an “edit all” that’s not limited to declarations

  1. select the thing you want to edit
  2. press-and-hold ⌥⌘E to “select next occurrence” until everything’s selected
  3. type in the replacement; all of ‘em get changed

Update (2023-02-14): Keith Harrison:

I found myself rediscovering Xcode’s multi-cursor support this week. Here’s a reminder in case you need it.

30 Years of Frontier

Dave Winer:

My goal was to create an environment I would work in for the rest of my career. I just realized it’s exactly 30 years later, and I’m still using it.

[…]

Now that I also work in JavaScript, it amazes me how easy the simple things are in Frontier, compared to JS, esp when you have to tack on a database. You really have to work at seeing what’s going on. In Frontier, you just click around expanding things. You can even look at the runtime stack that way.

John Gruber:

If you never used Frontier, it’s hard to explain what made it so special. My very favorite thing about Frontier is the “object database”. It wasn’t like using a database in the SQL sense. It was just persistent storage.

James Thomson:

Douglas Adams asked me to add support for running Frontier scripts in DragThing about twenty years ago, and I did, because he was Douglas Adams.

Hamish Sanderson:

Automatic props to @mattneub, whose Frontier, The Definitive Guide is published online here for those that’d like to learn more[…]

It’s an excellent book.

Brent Simmons:

For the past few days I’ve been working on adding Frontier-like object database (ODB) support to my database framework.

Previously: Congratulations.

Swift for TensorFlow, Released

TensorFlow (Hacker News):

We have released Swift for TensorFlow as an open-source project on GitHub!

Our documentation repository contains a project overview and technical papers explaining specific areas in depth. There are also instructions for installing pre-built packages (for macOS and Ubuntu) as well as a simple usage tutorial.

Moving forward, we will use an open design model and all discussions will be public.

Marcin Krzyzan:

Google forked Swift to make it compatible with TensorFlow because they can.

Last time Google forked Apple codebase was what... WebKit to build Chrome? I hope it’s not a trend now.

Chris Lattner:

We are not interested in producing a long term fork, we aim to work with the Swift community to get everything upstream.

Jameson Toole:

Don’t mistake Swift for TensorFlow as a simple wrapper around TensorFlow to make it easier to use on iOS devices. It’s much more than that. This project is an attempt to change the default tools used by the entire machine learning and data science ecosystem.

[…]

The inability of Python to be an end-to-end language in a world dominated by machine learning and edge computing is the motivation behind Swift for TensorFlow. Chris Lattner makes the case that Python, with its dynamic typing and interpreter, can’t take us any further. In his words, engineers need a language that treats machine learning as a “first class citizen”. And while he lays out deeply technical reasons why a new approach to compiler analysis is necessary to change the way programs using TensorFlow are built and executed, the most compelling points of his argument focus on the experience of those doing the programming.

Previously: Swift for TensorFlow.

Update (2018-05-14): Chris Lattner:

Super excited that the Swift for TensorFlow compiler changes are moving into the main swift.org github repository.

Pre-Announcing AirPower

Nick Heer:

Imagine an alternate universe where the AirPower and the wireless charging case for the AirPods weren’t announced until, say, the opening keynote of WWDC this year with same-day availability. Sure, buyers of iPhones and Apple Watches that were released last year would have to suffer through several tedious months of wondering why Apple didn’t make their own charging pad because many of the ones out there right now aren’t very good, but the reaction to its then-immediate availability would have been a classic example of underpromising and overdelivering.

Instead, people are disappointed, and Apple looks bad.

Update (2018-05-01): Nick Heer:

One thing everyone seems to be getting wrong about the AirPower mat is that it is late or delayed. It isn’t. Schiller promised “2018”. The only reference to “early 2018” was in a couple of ads.

Saturday, April 28, 2018

Buying an iPhone 8 Plus After Using an iPhone X

Dan Frakes:

App switching: It may sound crazy, but for me, this—not the screen, or Face ID, or the Animoji/Portrait Mode selfie camera—is the very best thing about the X compared to other iPhones.

[…]

Beyond that, there are more times in my daily life when Touch ID is better than Face ID than vice versa. For example, if I need to access my phone when it’s lying flat on my desk or the kitchen counter, or use it while it’s in a mount in my car (when I’m parked, natch), Face ID requires me to contort my body to get my face directly in front of the screen; with Touch ID, I just place my thumb on the Home button, regardless of the relative position of the phone. And while Touch ID doesn’t work well with wet fingers, if there’s moisture on the screen itself, or if I’m wearing certain sunglasses, or if I’ve got something partially blocking my face, Face ID usually fails. And in those situations where both Touch ID and Face ID work perfectly, Touch ID is noticeably faster.

[…]

I also prefer the 8 Plus for reading. While the 8 Plus and X show about the same amount of text, I find that the 8 Plus’s aspect ratio makes it easier to read[…].

[…]

As I noted above, I love the X’s swipe-up gesture to go to the Home screen. Unfortunately, by stealing this gesture from Control Center, Apple had to find a different way to invoke Control Center on the X. And the result, swiping down from the top-right edge of the screen, stinks.

Apple Officially Discontinues AirPort Router Line

Zac Hall (MacRumors, Hacker News):

Apple is officially exiting the wireless router business and selling off its remaining inventory of AirPort products. This includes the AirPort Express, AirPort Extreme, and both models of AirPort Time Capsule.

[…]

So why discontinue the AirPort line today and not sooner? That’s unclear, but Apple’s formal announcement confirms what was already largely accepted: the AirPort line is dead.

Why indeed, if it’s true that the team was disbanded years ago. This feels like the situation with the Mac Pro (also last updated in 2013), where Apple seemingly stopped working on improvements and let it languish, until it finally decided whether to cancel the line. Was the strategy to keep selling a dead-end product at full price until the money stopped rolling in or their offering became too embarrassingly behind? If there was any chance they wanted to stay in the router business, you’d think they would have been working on the next version as soon as the 6th generation shipped. Apple has a strong track record when it rolls. Any time it stops is a bad sign.

Wi-Fi is somewhat analogous to printers in that Apple needed to help get a new technology started in the market. In time, there were lots of good printers to choose from, but then the market regressed. After buying a number of terrible printers from leading brands, I kind of wished Apple were still making them. (Then I discovered Brother; it turns out its printers are OK.) Printers are not strategic these days, so not having a great one doesn’t hurt Apple; it’s just a minor missed opportunity for differentiation.

How much do routers matter now? I would argue that Wi-Fi is more strategic now than printers were when Apple discontinued them, and that there’s more room for innovation. First, all of its devices depend on Wi-Fi, so it’s an unavoidable part of the product experience. In theory, Apple could offer more reliable hardware and make sure its products are the first to support new standards, even drive those standards. At least this once was the case; by the end, Apple was late patching security flaws in its own routers. But at least it patched them, and I bet more customers were able to update than with many other brands.

An Apple committed to routers seems like a good fit for Tim Cook’s security and privacy vision. Apple is the company that keeps its old devices updated with the latest software. Apple is the company that you can trust with your privacy. But with AirPort dead, I’m now using a Google Wi-Fi. (I wonder why Google chose to enter this market around the time Apple disbanded the AirPort team.) Google Wi-Fi is easy to use and works well, but I don’t really like that it’s tied to my Google account and controlled from the cloud. Eero, from what I’ve read, also requires an account and relies on the cloud. And, unlike Apple, neither offers a Mac app for configuration.

Even after Apple stopped being a market leader, I think there was value in offering an easy, trusted solution. Instead, Apple now offers a very basic guide with the comforting disclaimer: “Information about products not manufactured by Apple, or independent websites not controlled or tested by Apple, is provided without recommendation or endorsement. Apple assumes no responsibility with regard to the selection, performance, or use of third-party websites or products. Apple makes no representations regarding third-party website accuracy or reliability. Risks are inherent in the use of the Internet.”

Then there is the question of the features AirPort offered that its replacements don’t: AirPlay, printer and scanner sharing, file sharing, Time Capsule. Bluetooth is more widely supported than AirPlay, but I don’t think it’s better or easier to use. With no way to connect my printer to Google Wi-Fi, I ended up buying a new one that has Wi-Fi built-in. I’m not aware of any alternatives that make file sharing and Time Machine backups as easy. Directly connected USB drives are inconvenient for laptops, and there aren’t a lot of great online backup solutions available, either. It seems like Apple is just forfeiting some Mac advantages.

I think there’s no doubt that discontinuing AirPort makes the Mac/iOS networking experience worse, at least compared with what it could be if Apple kept the line updated. So the real question is, what are we getting in return? Was keeping AirPort updated a major distraction for the company? Are good engineers so scarce that Apple needs them working on another project?

Previously: Apple Comments on AirPort’s Future, KRACK: Breaking WPA2 by Forcing Nonce Reuse, Apple Abandons Development of Wireless Routers.

Update (2018-05-01): M.G. Siegler:

If Apple wants to get out of the wireless router business — a business they helped kickstart — fine. The problem is that they could have — and I’d argue, should have — been fundamentally changing this business for the better, in a way basically no other company can.

[…]

The bottom line matters. But it’s not the only thing that matters. Apple has surfaced a rather disturbing trend of late of looking right past any strategic implications of their product lines. They’re not only too far in the forest to see the trees, they’re seemingly chopping down said trees to get a better line of sight. It’s really weird.

Rosyna Keller:

Now that Apple has discontinued the Time Capsule, is there an easy alternative to backing up to a network device?

Specifically, a standalone device that supports Time Machine and can only be configured by an app, NOT a website…

A Time Capsule replacement doesn’t need Wi-Fi (just RJ-45) but when Time Machine says “flush to physical disk” it had better do a synchronous flush to physical media…

Does such a device exist? A device without kernel extensions to install?

Halp.

Josh Centers (TidBITS Talk):

Some people seem shocked that I rent a router. When you consider that a good router starts at around $150 these days — Wirecutter’s current recommendation is more than that — and that a router generally lasts about 3–4 years, I’m paying less than $150 every 4 years for a commercial-grade router that will be replaced for free if it malfunctions.

Benjamin Mayo:

For a few years, I had been repeating the same ultimatum when people asked about the fate of the AirPort product range: update it or kill it. At least, this AirPort announcement means Apple has finally divorced itself from one of its skeletons in the closet.

Peter Cohen:

But unless you have very specialized Wi-Fi needs, it’s largely become “set and forget” technology that’s no longer dependent on having the right kind of box made by a specific vendor.

[…]

I still think that Apple is leaving a hole by discontinuing Time Capsule, but network-based backups have become less important for many people as they’ve grown to rely on the “cloud” to take care of everything.

See also: Rich Stevens.

Eric Slivka:

The tri-band Velop system is a bit pricey compared to some other options on the market, but it works well, providing strong coverage throughout your home and offering features such as guest networking, parental controls, and device prioritization.

Jason Sims:

Sad to hear AirPort has been discontinued. I just added an Express to extend my Extreme and don’t regret it. Even in maintenance mode, AirPort Utility is so much nicer than the shitty web config of most other APs. Hope they at least keep it working.

Eventually I‘d like to move to mesh, but there’s no Eero in Japan. Orbi is an option, I guess, but they’re big, ugly, and massively overpriced. AirPort really is exactly what I want/need at home (less-than-ideal powerline Ethernet bridge notwithstanding).

David Sparks:

For the last year, every time I went into an Apple store and saw the Airport on the shelf, I couldn’t help but feel bad for the person who was going to buy that without knowing they could get a much better network with a non-Apple product. I figured Apple was either working on their own mesh solution or they were going to abandon the product entirely.

Update (2018-05-04): John Gruber:

I’m not saying Apple should continue to make mere Wi-Fi routers. I’m saying they had, and missed, an opportunity to make really smart, trustworthy home hubs like nothing else on the market.

Update (2018-05-08): See also: Background Mode, The Talk Show.

Update (2018-05-14): Eric Schwarz:

I went from an AirPort Extreme (the flat, 802.11n model) to an Asus router that had great performance, but had some firmware bugs and had the dead-space-bug look. If anything Wi-Fi needs gigantic antennas, why do almost no enterprise-grade (where functionality is paramount) access points have ten antennas sticking out?

After my day job featured a few projects involving wireless bridges from Ubiquiti Networks, I started looking into their other products. While the interface was web-based, the attention to detail felt like it was there, and the hardware was very Apple-like. It’s not surprising, as their founder and CEO, Robert Pera, got his start on Apple’s AirPort team. I decided to look at their other products for work, and after installing a few UniFi access points in some locations, have been very pleased with the result.

Update (2018-11-16): Juli Clover:

Apple back in April ended development on its AirPort line of products, which includes the $99 AirPort Express, the $199 AirPort Extreme, and the $299 AirPort Time Capsule.

At the time the accessories were discontinued, Apple said that it would continue selling existing stock until available supply was exhausted. It appears that point has been reached for both the AirPort Extreme and the 2TB AirPort Time Capsule, which have been removed from the Apple online store.

Update (2019-01-23): Matt Birchler:

I agree with everything in here by @bradleychambers. Apple was way early to the “WiFi setup and management should be easy” game and they let other companies take over.

Update (2019-06-10): Jim Murphy:

Hey! Guess who was working on AirPort when it was cancelled? You probably don’t need one guess, really.

Update (2019-09-27): Mark Gurman:

I know Apple discontinued its AirPort routers, but seeing people on Twitter note (correctly) that the AirPort Utility app crashes on iOS 13/13.1 when you try to enter your password. Hopefully Apple updates it so people who own AirPorts can continue using them properly.

Update (2019-10-15): Chance Miller:

Today’s update to the AirPort Utility application includes security improvements and general stability enhancements. Some users had reported problems with the AirPort Utility app on iOS 13, so this update likely resolves those issues.

Friday, April 27, 2018

Overcast 4.2: The Privacy Update

Marco Arment:

In Overcast 4.2, the login screen now prominently encourages anonymous accounts by default.

[…]

Finally, you can now change your account between email-based and anonymous whenever you want.

[…]

One of the ways publishers try to get around the limitations of the current model is by embedding remote images or invisible “tracking pixels” in each episode’s HTML show notes. When displayed in most apps, the images are automatically loaded from an analytics server, which can then record and track more information about you.

In Overcast 4.2, much like Mail (and for the same reason), remote images don’t load by default. A tappable placeholder shows you where each image will load from, and you can decide whether to load it or not.

You still need an e-mail address if you want to play episodes from the Web site or use it to upload your own audio files. It seems like the latter could be implemented in the app itself, e.g. give me an Overcast folder in iCloud Drive, which I can drag and drop into from my Mac, and have the app either upload those files to the server or cache them directly from iCloud. This would also address the current limitation of only being able to upload one file at a time.

Drive Genius Lite

Prosoft Engineering:

Drive Genius Lite automatically monitors your Mac using Drive Pulse™ technology and will alert you when any potential harmful issues arise!

Drive Genius Lite Includes:

  • Automatic Drive Monitoring
  • Malware Detection
  • Professional Solution Recommendations
  • Hard Drive Failure Predictions

There used to be a free trial that included unlimited use of some of the less glamorous features, such as Physical Check, which is the one I use most often. Then they changed to a fully-featured 30-day trial, after which you could purchase the entire app for a single price.

Now, they’ve changed to four different packages of features that you can purchase. The Lite feature set (above) is included for free. I believe DrivePulse does scan for bad blocks, so that feature is still available for free in a different way. However, as a paid customer, I personally prefer to uninstall DrivePulse and invoke the tools manually.

Previously: Drive Genius 5.1 Adds High Sierra Compatibility.

Xcode Treasures

Chris Adamson:

The book’s working title was No Regrets Xcode, and at one point, I toyed with proposing Xcode for People Who Hate Xcode as a title. But a full-throated defense of Xcode is an essay or a blog, not a programming book. Instead, I hope to prove by example — many, many examples — that Xcode is better than you think it is.

[…]

So, yes, Xcode is flawed. But is it fundamentally flawed? Is there some core concept — its multi-paned single window UI, its scriptable build system, the nature of app bundles and code signing — that makes it impossible for Xcode to ever be good? I don’t believe anyone is making this argument. The closest you get to this is storyboard haters who build their UIs in code.

All these years later, I still miss Xcode 3’s multi-window interface. I’ve gotten used to living without it, though. The Xcode 4 rewrite introduced a lot of breakage and problems, but I would say that all the major ones have been fixed (probably since 7.x or so). Mainly, Xcode 9 is plagued by a variety of minor but annoying issues. One would not expect them to be fundamental flaws, yet they have persisted for a long time.

Yes, I’m one of those people who doesn’t use storyboards and eventually came around to disliking nibs. But for me this is mostly about abstraction and modularity in creating interfaces, and making testing, version control, and localization easier. I would blame less than half of it on Xcode. Yes, it has some interface issues, but—aside from the breakage of older files—it seems to do a decent job at solving a really hard problem.

So, I’m making the case that it’s time to take a fresh look at Xcode. Acknowledge the bugs, sure. Hope that they get better. But beyond that, look at how nice the code editor is (and how you can customize it to suit your own tastes). Look at how the build system is smart about resolving dependencies, how you can set up your own build properties on a per-configuration basis or even run arbitrary scripts during the build, or run the whole thing from the command line and let Jenkins handle your CI. Think about how app slicing and on-demand resources make things better for your users by making smarter use of their limited on-device storage, and how Xcode gives you a UI for managing these assets visually. Behold the wonderfully clever power of LLDB to give you powerful breakpoint capabilities, and tools like Instruments, Main Thread Checker, Address Sanitizer and more.

Previously: Working Without a Nib.

Update (2018-04-28): See also: Mark Hughes.

JavaScript’s Tricky Rounding

Peter Ammon:

Unfortunately, the implementation in the spec does not correctly implement the spec.

[…]

JavaScript presumably rounds this odd way to match Java, and so the only engine to get it right out of the gate is Rhino, which simply calls back to Java’s Math.round. Amusingly Oracle fell into the same trap with Rhino’s successor Nashorn. Round and round we go!

Monday, April 23, 2018

Speculation and Dread for the Next Transition

Andy Ihnatko:

Which is why I can easily picture a plan to build ARM-based Macs that’s part of a bigger plan to change the whole character of the Mac. For years, MacOS has looked decidedly frumpy and unloved, and its few significant improvements (such as TouchID) have been iOS’s hand-me-downs. Maybe that’s because Apple has been sitting on some huge and wonderful ideas that’ll boost the Mac into a higher orbit, and they’ve put off rebuilding MacOS until they had a good reason to tear it all down first.

Or…maybe Apple’s longterm goal isn’t to transition MacOS into the next decade (or, hell, even just our present one). Maybe its goal is to transition Mac users to iOS. Apple’s obsessive love for the iPad has been made clear to me by both my observations of the product line and my conversations with people inside the company (present and former). It doesn’t seem ridiculous that Apple might push the Mac much closer to the character of the iPad, with the iPad Pro picking up enough of the Mac’s character and functions that the whole consumer Mac line would become redundant.

Riccardo Mori (tweet):

This rumoured next transition — from Intel-based Macs to ARM-based Macs — is once again for the better, at least on paper. […] But things have changed in the meantime. For one, today Mac OS evidently isn’t the primary focus of the company. Those past transitions were all done to benefit the Mac; the idea was The Mac shall advance. We’re changing and improving things under the bonnet, but the Mac is still the Mac and its identity won’t change. Instead, this theoretical Intel-to-ARM transition doesn’t feel as such. It feels as there are impending changes to the Mac operating system and platform that are clearly influenced by iOS. This makes me uneasy.

Let me tell you a couple of things straight away: One, there is nothing wrong with the Mac platform, except what Apple has been doing it in recent years. Two, since Steve Jobs’s passing, my impression is that Apple has been progressively unable to properly handle their two major platforms, Mac OS and iOS. It’s like they can’t keep a balance of resources, development, and attention between Mac OS and iOS. Instead of envisaging a plan where the two platforms progress in parallel, and flourish by making the most of their respective strengths, what I’ve seen is a clear preference for iOS, and a clear progressive neglect of Mac OS. As a Mac user, this frustrates me.

Previously: Tim Cook Says Users Don’t Want iOS to Merge With macOS, Apple Plans to Use Its Own Chips in Macs From 2020, Replacing Intel.

Reconsidering the Hardware Kindle Interface

Craig Mod:

What is the iOS Kindle interaction model? The iOS Kindle model is the “hidden spaces” model. That is, all active interface elements are invisible. This “hidden spaces” model of interaction is supremely user antagonistic.

[…]

The problem is that the text is also an interface element. But it’s a lower-level element. Activated through a longer tap. In essence, the Kindle hardware and software team has decided to “function stack” multiple layers of interface onto the same plane.

[…]

But the hardware Kindle? Oh, what a wonderful gift for Amazon designers. The Kindle is predictable! We know what we’re getting on almost every page. And the actions of the user are so strictly defined — turn page, highlight, go back to library — that you can build in hardware buttons to do a lot of heavy lifting. And yet! Amazon seems ignores (to lesser and greater degrees depending on the device) how predictable a hardware Kindle is.

Via Tim Carmody:

Specifically, dedicated hardware buttons mean that you can remove the amount of unpredictability that happens when you touch the screen. Touching the screen now means “I’m going to interact with the content.”

Update (2018-05-01): See also: Hacker News.

Forcing Compiler Errors in Swift

Erica Sadun:

Swift’s newly adopted #error and #warning directives represents a big step up from current practices, which often rely on run-time rather than compile-time feedback.

[…]

Here’s an example I discovered from John Estropia. (He, in turn, cribbed it from one of  his co-workers.) He uses conditional compilation to set a TODO or FIXME (or whatever) typealias then uses it in-line at points where a debug build should compile and release builds should error:

#if DEBUG 
internal typealias TODO<T> = T
#endif

print("Remove this later") as TODO

Writing With an iPad and a Clicky Keyboard

Jason Snell (tweet):

My primary workspace is largely unchanged from when I set it up in 2014, though I’m now using a clicky keyboard and an iMac Pro now. I don’t do all of my writing from my desk, though; I’m a big believer in increasing productivity through a change of scenery. Sometimes that involves taking my iPad outside, often to the Starbucks that’s five minutes from my house. In the summer I’ll attach the laptop-like Brydge Keyboard and go sit in the backyard.

When it’s not nice out, I’ll just relocate to the bar in my kitchen and write on my iPad.

[…]

So I replaced the Mini Tactile Pro with the Matias Laptop Pro, a Bluetooth mechanical keyboard with a silver-and-black style that fits in pretty well with my iPad and its stand.

John Gruber:

People who like split screen multi-tasking on iPad: Don’t you find it infuriating that there’s no indication at all which side has keyboard focus?

Nathan Edwards:

Although harder to find, compact mechanical keyboards are a third, better option that combines the best of both boards.

[…]

I’ve tried a bunch of compact keyboards, and the first one I tried—and the one I’d recommend as a starting point for most people—is the Qisan Magicforce 68. It has a white backlight, full-size mechanical keys exactly where they’re supposed to be, arrow keys, and a navigation cluster. It comes with a detachable cable and built-in media shortcuts. And it’s only about $60, which is impressively cheap for a mechanical keyboard with good switches.

Having recently switched back to a full-sized keyboard, after many years with a compact one, I find that I make heavy use of all the extra keys except for the higher numbered F-keys and the Clear key.

Update (2018-04-29): Luke Kanies:

Unlike touch, keyboards are inherently targeted. While touch is powerful specifically because of your ability to directly manipulate the software you’re using, keyboards must first be pointed at a place that needs text. They need focus. And here’s where the iPad falls down.

Via John Gruber:

It seems crazy to me the iPad lets you command-tab between full-screen apps, but when you’re in split screen mode there’s (a) no way to switch between the apps on screen using the keyboard, and (b) no indication of which app has keyboard focus.

App Store APIs and Testing

Alexander Schuch:

Apple’s In-App-Purchase sandbox server does not support IPv6, but IPv6 is required as of 2.5.5 of the AppStore Review Guidelines. The app review team apparently tests on sandbox servers, thus apps are rejected in violation of the guidelines.

See also: Supertop.

Sunday, April 22, 2018

The Woman Who Gave the Macintosh a Smile

Alexandra Lange (via John Gruber):

Paola Antonelli, the senior curator of architecture and design at the Museum of Modern Art, was the first to physically show Kare’s original icon sketches, in the 2015 exhibit “This is for Everyone.” “If the Mac turned out to be such a revolutionary object––a pet instead of a home appliance, a spark for the imagination instead of a mere work tool––it is thanks to Susan’s fonts and icons, which gave it voice, personality, style, and even a sense of humor. Cherry bomb, anyone?” she joked, referring to the icon which greeted crashes in the original operating system. After working for Apple, Kare designed icons for Microsoft, Facebook, and, now, Pinterest, where she is a creative director. The mainstream presence of Pinterest, Instagram, Snapchat, emoji, and GIFS is a sign that the visual revolutionaries have won: online, we all communicate visually, piecing together sentences from tiny-icon languages.

Kare, who is sixty-four, will be honored for her work on April 20th, by her fellow designers, with the prestigious AIGA medal.

See also: Luke Dormehl.

Previously: Interviews: Kare, Bezos, Musk, Felleisen, Gruber.

Oracle Claims Trademark Infringement for an iOS JavaScript Editor App

James Sanders:

To put it lightly, it strains credulity to state that the app in question: HTML5, CSS, JavaScript, HTML, Snippet Editor is “likely” to be mistaken for something developed or licensed by Oracle. Thousands of projects include support for JavaScript, and in so doing, name JavaScript a thing that the project uses. For starters, the Webkit rendering engine on which the Safari browser, among others, is based, references JavaScript in the source.

If user reviews are any indication, the app is not even particularly good, with reviewers stating things such as “Not ready for production,” “Does not work as advertised,” and “Waste of money, don’t buy this.” The last update to the app was in 2014, which the changelog notes was only an upgrade to add support for iOS 8. The app developer is at least honest about the intent behind the unwieldy name for the app, saying in a Reddit comment that “we game the App Store ranking by adding all the keywords to the app name.”

While Oracle has a duty to protect their trademarks, this type of legal bludgeoning underscores a historical problem that has been left unaddressed for too long: JavaScript is a terrible name for the thing being described.

ordinary:

According to Crockford, Netscape called it LiveScript, originally. In their attempt to ‘destroy Microsoft’, they teamed up with Sun. One of Sun’s original goals with Java was making it the client-side scripting language for the browser. However, Netscape had LiveScript. Apparently the negotiations almost broke down over this point.

In an enlightened moment, (probably) Marc Andreessen proposed renaming LiveScript to JavaScript (despite the fact that the languages have very little in common), and joy was had. Sun got the JavaScript trademark (and passed it on to Oracle), and Netscape got a perpetual exclusive license to use it.

When JavaScript was standardized to avoid Embrace, Extend, Extinguish, Netscape refused to share its license, and so the official language was renamed to ECMAScript, after the standards body. When Sun was bought by Oracle, it also got the trademark, and presumably, Mozilla inherited the exclusive license from Netscape.

See also: Reddit.

SmugMug Acquires Flickr

Jessica Guynn (via Andy Baio, Hacker News):

SmugMug, an independent, family-run company, will maintain Flickr as a standalone community of amateur and professional photographers and give the long neglected service the focus and resources it deserves, MacAskill said in an exclusive interview.

He declined to disclose the terms of the deal, which closed this week.

[…]

The surprise deal ends months of uncertainty for Flickr, whose fate had been up in the air since last year when Yahoo was bought by Verizon for $4.5 billion and joined with AOL in Verizon’s Oath subsidiary.

Don MacAskill:

We are committed to a huge, healthy, vibrant community of people using the Free plan. :)

Nelson Minar:

Everyone excited about the SmugMug / Flickr news (ie: fellow old people) may enjoy this other happy story about SmugMug saving a bunch of photos lost by Picturelife as that company ran out of money.

Riccardo Mori:

SmugMug acquiring Flickr makes me oddly hopeful. I still use and love Flickr, and I hope it’ll be able to gain back the relevance points it had been losing in recent times.

(So come on, pundits, a bit of enthusiasm, instead of this “Ahh, remember Flickr? Good times” attitude.)

Anil Dash:

I am excited to see an independent company that cares about photography and has a long-term sustainable business model become a steward for Flickr. We need open, indie social platforms more than ever on the web right now.

See also: Flickr, Flickr Code, SmugMug.

Previously: Verizon Acquires Yahoo.

Update (2018-04-29): Glenn Fleishman:

SmugMug and Flickr aren’t precisely yin and yang in the audiences they serve and features they offer. But they do represent two distinct approaches to photo sharing and community interaction. SmugMug, founded in 2002, has charged a subscription fee from the first day, and focuses on beautiful presentation of photos and on services for semi-pro and professional photographers rather than social networking. It’s never raised venture-capital funding, and several family members are in key positions.

[…]

MacAskill says he knows there will be challenges in meshing these two distinct cultures, but adds that he did the deal because of Flickr’s unique strengths. “Both companies really stand for photography and for photographers,” he says. SmugMug had been wrestling for years with the question of how to add a free tier in a way that would complement its paid services and encourage more participation; Flickr, which offers a terabyte of photo storage for free, may be part of the solution.

Don MacAskill:

No need to know or care about @SmugMug plan types - we're not merging the two. We're also not Flickrizing SmugMug, not SmugMugging Flickr. Stick with what you love - and know that we love you for it.

Update (2018-11-06): See also: Triangulation.

Friday, April 20, 2018

Apple Open Sources FoundationDB

FoundationDB (Hacker News):

FoundationDB is a distributed datastore, designed from the ground up to be deployed on clusters of commodity hardware. These clusters scale well as you add machines, automatically heal from hardware failures, and have a simple API. The key-value store supports fully global, cross-row ACID transactions. That's the highest level of data consistency possible. What does this mean for you? Strong consistency makes your application code simpler, your data models more efficient, and your failure modes less surprising.

[…]

The vision of FoundationDB is to start with a simple, powerful core and extend it through the addition of “layers”. The key-value store, which is open sourced today, is the core, focused on incorporating only features that aren’t possible to write in layers. Layers extend that core by adding features to model specific types of data and handle their access patterns.

Examples of Dark Design Patterns

Flavio Lamenza (via Mark Frauenfelder):

This add in a mobile app makes you think there is a dust particle on your screen, making you tap on it.

[…]

This ad in Snapchat makes you think there is a strand of hair on your screen, making you tap on it.

[…]

Tetris wants to give you high quality advertising…

Josh Constine:

But the fact that the button to reject the new Terms of Service isn’t even a button, it’s a tiny “see your options” hyperlink, shows how badly Facebook wants to avoid you closing your account.

[…]

I requested Facebook actually show us what was on the other side of that tiny “see your options” link and this is what we got. First, Facebook doesn’t mention its temporary deactivation option, just the scary permanent delete option. Facebook recommends downloading your data before deleting your account, which you should. But the fact that you’ll have to wait (often a few hours) before you can download your data could push users to delay deletion and perhaps never resume. And only if you keep scrolling do you get to another tiny “I’m ready to delete my account” hyperlink instead of a real button.

Via John Gruber:

Not only is it a tiny hyperlink instead of a button, the link is just a few pixels above the big “I ACCEPT” button.

Tim Cook Says Users Don’t Want iOS to Merge With macOS

Peter Wells (MacRumors):

Despite rumours that a merger is in the works, Apple chief executive Tim Cook believes mobile devices and desktop computers should remain in separate worlds with their own bespoke operating systems.

[…]

“I generally use a Mac at work, and I use an iPad at home,” Cook tells me, “And I always use the iPad when I’m travelling. But I use everything and I love everything.”

If you’re wondering why the Internet is treating it as news that the CEO of Apple uses a Mac at work, Nick Heer reminds us:

In 2014, Cook told the Wall Street Journal that he did about 80% of his work on his iPad; this is a subtle change in how he’s communicating what he uses to get work done. I’m not sure how much you should read into his comment — Apple kremlinology is often a waste of time — but it’s an interesting shift, I think.

We’ve long known that Cook has an iMac on his desk at Apple. I continue to believe that he does not have a deep understanding or appreciation for the Mac. I doubt that he would consider iPad and Mac apps using the same Marzipan API as a merger. I doubt he would miss anything if every Mac app felt like an iOS app. The news here is simply that he has decided to change his messaging. So I interpret these comments as evidence that Apple is doing more merging, just that it isn’t getting rid of the Mac. I don’t believe the way to make the Mac better is to make it even more like iOS. Rather, Apple should focus on making it better at doing the things iOS can’t do.

Previously: Apple Rumored to Combine iPhone, iPad, and Mac Apps to Create One User Experience, The Menu Bar.

Update (2018-04-20): See also: Zac Cichy.

Update (2018-04-22): Jack Welborn:

People like to point out Windows 10’s support for both touch and mouse input, but I’d argue that Windows is still primarily a pointer drive interface with support for touch carefully tacked on. That said and while I still believe that touch in Windows leads to a disjointed user experience, I am also beginning to wonder if excluding touch input entirely from Mac laptops might end up being a hill not worth dying on. Take this tweet from John Siracusa that shows a photo of a monitor with the sticker “NOT A TOUCH SCREEN” and poses the question “How long until MacBooks need a similar sticker?”

Update (2018-04-28): See also: The Talk Show, Upgrade.

The Menu Bar

Jack Wellborn:

The menu bar has been, and in my opinion remains, the best mechanism for providing familiarity, discoverability, and progressive disclosure in user interfaces on any platform. Even beyond the Mac, anyone who has clicked on a File menu in one platform has a pretty good shot at guessing where a Save command might be when provided a File menu somewhere else. Likewise and also regardless of operating system, someone presented with an entirely new application can safely open and explore menus to try and locate features they might need. Never pivoted data before, but need to for the first time? Hey look, there’s a menu in the bar called Data!

[…]

So then why are menu bars fading out of more modern UX conventions?

On mobile, the answer is obviously two-fold — screen real estate and touch. From before the iPhone to today’s relatively large screen smartphones, screen real estate remains a precious commodity. Even the most common functionality like notifications require various gestural incantations so they can accessed without onscreen controls, and because of touch, anything that does require onscreen controls does so at over double the cost of real estate to accommodate for larger and less precise fingers.

Via John Gruber:

The menu bar, in my opinion, is the single biggest reason why Mac apps can grow to a greater manageable complexity than iOS apps. I’m not saying iOS should get a menu bar — I’m saying this is why it makes sense for Apple to maintain its dual platform strategy.

When PNGs Suddenly Become JPEGs

Howard Oakley:

I wasted half an hour trying to get one screenshot yesterday, a good illustration of how workflows involving Pro-branded products with iCloud Drive may not deliver pro results.

But later last night, in discussion with those marvellous folk at @AppleSupport, they found me a workaround, and pinpointed where the problem must lie. When I take a screenshot, then view it in Photos, tap the Share icon there, and despatch it to iCloud Drive, that image is shown as a JPEG throughout, with the .JPG extension. When I take a screenshot and immediately tap its transient thumbnail at the bottom left, before it vanishes, and despatch it from there to my iCloud Drive, that remains a PNG with the extension .png (also note the lower case).

[…]

One important lesson for me is the value of the new Apple Support app available free from the iTunes App Store: I have installed this on my iPhone and iPad now, as it makes support calls so much easier. It’s a shame that Apple hasn’t yet produced a version for macOS.

Lessons Learned From the App Store

Former App Store head Phillip Shoemaker:

A discussion about why App Stores have guidelines, how apps are reviewed, what reviewers are looking for, and what the common mistakes are. In this talk, I will give you tips and tricks necessary to avoid problems on the App Store and Google Play.

It boggles the mind that he was a developer who had submitted his own apps to the store.

See also: Peter Steinberger.

GCD Tips

Thomas Clement:

Are you using the libdispatch? Here’s a thread for you, what I learned about the libdispatch in the last ~6 months.

Wednesday, April 18, 2018

Switching From RSS to Apple News Format

This blog has been available in Apple News from the beginning, but I’ve recently switched from having Apple News fetch the RSS feed to using the Publish to Apple News WordPress plug-in to push updates to Apple News.

Pros:

Cons:

Overall, I think switching to Apple News Format was a win, mainly because the RSS support was so bad. I’m still mystified by Apple News itself. It’s drawn rave reviews from some quarters, but I find the interface cumbersome and have not found its content recommendations helpful. Perhaps the difference is that some people are comparing it with social networks and Google News, whereas I’m a longtime user of desktop feed readers.

Update (2018-04-20): Adam Engst:

For those who are already using the News app, I’m pleased to say that TidBITS is now available in Apple News via the Apple News Format, so our articles look better than ever before on both the iPhone and iPad, as you can see in these screenshots.

Update (2018-07-20): Matt Birchler:

See, I use a WordPress extension to post my stuff to Apple News and it had been working great for a couple years, but apparently iOS 11 made something not work quite right and my posts weren’t getting assigned “categories” on Apple News.

I tried my best, but the nothing solved my problem until the dev updated the plugin.

Drafts 5

Agile Tortoise (MacRumors):

Drafts 5 is being released as a new app. Drafts 5 does not replace Drafts 4, but installs along side it. Drafts 5 can migrate drafts, actions and keyboard customizations from Drafts 4, but data does not sync between the two apps and they can happily co-exist on the same device.

Drafts 5 will be a free download. Drafts 5 is a free download, with a generous feature set. The free version is a great way to test drive Drafts 5, and will offer full support for creating, editing, syncing of drafts and built-in actions. You can install and use actions, but editing actions is part of Drafts Pro.

The subscription is $20/year, whereas the previous version had a one-time $5 charge 3–4 years ago. So this fits with the pattern of switching to a subscription model and increasing the price at the same time.

It’s not a great fit for the way I use Drafts, frankly. I really like the app but am a light user of it. The new features sound great but are not ones that I would use (unless I start using the app for more than I do now). Yet the free version is inadequate because I do use a bunch of custom actions.

Tim Nahumck:

There are few apps I’ve ever used which made a lasting impact on my daily workflow. But for years now, the singular app that’s been the foundation of my iOS use has been Drafts. The app has lived in my dock since I first picked it up, it’s the single most important app I use on the platform, and it’s the only paid app I mandate to anyone looking for must-have apps on iOS.

Drafts is the bedrock app from which I build all my productivity. It’s the single point of text entry that shares to any app, whether through the share sheet, a simple action, or a custom and complex action. Any time I have an idea, I put it in Drafts. Tasks to add to my task manager? I do that from Drafts. Something I want to write about on my blog? That idea starts in Drafts too. It’s the focal point for everything I do.

David Sparks:

Drafts doesn’t just let you type, it also lets you dictate, and through some smart programming, it gets around the usual 45 second Siri Dictation timer. With Drafts, you can dictate as long as you want to Siri Dictation and it just keeps going.

One of the nice things about Drafts is that because you go straight into writing, you don’t even have to have a clear decision about where the text will end up when you start writing. Maybe these words will end up an email, or an OmniFocus task, or a Ulysses project, or something else entirely. It doesn’t matter; I just need to write.

Update (2018-04-28): Gabe Weatherhead:

On its surface, Drafts is just a note app for iOS. What sets it apart from other options like Apple Notes is its fast launch to an empty document, ready for me to type. The speed of entry on Drafts is the biggest reason it’s in my dock. It’s the fastest way I have to write words on a computer. There’s no save button. Nothing to confirm. Just launch and write. I do this a dozen times a day.

Update (2018-06-02): Gabe Weatherhead:

Drafts can be difficult to grok. Maybe the best way to get a feel for what it does well is to hear from people that actually use it. Here are a few of the latest things that have given me ideas and a few laughs.

Update (2019-04-11): Greg Pierce:

Closing in on a year since the release of Drafts 5.0. This is the 26th update of the iOS version…oh, and I shipped a Mac version. Thanks to all the Pro subscribers that make this level of active development possible.

Update (2019-05-09): Greg Pierce:

A few weeks in to the first round of annual renewals for Drafts Pro. Retention rate hanging at around 73%. I don’t have a lot to base it on, but that feels very strong. Guess I get to keep doing this for a while. :-)

Update (2023-04-26): Greg Pierce:

Hit the five-year mark since @drafts switched to a subscription model.

Subscription growth leveled out a couple of years ago, but I think I’ve proven the concept that an app business does not need to be focused on growth to be successful. You can reach sustainability by serving a niche and keeping them happy.

On Normalizing Rip-Offs

John Gruber:

In this case Savov was writing about Huawei’s copycat wireless earbuds. But the most telling example — which Savov himself has documented better than anyone else — is the iPhone X notch. The notch is unquestionably the worst thing about the iPhone X design — it is a worthwhile compromise, but a severe and glaring one. But it lends the iPhone X a distinctive look and can be easily copied, and so of course these companies are shamelessly copying it.

[…]

I don’t think outrage is the right term for how the media should react to such rip-offs. I suggest a mix of contempt and mockery. But they certainly shouldn’t be pooh-poohed with an “Eh, everyone does it” attitude.

John Gruber:

That’s why I like the phrase “design plagiarism”. Maybe you think Amadeo’s examples do constitute “copying”. But they’re not plagiarism.

Previously: iPhone X Design and the Notch.

Apple Refuses to Repair iMac Pro

Linus Tech Tips (forum, Hackers News, Reddit):

We broke our iMac Pro… But then we tried to pay Apple to repair it. They refused. Come with us on a journey of frustration…

It sounds like they dropped the display while trying to install RAM, which you are supposed to have Apple install for you. (Or perhaps they just wanted to take internal photos for their review?) So this clearly voided the free initial year of AppleCare. However, they are in a bind because Apple won’t let them pay to have it repaired, either, but neither will it make it possible for a third-party repair shop to do so.

Paul Haddad:

Thinking of upgrading the RAM in your iMac Pro yourself? Think again…

Colin Cornaby:

I know they were taking theirs apart for a review, but there is just a possibility that I accidentally put something into the screen and crack it. And apparently if you do that Apple can’t do anything...

Steve Streza:

Oof, this is an awful support response for a $5,000 pro computer.

Marco Arment:

It’s more complicated than that — it appears that they just won’t fix it if someone other than Apple has opened it up and worked on it, even if the customer is willing to pay full price for Apple to work on it.

Which is shitty. But that’s not the same as “They can’t fix it!”

Stephen Sullivan:

This has been the case since at least late 90s, but probably always. If Apple can tell that an unauthorized service provider has opened the computer before, then they deny service.

Max Temkin:

This was just in the news. The FTC sent a letter to companies with “warranty void if seal broken” stickers, which are illegal[…]

Marco Arment:

Based on replies, it sounds like normal customers who don’t completely take apart their iMac Pro and mess with the internals have no issues getting warranty repairs from Apple.

This video was very much not that.

Previously: Apple Sued an Independent iPhone Repair Shop Owner and Lost, An Apple Support Experience, The iMac Pro.

Update (2018-04-20): See also: John Gruber, MacRumors, Rene Ritchie.

iPhone X Profits

Juli Clover:

The iPhone X accounted for 35 percent of total worldwide handset profits in the fourth quarter of 2017, according to new estimates shared this morning by Counterpoint Research.

The device generated 5x more profit than the combined profit of more than 600 Android OEMs during the quarter, despite the fact that it was only available for purchase during the final two months of the year and in spite of reports pointing towards lackluster sales of the device.

Note that iPhone X was new then, whereas iPhone 8 went on sale at the end of the previous quarter. But still: wow.

Update (2018-05-03): Jason Snell:

Fears of the iPhone X having weak sales were stoked by reports that Apple had cut its orders of components that it uses in the iPhone X, including flexible OLED screens from Samsung. But Apple said that the iPhone X remained the top selling iPhone in its product line for every single week of the March quarter, and while sales were up slightly, revenue was up quite a bit.

[…]

Also interesting: iPhone ASP dropped from the holiday quarter. That would seem to suggest that the mix of iPhones being bought last quarter was tilted more toward the iPhone X than this quarter. It makes me suspect that perhaps initial demand for the iPhone X was so high that it made Apple think it would be a somewhat larger percentage of the iPhone product mix overall, so it cranked up iPhone X production. But the lower ASP’s in the fiscal second quarter suggest that perhaps the iPhone X is a smaller part of the whole than it was right out of the gate. That could lead to Apple having some more iPhones than they were able to sell right away, which would lead to a reduction in supply orders.

TidBITS:

Apple announced a net profit of $13.8 billion ($2.73 per diluted share) on revenues of $61.1 billion, a figure in line with analyst expectations. The company’s revenues were up 16% compared to the year-ago quarter (see “Apple’s Q2 2017 Financial Results Show Slight Growth,” 2 May 2017). Apple CEO Tim Cook noted that this was Apple’s sixth consecutive quarter of accelerating revenue growth.

Update (2018-05-04): Horace Dediu:

Analysts could have been deceived because Apple purchased components early aggressively and then cut orders abruptly. The evidence is in inventories rising. This may have been strategic: denying competitor access to capacity; or an error.

Walt Mossberg:

And here’s the chart showing iPhone global dominance in the quarter. Note the iPhone dominance with multiple models.

Update (2018-08-23): Matthew Panzarino:

Remarkable how the narrative went from ‘iPhone X is a dud, they’re gonna cancel it’ to ‘it was so successful almost everyone bought it’

Weather Alarms Scam

David Barnard:

I just don’t get why Apple isn’t doing more to actively search and remove scam apps from the App Store. I’ve spent like 10 minutes digging into market data for the Weather category and already found that the #11 top grossing is a scam app charging a $20/mo subscription.

There should be a team at Apple scouring the top grossing charts looking for this crap and watching for apps shooting up in search results and/or category rankings. There are SO MANY apps doing search boost campaigns, tricky subscriptions, and all sorts of other shady stuff.

Every time I spend a few minutes doing market research I find a few apps like this. I’m sure I could find 100 more if I spent a couple days on it. How can Apple not be finding these?! Weather Alarms has been in the top grossing charts for months (likely making >$10k/mo)

Previously: In-App Purchase Scams in the App Store.

Update (2018-06-04): David Barnard:

Unbelievable… that scammy weather app I tweeted about in April (Weather Alarms) is on the WWDC big screen. They must have just compiled the list based on downloads/revenue and not bothered looking at whether the apps legit.

Update (2018-10-05): John Koetsier:

An obscure app that reads bar codes is scamming hundreds of App Store users by automatically initiating an expensive $156 per year subscription. And there are dozens more like it, with some charging users thousands of dollars each month for extremely minimal functionality.

Via David Barnard:

I’ve been bringing these issues to Apple’s attention publicly & privately for over a year. It’s incredibly frustrating how little has been done to thwart these scams. It erodes trust in the App Store which ultimately hurts Apple and conscientious developers who use subscriptions.

Update (2018-10-19): Sarah Perez:

But alongside this healthy growth, a number of scammers are now taking advantage of subscriptions in order to trick users into signing up for expensive and recurring plans. They do this by intentionally confusing users with their app’s design and flow, by making promises of “free trials” that convert after only a matter of days, and other misleading tactics.

[…]

The issue of scam apps may not always be the failure of App Store review. It’s possible that the scammy apps sneak in their tricks after Apple’s App Review team approves them, making them harder to catch.

But for the time being, users have to take it upon themselves to cancel these sneaky subscriptions.

Unfortunately, Apple isn’t making it as easy for users to get to their subscriptions as it could be.

Bruno Virlet:

First notice how the app is called “Scanner app” on the AppStore but once you download it, it’s called iScanner on your home screen. That’s a first confusing part and that’s the result of putting more value on ASO than creating a brand and app name familiar to their users.

Previously: In-App Purchase Scams in the App Store, The Mac App Store Is Full of Scams.

Tuesday, April 17, 2018

Mapping Apple’s Vast Universe of Space Gray Shades

Michael Steeber:

Silver aluminum, once the defining look of Apple products, has been met with increasing variety over the last several years by a range of colors and finishes that customers can choose from. One of the earliest and most popular options – space gray – has permeated across almost every product line Apple offers.

Yet, ubiquity has not brought consistency. Each new generation of a product seems to bring with it a slightly different take on space gray. Those with large device collections have noted the discrepancies between shades, and discussions brew online over the term’s exact definition.

While subtle variations in material, texture, lighting, and even the shape of a product can play tricks on the eyes, every device Apple currently offers or has produced in space gray can be grouped into one of several loosely defined categories. Below, we’ve cataloged and categorized the vast universe of Apple’s recent dark material finishes in an attempt to unravel the mysteries of space gray.

One Laptop Per Child Retrospective

Adi Robertson (Hacker News):

The $100 laptop would have all the features of an ordinary computer but require so little electricity that a child could power it with a hand crank. It would be rugged enough for children to use anywhere, instead of being limited to schools. Mesh networking would let one laptop extend a single internet connection to many others. A Linux-based operating system would give kids total access to the computer — OLPC had reportedly turned down an offer of free Mac OS X licenses from Steve Jobs. And as its name suggested, the laptop would cost only $100, at a time when its competitors cost $1,000 or more.

[…]

By the time OLPC officially launched in 2007, the “green machine” — once a breakout star of the 21st-century educational technology scene — was a symbol of tech industry hubris, a one-size-fits-all American solution to complex global problems. But more than a decade later, the project’s legacy is more complicated than a simple cautionary tale. Its laptops are still rolling off production lines, and a new model is expected later this year.

[…]

After years of insisting that it wasn’t a tech company, OLPC really has opted out of the laptop arms race, embracing its status as a niche machine. OLPC’s current laptop has the same camera and screen resolution as its original 2008 edition, and less memory and storage than a budget smartphone. OLPC estimates it’s shipped a total of 3 million XO machines over the course of the past decade.

Previously: One Laptop Per Child.

macOS 10.13.4 Causing Installation Log Failures

Adam Engst:

So let’s recap. In three separate instances, a Mac that’s running macOS 10.13.3 starts running slowly. Upon restart — without the user asking to install 10.13.4 — the Mac boots into the Installation Log app and shows an error saying the macOS installation couldn’t be completed. Restarting doesn’t help, but the first thing to try is holding down Option as the Mac boots and selecting the primary drive. If that doesn’t work, boot into macOS Recovery and reinstall the operating system. No data will be lost either way, but hey, make sure you have backups anyway!

How common is this problem? Unclear, although there’s a discussion of it on AskDifferent that covers the same ground I did. If you’ve already upgraded to macOS 10.13.4, you’re probably safe. But if you’ve been holding off upgrading, which is usually the cautious thing to do, be aware that it’s possible you might encounter this situation on your next restart.

Freaky.

Previously: macOS 10.13.4.

Firefox 11.0 for iOS Has Tracking Protection on by Default

Emil Protalinski (via Anil Dash):

Tracking protection means Firefox blocks website elements (ads, analytics trackers, and social share buttons) that could track you while you’re surfing the web. It’s almost like a built-in ad blocker, though it’s really closer to browser add-ons like Ghostery and Privacy Badger because ads that don’t track you are allowed through. The feature’s blocking list, which is based on the tracking protection rules laid out by the anti-tracking startup Disconnect, is published under the General Public License and available on GitHub.

[…]

The difference is that with Firefox for iOS, it’s on by default. And you can turn it off and on for each site (long-press the URL bar and tap the shield icon)[…] The feature is great for privacy, but it also improves performance. Content loads faster for many websites, which translates into less data usage and better battery life.

Note that this is much more extensive than Safari’s Intelligent Tracking Prevention.

Previously: Firefox’s Facebook Container.

Updated FancyZoom

Many Tricks (via Peter Maurer):

Cabel Sasser’s FancyZoom, slightly updated and dumbed down.

Added a way to specify zoom image resolution (cf. “retina” displays). Added a dark vs. bright theme choice. Switched the spinner to spinning via CSS, rather than animating through a sequence of image files. Got rid of the old table-based fallback layout. Plus, various other cosmetic changes.

See also: FancyZoom.

Previously: WebKit’s srcset Image Attribute.

Saturday, April 14, 2018

Apple Sued an Independent iPhone Repair Shop Owner and Lost

Jason Koebler (Hacker News):

The specifics of Huseby’s legal case apply only in Norway, of course, but his case speaks to a problem faced by independent iPhone repair shops around the world. Apple’s use of the legal system and trademark law turns average repair professionals into criminals and helps the company corner the repair market for Apple products.

In the United States, Apple has worked with the Department of Homeland Security and ICE to seize counterfeit parts in the United States and to raid the shops of independent iPhone repair professionals. ICE’s National Intellectual Property Rights Coordination Center rejected a Freedom of Information Act request I filed in 2016 regarding Apple’s involvement in its “Operation Chain Reaction” anti counterfeiting team, citing that doing so “could reasonably be expected to interfere with enforcement proceedings.”

“In this case, Apple indirectly proves what they really want,” Par Harald Gjerstad, Huseby’s lawyer, told me in an email. “They want monopoly on repairs so they can keep high prices. And they therefore do not want to sell spare parts to anyone other than ‘to themselves.’”

[…]

The legal status of many of these parts remains an unanswered question around the world, but the general consensus seems to be that a part is “counterfeit” if it is masquerading as an original manufacturer part rather than an aftermarket one. Counterfeit parts are “tangible goods that infringe trademarks,” the Organization for Economic Cooperation and Development, a partnership between 35 countries and a United Nations observer, wrote in a report last year.

Previously: Apple Fighting New “Right to Repair” Legislation, Error 53.

High Sierra Help Breakage

Christian Tietze:

If you run macOS 10.13 High Sierra, try not to use the Help menu. It will appear to freeze the app for which you invoke the Help menu: it will not accept keyboard input anymore, emitting the NSBeep “invalid action” sound in most circumstances.

The reason seems to be that the nifty Search bar inside the Help menu will acquire focus so you can search for a menu item or help book entry. This is taking away focus from the app window.

[…]

You can fix this inconsistent state yourself: open the Help menu again, then hover over an adjacent main menu entry, like “Window”. This will apparently close the Help menu in a different, proper way, unlike clicking back inside the main app’s window.

Howard Oakley:

Somewhere between High Sierra 10.13 and 10.13.4, Apple has made major changes to the Help system. Unfortunately, these include radical changes in the undocumented file used by the Help system in ~/Library/Caches/com.apple.helpd/HelpCache.plist.

Those changes not only break my utility HelpHelp, but the information now accessible in those and other Help system files no longer contains that on which HelpHelp relies.

Update (2018-04-15): Daniel Jalkut:

Christian filed a bug, and shared a workaround: set the delegate of the Help menu to your app’s delegate, and listen for the “menuDidClose” delegate method. If it’s the Help menu, restore focus manually.

I generalized this workaround to an approach that should work for whatever window, and whatever responder is currently focused when the Help menu is opened. By saving the window and the responder at “menuWillOpen” time, it can be precisely restored afterwards[…]

Update (2018-04-17): Howard Oakley:

At some stage, between the release of macOS High Sierra 10.13 and the latest update to 10.13.4, Apple has replaced its Help system. I have checked through Apple’s release notes, including those concerning the SDK changes for developers, and have been unable to find any reference to such changes.

[…]

Another more pervasive change is the way in which these files refer to Help books. Previously this used their signatures, such as com.apple.Dictionary.help, which made it difficult for the Help system to cope with multiple versions of apps with different Help books. Now each Help book is known by a name which combines that signature with the app’s version number, such as com.apple.Dictionary.help*2.2.2.

[…]

Without watching the performance of helpd and HelpViewer over a period of time in the log, it is difficult to draw any firm conclusions as to the practical effects of these changes in 10.13.4. However, simply opening a traditional local Help book shows some quite radical differences, suggesting that this is the largest overhaul of the Help system for some years.

Apple Warns Employees to Stop Leaking Information

Mark Gurman (Hacker News, MacRumors):

The Cupertino, California-based company said in a lengthy memo posted to its internal blog that it “caught 29 leakers,” last year and noted that 12 of those were arrested. “These people not only lose their jobs, they can face extreme difficulty finding employment elsewhere,” Apple added. The company declined to comment on Friday.

Apple outlined situations in which information was leaked to the media, including a meeting earlier this year where Apple’s software engineering head Craig Federighi told employees that some planned iPhone software features would be delayed. Apple also cited a yet-to-be-released software package that revealed details about the unreleased iPhone X and new Apple Watch.

John Gruber:

Getting fired for leaking — we all knew that happened. But this is the first I’ve heard of leakers being prosecuted criminally and going to jail.

Previously: How Apple Plans to Root Out Bugs.

Update (2018-04-15): Amir Efrati (via Anil Dash):

And this notion that people who discuss company products will be arrested is preposterous. The arrests that Apple references, I’m willing to bet, are entirely related to the supply chain and theft of prototypes. Apple is lumping the two groups of people together for effect.

Update (2018-04-29): See also: The Menu Bar.

Update (2018-05-01): Joe Rossignol:

Ming-Chi Kuo, widely considered to be one of the best analysts covering Apple, might no longer focus his research on the iPhone maker.

China Times reports that Kuo resigned from Taiwanese research firm KGI Securities on Friday and, while his next move is uncertain, the publication suggests he will focus less on Apple and more on other emerging industries.

Kuo has been one of the most prolific sources of rumors about Apple’s unreleased products and services since as early as 2010, when he was a senior analyst at industry publication DigiTimes. He briefly covered Apple for Concord Securities in 2011, before moving to KGI Securities in early 2012.

Thursday, April 12, 2018

Eliminating iTunes Store Music Downloads in March 2019

Paul Resnikoff (via Dan Masters):

Apple is now experiencing meteoric growth on its streaming music platform, Apple Music. But that growth is directly impacting Apple’s old-line downloads store, for obvious reasons. And, ultimately hastening its demise.

Just last week, Apple executive Jimmy Iovine pointed to a shutdown when ‘people stop buying’. Now, sources inside the company are pointing to a firm date for a planned shutdown of the iTunes music download store. Earlier, these same sources pointed to an ‘early 2019’ shutdown, though internal roadmaps now include a March 31st, 2019 phase-out of the service.

Apple has denied that it plans to get rid of downloads, but the rumors persist.

I, for one, like downloads and have no interest in subscribing to a streaming service. If Apple eliminated downloads, I would probably start buying downloads from Amazon. I had been preferring the iTunes Store because of the integration with Apple’s devices.

If streaming becomes the only way to get new music, that would significantly reduce the value of existing collections of purchased music. Either your collection stays frozen in time or you have to subscribe to get new music, making the already purchased songs (at least those that the streaming service offers) redundant.

Also, I would expect the user experience for downloaded music to get worse, as has already been happening since the introduction of Apple Music.

Marco Arment:

Maybe it’s the end of certain distribution contracts, and they’re not worth renewing under worse terms.

Paul Frazier:

Problem with that is you can't use Apple Music songs in iMovie, so they'd need a fix for that.

Previously: Eliminating iTunes Store Music Downloads, Streaming Your Own Music.

macOS 10.13.4 to Warn About 32-bit Apps Starting April 12

Apple (via Apple News and Updates):

To ensure that the apps you purchase are as advanced as the Mac you run them on, all future Mac software will eventually be required to be 64-bit.

Apple began the transition to 64-bit hardware and software technology for Mac over a decade ago, and is working with developers to transition their apps to 64-bit. At our Worldwide Developers Conference in 2017, Apple informed developers that macOS High Sierra would be the last version of macOS to run 32-bit apps without compromise.

While developers optimize their apps for 64-bit compatibility, Apple is notifying customers when they are using an app based on 32-bit technology. This is done via a one-time alert that appears when you launch a 32-bit app.

Jason Snell:

Apple’s long transition away from 32-bit software takes another step beginning April 12.

Marc Edwards:

In celebration of today being 32bit-app-warning-day for macOS, I thought I’d check if I have any 32bit apps installed… The apps in blue are all from one company.

Plus DVD Player.

And the Spotlight importer that Apple ships for Microsoft Office.

Previously: macOS 10.13.4, macOS 10.13 High Sierra Released.

Update (2018-04-13): Accidental Tech Podcast discusses the wording of the warning dialog.

Jason Snell:

RIP good QuickTime Player

* QT Player 7 contains a lot of features QT X has never offered, so people keep using it

* 32 bit apps are going away

* I cheekily filed a radar suggesting Apple should update QTP 7 to 64-bit

* Apple closed my bug

Rob Griffiths:

Part of why we sent our movie mgr/viewer Usher into hibernation is that it relies heavily on QuickTime 7 for much of what it does.

Apple has no replacement for QT7, so with 32bit dying, Usher had to go, too.

It boggles my mind that they never replaced this tech.

Colin Cornaby:

QuickTime doesn’t really exist on 64 bit at all. The 64 bit QuickTime Player is not actually QuickTime. Only parts having anything to do with QuickTime left is QuickTime file support in AVFoundation.

[…]

Can’t port the classic QuickTime Player if there is no QuickTime on 64 bit.

Daniel Jalkut:

Thanks to the 32-bit warning in macOS 10.13.4, I learned that my Fujitsu scanner software is from 2011.

Previously: ScanSnap and Sierra Update.

Dan Moren:

The biggest reason that people are up in arms about the death of QuickTime 7 Pro is that its successor, QuickTime Player X, never quite filled its shoes when it came to features.

The Pro features of QuickTime 7 include making simple edits by cutting and pasting sections of tracks, the ability to export specific tracks from a multi-track file (such as podcasters get if they use a recording utility like Ecamm’s Call Recorder), creating and viewing chapter marks within a file, and more. Most of those fell by the wayside in the far more basic QuickTime X, which is focused much more on media playback than on any editing features. (And there are those, like our friend John Siracusa, who simply want a media player where the controls don’t appear on top of the video.)

Update (2018-04-14): Jeff Johnson:

I created a new user account on 10.13.4. I got 32-bit warnings for 3rd party apps but not Apple apps (such as DVD Player). They’re definitely whitelisting.

[…]

  1. Create a new Mac app in Xcode with i386 arch. Run it. See warning.
  2. Create a new Mac app in Xcode with i386 arch and bundle id beginning with “com.apple”. Run it. Don’t see warning.

The Kindle app is also 32-bit.

Update (2018-04-15): Jeff Johnson:

People are saying that Apple’s Compressor is still 32-bit, which is interesting.

Update (2018-04-17): Erica Sadun:

This makes me immensely sad as I regularly use QTPro to perform video edits from trimming and masking to watermarking and generating image sequences. I do not know of any replacement and would love recommendations.

Microsoft Office 2008 will soon be dead as well. It’s a powerful suite of tools, especially Excel, and I will be bitterly missing its functionality. Numbers and Pages just do not compare to the publishing-standard features offered in the hideously ugly but tremendously functional suite. I do not intend to sign up for a yearly subscription. I may do something with Open Office but I’ll probably stick to Apple and hate doing so.

Howard Oakley:

My own tool 32-bitCheck, available from Downloads above, goes deeper than Apple’s app check, and checks all software bundles. In doing so, it reveals that many of the components included in High Sierra 10.13.4 are still not 64-bit. This could, of course, simply be that Apple hasn’t got round to updating its own products yet. But remaining 32-bit bundles form quite a distinctive pattern, or some extraordinary coincidence.

Update (2018-04-18): John Gruber:

I still use QuickTime 7 Pro, too — I have it set as my default app to open any video file. When I checked my list of installed apps looking for any remaining 32-bit hold-outs, none of the apps I use regularly are 32-bit. But I spotted several irregularly used apps that are.

[…]

What makes QuickTime 7 Pro particularly irksome, as Moren points out, is that it’s Apple’s own software and Apple has resolutely refused to address QuickTime X’s deficiencies for over a decade, so nobody expects to ever see a full replacement for QuickTime Pro.

Update (2018-04-20): Other 32-bit apps that I have installed: GyazMail, Mailsmith, Myth II, PowerMail, ProfitTrain.

Update (2018-05-01): Rob Griffiths:

Of more interest to me are those 12 games that haven’t been updated in at least four years. In particular, eight of those 12 are still 32-bit apps, which is a big cause for concern for a couple of reasons.

Update (2019-02-01): Max Seelemann:

These 32bit app warnings on Mojave are really the worst UI Apple has done in a very long time.

These pop up at random times, for random trash apps somewhere on my disk.

I was just typing, an alert came, I hit the space bar, and was brought to the FAQ website.

Behind-the-Scenes Improvements in Swift 4.1

Slava Pestov:

The bridging peephole recognizes such situations and cancels out the two complementary bridging operations; the cast now has the effect of eliminating the bridging performed by default, returning the underlying NSArray as a result. The peephole is implemented in the SILGen phase of the pipeline so you get the benefit even at -Onone, and the implementation also introduced some cleanups to how various value conversions and transformations are modeled in the AST and SILGen.

[…]

Now in Swift 4.1, type metadata for nested generic types no longer points at the parent type, and instead includes all generic parameters for all outer scopes. The main user-visible benefit here is that a certain class of runtime deadlocks with circular type metadata is now fixed. A complete solution for the general runtime deadlock issue with circular type metadata is not part of Swift 4.1, but is being developed on the master branch.

[…]

This is why Swift 4.0 did not allow the default implementation of a protocol method returning Self to be used on a class. In Swift 4.1, this problem is solved by having protocol witness thunks for classes preserve the metadata for Self they received from the caller, instead of always taking it apart, and pass it on if the protocol requirement is satisfied by a default implementation.

Previously: Swift 4.1, Swift 4: Bridging Peephole for “as” Casts.

Initial HomePod Sales

Mark Gurman (Hacker News):

By late March, Apple had lowered sales forecasts and cut some orders with Inventec Corp., one of the manufacturers that builds the HomePod for Apple, according to a person familiar with the matter.

At first, it looked like the HomePod might be a hit. Pre-orders were strong, and in the last week of January the device grabbed about a third of the U.S. smart speaker market in unit sales, according to data provided to Bloomberg by Slice Intelligence. But by the time HomePods arrived in stores, sales were tanking, says Slice principal analyst Ken Cassar. “Even when people had the ability to hear these things,” he says, “it still didn’t give Apple another spike.”

During the HomePod’s first 10 weeks of sales, it eked out 10 percent of the smart speaker market, compared with 73 percent for Amazon’s Echo devices and 14 percent for the Google Home, according to Slice Intelligence. Three weeks after the launch, weekly HomePod sales slipped to about 4 percent of the smart speaker category on average, the market research firm says. Inventory is piling up, according to Apple store workers, who say some locations are selling fewer than 10 HomePods a day.

Mike Dudas:

The HomePod is a bomb. Siri is atrocious, so it’s no surprise. I have had an iPhone at my side for nearly every moment of the last 4 years and have still made more overall queries to the Alexa I have had at home for a little over one year.

M.G. Siegler:

Shocki... nope, not shocking. Apple bungled this. And while they’ll undoubted talk up the long game (and WWDC), the problems here run deep. Unlike say, Apple Watch, this is a lethal mixture of bad strategy and formidable competitors (who have the right strategy).

Michael Sagmeister:

I tried HomePod — twice (bought & returned it 2x — don’t ask). In the end I thought it sounded great — but it couldn’t replace my Echo (because Siri), and couldn’t replace my Sonos system either (b/c lack of multi-room support). Software is holding back a great piece of hardware.

Colin Cornaby:

The thing about HomePod is it’s fixable. Apple just shipped a device that’s not workable in most homes.

Rene Ritchie:

Home assistants were priced as commodities almost at launch.

Apple tends to avoid commodities.

HomePod takes aim at a (potentially) premium segment.

Whether Apple can iterate/evangelize fast/well enough on the value prop to get consumer buy-in will be interesting to see.

Update (2018-05-18): Juli Clover:

Apple sold an estimated 600,000 HomePod speakers during the first quarter of 2018, according to new estimates shared this morning by Strategy Analytics. Apple’s sales allowed it to capture just 6 percent of the global smart speaker market, coming in well behind Amazon and Google.

Update (2018-06-15): Benjamin Mayo:

Apple recently updated the HomePod site, seemingly to remove a lot of the superlatives in the copy.

Update (2018-08-15): Joe Rossignol:

Strategy Analytics previously estimated HomePod shipments totaled 600,000 units in the first quarter of 2018, suggesting that worldwide shipments have reached 1.3 million units since the speaker became available to order in the United States, Australia, and the United Kingdom in late January.

Via Michael Love:

Seems increasingly clear that this is not an important category, though. No doubt HomePod project started before that was clear, but now that it is I think they’ll either a) let it die quietly or b) release the cheap model they were already working on and then let it die quietly.

Update (2018-09-19): Joe Rossignol:

While the HomePod did not rank among the top five smart speakers in worldwide shipments last quarter, it is dominating the premium end of the market, according to research firm Strategy Analytics.

The Looptail Lowercase G

Lauren Sigfusson:

But researchers from Johns Hopkins University discovered that many people don’t know what the most common lowercase print version of the seventh letter of the alphabet really is. Heck, some didn’t even know there were two types.

Via John Gruber:

I got this correct, but if I had been asked to draw a looptail ‘G’ from memory I’d have failed. It is a really weird letter shape when you stare at it.

Previously: Logo Recognition Quiz.

Wednesday, April 11, 2018

Why SQLite Does Not Use Git

SQLite (via Hacker News):

And it is not really about just finding the descendents of a check-in from time to time. The fact that descendents are readily available in Fossil means that the information pervades the web pages provided by Fossil. One example: Every Fossil check-in information page (example) shows a small “Context” graph of the immediate predecessor and successors to that check-in. This helps the user maintain better situational awareness, and it provides useful capabilities, such as the ability click forward to the next check-in in sequence. Another example: Fossil easily shows the context around a specific check-in (example) which again helps to promote situational awareness and a deeper understanding of what is happening in the code.

All of the above is possible with Git, given the right extensions and tools and using the right commands. But it is not easy to do, and so it rarely gets done. Consequently, developers have less awareness of what is happening in the code.

[…]

Git keeps the complete DAG of the check-in sequence. But branch tags are local information that is not synced and not retained once a branch closes. This makes review of historical branches tedious.

As an example, consider display of a single historical branch of SQLite as rendered by GitHub and by Fossil:

Update (2018-04-15): See also: Hacker News.

The Making of Dark Castle

Richard Moss (via Hacker News):

Pierce thought it was stupid and incoherent. Instead, he said, “Here’s what we’re gonna do.” In a fit of sudden creative inspiration, Pierce drew out a storyboard of the whole game, which he called Dark Castle. It would be a quest against an evil Black Knight who can only be defeated by surviving a series of trials and obtaining a magic shield and the power to hurl fireballs. He told them, piece by piece, approximately how the game would work. The Silicon Beach people in attendance — Eric Zocher, Charlie Jackson, Charlie Jackson’s wife, and Jonathan Gay — had no objection to being talked to that way. Pierce was the expert. If anything, they were impressed. The five of them plus the ten-year-old son of one of Jackson’s friends then spent the rest of the afternoon sitting around a whiteboard, fleshing out the story and brainstorming ideas for the details of specific rooms and weapons.

[…]

Zocher digitized the sounds and refined them in his Wave Edit program to fit the constraints of the Macintosh. Both the 512K and Plus models, but not the original 128K, would be supported this time. He also developed Version 2.0 of his custom sound driver, which could now play compressed sound files. Dark Castle had seventy-two sounds, including Noel’s voice characterizations; a lightning strike and the opening few chords of Bach’s Toccata and Fugue in D Minor, for the game’s title screen; and a variety of environmental sound effects, such as running water (recorded from sinks and toilets) and clinking chains (recorded by dropping the little metal ring that locks the legs on a fold-up table).

[…]

Aside from its landmark control scheme (the W, A, S, and D keys controlled movement, while the mouse took care of aiming and shooting, as is the standard today), its wider influence would be limited, however, to only those who played it on the Mac. DOS, Apple IIGS, Sega Mega Drive, Amiga, Commodore 64, Philips CD-i, Atari ST, and MSX versions would follow over the next several years. None caused much of a stir — some for poor timing or limited marketing, others for minor imperfections that marred the overall experience and made it harder to justify the effort of beating one of most difficult games of the era. The best known of these ports, the DOS and Mega Drive versions, actually did Dark Castle a great disservice. They offered garish, blocky, color renditions of Pierce’s detailed, hand-drawn, black-and-white artwork, and they paired this with an inferior animation engine and awkward, slow gamepad and keyboard-only control setups that muddied the precise and idiosyncratic mouse and keyboard controls of the Mac original.

See also: The Internet Archive, current versions of Lunatic Fringe, Maelstrom, and Myth II.

Update (2018-04-18): Riccardo Mori:

Love this spread on MacUser (April 1987) of the beginning of the Dark Castle review by Linda Joan Kaplan. (The review is 5 pages long).

The Inside Story of Reddit’s Redesign

Arielle Pardes:

People on Reddit, like people everywhere on the internet, resist even the slightest changes. Redesigns almost always elicit atavistic rage—take it from Facebook, or Snapchat, or Digg. But on a site like Reddit, with 13 years of history baked into its current design, the resistance to change is higher than usual. As one user, u/vusys, put it in a comment to the design team: “The biggest misstep is taking a revolutionary approach instead of evolutionary. I agree that current reddit is kind of ugly, but it works.”

[…]

The research from Krishna and Aradhyula helped inform a new set of design choices aimed at breaking down that perception: Now, there’s a bigger button to signal where you can create a post. Before, formatting text posts required the use of Markdown; now, there’s a WYSIWYG toolbar too. Before, you couldn’t combine text, images, and links in the same posts; now, you can roll them all into one, along with embedded movies. The new posting flow also surfaces the community guidelines of the subreddit you’re posting to, which helps new users understand the rules so they don’t accidentally get their post nuked. It’s hard to imagine a Reddit veteran caring about any of this. But for someone brand new to the site, it’s the difference between finding the confidence to make that first post or closing the tab, walking away, and never coming back.

[…]

To make that possible, the redesign introduces three ways to browse the site: “Classic view” looks the most like Reddit did before. “Compact view” helps moderators scroll through bulk content quickly. “Card view” pre-expands content like photos and posts, which makes it easier to scroll through a feed like r/pics without having to click each individual post. (It looks a lot more like Facebook or Twitter, which Perez says is intentional. “For a lot of our new users, they like it. They come from those places.”) Users can toggle between these three views at any time, offering a more customizable way to consume the content on the site. Now, there’s no single way to use Reddit. There’s no single redesign either.

Update (2018-06-12): Chris Siebenmann:

It's pretty clear to me that the old design intended people to click on the links to articles, taking you away from Reddit; you might then return back to read the Reddit comments. The new design intends for you to click on the links to the Reddit discussions; even on the individual discussion page for a link, the link itself is no more prominent than here. As it is, posts to r/golang and elsewhere are often simply on-Reddit questions or notes; with the new design, I expect that to happen more and more.

Not for Mac

Chuq Von Rospach:

Just had that “oh, yeah, Apple hasn’t gotten around to porting Homekit to MacOS yet” moment. again.

Apple:

With iOS 10 and later, you can make your iMessages more expressive. Add effects to your message bubbles, send animations that take over the entire screen, add a personal touch with a handwritten note, and more.

IBM:

You can build apps that leverage Watson models on iPhone and iPad, even when offline. Your apps can quickly analyze images, accurately classify visual content, and easily train models using Watson Services. Get started with pre-trained Watson models, or customize and train models that continuously learn over time.

Previously: The Lagging Mac App Store.

How Fast Is AMP Really?

Tim Kadlec (via Hacker News):

As Ferdy pointed out, when you click through to an AMP article from Google Search, it loads instantly—AMP’s little lightning bolt icon seems more than appropriate. But what you don’t see is that Google gets that instantaneous loading by actively preloading AMP documents in the background.

[…]

On the other hand, it does appear that AMP documents tend to be faster than their counterparts. AMP’s promise of improved distribution cuts a lot of red tape. Suddenly publishers who have a hard time saying no to third-party scripts for their canonical pages are more willing (or at least, made to) reduce them dramatically for their AMP counterparts.

AMP’s biggest advantage isn’t the library—you can beat that on your own. It isn’t the AMP cache—you can get many of those optimizations through a good build script, and all of them through a decent CDN provider. That’s not to say there aren’t some really smart things happening in the AMP JS library or the cache—there are. It’s just not what makes the biggest difference from a performance perspective.

AMP’s biggest advantage is the restrictions it draws on how much stuff you can cram into a single page.

IndieWeb Generation 4 and Hosted Domains

Manton Reece:

I want blogging to be as easy as tweeting. Anything short of that isn’t good enough for Micro.blog. You’ll notice when you use Twitter that they never ask you to SFTP into twitter.com to configure your account. They don’t ask you to install anything.

More powerful software that you can endlessly customize will always have its place. It’s good to have a range of options, including open source to tinker with. That’s often where some of the best ideas start. But too often I see people get lost in the weeds of plugins and themes, lured in by the myth that you have to self-host with WordPress to be part of the IndieWeb.

Owning your content isn’t about portable software. It’s about portable URLs and data. It’s about domain names.

Tuesday, April 10, 2018

Overture: a Swift Library for Function Composition

Point-Free (via Matthew Johnson):

This library was created as an alternative to swift-prelude, which provides these tools (and more) using infix operators. For example, pipe is none other than the arrow composition operator >>>, which means the following are equivalent:

xs.map(incr >>> square)
xs.map(pipe(incr, square))

We know that many code bases are not going to be comfortable introducing operators, so we wanted to reduce the barrier to entry for embracing function composition.

OkCupid’s “Removed” Visitor API

Zack Whipkey (via Hacker News):

She boasted about being able to use the now removed Visitor feature of OKCupid through their JSON API, polling it to see who was looking at her profile throughout the day. […] A few weeks ago, I hit the same API using okcupidjs, a library developed by Hung Tran, and I was floored at the data that provided.

[…]

On March 29th, I contacted OKCupid to report the issue, and asked why so much unnecessary data was being provided. OKCupid responded within 6 hours, telling me that they confirmed the issue and removed access to the visitor API endpoint. This is fast in the world of responsible disclosure, and I give them kudos. However, they gave no answer for why unnecessary data was being provided.

[…]

The statement “Your zip code will not be public” was blatantly false.

Apple Now Runs On “100%” Green Energy

Mark Sullivan:

“You could go out and buy carbon credits and offsets–nope,” says Jackson firmly.

[…]

“I am not aware of any other company that uses that same stringency for making sure the clean power that they’re investing in or purchasing is on the regional grid where it’s being used,” she boasts. But she acknowledges that there are still places in the world where that’s not possible, though that may have more to do with the reality of power markets than choices Apple has made. In some cases, the company has had to sign long-term contracts to acquire the RECs from a new project it helped create elsewhere in the same region. That was the case recently for a two-person office in Chile. There was no suitable green energy source nearby, so Apple is now offsetting the brown power used by that office with RECs from one of its green-power projects in Brazil.

This sounds like a reasonable thing to do in that situation, but if Apple is relying on credits/offsets I don’t think they should claim to use 100% green energy. That would imply that they can run without any brown power, which doesn’t seem to be the case. There are also questions about what the Apple stores in Nova Scotia, Perth, and Anchorage are doing.

The article also doesn’t make clear exactly what happens in areas where renewable energy may not be reliable around the clock. Are they storing solar energy in batteries during the day to use at night? Or is the “100%” a net figure meaning that enough extra is produced during the day to balance out the nighttime use? If the latter, that is really misleading.

Tim Cook:

Every Apple store, every data center, every Apple corporate office — everywhere — is now powered by 100 percent renewable energy.

I wish Cook would stop overreaching. He could be proud of what Apple has accomplished here without claiming more than it’s actually done. Just like he could have said that Apple was paying the taxes required by law without also claiming not to “depend on tax gimmicks”. Or he could have defended the reasoning behind the iPhone battery throttling without claiming that Apple had explained it when iOS 10.2.1 was released.

Towards Robust Performance Measurement

Pavol Vaskovic:

When measuring the performance impact of changes to Swift, the CI bots run the benchmark suite two times: once to get the baseline on the current tip of the tree and again on the branch from the PR. For this, the Benchmark_Driver runs set of 334 performance tests (some are excluded because they are considered unstable) and gathers 20 samples per benchmark for optimized binary and 5 samples per benchmark for unoptimized binary. With ~1s per sample, this results in minimum of 4,6 hours to execute the benchmarks (not counting project compilation). This means that full benchmarks are requested rather rarely, I guess to not overburden the CI infrastructure. Recently reviewers switched to asking Swift CI to please smoke benchmark, which only gathers 3 samples per optimization level, reporting benchmark results in about 1 hour.

Performance test results reported by CI on Github often show false regressions and improvements, forcing the reviewers to perform frequent judgment calls. Even though there are 137 benchmarks excluded from the pre-commit test because they were considered unstable, the Swift benchmark suite does not appear to be exactly stable…

Sometimes improved compiler optimizations kick in and eliminate main workload of an incorrectly written benchmark but nobody notices it for a long stretches of time. Usually the non-zero setup work masks the problem because it prevents measured time from dropping to zero. There is no publicly visible tracking of performance results from the benchmark suite over time that would help prevent this issue either.

Pavol Vaskovic (via Erica Sadun):

Given the fact Swift Benchmark Suite is a set of microbenchmarks, we are measuring effects that are manifested in microseconds. We can significantly increase the robustness of our measurement process using statistical methods. Necessary prerequisite is having a representative sample population of reasonable size. From the experiment analyzed in previous sections it is apparent that we can make the measurement process resilient to the effects of varying system load if the benchmarked workload stays in range of hundreds of milliseconds, up to few thousand. Above that it becomes impossible to separate the signal from noise on a heavily contested CPU.

By making the run time small, it takes less time to gather enough samples and their quality is better. By staying well under the 10 millisecond time slice we get more pristine samples and the samples that were interrupted by context switching are easier to identify. Excluding outliers makes our measurement more robust.

After these resilience preconditions are met, we can speed up the whole measurement process by running it in parallel on all available CPU cores. If we gather 10 independent one-second measurements on a 10 core machine, we can run the whole Benchmark Suite in 500 seconds, while having much better confidence in the statistical significance of the reported results!

App Store Subscriptions And You

Daniel Kennett (tweet):

What makes this more difficult is that right now, App Store subscriptions for “normal” apps (i.e., those that aren’t content services like magazines or Netflix) are reasonably new, and Apple appears to be finessing the rules over time. This can cause a frustrating situation as you try to do your best but end up getting repeated rejections due to your app not meeting the rules.

At the time of writing, I’ve been shipping an app that uses subscriptions for eight months, and have had multiple subscription-related rejections happen between my first release and now due to changing rules and changing enforcement of existing rules. The information in this post is a combination of my experience, as well as conversations with App Review both via email and phone. Hopefully the additional context provided by speaking to a human being from App Review on the phone will be as helpful to you as it was for me.

Erasing Complexity: the Comfort of Apple’s Ecosystem

Federico Viticci:

Probably for the first time since I started MacStories nine years ago, I feel comfortable using Apple’s services and hardware extensively not because I’ve given up on searching for third-party products, but because I’ve tried them all. And ultimately, none of them made me happier with my tech habits. It took me years of experiments (and a lot of money spent on gadgets and subscriptions) to notice how, for a variety of reasons, I found a healthy tech balance by consciously deciding to embrace the Apple ecosystem.

[…]

It’s possible to like something and still point out its flaws. This is an unpopular opinion both among those who think Apple can do no wrong, as well as folks who think they’ve done nothing important after Steve Jobs. I strongly believe that both extremist camps are misguided.

More than ever, consumer technology choices come down to picking the compromises we’re willing to accept and the best overall experience for us. These two sides aren’t mutually exclusive. For instance, you can love the Nintendo Switch and still think that the lack of a Virtual Console and cloud saves is downright user hostile. You can be a fan of Spotify’s remarkable intelligence, but also find its user interface design uninspired. You can recognize the fact that Siri should be substantially improved – if not rebuilt altogether – but also like it for the things it gets right today.

Monday, April 9, 2018

If iPads Were Meant for Kids

Dave DeLong (Hacker News):

If iPads were meant for kids, then there would be a way for apps to know what the allowed content ratings are. An app should be able to know that I’ve only allowed G and PG media on the device. The Youtube app wouldn’t need its own rating system, and youtube.com would have some WebKit api to call to know to only allow kid-appropriate videos.

[…]

If iPads were meant for kids, then there would be a way to disable iMessage and FaceTime entirely except for a couple of allowed addresses. They can text daddy, mommy, grandma, and maybe some of their favorite aunts/uncles/cousins.

If iPads were meant for kids, then I, as a parent, would be able to set a parent passcode on a device in order to unlock it, even when the kids have forgotten their passcodes for the 17th time, so I don’t have to spend another hour or two getting the device in to DFU mode, re-installing the OS, and then re-downloading all of the apps they had that have now lost all of their local-stored data.

Previously: iPad Erased By Too Many Failed Passcode Entries.

Update (2018-04-10): Khoi Vinh:

The company’s challenge here is nontrivial in that they will need to prioritize among several different kinds of highly valuable users in the short term—but ultimately success may lie in building deep experiences for all of them. It’s actually pretty exciting to think about; good iPad software—apps that strike that special balance between ease of use, portability and raw power—is for me the true sweet spot for what computing can be.

Update (2018-04-11): Federico Viticci:

I don’t have kids, but I’ve long heard from MacStories readers that this kind of model – a ’Family’ app on the Home screen with lots of stats and easy-to-access controls for parents – would be fantastic to have on iOS. Given Apple’s commitment to families, I’m surprised iOS’ parental controls seem so lackluster when compared to what Nintendo has done with a game console.

Update (2018-04-12): See also: TidBITS Talk.

The Dots Do Matter

Jim Fisher:

I recently received an email from Netflix which nearly caused me to add my card details to someone else’s Netflix account. Here I show that this is a new kind of phishing scam which is enabled by an obscure feature of Gmail called “the dots don’t matter”. I then argue that the dots do matter, and that this Gmail feature is in fact a misfeature. Finally I’ll suggest some ways the Gmail team can combat such scams in future.

[…]

I finally realized that this email is to james.hfisher@gmail.com. I normally use jameshfisher@gmail.com, with no dots. You might think this email should have bounced, but instead it reached my inbox, because “dots don’t matter in Gmail addresses”:

Bruce Schneier:

James Fisher, who wrote the post, argues that it’s Google’s fault. Ignoring dots might give people an enormous number of different email addresses, but it’s not a feature that people actually want. And as long as other sites don’t follow Google’s lead, these sorts of problems are possible.

I think the problem is more subtle. It’s an example of two systems without a security vulnerability coming together to create a security vulnerability. As we connect more systems directly to each other, we’re going to see a lot more of these. And like this Google/Netflix interaction, it’s going to be hard to figure out who to blame and who -- if anyone -- has the responsibility of fixing it.

I see this as a Netflix bug. Shouldn’t they have verified that the account owner actually has access to the entered e-mail address?

Stay Away From Advanced Mac Cleaner

Lloyd Chambers:

Shown below, once tricked into installing Advanced Mac Cleaner (which does nothing useful as far as I can tell), you’ll be harassed many times daily to pay up. This is done via a LaunchAgent whose purpose is to harass you until you pay up.

Indeed, the mode of installation is to trick and annoy users into installing it by scare tactics (“your mac has 383 serious problems, click here to fix it up real nice”, or similar fear tactics).

[…]

But here is the real shocker (well, maybe not): Google promotes Advanced Mac Cleaner, and Apple allows it into the iTunes store! Shame on both companies.

As far as I can tell, the product in the Google ad and the Mac App Store is actually a different app called Dr. Cleaner. However, its reviews do not look encouraging, and its claims about optimizing memory sound suspicious.

CleanMyMac is a non-scammy app in this genre, but even there I think you need to be careful. The premise is that the app helps you delete files that you don’t understand, but then how can you be sure the app knows what it’s doing? In practice, I’ve seen lots of breakage caused by using these apps.

Previously: MacKeeper.

Update (2018-05-03): Dave Nanian:

If you’re using CleanMyMac, please note that it disables our scheduled copies when it runs. You should set it to not delete the “com.shirtpocket…” Launch Daemons.

Update (2018-05-04): Roustem Karimov:

I remember when CleanMyMac used to delete 1Password folders along with all user data in them. Not sure if it still does it

“FIXME” Doesn’t Always Mean “Fix Me”

Jordan Rose (tweet):

And you might be wondering if anyone is tracking all of these things that supposedly need fixing. Is there a JIRA for each one? No, doesn’t seem to be…

The answer is that “FIXME” doesn’t really mean “this code needs fixing”, at least not in Swift and LLVM. It means “this code isn’t as good as it should be”.

  • Maybe it’s using a slow algorithm, like a linear search through thousands of elements instead of a hashtable or binary search.
  • Maybe it doesn’t handle some inputs that are unusual but not impossible.
  • Maybe the code’s behavior is fine, but it’s really hard to understand and could benefit from some refactoring.

This is how I use it as well. A “FIXME” in the code is more like a note about known limitations or ideas for future improvement. Something that actually needs to be fixed soon goes into the bug tracker.

Native Apps in China

Luming Yin:

In America, mainstream native desktop (macOS or Windows) are in decline, and developers increasingly opt for building web apps or Electron apps. However, web apps vs. native desktop apps is a completely different story in companies such as China.

Music streaming: In the U.S., apart from AM/iTunes, no major music app is native. Spotify is Electron, Tidal is Electron, Amazon Prime and YT Music are web only. In China, all 4 major providers (QQ, Netease, Kugou, Kuwo) have native Mac apps, and they're all surprisingly good.

Social apps: Facebook Messenger has no Mac app, but both WeChat and QQ do. Slack is Electron-based, but WeChat Work is native, even supporting screen broadcasting. Twitter pulled its Mac app, but Weibo continues its support. So, native app for every mainstream Chinese platform.

Jim Reekes Discusses Apple Sound History

Jeniece Pettitt:

Apple users may notice that their computers and phones are filled with well-designed sounds that effortlessly blend into the experience — from the gentle keyboard clicks to the pings that alert you when something is wrong.

But what they may not know, is that three of the most famous Apple sounds — the boot up chord, the camera click and the “Sosumi” beep, all were created by one man, mostly from his San Jose living room.

His name is Jim Reekes. He started working at Apple in the late 1980s as a sound designer.

Via Mitchel Broussard:

Reekes also looked back on the Mac’s original startup tone, which annoyed him “immensely” because the Mac crashed so many times that it was easy to equate the tone with a frustrating situation. Although he didn’t have permission to change it, he recorded a new c-major chord in his living room and used The Beatles song “A Day in the Life” as inspiration.

Eventually, Reekes managed to sneak the sound into the original Macintosh Quadra computer.

Apple:

Mac computers introduced before late 2016 make a chime sound when they start up. Mac computers introduced after late 2016 don’t have a startup chime, with the exception of MacBook Air (13-inch, 2017).

Update (2018-04-09): There’s also a video interview (via nubero).

Friday, April 6, 2018

Twitter Shutting Down APIs

Twitter (MacRumors, Hacker News):

As we outlined in April, User Streams and Site Streams, along with the legacy Direct Message endpoints, will be replaced by improved products such as Account Activity API. We are providing notice to all Twitter developers that on Tuesday June 19, 2018 we are retiring the following services and endpoints[…]

Apps of a Feather:

If you use an app like Talon, Tweetbot, Tweetings, or Twitterrific, there is no way for its developer to fix these issues.

We are incredibly eager to update our apps. However, despite many requests for clarification and guidance, Twitter has not provided a way for us to recreate the lost functionality. We’ve been waiting for more than a year.

[…]

This change affects people who use third-party Twitter apps. All software platforms are affected, but it’s worse on iOS and Android where users rely on push notifications to know when something happens on Twitter.

Jason Snell:

I’d have a lot more sympathy for @TwitterDev taking control of its platform if it had ever showed any ability to create great user experiences itself. Instead it’s been @Twitterrific & @tweetbot that have done the work to make the platform better. #BreakingMyTwitter

There are lots of problems with this, but the biggest for me is that there’s no first-party Mac client, either. I would like to use Tweetbot, but I would use an official app if I had to. If the only choice is the Web site, I don’t see myself checking Twitter from my Mac at all.

Previously: Twitter Abolishes Native Mac Client.

Update (2018-04-06): Josh Centers:

The main reason Twitter hates third-party clients is because of the linear timeline. Why do FB and Twitter like jumbled timelines? It confuses you and they can slip in whatever they want. It’s power.

Zac Cichy:

I think Twitter’s ability to move quickly and control the subtleties of the user experience — including abuse — get easier when they aren’t having to consider third party client experiences.

MacRumors:

Twitter says it is delaying the planned June 19th deprecation date for its streaming services. Developers will also be provided with ample time to migrate to the new Account Activity API.

Update (2018-04-07): Janak Parekh (via Dave Mark):

I can tell you exactly what Twitter is thinking, but you won’t like it.

They no longer see themselves as a simple publish-subscribe service—they’ve been long trying to become a algorithmically-curated, ad-driven social network (because, you know, Facebook does it, so it must work). In order to push a single product vision, they must correspondingly control the client experience.

Unfortunately for them, they left the barn door open (back when they were a simple service) and so now a chunk of their userbase uses the product in a way that is no longer their focus. They don’t want this anymore. At the same time, their API is useful for certain business applications (linking to other products, for instance).

So, they’re slowly supporting the use case that lets you have custom Twitter clients just to read feeds less and less.

Mac mini Turning 3.5 Years Old

Joe Rossignol:

It’s an opportune time for a reminder that the Mac mini hasn’t been refreshed in three-and-a-half years as of April 16. 1,267 days ago as of today, according to our MacRumors Buyer’s Guide. We asked Apple for a comment, but it’s unlikely they’ll break silence.

Nick Heer:

Last year, the Mac Mini was upgraded from “a product in [Apple’s] lineup” to “an important part of [Apple’s] product line going forward”; Panzarino made no mention of any status change indicated during his Mac Pro briefing.

And that’s weird. Half of the Mac models Apple ships are stale. It isn’t just me who finds that strange, right?

Meanwhile, it’s been 2 years since Apple released a new 4-inch phone, almost 3 years since it updated the iPad mini, 5 years since it updated the AirPort Extreme Base Station, and 8 years since it raised the MacBook Pro’s RAM ceiling.

Previously: Apple Comments on AirPort’s Future, New MacBook Pros and the State of the Mac, An Important Part of Our Product Line Going Forward.

Reading This Site With NetNewsWire 3

NetNewsWire 3 still has its fans, but unfortunately starting around January 29 it’s not been able to fetch the RSS feed for this site (or for C-Command). My Web server has dropped support for TLS 1.0, and for reasons I don’t understand, it seems that this is what NetNewsWire’s RSS feed downloader wants to use. (Other parts of NetNewsWire, such as its feed auto-detection and its browser seem to be able to use a newer version of TLS.)

However, there’s a workaround. NetNewsWire 3 has a great feature that lets you to subscribe to a script rather than a URL. So you can just create a text file named feed.sh that looks like this:

#!/bin/bash
curl https://mjtsai.com/blog/feed/

or like this:

#!/bin/bash
curl https://c-command.com/blog/feed/

Then choose File ‣ New Special Subscription ‣ Script… and select the file. When NetNewsWire refreshes the subscription, it will run the script, which uses curl to download the feed.

Design Patterns Failed. Why? Should We Care?

Brian Marick (via Ole Begemann):

Now, I was in Ralph Johnson’s reading group. So when they were writing this book, I was reading early drafts of this, and I was talking to Ralph Johnson. And so I can say with, I think, a certain amount of authority that they thought of this as a first step in the direction of A Pattern Language. They were trying-- This was the first step on a path that would replicate the experience of using a pattern language, and that all fell apart.

And the question is why. I think you can have several reasons, but I’m going to focus on this one, which is that design patterns started out with not enough building blocks, that were at too low of a level. So if you look at all the design patterns, they’re basically composed of two things. There’s functions, or methods, which are just functions, and polymorphism, based on inheritance. Those are the two things in your bag of tricks, and that’s what you create these design patterns from.

Now, the building blocks from Alexander’s book are much richer. There are many, many more of them. These are just a sample of the building blocks used in patterns, where each one of those appears in the title of at least two patterns. So there are lots of building blocks, and they’re interconnected in various ways.

Previously: John Vlissides, Design Patterns of 1972.

The Stack Overflow Age

Joel Spolsky (tweet):

And, also: Stack Overflow will be ten years old soon! Wow! So I thought it would be cool to get the old band back together for a little reunion tour over the next few weeks. I want to catch you all up on some stuff but mostly I want to tell the story of Stack Overflow in a not-completely-disorganized way. With some perspective, it’s clearer now what we did right and what we messed up, so I’ll try to cover the good and the bad over a series of blog posts.

[…]

Of course, it turned out a lot bigger than we thought it would. The company today has 250 employees, is profitable, and has made it possible for millions of people to learn how to code and to deal with the new, super-complicated world of APIs and frameworks that we live in. But we just wanted to fix the internet.

Google Maps Adds Restaurant Wait Times and More

Juli Clover:

When searching for a restaurant using Google Maps, you can now see wait times at more than a million restaurants around the world that will let you know just how long you can expect to wait before being seated.

Apple Watch Adoption

David Smith (Hacker News):

The Series 3 is being adopted incredibly quickly and just last week became the most popular Apple Watch overall amongst my users with 33% of the overall user-base. The Series 0 is steadily falling, currently at around 24%.

[…]

I don’t know how low Apple would feel comfortable cutting off support for the Series 0, but it certainly seems like it is a possibility.

Manton Reece:

The big difference between the Apple Watch and the original iPhone or iPad is that many people (perhaps most) do not run third-party apps on the watch. Those people are not even counted in David Smith’s numbers.

See also: Under the Radar.

Thursday, April 5, 2018

New Mac Pro Won’t Arrive Until 2019

Matthew Panzarino (Hacker News, MacRumors):

“We want to be transparent and communicate openly with our pro community, so we want them to know that the Mac Pro is a 2019 product. It’s not something for this year.” In addition to transparency for pro customers, there’s also a larger fiscal reason behind it. […] This is why Apple wants to be as explicit as possible now, so that if institutional buyers or other large customers are waiting to spend budget on, say iMac Pros or other machines, they should pull the trigger without worry that a Mac Pro might appear late in the purchasing year.

[…]

To be blunt: Is this the original story arc of the Mac Pro’s development, or are we looking at a roadmap that has a fundamentally different timeline than one year ago.

“I don’t think that the timeline has fundamentally changed,” says Ternus. “I think this is very much a situation where we want to measure twice and cut once, and we want to make sure we’re building a really well thought-out platform for what our pro customers are doing today. But also with an eye towards what they’re going to be doing in the future, as well. And so to do that right, that’s what we’re focusing on.”

While there are no further details on the exact shape that the Mac Pro will take, Boger says they are still very much in the modular mindset.

[…]

My recent conversations with Apple (including the ones cited in this piece, but not those alone) lead me to believe that they know they kept going on a path with pro customers that they felt was working long after it had, in fact, begun to erode. I’m not exactly sure what the timeline was, but given the fact that the Mac Pro won’t arrive until 2019, I’m guessing just before the round-table discussion a year ago.

I don’t see a way to spin this as anything other than crushing news. Either pro customers are still a low priority at Apple or the company is just unable to execute. Yes, technically Apple did not promise last year that the Mac Pro would arrive in 2018, but that was the clear implication. If the timeline hasn’t fundamentally changed, that now seems like a deliberate misdirection. And, even now, Apple is not committing to “early 2019,” just sometime during that year.

How could the “path” have been working until 2017 when Apple knew in 2014 that the 2013 Mac Pro was a thermal dead-end? The 2013 design had already been met with skepticism when it was announced at WWDC six months before shipping. For many users, there hasn’t been a “real” Mac Pro update since 2011. The implication is that until a year ago Apple’s only plan was to build iMacs.

And as far as rectifying things, Ternus’s comments make it sound Apple is taking exactly the wrong approach. This was not the time to do fundamental market research, rethink what a professional computer should be, and come up with a revolutionary new design that will last. The way to show pro customers that Apple cares would have been to give them what they were asking for—a new cheese grater—as soon as possible and then get working on the future. (Foregoing a stopgap model might have made sense if Apple had been targeting, say, early 2018, but apparently that was never the case.) Making perfect the enemy of good just sends the message that Apple isn’t listening and you should switch to Windows.

Instead, everyone is stuck waiting, yet we still have no idea what the new Mac Pro will be, and thus whether it’s worth waiting for. Apple hasn’t said what it means by “modular.” If all it means is “no built-in display,” that’s not very helpful. Certainly, this is not “transparent” and “open” communication.

And, in the meantime, there hasn’t been so much as a CPU bump to the 2013 Mac Pro. This was the “Can’t innovate anymore, my ass” model that was supposed to show Apple hadn’t forgotten about the pro market.

Thomas Ricker:

The Mac Pro, announced in April 2017 is not coming until 2019. If Apple’s development lifecycle is generally two years, then the April announcment was pretty much an “oh shit, we need to respond to consumer outrage moment.” Bizarre.

Justin Flood:

I can’t imagine why sourcing a pretty space grey xeon motherboard from foxconn and CNC milling a slightly shrunken and thinned version of the Cheesegrater case should take this long. Unless of course, they are overthinking it. Which they are.

Steven Woolgar:

When Apple transitioned to Intel, they sent generic Intel motherboards in the cheesegrater G5. Suck up pride and just ship us a damned top of the line motherboard and GPU with drivers now (outsource it like the displays). 6+ years of waiting on a Pro machine is a bit much.

Steve Troughton-Smith:

Great that Apple is being open about its work with professionals. But yeah, with a six year gap between releases, be nice if they could give more detail about the plans for this product. Maybe find out ahead of time whether they’re building the right/wrong machine this time?

Paul Haddad:

Just stick a freaking Xeon in a large box. Literally should be the easiest product they release in any year.

Ryan Jones:

Bingo. Am I a broken record yet? STFU about new products TIM! AND, if you can’t (like Mac Pro) then don’t semi-lie. Set realistic goals, then add fluff, and over-deliver.

This unforced errors, and “delays” because you set your own deadlines you can’t hit is so idiotic.

Michael Love:

Interesting that now we know it’s 2019. But not much to offer hope of a pro-oriented MBP revamp - it feels to me like they’ve as with the Mac Pro they’ve painted themselves into a thermal corner making them so thin + can only partly mitigate that with eGPUs.

@gonefishingsign:

Talk is irrelevant when the action reveals disdain for pro user. Had a lengthy discussion this AM about Pro direction, the widespread attitude is find a new platform for work. And try to convince purchasing managers that 2015 hardware is needed for ports, escape key, etc 🙃🤔🙄

Steve Troughton-Smith:

As somebody who desperately needs a new headless desktop Mac, it’s incredibly frustrating that Apple can’t ship one. Apple’s determination to create the ‘perfect’ Mac Pro instead of just shipping a damn box leaves us with no options. At this point I’d take a damn G5/DTK chassis

Previously: The Mac Pro Lives.

Update (2018-04-05): Tim Ekl:

Taking this thought one step further: what if the Mac Pro were the first ARM-based Mac? What if it shipped with a couple dozen ARM cores, happily parallelizing the kinds of workloads the Mac Pro is known for?

That would be interesting—and yet another reason to ship a stopgap cheese grater.

John Gruber:

Sure, I wish the new Mac Pro were coming sooner. But overall this story is fantastic news for pro users — it shows Apple not only cares about the pro market, but that they’ve changed course and decided that the best way to serve pros is to work with them hand in hand.

Josh Centers:

Apple should just reopen its clone program at this point.

mockletoy:

This gigantic delay between announcement and delivery? That tells some of us that there’s no point in waiting, because if they were going to give us what we wanted they could have done it pretty much instantly: give me a plain old tower — you can make it all fancy and aluminum and pretty, who cares, I’ll even shrug and pay extra for it — with a plain old motherboard and some plain old PCIE slots.

[…]

Based on all that, when I hear them say it’ll be modular, I shudder to think what their interpretation of that will be[…]

Update (2018-04-06): Nolan O’Brien:

Mac Pro and Mac Mini for years were the easiest products for Apple. Bump the damn specs and ship it. Maybe adopt modern I.D. improvements over time, but holy hell this is abysmal.

The complaint of the Mac Pro in 2012 was not that the I.D. was stale, but that the specs were.

Andy Lee:

I wonder if (a) the decision makers at Apple are struggling with cognitive dissonance -- if they’re honestly incapable of grasping how easy it would be, in this particular case, to delight us with a new thing that isn’t revolutionary; or (b) more cynically, they know perfectly well how easy it would be, but are terrified of hurting the mystique around Apple design by proving their detractors are right, that there’s nothing uniquely magical about Apple’s hardware; or (c) we’re all wrong about the obvious thing to do now, and in the long run, what they’re doing will actually be best for all concerned, even if it’s hard for us outside Apple to see it. There was a time I could have believed (c), but I don’t now.

Bob Burrough:

I don’t care if you put 32 cores in it and 256GB RAM. If it’s a sealed, all-in-one, non-expandable product, it isn’t Pro.

StayPuftZombie:

Workflow teams from StarWars were the same narrow group that liked the trashcan. I’m getting worried about this upcoming “modular” Mac. The trashcan Mac was “modular” with a octopus nest of wires and boxes snaking from it. I don’t want a “modular” Mac. I want an expandable Mac.

scott:

I don’t think Apple considers developers Pros. They are building these machines for video and animation studios that buy dozens at a time. Why would this Apple care what a single developer thinks if they’re only going to buy one pro machine every 5-10 years? I don’t agree, but...

Sebastiaan de With:

I have to say, though: this makes no sense to me. Pros need new Mac hardware more than anything, and it’s needed yesterday. You can’t research for all current (and future) workflows. The Mac Pro is half a decade old. Release. a. new. one.

John Martellaro:

I’d like to add something, however, that hasn’t been widely discussed. And that is the notion of technical admiration and aspiration versus mere aesthetic design.

Update (2018-04-09): Benjamin Mayo:

It’s certainly interesting that rather than questionnaires or soliciting phone calls, Apple is actively hiring these creative professionals in-house. […] I guess the danger here is that you tune too heavily towards the workflow team’s base of talent, which is currently composed of video artists, animators and music technicians. Requirements from other fields — of which the ‘pro’ market is very vast — may be de-prioritised or ignored entirely. Software development comes to mind.

Update (2018-04-14): See also: Accidental Tech Podcast, The Talk Show.

Update (2018-08-23): Steve Troughton-Smith:

Nvidia’s new RTX 2080 Ti is a mind-bogglingly-powerful GPU; that very likely means Thunderbolt 3 isn’t gonna come anywhere close to maximum performance as eGPU. that new Mac Pro better be something, because otherwise Mac users are gonna be left behind in a graphics revolution

It does suck that if you want a GTX 2080 Ti-like performance in a Mac, the only option you have is “wait 5 years and maybe AMD will have something as powerful that Apple’s comfortable shipping”. This is precisely why the Mac Pro needs to exist, and why it needs to have PCIe slots

Update (2019-01-01): Marco Arment:

When I made that $5 bet with @caseyliss in @atpfm #213 that the 2013 Mac Pro would still be for sale on January 1, 2018, I wouldn’t have predicted that it would also still be for sale on January 1, 2019.

At this point, it’s remarkable that they can even get the parts for it.

Update (2019-05-14): Malcolm Owen:

The first “leak” for the modular Mac Pro has surfaced in the form of a supposed internal Apple document for the device, alleged evidence for the highly-anticipated Mac that has many questionable elements making it very hard to believe is genuine at all.

App Store Shrank for First Time in 2017

Sarah Perez (Hacker News, MacRumors):

The App Store shrank for the first time in 2017, according to a new report from Appfigures. The report found the App Store lost 5 percent of its total apps over the course of the year, dropping from 2.2 million published iOS apps in the beginning of the year to 2.1 million by year-end.

Google Play, meanwhile, grew in 2017 — it was up 30 percent to more than 3.6 million apps.

Appfigures speculated the changes had to do with a combination of factors, including stricter enforcement of Apple’s review guidelines, along with a technical change requiring app developers to update their apps to the 64-bit architecture.

Appfigures:

Android developers kept busy, and in the last year alone released more than 1.5 million new apps. This is an increase of about 17% year over year, the largest jump since 2014. iOS developers on the other hand, took their time releasing just 755k new apps in 2017. That’s a big drop! 29% to be precise, the first drop since the App Store launched in 2008.

[…]

More than twice as many iOS apps came to Android in 2017 than Android apps came into the App Store.

Instagram Disables APIs

Juli Clover (Hacker News):

Along with multiple privacy-related API changes being made to Facebook, Facebook, which owns Instagram, announced that it has disabled several Instagram Platform APIs as of today, disabling certain Instagram features that are available in third-party Instagram apps.

Third-party Instagram apps will no longer be able to use APIs that provide access to follower lists, likes, relationships, and public comments.

The actual changelog is not very clear, saying only that the APIs are “deprecated,” which normally means that they will be removed at some time in the future. In fact, they seem to have been turned off yesterday.

bkanber:

The important thing to note here is that these endpoints were scheduled for retirement at future dates; some in July 2018, some in Dec 2018. Today, with no prior announcement, these endpoints were abruptly retired.

Instagram had previously published a deprecation schedule for these endpoints, and threw that schedule out the window without notifying even Instagram Partners.

Making the Touch Bar Useful by Abandoning Apple Guidelines

Vasily Zubarev (via Hacker News):

The Touch Bar should always be predictable. I don’t want to remember button configuration for every app. I want it to be useful and informative. Just give me an additional screen, like in the early fan renders.

[…]

The grown-up me started to track my everyday habits and search Reddit for ideas. The only proper app for Touch Bar customization I’ve found, is BetterTouchTool. It’s still buggy, user-hostile and drains the battery, but it only costs $5. Reasonable price, I recommend it.

[…]

Standard Touch Bar will never support the most useful feature — to display the name of track playing. Instead, Apple provides you with huge and useless timeline slider. I don’t know what’s playing but know the moment in time.

[…]

A lot of cool guys wanted to share their presets too, so we created a GitHub-repo for that. Feel free to add your own: github.com/vas3k/btt-touchbar-presets[…]

Previously: Making Better Use of the Touch Bar.

Update (2018-04-09): hrbrmstr:

Combining @boastr_net’s BetterTouchTool & @holman’s spark to add auto-updating sparklines to the macOS Touch Bar

Quiet By Design: Naomi Campbell Interviews Jony Ive

Jonathan Ive (via 9to5 Mac):

One of the defining things about the nature of ideas is just how fragile they are: when you’re not sure whether some-thing is going to work, the idea is vulnerable. Part of protecting the idea is to be careful about who you show it to; premature criticism can shut something down that perhaps deserves more of a chance.

[…]

Ultimately, Steve’s legacy is a set of values and, I think, the belief in trying. Often the quietest voices are the easiest to overlook, but he was brilliant at listening as well as leading and speaking. A lot of communication is listening – not just listening to figure out what you want to say in response.

BlackBag on APFS Encryption

Joe Sylve:

Whether or not you “unlock” an APFS volume during acquisition, physical APFS images will still contain encrypted data. Analysis tools such as BlackLight will then need the proper user password or recovery key to decrypt this data on demand, as you are conducting an examination. It is not technically possible to create a forensically sound physical image of an encrypted APFS volume that contains logically decrypted data.

[…]

APFS encrypts data blocks using the XTS-AES-128 cipher. In order to decrypt data, several pieces of information are required:

  • The encrypted data
  • 128-bit Volume Encryption Key
  • 128-bit Secondary Encryption Key
  • The original “block number” of the file

Each volume in an APFS container uses unique volume and secondary encryption keys. When a file is deleted, its data blocks are released to the container pool. At that point it is not possible to map an unallocated data block back to its original volume. We therefore do not know which encryption keys to use to correctly decrypt the data. This process is further complicated due to the fact that encrypted blocks can be relocated on disk. When this happens, the data is not re-encrypted, and the original block number must be known to decrypt the data. This information is generally lost when a file is deleted.

Update (2018-05-01): See also: APFS Internals for Forensic Analysis (PDF, via Enno Rey).

Wednesday, April 4, 2018

Apple Hires John Giannandrea

Jack Nicas and Cade Metz (Hacker News, MacRumors):

Apple has hired Google’s chief of search and artificial intelligence, John Giannandrea, a major coup in its bid to catch up to the artificial intelligence technology of its rivals.

Apple said on Tuesday that Mr. Giannandrea will run Apple’s “machine learning and A.I. strategy,” and become one of 16 executives who report directly to Apple’s chief executive, Timothy D. Cook.

I don’t know much about Giannandrea, but at least on paper this sounds like a great move. Of course, talent is not plug-and-play so we’ll have to see what happens. Some are already floating Giannandrea’s name as a possible successor as CEO. We also saw that with the hiring of Angela Ahrendts, which was also nearly universally praised, but four years later it’s not clear whether she’s succeeding as SVP of Retail.

John Gruber:

I think it’s important too that Giannandrea reports directly to Cook.

In other words, he should have the power to get things done, and this should take some of the load off of Craig Federighi. Back at Google, Giannandrea’s old position is being split into separate jobs for search (Ben Gomes) and AI (Jeff Dean).

See also: The Information.

Previously: What Went Wrong With Siri.

Update (2018-04-05): Samuel Axon:

Giannandrea joined Google in 2010 as part of the company's acquisition of Metaweb, the company behind Freebase, a community-driven database of data and information that was eventually leveraged to augment Google search results. He has also worked as Chief Technologist for Netscape, and he sits on the board of trustees for the SETI institute.

Update (2018-07-19): John Voorhees:

The Information reports that Tom Gruber, Apple’s head of the Siri Advanced Developments group, has retired to pursue personal interests including photography and ocean conservation. Gruber joined Apple as part of the company’s acquisition of Siri in 2010 along with his co-founders Dag Kittlaus and Adam Cheyer, who previously left Apple in 2011 and 2012 respectively. In addition to Gruber, The Information reports that Vipul Ved Prakash, Apple’s head of search, has left the company.

Textlicious 1.0

Textlicious, from Wil Shipley:

Textlicious is a tiny extension that lets you enter styled text in places that normally accept only plain text. Make your tweets more expressive, your texts stand out, and your posts on the ‘book the envy of all your friends.

Just highlight any text you’re typing in any app on your iPhone or iPad, click on the “Share” menu item, select the style you want from Textlicious, and paste the newly styled text over your old word.

Available styles include bold, italic, serifed, typewriter, script, double-struck, and more.

It really does output plain text, so it will work anywhere (that supports modern Unicode). This is possible because Unicode actually has separate characters to represent the same Roman letter in different styles. These were not necessarily intended for styling but for conveying different meanings. For example, the double-struck capital Z (ℤ) is used in math to refer to the set of integers. Perhaps because of this intent, and perhaps because it would be extra work, lots of software does not treat these styled characters as equivalent to their regular counterparts. So, for example, a screen reader may not know how to pronounce words comprised of them, and some apps and search engines will let you find ℤ by searching for Z, while others won’t.

Update (2018-04-06): There’s also a Mac version.

Rosyna Keller:

VoiceOver won’t read the emotion “;)” as ; and ) are voiceless.

For things like “🅘🅓🅙🅘🅣🅢” (been rewatching Supernatural), VoiceOver reads their Unicode names, as it should.

Also, making VoiceOver understand lookalikes creates a layering violation

Avoiding Apple Pay’s Pestering

John Gruber:

This does annoy people who, for whatever reason, don’t want to set up Apple Pay. There is a way to dismiss the red badge, but it’s not obvious how, because the button you have to tap says “Set Up Apple Pay”. (After that, you tap “Cancel” or “Set Up Later in Wallet”.) It is inscrutably counterintuitive to need to tap a button that says “Set Up Apple Pay” when your intention is to stop being nagged to set it up because you don’t want to set up Apple Pay.

See also: Dark Patterns are designed to trick you.

Previously: Apple Music Problems, Apple Pushes iPhone 6s Pop-up Ads to App Store.

Instagram Removes Watch App

Benjamin Mayo:

In a move that surprises almost no one, Instagram opted to ditch its Watch app entirely rather than dedicated it engineering resources to ‘modernise’ it. I expect this will be the path many developers pick, continuing the exodus of Watch apps from the store, a trend that we’ve seen for the better part of a year at this point.

[…]

Another facet to this story that people don’t really talk about is that you need a Watch app to offer custom Apple Watch notification interfaces for your app. The notification controller is embedded inside the Watch app binary, so if you don’t have a Watch app, you can’t provide Watch users with custom-designed alerts. This means that along with the Instagram Watch app, Watch users also lose the pretty Instagram notifications.

Previously: Major Apps Abandoning Apple Watch, WatchKit Is a Sweet Solution.

Update (2018-06-05): Juli Clover:

Lyft is the latest company to ditch support for the Apple Watch, eliminating its Apple Watch app in an update that was released this morning.

Update (2018-08-06): Christian Zibreg:

The app’s developer has removed the watchOS component from Instapaper’s most recent update on App Store, which basically killed all Apple Watch functionality. That’s quite a shame given Instapaper was one of the better Apple Watch apps out there: it allowed you to access text-to-speech playback of saved articles, as well as like, delete or archive individual items.

Interview With Apple Logo Creator Rob Janoff

Michael Steeber:

At a time when design trends and tastes seem to fluctuate with increasing speed, one image has remained remarkably persistent: the Apple logo. Often remixed but never replaced, the symbol has been continuously in use in one form or another since graphic designer Rob Janoff first sketched it in 1977. 9to5Mac talked with Janoff about his time working with Steve Jobs, the perspective gained from working over 40 years in the design industry, and an upcoming creative collaboration.

[…]

While both skillsets have unique merit, he believes that the technical implementation of a solution can get in the way of the creative process if left unchecked. “Whenever I’m talking to kids, there is such a tendency to go straight to the computer. But almost always, it’s devoid of idea. I think a lot of times tech can be an idea killer, because you’re spending all that time on making that corner good, or connecting some other thing, and you’re forgetting what the bigger picture is, what the bigger idea is. I think that only comes when you’re free and you’re just drawing and pouring stuff out of your brain.”

[…]

Clients are routinely presented with a buffet of options when narrowing down a final logo or layout. In contrast, Steve Jobs was only offered one design for Apple’s logo – which he accepted.

Swift Protobuf

Apple (via Russell Ivanovic):

Apple’s Swift programming language is a perfect complement to Google’s Protocol Buffer ("protobuf") serialization technology. They both emphasize high performance and programmer safety.

This project provides both the command-line program that adds Swift code generation to Google’s protoc and the runtime library that is necessary for using the generated code. After using the protoc plugin to generate Swift code from your .proto files, you will need to add this library to your project.

Previously: Serialization on macOS and iOS: Speed and Size.

Tuesday, April 3, 2018

Apple Plans to Use Its Own Chips in Macs From 2020, Replacing Intel

Mark Gurman (tweet, Hacker News, MacRumors, 9to5Mac, iMore):

The initiative, code named Kalamata, is still in the early developmental stages, but comes as part of a larger strategy to make all of Apple’s devices -- including Macs, iPhones, and iPads -- work more similarly and seamlessly together, said the people, who asked not to be identified discussing private information. The project, which executives have approved, will likely result in a multi-step transition.

[…]

The shift would also allow Cupertino, California-based Apple to more quickly bring new features to all of its products and stand out from the competition. Using its own main chips would make Apple the only major PC maker to use its own processors.

[…]

While the transition to Apple chips in hardware is planned to begin as early as 2020, the changes to the software side will begin even before that.

[…]

Apple’s current chip designs made their name in thin and light mobile devices. That would indicate Apple will start the transition with laptops before moving the designs into more demanding desktop models. Apple has to walk the fine line of moving away from Intel chips without sacrificing the speed and capabilities of its Macs.

John Gruber:

But when you start thinking about the details, this transition would (will?) be very difficult. First, while Apple’s existing A-series chips are better for energy-efficient mobile device use (iPhone, iPad, just-plain MacBook), Apple’s internal team has never made anything to compete with Intel at the high-performance end (MacBook Pros, and especially iMacs and Mac Pros). I’m not saying they can’t. I’m just saying they haven’t shown us anything yet.

Jeff Johnson:

The problem with phone CPU benchmark tests is that they’re only measuring peak performance. Try running a processor-intensive task on your phone for an hour.

Good luck with that.

Steve Troughton-Smith:

Porting macOS, unchanged, stagnant, to ARM as-is would be a massive waste. What’s happening is decidedly not that: it’s very clear that a major transition is happening re the software stack, which is what I’ve argued for for a very long time. iOS and macOS are merging in some way

Steve Troughton-Smith:

It’s increasingly looking like the future of the Mac doesn’t look like the Mac as we know it, with a rumored app stack replacement/transplant & a move away from x86.

enMTW:

It’s not the Mac at all. It’s some hellish combination of the worst attributes of iOS and the worst attributes of Tim Cook’s Apple.

Steve Troughton-Smith:

People really want to believe their world isn’t about to end I think Apple has been singularly about ARM for the past decade and it would be very wishful thinking to hope they’d change that trajectory now

James Thomson:

If you took the current macOS and put it on a desktop class ARM processor, I think it would be a pretty simple transition compared to PPC->Intel. I doubt many would notice, and most apps would just compile out the box. I don’t think it’s the end of anything.

Walt Mossberg:

If this is true, it’s another step towards the next great Apple machine: a consumer laptop running iOS. Call it the MacPad, or revive the name iBook. Use the trackpad the way 3D Touch is used on iOS devices to easily move the cursor. (And build more tricks into it.) I’ll buy it.

Dave Mark:

If Apple builds an ARM-based Mac, what are the hassles involved in porting code from Intel->ARM, beyond recompile?

Rich Siegel:

Anyone who says “you just have to click a check box” or “it’s trivial” without actually having done the transition for a shipping product is engaging in wish fulfillment or marketing.

Erik Schwiebert:

What you said...

Jeff Johnson:

The last PPC Mac shipped in 2006. Rosetta was not removed from Mac OS X until 2011.

The last Intel Core Duo 32-bit Mac shipped in 2007. i386 support has still not been removed.

Jeff Johnson:

I have yet to hear a single person give a plausible transition plan.

Is there a Rosetta-like tech? IDK, but remember that the significant performance hit was semi-acceptable only because Intel chips were much faster than PPC. Don’t let anyone tell you otherwise. I had a last-gen iMac G5 and a first-gen iMac Core Duo. Core Duo crushed the G5.

Paul Haddad:

WWDC could be really awkward.

“Here’s our brand new $5k+ Mac Pro”

“Next year we’re deprecating Intel”

Nick Wingfield:

Ok, reading this report about Apple contemplating dumping Intel chips for its own put me in a nostalgic mood. Here’s a little story about how Steve Jobs operated with the press.

Previously: Apple Rumored to Combine iPhone, iPad, and Mac Apps to Create One User Experience, Microsoft Launches Windows 10 on ARM.

Update (2018-04-03): Alberto Sendra:

I interpret it differently. If you need a high performance laptop/computer with macOS you need to buy one before 2020 No assurances that pro apps are gonna make the transition anytime soon.

Rui Carmo:

I don’t see why this should come as a surprise. The real question is what their developer experience is going to be like, and how accomodating it will turn out to be for those of us who use Macs as primary devices for cross-platform development.

Kirk McElhearn:

Those of us who write about Apple have long opined about the iOSification of macOS, and the ability to allow iPhone and iPad apps to run on the Mac will be a big deal. It might not work; or it might only work for very simple apps. But it will be a game-changer. I don’t expect Apple to fully iOSify the Mac platform, but allowing iOS apps to run on Macs in a special environment makes sense.

Update (2018-04-04): Marco Arment:

A bit concerned over the rumors of big changes to macOS.

Apple hasn’t prioritized macOS quality in years, and it seems that they can barely touch it these days without leaving a trail of sloppy bugs.

I’d love 2005-Apple to revamp macOS. I’m not sure I trust 2018-Apple to do it.

ATPTipster:

Less of a transition, more of a bug multiplier. Maintaining software quality while dramatically expanding the scope of said software is difficult to impossible, especially given the circumstances.

Andy Ihnatko:

I don’t think Apple would drop Intel completely. It’s easier for me to imagine them using custom CPUs for their consumer-grade Macs and sticking with Intel for the high-horsepower Pro desktops and notebooks. At least for starters.

[…]

ARM is such a huge move — and presents such a big opportunity for change — that I would expect it to accompany a whole new historical age for the Mac. Either Apple would do radical (and long-overdue) modern rethink, akin to what Microsoft did with Windows 10…or they would effectively transform MacOS into an enhanced version of iOS, in function if not in name.

Update (2018-04-06): See also: Accidental Tech Podcast.

Update (2018-04-22): See also: Andy Ihnatko.

Update (2018-09-05): Cherlynn Low (via John Gruber, tweet):

Lenovo is showing off the industry’s first device to use the made-for-PCs mobile chipset: the Yoga C630 WOS (which stands for Windows on Snapdragon).

[…]

The Yoga C630 is supposed to last about 25 hours of continuous local video playback, which should be enough to last through an entire day of running around attending business meetings. That endurance is thanks in large part to the Snapdragon 850, which promises not only 25 percent longer battery life than the 835 but also 30 percent faster performance. When I opened a slew of apps like Excel, PowerPoint, Maps and Edge on the Yoga C630’s desktop environment, I barely encountered any delay. Any interruptions I saw were related to WiFi troubles rather than actual performance.

Previously: ARM Mac Notebook Rumors.

The TidBITS 2018 Infrastructure

Adam C. Engst:

After years of planning and months of work with our developer, Eli Van Zoeren, we’ve finally pulled back the curtains on our new Internet infrastructure. If you’re reading this in email, head over to the TidBITS Web site to take a look and click around — all 28 years of TidBITS articles and comments are there.

[…]

Our new system relies on the Paid Memberships Pro plug-in for WordPress and uses Stripe for the actual payment processing.

[…]

Designed by the talented Geoff Allen of the Denver-based design house FUNISOK, the logotype starts with Avant Garde, but Geoff tweaked every letter so, for instance, the first T’s horizontal bar slides into the i’s stylized dot, which is meant to evoke the leaf in the Apple logo. Each letter has both sharp and rounded edges so they flow well together. And we’re using a deep, rich purple to separate the BITS from the Tid, tying the two together with color in the leaf as well. You may also notice the new square favicon, which connects the black T and the purple B.

[…]

First off, all our ads are hosted and served locally, which means that there are no trackers associated with them [even the social media buttons]. We’re offended at all the ad tracking on the Internet, in part because it’s an unnecessary privacy violation that hasn’t even resulted in good ads. (The only off-site JavaScript we use is for Google Analytics, which we use for site statistics.)

[…]

At the bottom of every article, you’ll see a Read More About This Topic row that contains up to six related articles — click one to read the article. We’re relying on a WordPress plug-in called SearchWP to identify related articles algorithmically, and we can set them manually as well.

[…]

Comments still appear at the bottom of articles for quick reading, but if you want to participate in the discussion, you’ll end up clicking over to the Discourse server, which is running on an entirely different host for technical reasons. […] Finally, TidBITS Talk has been a mailing list for its 20-year history, but we’re moving it to Discourse as well.

I love these behind-the-scenes articles. The new design looks great. Areas for improvement: removing the excessive <span> tags and making the archives more easily browsable, e.g. by date or headline.

Update (2018-04-04): See also: New TidBITS site feedback and ideas for archive browsing.

Update (2018-04-17): See also: Unco.

Making Illegal States Unrepresentable

Ole Begemann (tweet):

The [URLSession] completion handler receives three optional values: Data?, URLResponse? and Error?. That makes 2 × 2 × 2 = 8 possible states, but how many of those are legal?

[…]

Brandon and Stephen made a small mistake: they assumed that the API will either return (a) a valid Data and URLResponse, or (b) an Error. After all, it shouldn’t be possible to get a non-nil response and an error at the same time. Makes sense, right?

It turns out that this is wrong. A URLResponse encapsulates the server’s HTTP response headers, and the URLSession API will always provide you with this value once it has received a valid response header, even if the request errors at a later stage (e.g. due to cancellation or a timeout). It’s thus expected behavior for the completion handler to contain a populated URLResponse and a non-nil error value (but no Data).

Adding AppleScriptObjC to Existing Scripts

Shane Stanley:

The script runs fine (assuming you have a file called Test.txt on your Desktop), until you uncomment the use framework line, after which you get the error: “Can’t make current application into type file.” That’s not very helpful.

The solution is to change the code so you build file references using coercions.

In other words, as alias instead of using a string that represents a path. I usually use POSIX file "path", and that also works.

Why Inheritance Never Made Any Sense

Graham Lee:

Inheritance was never a problem: trying to use the same tree for three different concepts was the problem.

[…]

Your domain model is not your object model. Your domain model is not your abstract data type model. Your object model is not your abstract data type model.

Monday, April 2, 2018

1.1.1.1: the Fastest, Privacy-first Consumer DNS Service

Matthew Prince:

The problem is that these DNS services are often slow and not privacy respecting. What many Internet users don’t realize is that even if you’re visiting a website that is encrypted — has the little green lock in your browser — that doesn’t keep your DNS resolver from knowing the identity of all the sites you visit. That means, by default, your ISP, every wifi network you’ve connected to, and your mobile network provider have a list of every site you’ve visited while using them.

[…]

But it’s been depressing to us to watch all too frequently how DNS can be used as a tool of censorship against many of the groups we protect. While we’re good at stopping cyber attacks, if a consumer’s DNS gets blocked there’s been nothing we could do to help.

[…]

We talked to the APNIC team about how we wanted to create a privacy-first, extremely fast DNS system. They thought it was a laudable goal. We offered Cloudflare’s network to receive and study the garbage traffic in exchange for being able to offer a DNS resolver on the memorable IPs. And, with that, 1.1.1.1 was born.

Wojtek Pietrusiewicz:

I just checked 1.1.1.1’s performance and it appears to be the fastest DNS out there, avergaing 14.01 ms worldwide and 11.34 ms in Europe over the last 30 days. Google’s 8.8.8.8 and 4.4.4.4 is significantly slower, clocking in at 34.51 ms and 24.43 ms respectively.

See also: Google Public DNS.

Update (2018-04-22): See also: Glenn Fleishman.

Microsoft Is Ready for a World Beyond Windows

Tom Warren:

Microsoft announced a new reorganization yesterday. It’s the fourth major shuffle inside the company over the past five years, and the most significant of Nadella’s tenure. Microsoft is splitting Windows across the company, into different parts. Terry Myerson, a 21-year Microsoft veteran, is leaving the company and his role as Windows chief. The core development of Windows is being moved to a cloud and AI team, and a new team will take over the “experiences” Windows 10 users see like apps, the Start menu, and new features. There’s a lot of shuffling going on, but Nadella’s 1,300 word memo leaves little doubt over the company’s true future: cloud and AI.

Ben Thompson:

What is more interesting, though, is the story of Windows’ decline in Redmond, culminating with last week’s reorganization that, for the first time since 1980, left the company without a division devoted to personal computer operating systems (Windows was split, with the core engineering group placed under Azure, and the rest of the organization effectively under Office 365; there will still be Windows releases, but it is no longer a standalone business). Such a move didn’t seem possible a mere five years ago, when, in the context of another reorganization, former-CEO Steve Ballmer wrote a memo insisting that Windows was the future (emphasis mine)[…]

[…]

To put it another way, Nadella’s shift to a post-Windows Microsoft is the right one; to have done the same a decade sooner would have been better. It also, though, may have been impossible, simply because Windows was still the biggest part of the business, and it’s not clear the markets would have tolerated an explicit shift before it was painfully obvious it was necessary; without a rising stock price, Nadella’s mission would have been much more challenging if not impossible.

Update (2018-04-02): Maynard Handley:

Did it HAVE to turn out this way?

What if MS had been willing to keep improving Windows instead of just essentially polishing XP?

Of course to do that would have been disruptive (ie would have caused people to complain about changes).

So what do you do?

Accept that you can’t serve BOTH Enterprise (world never changes) and Personal (we want change)?

IMHO MS should have seen this tension years ago and created a separate personal OS. Put in a Windows Blue Box but make it Apple-level clear that that is legacy and goes away. Also make it clear that the new OS is constantly improving -- don’t coddle developers who lag.

The Business of Streaming Music

Keith Nelson Jr. (via Dan Masters):

There’s just one problem: All of the biggest streaming services are losing money.

The biggest reason for these massive losses are the large amounts of money in licensing fees those services have to pay to rights holders, primarily record labels, in order to stream copyrighted songs. Spotify has spent nearly $10 billion in licensing since 2006, while concurrently incurring $2.9 billion in losses over the same time period.

[…]

[Elizabeth Moody of Pandora]: “What we have done, and we’re continuing to do, is take the artist into the studio, in a nice, smaller setting, and record some of those performances live. In live recordings that we work on with them, we’ll have a period of time where we’ve got exclusive rights to those unique recordings. So, what we’ve done that way, as opposed to try and take an exclusive right on the album recording, we’ll have a unique sound recording that we create with the artist at that event, and that’s where our exclusive rights come into play.”

Update (2018-05-01): Erin Griffith:

A new study by internet radio service Pandora shows that too many ads can motivate users to pay for an ad-free version, but push many more to listen less or abandon the service. The study found that the additional subscription revenue does not make up for the lost ad revenue from those who listen less or leave the service.

Carbon Copy Cloner and APFS Snapshots

Mike Bombich:

CCC 5.1 [in beta] offers support for point-in-time restores by leveraging the snapshot feature of Apple’s new APFS filesystem. CCC’s SafetyNet feature offered similar functionality to this in the past, but snapshots take it to a new level, allowing you to do things like restore a previous version of the OS and older versions of your Photos library.

CCC is also the first comprehensive snapshot management utility for macOS. Browsing the contents of any snapshot is just a click away, and should you want to delete a specific snapshot (whether created by CCC or Time Machine), just select it and press the Delete key. How much space are those snapshots consuming? CCC can tell you that. No other utility offers this much insight into your APFS volumes’ snapshots!

System Fonts in CSS

Craig Hockenberry:

Apple agreed and made a proposal on the CSS mailing list. Over the next few months that proposal evolved from being called “system” to “system-ui”. (Once upon a time, Windows used a font called “System” that could have caused a conflict.)

At the end of the day the CSS Font Module was updated and there was an official way to render text just like the operating system.

[…]

Both Chrome and Safari support it fully on a wide variety of platforms. Only Mozilla and Windows are lagging behind.

Previously: CSS Font Family for San Francisco.

Update (2021-09-08): ayanami (via Matthew Bischoff):

Starting from Safari 13.1, they added font family names for system fonts:

  • ui-monospace — SF Mono
  • ui-serif — New York
  • ui-sans-serif — San Francisco (same as system-ui and -apple-system)

Uber Is Ripping Off Frequent Riders

Will Preston (Hacker News):

Uber appears to have the opposite of a rewards program. That is, it appears the more you use Uber as a passenger, the more they’re going to charge you per mile. We know Uber said they were going to experiment on charging different customers different rate, based on a variety of unpublished factors. My current belief is the more you use the service in a way that suggests you can afford more, the more they will charge you.

[…]

I’m not talking about surge pricing, part of which would get passed on to a driver. I’m talking about raising a passenger’s “upfront” fare 10-30% higher than they would pay if they were paying their market’s time and distance rates for the same ride.

[…]

The AI program figured out I’m a business traveler and started jacking up my prices. My upfront price to the airport started showing up around $70, and my ride home was close to $80. No surge. Just a much higher price for the same trip. Uber’s thoughts? Maybe ‘He’s on an expense account! He doesn’t care what he’s paying!’

[…]

The final data point is that I know that if a passenger changes their destination mid-ride to something completely different than the destination they were quoted for, their upfront price is discarded. Instead, they will be charged time and distance for that ride. This is how I will both prove that this is what is happening, as well as make sure I am not personally being ripped off.

maxxxxx:

That’s one thing I have noticed in general. I used to think that as a long time customer you are valued and get better deals. But this seems to have changed to the opposite. Long time customers are viewed as something a company doesn’t have to compete for anymore and instead more money can be extracted from them. See cell phones, TV cable, car insurance and others. Almost like employment where now the only way to get a raise is often to change jobs and not to stay.

Sunday, April 1, 2018

Xcode 9.3

Apple:

Developers can use a new 64-bit testing mode in macOS 10.13.4 to test software for 64-bit compatibility.

[…]

Xcode 9.3 adds a new IDEWorkspaceChecks.plist file to a workspace’s shared data, to store the state of necessary workspace checks. Committing this file to source control will prevent unnecessary rerunning of those checks for each user opening the workspace.

[…]

Projects created in Xcode 9.3 use a new project format that is incompatible with earlier versions of Xcode. To open projects in earlier versions, change the project format by selecting the project in the Project navigator, opening the Document inspector, and selecting the desired format from the Project Format pop-up menu.

It’s working about the same as previous versions of Xcode 9 for me. That is to say, not a horror show, but the same old bugs such as warnings not disappearing after building and builds sometimes failing unless I manually clean the folder.

I haven’t tried the new build system yet. How reliable are people finding it?

Jamie Halmick:

If you’re a developer and haven’t been using the betas you should be aware that building for iOS 11.3 requires Xcode 9.3 which requires macOS 10.13 High Sierra.

Gianluca Bertani:

Xcode 9.2 won’t debug on an iOS 11.3 device, and Xcode 9.3 won’t install on macOS Sierra. Here we are again: I’m forced to upgrade macOS agains my will, to be able to do my job.

Vineet Choudhary:

From Xcode9.3, text anti-aliasing can be disabled in the source editor by running the following command:

defaults write com.apple.dt.Xcode SourceEditorDisableAntialiasing -bool YES

Previously: iOS 11.3, macOS 10.13.3, Disabling Xcode 9 Font Smoothing, An Xcode Plug-in for Unsmoothed Text.

Swift 4.1

Ted Kremenek:

Swift 4.1 adds more generics features to the language, furthering the goals set out in the Swift Generics Manifesto. The following generics-related proposals have been implemented in this release:

[…]

These are additional Swift Evolution proposals that were implemented in this release:

This was a fun update because it was easy to update my code, and I was able to delete lots of boilerplate related to Equatable and IndexDistance. Synthesized Equatable and Hashable conformance makes the code much more concise and potentially more reliable. It still has some room for improvement, though: there’s no way to omit fields without implementing the methods yourself, and the internal function for combining hash values is not exposed as API.

See also: Replacing flatMap With compactMap.

Previously: Swift 4: Synthesizing Equatable and Hashable Conformance, Swift 4.1 Conditional Conformance Is Amazing, Code Size Optimization Mode in Swift 4.1.

Update (2018-04-03): Ben Cohen:

Hashing needed some more work before this could happen, but @lorentey has been working on a proposal to turn the hashing improvements he landed in 4.2 into a proposal for a public API.

See also: Accidentally Quadratic Rust Hash Tables.

Update (2018-04-12): Joe Groff (tweet):

The core team discussed this proposal in our meeting today. There are still a couple days left in the review period, but we’re tentatively inclined to accept this proposal, but wanted to suggest some changes based on public review discussion and our own review[…]

Cutting “Old Heads” at IBM

Peter Gosselin and Ariana Tobin (Hacker News):

The company reacted with a strategy that, in the words of one confidential planning document, would “correct seniority mix.” It slashed IBM’s U.S. workforce by as much as three-quarters from its 1980s peak, replacing a substantial share with younger, less-experienced and lower-paid workers and sending many positions overseas. ProPublica estimates that in the past five years alone, IBM has eliminated more than 20,000 American employees ages 40 and over, about 60 percent of its estimated total U.S. job cuts during those years.

[…]

The company’s pre-2014 layoff documents required employees receiving severance to waive all bias claims based on “race, national origin, ancestry, color, creed, religion, sex, sexual orientation, pregnancy, marital status, age … disability, medical condition, or veteran status.” The new documents deleted “age” from the waiver list. In fact, they specifically said employees were not waiving their right when it came to age and could pursue age discrimination cases against the company.

But, the new documents added, employees had to waive the right to take their age cases to court. Instead, they had to pursue them through private arbitration. What’s more, they had to keep them confidential and pursue them alone. They couldn’t join with other workers to make a case.

With the new documents in place, IBM was no longer asking laid-off workers to sign away their right to complain about age bias so, the company’s lawyers told the EEOC, the disclosure requirement in the 1990 amendments to the age act no longer applied.

[…]

IBM has also embraced another practice that leads workers, especially older ones, to quit on what appears to be a voluntary basis. It substantially reversed its pioneering support for telecommuting, telling people who’ve been working from home for years to begin reporting to certain, often distant, offices.

Update (2019-01-23): Gerrit De Vynck (via Hacker News):

Shannon Liss-Riordan on Monday filed a class-action lawsuit in federal court in Manhattan on behalf of three former IBM employees who say the tech giant discriminated against them based on their age when it fired them.

Thomas Claburn (via Hacker News):

A former senior executive at IBM has claimed she was ordered to lie to the US government about just how many older workers Big Blue was laying off.

And she says she was fired after pointing out that the aging biz was breaking age discrimination laws by primarily firing post-50 staff.

Update (2022-02-16): Noam Scheiber:

Now it appears that top IBM executives were directly involved in discussions about the need to reduce the portion of older employees at the company, sometimes disparaging them with terms of art like “dinobabies.”

A trove of previously sealed documents made public by a Federal District Court on Friday show executives discussing plans to phase out older employees and bemoaning the company’s relatively low percentage of millennials.

Update (2022-06-16): Thomas Claburn (via Hacker News):

In one of the many ongoing age discrimination lawsuits against IBM, Big Blue has been ordered to produce internal emails in which former CEO Ginny Rometty and former SVP of Human Resources Diane Gherson discuss efforts to get rid of older employees.

Update (2023-05-15): Thomas Claburn (via Hacker News):

IBM and its IT infrastructure spinoff Kyndryl were this week taken to court by an axed exec who had put decades of her life into the tech giant.

[…]

Doheny’s complaint, filed by Boston-based Lichten & Liss-Riordan PC, contends that Kyndryl, as indicated by its use of terms like “Resource Action” and its reliance on IBM severance materials, has carried over IBM’s alleged discriminatory layoff practices.

MyFitnessPal Data Breach

MyFitnessPal:

On March 25, 2018, we became aware that during February of this year an unauthorized party acquired data associated with MyFitnessPal user accounts.

[…]

The affected information included usernames, email addresses, and hashed passwords - the majority with the hashing function called bcrypt used to secure passwords.

So, apparently none of the app-specific data.

John Gruber:

It’s a little scary that this went undetected for a month. Makes me wonder how many of these data breaches are never noticed.

Update (2018-04-03): Dave Teare:

Many companies hide from the truth and make things much worse for themselves and their customers. Instead, MyFitnessPal did it right. Not only did they handle the disclosure with finesse, they also had excellent systems in place to limit the exposure of the leak.

MyFitnessPal provides a great case study on how to handle a data breach and protect customer information.

[…]

For those looking to learn more about the MyFitnessPal breach, Troy Hunt started his Weekly Update 80 with a full discussion on the subject that I found very intriguing, especially the strategy on how to migrate from a SHA-1 hash to using bcrypt.

Why Doesn’t Apple Music Let Users Search for Composers?

Kirk McElhearn:

You see some composers listed as “artists,” you see their names in the titles of albums (for a number of years, many if not most classical albums that feature music from a single composer have that composer’s name at the beginning of the title), you may see playlists with a composer’s music, you even see “songs,” but you cannot see all the music by a composer.

[…]

This lack of searchability borders on contempt. Apple Music wants you to be able to “discover” music, but they don’t give you the tools to search for anything. You can only really discover music in the For You section, or in playlists. And it’s not just for classical music; I’d like to have better search for jazz as well, looking for specific musicians.

Apple has the metadata; they just don’t let customers access it.

This sort of thing is why it annoys me whenever Apple talks about music being in its DNA.

Fred Showker:

Go to Google advanced search, and search for Composer in the phrase field, and put itunes.apple.com in the ‘at site’ field.

Update (2018-04-02): Nick Heer:

Even something as basic as the year of release cannot be searched even amongst local tracks on iOS, and I find that completely absurd. I would love nothing more than to see a modernized version of the column browser better tailored for Apple Music’s vast library.

Update (2018-04-12): Nick Heer:

After I linked to Kirk McElhearn’s piece about Apple Music’s limited search capabilities, Erin “Syd” Sidney pointed me to a three-year-old post he wrote about the lack of detailed creator information available on the platform[…]