Later posts →

BBC News: Elon Musk: Twitter locks staff out of offices until next week

Twitter has told employees that the company's office buildings will be temporarily closed, effective immediately.

In a message seen by the BBC, workers were told that the offices would reopen on Monday 21 November.

It did not give a reason for the move.

The announcement comes amid reports that large numbers of staff were quitting after new owner Elon Musk called on them to sign up for "long hours at high intensity" or leave.

The signs have been there for ages but anyone still enchanted with Mr Musk at this point is simply not paying attention.

What do all these things say about him?

  • I have been a part of many successful ventures. I am technically literate and I know how to play the press. But I took away the wrong lessons about company building, about leadership and about trust.

  • I have survived, as every leader does, because I have let talented and hard-working people do what they wanted and they needed to do, which every company wants and needs. But since I didn't build this company, since I swooped in at the back of a bad meme which I was too proud to get out of and since it and I am at the crunch of liquidity demands of my own making, all that is no longer relevant. Saving my bacon is relevant. Not having to put up my own money to defend my own folly is relevant.

  • Remember in the 80's when the businessmen bought up companies just to break them up and turn them into monetary assets? Well, no more. It's time to buy up companies and treat them like beleaguered startups. Let's cosplay, I'll be the single venture capitalist who lets half of you go, having built nothing of it but accusing all of you of sloth, incompetence and insufficient adherence to virtue; the dude-bro with an Ångström skin who can't tell productivity from activity; who thinks people working from home are hiding something, while putatively being the irreplaceable engine of more companies than there are weekdays at the same time.

  • I am the only judge of what is correct. I, or possibly hand picked people who I have worked with previously, will grasp the nuance and necessity of everything, including things to which I have not been previously exposed. Chesterton's fence is for lesser men. On every team, no one would do productive work unless I was present to observe them or lead their efforts. In short, Edward Mike Davis had the right idea, but he was small-time.

Nilay Patel: "Welcome to hell, Elon"

Twitter, the company, makes very little interesting technology; the tech stack is not the valuable asset. The asset is the user base: hopelessly addicted politicians, reporters, celebrities, and other people who should know better but keep posting anyway. You! You, Elon Musk, are addicted to Twitter. You’re the asset. You just bought yourself for $44 billion dollars.


You can’t deploy AI at this problem: you have to go out and defend the actual First Amendment against the bad laws in Texas and Florida, whose taxes you like and whose governors you seem pretty fond of. Are you ready for what that looks like? Are you ready to sit before Congress and politely decline to engage in their content capture sessions for hours on end? Are you ready to do any of this without the incredibly respected policy experts whose leader you first harassed and then fired? This is what you signed up for. It’s way more boring than rockets, cars, and rockets with cars on them.

Babel Lecture 2022 with Stephen Fry

In defense of everyone's birthright to have fun with, develop, expand and own their language.


Pick up a book, read an article, watch a clip from the past 200 years or so, centered on what people find admirable and there they are. "Renaissance men" - people who know a lot about a lot. The Valve employee handbook put it differently: T-shaped people, "people who are both generalists and also experts".

But while the upsides of this broad mind has been extolled and somewhat substantiated over the years, it has been mostly left unsaid how to go about it. "Go to University!" and "Just go learn what you want to do and follow your nose!" is seemingly incompatible advice.

For all of the ills of social media, for all the ways a misleading fact, fake story, damaging, made-up rumor can lap Twitter while the truth is putting its shoes on, the influx of information in our lives means that you can engage with people's experience in a way that didn't use to be possible. And I mean experience, not mere "experiences".

Just this week, I somehow absorbed information about how "stroads" are a mismatched half-way point between streets and roads, leading small areas that should remain human-scale and personable to be torn apart in an effort to look like a big city; and how open shelves should be used for things you want to display and cabinets and other storage used to put stuff away. The first doesn't affect me all that much since I'm not an urban planner (although it seems neither are many of the purported urban planners), but it addresses a vague churning in my stomach I've had when I've been to some locations that just didn't feel right to me. And the second one seems incredulously easy, but it introduced a distinction that I hadn't thought about. I can't find the link, but the architect in question pointed out that with so many naked open cubbies like the IKEA Kallax, it is a distinction that many people do not observe, and live with cluttered furniture exposing incidental objects to dust, instead of storing them safely and showcasing the things you really care about.

Work hard to make money and spend them on objects and you may hear: "you can't take it with you". In a way, the same thing is true for ideas and knowledge outside of your domain and sphere of interest; if you manage a vertical collection of Zippo lighters, at least it will be left for someone when you're gone. Given that, what good is knowing the intricasies of performing Barrier Skip when you don't speedrun Wind Waker, manufacturing Panko bread crumbs when you aren't that one company in Japan, age a flat file cabinet when you haven't negotiated a band saw in more than a decade?

You have to feed the soul too. I'm a programmer, a developer, a problem solver. I like finding out about new domains, expanding my knowledge about them, slowly get a grip on them, realize there's so much here that someone else could, and probably is, living their whole life within this domain and barely gets to call themselves an expert. If you can muscle your way past the worst parts of Dunning-Kruger, you may find an interesting spot where you simultaneously understand that there's a whole lot you don't know, and that you have a better understanding on a small part of it than you thought you ever would. That's invigorating to me.

The reason the T-shaped people are revered isn't because they had read more books than others. It's because often they could see the same thing from multiple angles. As the kids today might put it, they were full-stack - or at least multi-faceted. In a way, they were multiple people at once.

I have never quite gotten in the habit of reading books, which is ironic because of how much we all read now, all day, every day. But putting aside their use as a mechanism for control and indoctrination where it was used to narrow thinking, the traditional promise of books is to widen thinking, to carry the results of someone's research, someone's lived experiences, someone's deep thinking, through the ages, from before sewers to after personal meal delivery apps.

If you can manage to dodge the divisive, conspiratorial, resentful, regressive people who make their living telling people how much of a shame it is that it isn't the fifty years ago it never was, be those people celebrated authors in the before times or producers of sputtering self-centered video podcasts today, there are plenty of good things left.

