justin․searls․co

A lot of content around here boils down to links to someplace else, for which all I have to add is a brief call-out or commentary. As such, the headlines for each of these posts link to the original source article. (If you want a permalink to my commentary, try clicking the salt shaker.)


Just pushed a major update with a minor version number to my feed2gram gem, which reads an Atom/RSS feed for specially-crafted entries and posts them to Instagram. The initial 1.0 release only supported photos and carousels of photos as traditional posts, but v1.1 supports posting reels, carousels containing videos, and posting images and videos as stories.

Was it a pain in the ass to figure out how to do all this given the shoddy state of Meta's documentation? Why yes, it was, thanks for asking!

It seems to work pretty reliably, but YMMV with aspect ratios on videos. I don't think there's any rhyme or reason to which videos the API will reject when included in a carousel alongside images at different aspect ratios (unless the rhyme is "the aspect ratio must be an exact match" and the reason is "the Instagram app trims the aspect ratio of these videos on the client before uploading them", which I guess makes sense now that I type that out).

The media loves a clash of the titans narrative when it comes to the big tech companies, but the fact that they've all carved out such careful moats for themselves means none of them really compete head-on with one another. That said, the cultural competition is always fascinating to me. For example, while the broad story here is that Google is making ad blocking less accessible to Chrome users despite a pretty obvious perverse incentive to cram display ads down users' gullets, there's a beneath-the-surface contrast with Apple that's just as interesting.

I knew that the v3 manifest limited ad blockers, but I didn't realize it does so by drastically limiting the number of rules extensions can define (and then, favoring dynamic rules over static ones):

Originally, each extension could offer users a choice of 50 static rulesets, and 10 of these rulesets could be enabled simultaneously. This changes to 50 extensions simultaneously and 100 in total… Extensions could add up to 5,000 rules dynamically which encouraged using this functionality sparingly

So going forward, Chrome extension developers will still be able to execute as much JavaScript as they want—potentially invading users' reasonable expectations of privacy and slowing their machines down—but they will be limited in how many ads and trackers they can block.

Compare this to how Apple's Content Blocking API ties the hands of developers to ensure users are protected from nefarious ad blockers that scrape user data or replace all the ads with their own. They do this by forcing every rule to be statically defined—the very thing Chrome is restricting now. As Andy Ibanez puts it:

At the most elemental level, content blockers are rules represented in a JSON file. Everything all the Content Blocker apps in the App Store do is create a JSON file that gets handed to Safari. You could theorically create an extensions that all it does is hand a static JSON file to Safari without writing a line of code.

So on one end, we have Chrome restricting its extension API to protect itself from lost advertising revenue at the expense of users and which will incentivize developers to implement resource-intensive workarounds at best and publish bogus "ad blocking" extensions that do underhanded, skeevy stuff at worst. At the other end, Apple's Content Blocking API protects itself from scandal by preventing most categories of scams outright at the expense of developers having any tools to differentiate their extensions over others and which will result in users having the trade-off of speed (fast) vs effectiveness (middling) decided for them.

It's interesting to think about how the structural incentives of each company leads them to approach problems like this one so differently. For Google, it's always Google first, developers second, users third. For Apple, it's always Apple first, customers second, developers third. (Explaining why so many programmers are happy Apple customers while remaining wholly disinterested in being Apple-ecosystem developers.)

A great little post on how much Google has changed over the years. When I visited for an on-site interview in 2007, my takeaway vibe was, "yeah, right, all this nonsense won't last." Of course, the satisfaction I take from correctly predicting bad things happening brings me less joy than I wish it did.

The effects of layoffs are insidious. Whereas before people might focus on the user, or at least their company, trusting that doing the right thing will eventually be rewarded even if it's not strictly part of their assigned duties, after a layoff people can no longer trust that their company has their back, and they dramatically dial back any risk-taking. Responsibilities are guarded jealously. Knowledge is hoarded, because making oneself irreplaceable is the only lever one has to protect oneself from future layoffs.

I am very proud that Test Double's leadership has designed the company around minimizing the likelihood layoffs will ever be necessary, and that in the 12 years since we founded it, we have succeeded in avoiding them.

A recurring theme of my own career is that people generally fail to appreciate how big an impact one's emotional state has on knowledge workers. When people feel unsafe, they tend to prioritize making themselves feel safe over everything else. When work starts to feel like a slog, people move slower—that's literally what slogging means!

