Archive for November 27, 2023

Monday, November 27, 2023

A Short History of Recovery in macOS

Howard Oakley:

For the first ten years of Mac OS X, its closest substitute was Single User Mode, or SUM, entered by starting the Mac up with the Command and S keys held down. OS X then booted into the command line, where you could for example repair your startup volume[…]


With Mac OS X Lion, and the delivery of OS X from the App Store, this all changed, when starting a Mac up with the Command and R keys held entered its new Recovery mode, stored in what was termed the Recovery partition. In those days of HFS+, that was just another volume on the boot disk, and could be supplemented with a prepared USB stick containing third-party recovery tools, such as Drive Genius or Disk Warrior.


Prior to macOS Sierra, entering Recovery usually worked with a wireless keyboard; when running Sierra and later, many users found that they had to connect Bluetooth keyboards to a USB port to ensure the startup key combination worked reliably.


Apple silicon Macs, though, had a brand new Recovery system, dubbed 1 True Recovery (1TR), run from a hidden container on their internal SSD, and engaged by pressing and holding the Power button.


From Monterey onwards, starting up in primary Recovery using the Power button boots that Mac into the Recovery volume paired with the current boot volume group. Starting up in fallback Recovery using the doubly-pressed Power Button boots that Mac into the fallback Recovery (frOS) installed in the hidden Apple_APFS_Recovery container on the internal SSD.

See also:


Time to Back Up Bandcamp

David Rutland (via Hacker News):

If you’ve spent your hard earned cash supporting independent artists through Bandcamp, a series of ownership changes and layoffs suggest that now might be the best time for audiophiles to download their audio files to secure offline storage.


According to Aftermath, Bandcamp is a mess right now, with most of the support team gone. This leaves artists under the care of people who are either incredibly overworked, barely trained, or both. Engineers are doing work normally allotted to the support staff - normally a highly trained, competent, and enthusiastic crew.


The Bandcamp UI isn’t really designed with massive downloads in mind, and there are a lot of boxes to tick.

Fortunately, it’s pretty easy to download all of your Bandcamp music using the excellent Batchcamp extension which is available as both a FireFox addon, or as a Google Chrome extension.


Moving on From Xojo

Sam Rowlands:

Since 1998, I’ve built every single Mac app with the Xojo development tool (Aka Real Studio and REALbasic).

Over the last ¾ of a decade, Xojo started ignoring bugs, feature requests and industry trends. New features felt rushed, incomplete and sometimes unusable. Dark mode support and concurrency are two prime examples. Something is clearly wrong.

Xojo had embarked on a multi-year project of “2.0 All The Things™”. All Xojo customers must now experience learning a new programming language.


In a few short years, Xojo turned their most evangelical, enthusiastic, knowledgable, experienced and loyal customers, into enemies.

Bob Keeney:

One of the topics that I brought up was that these issues (the new Event names and marking anything from API 1.0 Deprecated – even though they’ll be around for a many years to come) were brought up early and often in the beta program. I said that honestly, it made us feel that our input is not valued.


I’ve been around a long time and have remained friends with some of those former Xojo developers. Some leave because of long-term bugs. It is disheartening to report a bug that affects your app that gets ignored for years on end.


Some leave because there is a lack of capabilities in the product. iOS (but also true for all targets) is painfully lacking in capabilities that force you into learning complex declares. There are no built-in controls for Date, Time, Timestamp, or numbers only Text Fields, exporting to PDF, no ability for applications to have a report editor, a good grid, etc. Some of this is because Xojo is the lowest common denominator between Mac, Windows, and Linux (for desktop) and doing these things cross-platform is really hard.

Alain Bailleul:

When I first started this blog, I was a huge fan of RB. The familiar VB6 syntax was what me attracted to it in the first place. I had a VB6 background, and with Microsoft abandoning it, RB was a nice alternative.


But because of Xojos decision a couple of years ago to start using a new syntax framework, most of these projects won’t work anymore without a major overhaul. So I feel it is time to let them go.


Update (2023-11-28): Patrice Calligaris:

Good points, I think their mistake is to support all platforms. Too big for a small team. They should just focus on macOS and Windows, desktop apps where there is a market. Now for Windows apps, you need a specific project to support new UI items, ridiculous!

Jeannot Muller:

I initially didn’t want to write anything more about Xojo. However, this thread reaffirms my decision to learn new tools nearly two years ago and ultimately part ways with Xojo.


In my opinion, Realbasic’s former strength of having a visual designer is increasingly overshadowed by various functional shortcomings and the prevalence of a 4-digit number of bugs.