I don't know about you, but I've been spending a lot of time worrying about the future, being crushed by increasing complexity both privately, professionally and in current world events. There's "sharpening your saw" and become better at exactly what you do. There's "turning off" by vegetating to the cheap, the mass-produced, entry-level "SEO-optimized" or corporate-approved mulch. But aside from also allowing yourself rest and disconnection, how about recognizing that something that activates, engages and challenges you can also avoid feeling instinctually like work, like your responsibility, like something you ought to fix, like details you need to commit to memory or like noise you have to endure but that never means anything.

It can be entertaining because it catches your mind off guard, in a curious, open state where it doesn't have any notion of what's happening next and doesn't feel the urge to check phone notifications. It can be instructive and give you a lesson to tuck away for the future. It can jump into your mesh of neurons and trigger a connection for a problem you've been wrestling with for months. Or it can just be pleasing to listen to or watch in a world where your own mobility is limited.

Functional UI

I'm writing this article leaning against some nameless architectural mistake, and I am not writing the article on a Mac. I would, but my PowerBook is fresh out of power (funny notion, to name the thing after its only major shortcoming it's rather like Greenland in that respect.) [emphasis editor's]

Douglas Adams, The Little Computer that Could, 1998

Linked in popular places today is Marcel Weiher's UIs Are Not Pure Functions of the Model - React.js and Cocoa Side by Side from 2018, which delves into why React's functional state muckery appears useless.

This is a subject that I give a lot of thought from many angles, so there are many things to note:

  • The post appears snarky, but bases its attitude on the notion that Cocoa is a thought-out, capable, battle-tested, baked user interface framework. For example, for the point where the React side focuses on being able to provide fit-for-purpose lists, the Cocoa side highlights that nothing special needs to be done since, roughly, we know how to use our lists and we know how to design model classes to hook into them.

  • The functional nature of React, according to the origin story - retold many times, but here citing Pete Hunt in 2014's Rethinking Web App Development at Facebook beginning at around 24:00, is that of all the collective state being changed boiling down to one type of update, and if we could just handle that well we could stop the complexity from being spread out across 500 minor pokes to the DOM from across as many JavaScript files. Pete says "we built a user interface library called React, designed to solve the hardest problem in this space, which is that is that data changing over time is the root of all evil".

  • The major, primordial feature of SwiftUI, as explained by Kyle Macomber in WWDC 2019's Introducing SwiftUI session beginning at around 24:00 is collapsing the number of reasons things can happen to views down to 1. Kyle says "UI programming is hard - like 'lock free concurrency' hard" and refers to an "explosion" of possible ordering of events. These may not be identical arguments, but they are at least parallel arguments within their respective ecosystem.

  • The notion that Cocoa's views are baked and done and ready has also taken a hit in the last decade or so. As an example, when Mac table views stopped being primarily NSCell-based, they became NSView-based, and responding to selection and picking a contrasting color to the background is now a halfway magical process, when it used to be entirely managed for you. And of course, the desire to go to more custom and higher production value presentation requires even more code to stray from the default. (Even if collection views, for example, are excellent tools to get a grip on this complexity and focus on the behavior you want.)

View models and functional UI look like solutions, and they are indeed effective ways of managing complexity by making all the constituent state visible and enumerated. But in my experience they also encourage a way of programming where you bind as much as possible, and the problem with that is that, as the title of the linked post notes, UIs are not pure functions of the models.

If you go from one place in your UI to another, you may want to be stopped because there are things that don't validate or don't fly. You may have pending changes that should neither automagically apply nor be lost. Both SwiftUI and React have state as a first-class concept and are theoretically well-equipped to handle this; what's worse is that we don't have a handle on it.

We don't know how to think in state. For the edited-but-not-saved text of a text field, sure. For the in-progress-but-not-committed-changes in what is at least partially modal, somewhere in the UI? Hm, well, that sounds like a tree of Redux reducers - and therefore model data - or a bunch of nested view models to me. The SwiftUI talk mentions "sources of truth" a lot. Here, the source of truth for the hitherto unsaved data is nebulous. Living in 107 state variables? Living in provisionally updated properties of an ObservableObject that is kept uncommited from the database or real source of truth?

The key to great user interfaces is that they work the way the person expects. That constantly - not always, but constantly - requires making the mental model of the user interface richer. When an item is dragged around in a list, there should be indications about where the new item would land if you dropped it and you should be able to cancel it. If the list is hierarchial, you should be able to have things open for you in the middle of the drag. When you type blindly into the list, the list should select the next best item depending on what you typed. When you have a list of items and the ability to close one of them, you should also be able to close all others. When you can select one item and edit some of its information, you should be able to select multiple items, see where the information agrees and edit the information en masse, applying it to all of them.

Great user interfaces take time and effort and forethought and respect for the user. Not everyone may wish to always create a great user interface for all things at all times. There's a time and place for all ends of the spectrum and all levels of ambition. But UI frameworks should think about how it can, to quote the most unintuitive thing I know, make simple things simple and hard things possible.

Because no matter how much support the framework provides, hard things remain. Thinking back to the not-yet-committed changes, before anything is saved, hitting Undo should Undo whatever is possible to Undo. After the save operation has happened, Undo should magically switch to either doing nothing or Undoing the entire change. Figuring that out requires thinking through what the model of the user interface needs to be to be closest to the user's mental model. After you have done that, the last thing you need is the framework fighting you because it did not anticipate your need for this type of control.

Frameworks should be built by and for the people who want to create the great user interfaces, the ones that anticipate your needs by assuming that you want to have as much and as expedient control as possible over whatever the user interface is about. Where a list means being able to copy and paste the selected items, drag and drop the items to rearrange them, drag and drop the items holding a key to copy them, hold a key to check/uncheck all checkboxes, resize all columns to fit the width of their respective contents, sort columns by clicking the headers, drag and drop the columns to reorder them and, yes, type into the list blindly to jump to the item with the text prefix.

It is the case that many things are presented better on the web when they use, say, a multiple-row, "layouted" form of presentation. Where for good reason, things should not just look like a list. The chat messages example from the React talk should not look like a list. But the big failure of the web's style of user interfaces is that everything is custom. On the web you have to make a gargantuan effort to build everything from the ground up and work well on every device. On the desktop (and in some ways on the tablet or on the phone), you just have to make a concerted effort to use the features that are already there.

So, wrapping around. I don't think functional is the right idea. I don't think mutation from fifty angles is the right idea. I don't think controls or MVC guide you sufficiently towards how your code should be structured to best serve the user interface, without bugs and allowing interactivity and reactivity. My answer is that I have no answer, but to look out for seemingly perfect answers. Making everything look like the web is not a good idea. Making everything look like not the web, when you have people expecting the web, and who have never clicked to sort a table column in their life, is probably also not a good idea.

A pure function transforms an input value to an output value. If the idea was for a reader to go into this post with one idea and come out with another, this post is as impure as it gets. But maybe it, and 500 other random bits from other random ideas in other random places, will end up collectively giving you a clearer, more nuanced picture over time.

I consider that an imperative.

Don't Overextend Yourself

Guilherme Rambo:

However, Apple's documentation lacks crucial information on how to use these new APIs (FB10140097), and there were no WWDC sessions or sample code available in the weeks following the keynote.

Thanks to some trial and error, and some help from other developers, I was able to put together some sample code demonstrating how one can use ExtensionFoundation/ExtensionKit to define custom extension points for their Mac apps.

I spent about three hours doing the software development equivalent of gesticulating wildly trying to get ExtensionFoundation to work and will be looking at this. Vital pieces of information just weren't there at all, nor were any Xcode templates present to fill in the blanks. (Update: there apparently is a target for Generic extension, which I missed because it wasn't in the Multiplatform, iOS or Other categories.)