The best way to avoid the deleterious effects of layoffs, of course, is to do things to prevent them. Manage to profitability over revenue. Build a long runway of cash-equivalent reserves. Hire fewer full-timers and don't be shy about bringing on temporary help (which I wrote about earlier this year). Simple stuff—seemingly common sense, even—but increasingly unconventional.

"The game was to take place on a windswept foggy Scottish island. The player would be under constant attack from zombies. The player would need to use vehicles to get around but vehicles would need fuel. Acquiring the fuel would be a big part of the game."

Z was only in development for "maybe a month or so", however. According to Vermeij, the concept proved to be a bit of a downer. "The idea seemed depressing and quickly ran out of steam. Even the people who originally coined the idea lost faith.

To be fair, gray Scottish landscapes are a bit of a downer even without the zombies.

Programmers like fantasy. Artists like zombies. Not sure why that is.

The over-representation of fantasy and zombie themes in games is such a bummer. My favorite series take place in contemporary settings and eschew the supernatural—it's too bad games like that are so few and far between.

Was delighted to be interviewed by Jerod on the Changelog for what must be the third time this year. This time, we discuss our approaches to managing dependencies (an evergreen debate), before moving onto discussing the emerging POSSE trend which I seem to have backed myself into with the updates I've made to the design of this website over the past year.

Here's an Apple Podcasts link, if that's more your thing.

One call-to-action mentioned in the episode: if you're interested in how this website or its syndication tools work, shoot me an e-mail and I'll log your interest. Once enough people ask about it, I'll figure out how to open source or otherwise chart a path for others who want to wrest back control of their work from The Platforms.

From the department of Life Comes At You Fast:

Altman holding talks with the company just a day after he was ousted indicates that OpenAI is in a state of free-fall without him. Hours after he was axed, Greg Brockman, OpenAI's president and former board chairman, resigned, and the two have been talking to friends about starting another company. A string of senior researchers also resigned on Friday, and people close to OpenAI say more departures are in the works.

