Archive for May 2, 2017

Tuesday, May 2, 2017 [Tweets] [Favorites]

JavaScript-Free Discourse


For anyone who has to deal with the pain of reading Discourse message threads, you can append ?_escaped_fragment_ to the URI to get a JS-free page that loads completely immediately and doesn’t unload when you scroll. I have no idea why this user-hostile functionality is present by default. It breaks ctrl+F, ctrl+S, the scrollbar, and loads of other browser functionality.

I still don’t like the Discourse user experience. The mailing list mode is probably the least painful way to use it, but of course that doesn’t help when browsing old threads on newly discovered forums.

Microsoft Surface Laptop


Meet the new Surface Laptop. Performance made personal.

Mark Gurman and Dina Bass:

Microsoft has already cracked the professional and creative markets with inventive tablets and a desktop that turns into a virtual drafting table. Now it’s chasing another category many believe is Apple’s to lose: the $1,000 laptop for everyone.

I would have thought so, but the MacBook starts at $1,299, the $999 MacBook Air hasn’t been updated in 785 days, and the $899 MacBook Air was discontinued.

Microsoft set out to make a laptop with better-than-average battery life because students said they wanted a device that would last through a long day of classes. The trick was to design a machine with a bigger battery that was still slim and light. Panay’s team adhered to a “fail-fast” philosophy that emphasized constant experimentation. Fancy prototyping machines were capable of spitting out mockups 24 hours a day; the prototypes were delivered to individual designers, allowing them to constantly refine the design. Working with Intel, the team shrank the motherboard, the circuit board containing a computer’s main components, to provide space for the bigger battery. Intel also helped Microsoft make the machine run cooler.

Andrew Cunningham:

The Surface Laptop ships with Windows 10 S, the new cut-down Windows 10 SKU Microsoft also announced today. Out of the box, the operating system can only run apps from the Windows Store, though it’s possible to upgrade it to a full Windows 10 Pro install for free until December 31, 2017. Afterward, the Pro upgrade will cost $50, the same as it normally will for Windows 10 S users.

John Gruber:

I, for one, don’t find it the least bit odd or surprising that Microsoft has shipped a version of Windows that’s locked to their app store before Apple has done similarly with MacOS. That’s a fundamental aspect of Apple’s dual OS strategy. Microsoft only has one OS, Windows, so if they want to ship a laptop with the advantages of being restricted to software from an app store, they have to do it in a version of Windows. I wouldn’t go so far as to state with certitude that Apple will never ship a version of MacOS that is App-Store-only, but I would bet against it.

John Gruber:

I can see the argument for making the OS App-Store-only by default. I can also see the argument for an iOS-style system where it’s App-Store-only, period. But charging $50 for this feels like a shakedown.

It does. And I can see why this could end up being the worse than choosing one or the other. But I think it might actually be a good compromise—and one I’d like to see on iOS. Fully locked down has advantages and drawbacks. So does fully open. A fee that people will think twice about, but which isn’t insurmountable, could be a good way of providing an escape hatch. Anyone who really needs it can use it, but most users won’t bother opening the door to untrusted software.

The Dangers of Using Nonatomic Properties

Quincey Morris:

For some reason, the decision was taken to make properties default to “atomic”, but no attempt was made to convert any pre-existing getter/setter implementations, and no attempt was made to verify that any new custom accessors provided atomicity. The whole thing was broken right from the start.

Although nothing syntactic has ever changed, common usage has changed over the years, to (informally) regard the default (omission of attribute) and explicit “atomic” as different things, in terms of API contract. The usage has come to be that only properties explicitly marked “atomic” can be reasonably assumed to be making an API contract, and that properties without the attribute make no API contract (even if they happen to be atomic as an implementation detail).

John McCall:

I can’t speak to that decision: it pre-dates me. At a guess, probably over-enthusiasm for the idea of eliminating low-level failures due to races, buoyed by the era’s general optimism about the ability of future machines to hide the performance cost. Atomic properties may not provide a (typically) semantically meaningful level of atomicity, but they do prevent races on the property from immediately leading to crashes.

Greg Parker:

Another influence was Objective-C garbage collection. GC was assumed to be The Future, and atomic properties are cheap when you have GC.

Hiding Mac Menu Bar Icons

Keir Thomas:

All you need do is install the Vanilla app, which was created by Mac developer Matthew Palmer. There is a “Pro” upgrade available for $3.99 that’s well worth it but the core functionality is entirely free – and there are no nags aside from a prompt that appears within the Preferences dialog box.

Major Apps Abandoning Apple Watch

Neil Hughes:

In the last few weeks, the latest update for Google Maps on iOS ditched support for the Apple Watch. Its removal was not mentioned in the release notes, and Google has not indicated whether support for watchOS will be reinstated.

It's the same story with Amazon and eBay, both of which previously included Apple Watch support in their iOS apps. Both were updated in late April, and as of Monday, neither includes an Apple Watch app.