On the one hand, this technology now exists, likely took months to implement and years to bake and was someone's passion project.

On the other hand, it's just thrown out there. Here you go. I hope you understand how to use it. We will explain the thread of every shipped nut in details; we will even provide an example of one sort of fully assembled cabinet. But we will abstain from providing actual instructions of vital parts of the process.

This is not the first time I'm getting these vibes from Apple frameworks; IOSurface and its ilk has been like that, and the sessions on ScreenCaptureKit were almost comical at their circuitous avoidance of describing what you actually do with the audio/video buffers you are handed.

The title of this post is a salty pun, but if history is any guide it's also an actual earnest hope for the individuals who put together the new technologies, stressed to the gills under time pressure. They have my admiration as always.

But – they also get the dubious pleasure of being the face of underdocumented software. Apple is big enough that it's time to grow beyond the scrappy image, respect developers both inside and outside the company and allocate time and opportunity to move beyond "no overview available".

WWDC 2022

  • Years back, I wanted a new type of system UI primitive that was like a widget, but for transient events, to track your food order or count down to a bus or train. More information is still forthcoming about Live Activities, but given the examples were an ongoing sports match and the status of an incoming ride, I am optimistic.

  • Heavens to Betsy, apps can themselves have extensions now with ExtensionKit. There's even ExtensionFoundation for non-UI extensions.

  • There are now extensions for streaming media to "third-party" devices within the AirPlay menu.

  • There are also App Intents with the ability to pass data in and recieve data out on the other side, along with optionally showing UI. Siri and Shortcuts so far, and being able to be triggered via widgets, but tell me if this doesn't sound like macOS Services and wouldn't be ideal to be triggerable via context menus on selections.

  • There's also an iOS 16 "Developer Mode" device opt-in.

All of this is good stuff. The platform becomes more of a platform – things talking to each other, developers becoming more powerful and the user being in control. In many of the changes, it is impossible to conclusively separate whether they thought it was a good idea that needed to happen or whether they just didn't want to build it under the gun. (I will note that they have been and remained good ideas for numerous years.)

And as for a gun, well, having a Developer Mode that "lowers security" would put them in alignment with Android if one day they lifted the restrictions to allow broader distribution without going through orifices.

The Grave Insult of Turning a Basic Task into a Complicated Nightmare


First, a cautionary tale.

In 1976, a secret memo was sent from Swedish National Police Commissioner Carl Persson to Prime Minister Olof Palme. The memo documented the Minister of Justice Lennart Geijer's alleged regular contacts with prostitutes and the blackmail it could make him and others susceptible to.

In 1977, after Geijer's resignation the year before, journalist Peter Bratt wrote a flawed exposé of the memo's existence in Dagens Nyheter, the Swedish paper of record. This kicked up a lot of dust, mostly about the allegations but also about the slipshod coverage. Later the same day, the story was confirmed in the news program Ekot on state radio, separately sourced and with the egregrious mistakes corrected.

Within days, Prime Minister Palme stood in parliament, vehemently denying the "lies" of Dagens Nyheter, comparing the unnamed author to a sewer rat with yellowed teeth. He did not mention the corrected and factual reporting of the same events and the same memo by Ekot.

Over the next few months, Dagens Nyheter would come to issue an apology, Swedish journalists and publicists would come to focus on outing the source of the original report and the popular understanding was left as: this did not happen. Even though it did happen, even though it had already been reported on correctly, even though that report had remained unassaulted. Holding either politician accountable turned into open season on the author and the source of the original report. Because the thing everyone read was flawed.


John Gruber:

Last weekend The Verge ran a piece by Sean Hollister under the headline “Apple Shipped Me a 79-Pound iPhone Repair Kit to Fix a 1.1-Ounce Battery”. Sometimes I read an article that’s so absurdly and deliberately wrongheaded, I worry that I’m reading it wrong.

Louis Rossman:

It's just so missing the point, and the fact that this is getting reported by so many others, not just The Verge, is part of the problem with tech journalism in general. You don't have your eye on the ball. You're focusing on the things that are easy, rather than focusing on the things that matter.

John (again):

That sounds great, of course, but that’s not how modern mobile devices work. Apple isn’t an outlier in this regard — there are no popular modern mobile devices that are easily serviceable with simple tools. If it were possible for iPhones to be more easily repairable, without sacrificing their appearance, dimensions, performance, water-and-dust resistance, and cost, Apple would make them more easily repairable. That iPhones are not easily repairable is of no benefit to Apple whatsoever. What’s the theory otherwise? That $69 in-store battery replacements are highly profitable?


The Verge can write a flawed article and miss the point, but that doesn't mean there isn't a point. There are several.

Before the iPhone, there were phones you could swap the battery in. Even the weird, crazy-ass, design experiment Nokia models, you could swap the battery in. The iPhone changed a lot of things, this being one of them.

