Archive for February 18, 2022

Friday, February 18, 2022

Chrome OS Flex

Tim Hardwick:

Google has announced early access to Chrome OS Flex, a method of replacing the operating system on older PCs and Macs “within minutes” to essentially turn them into Chromebooks.


The idea is that if you have an aging Mac lying around that can’t run macOS 12 Monterey, then you can install Chrome OS Flex on it using a bootable USB stick and then try out what Google’s cloud-first operating system has to offer.


However, there’s currently no Google Play Store, and Google has outlined some other, mainly system-level limitations of OS Flex that distinguish it from Chrome OS on native Google devices.


Where Mac Catalyst Falls Short

Steve Troughton-Smith (tweet):

The biggest glaring hole in UIKit on macOS is its handling of document-based apps. […] No Apple app is dogfooding this aspect of Catalyst, and it shows.


If you dig in, you will find that Catalyst gives you all the tools you need to build a settings window using the UIKit window scene APIs. I have sample code that demonstrates just that. However, there are still missing pieces[…]


The number one user request in my apps, and the number one topic I’ve been asked about from developers over the past two years, is all about putting UI in the menu bar.


While I appreciate the new configuration APIs added to UICollectionView to perform the function of a regular table view, unfortunately by default they just don’t give you a table view that works as expected on macOS. You’ll be hundreds of lines in just trying to match the basic behavior one might expect from an AppKit NSTableView, with selection and inactive states, and completely on your own when it comes to type-select or more-esoteric AppKit-wide keyboard shortcuts. Beyond that, UICollectionView in general just doesn’t have the mechanics to understand the distinction between a click, double-click, touch, keyboard trigger, or stylus touch — they’re all just ‘a selection’.


Unfortunately, only a subset of NSToolbar-related functionality is bridged, which means you’ll have to start using your own AppKit bridge if you need things like a search field, for example, or custom-drawn views like a Safari-style URL field, volume slider, or where you want a manually-specified fixed size.


Inspector panels was one aspect of AppKit bridging that was originally touted, unofficially, as an option for Catalyst developers. However, there just simply is no way to get UIKit-based content in such a panel window.


However, beyond the most basic changes to padding in Interface Builder and SwiftUI, your layout is going to need a ton of work to be able to run in both [idiom/scaling] modes without a million ifdefs, and you’re really left out to dry here.

Don’t Use Text Pixelation to Redact Sensitive Information

Dan Petro (via Hacker News):

To show you why, I wrote a tool called Unredacter that takes redacted pixelized text and reverses it back into its unredacted form.


The key thing we’re focusing on is that the redaction process is inherently local. In cryptographic terms, we’d say it has no diffusion. A change of one pixel somewhere in the original image ONLY impacts the redacted block it belongs to, meaning that we can (mostly) guess the image character by character. We’ll do a recursive depth-first search on each character, scoring each guess by how well it marginally matches up to the redacted text.


The bottom line is that when you need to redact text, use black bars covering the whole text. Never use anything else. No pixelization, no blurring, no fuzzing, no swirling. Oh, and be sure to actually edit the text as an image. Don’t make the mistake of changing your Word document so that it has black background with black text.


Dutch ACM Wants Existing Apps to Support External Payments

ACM (Hacker News):

The Netherlands Authority for Consumers and Markets has concluded that the revised conditions that Apple has imposed on dating-app providers are unreasonable, and create an unnecessary barrier. The new conditions stipulate that dating-app providers must develop a completely new app if they wish to use an alternative payment system. Apple has informed ACM about these new conditions. App providers cannot adjust their existing apps. ACM finds this to be an unreasonable condition that is at odds with the requirements that Apple had set out. ACM is of the opinion that, as such, Apple still does not comply with ACM’s requirements. Apple must therefore pay another 5 million euros. The total of all penalty payments currently stands at 20 million euros.

Jon Porter:

The revenue Apple gains through in-app purchases from dating apps in the Netherlands is likely to make up an insignificant fraction of its global takings. But the dispute is significant for the early precedent it could set amidst an international wave of scrutiny over Apple’s App Store policies.


Interestingly, the ACM’s notice posted today doesn’t specifically mention Apple’s intention to collect a 27 percent commission on in-app payments made through alternative payment systems.

Apple previously failed to meet the ACM’s deadline for changing its policy, which saw it liable for a weekly fine of €5 million (around $5.7 million) until it complied.

Joe Rossignol:

The ACM will continue to fine Apple five million euros per week, up to a maximum of 50 million euros, until it feels the company has fully complied with the order.

Florian Mueller:

If the alternative payment option saved end users a significant amount of money, I’m quite sure the transition would work (and would be worth developers’ while).


It strikes me as odd that the ACM does not describe those [other] issues even at a high level. Why aren’t they being more transparent?


Newegg Refund Scandal

Jez Corden (Hacker News):

Popular tech outlet Gamers Nexus recently reported an incident with Newegg, which has long been a staple for PC builders. The Gamers Nexus team purchased a motherboard from Newegg, and later decided to return it having realized that it was no longer required. Newegg then claimed that Gamers Nexus had damaged the motherboard, and then declined to offer a refund. After several months wrangling with Newegg, it seems the company had attempted to get the motherboard repaired themselves, while also denying the refund. Considering that Gamers Nexus had never even opened or used the motherboard, naturally this raised suspicions.

After exhausting all customer service options, Gamers Nexus went public on his sizeable YouTube channel. As you might expect, this led to an immediate refund from Newegg, and a return of the motherboard in question. And this is where the fun really begins.

The damage to the motherboard was not consistent with the type of damage that would occur in transit, featuring bent pins. The motherboard also had an RMA sticker on it, which would appear to indicate that Newegg had attempted (and failed) to repair it with the manufacturer prior to selling it on as “open box.”


I have a theory[…] NewEgg decides to decline the RMA just because they can, claiming whatever excuse they are forced to make up when anyone asks. (NewEgg went back and forth regarding whether it was thermal paste on the motherboard or damaged pins on the CPU socket.)

GN knows they didn’t damage the motherboard, since they didn’t even open the shipping box, so they relate the story to their surprisingly large audience, and the whole story blows up.

NewEgg goes “Oops, bad publicity, we’d better refund them.”

GN wants the motherboard returned, too.

NewEgg goes “Oh crap. We said the motherboard was damaged, so if we actually send the real motherboard back, GN will see that it’s fine and know we lied. But GN said that they never opened the shipping box, so GN has never seen the motherboard. We can just send back any old motherboard which is actually damaged. Genius!”, and NewEgg picks a motherboard which is marked as damaged in their inventory system, and ships it to GN.

Jeff Johnson:

I discovered a decade ago that Newegg doesn’t pay return shipping changes for defective items.

Randy Wigginton Answers Questions on Quora

Randy Wigginton (via Dave Mark):

I started attending Homebrew Computer Club meetings. Since I was unable to drive, I asked if anyone lived near me that could give me a lift to the meetings. A really nice guy came up and said he lived close and could give me a ride. I answered, “Great! What’s your name?” His answer: “Steve. But my friends call me Woz”.

In 1977, I joined Apple Computer as their first software engineer and employee #6. While at Apple, I worked on many products, most notably Applesoft Basic, the Apple Disc Drive, and THE Spreadsheet. Also I wrote MacWrite, the first WYSIWYG word processor, for the launch of the Macintosh in 1984.