Archive for June 9, 2020

Tuesday, June 9, 2020

ARM Macs to Be Announced at WWDC 2020

Mark Gurman (tweet, Hacker News, MacRumors, AppleInsider):

The company is holding WWDC the week of June 22. Unveiling the initiative, codenamed Kalamata, at the event would give outside developers time to adjust before new Macs roll out in 2021, the people said.


Inside Apple, tests of new Macs with the Arm-based chips have shown sizable improvements over Intel-powered versions, specifically in graphics performance and apps using artificial intelligence, the people said. Apple’s processors are also more power-efficient than Intel’s, which may mean thinner and lighter Mac laptops in the future.


Update (2020-06-11): John Gruber (tweet):

I don’t think the transition from x86 to ARM will be nearly as rocky as the 32-bit to 64-bit transition, but for some apps it will take time.


Will ARM Macs run older x86 software via emulation? Apple shipped a rather amazing emulator in the transition from Motorola 680x0 chips to PowerPC in the 1990s, and again in the 2000s with the PowerPC to Intel transition (Rosetta). There are seemingly no rumors one way or the other regarding emulation for the Intel-to-ARM transition. If I had to bet right now, I’d say no, there will be no x86 emulation on ARM Macs — and that factors into why Apple is pre-announcing this transition months ahead of releasing hardware.


What happens with virtualization software like Parallels and VMware Fusion? The obvious answer is they emulate x86 or they go away. How will that perform? My understanding is that however good the performance of ARM chips is, the instruction set differences make it slow for ARM to emulate x86. This is no little thing — there are a lot of developers whose workflows depend on virtualization software.

Months is not a long time considering how long the Intel transition took and that these days developers are still cleaning up after new versions of macOS six months after WWDC.

See also:

Update (2020-06-22): See also:

AWS Non-Compete Agreement Lawsuit

Todd Bishop (via Corey Quinn, Hacker News):

A lawsuit filed by Amazon against Brian Hall, former Amazon Web Services vice president of product marketing, alleges that his new role at Google Cloud violates the terms of his non-compete agreement with the Seattle company and risks exposing valuable competitive information to one of its biggest rivals.

In a response filed Monday in King County Superior Court in Seattle, lawyers for Hall say Amazon executives repeatedly led him to believe the company would not enforce the non-competition provision of its “boilerplate” confidentiality agreement, in discussions before and after he signed the contract in June 2018.


Update (2020-06-11): See also: Dan Luu, Corey Quinn.

Using Custom Perspectives in OmniFocus

Federico Viticci:

My most used perspective, by far, is a simple one I call ‘Radar’. This perspective presents me with a list of all upcoming tasks across all projects, including those that have a defer date, which I usually don’t see in other perspectives.


The ‘Tags (Combined)’ filter is one of the most powerful aspects of OmniFocus’ perspective engine as it can create dynamic sub-groups based on tags. As you can see above, the visual separation between Club and website-related writing tasks also looks quite nice thanks to emoji. I use the same approach of visually separating tasks in different areas with my ‘Available’ perspective.


The last perspective I’ve put together for the iOS 14 review, called ‘Future’, displays review-related tasks which have a defer date in the future and are not due soon. Thanks to this perspective, I can see all future tasks that are not coming up in the next 24 hours, which helps me get a better sense of things I can worry about later on.


plutil Enhanced in Catalina

Dominik Wagner:

TIL: plutil in catalina also supports objc and swift as output format. So if you want to quickly convert a e.g. json to inline code format, plutil might be the thing for you.

Previously, plutil was mostly useful for validating propery lists and for converting between XML, binary, and JSON representations. Now it can also generate Objective-C and Swift literals. And there are new commands for inserting, replacing, removing, and extracting a value at a particular key path. This seems less powerful than PlistBuddy but with a more standard interface.


Update (2021-01-12): Unfortunately, plutil will crash if you try to set the value of a dictionary key whose first character is a number.

Update (2023-04-27): Rich Trouton:

If you want to read JSON values from a file, you can use the raw option of plutil’s -extract function in some cases to extract values from keys in JSON files.


In cases like this, where you’re dealing with a JSON file with a fairly simple format (without arrays or otherwise nested values), plutil is a good tool which is built into macOS that you can call on to extract the data you need.

Another option is using the plutil tool to write what you need to an XML file, then use plutil’s -convert functionality to turn it into a JSON file. For folks more experienced with using plutil to write XML to a file than they are with writing JSON, this option may help with a lot of use cases.