But this wasn't a change for Apple. Every single model of iPod had a non-user-replaceable battery. This was adhering to their design philosophy, in place since the early 80's, which can be succinctly summarized as: don't touch it, you'll only make it worse.

The iPhone being the first of the stereotypical modern smartphone having a non-user-replaceable battery does not mean a modern smartphone has to not have a non-user-replaceable battery. It means that when a company with Apple's design philosophy does one, they will pay more attention to pretty much everything else than to practical maintainability concerns for the user.

Apple's design philosophy is focused on the story that only Apple can do this. Only Apple can secure the software, only Apple can repair the hardware, only Apple can replace the battery. From the lens of that story, it makes sense to, rather than allow the user to twist a knob, remove a plate or undo a screw and swap the battery, tell you to go to the store that Apple runs and have someone else do that for you.


The instictual, visceral rebellion from so many people has several constituent components.

From a user's point of view, from a customer's point of view, this is ridiculous. We all own products where the battery eventually goes bad where we can replace the battery. We know that there are alternative solutions.

The roundabout nature of the repair speaks to the degree to which practicality was not a priority during the design process, with wasteful shipping of enormous machines being one of many side effects. (Note: putting aside the wisdom of choosing this design, shipping enormous machines to service centers is a different set of concerns since presumably those machines are acquired and will service hundreds to thousands of devices over years. But renting them and sending them across time zones, continuously charging an environmental cost that would otherwise be amortized over time, is a completely different sustainability calculus.)

It is so easy to transpose the arguments slightly and re-examine them. What would people say about a new Porsche with a sealed tire design, where you required an 18-wheeler-sized vehicle to be called out from the nearest dealer to, carefully and gingerly, plasma cutting, loosening and desoldering the tire, followed by friction-stir welding a replacement tire on and getting on the horn with a service representative over the telematics system to bond it to the vehicle electronics? If you fell into a coma, woke up ten years later and this was the standard, would it become any less wasteful? If you learned that this had been controversial, but that recently Porsche had started sending out these vehicles to people without a support contract and for a lower fee, would the construction become any better?

What would people say if, in late 2006, you wanted a phone with a big touch screen, with apps, with high-speed internet access, with fluid animations and a capable software stack? It's possible they would say "silly rabbit, that's just not how phones work, they run cheap-ass software written to a real-time OS, and if you sit nice, be very quiet and hand-type this URL on this T9 keypad, you can have a J2ME midlet application that's so maddeningly generic, the developer couldn't even tell on which side the softkey buttons are going to show up from platform to platform". But would that mean the current status quo was the only way things would ever go, or that you were objectively an idiot unmoored from reality for wanting them to be different?

From a user's point of view, it is true that having a user-replaceable battery does add to the size and weight of the device, especially the easier the mechanism is to undo. It also adds to the lifetime and the resale value, because now you could do it with your hands in under a minute, or with a screwdriver and maybe some minor tools in under 15 minutes, so now you might actually do it, since you don't have to give your primary technical support device up for hours or days in a store that may not even be in the same city, without risking your warranty.

I can see why Apple or why publicly listed companies who live and die by quarterly earnings don't want to incentivize that. I can see why they would rather want people to get a new device, or failing that, inflate one of two notions that the device should only be handled by its maker or that its maker is a good and green company for disassembling and recycling a device that could still have done five more years of service out in the real world.

Just because servicing is not a "profit center" for a company, doesn't mean that the company doesn't benefit from designing its devices to not be user-serviceable. And it doesn't mean that the company, at the end of the day, doesn't view your convenience as a customer somewhere on a dynamic scale from indifference to contempt. At least when it means that you might actually use the damn device for an inconveniently long time, when you should have ran out to get an upgraded model, whose upgraded features you do not really want enough to justify the price of a new device.

I can also see why some people make the mistake of looking at the before and after and think, well, the iPhone won. But the alternative isn't an iPhone 13 Pro Max vs a Nokia 3310. This is a false comparison. The alternative is an iPhone 14 Pro Max that spends a fraction of its area on making battery removal possible without industrial tooling. And maybe that seems alien given the device landscape of today; maybe it seems alien given Apple's history in particular.

But what seems alien is a bad predictor of what's possible. It used to seem really fucking nuts to make a phone out of aluminium and glass. And the idea that made people think you were a propeller-head who installed NetBSD on your toaster wasn't that you wanted to swap your battery without involving suction cups, but that you wanted your phone, the thing you made calls with, sent SMS text messages or the odd email with and played Snake on, to be as capable as a computer.


So, I don't know where to start and I don't know quite where to end either. But the idea that Apple isn't a grown-up company that can do whatever they want is stupid. They could focus a tenth of the effort that they put into designing a new iPhone into making it just a hair more repairable without industrial tooling.

Swapping a battery after 18-30 months, 1-3 times during the device's total lifetime, when it is significantly degraded, could be possible with a screwdriver and screwdriver-esque type of tools. Note that batteries are now so good that no one is asking for the ability to flip open a hatch and swap between one battery and another battery you have on hand, just for a way of opening the thing up, getting to the battery and sealing the thing back down that would be less of a science project. This would be a significantly less intrusive change than a "user-swappable" battery as the old Nokias had (a mechanism the likes of which the iPhone already supports on a smaller scale for the SIM tray).

Apple has enormous assets and enormous expertise. They could do it. But they choose not to do it, and they should be held accountable for what they are doing. They should be held accountable for what they have chosen to do and not to do.

Yes, it is some flavor of nice that they are not hoarding the industrial tooling. Yes, it is on its face ridiculous that they have willingly painted themselves into a situation where such tooling is necessary to open a god damn high-volume mobile phone. And no, the reason Apple is where they are is not because they have somehow reached the practical limits of applicable technology, and nothing will ever be more easily repairable. The reason is because Steve Jobs wanted a perfect object that people didn't screw around inside of, and company culture is a hell of a thing.

Quinn Nelson: Using Apple’s Tools to Fix My iPhone

Quinn Nelson, who used to own an iPhone repair shop, takes the US-only iPhone Self Service Repair for a spin. They ship you 40+ kg of equipment, which you rent for 7 days. The entire experience is a confounding mix of thoughtful little touches and issues being solved with a ridiculous, over-the-top sledgehammer approach, more or less because Apple can afford it.

