February 8, 2023

Snippet: The Evolution of Facebook’s iOS App Architecture ☍

Dustin Shahidehpour on Engineering at Facebook Meta:

Facebook for iOS (FBiOS) is the oldest mobile codebase at Meta. Since the app was rewritten in 2012, it has been worked on by thousands of engineers and shipped to billions of users, and it can support hundreds of engineers iterating on it at a time.

After years of iteration, the Facebook codebase does not resemble a typical iOS codebase:

  • It’s full of C++, Objective-C(++), and Swift.
  • It has dozens of dynamically loaded libraries (dylibs), and so many classes that they can’t be loaded into Xcode at once.
  • There is almost zero raw usage of Apple’s SDK — everything has been wrapped or replaced by an in-house abstraction.
  • The app makes heavy use of code generation, spurred by Buck, our custom build system.
  • Without heavy caching from our build system, engineers would have to spend an entire workday waiting for the app to build.

FBiOS was never intentionally architected this way. The app’s codebase reflects 10 years of evolution, spurred by technical decisions necessary to support the growing number of engineers working on the app, its stability, and, above all, the user experience.

The post gets into a bit of technical details that are fascinating, but the tone strikes me as weird. While it’s great to celebrate milestones, it seems a little odd to be happy about layers of legacy code and nonstandard, custom choices that lead to a 300MB app that does most of the same things as a web page.

Snippet: The Mastodon Bump is Now a Slump ☍

Amanda Hoover for WIRED:

Companies and politicians joined up. Twitter users put Mastodon usernames in their handles and trumpeted their migration. The new traffic knocked many Mastodon instances, or servers, offline. In less than two months, Mastodon’s monthly active users climbed from 380,000 to more than 2.5 million. But not everyone stuck around.

Mastodon’s active monthly user count dropped to 1.4 million by late January. It now has nearly half a million fewer total registered users than at the start of the year. Many newcomers have complained that Mastodon is hard to use. Some have returned to the devilish bird they knew: Twitter.

When I initially tried Mastodon, it didn’t quite click for me, but after trying different client apps and finding more people, I’ve stuck around. I’m sure there are plenty of people who have tried it, but haven’t been able to use it as a replacement for Twitter and that’s fine. Despite trying to give Hoover the benefit of the doubt, it seems like there’s a growing narrative by a lot of media outlets that since Mastodon isn’t setting the world on fire with user numbers, it’s a failure and we should all just go back to Twitter. How about we focus on quality of the experience and if this new federated model for social media is worth expanding rather than caring solely about growth?

February 6, 2023

Snippet: When Facebook Came for Your Battery, Feudal Security Failed ☍

Cory Doctorow:

When George Hayward was working as a Facebook data-scientist, his bosses ordered him to run a “negative test,” updating Facebook Messenger to deliberately drain users’ batteries, in order to determine how power-hungry various parts of the apps were. Hayward refused, and Facebook fired him, and he sued […]

Hayward balked because he knew that among the 1.3 billion people who use Messenger, some would be placed in harm’s way if Facebook deliberately drained their batteries – physically stranded, unable to communicate with loved ones experiencing emergencies, or locked out of their identification, payment method, and all the other functions filled by mobile phones. […]

Negative testing is standard practice at Facebook, and Hayward was given a document called “How to run thoughtful negative tests” regarding which he said, “I have never seen a more horrible document in my career.”

What a disgusting company, but even worse, Apple should’ve thrown the book at Facebook Meta for this.

Snippet: FCC, Give Broadcasters An ATSC 3.0 Task Force ☍

Harry A. Jessell for TVNewsCheck:

NAB President Curtis LeGeyt and a contingent of broadcasters made the rounds at the FCC a couple of weeks ago, during which they admitted that the industry’s transition to ATSC 3.0 had “stalled” and that the entire push for the new broadcast standard was “in peril,” according to the required public notification of their visit.

The admission should not come as a surprise to anybody who has been closely following the rollout of 3.0. It’s been more than five years since the FCC authorized use of the standard, and I haven’t found anybody outside the range of this column who knows what it is.

With all the focus on the mini-collapse of streaming services (price hikes, less choices, and enshittification), another area in the media world is changing—ATSC 3.0 is a new standard that would eventually replace current ATSC 1.0 (aka digital TV) signals with technology that supports higher resolution, better reliability, and richer multimedia capabilities (including ad targeting…gag). Most TVs sold today would need a converter box to receive this signal, which seems like an even bigger ask than during the analog-to-digital transition in 2009.

Maybe it’s because I originally wanted to work in that industry and have slowly watched consolidation on the business side mixed with a fight to stay relevant, but broadcast TV just feels like it’s already dead and hasn’t figured it out yet. Even in big markets with resources, local news seems to cover headlines at surface-level and focus on fluff pieces like “what’s trending on Twitter” rather than reporting on in-depth things in the community. Conglomerates have also made it so that so much content is generated and distributed across multiple stations so the “local” newscasts don’t even feel that local anymore. Some stories are just plain wrong and poorly-researched. That’s not even getting into the primetime content on most of the broadcast networks feeling stale. At this point, if I was running the NAB, I’d be asking how we make broadcast TV relevant again and maybe treat our viewers like they’re not morons. Then again, it’s easier to say that an upgrade to 4K will fix everything.

Snippet: Connor Oliver’s Favorite Computer, An Old Mac ☍

Connor Oliver (via John Gruber):

I have no nostalgia for this machine, I don’t remember these from childhood and didn’t get to experience the classic Mac OS until 2015 for the first time. I can look at this computer from a modern perspective without nostalgia and appreciate it for what it is.

This Mac was designed to be a useful machine, a companion when you needed it, but to leave you alone when you didn’t. When the power is switched off the machine is truly off, no background updates, noises, or other nonsense occurs.

This Mac has no form of notification system built in, it never begs for your attention and its applications never try to distract you from what you are doing, begging you to look at them instead. If I get distracted while using this Mac the fault lies squarely on me, not the computer and not the programs running on it.

This Mac is unchanging in a world where things change by the minute. It will never receive another software update and is thoroughly obsolete, but it’s comforting to have something that you know will stay the same forever, remaining in a known state every time you return to it.

I grew up in the era of these machines (even using a Macintosh SE, and later an LC II as my main computer), and there was something to be said about the simplicity of the classic Mac OS. While I appreciate the reliability of the current macOS era (one misbehaving piece of software won’t bring down your entire machine), being able to name and easily understand every file in the System Folder led to a familiarity we don’t have today. In terms of capabilities, these machines are fairly primitive, but for a lot of tasks like generating documents and email, they work no worse than a current machine.

I’ve often mused about the idea of software like the classic Mac OS for simple devices like Raspberry Pis—for some of the things that Pis get used for, a classic Mac with an 80MB hard drive could in theory work if the software existed. Nonetheless, like a classic car, I don’t think I’d “daily drive” one of these old computers for mission-critical work today just because there is the looming concern of aging components.