Today we learned (as if we couldn't have guessed) that Satya Nadela was furious at the news of Altman's ouster. It's not hard to imagine why: OpenAI's top talent could all be gone by Monday, start a new company they actually own shares of, and let OpenAI fall apart. If that comes to pass, something tells me the only "thermonuclear" lawsuit to be born this weekend will have been Microsoft's, in a bid to extract every last dollar it invested in OpenAI.

Anyway, you're not alone if you're feeling whiplash. Makes me wonder if Steve Jobs had access to our current era's instantaneous communication channels the day he was kicked out of Apple, would his acolytes have mobilized to such great extent that the board would have felt pressured to bring him back the very next day? (I doubt it.)

Elon Musk said on Saturday that he will file a "thermonuclear lawsuit" against non-profit watchdog Media Matters and others, as companies including Disney, Apple and IBM reportedly have paused advertising on X amid an antisemitism storm around the social media platform.

So, basically, "if your free speech on your website reduces advertising revenue on my website, then your speech must be curtailed in the interest of free speech." Got it.

He also said that "for speech to be truly free, we must also have the freedom to see or hear things that some people may consider objectionable" and added that "we will not allow agenda driven activists, or even our profits, to deter our vision."

I suppose it's still possible to view Elon as a once-in-a-generation genius if the generation you're referring to is the fascistic incel progeny of GamerGate.

In a surprising move, Apple has announced today that it will adopt the RCS (Rich Communication Services) messaging standard. The feature will launch via a software update "later next year" and bring a wide range of iMessage-style features to messaging between iPhone and Android users.

Didn't see this coming. Six years too late, but sooner than expected.

Apple's statement:

Later next year, we will be adding support for RCS Universal Profile, the standard as currently published by the GSM Association. We believe RCS Universal Profile will offer a better interoperability experience when compared to SMS or MMS. This will work alongside iMessage, which will continue to be the best and most secure messaging experience for Apple users.

This is a welcome improvement—green bubbles should turn more aquamarine, I guess—but by no means will this eradicate the lock-in effect that iMessage has in certain markets, particularly the US. When Google and others started badgering Apple to adopt RCS they were implicitly arguing for the abandonment of iMessage, but that was never going to happen. Feature parity aside, the fact RCS is not truly end-to-end encrypted makes it a non-starter for Apple. Besides, there is no way they'd volunteer to wait on a standards body to approve new features in the Messages app. In spite of this news, we should expect the two class system of blue bubbles and green bubbles to remain largely unchanged—the green bubbles will just be marginally less shitty to deal with.

I suspect this is a calculated capitulation to get the EU to back off from forcing Apple to open iMessage to other platforms. I imagine Apple's argument will be straightforward: this is us adopting the modern industry standard to facilitate interoperability, and any further regulations by the EU would have no effect but to stifle innovation. Because their competitors spent all their energy lobbying for Apple adopting RCS (as opposed to opening iMessage), maybe the EU will go along with this.

One last thought: the "later next year" timeframe helps Apple's case in escaping the EU's imminent ruling on messaging platform rules, as most observers will probably fail to realize that Apple's adoption of RCS will not actually dissolve the blue-green class divide.

What is interesting from all this is how quickly it appears that Starfield has tailed down from its impressive launch, dropping down just two months after it released; by way of comparison, Skyrim's original release had fewer players at launch in 2011, peaking at around 290,000, but didn't fall below 20,000 players until almost seven years later in May 2018. (Two months after release, Skyrim was still on somewhere around 90,000 concurrent players on Steam.)

Keep in mind, Skyrim's players are far likelier to be playing on Steam (both because it launched there and due to better mod support) than the official Xbox app, where Game Pass subscribers have always had "free" access to Starfield.

That said, it's hard to read this without thinking about the chorus of anecdotal reports I've heard from people who've played Starfield: Bethesda successfully delivered another "one of those" games, but it simply lacks the magic and awe that gave Skyrim its staying power.

Personally, I think a lot of this is due to the game's setting. High fantasy lends itself to dramatic moments celebrated by epic orchestral movements in a way that feels tacked on when applied to a sterile sci-fi environment. Fast travel between star systems in Starfield undercuts its sense of scale to a degree that manages to make it feel smaller than Skyrim's technically-not-quite-as-big-in-aggregate map.

These combine to rob Starfield of what industry folks call "emergent gameplay." A random hail from a starship feels like a procedurally-generated interruption, whereas a fellow traveler approaching you along a trail at night feels like a natural coincidence or kismet. Both might be random scripted events, but only one maintains suspension of disbelief. Similarly, knowing that I could walk thirty minutes and eventually reach a mountain in the center of Skyrim's map lends credibility to its environment, but being forced to constantly fast travel between planets shatters any illusion that Starfield players are exploring a single connected universe.

As a result, Starfield is merely a good game. It's more Fallout than Elder Scrolls. And where Fallout oozes with charm and satire, Starfield feels flat and mundane. The premise may be more realistic, but the world feels less real as a result.

Finishing Starfield's campaign and then deciding to continue exploring its world raises the question, "why?" It would be like checking out at Costco and then deciding to walk another lap through the store. Maybe there was something you didn't check off your list the first time around, but one imagines you're going to impatiently hustle to get it and get out.

While nothing has yet been confirmed, it appears people were able to figure out (or someone accidentally shared) Emergency Pizza codes that could be used over and over again by the same customer. This, obviously, isn't how the program was intended to work.

Expensive bug.

During the M1 generation of Apple Silicon Macs, one area of controversy was whether the default 8GB of RAM was less of a performance bottleneck as it was under Intel Macs. The pundits contended that a paltry 8GB was unacceptably stingy on Apple's part, but in practice—and who's to say whether it had to do with the ARM CPU or the unified memory architecture or the blazing-fast SSD performance—no matter how much you threw at the M1 Macs, it never seemed to get bogged down by swapping out to disk.

Well, that era is apparently over, because the new M3 with 8GB is getting absolutely smoked by the same chip when it has 16GB to work with:

The 8GB model suffered double-digit losses in Cinebench benchmarks, and took several minutes longer to complete photo-merging jobs in Photoshop as well as media exports in Final Cut and Adobe Lightroom Classic.

If you don't watch the video, it's worth clicking through to MacRumors' summary for the charts alone.

Big day at work. Emphases mine:

Test Double's mission is to improve the way the world builds software. We've done that by building great teams and great software—with a special focus on building things right.

Pathfinder Product's mission is to unleash greatness through modern product management. They've done that by being passionate problem solvers—with a special focus on building the right thing.

That about sums it up. When you put the two teams side by side, it's uncanny how good a fit they are. Each has hired top practitioners in their field, united by an insatiable drive to make this broken, messy world of software work better for everybody.

And as much as I bristle at the word "synergy", it's really there in this case: brilliant product strategy goes nowhere without execution, and high-performance delivery is a waste of money if it drives you in the wrong direction. The real beneficiaries of that synergy, though, will be the clients that entrust Test Double to help them accomplish both.

Apple PR representative Starlayne Meza confirmed the company's plans to The Verge. The company encourages those who have been holding out hope for a larger iMac to consider the Studio Display and Mac Studio or Mac mini, which pair a 27-inch 5K screen with a separate computer, compared to the all-in-one design of the iMac.

In the post-Jobs era, has Apple PR ever confirmed they had no plans to create a particular product like this?

Last year, I was featured on the season 1 finale of Matt Swanson's excellent YAGNI podcast. Well, season 2 kicked off yesterday with an interview with Charity Majors and as one of the few programming podcast series I can stand to listen to (high praise, trust me), I recommend you or the programmer in your life consider subscribing!

I'd been thinking about my appearance last year on YAGNI because in his lead-in, Matt joked that he had cajoled me into writing my own test framework as an alternative to RSpec. I have no recollection of this, but he turned out to have succeeded, because 9 months later I indeed published the definitive Ruby testing framework, TLDR.

In late 2018, Google CEO Sundar Pichai floated a bold idea to Apple CEO Tim Cook. Cook had just told Pichai he wanted to be "deep, deep partners, deeply connected where our services end and yours begin," according to notes from the meeting. Pichai responded with a proposal: What if Apple preinstalled a Google Search app on every iOS device?

What Pichai heard: deep love as in, "we want to go to market as a dream team, as a package deal."

What Cook meant: deep down as in, "we don't want anyone to know Google has anything to do with our products."

Finally! Some Magic Mouse news for the first time in 8 years:

Apple will likely announce new versions of its Magic Keyboard, Magic Mouse, and Magic Trackpad for the Mac at its "Scary Fast" event on Monday, October 30, according to a report today from Bloomberg's Mark Gurman. The updated accessories are expected to be equipped with USB-C ports instead of Lightning ports for charging.

When the original Mac launched in 1984, it pioneered use of a mouse over command line interfaces. A mouse was undoubtedly a much more direct, tactile input than a keyboard. But ever since the release of the iPhone in 2007, it's been clear that Apple believes touch screens and its glass trackpads are more direct inputs than mice and therefore superior. Apple doesn't want you to use a mouse when you could be using one of its trackpads.

(This emphasis on eliminating indirection in how users express their intent clearly energizes Apple's aspirations for visionOS, where the primary interaction metaphor is to "look at a thing" to select it.)

While the Magic Mouse lasts around a month or longer between charges, the position of the Lightning port on the bottom of the mouse has been a meme in the Apple community for many years, as it prevents the mouse from being used while charging. It's unclear if the USB-C port on the new version will be placed in a more convenient location.

I honestly expect them to keep the port on the bottom out of spite.

Alex Heath at the Verge, with yet another internal meeting leak:

Elon Musk wants X to be the center of your financial world, handling anything in your life that deals with money. He expects those features to launch by the end of 2024, he told X employees during an all hands call on Thursday, saying that people will be surprised with "just how powerful it is."

"When I say payments, I actually mean someone's entire financial life," Musk said, according to audio of the meeting obtained by The Verge. "If it involves money. It'll be on our platform. Money or securities or whatever. So, it's not just like send $20 to my friend. I'm talking about, like, you won't need a bank account."

This will almost surely be underwritten by a real bank, like Apple Card and Savings accounts are handled by Goldman Sachs, as Musk lacks the discipline to clear the regulatory hurdles to become the actual center of one's financial life. But if this launches, I fully expect Musk will mandate his employees use this account for direct deposit for their paychecks and may even go further, requiring it of Tesla and SpaceX employees as well.

But the thing I can't stop imagining is that he might promise social boosting for his mostly red-pilled, socially-disaffected male acolytes who park their money in X's coffers. Maybe they'll get a special checkmark or even more prominent placement in people's timelines and replies.

Hard to see how this doesn't end in some kind of cross between It's a Wonderful Life and The Purge when tens of thousands of incredibly online, gun-toting libertarian men realize their life savings have been eradicated following a bank run caused by, surely, some stupid thing Elon will have tweeted.