The iPhone as a product is designed, engineered and developed with a number of constraints on materials, fit and finish. It has to be manufacturable in the first place, it has to be torsionally rigid, it has to withstand atmospheric pressure, a person's grip and perspiration. The materials have to be responsibly and sustainably sourced, free from impurities and forbidden substances. It has to fit together well and look its best.

There are thousands of check boxes to tick, all of which have guided the design and build process. For a company capable of doing all this, only laziness, apathy or spite are stopping them from making it just as well put-together, just as representative of a deliberate design ethos, but more easily repairable.

Only laziness, apathy or spite.


Over and over again, I hear the same argument. Someone (Apple, Google, Microsoft, Facebook, whoever) created a thing, and they are now and forever in charge of that thing, and can do whatever they want, and if people don't like it, tough.

This argument is a fair place to start and holds water to a point. If you make a sandwich in the comfort of your own home, you can put whatever you want on it. If you make a sandwich for your kid, your kid can't insist that it have jell-o on it instead of sprouts and cream cheese. (Although if you put dirt on it, social services may want to have a word.)

However, if you have somehow transformed into the civilized world's maker, keeper and provider of sandwiches, it is ridiculous to apply the same logic as if you're just making an afternoon snack for yourself. If applications run on your sandwich that, if they went down, would seriously impact society, we have graduated from the point where it's just your concern (and beyond this metaphor).

iOS and Android is a duopoly. It's not because it's technically impossible to create an alternate platform - although it is very difficult. It's because of the powerful network effects holding back any contender. At that point, your platform controls eating and breathing; the air, the soil and the water; livelihood, where the savings are deposited, how they are used. At that point, everything else is a joke. At that point, you made yourself the world's platform.

I am not one to say that the government, the military or the angry concerned mob of civilians should wrest control of these creations from the private companies, and that this will solve everything. But I am one to say that you keep acting in the same self-interested, self-serving, self-aggrandizing way as you did when you were one of ten hopeful entrants in a crowded market at your own peril.

Monopolies eventually fall. If you're unlucky, they pull all the oxygen from the room first, smothering all counter-agents, setting us back years. Making us forget what it was like before everyone took as given the compromises we were forced to make; the selfish, enshrined as security, as utility, leaving a shriveled, ashen field.

Monopolies are endothermic and parasitic, claiming for itself the value of their surroundings, under the guise of its own importance, propped up and fueled by those who wish for eternal youth, ultimate power and endless resources. But wishing so does not change how thermodynamics work, how ecosystems work. If not dethroned, all power, all value, all energy flows to the monopoly, which assumes it, which forgets everything else, the spectre of endless growth the everpresent hum of the universe. And when it's all there...

The story only ends in one place - without a monopoly. Having fallen, first gradually, then suddenly.

I am not worried about monopolies lasting forever. I am worried about what they will consume before they are toppled. And I am worried about the power of grown adults who still insist on jell-o sandwiches.

Noah Grey's Gofundme

I am late to this and only found out about this on Slashdot, but days ago, Noah Grey was in deep trouble.

Noah Grey is probably one of the most influential people to personal, automated Internet publishing that most people have never heard of. At the turn of the century he produced a remarkable piece of software called Greymatter, far before it would be described as a "static site generator", "content management system" or "weblog engine", and used it to publish beautiful photography. His sensibilities ran deeply through the software and from what I can tell, through everything he did.

The story of the current circumstances has a happy ending, at least in terms of account balances, but I took the opportunity to contribute anyway because of what people like Noah have meant to me personally and to the Internet that I love. Due to cynicism, commercialism, greed and politics, the Internet may not be what it was any longer, but that's hardly Noah's fault. It was stolen from him and from all of us, so let's steal it back.

Steve Troughton-Smith on Apple, App Store, developers and government meddling

Steve calls it "an incredibly-delicate, calculated 'truce' that relied on Apple not overstepping into abuse" and now thinks "Apple’s behavior has been so offensive over past few years that, at this point, all I’m thinking is ‘damn the consequences’".

I've never understood why people have been so bewitched about the positive potential outcomes. Purely by making the operating system, defining the APIs, bundling its own software, manufacturing its own hardware, tying the operating system to its hardware and vice versa and selling even more of its own software, Apple has plenty of opportunity to set good examples and draw people to the combined value proposition. Why the hell does it need any more control than that?

I have been against the App Store from day one on a philosophical standpoint but also from a practical, realistic standpoint. The ability for a developer to be a great developer is hampered, frustratingly and undeniably. The likelihood that a user will find a great app is lowered dramatically.

Mac OS has always had less apps than Windows, but they've also had great applications, sometimes good enough to keep people on the platform, earlier good enough to keep people enduring an unstable foundation. Applications developed by small teams of people who nevertheless made great things, in some cases still for longer than there's even been an App Store.

iOS and the App Store has not been a truce. It has been a destructive, abusive, lopsided, mistrustful relationship; a relationship that has allowed access to a platform advantageous enough to make you close your eyes and think of multi-touch. It has been an insult to history, an exercise in attempting to redefine away the fundamental facts of the market and of their existing user base and developer ecosystem in a puff of malevolent marketing.

I don't see governments as the best arbitrators of required features in hardware or software, but they sometimes have a strong connection to what's fair for the customer, and ain't nothing about the App Store that's fair.

Like Steve, I resent the muddling connection to "industry interests", whose involvement just serves to hide the real issues. I am reluctantly interested in what's going on as a forcing function, knowing the lopsided unfairness could simply slide over to yet another party beyond end user, developer and Apple. That could happen.

If that happens, I will blame the Apple that woke up every morning since 2008 and chose to worship Mammon. I will blame the Apple that took the easy way out and chose the clammy, desperate grip of control. I will blame the Apple cowardly enough and uninspired enough to keep to its own, rather than to lead in the sense of empowering other people.

I will blame the Apple that, through this mismanagement, craps on the legacy of the people and divisions within the company that have done groundbreaking, innovative and empowering work in their own areas over the years, all the while it reaps the profits of their advancements and discards their spent husks when they're done.

And I will blame the Apple that, when people naturally react to their mismanagement, acts surprised, as if we don't know that they know best, because didn't we know that pure intent scrubs away all consequences?