Most notably, you purchase the “Layout Manager” at a steep cost. Naturally, it only functions within the Xojo IDE, which is significantly outdated. Not only is the autocomplete feature slow and prone to errors, but we don’t even want to discuss the absence of GIT integration. The Xojo IDE simply lacks everything that modern (and mostly free) IDEs provide in 2023.

Of course, the days when you could easily develop for multiple platforms from Realbasic / Xojo are long gone. The mobile modules require (no fault of Xojo) that you deal with XCode, Android Studio, certificates, CSS, JavaScript injections. If you don’t use the overpriced but secure Xojo cloud, you will also have to deal with server configuration for the web or you will have to use a third-party software solution like “LifeBoat” (in addition to the plugins that you need to be able to work properly with Xojo). The same applies if you want to get mobile solutions into the stores. Then there is hardly any way for the hobbyist to avoid third-party software like “App Wrapper”.

Bob Keeney:

A decade ago, people would explore Xojo, but they soon realized that building a robust application required more effort than they could invest. Consequently, they often sought professional developers, like myself, to create or fix their applications. However, the demand for consulting work gradually declined, leaving fewer opportunities for developers. The viability of the Xojo ecosystem is intricately linked with the consultants who support it.


While Xojo introduced its Rapid Release Model years ago, the results have been less than stellar. Instead of large, more stable releases with occasional bug fixes, we received frequent but less substantial updates. These updates often fixed some bugs but introduced new ones, creating frustration.

The parallels to macOS are obvious.

See also: If Not Nil, Could it be Saved?.

Google Pays to Be Default on Samsung Phones

Adamya Sharma:

The ongoing Google vs. Epic trial has brought out another interesting piece of information. As per testimony presented by Epic Games (via Bloomberg), Google paid Samsung $8 billion over a period of four years to keep Search, Assistant, and Play Store as default services on Samsung phones.


One internal document also shows how Google saved $1 billion over four years by backtracking on its request to make Play Store the only app store shown on the home screen of Samsung devices.


Meanwhile, Google’s lawyers presented an internal 2019 email from Jamie Rosenberg, the former lead for Google Play and Android operations, saying his team was “halting” Project Banyan as “it created an incentive dynamic where store teams would be competing with each other.”

The stores would probably work better for customers and developers if there were competition.

Lauren Irwin (via Hacker News):

James Kolotouros, vice president for partnerships at Google, testified Monday in a San Francisco trial, saying that the company and Samsung were to share app store revenue to ensure Android mobile devices came with Google Play preinstalled.


In his testimony, Kolotouros said if the Google-affiliated app store wasn’t pre-downloaded on the phones, people would likely make the switch to Apple and its iPhone.

Paul Wiseman and Michael Liedtke (via Hacker News):

Appearing in the biggest antitrust trial in a quarter century, DuckDuckGo founder Gabriel Weinberg testified Thursday that it was hard for his small search engine company to compete with Google because the powerhouse has deals with phone companies and equipment manufacturers to make its product the default search option on so many devices.


Weinberg testified that getting users to switch from Google was complicated, requiring as many as 30 to 50 steps to change defaults on all their devices, whereas the process could be shortened to just one click on each device.


In earlier testimony, Eric Lehman, a former Google software engineer, seemed to question one of the Justice Department’s key arguments: that Google’s dominance is entrenched because of the massive amount of data it collects from user clicks, which the company in turn leverages to improve future searches faster than competitors can.

But Lehman said machine learning has improved rapidly in recent years, to the point that computers can evaluate text on their own without needing to analyze data from user clicks.


Tata Code Theft

Richard Speed (via Hacker News):

A jury has sided with Computer Sciences Corporation (CSC) against Tata Consultancy Services (TCS) over the theft of source code and documentation. A total of $210 million was this week awarded.

According to the verdict [PDF], a Texas jury agreed that TCS had “willfully and maliciously” misappropriated both source and confidential documentation by “improper means,” awarding CSC $140 million in damages, with another $70 million tacked on for TCS’s “unjust enrichment.”

The complaint [PDF] was filed in April 2019 regarding CSC’s VANTAGE-ONE and CyberLife software platforms. CSC had licensed these software platforms to Transamerica Corporation, a life insurance holding company, to whom Tata – used here to collectively refer to Tata Consultancy Services Limited and Tata America International Corporation – began providing maintenance services.


The circumstances got sticky at this point, not least because Tata hired more than 2,000 Transamerica employees. CSC alleged that these former employees had access to its code and documents, and forwarded them on to the Tata BaNCS development team.