The word "gaslighting" is thrown around a lot these days and in its original form it seems to require a malicious intent to deceive. I really don't know what's there. I believe people at all ranks at Apple to be intelligent people and think very few of them have ill-intent, so I really can't describe what motivates what they're doing. But they seem to have a radically different idea of what's going on than literally everyone else. And so maybe the idea of the "Cult of Apple", long brought out to explain why people would even use those smelly Macs and iPhones, just had it backwards; it is the company that is the cult.

Matt Gemmell: Content Creation

Content is fungible, space-filling, placeholder-replacing stuff, and that’s not even its most offensive connotation. The worst part of “content” is that it’s implicitly relative to its container. That’s what content means. The contents of a sandwich are with respect to the bread. The content is just what’s inside. It’s probably the most trivialising, demeaning, depressing, surrendering term out there — but people lay claim to it. People define themselves as makers of it.

Bingo and hear, hear.

Ars Technica: Apple restores Navalny app to App Store

Apple has restored an app sponsored by Alexei Navalny, a prominent leader of Russia's political opposition, to the company's Russian app store. Apple took down the app last September, days before Russia's legislative elections, under pressure from the Russian government.

Ars's article tagline is "too little, too late", and yes, that much is true. I'm getting the sense Apple has changed its position on how it should operate App Stores in autocracies, or at least the ones where they don't make a good chunk of their money and nearly all of their products. Technology did not cause Russia's ills, nor will it cure them, but it can still make a difference for the Russian people.

Jeff Johnson: Mac Pro historical perspective

I would argue that the Mac Pro as we software developers knew it was never given a successor after the "trash can". The Mac Pro was discontinued and replaced with a different computer of the same name that was no longer for its largest pro audience. I don't know many individual software developers now who can afford a new Mac Pro. I certainly can't.


I don't understand why we have to make these painful tradeoffs in 2022 when they weren't necessary in 2012. Ten years ago we had relatively affordable, conveniently upgradable Mac Pro models. Since then we gained a faster CPU, but otherwise we've lost everything else great about the Mac Pro.

The Mac is a much bigger platform now than it was 10 to 20 years ago. There is room for both option A: a Mac Pro that costs insane amounts of money, is incredibly overbuilt and is just what the doctor ordered when being able to top out the configuration is more important than being sensible, in the way that might make sense (ie disappear into the budgetary static) on a movie set where it costs more to have people stand around for ten minutes; and option B: a Mac Pro that has a great processor and modularity in the rest-of-the-world sense of the word, in that you can make it what you need it to be, without Thunderbolt enclosures or docks, but that also does not require you to order the right amount of everything the first time or take out a mortgage.

Right now, despite the opportunity to do both, Apple just does option A, and that used to be a positive development, because the previous "trash can Mac Pro", option C, was even worse. Mac Studio is a better implementation of option C, so it remains to be seen whether WWDC will bring a better implementation of option A or the return of option B, or even both. A sufficiently layered or wide-ranging line-up could include both, although the existence of option B would likely embarrass the Mac Studio.



If we called the previous Mac Pros the trash can and the cheese grater, I'm calling this thing the Thicc Mini.


The Futurama episode A Clockwork Origin features a scene where a "creationist" orangutan asks for a mysterious missing link between two species, only to be disproven, and to repeat the same question with the link between the newly revealed species and one of the previous species.

This is roughly what being a Mac prosumer is like.

Two decades ago, there existed iMacs – all-in-ones with good but not great performance – and PowerMacs – with great performance and expandability for roughly $1500 and up. Aside from a pricing hike as the PowerMacs took on first IBM's heftier PowerPC G5 chips and then Intel's server platform Xeon chips, this lasted until the aforementioned "trash can" Mac Pro, which showed that Apple could innovate themselves into an overly specific and restrictive corner. When they extricated themselves out of it, it was with first an iMac Pro model at $4999 with Xeon W chips and then a new "y'all want a cheese grater? here's a cheese grater" Mac Pro, also with Xeon W chips, starting at $5999.

Ever since the PowerMac started drifting upwards, and to a lesser degree before it did, people have clamored for a mythical xMac model, which would have some limited expandability but also be a competent workstation. This was also driven by fear of the product line being usurped by the all-in-one design philosophy powering not just every laptop, but the iMac as well, which aside from the entry-level Mac mini was the only affordable desktop.

So here comes the Mac Studio, with either an M1 Max or M1 Ultra SoC and a more approachable price tag than the Mac Pro, alongside the return of the Studio Display, enough to toss the geriatric (CPU-wise) Intel iMac 27" model out of the product line. Done deal; let's go home. Right?

Not so fast. The Studio Display looks like a good, well-built product, but comparing to products that Apple has itself been selling for years, it's not that impressive. It's a display for the people who would have liked to have an Apple Silicon iMac 27", but it's not impressive and ground-breaking as displays go, and the relatively low refresh rate and brightness in a display that, unlike the Pro Display XDR which is positioned as an everyday reference monitor, competes with displays that have both high refresh rates and HDR capability. But, luckily, you can pick whatever display you'd like.

As for the Mac Studio, it's ostensibly in the classic PowerMac range of around $2000. But it's not expandable in the slightest. If you want to have a decent amount of internal storage, more unified memory or the M1 Ultra, prices quickly race skyward. Or you have to expand with external accessories rather than additional components, which is always more expensive.

So, it's good news that a developer can get a good Mac workstation desktop without having to pay for a screen you're not going to use, for a roughly comparable price as what we have been clamoring for, and without totally giving up on decent I/O connectivity.

But: you get a computer that's done when you unpack it; a PowerMac G4 Cube, except even less expandable. It would be lovely to be able to add additional internal storage — even if Apple hates the form factor, even just having M.2 NVMe drives would go a long way. It would also be good to be able to add some form of additional memory or cards. The idea of the xMac certainly involved more additional expandability. Not to mention that the inability to connect a high refresh rate display limits future proofing even more.


Going from xMac to X factor, we have the last piece of the puzzle, the upcoming Apple Silicon Mac Pro, the presumptive star of this year's WWDC keynote. Given the accuracy of Mark Gurman's reporting on the M1 series of chips, this would be the final, "Jade 4C-Die", M1 Extreme, or whichever is more than Ultra, which is already more "max" than "Max". It would be four M1 Max dies with interconnects, scaled up another doubling (although maybe not in every dimension and every sense). This would give 128 to 256 GB of unified memory, and if Apple chooses to use the same marketing tack for it as for the MacBook Pro and Mac Studio, it would go hard on how completely untenable it would be to get that amount of GPU memory, which is true.

What's left to answer is: will that angle be enough for them to forgo additional PCIe slot expansion, and to avoid additional, DIMM-based module RAM? The M1 Extreme would not fit in the Mac Studio's thermal envelope, so there would need to be a new enclosure and probably a new industrial design either way. But if it's not notably different from the Mac Studio in character, what would make it more than just a "Mac Studio Pro"?

Here are my guesses, based on the Mac Studio, based on steps and investments Apple has taken in both hardware and software in the past few years:

  • M1 Ultra or M1 Extreme (possibly a low-end model with M1 Max).
  • A handful of PCIe slots.
  • Some way of facilitating extra storage that is possibly as ham-handed as the current Mac Pro storage enclosures, but that also allows NVMe SSDs. (The current enclosures only fit hard drives in various configurations, and that feels very out of tune with the focus on high performance not just on the Mac Pro but on the upper models of the M1.)
  • Additional memory in a way that we haven't seen before, quite possibly a conceptual mix between CXL and the UltraFusion chip interconnect that forgoes having DIMMs as we know them – or just additional chip models with even more memory than 256 GB.
  • The MPX module is unclear and could go either way. It is an extension of the PCIe slot to facilitate more power, and seems wasteful and short-sighted to have been invented only for one generation of product and a handful of modules ever, but then again, it has basically mostly been used for GPUs, and additional GPUs are more doubtful (and are still not supported in external enclosures).

No matter how this all shakes out, there's basically no chance that the Mac Pro is going to be significantly cheaper than the current Mac Pro model - maybe if there's a low-end M1 Max model and the form factor embraces expandability, so that it is significantly different from the Mac Studio M1 Ultra model that it will cost about the same as.

So, lest we forget the point: the xMac does not appear likely to be incarnated any time soon, and the PowerMac, in the sense of a reasonably inexpensive (read: not $4999) workstation with moderate internal modularity, is not due to be reincarnated either by the Mac Studio or the Mac Pro. The virtues of such machines are apparently not compatible with the virtues of the new Apple Silicon, the point of which is chiefly how the one thing with the really quite many transistors can do all these things without needing any other things. As neat as those chips are, they do not fully make up for what was once there and now does not exist any longer.

The Scourge of Scrolling

The web and mobile UI have established a new scene for drastic, dramatic and minimalist user interfaces. Some interfaces benefit from it, and some interfaces have their sins (intrusive branding, clutter or ads) magnified. But both web and mobile UI are heavy on scrolling. Mobile because there's only so much you can fit on screen, and you can't make things too small before they are too hard to tap; web because the web was made for documents and long texts, and that's how you read them.

Sometimes, a scrolling list is just what you need. And sometimes you need a scrolling list of options or alternatives or items within your user interface. But if you have the option, your user interface should be fixed. It should be laid out, with things in specific places for particular reasons. Grouped by subject or rough order of operations. Separated by lines or into tabs, to present a digestable amount of options that each connect or relate to each other. And yes, adaptive to screen orientation, font sizes and bright/dark modes, by all means.

The alternative is pouring every option, every user interface control out onto the screen, a flow-layout algorithm the only guide, making the primary navigational aid scrolling-and-looking, scrolling-and-looking, and hoping you find whatever you're looking for. The alternative is abusing a visual language that suffices for digesting words, but in the service of making sense of all of them together. Every check box, every option, every button is its own idea, and the human mind needs all the help it can get to put them in context.

If you can always scroll, ask yourself if you could arrange your user interface with more intent. Respect your user interface, respect your user, and avoid letting necessary compromises in constrained environments bleed into places where you have the real estate and dynamic range to do a much better job. Your user interface is a thing, and things should be what they are – intentional, predictable and dependable.

Exclusive: Leaked Draft of Contingency Sideloading Guidelines

Take can today reveal a partial draft of developer guidelines aimed at qualifying applications distributed via sideloading, designed as a contigency plan if events force Apple to open up application distribution.

1. When distributing applications outside the App Store, applications must bemoan the regrettable circumstances that led to their existence outside of the calm, gentle embrace of the privacy-preserving, secure and premiere application distribution platform of our time.

1.1. In recognition of these circumstances, when first launched, applications must set a drab tone of national anguish and mourning, alas, of how slowly, regrettably from carefully considered, meticulous design, by unthinking regulation does emotive, deeply resonant and in-app subscription renewals as mediums for transcendental application experiences slowly unwind. The tone shall last for no shorter than five minutes and use UIVisualEffectView with the effect UIRegulationEffect.

2. Users of Apple devices choose Apple devices because of their unparalleled ability to deliver a secure and trustworthy environment, free of malware and fraud. In a volatile regulatory environment intent on distorting them, applications must remain conducive to and maintain these pillars of integrity.

2.1. Users who download an alternate application distribution environment will be required to regularly give consent to this agreement. This consent alert must contain a link to communicate their concerns to the applicable legislature or government agency.

2.2. Games or Apps targeted for kids are advised to use the more approachable phrasing "stop hitting yourself", and of users of alternate application distribution environments as "doodyheads". [Marketing: should we check for localizable equivalents?]

3. The flag of the European Union is, like, totally stupid. Developers who instead use the provided materials (see Ted Lasso Resources, later in this document) are entitled to three months of Apple TV+ upon successful completion of App Review. (Offer valid once per developer account.)



Introduced for yesterday's betas (macOS 12.3, etc). A more finely-grained API, tuned for the needs of screen capture – letting you specify which apps and windows appear, the format of the capture, frames being able to be elided if nothing has changed, and so on.

And interestingly accompanied with a pull request to OBS to integrate it right away (under the banner of "Developer Ecosystem Engineering"), with changes that seem to follow the current work and adhere to its development process, ie not just a code dump or kthxbai.patch file against a months-old revision.

Blue Skies and Sour Apples

The Dutch Authority for Consumers and Markets has an effort to enforce the recent ruling that App Store dating apps must be allowed to use third-party payment methods. I've been following it, and Michael Tsai's roundup contained a biting Twitter quote from Francisco Tolmasky:

It must be really frustrating to roll out an entire plan only to be completely at the whim of a reviewer — err, regulator — to find out whether it sufficiently meets a set of vague criteria.

You could argue that Apple should not be subject to drive-by, after-the-fact regulation, clumsily anticipated "claw game" engineering by finite enumeration of ostensibly reasoned points, each tile creating more cracks and crevices through which people and features will fall. You could argue that the people making these decisions are ill-equipped to do so, and that their incentives are not aligned neither with the developers, nor with the person who's going to be using the thing.

What you can't do is argue these things and then turn around and say that it's all fine when Apple is doing it to developers. Time after time, Apple has either completely missed or blatantly ignored what makes a sensible application for developers and users, focusing on what draws in more money or tightens the regulatory noose.

A recent installment of the ongoing Floatplane App Review saga is instructive. Floatplane COO Luke Lafreniere has ongoing issues with getting a media network app already on the App Store through review, and time after time struggles despite carbon copying solutions adopted by big and successful apps on the App Store, to the point of copying UI wording verbatim.

I won't spoil the ending of the particular story, but even though the developer reach-out representative he is in contact with is cordial, empathetic and understanding, the situation is plainly, on its face, objectively ridiculous. No one is served by the status quo, and there's significant reason to believe that well-meaning, non-evil people on App Review would love to be able to wave a wand and just have things make sense. But that's not the system that's in place.

With the result being busted, unpredictable update schedules and feature Yahtzee slowing down development, not even Apple comes out ahead in practice, at least if the argument that what happens in all apps on their devices reflects on them and their platform is to be applied more than selectively. And after more than a dozen years of this, we have all heard our fill of these stories. If your baby's still teething well into its teens, maybe it's time to reevaluate. (I'm not a doctor, but I suspect spiritual malnourishment.)

The only surprise is that it has taken so long for any authorities to notice the situation and take any sort of action at all. Development turning into what looks and feels like a cruel, counter-productive, systemically capricious parlor game? Welcome, Apple, to the App Store experience; at least you get a €50,000,000 cap for your arbitrary rent.

jwz on Twitter and blocking

Sometimes I think about whether it's worth it to just swallow the pride, stubbornness and resentment and Develop a Social Media Presence™ for Better Engagement with My Personal Trademark® after all, but then I read things like this.

A Machine fed with People

Ars Technica, December 22, 2021:

The Securities and Exchange Commission has rejected Apple’s petition to block three shareholder proposals from going to a vote at its next annual meeting—a win for activists that signals trouble for other US companies hoping the regulator will allow them to fend off unwanted attention.

The resolutions call for detailed reports regarding allegations of forced labor in Apple’s supply chain, explanations of why certain apps are deleted from the App Store in China, and a public report of what risks the iPhone maker could face by allegedly using nondisclosure agreements in the context of workplace harassment and discrimination.

Cher Scarlett, December 22, 2021:

I'm currently unemployed. Apple is threatening to sue me and I have $92,000 in attorneys fees I have no way to pay. I gave up my severance and COBRA.

I did this to hold Apple accountable.

If you are an Apple shareholder, please vote to audit the use of concealment clauses.

Cher has since, happily, been employed, but her story about some recent events is harrowing and hard to boil down to one or a set of quotes.

Contrary to what regular readers may believe, I am an Apple shareholder. I don't own many of them and I am not located in the US, but ever since I read this, I have been fighting windmills trying to find a way that I can register for the meeting and place votes. It seems like most financial institutions here are only interested in the stock market insofar as to give easy marks a way to bet on the stock ticker casino, and are not quite so enamored with details like consequences, accountability and ethics, or at least not with letting the people without supercars have anything to do with it. (My bank told me it would be happy to sign me up for the meeting at a price that would amount to more than half of the shares' value; my broker, through which I hold the shares, just plain "doesn't offer the service".)

If you own Apple stock, please hold Apple accountable by voting at the upcoming shareholder meeting. Please confront the company, whose valuation you are helping inflate to ridiculous proportions, with the consequences of their actions. Please ensure that the self-perpetuating, reality-distancing bubble of innocence through excellence does not see challenges to live up to its own ethical self-image as reasons to throw employees in the corporate wood chipper. There is absolutely no excuse whatsoever for Apple's behavior; those who are breaking out "cultural fit" would go into a different kind of fit if it happened to them, or at any other company.

If corporations are indeed people, they are sociopaths with bastard sprinkles. At their best, they are upside down pyramids, and keeping true and fair and reasonable and not throwing customers or "human resources" to the hounds is only maintainable by constantly trying to tilt them upright.

Bloomberg: Apple Aims to Prevent Defections to Meta With Rare $180,000 Bonuses for Top Talent

Completely unrelatedly, a few words from Pixar co-founder Ed Catmull.


Our humanity is bound up with one another's. We saw it in South Africa: if you carry out a policy that dehumanizes others, in the process, you are dehumanized. You understand how others can say: in order for me to be me, I want to forgive you. Because when you don't forgive, frequently, you feel it in your tum-tum.

Cliff L. Biffle: On Hubris and Humility

Oxide is a neo-Sun Microsystems-esque startup trumpeting open and transparent architecture and practices while also designing the most hilariously oblique product teaser in recent memory (plop down contact-sales levels of cash to buy entire racks of AMD EPYC processors and NVMe storage before knowing what the hell you can even run on these things; I'm not in the target audience, but clearly the target audience has an even bigger need for details).

Oxide uses enough Rust to name the company after it, and the most recently revealed Rust-powered artifact is the operating system Hubris, designed for 32-bit microcontrollers instead of what you might be thinking of. I am completely unaccustomed to this level of programming, but the industry as a whole seems to have breathed a sigh of relief in the past decade that they can embed an ARM core and run Linux on most everything, theoretically allowing for fast and open-ended development but also for many uncertain side effects.

The full Hubris reference is worth reading and explains the eye-openingly fresh approach of baking things into static slots, avoiding asynchronous operations (since synchronous operations at least can't cause unbounded growth) and having a more-or-less crash proof architecture.

(You may also remember Cliff from the excellent post about rewriting his VGA-generating library for microcontrollers from C++ to Rust.)

← Earlier posts