Miscellanea: The War in Iran

This post is a set of my observations on the current war in Iran and my thoughts on the broader strategic implications. I am not, of course, an expert on the region nor do I have access to any special information, so I am going to treat that all with a high degree of uncertainty. But I am a scholar of military history with a fair bit of training and experience in thinking about strategic problems, ancient and modern; it is this ‘guy that analyzes strategy’ focus that I want to bring to this.

I am doing this post outside of the normal Friday order because it is an unusual topic and I want to keep making it clear that even as world events continue to happen – as they must – I do not want this blog to turn into a politics newsletter. I simply haven’t had the time to polish and condense these thoughts for other publication – the hard work of much writing is turning 3,500 words (or 7,500, as it turns out) of thoughts into 1,500 words of a think piece – but I need to get them out of my head and on to the page before it burns out of the back of my head. That said, this post is going to be unavoidably ‘political,’ because as a citizen of the United States, commenting on the war means making a statement about the President who unilaterally and illegally launched it without much public debate and without consulting Congress.

And this war is dumb as hell.

I am going to spend the next however many words working through what I think are the strategic implications of where we are, but that is my broad thesis: for the United States this war was an unwise gamble on extremely long odds; the gamble (that the regime would collapse swiftly) has already failed and as a result locked in essentially nothing but negative outcomes. Even with the regime were to collapse in the coming weeks or suddenly sue for peace, every likely outcome leaves the United States in a meaningfully worse strategic position than when it started.

Now, before we go forward, I want to clarify a few things. First, none of this is a defense of the Iranian regime, which is odious. That said, there are many odious regimes in the world and we do not go to war with all of them. Second, this is a post fundamentally about American strategy or the lack thereof and thus not a post about Israeli strategy. For what it is worth, my view is that Benjamin Netanyahu has is playing an extremely short game because it benefits him politically and personally to do so and there is a significant (but by no means certain) chance that Israel will come to regret the decision to encourage this war. I’ll touch on some of that, but it isn’t my focus. Likewise, this is not a post about the strategy of the Gulf states, who – as is often the sad fate of small states – find their fate largely in the hands of larger powers. Finally, we should keep in mind that this isn’t an academic exercise: many, many people will suffer because of these decisions, both as victims of the violence in the region but also as a consequent of the economic ripples.

But that’s enough introduction. What I want to discuss here is first the extremely unwise gamble that the administration took and then the trap that it now finds itself in, from which there is no comfortable escape.

The Situation

We need to start by establishing some basic facts about Iran, as a country.

First, Iran is a large country. It has a population just over 90 million (somewhat more than Germany, about the same as Turkey), and a land area over more than 600,000 square miles (more than four times the size of Germany). Put another way Iran is more than twice as large as Texas, with roughly three times the population.

More relevantly for us, Iran is 3.5 times larger than Iraq and roughly twice the population. That’s a handy comparison because we know what it took to invade and then hold Iraq: coalition forces peaked at half a million deployed personnel during the invasion. Iran is bigger in every way and so would demand a larger army and thus an absolutely enormous investment of troops, money and fundamentally lives in order to subdue.

Via Wikipedia, a map of Iran. This is a very big country. It also has a lot of very challenging terrain: lots of very arid areas, lots of high mountains and plateaus. It is a hard country to invade and a harder country to occupy.

In practice, given that Iran did not and never has posed an existential threat to the United States (Iran aspires to be the kind of nuclear threat North Korea is and can only vaguely dream of being the kind of conventional threat that Russia is), that meant that a ground invasion of Iran was functionally impossible. While the United States had the raw resources to do it, the political will simply wasn’t there and was unlikely to ever be there.

Equally important, Iran was not a major strategic priority. This is something that in a lot of American policy discourse – especially but not exclusively on the right – gets lost because Iran is an ‘enemy’ (and to be clear, the Iranian regime is an enemy; they attack American interests and Americans regularly) and everyone likes to posture against the enemy. But the Middle East is a region composed primarily of poor, strategically unimportant countries. Please understand me: the people in these countries are not important, but as a matter of national strategy, some places are more important than others. Chad is not an area of vital security interest to the United States, whereas Taiwan (which makes our semiconductors) is and we all know it.

Neither is the Middle East. The entire region has exactly two strategic concerns of note: the Suez Canal (and connected Red Sea shipping system) and the oil production in the Persian Gulf and the shipping system used to export it. So long as these two arteries remained open the region does not matter very much to the United States. None of the region’s powers are more than regional powers (and mostly unimpressive ones at that), none of them can project power out of the region and none of them are the sort of dynamic, growing economies likely to do so in the future. The rich oil monarchies are too small in terms of population and the populous countries too poor.

In short then, Iran is very big and not very important, which means it would both be very expensive to do anything truly permanent about the Iranian regime and at the same time it would be impossible to sell that expense to the American people as being required or justified or necessary. So successive American presidents responded accordingly: they tried to keep a ‘lid’ on Iran at the lowest possible cost. The eventual triumph of this approach was the flawed but useful JCPOA (the ‘Iran deal’) in which Iran in exchange for sanctions relief swore off the pursuit of nuclear weapons (with inspections to verify), nuclear proliferation representing the main serious threat Iran could pose. So long as Iran remained non-nuclear, it could be contained and the threat to American interests, while not zero, could be kept minimal.

That deal was not perfect, I must stress: it essentially gave Iran carte blanche to reinforce its network of proxies across the region, which was robustly bad for Israel and mildly bad for the United States, but since the alternative was – as we’ll see – global economic disruption and the prospect of a large-scale war which would always be far more expensive than the alternatives, it was perhaps the best deal that could have been had. For what it is worth, my own view is that the Obama administration ‘overpaid’ for the concessions of the Iran deal, but the payment having been made, they were worth keeping. Trump scrapped them in 2017 in exchange for exactly nothing, which put us on the course for this outcome (as more than a few people pointed out at the time).

But that was the situation: Iran was big and hostile, but relatively unimportant. The United States is much stronger than Iran, but relatively uninterested in the region apart from the uninterrupted flow of natural gas, oil and other products from the Gulf (note: the one thing this war compromised – the war with Iran has cut off the only thing in this region of strategic importance, compromised the only thing that mattered at the outset), whereas Iran was wholly interested in the region because it lives there. The whole thing was the kind of uncomfortable frontier arrangement powerful states have always had to make because they have many security concerns, whereas regional powers have fewer, more intense focuses.

Which leads us to

The Gamble

The current war is best understood as the product of a fairly extreme gamble, although it is unclear to me if the current administration understood they were throwing the dice in June of 2025 rather than this year. As we’re going to see, this was not a super-well-planned-out affair.

The gamble was this: that the Iranian regime was weak enough that a solid blow, delivered primarily from the air, picking off key leaders, could cause it to collapse. For the United States, the hope seems to have been that a transition could then be managed to leaders perhaps associated with the regime but who would be significantly more pliant, along the lines of the regime change operation performed in Venezuela that put Delcy Rodriguez in power. By contrast, Israel seems to have been content to simply collapse the Iranian regime and replace it with nothing. That outcome would be – as we’ll see – robustly bad for a huge range of regional and global actors, including the United States, and it is not at all clear to me that the current administration understood how deeply their interests and Israel’s diverged here.

In any case, this gamble was never very likely to pay off for reasons we have actually already discussed. The Islamic Republic of Iran is not a personalist regime where the death of a single leader or even a group of leaders is likely to cause collapse: it is an institutional regime where the core centers of power (like the Iran Revolutionary Guards Corps or IRGC) are ‘bought in’ from the bottom to the top because the regime allows them access to disproportionate resources and power. Consequently if you blow up the leader, they will simply pick another one – in this case they picked the previous leader’s son, so the net effect of the regime change effort was to replace Supreme Leader Khamenei with Supreme Leader Khamenei…Jr.

But power in the Iranian regime isn’t wielded by the Supreme Leader alone either: the guardian council has power, the council of experts that select the Supreme Leader have power, the IRGC has power, the regular military has some power (but less than the IRGC), the elected government has some power (but less than the IRGC or the guardian council) and on and on. These sorts of governments can collapse, but not often. It certainly did not help that the United States had stood idle while the regime slaughtered tens of thousands of its opponents, before making the attempt, but I honestly do not think the attempt would have worked before.

The gamble here was that because the regime would simply collapse on cue, the United States could remove Iran’s regional threat without having to commit to a major military operation that might span weeks, disrupt global energy supplies, expand over the region, cost $200 billion dollars and potentially require ground operations. Because everyone knew that result was worse than the status quo and it would thus be really foolish to do that.

As you can tell, I think this was a bad gamble: it was very unlikely to succeed but instead always very likely to result in a significantly worse strategic situation for the United States, but only after it killed thousands of people unnecessarily. If you do a war where thousands of people die and billions of dollars are spent only to end up back where you started that is losing; if you end up worse than where you started, well, that is worse.

The problem is that once the gamble was made, once the dice were cast, the Trump administration would be effectively giving up control over much of what followed.

And if administration statements are to be believed, that decision was made, without knowing it, in June of last year. Administration officials, most notably Marco Rubio, have claimed that the decision was made to attempt this regime change gamble in part because they were aware that Israel was about to launch a series of decapitation strikes and they assessed – correctly, I suspect – that the ‘blowback’ would hit American assets (and energy production) in the region even if the United States did nothing. Essentially, Iran would assume that the United States was ‘in’ on the attack.

That is notable because Iran did not assume that immediately during the Twelve-Day War in 2025. Indeed, Iran did not treat the United States as a real co-belligerent even as American aircraft were actively intercepting Iranian missiles aimed at Israel. And then the United States executed a ‘bolt from the blue’ surprise attack on Iran’s nuclear facilities on June 22, 2025, catching Iran (which had been attempting to negotiate with the United States) by surprise.

The problem with that strike is that attacking in that way, at that time, meant that Iran would have to read any future attacks by Israel as likely also involving attacks by the United States. Remember, the fellow getting bombed does not get to carefully inspect the flag painted on the bomber: stuff blows up and to some degree the party being attacked has to rapidly guess who is attacking them. We’ve seen this play out repeatedly over the last several weeks where things explode in Iran and there is initially confusion over if the United States or Israel bombed them. But in the confusion of an initial air attack, Iran’s own retaliatory capability could not sit idle, waiting to be destroyed by overwhelming US airpower: it is a ‘wasting’ use-it-or-lose-it asset.

So Iran would now have to assume that an Israeli air attack was also likely an American air attack. It was hardly an insane assumption – evidently according to the Secretary of State, American intelligence made the exact same assessment.

But the result was that by bombing the Iranian nuclear facilities in June of 2025, the Trump administration created a situation where merely by launching a renewed air campaign on Iran, Israel could force the United States into a war with Iran at any time.

It should go without saying that creating the conditions where the sometimes unpredictable junior partner in a security relationship can unilaterally bring the senior partner into a major conflict is an enormous strategic error, precisely because it means you end up in a war when it is in the junior partner’s interests to do so even if it is not in the senior partner’s interests to do so.

Which is the case here. Because…

The Trap

Once started, a major regional war with Iran was always likely to be something of a ‘trap,’ – not in the sense of an ambush laid by Iran – but in the sense of a situation that, once entered, cannot be easily left or reversed.

The trap, of course, is the Strait of Hormuz and the broader Persian Gulf. The issue is that an enormous proportion of the world’s shipping, particularly energy (oil, liquid natural gas) and fertilizer components (urea) passes through this body of water. The Gulf is narrow along its whole length, extremely narrow in the Strait and bordered by Iran on its northern shore along its entire length. Iran can thus threaten the whole thing and can do so with cheap, easy to conceal, easy to manufacture systems.

And the scale here is significant. 25% of the world’s oil (refined and crude), 20% of its liquid natural gas and around 20% of the world’s fertilizer passes through the Strait of Hormuz which links the Persian Gulf to the Indian Ocean. Any of those figures would be enough for a major disruption to trigger huge economic ripples. And even worse there are only very limited, very insufficient alternative transport options. Some Saudi oil (about half) can move via pipeline to the Red Sea and some Emirati oil can move via pipeline to Fujairah outside of the Strait, but well over half of the oil and effectively all of the natural gas and fertilizer ingredients are trapped if ships cannot navigate the strait safely.

And here we come back to what Clausewitz calls the political object (drink!). Even something like a 50% reduction in shipping in the Gulf, were it to persist long term, would create strong global economic headwinds which would in turn arrive in the United States in the form of high energy prices and a general ‘supply shock’ that has, historically at least, not been politically survivable for the party in power.

And so that is the trap. While the United States can exchange tit-for-tat strikes with Iran without triggering an escalation spiral, once you try to collapse the regime, the members of the regime (who are making the decisions, not, alas, the Iranian people) have no reason to back down and indeed must try to reestablish deterrence. These are men who are almost certainly dead or poor-in-exile if the regime collapses. Moreover the entire raison d’être of this regime is resistance to Israel and the United States: passively accepting a massive decapitation attack and not responding would fatally undermine the regime’s legitimacy with its own supporters, leading right back to the ‘dead-or-poor-and-exiled’ problem.

Iran would have to respond and thus would have to try to find a way to inflict ‘pain’ on the United States to force the United States to back off. But whereas Israel is in reach of some Iranian weapons, the United States is not. Iran would thus need a ‘lever’ closer to home which could inflict costs on the United States. For – and I must stress this – for forty years everyone has known this was the strait. This is not a new discovery, we did this before in the 1980s. “If the regime is threatened, Iran will try to close the strait to exert pressure” is perhaps one of the most established strategic considerations in the region. We all knew this.

But the trap here is two sided: once the strait was effectively closed, the United States could not back off out of the war without suffering its own costs. Doing so, for one, would be an admission of defeat, politically damaging at home. Strategically, it would affirm Iran’s control over the strait, which would be a significantly worse outcome than not having done the war in the first place. And simply backing off might not fully return shipping flows: why should Iran care if the Gulf states can export their oil? An Iran that fully controls the strait, that had demonstrated it could exclude the United States might intentionally throttle everyone else’s oil – even just a bit – to get higher prices for its own or to exert leverage.

So once the strait was closed, the United States could not leave until it was reopened, or at least there was some prospect of doing so.

The result is a fairly classic escalation trap: once the conflict starts, it is extremely costly for either side to ever back down, which ensures that the conflict continues long past it being in the interests of either party. Every day this war goes on make both the United States and Iran weaker, poorer and less secure but it is very hard for either side to back down because there are huge costs connected to being the party that backs down. So both sides ‘escalate to de-escalate’ (this phrase is generally as foolish as it sounds), intensifying the conflict in an effort to hit hard enough to force the other guy to blink first. But since neither party can back down unilaterally and survive politically, there’s practically no amount of pain that can force them to do so.

Under these conditions, both sides might seek a purely military solution: remove the ability of your opponent to do harm in order to create the space to declare victory and deescalate. Such solutions are elusive. Iran simply has no real way of meaningfully diminishing American offensive power: they cannot strike the airfields, sink the carriers or reliably shoot down the planes (they have, as of this writing, managed to damage just one aircraft).

For the United States, a purely military solution is notionally possible: you could invade. But as noted, Iran is very, very big and has a large population, so a full-scale invasion would be an enormous undertaking, larger than any US military operation since the Second World War. Needless to say, the political will for this does not exist. But a ‘targeted’ ground operation against Iran’s ability to interdict the strait is also hard to concieve. Since Iran could launch underwater drones or one-way aerial attack drones from anywhere along the northern shore the United States would have to occupy many thousands of square miles to prevent this and of course then the ground troops doing that occupying would simply become the target for drones, mortars, artillery, IEDs and so on instead.

One can never know how well prepared an enemy is for something, but assuming the Iranians are even a little bit prepared for ground operations, any American force deployed on Iranian soil would end up eating Shahed and FPV drones – the sort we’ve seen in Ukraine – all day, every day.

Meanwhile escort operations in the strait itself are also deeply unpromising. For one, it would require many more ships, because the normal traffic through the strait is so large and because escorts would be required throughout the entire Gulf (unlike the Red Sea crisis, where the ‘zone’ of Houthi attacks was contained to only the southern part of the Red Sea). But the other problem is that Iran possesses modern anti-ship missiles (AShMs) in significant quantity and American escort ships (almost certainly Arleigh Burke-class destroyers) would be vulnerable escorting slow tankers in the constrained waters of the strait.

It isn’t even hard to imagine what the attack would look like: essentially a larger, more complex version of the attack that sunk the Moskva, to account for the Arleigh Burke’s better air defense. Iran would pick their moment (probably not the first transit) and try to distract the Burke, perhaps with a volley of cheap Shahed-type drones against a natural gas tanker, before attempting to ambush the Burke with a volley of AShMs, probably from the opposite direction. The aim would be to create just enough confusion that one AShM slipped through, which is all it might take to leave a $2.2bn destroyer with three hundred American service members on board disabled and vulnerable in the strait. Throw in speed-boats, underwater drones, naval mines, fishing boats pretending to be threats and so on to maximize confusion and the odds that one of perhaps half a dozen AShMs slips through.

And if I can reason this out, Iran – which has been planning for this exact thing for forty years certainly can. Which is why the navy is not eager to run escort.

But without escorts or an end to the conflict, shipping in the Gulf is not going to return to normal. Container ships are big and hard to sink but easy to damage. But while crude oil tankers are hard to set fire to, tankers carrying refined petroleum products are quite easy to set fire to, as we’ve seen, while tankers of liquid natural gas (LNG carriers) are essentially floating bombs.

The result is that right now it seems that the only ships moving through the strait are those Iran permits and they appear to have a checkpoint system, turning away ships they do not approve of. A military solution this problem is concievable, but extremely difficult to implement practically, requiring either a massive invasion of Iran’s coastline or an enormous sea escort operation. It seems more likely in both cases that the stoppage will continue until Iran decides it should stop. The good news on that front is that Iran benefits from the export of oil from the Gulf too, but the bad news is that while they are permitting some traffic, precisely because high energy prices are their only lever to make the United States and Israel stop killing them, they are unlikely to approve the transit of the kinds of numbers of ships which would allow energy markets to stabilize.

Just as a measure here, as I write this apparently over the last three days or so Iran has let some twenty ships through their checkpoint, charging fees apparently to do so. That may sound like a lot, but it is a quantity that, compared to the normal operation of the strait, is indistinguishable from zero. The Strait of Hormuz normally sees around 120 transits per day (including both directions). That scale should both explain why five or six ships a day paying Iran to transit is not going to really impact this equation – that’s still something like a 95% reduction in traffic (and all of the Iran-approved transits are outbound, I think) – but also why a solution like ‘just do escorts’ is so hard. Whatever navies attempted an escort solution would need to escort a hundred ships a day, with every ship being vulnerable at every moment from when it entered the Strait to when it docked for loading or offloading to its entire departure route. All along the entire Gulf coastline. All the time.

Likewise, even extremely punishing bombings of Iranian land-based facilities are unlikely to wholly remove their ability to throw enough threat into the Strait that traffic remains massively reduced. Sure some ship owners will pay Iran and others will take the risk, but if traffic remains down 90% or just 50% that is still a massive, global energy disruption. And we’ve seen with the campaign against the Houthis just how hard it is with airstrikes to compromise these capabilities: the United States spent more than a year hammering the Houthis and was never able to fully remove their attack capabilities. Cargo ships are too vulnerable and the weapons with which to attack them too cheap and too easy to hide.

There is a very real risk that this conflict will end with Iran as the de facto master of the Strait of Hormuz and the Persian Gulf, having demonstrated that no one can stop them from determining by force which ships pass and which ships cannot. That would, in fact, be a significant strategic victory for Iran and an enormous strategic defeat for the United States.

Peace Negotiations?

Which brings us to the question of strategic outcomes. As the above has made clear, I think the Trump administration erred spectacularly in starting this war. It appears as though, in part pressured by Israel, but mostly based on their own decisions (motivated, it sure seems, by the ease of the Venezuela regime-change) they decided to go ahead on the hopeful assumption the regime would collapse and as a result did not plan for the most likely outcome (large war, strait closure), despite this being the scenario that political leadership (Trump, Hegseth, Rubio) were warned was most likely.

The administration now appears to be trying to extricate itself from the problem has created, but as I write this, is currently still stuck in the ‘trap’ above. Now this is a fast moving topic, so by the time you actually read this the war well could have ended in a ceasefire (permanent or temporary) or intensified and expanded. Who knows! As I am writing the Trump administration claims that they are very near a negotiated ceasefire, while the Iranian regime claims they have rejected both of the United States’ interlocutors as unsuitable (‘backstabbing’ negotiators), while reporting suggests Israel may feel it in their interests to blow up any deal if the terms are too favorable to Iran.

That is a lot of uncertainty! But I think we can look at some outcomes here both in terms of what was militarily achieved, what the consequences of a ‘deal’ might be and what the consequences of not having a deal might be.

The Trump administration has offered a bewildering range of proposed objectives for this war, but I think it is fair to say the major strategic objectives have not been achieved. Initially, the stated objective was regime change or at least regime collapse; neither has occurred. The regime very much still survives and if the war ends soon it seems very plausible that the regime – able to say that it fought the United States and made the American president sue for peace – will emerge stronger, domestically (albeit with a lot of damage to fix and many political problems that are currently ‘on pause’ coming ‘un-paused’). The other core American strategic interest here is Iran’s nuclear program, the core of which is Iran’s supply of roughly 500kg of highly enriched uranium; no effort appears to have been made to recover or destroy this material and it remains in Iranian hands. Actually destroying (dispersing, really) or seizing this material by military force would be an extremely difficult operation with a very high risk of failure, since the HEU is underground buried in facilities (mostly Isfahan) in the center of the country. Any sort of special forces operation would thus run the risk of being surrounded and outnumbered very fast, even with ample air support, while trying to extract half a ton of uranium stored in gas form in heavy storage cylinders.

When the United States did this in Kazakhstan, removing about 600kg (so roughly the same amount) it required the team to spend 12 hours a day every day for a month to remove it, using multiple heavy cargo planes. And that facility was neither defended, nor buried under rubble.

Subsequently, administration aims seem to have retreated mostly to ‘fixing the mess we made:’ getting Iran to stop shooting and getting the Strait of Hormuz reopened and the ships moving again. They do seem to be asking for quite a bit more at the peace table, but the record of countries winning big concessions at the peace table which they not only haven’t secured militarily but do not appear able to do so is pretty slim.

Now it is possible that Iran blinks and takes a deal sooner rather than later. But I don’t think it is likely. And the simple reason is that Iran probably feels like it needs to reestablish deterrence. This is the second sudden bombing campaign the country has suffered in as many years – they do not want there to be a third next year and a fourth the year after that. But promises not to bomb them don’t mean a whole lot: establishing deterrence here means inflicting quite a lot of pain. In practice, if Iran wants future presidents not to repeat this war, the precedent they want to set is “attacking Iran is a presidency-ending mistake.” And to do that, well, they need to end a presidency or at least make clear they could have done.

Iran is thus going to very much want a deal that says ‘America blinked’ on the tin, which probably means at least some remaining nuclear program, a de facto Iranian veto on traffic in the strait and significant sanctions relief, along with formal paper promises of no more air strikes. That’s going to be a hard negotiating position to bridge, especially because Iran can ‘tough it out’ through quite a lot of bombing.

And I do want to stress that. There is a frequent mistake, often from folks who deal in economics, to assume that countries will give up on wars when the economics turn bad. But countries are often very willing to throw good money after bad even on distant wars of choice. For wars close to home that are viewed as existential? Well, the ‘turnip winter‘ where Germans started eating food previous thought fit only for animals (a result of the British blockade) began in 1916. The war did not end in 1916. It did not end in 1917. It did not end until November, 1918. Food deprivation and starvation in Germany was real and significant and painful for years before the country considered surrender. Just because the war is painful for Iran does not mean the regime will cave quickly: so long as they believe the survival of the regime is at stake, they will fight on.

There is a great deal of ruin in a nation.

Strategic Implications

So my conclusion here is that the United States has not yet achieved very much in this war on a strategic level. Oh, tactically, the United States has blown up an awful lot of stuff and done so with very minimal casualties of its own. But countries do not go to war simply to have a warwell, stupid fascist countries do, which is part of why they tend to be quite bad at warthey go to war to achieve specific goals and end-states.

None of the major goals here – regime change, an end to Iran’s nuclear ambitions – have been achieved. If the war ends tomorrow in a ‘white peace,’ Iran will reconstitute its military and proxies and continue its nuclear program. It is in fact possible to display astounding military skill and yet, due to strategic incoherence, not accomplish anything.

So the true, strategic gains here for all of the tactical effectiveness displayed, are functionally nil. Well what did it cost?

Well, first and foremost, to date the lives of 13 American soldiers (290 more WIA), 24 Israelis (thousands more injured), at least a thousand civilian deaths across ‘neutral’ countries (Lebanon mostly, but deaths in Kuwait, Iraq, Qatar, Bahrain, Saudi Arabia, etc) and probably at least a thousand if not more Iranian civilians (plus Iranian military losses). The cost of operations for the United States is reportedly one to two billion dollars a day, which adds up pretty quickly to a decent chunk of change.

All of the military resources spent in this war are in turn not available for other, more important theaters, most obviously the Asia-Pacific (INDOPACOM), but of course equally a lot of these munitions could have been doing work in Ukraine as well. As wars tend to do, this one continues to suck in assets as it rumbles on, so the American commitment is growing, not shrinking. And on top of spent things like munitions and fuel, the strain on ships, air frames and service personnel is also a substantial cost: it turns out keeping a carrier almost constantly running from one self-inflicted crisis to the next for ten months is a bad idea.

You could argue these costs would be worthwhile it they resulted in the destruction of Iran’s nuclear program – again, the key element here is the HEU, which has not been destroyed – or of the Iranian regime. But neither of those things have been achieved on the battlefield, so this is a long ledger of costs set against…no gains. Again, it is not a ‘gain’ in war simply to bloody your enemy: you are supposed to achieve something in doing so.

The next side of this are the economic consequences. Oil and natural gas have risen in price dramatically, but if you are just watching the commodity ticker on the Wall Street Journal, you may be missing some things. When folks talk about oil prices, they generally do so via either $/bbl (West Texas Intermediate – WTI – one-month front-month futures) or BRN00 (Brent Crude Oil Continuous Contracts). These are futures contracts, meaning the price being set is not for a barrel of oil right now but for a barrel of oil in the future; we can elide the sticky differences between these two price sets and just note that generally the figure you see is for delivery in more-or-less one month’s time. Those prices have risen dramatically (close to doubled), but may not reflect the full economic impact here: as the ‘air bubble’ created by the sudden stop of oil shipments expands, physical here-right-now prices for oil are much higher in many parts of the world and still rising.

Essentially, the futures markets are still hedging on the idea that this war might end and normal trade might resume pretty soon, a position encouraged by the current administration, which claims it has been negotiating with Iran (Iran denied the claim). The tricky thing here is that this is a war between two governments – the Trump administration and the Iranian regime – which both have a clear record of lying a lot. The Trump administration has, for instance, repeatedly claimed a peace deal between Ukraine and Russia was imminent, and that war remains ongoing. The markets are thus forced to try and guess everyone’s actions and intentions from statements that are unreliable. Cards on the table, I think the markets are underestimating the likelihood that this conflict continues for some time. Notably, the United States is moving assets into theater – an MEU, elements of the 82 Airborne – which will take some time to arrive (two weeks for the MEU which is still about a week out as I write this) and set up for operations.

In either case, while I am not an expert on oil extraction or shipping, what I have seen folks who are experts on those things say is that the return of normal operations after this war will be very slow, often on the order of ‘every extra week of conflict adds a month to recovery’ (which was Sal Mercogliano’s rule of thumb in a recent video). If the war ends instantly, right now, ship owners will first have to determine that the strait is safe, then ships will have to arrive and begin loading to create space in storage to start up refineries to create space in storage to start up oil wells that have been ‘shut in,’ some of which may require quite a bit of doing to restart. Those ships in turn have to spend weeks sailing to the places that need these products, where some of the oil and LNG is likely to be used to refill stockpiles rather than immediately going out to consumers. For many products, refineries and production at the point of sale – fertilizer plants, for instance – will also need to be restarted. Factory restarts can be pretty involved tasks.

This recovery period doesn’t just get pushed out by 24 hours each day it gets longer as more production is forced to shut down or is damaged in the fighting. As I write this, futures markets for the WTI seem to be expecting oil prices to remain elevated (above $70 or so) well into 2028.

Meanwhile, disruption of fertilizer production, which relies heavily on natural gas products, has the potential to raise food prices globally. Higher global food prices – and food prices have already been elevated by the impact of the War in Ukraine – are pretty strongly associated with political instability in less developed countries. After all, a 25% increase in the price of food in a rich country is annoying – you have to eat more cheaper foods (buy more ramen, etc.). But in a poor country it means people go hungry because they cannot afford food and hungry, desperate people do hungry, desperate things. A spike in food prices was one of the core causes of the 2010 Arab Spring which led in turn to the Syrian Civil War, the refugee crisis of which significantly altered the political landscape of Europe.

Via Wikipedia, a chart of the food price index, with the spikes on either side of 2010 clearly visible; they are thought to have contributed to the intense political instability of those years (alongside the financial crisis).

I am not saying this will happen – the equally big spike in food prices from the Ukraine War has not touched off a wave of revolutions – but that it increases the likelihood of chaotic, dynamic, unsettled political events.

But it does seem very clear that this war has created a set of global economic headwinds which will have negative repercussions for many countries, including the United States. The war has not, as of yet, made Americans any safer – but it has made them poorer.

Then there are the political implications. I think most folks understand that this war was a misfire for the United States, but I suspect it may end up being a terrible misfire for Israel as well. Israeli security and economic prosperity both depend to a significant degree on the US-Israeli security partnership and this war seems to be one more step in a process that very evidently imperils that partnership. Suspicion of Israel – which, let us be honest, often descends into rank, bigoted antisemitism, but it is also possible to critique Israel, a country with policies, without being antisemitic – is now openly discussed in both parties. More concerning is polling suggesting that not only is Israel underwater with the American public, but more Americans sympathize with Palestinians than Israelis for the first time in American history.

Again, predictions are hard, especially about the future, but it certainly seems like there is an open door to a future where this war is the final nail in the coffin of the American-Israeli security partnership, as it becomes impossible to sustain in the wake of curdling American public opinion. That would be a strategic catastrophe for Israel if it happened. On the security side, with Israel has an independent nuclear deterrent and some impressive domestic military-industrial production the country is not capable of designing and manufacturing the full range of high-end hardware that it relies on to remain militarily competitive despite its size. There’s a reason Israel flies F-35s. But a future president might well cut off spare parts and maintainers for those F-35s, refuse to sell new ones, refuse to sell armaments for them, and otherwise make it very difficult for Israel to acquire superior weapons compared to its regional rivals.

Economic coercion is equally dangerous: Israel is a small, substantially trade dependent country and its largest trading partner is the United States, followed by the European Union. But this trade dependency is not symmetrical: the USA and EU are hugely important players in Israel’s economy but Israel is a trivial player in the US and EU economies. Absent American diplomatic support then, the threat of economic sanctions is quite dire: Israel is meaningfully exposed and the sanctions would be very low cost for the ‘Status Quo Coalition’ (assuming the United States remains a member) to inflict under a future president.

A war in which Israel cripples Iran in 2026 but finds itself wholly diplomatically isolated in 2029 is a truly pyrrhic victory. As Thucydides might put it, an outcome like that would be an “example for the world to meditate upon.” That outcome is by no means guaranteed, but every day the war grinds on and becomes less popular in the United States, it becomes more likely.

But the United States is likewise going to bear diplomatic costs here. Right now the Gulf States have to shelter against Iranian attack but when the dust settles they – and many other countries – will remember that the United States unilaterally initiated by surprise a war of choice which set off severe global economic headwinds and uncertainty. Coming hot on the heels of the continuing drama around tariffs, the takeaway in many places may well be ‘Uncle Sam wants you to be poor,’ which is quite a damaging thing for diplomacy. And as President Trump was finding out when he called for help in the Strait of Hormuz and got told ‘no’ by all of our traditional allies, it is in fact no fun at all to be diplomatically isolated, no matter how powerful you are.

Of course the war, while quickly becoming an expensive, self-inflicted wound for the United States has also been disastrous for Iran. I said this at the top but I’ll say it again: the Iranian regime is odious. You will note also I have not called this war ‘unprovoked’ – the Iranian regime has been provoking the United States and Israel via its proxies almost non-stop for decades. That said, it is the Iranian people who will suffer the most from this war and they had no choice in the matter. They tried to reject this regime earlier this year and many were killed for it. But I think it is fair to say this war has been a tragedy for the Iranian people and a catastrophe for the Iranian regime.

And you may then ask, here at the end: if I am saying that Iran is being hammered, that they are suffering huge costs, how can I also be suggesting that the United States is on some level losing?

And the answer is simple: it is not possible for two sides to both win a war. But it is absolutely possible for both sides to lose; mutual ruin is an option. Every actor involved in this war – the United States, Iran, arguably Israel, the Gulf states, the rest of the energy-using world – is on net poorer, more vulnerable, more resource-precarious as a result.

In short, please understand this entire 7,000+ word post as one primal scream issued into the avoid at the careless, unnecessary folly of the decision to launch an ill-considered war without considering the obvious, nearly inevitable negative outcomes which would occur unless the initial strikes somehow managed to pull the inside straight-flush. They did not and now we are all living trapped in the consequences.

Maybe the war will be over tomorrow. The consequences will last a lot longer.

Ryan Hauser interviews me in print

Here is the link, here is one excerpt:

What was your path into AI, and what are you working on now?

I first became interested in AI when I saw the chess computer Tinker Belle wheeled into a New Jersey chess tournament in I think 1975. I followed the Kasparov matches closely, and the more general progress of AI in chess. I read chess master David Levy telling me that chess was far too intuitive for computers ever to do well. He was wrong, and then I realized that AI could be intuitive and creative too. That was a long time ago.

In 2013 I published a book on the future of AI called Average is Over. I feel it has predicted our current time very accurately. I also taught Asimov’s I, Robot – a work far ahead of its time – for twenty years.

Right now I am simply working to keep afloat and to stay abreast of recent AI developments. I blog and write columns on the topic frequently, and have regular visits to the major labs. I encourage universities to experiment with AI education.

I mention William Byrd and Paul McCartney as well.

The post Ryan Hauser interviews me in print appeared first on Marginal REVOLUTION.

       

Comments

Related Stories

 

Kona Storms Flood Oʻahu

January 25, 2026
March 14, 2026
Coastal towns and green farmland are unaffected by floodwater, and the ocean is mostly blue.
Coastal towns and green farmland are unaffected by floodwater, and the ocean is mostly blue.
NASA Earth Observatory / Lauren Dauphin
The same area, with brown floodwater pooling across farmland between Mokuleia and Waialua, with a red-brown plume spreading into the coastal ocean.
The same area, with brown floodwater pooling across farmland between Mokuleia and Waialua, with a red-brown plume spreading into the coastal ocean.
NASA Earth Observatory / Lauren Dauphin
Coastal towns and green farmland are unaffected by floodwater, and the ocean is mostly blue.
Coastal towns and green farmland are unaffected by floodwater, and the ocean is mostly blue.
NASA Earth Observatory / Lauren Dauphin
The same area, with brown floodwater pooling across farmland between Mokuleia and Waialua, with a red-brown plume spreading into the coastal ocean.
The same area, with brown floodwater pooling across farmland between Mokuleia and Waialua, with a red-brown plume spreading into the coastal ocean.
NASA Earth Observatory / Lauren Dauphin
January 25, 2026
March 14, 2026

January 25, 2026 – March 14, 2026

Floodwaters pool in neighborhoods and on farmland, while a plume of sediment spreads into the coastal ocean (right) on March 14, 2026, after the first of two kona lows dropped copious rain on O’ahu, Hawaii. The same location is pictured free of floodwater (left) on January 25, 2026. Both images were acquired with the OLI (Operational Land Imager) on Landsat 9.

Back-to-back low-pressure systems struck Hawaii in March 2026, delivering some of the worst flooding the state has seen in decades. The subtropical weather systems—called kona lows near Hawaii—siphoned moisture from the tropics, fueling slow-moving thunderstorms with torrential, destructive rains.

The National Weather Service reported rainfall totals of 5 to 10 inches (13 to 26 centimeters) throughout the state between March 11 and 15, with some areas seeing more than 30 inches. Weather stations in Honolulu, Hilo, Līhuʻe, and Kahului all broke daily rainfall records.

The satellite image on the right shows swamped neighborhoods and farmland between Mokuleia and Waialua on the island of O’ahu on March 14, 2026, after the first and more destructive storm system hit the island. Plumes of suspended sediment have discolored waters in and around Kaiaka Bay. Hawaii’s volcanic Hilo soils are known for being red due to the high levels of iron and aluminum oxide that accumulate as they weather. For comparison, the image on the left shows the same area on January 25, 2026, before the deluge.

Preliminary assessments indicate that hundreds of homes in O’ahu sustained damage. Farmers on the island and across the state reported millions of dollars in damage, according to news reports. The storm produced widespread wind gusts between 60 and 75 miles (97 and 121 kilometers) per hour, with gusts in some places reaching 100 miles per hour. As many as 115,000 O’ahu residents faced power outages in the storm’s aftermath.

While the most intense rains had subsided by March 24, forecasters are continuing to monitor unsettled weather and the possibility of more flash floods in the coming days.

NASA’s Disasters Response Coordination System has been activated to support the Hawaii Emergency Management Agency’s response to the storms. The team will be posting maps and data products on its open-access mapping portal as new information becomes available.

NASA Earth Observatory images by Lauren Dauphin, using Landsat data from the U.S. Geological Survey. Story by Adam Voiland.

References & Resources

You may also be interested in:

Stay up-to-date with the latest content from NASA as we explore the universe and discover more about our home planet.

A Winter Blanket Covers North Carolina
3 min read

In late January 2026, a strong, moisture-laden storm dropped snow across nearly the entire state, spanning from the Appalachians to…

Article
Wave of Dust Rolls Through Texas
3 min read

An advancing cold front kicked up a sharp line of sand and other small particles that swept over the high…

Article
Snow Buries the U.S. Interior and East
2 min read

Satellites observed a frozen landscape across much of the country after a massive winter storm.

Article

The post Kona Storms Flood Oʻahu appeared first on NASA Science.

Fusion engine for missile warning lacks a government dataset

WASHINGTON – National missile warning and tracking could be improved if all government agencies shared the raw data they gather. “There are agencies that have sensors that can provide data that would be very supplemental to the missile-defense mission, but they designed it for a completely different purpose,” Devin Elder, Northrop Grumman Strategic Space Systems […]

The post Fusion engine for missile warning lacks a government dataset appeared first on SpaceNews.

Space Development Agency slows satellite launches to focus on on-orbit performance

The agency’s acting director says checkout, orbit-raising and network testing are pacing the program

The post Space Development Agency slows satellite launches to focus on on-orbit performance appeared first on SpaceNews.

NASA halts work on Gateway to develop a lunar base

NASA lunar base

NASA is halting plans to develop the lunar Gateway and instead focusing on the development of a lunar base.

The post NASA halts work on Gateway to develop a lunar base appeared first on SpaceNews.

Space Force officer shares intelligence on threats to space systems

WASHINGTON – Electronic warfare is a growing threat to U.S. space systems, according to a March 23 unclassified briefing by U.S. Space Force Chief Master Sergeant Ron Lerch, senior enlisted advisor to the Deputy Chief of Space Operations for Intelligence. During the Satellite 2026 presentation, Lerch discussed technologies designed to disrupt proliferated low-Earth orbit (PLEO) […]

The post Space Force officer shares intelligence on threats to space systems appeared first on SpaceNews.

SpaceEye-T: 25 cm Satellite Imagery and Tasking Now Available Through Pacific Geomatics Limited

Victoria, Canada / Daejeon, South Korea – March 24, 2026 – Canadian and international organizations can now access SpaceEye-T imagery and tasking services through Pacific Geomatics Limited, one of the […]

The post SpaceEye-T: 25 cm Satellite Imagery and Tasking Now Available Through Pacific Geomatics Limited appeared first on SpaceNews.

SES orders 28 satellites from K2 Space for next-gen MEO network

SES has ordered an initial 28 satellites from manufacturing startup K2 Space for meoSphere, a next-generation MEO network slated to be in operation by 2030.

The post SES orders 28 satellites from K2 Space for next-gen MEO network appeared first on SpaceNews.

Geopolitical shifts bring opportunities and headaches for satellite execs

A shifting geopolitical landscape is driving huge business opportunities for satcoms but also bringing new supply chain and regulatory challenges, industry executives said March 24 at the Satellite Conference in Washington, D.C.

The post Geopolitical shifts bring opportunities and headaches for satellite execs appeared first on SpaceNews.

Moog taps Redwire to provide solar arrays for Meteor

ELSA array

WASHINGTON — Redwire announced the first award for its new solar arrays, a $12.8 million contract from Moog. Under the contract announced March 24, Redwire will deliver Extensible Low-Profile Solar Array  (ELSA) wings for Moog’s Meteor satellite bus ordered by an undisclosed national security customer. ELSA unveiled earlier this month, is designed to provide 50% more […]

The post Moog taps Redwire to provide solar arrays for Meteor appeared first on SpaceNews.

OrbitsIQ Global Announces Breakthrough in Space-Based IoT Connectivity

orbitsiq logo square

Washington, D.C., March 24, 2026 – OrbitsIQ Global (OIQ), an innovator in AI-driven secure connectivity across terrestrial and satellite networks, today announced a major technological milestone achieved in collaboration with […]

The post OrbitsIQ Global Announces Breakthrough in Space-Based IoT Connectivity appeared first on SpaceNews.

From missions to systems: The architecture enabling a sustained lunar economy

The conversation around humanity’s return to the moon is often viewed through launches, landers and national programs. But, industry leaders say that framework is becoming outdated. Instead, they point to […]

The post From missions to systems: The architecture enabling a sustained lunar economy appeared first on SpaceNews.

China’s Astronstone raises $29 million for reusable rocket with chopstick-style recovery

Astronstone's stainless steel rocket stage and AS-1 scale model inside a production facility in China, featuring prominent weld lines and branding; a large banner on the wall displays Chinese characters.

Astronstone, one of China’s younger launch startups, has secured new funding as it builds toward the first flight of its reusable AS-1 rocket. 

The post China’s Astronstone raises $29 million for reusable rocket with chopstick-style recovery appeared first on SpaceNews.

Markets are gripped by an alarming cognitive dissonance

Investors all seem to think everyone else is wrong

China’s new masterplan for its tech economy in 2030 and beyond

The Communist Party’s technological ambition is breathtaking

The science of Artemis 2

Artemis 2 is back on the pad for a launch as soon as next week. Jeff Foust reports that while the mission is primarily a test flight, there will be opportunities to do lunar and other science along the way.

NavIC: India's "jinxed" navigational program, or a cornerstone of India's misplaced space priorities?

A recent in-orbit failure has deprived India of a functioning navigation satellite system. Ajey Lele says what appears to be bad luck may instead be a sign of management flaws.

Zarya: the Super-Soyuz that only lived twice

In the 1980s, the Soviet Union proposed a spacecraft that could be a successor to the Soyuz, only to see it cancelled, revived, and cancelled again. Maks Skiendzielewski examines the history of the Zarya spacecraft.

The legal aspects of outer space settlers and settlements

Any future with humans living permanently in space raises some key legal issues. Dennis O'Brien explores those issues, from existing space treaties to the prospects of independent settlements.

Review: Stuck in Space

NASA astronaut Butch Wilmore commanded the Starliner crewed test flight in 2024 whose problems turned a brief visit to the International Space Station to a nine-month stay. Jeff Foust reviews Wilmore's memoir that mixes his account of that mission with other aspects of his life.

NASA outlines ambitious $20 billion plan for moon base

NASA Administrator Jared Isaacman speaks during an event where NASA is outlining how the agency is executing President Donald J. Trump’s National Space Policy and accelerating preparations for America’s return to the surface of the Moon by 2028, Tuesday, March 24, 2026, at the Mary W. Jackson NASA Headquarters building in Washington. During the event NASA leadership provided updates on mission priorities, including sending the first astronauts to the lunar surface in more than 50 years, establishing the initial elements of a permanent lunar base, getting America underway in space on nuclear propulsion, and other objectives. Image: NASA/Bill Ingalls

With the Artemis 2 around-the-moon launch just eight days away, NASA announced ambitious long-range plans Tuesday to spend $20 billion over the next seven years to build a moon base near the lunar south pole featuring habitats, pressurized rovers and nuclear power systems.

NASA Administrator Jared Isaacman kicked off a series of meetings with contractors at NASA Headquarters in Washington saying he envisioned launching two moon landing missions per year to establish semi-permanent astronaut occupation on the lunar surface to explore, conduct research and develop the technology needed for eventual flights to Mars.

“This revised, step-by-step approach to learn, to build muscle memory, to bring down risk and gain confidence is exactly how NASA achieved the near impossible in the 1960s,” he said, referring to the agency’s Apollo program. “But this time, the goal is not flags and footprints. This time, the goal is to stay.

“Today, we are providing a demand for frequent crewed missions well beyond (previously announced moon landings in 2028). We intend to work with no fewer than two launch providers with the aim of crewed landings every six months, with additional opportunities for new entrants in the years ahead. America will never again give up the moon.”

The revised Artemis program envisions a transition from the government owned-and-operated Space Launch System rocket that will send the next several Artemis crews to the moon in favor of competitive commercial rockets like those being developed by SpaceX, Blue Origin and others.

It also will “pause” a program to build the Gateway space station in lunar orbit and “repurpose” components of that project for surface operations more in keeping with the moon base called for in the Trump administration’s national space policy.

Along with plans for a moon base, senior NASA managers also outlined work to develop nuclear power systems for use on the moon and Mars to keep astronauts, habitats and other equipment warm while providing the electricity needed for research, construction and daily operations.

First out of the gate will be the “Skyfall” mission to Mars in 2028 in which a fission reactor — Space Reactor 1, or SR-1, will power a nuclear-electric propulsion system to deliver three small helicopters that will be dropped in the thin martian atmosphere to fly about and study a possible landing zone for future astronauts.

SR-1 will be the first in a series of new nuclear power technologies NASA plans to deploy in the next few years on the moon.

NASA plans to build a planned moon base in three stages, starting with more frequent astronaut and cargo flights to the moon the develop the infrastructure needed to support long-duration crews. Image: NASA TV

Closer to home, agency managers vowed to continue efforts to encourage development of commercial space stations to keep American astronauts and researchers in low-Earth orbit after the International Space Station is retired in the 2030 timeframe.

Officials acknowledged the ISS program and commercially-developed crew ferry ships have not generated the private sector interest once envisioned and said the agency was exploring ways to encourage and hasten commercial development.

That includes allowing more privately financed non-astronauts to conduct research aboard the ISS, “selling” commander slots to qualified non-astronauts and even using the lab as a staging base for assembly of private-sector modules that later could be separated to fly on their own.

Isaacman said NASA would be able to afford the new Artemis architecture, space nuclear power development, ongoing science missions and new exploration ventures as well as working to facilitate the commercialization of low-Earth orbit with its existing budget, repurposing hardware to focus on the moon and by trimming bureaucratic waste and inefficiency.

“A lot of people ask us, you know, how are you going to be able to do all this within the resource you have available?” Isaacman said. “And I continue to tell them NASA does not necessarily have a top-line problem. We get a lot of resources. We may not always allocate them that efficiently.”

The revised Artemis program was unveiled just a few weeks after Isaacman ordered major changes to near-term missions, adding a flight in low-Earth orbit next year to test rendezvous and docking procedures using Orion crew ships and moon landers being built by SpaceX and Blue Origin.

Based on the results of the Artemis 2 and 3 missions, NASA now plans to launch at least one and possibly two moon landing missions in 2028 — Artemis 4 and 5 — using one or both privately developed moon landers before pressing ahead with a steady stream of flights to develop a base on the moon.

In the process, NASA will forego development of a planned space station in lunar orbit — the Gateway — and repurpose modules and systems already under development to serve as components of the planned moon base.

Under the old architecture, Gateway would have operated in a highly elliptical orbit where Orion crew ships from Earth would meet up with already docked lunar landers for descents to the surface. As it now stands, Orion astronauts will transfer directly to their landers without stopping at an orbital way station.

Gateway was intended to accommodate the propulsion capabilities of the Orion crew ship and its service module engine, which does not have the power to get into and out of a low-lunar orbit like the one used by Apollo crews.

What sort of orbits might be possible in the absence of Gateway was not addressed, but NASA is asking its contractors to help come up with workable alternatives.

“It should not really surprise anyone that we are pausing Gateway in its current form and focusing on infrastructure that supports sustained operations on the lunar surface,” Isaacman said. “Despite some of the very real hardware and schedule challenges, we can repurpose equipment and international partner commitments to support surface and other program objectives.”

He added that “shifting NASA workforce priority” to the lunar surface will enable the agency to use the moon as a “proving ground for future Mars initiatives” and that the policy change “does not preclude revisiting the orbital outpost in the future.”

The Planetary Society, a space advocacy organization co-founded by the late astronomer Carl Sagan, estimates NASA will have spent about $107 billion on return-to-the-moon plans through 2026 in inflation-adjusted dollars. That’s thanks in large part to repeated program changes over the past 20 years by successive presidential administrations.

In the wake of the shuttle Columbia disaster in 2003, President George W. Bush ordered NASA to retire the shuttle, build new rockets and return astronauts to the moon by 2020 in what became known as the Constellation program. The Obama administration concluded that program was not sustainable and ordered NASA to focus instead on a flight to a nearby asteroid.

In his first term, President Trump ordered NASA to shift its focus back to the moon for a proposed 2024 landing in what became known as the Artemis program. The Biden administration generally left Artemis alone, but the program had been slowed by the COVID pandemic, budget shortfalls and a variety of other factors.

Isaacman has repeatedly talked of Trump’s continued support of the Artemis program, and the revised architecture the administrator outlined Tuesday clearly has the approval of the White House.

Speaking of past delays and budget overruns, Isaacman said “the programs we left behind in this effort were not success stories. NASA takes ownership for the shortcomings, but contributing billions more and time that we do not have was not a pathway to success.”

A NASA chart sums up the plans and goal announced by agency officials Tuesday at NASA Headquarters. Image: NASA TV

The moon base will be built in three phases. Phase 1 will transition from infrequent, once-a-year moon missions to “a templated approach that will generate significant learning through experimentation,” he said.

“We will dramatically expand lunar landings … delivering rovers, instruments and technology payloads that test mobility, power systems … communications, navigation, surface operations and all the science payload that can be incorporated.”

Phase 2 will see development of habitats and infrastructure “supporting regular astronaut operations on the surface.” Phase 3 will enable “the permanent infrastructure necessary to sustain a human presence,” Isaacman said.

That includes nuclear and solar power systems, crewed and uncrewed rovers, including machines to prepare sites for construction, a cellphone-like communications network, a lunar GPS system and constellations of lunar observation and communications relay satellites.

“The moon base will not appear overnight,” Isaacman said. “We will invest approximately $20 billion over the next seven years and build it through dozens of missions, working together with commercial and international partners towards a deliberate and achievable plan.”

Isaacman made it clear that failure is not an option when it comes to beating China back to the lunar surface.

“Should we fail, and should we look on as our rivals achieve their lunar goals ahead of our own, we are not going to celebrate our adherence to excess requirements, policy or bureaucratic process,” he said, adding later that “we are not going to sit idly by when schedules slip or budgets are exceeded.”

“Expect uncomfortable action if that is what it takes, because the public has invested over $100 billion and has been very patient with respect to America’s return to the moon. Expectations are rightfully very high.”

Tuesday 24 March 1662/63

Lay pretty long, that is, till past six o’clock, and then up and W. Howe and I very merry together, till having eat our breakfast, he went away, and I to my office. By and by Sir J. Minnes and I to the Victualling Office by appointment to meet several persons upon stating the demands of some people of money from the King.

Here we went into their Bakehouse, and saw all the ovens at work, and good bread too, as ever I would desire to eat.

Thence Sir J. Minnes and I homewards calling at Browne’s, the mathematician in the Minnerys, with a design of buying White’s ruler to measure timber with, but could not agree on the price. So home, and to dinner, and so to my office.

Where we sat anon, and among other things had Cooper’s business tried against Captain Holmes, but I find Cooper a fuddling, troublesome fellow, though a good artist, and so am contented to have him turned out of his place, nor did I see reason to say one word against it, though I know what they did against him was with great envy and pride.

So anon broke up, and after writing letters, &c., home to supper and to bed.

Read the annotations

Links 3/24/26

Links for you. Science:

A new poll shows who Americans trust over the CDC (study, accessible to non-experts, here)
Tiny Teeth Reveal Early Spread of Proto-monkeys in North America
When Did Mosquitoes Start Specializing in Human Blood? 1.8 Million Years Ago
A macrocyclic peptide-based fusion inhibitor targeting SARS-CoV-2 Spike S2 subunit
Metformin not effective in treating long-COVID symptoms, study finds
How Stand Up For Science is trying to ‘pull every lever’ to win over the public

Other:

When Correlation Repeats Across 50 States: The NAEP Evidence Behind My Senate Testimony
Guess What Moderate Democratic Voters Aren’t Anymore? Moderate. Two new polls suggest that moderate Democrats too want higher taxes on the rich and some measure of economic populism. Moderate isn’t what it was in 1992.
Centrists: Better Things Aren’t Possible. Third Way’s strategy session for Democratic moderates lacked any vision other than a hatred for progressives.
If You’re Going To Defend AI And Whine About Its Critics, You Should Probably Be Honest About Its Actual Harms
D.C. police department losing officers to expanding federal agencies
The Supreme Court Has Dawdled Too Long To Gift Republicans The Midterms
The banality of surveillance
Iran war enrages Make America Healthy Again movement
The State of the Church
With Iran War, Kalshi and Polymarket Bet That the Depravity Economy Has No Bottom
How We’re All Now Paying the Price for the Myth of Trump’s Competence
AI Translations Are Adding ‘Hallucinations’ to Wikipedia Articles
Is S.B.F. Possibly… Innocent? The imprisoned FTX founder is now taking a three-pronged approach to getting out of jail—claiming that prosecutors threatened his partners, Sullivan & Cromwell had a conflict of interest, and his crypto exchange was actually solvent all along. Oh, and he’s also sucking up to Trump. Will any of it work?
Ceding Ground: Mamdani goes soft on the NYPD
Workers who love ‘synergizing paradigms’ might be bad at their jobs
On the Democratic Party Style
Coming Soon, From the People Behind ICE Detention Camps: Data Center Company Towns
Former DOGE bro is now running the Pentagon’s AI. What could go wrong?
Fox News uses old clip of Trump after he wore hat while saluting slain US soldiers
Documents reveal web of financial ties between Trump officials and industries they help regulate
In South Dakota you’ll soon be able to challenge other voters’ citizenship
Why is The New York Times so weird about Mamdani?
Majority of voters say risks of AI outweigh the benefits
Newsom picks a dogfight with Trump and RFK Jr. on public health
Feds face lawsuit over travel ban for foreign misinformation researchers
A brief history of the DC Streetcar
Grow-vernight scenario: Where OP has suggested more density is and is not on the table
Leaked Private Texts Reveal Wild Fishback Campaign Drama
The Creator of Wordle Just Came Out With a New Game, and It’s Hard
Kristi Noem’s $220M Homeland Security Horseback Riding Ad Dwarfed the Budgets of These 2026 Best Picture Nominees

The Case of the Multiple (Markwayne) Mullins

Last week, one senate Democrat* explained his vote to advance the nomination of Sen. Markwayne Mullin to head DHS (boldface mine):

This is going to surprise some people, but I consider Markwayne Mullin a friend. We have a very honest and constructive working relationship. We have authored legislation together, such as the Tribal Buffalo Management Act, and we crafted the Legislative Branch Appropriations bill together this year. We often disagree and when we do, we work to find whatever common ground we share.

“I have also seen first-hand that Markwayne is not someone who can simply be bullied into changing his views, and I look forward to having a Secretary who doesn’t take their orders from Stephen Miller.

“For five years, under this and the previous Trump Administration, I have lacked any constructive relationship with the Secretary of Homeland Security. This is despite my state being home to hundreds of TSA, CBP and Border Patrol constituents and many miles of the U.S./Mexico border. I want someone who recognizes the necessity of judicial warrants, as he has. I would like a Secretary who I can call and have a constructive conversation with about my state and the unique terrain that exists in the southwest and the proper mix of structure, technology and personnel necessary to effectively secure our border.

“For these reasons, I will vote to confirm Markwayne Mullin to be Secretary of Homeland Security.”

I have included his entire reasoning out of fairness, but I want to focus on the boldface part. Without engaging in too much late-night bong-influenced pseudophilosophy, there exist multiple Mullins. The Mullin the Democratic senator experiences is a principled opponent who is willing to “work to find whatever common ground we share.”

But the Mullin many, many other people know is not that man. He is a bloviating confabulist, who is terrified of being carjacked in D.C., who seems to like other people’s nostrils way too much, and also likes to pick fights with Congressional witnesses. Importantly, Mullin has not broken with Trump and his fascism in any meaningful way, and in 2021, refused to accept the validity of Biden’s presidential win.

Our Mullin, the one the overwhelming majority of us experience is not a principled opponent. He is a partisan hack who says absurd things and is, at best, a fascist appeaser, if not an outright fascist. There is no reason to think that the Democratic senator’s Mullin is the ‘real’ one, the one that will surface if Mullin becomes DHS Secretary. The Mullin the majority of Americans experience might be the one that is germane to how Mullin would perform his duties.

As I noted after Trump’s most recent State of the Union address:

But there are two things that sorry spectacle* revealed about professional Republicans.

First, they hate their Democratic coworkers. When Trump pointed at Democrats and said Democrats are “crazy… We’re lucky we have a country, with people like this. Democrats are destroying our country, but we stopped it, just in the nick of time”, Republicans went wild with glee. They were behaving like it was the pregame for a pogrom. This is who they really are, and this is what they really think.

Second, it’s still not clear to me if Democrats comprehend the Republican hatred. The superficial acts of civility by their Republican coworkers are a mask over the hatred Republicans have for Democrats, including their supposed ‘colleagues.’ While a willingness to pretend otherwise is humiliating for professional Democrats, it’s dangerous for the rest of us.

It obviously has not occurred to the Democratic senator that his coworker** might be playing him in private to get some legislation that Mullin himself wants, and that his public face is the real one. Professional Democrats need to figure this out, and fast.

*Since this is a vice that afflicts many, if not most, federal Democrats, I see no reason to focus on the particular senator, in this case New Mexico’s Senator Heinrich.

**No reason to refer to the overwhelming majority of Republicans who defended the insurrectionists that tried to overthrow the government and threatened to lynch Democratic lawmakers as colleagues. FFS, show some damn self-respect.

There isn't always a "long arc" of morality

Photo by ICE via Wikimedia Commons

Donald Trump is flailing. Despite easy battlefield victories, the Iran War is quickly turning into a quagmire; the regime has not fallen, and threats against oil traffic through the Strait of Hormuz are causing gasoline prices to soar and threatening to reignite inflation. This is on top of Trump’s existing unpopularity due to the cost of living and the violent lawlessness of ICE. The electorate is moving solidly toward the Democrats; even groups that traditionally supported Trump are starting to get fed up. Unless Trump somehow manages to cancel the midterms, it seems certain that his party is going to take a huge loss.

And yet if Democrats want to really capitalize on this epic failure of Trumpism — if they want to hold power for more than just one more backlash cycle — they will need an ideology that’s more appealing than what they have now. The Democratic Party’s favorability rating is still extremely low. An NBC News poll from two weeks ago found that the Democrats’ net favorability was worse than the GOP, Donald Trump, or even ICE itself:

Source: NBC

Many progressives claim that these low approval ratings are due to progressive voters disapproving of the Democrats for failing to fight Trump hard enough. That’s probably a factor on the margin, but it ignores the Democrats’ deep unpopularity on core issues. For example, a poll from six weeks ago found that voters preferred Republican approaches to Democratic ones on immigration, crime, and most other issues, even though they planned to vote for Democrats:

And polls consistently find that Democratic voters themselves would prefer that their party took more moderate stances, especially on social issues such as crime and trans issues.

In other words, most of the Dems’ unpopularity probably doesn’t come from their lack of aggressiveness against Trump; it mostly comes from the fact that progressive ideology is unpopular.

In fact, many progressives probably don’t even realize that their values are out of step with the country. On a survey by the Cooperative Election Study, Democrats, Republicans, and Independents all basically agreed that Republican voters are very conservative. But Democrats saw themselves as moderates, even though Independents and Republicans saw them as leaning strongly to the left:

Source: Cooperative Election Study via Ryan Burge

This is evidence that a lot of progressive Democrats are living in a bubble with regards to the overall country’s values. The simplest explanation is that progressive institutions — universities, nonprofits, etc. — and deep blue cities have concentrated educated progressives so much that they don’t interact with the masses of Americans very often, and hence don’t realize how far out of step their values are with the values of the electorate.

A prime example of such an issue is trans rights. While 54% of Democrats say people are able to change their gender, 74% of Independents say gender is determined at birth:

Source: AP

Independents are the real ball game. Not only are they all-important swing voters, but they’re a large and growing plurality of the electorate, as moderates leave both of the major parties:

Source: Gallup

And in fact, polls find that support for many of the trans movement’s key demands has gone down in recent years, even among Democrats.

Does this mean Democrats should moderate and compromise on social issues like trans rights? In the past, this is often what they did. After the electorate became moderately less pro-choice in the 1980s, Democrats compromised on abortion by saying it should be “safe, legal, and rare.” Before gay marriage gained majority support, Democrats — including Barack Obama — often supported “civil unions” as a halfway measure.

Today’s progressives are less inclined to compromise or beat a strategic retreat. The dominant idea seems to be that there is a “long arc” of history that bends towards their current positions on sociocultural issues. This idea comes from Martin Luther King, Jr.’s famous quote that “the arc of the moral universe is long, but it bends toward justice.”

To some progressives, recent history bears out the idea that the moral universe has an arc, and that it bends in their direction. Support for gay marriage steadily climbed over time, until liberals no longer had to bother with “civil unions” or other half measures. The core successes of the civil rights movement were not reversed.

If history works this way, why compromise today? Just stand your ground and stick to your principles, and eventually history will judge you favorably when the consensus inevitably catches up. I think progressives are thinking this way right now, as evidenced by their refusal to even entertain the notion of budging on the issue of trans women in women’s sports — an issue where public opinion is strongly on the side of the GOP.

Now don’t get me wrong — I don’t think the issue of women’s sports is a make-or-break issue for the Democrats. I just think it’s emblematic of a larger attitude that progressives are always on the right side of history, and that compromise and moderation are acts of cowardice rather than strategic necessities. In fact, some recent research I’ve seen suggests that it’s actually racial discrimination, asylum seekers, and public order where Dems would benefit most from moving to the center:

The danger is that “long arc” thinking will prevent Democrats from compromising on any of this, leading to another backlash cycle in 2028 or 2032 that brings an increasingly radicalized GOP back into power.

“Long arc” thinking isn’t necessarily wrong. There’s plenty of evidence that over time, societies all over the world — not just America — have evolved toward greater tolerance, inclusion, and personal liberty along many dimensions. The most likely reason is economic growth — as societies get richer, they tend to shift from harsh, conservative “survival values” toward more liberal values of “self-expression”.

But to think that this tendency will inevitably move society in the direction of progressives’ current ideas makes a number of mistakes.

First of all, believing that the “arc of history” is independent of human action is a dangerous assumption that removes human agency. History is contingent — the Equal Rights Amendment failed ratification by only three states out of 38, and never really got a second shot. If Hillary Clinton had won a few more votes in 2016, Roe v. Wade wouldn’t have been overturned, and affirmative action in college admissions would be legal to this day.

That means that even if you believe strongly that you’re morally on the right side of history, you still have to be strategic about picking your battles. Liberal victories like civil rights and gay marriage didn’t just cruise to victory on an inevitable tide of history; they required savvy strategizing by movement leaders and intellectuals. Sometimes those strategies involved boldness and pushing the envelope of what had been deemed possible; sometimes they involved compromise, strategic focus, and moderation.

It was the great mistake of communism to believe that History made them inevitable. Marx believed that vast social forces would inevitably push society toward communism; Marxists invested this prediction with a quasi-religious belief. This caused them not to worry enough about the mistakes they were making along the way; when the Cold War ended and it turned out that History wasn’t coming to save them, Francis Fukuyama wrote a whole book making fun of their misplaced faith.

The second reason “long arc” thinking is dangerous is that it automatically equates current progressive ideals with the ultimate moral destination of society.

Looking back to liberal victories naturally entails a selection effect. Yes, civil rights and gay marriage won the day and were ultimately enshrined as basic rights in American society — and, increasingly, in global society as well. But that doesn’t mean that every right that liberals and progressives fight for ends up being equally enshrined. There have been many losses and reversals — not just in the short term, and not just due to backlash, but due to society deciding that certain movement goals are not actually basic human rights.

For example, take abortion. Public opinion on abortion has fluctuated, but hasn’t changed since 1990, and fairly little since 1970:

Source: Gallup

The recent dramatic overturning of Roe v. Wade in 2022 has led to a stalemate, with abortion rights more restricted than they’ve been in over half a century. There was surprisingly little public backlash to the change — no dramatic nationwide marches, no riots, at best a small electoral bump for Democrats in 2022. By the time the GOP swept to power in 2024 it was almost forgotten.

An even more dramatic example is immigration. In the 1870s, America was extremely open to immigration, with essentially no federal controls and a patchwork of weak state controls on people coming into the country. Fast forward to 2015 — before Donald Trump’s election, and a supposed golden age of immigrant mobility — and we see a policy landscape far more restrictive than that of 140 years earlier. Border fences, continual mass deportations, restrictions on immigrant use of welfare and public services, and so on were all in place. There was no arc of history bending toward the right of free movement across national borders.

Even the civil rights movement — the template and paragon of liberal American movements — didn’t win everything. In the 1960s and 1970s, affirmative action in college admissions was a core goal of the civil rights movement. In 2023, the Supreme Court ruled it illegal. There was no public outcry; a solid majority of Americans favored the Court’s decision. DEI policies have instituted racial hiring discrimination in some companies, but this is on the wane after the policies grew increasingly unpopular.

Another example is busing. Mandatory integration busing was a core policy and a core demand of the original civil rights movement, but it was abandoned in the 1990s and 2000s.

In other words, looking back at modern American history, it’s clearly not the case that the country always trends toward what liberals or progressives want or demand. Sometimes rights movements win, sometimes they lose.

A key reason is that what constitutes a “right” is highly contested, and the ideas of tolerance, freedom, and equality don’t always clearly come down on the progressive side. Female athletes might view it as a form of liberty to have sex-segregated locker rooms where they don’t have to be exposed to penises. Asian and White college applicants might view it as a matter of tolerance and equality to be able to apply to jobs without being discriminated against on the basis of their race. Many societies have become less tolerant of public disorder and minor crimes in recent years, out of concern for their citizens’ freedom to walk the streets in safety.

It’s easy to trick yourself into thinking that “rights” always win out in the end, because of the selection effect — when we look back at what society eventually decided was an inalienable right, we’re looking only at movement victories. The losses didn’t get enshrined as “rights”, so we tend to ignore the fact that liberals and progressives fought long and hard for things they never ended up getting.

If you’re a progressive, and you believe deeply that racial preferences in hiring, leniency toward petty crime and illegal immigration, and trans women on women’s sports teams are basic human rights, I can’t tell you to change your values or go against your conscience just to win some elections. If you feel you have to stick to your guns, then stick to your guns. But if there are some progressives out there who are open to the idea of strategic compromise, I think now would be the time to do it. This nation really can’t afford to keep ping-ponging back and forth between an unpopular Democratic party and a mad rightist personality cult every two to four years.


Subscribe now

Share

Orbital data centers, part 1: There’s no way this is economically viable, right?

Let's start with the basics. What, exactly, is an orbital data center?

On the ground, data centers are typically large, warehouse-sized facilities filled with racks of storage and servers, and usually some high-speed networking gear to connect everything. A data center can be small or large, but the ones SpaceX is looking to supplant are of the big kind—the ones operated by major industry players like Amazon Web Services and Google, which provide most of the online services you use today. These are sprawling buildings, or even campuses of buildings, with redundant connections to the electrical grid, on-site generators, massive banks of batteries, and enormous cooling systems to handle the heat being shed by thousands upon thousands of machines operating around the clock.

An orbital data center replicates all of that, but in space.

Read full article

Comments

What “Trusted” Exam Management Looks Like in Practice

Educational institutions rely heavily on digital platforms to deliver, monitor, and report assessments at scale. However, trust in an exam management system goes beyond simply delivering tests online. It involves ensuring reliability, security, transparency, and fairness throughout the entire assessment lifecycle. When exam processes are managed through well-designed digital systems, institutions can confidently administer assessments while maintaining academic integrity and operational efficiency.

Reliable Infrastructure for High-Volume Testing

One of the clearest indicators of trusted exam management is a platform’s ability to handle high-volume testing environments without disruption. Universities and training providers often administer thousands of assessments simultaneously, particularly during peak exam periods. A reliable system must therefore maintain stability, minimise downtime, and ensure consistent performance across large cohorts.

Institutions prioritise server scalability, system redundancy, and latency-free concurrent sessions when they evaluate trusted exam management software. This scrutiny ensures platforms can handle thousands of simultaneous assessments during peak university exam periods without disruption, maintaining stability, minimising downtime, and delivering consistent performance across large cohorts. With such infrastructure in place, technical issues rarely compromise the testing experience, fostering confidence in high-volume exam delivery.

Secure Candidate Authentication and Monitoring

Trust in exam management also depends on the ability to confirm that the correct individual is completing the assessment. Secure identity verification processes help institutions prevent impersonation and protect the integrity of exam results.

Modern platforms support this through technologies such as multi-factor authentication, facial recognition, and remote proctoring systems. These tools verify a candidate’s identity before an exam begins and monitor activity throughout the session. By combining identity verification with behavioural monitoring, institutions create a structured testing environment that mirrors traditional supervised examinations while allowing assessments to take place remotely.

Transparent Assessment Delivery

Trusted exam management also requires clear and predictable assessment delivery. Students and administrators must understand how exams are presented, how responses are captured, and how technical contingencies are handled if disruptions occur.

Transparent systems provide clear instructions, stable navigation, and automated progress saving during an assessment. These design features reduce the risk of lost responses caused by connectivity issues or accidental browser closures. In addition, exam administrators benefit from dashboards that display session status in real time, allowing them to quickly identify and address irregularities during the exam process.

Accurate and Verifiable Result Processing

Another essential aspect of trusted exam management is the accuracy of scoring and result processing. Assessment outcomes must be generated through reliable processes that ensure fairness and consistency across all candidates.

Digital platforms achieve this through automated scoring engines and structured marking workflows. Objective question types, such as multiple choice, can be graded instantly, while essay responses can be routed through controlled marking systems that support double marking, moderation, and rubric-based evaluation. These mechanisms help institutions maintain consistent grading standards while ensuring that results are defensible if they are later reviewed or audited.

Data Protection and Compliance Standards

Assessment platforms also handle sensitive information, including student identities, performance data, and institutional records. As a result, trusted exam management must include strong protections for data security and regulatory compliance. Evidence from the academic literature on online assessment privacy highlights that digital proctoring and testing systems frequently process large amounts of personal data, making responsible governance and transparent data management essential for maintaining institutional trust.

Modern systems, therefore, implement encryption protocols, controlled access permissions, and detailed activity logs to safeguard assessment data. These features support compliance with recognised data protection frameworks and institutional governance policies. Comprehensive audit trails also allow administrators to trace actions taken during an exam cycle, providing transparency in cases where results or processes are later questioned.

Clear Reporting and Institutional Oversight

Trusted exam management does not end when the exam concludes. Institutions also require clear reporting capabilities that allow them to review performance data, identify irregularities, and refine assessment strategies.

Advanced reporting tools allow administrators to analyse candidate performance, detect anomalies, and evaluate assessment quality. By combining analytics with detailed activity records, institutions gain a complete view of how exams were delivered and completed. This oversight strengthens institutional confidence in both the assessment process and the results it produces.

Building Confidence Through Consistency

Trusted exam management is ultimately defined by consistency across every stage of the assessment lifecycle. From system reliability and candidate verification to transparent delivery and accurate reporting, each component contributes to the credibility of the overall testing process. When these elements work together effectively, educational institutions can administer assessments with confidence, knowing that both academic standards and operational integrity are being upheld.

Photo: macrovector via Freepik.


CLICK HERE TO DONATE IN SUPPORT OF OUR NONPROFIT COVERAGE OF ARTS AND CULTURE

The post What “Trusted” Exam Management Looks Like in Practice appeared first on DCReport.org.

A mission NASA might kill is still returning fascinating science from Jupiter

Jupiter's colossal storms generate lightning flashes at least 100 times more powerful than those on Earth, according to scientists analyzing data from NASA's Juno spacecraft.

The findings were published March 20 in the journal AGU Advances and were based on data recorded by Juno in 2021 and 2022, after NASA granted an extension to the spacecraft's operations upon completing a five-year science campaign at Jupiter. Juno remains in good health, but NASA officials have not said if they will approve another extension for the mission. The issue is money.

Questions about the future of Juno and more than a dozen other robotic science missions began swirling nearly a year ago, when the Trump administration asked mission leaders to submit "closeout" plans for how to turn off their spacecraft. Ars first reported the news soon after the White House released a budget request that called for slashing NASA's science budget by nearly half.

Read full article

Comments

Tuesday assorted links

1. The argument that Elon will win the AI race.

2. Results from Malawi on the USAID changes.

3. Data on Strauss’s lectures.

4. The decline of reality TV (NYT).

5. Independent detections of similar transients in European plate archives.

6. Was Little Darlin’ in fact a parody song?

The post Tuesday assorted links appeared first on Marginal REVOLUTION.

       

Comments

 

Johan Fourie interviews me at University of Stellenbosch

The post Johan Fourie interviews me at University of Stellenbosch appeared first on Marginal REVOLUTION.

       

Comments

Related Stories

 

Are Republicans Trying to Hoodwink Trump on the SAVE Act?

Emine Yücel has a report up this morning on a new “deal” being kicked around the Senate that would attempt to fix the airport situation. This proposal would fund most of DHS — including the TSA — without funding ICE enforcement operations.

Republicans would then seek to fund those operations later this year, in a reconciliation bill, which, under Senate rules, can pass with only 51 votes. That means Republicans won’t need Democrats to get it through.

The deal is similar to how one might have predicted this would end for weeks. But it includes one weird, emerging point: Republicans might also try to pass the SAVE America Act through reconciliation.

The SAVE America Act — a sweeping voter suppression bill — has been a kind of chaos factor for months now, scrambling the Texas Senate primary and, more recently, scuttling the last attempt at a Senate deal to end the partial government shutdown. Trump demanded Republican senators not cut a deal with Democrats and instead sent ICE into airports to back up TSA, his idea of a solution.

Politico reports that, yesterday, Trump agreed to back this new deal to partially end the DHS shutdown, so long as Republicans get aspects of the SAVE Act into a reconciliation package.

But budget reconciliation is only meant to be used for, essentially, budget stuff. A sweeping voter suppression bill is not budget stuff. Not at all. So what is happening here?

Some Senate Republicans have been contending there is a way to get the SAVE Act through with budget reconciliation. Sen. John Kennedy (R-LA) earlier this month proposed his conference hire “a really smart lawyer” to figure it out. This hypothetical individual could supposedly “help us craft a SAVE Act that can survive a Byrd bath,” the process through which the Senate parliamentarian strips out from a reconciliation bill any measures that don’t qualify for reconciliation.

Republicans could also refuse to abide by the parliamentarian’s rulings. But Senate Majority Leader John Thune (R-SD), during the last reconciliation process, was clear that he did not want to break with precedent and do so.

As one of our go-to budget experts, Bobby Kogan, explained to Emine:

“The meat of the Save Act cannot be done in reconciliation unless you’re willing to break the rules of reconciliation,” Bobby Kogan, senior director of federal budget policy at the Center for American Progress, told TPM.

Kogan explained Republicans could “pay states to voluntarily change their state rules, to do some of the stuff in the Save Act” but they are trying to set “binding national requirements, and that sort of thing is either non budgetary in some cases or merely incidental in other cases” and can’t be addressed in the reconciliation process.

“There’s a deeper political problem,” Kogan added. “If you can finagle some very, very minor stuff, do they get to pretend they have a win? Or does it further enrage the people who know that it’s nowhere close to what they’re actually seeking?”

Passing the SAVE Act would be a disaster for American democracy. But we’re not sure that’s what Senate Republicans are really up to here.

We’ll be watching to see if this is a genuine attempt to pass the SAVE Act, or an effort to kick the can, get Trump off their backs, and disclaim responsibility when they find that — even with some smart lawyers — they can’t get the SAVE Act through using reconciliation after all.

Iran Is Setting the Pace; Trump Is Reacting.

Beyond the bluster and carnage let’s look at the current situation in the war between the U.S. and Israel and Iran. I wrote most of this post before the overnight news that Trump is essentially suing for peace. But all of it still applies. And it comes down to one remarkable dynamic.

Despite the U.S. dominating the skies and almost every other combat domain, Iran has seized and holds the initiative in the war itself, forcing the U.S. to react to it and, in Trump’s hands, do so erratically and helplessly. Iran has the strategic initiative, despite constant and incredibly damaging attacks by the United States and Israel. Indeed, getting Iran to stop its primary retaliatory measure — throttling the Strait of Hormuz — now appears to be the main U.S. war aim. In other words, the main goal of the U.S. now is to get Iran to cease its retaliation for the U.S. starting the war in the first place.

The U.S. was already trying to get Iran to the bargaining table, according to this report last night from Axios. The fact that the U.S. is, reportedly, considering how to “package” cash payments to Iran (i.e. release frozen assets) is a testament to just how far we are from “unconditional surrender.” Meanwhile, this morning’s news confirms that the U.S. is getting talks started, or at least hoping to do so. Of course the simplest way to get Iran to release the strait is to stop the war. But the U.S. can’t do that, at least not openly, since that would amount to a massive and humiliating defeat.

Meanwhile it’s the U.S. — or at least Donald Trump’s Truth Social account — that keeps issuing threats to do things if Iran doesn’t immediately allow free passage through the strait. The latest was Trump’s threat to destroy Iran’s civilian power plants if Iran doesn’t comply within 48 hours. He’s now extended that deadline. This comes after earlier threats to take possession of Kharg Island, the oil depot through which almost all of Iran’s oil flows. The idea is to take it and then Iran will submit and open the strait because that’s how they sell oil.

There are two problems with this.

The first is that Iran is clearly willing to absorb vastly more pain than the Trump White House is on behalf of the American people. Of course that’s true. For Iran’s government, this is an existential conflict. It’s far from that for the U.S. Indeed, U.S. isn’t even clear on precisely why or for what it went to war in the first place. It was a war of choice to achieve aims that are, in the most generous view, preventing things from happening years or decades in the future. That is a critical strategic asset that can transcend the power of weapons systems. Yes, cutting off Iran’s ability to sell oil is a close to existential threat to the clerical regime. But can Iran absorb that cut off longer than the U.S. (or rather Donald Trump’s midterm election hopes) can allow the Strait of Hormuz to stay closed? Quite possibly.

Second, these threats violate a basic principle of how military force is effectively used to settle disputes between states. The U.S. wants to make Iran stop blocking the strait. The surest way to do that is to actually prevent them from doing that. (The U.S. could bomb civilian cities and infrastructure in Germany. But that was never going to compel Germany’s surrender. The U.S. had to invade Europe.) But for the U.S. to do this with Iran would be bloody and difficult and dangerous. It probably requires the U.S. to occupy a chunk of Iran’s coastline along the Persian Gulf and eliminate its ability to fire rockets from deeper in Iran. A lot of that is probably doable, but at immense cost.

So Trump is threatening to do basically unrelated things on the theory that those things are so threatening that they will force Iran to do what the U.S. wants. But you never want to leave your key goal to the other side’s choice. That’s very literally leaving the initiative to them. What if they don’t give in to the threat? And what if Trump goes through with the threat to grab this island and they still don’t comply? What do you threaten next? It’s an escalation trap which could lead to an immense amount to damage in Iran but still not get the U.S. out of the box that it’s in. And the critical thing to remember is that Iran has the strategic asset of being able to absorb far more pain. Because the stakes it faces are far, far higher. Iran also knows what it needs: to survive.

All of this is a way of saying Iran has the upper hand, or at least the strategic initiative. Trump doesn’t. They’re dictating the terms and Trump is responding. (Israel’s aims and pace of attacks seem different. We’ll come to that later.) We’re hiding that, maybe even from ourselves, by blowing up stuff. But they have the initiative. We’re responding to them. They’re setting the pace.

There is of course a more optimistic view of the whole situation. I suspect it governs the logic of Israel’s bombing campaign. For Israel, every degradation of Iran’s military capacity is a win. Every missile factory, every bit of command and control infrastructure, every military base, plane, drone, anti-aircraft capacity and of course whatever parts of Iran’s nuclear capacity can be destroyed. Those can all be rebuilt. But after a certain thoroughness of destruction that takes a while. And a regime so denuded of military teeth will be forced to focus on survival, even domestic survival, than projecting power abroad.

I’m not saying that overrides everything I’ve described above. I simply note this to make the real point that it’s not like the U.S. and Israel aren’t accomplishing anything in their own interests while Trump fumbles for a way to unwind the economic crisis he stumbled into. Again, Israel’s needs are more concrete and incremental. Every increment of degraded missile capacity is a win. But it’s Iran which is shaping the pace and direction of the conflict. It is forcing the U.S. to act. And remember, the entire U.S. focus at the moment seems to be ending a problem (blockage of the Strait of Hormuz) that didn’t exist when the U.S. launched its war. Even that may be optimistic. The news of the early afternoon suggests that “postponement” and “negotiations” are at least mainly another effort to coax down oil prices, a gambit won’t work for long as long as it appears that it’s yet more vaporware diplomacy which markets will figure out in hours or days. Trump is still trying to moonwalk his way out of a conflict he thought would be easy and lost control of almost immediately. Who’s in charge or who is winning is never a matter of how many explosions there are. It’s about how close or far each side is from achieving its critical ends and who is defining the terms of the conflict. On that measure, Iran is in control.

Team Mirai and Democracy

Japan’s election last month and the rise of the country’s newest and most innovative political party, Team Mirai, illustrates the viability of a different way to do politics.

In this model, technology is used to make democratic processes stronger, instead of undermining them. It is harnessed to root out corruption, instead of serving as a cash cow for campaign donations.

Imagine an election where every voter has the opportunity to opine directly to politicians on precisely the issues they care about. They’re not expected to spend hours becoming policy experts. Instead, an AI Interviewer walks them through the subject, answering their questions, interrogating their experience, even challenging their thinking.

Voters get immediate feedback on how their individual point of view matches—or doesn’t—a party’s platform, and they can see whether and how the party adopts their feedback. This isn’t like an opinion poll that politicians use for calculating short-term electoral tactics. It’s a deliberative reasoning process that scales, engaging voters in defining policy and helping candidates to listen deeply to their constituents.

This is happening today in Japan. Constituents have spent about eight thousand hours engaging with Mirai’s AI Interviewer since 2025. The party’s gamified volunteer mobilization app, Action Board, captured about 100,000 organizer actions per day in the runup to last week’s election.

It’s how Team Mirai, which translates to ‘The Future Party,’ does politics. Its founder, Takahiro Anno, first ran for local office in 2024 as a 33 year old software engineer standing for Governor of Tokyo. He came in fifth out of 56 candidates, winning more than 150,000 votes as an unaffiliated political outsider. He won attention by taking a distinctive stance on the role of technology in democracy and using AI aggressively in voter engagement.

Last year, Anno ran again, this time for the Upper Chamber of the national legislature—the Diet—and won. Now the head of a new national party, Anno found himself with a platform for making his vision of a new way of doing politics a reality.

In this recent House of Representatives election, Team Mirai shot up to win nearly four million votes. In the lower chamber’s proportional representation system, that was good enough for eleven total seats—the party’s first ever representation in the Japanese House—and nearly three times what it achieved in last year’s Upper Chamber election.

Anno’s party stood for election without aligning itself on the traditional axes of left and right. Instead, Team Mirai, heavily associated with young, urban voters, sought to unite across the ideological spectrum by taking a radical position on a different axis: the status quo and the future. Anno told us that Team Mirai believes it can triple its representation in the Diet after the next elections in each chamber, an ostentatious goal that seems achievable given their rapid rise over the past year.

In the American context, the idea of a small party unifying voters across left and right sounds like a pipe dream. But there is evidence it worked in Japan. Team Mirai won an impressive 11% of proportional representation votes from unaffiliated voters, nearly twice the share of the larger electorate. The centerpiece of the party’s policy platform is not about the traditional hot button issues, it’s about democracy itself, and how it can be enhanced by embracing a futuristic vision of digital democracy.

Anno told us how his party arrived at its manifesto for this month’s elections, and why it looked different from other parties’ in important ways. Team Mirai collected more than 38,000 online questions and more than 6,000 discrete policy suggestions from voters using its AI Policy app, which is advertised as a ‘manifesto that speaks for itself.’

After factoring in all this feedback, Team Mirai maintained a contrarian position on the biggest issue of the election: the sales tax and affordability. Rather than running on a reduction of the national sales tax like the major parties, Team Mirai reviewed dozens of suggestions from the public and ultimately proposed to keep that tax level while providing support to families through a child tax credit and lowering the required contribution for social insurance. Anno described this as another future-facing strategy: less price relief in the short term, but sustained funding for essential programs.

Anno has always intended to build a different kind of party. After receiving roughly $1 million in public funding apportioned to Team Mirai based on its single seat in the Upper Chamber last year, Anno began hiring engineers to enhance his software tools for digital democracy.

Anno described Team Mirai to us as a ‘utility party;’ basic infrastructure for Japanese democracy that serves the broader polity rather than one faction. Their Gikai (‘assembly’) app illustrates the point. It provides a portal for constituents to research bills, using AI to generate summaries, to describe their impacts, to surfacing media reporting on the issue, and to answer users’ questions. Like all their software, it’s open source and free for anyone, in any party, to use.

After last week’s victory, Team Mirai now has about $5 million in public funding and ambitions to grow the influence of their digital democracy platform. Anno told us Team Mirai has secured an agreement with the LDP, Japan’s dominant ruling party, to begin using Team Mirai’s Gikai and corruption-fighting Mirumae financial transparency tool.

AI is the issue driving the most societal and economic change we will encounter in our lifetime, yet US political parties are largely silent. But AI and Big Tech companies and their owners are ramping up their political spending to influence the parties. To the extent that AI has shown up in our politics, it seems to be limited to the question of where to site the next generation of data centers and how to channel populist backlash to big tech.

Those are causes worthy of political organizing, but very few US politicians are leveraging the technology for public listening or other pro-democratic purposes. With the midterms still nine months away and with innovators like Team Mirai making products in the open for anyone to use, there is still plenty of time for an American politician to demonstrate what a new politics could look like.

This essay was written with Nathan E. Sanders, and originally appeared in Tech Policy Press.

[RIDGELINE] A Return to Nagasaki

Ridgeline subscribers —

I love Nagasaki. The more I visit, the more I love it. It’s a city with a historical and cultural depth and complexity you don’t find in most big cities, let alone mid-sized cities. It rewards multiple explorations, and I look forward to exploring more of the city and prefecture at large in future trips.

If you’ve never been to Nagasaki, you should go. And if you haven’t been in a while, you should head back!

What's happening at the end of that street? What's happening at the end of that street?


March 23, 2026

Shortly after the close of the U.S. stock market on Friday, President Donald J. Trump appeared to try to address the losses it had sustained since his February 28 attack on Iran by posting that the war was “winding down.” This reassurance appeared designed to calm market fears over the weekend.

But then, at 7:44 Saturday evening, Trump posted: “If Iran doesn’t FULLY OPEN, WITHOUT THREAT, the Strait of Hormuz, within 48 HOURS from this exact point in time, the United States of America will hit and obliterate their various POWER PLANTS, STARTING WITH THE BIGGEST ONE FIRST! Thank you for your attention to this matter. President DONALD J. TRUMP”

Aside from the fact that attacking civilian infrastructure is a war crime, this threat against Middle East oil infrastructure made the market teeter again, especially after Iran threatened to strike power plants in Israel and other Gulf states.

Then, at 7:23 this morning, Trump posted: “I AM PLEASED TO REPORT THAT THE UNITED STATES OF AMERICA, AND THE COUNTRY OF IRAN, HAVE HAD, OVER THE LAST TWO DAYS, VERY GOOD AND PRODUCTIVE CONVERSATIONS REGARDING A COMPLETE AND TOTAL RESOLUTION OF OUR HOSTILITIES IN THE MIDDLE EAST. BASED ON THE TENOR AND TONE OF THESE IN DEPTH, DETAILED, AND CONSTRUCTIVE CONVERSATIONS, WHICH WILL CONTINUE THROUGHOUT THE WEEK, I HAVE INSTRUCTED THE DEPARTMENT OF WAR TO POSTPONE ANY AND ALL MILITARY STRIKES AGAINST IRANIAN POWER PLANTS AND ENERGY INFRASTRUCTURE FOR A FIVE DAY PERIOD, SUBJECT TO THE SUCCESS OF THE ONGOING MEETINGS AND DISCUSSIONS. THANK YOU FOR YOUR ATTENTION TO THIS MATTER! PRESIDENT DONALD J. TRUMP”

The five-day period in which Trump promised to hold off on this particular threat—the war itself continues—coincides with the days the stock market is open.

According to The Kobeissi Letter, which analyzes the stock market, the S&P 500 surged upward by 240 points. The price of Brent crude oil dropped to $96 a barrel.

Then Iran denied Trump’s claims and said its leaders had had “no direct or indirect contact” with Trump’s people. Iran’s foreign ministry suggested Trump was trying “to reduce energy prices and to buy time for implementing his military plans.” It said that countries in the region had approached Iran to begin negotiations and that “our response to all of them is clear: we are not the party that started this war, and all such requests should be directed to Washington.”

The S&P fell 120 points and the price of Brent crude rose to about $100 a barrel.

“What is happening here?” wrote Adam Kobeissi about the stock market in his newsletter.

The answer to which social media posters jumped was market manipulation. Economist Paul Krugman suggested the same in a post today, noting that someone who had insider knowledge “could have sold a bunch of crude oil futures, at very high prices, Brent was over $112 over the weekend, then bought them back immediately after Trump’s announcement of triumphal progress, but before the Iranians said that is not happening. And you could have turned a very, very nice, very large profit.”

Indeed, by the end of the day, reporters like Yun Li at CNBC noted that about fifteen minutes before Trump’s announcement there had been a sudden and sharp jump in S&P 500 futures and oil futures.

Krugman had other observations as well, though. Trump threatened to “commit a massive war crime” by striking civilian energy facilities and “must be looking for a way out.” Krugman noted that there is no apparent reason for Iranian leaders to be making a deal right now: it seems pretty clear that protracting the war constitutes winning in the metric of humiliating the U.S.

Krugman goes on to make a major point: “Think about how much America’s position in the world has been weakened, not just by apparent failure to subdue a fourth-rate power, but by the fact that everybody now knows that you cannot trust anything, cannot trust any promises the United States makes, you cannot count on the United States carrying through with promises, with threats, not just promises, but threats are also incredible in the sense of not being all credible, and that the default assumption should be that anything that this administration says is a lie.”

Trump doubled down on his post this morning when he talked to reporters at Palm Beach International Airport, seeming to see an off-ramp from the conflict. He claimed that his Middle East envoy Steve Witkoff is speaking with “a top person” in Iran, “the man who, I believe, is the most respected and the leader…not the supreme leader…but the people that seem to be running [Iran].”

Barak Ravid of Axios later reported that Witkoff and Trump’s son-in-law Jared Kushner—both freelancers who have financial ties to the Middle East—rather than the U.S. secretary of state, Marco Rubio, have sent messages to the speaker of the Iranian parliament, Mohammad Bagher Ghalibaf, through Egypt, Pakistan, and Turkey, where intermediaries are trying to set up a call between U.S. and Iranian negotiators. Ghalibaf is a close associate of Iran’s new supreme leader, Mojtaba Khamenei.

Trump seemed to consider that plan a done deal and said the U.S. and Iranian negotiators would talk today by phone. He continued: “We’ll at some point very soon meet. We’re doing a five-day period. We’ll see how that goes. And if it goes well, we’re gonna end up with settling this, otherwise we just keep bombing our little hearts out.”

Kaitlan Collins of CNN asked Trump, “You’ve said there’s many points of agreement with Iran right now. Can you give us a few of them?” He answered, “Many. Like fifteen points. Fifteen points.”

Collins followed up: “That Iran has said yes to?”

Trump replied: “Well, they’re not gonna have a nuclear weapon. That’s number one. That’s number one, two, and three. They will never have a nuclear weapon.”

Collins asked: “They’ve said yes to that?”

Trump replied: “They’ve agreed to that.”

When another reporter asked if Iran has agreed “to no enrichment whatsoever, even for medical purposes, civilian purposes,” Trump answered: “They have.”

Then Collins asked, “What about the Strait of Hormuz? Who’s going to be in control of that?” Trump answered: “That’ll be opened very soon if this works.” To questions of how soon, he responded, “Immediately.”

Asked who would control the strait, he answered: “Uhhhhh, [it’ll] be jointly controlled.”

“By who?” Collins asked.

“Maybe me. Maybe me,” Trump said. Not the United States, or an international coalition, but “[m]e and the ayatollah, whoever the ayatollah is…. And there’ll also be… a very serious form of regime change. Now in all fairness, everybody’s been killed from the regime…. But we’re dealing with some people that I find to be very reasonable, very solid. The people within know who they are. They’re very respected, and maybe one of them will be exactly what we’re looking for. Look at Venezuela, how well that’s working out. We are doing so well in Venezuela, with oil and with the relationship between the president-elect and us. And maybe we find someone like that in Iran.”

Today, at the Palm Beach airport, a reporter asked Trump: “If the war is ending, do you still need $200 billion?” Trump answered: “We, ah, it’s always nice to have. It’s always nice to have. It’s a very inflamed world.”

Notes:

https://www.theguardian.com/world/live/2026/mar/23/middle-east-crisis-live-iea-chief-says-iran-war-energy-crunch-worse-than-1970s-oil-crises-and-ukraine-war-combined

https://www.nytimes.com/live/2026/03/23/world/iran-war-oil-trump/e49f9420-9404-5913-8354-ff249d817007

https://www.nytimes.com/live/2026/03/23/world/iran-war-oil-trump/8575be89-4dd5-5db1-8b47-65c0b5f37f97

https://www.nytimes.com/live/2026/03/23/world/iran-war-oil-trump/c15e19b3-cf09-5c93-8005-1c9d7057aa4f

https://www.bbc.com/news/articles/c75kl47zez3o

Paul Krugman
Adventures in Fantasy Diplomacy
Another day in America’s self-immolation as a Great Power…
Listen now

https://www.axios.com/2026/03/23/trump-suspends-iran-strikes-hormuz-negotiations

https://www.cnbc.com/2026/03/23/volume-in-stock-and-oil-futures-surged-minutes-before-trumps-market-turning-post.html

Bluesky:

ronfilipkowski.bsky.social/post/3mhq2p5hj4c2a

atrupar.com/post/3mhqalqnm3c2y

atrupar.com/post/3mhqaiq5yk32u

angrystaffer.bsky.social/post/3mhq6ypvby22s

atrupar.com/post/3mhq77najpf2u

peggystuart.bsky.social/post/3mhqid4udic2q

atrupar.com/post/3mhqapjxo722p

ronfilipkowski.bsky.social/post/3mhmdxe2ojs2o

edwardnh.bsky.social/post/3mhpyk5fw5c2j

helenkennedy.com/post/3mhjijmodu22x

Share

President Under Pressure

Physician Incomes and the Extreme Shortage of High IQ Workers

Physician incomes are extraordinarily high in the United States. A new NBER paper finds that U.S. physicians earn roughly two to four times as much as their counterparts in Canada, the Netherlands, and Sweden.

Image

Why? Is it some feature particular to the US health care sector? Probably not. The same paper finds that physicians in the US have about the same relative income ranking as in Canada, the Netherlands, and Sweden. In other words, lots of high-skill workers in the US earn high incomes and physicians don’t look unusual relative to these other high-skill groups.

That is exactly what one would expect in an economy with an extreme shortage of high-IQ, high-skill workers. The US is a uniquely productive economy for high-skill workers which is why the US demand for foreign workers and the foreign demand to immigrate are so strong, especially at the high end.. By one estimate, “immigrants account for 32 percent of aggregate U.S. innovation.”

Immigration of high-skill workers such as with the H-1B and EB-1,2,3 programs, together with stronger U.S. education, is one way to reduce the shortage of high-skill workers. The alternative is simpler: make the economy less dynamic and less rewarding for talent. Then wages would fall and fewer ambitious people would bother coming. A solution but only if your preferred cure for scarcity is decline.

The post Physician Incomes and the Extreme Shortage of High IQ Workers appeared first on Marginal REVOLUTION.

       

Comments

Related Stories

 

The American demand for guns (and for non-lethal firearms), by Alsan, Schwartzstein, and Stantcheva

 The American market for guns is among the most complex of controversial markets, since gun purchases are regarded by many Americans as repugnant, while to many others (and in the eyes of the law*) they are protected. So the US debate about guns is conducted in a restricted space.

Here's a new paper that takes an unusually nuanced, empirical approach to understanding possible paths forward. In particular, it introduces non-lethal firearms into a survey and experiment. 

The Universal Pursuit of Safety and the Demand for (Lethal, Non-Lethal or No) Guns, by Marcella Alsan, Joshua Schwartzstein & Stefanie Stantcheva, NBER Working Paper 34962, DOI 10.3386/w34962, March 2026 

Abstract: "Lethal firearm ownership is deeply polarizing in the United States. We show that beneath this polarization, owners and non-owners share a common objective — safety — but disagree sharply about whether lethal firearms achieve it. Using an original survey of more than 5,400 respondents combined with randomized experiments, we document that owners feel safe and confident with firearms, while non-owners on balance feel less safe around them and perceive large private costs and social harms. Demand for lethal firearms is nonetheless potentially large and growing: one-third of non-owners express interest in acquiring one — these individuals report the lowest day-to-day safety — while very few owners would consider reducing their holdings. Persuading owners to relinquish firearms without any replacement appears unrealistic; the more tractable margins may be safe storage and non-lethal substitution for additional purchases. We organize these patterns through a framework centered on a perceived safety possibilities frontier (SPF) — the safety outcomes a household believes achievable with different combinations of lethal and non-lethal tools. Households may differ in firearm demand because they face different risk environments, weigh protective benefits against harms differently, or hold different beliefs about the frontier. Our descriptive evidence points to heterogeneous beliefs as important drivers, suggesting that levers such as information could shift the perceived frontier. These patterns motivate three experimental treatments: one on the private legal/medical costs of lethal firearm ownership, and two on a non-lethal firearm (NLFA), with and without a conservative pundit’s endorsement. The private-cost treatment increases concern about harms among all respondents and support for safe storage policies, and modestly raises stated willingness to keep lethal firearms locked. NLFA treatments raise willingness to pay for an NLFA, to keep lethal firearms locked, and support for incapacitating over lethal firearms and for policies encouraging NLFAs. These effects are largely persistent. Importantly, NLFA information does not increase willingness to reduce lethal firearm ownership but does increase willingness to store lethal firearms safely. Our results suggest that many owners perceive the SPF differently from nonowners, neglecting harms or less-lethal alternatives, yet remain open to such tools. Overall, individuals share a common goal — safety — yet disagree about the means. Although these disagreements appear entrenched, people remain receptive to alternatives that might command broader agreement."

 

#########

*The 2nd Amendment to the Constitution says 

"A well regulated Militia, being necessary to the security of a free State, the right of the people to keep and bear Arms, shall not be infringed.

 (Only the part in bold seems, to my unlawyerly eyes, to have played much part in American jurisprudence.)

Streaming experts

I wrote about Dan Woods' experiments with streaming experts the other day, the trick where you run larger Mixture-of-Experts models on hardware that doesn't have enough RAM to fit the entire model by instead streaming the necessary expert weights from SSD for each token that you process.

Five days ago Dan was running Qwen3.5-397B-A17B in 48GB of RAM. Today @seikixtc reported running the colossal Kimi K2.5 - a 1 trillion parameter model with 32B active weights at any one time, in 96GB of RAM on an M2 Max MacBook Pro.

And @anemll showed that same Qwen3.5-397B-A17B model running on an iPhone, albeit at just 0.6 tokens/second - iOS repo here.

I think this technique has legs. Dan and his fellow tinkerers are continuing to run autoresearch loops in order to find yet more optimizations to squeeze more performance out of these models.

Tags: definitions, llms, ai, autoresearch, generative-ai, kimi, local-llms, qwen

Quoting Neurotica

slop is something that takes more human effort to consume than it took to produce. When my coworker sends me raw Gemini output he’s not expressing his freedom to create, he’s disrespecting the value of my time

Neurotica, @schwarzgerat.bsky.social

Tags: ai-ethics, slop, generative-ai, ai, llms

datasette-files 0.1a2

Release: datasette-files 0.1a2

The most interesting alpha of datasette-files yet, a new plugin which adds the ability to upload files directly into a Datasette instance. Here are the release notes in full:

  • Columns are now configured using the new column_types system from Datasette 1.0a26. #8
  • New file_actions plugin hook, plus ability to import an uploaded CSV/TSV file to a table. #10
  • UI for uploading multiple files at once via the new documented JSON upload API. #11
  • Thumbnails are now generated for image files and stored in an internal datasette_files_thumbnails table. #13

Tags: annotated-release-notes, datasette

Quoting David Abram

I have been doing this for years, and the hardest parts of the job were never about typing out code. I have always struggled most with understanding systems, debugging things that made no sense, designing architectures that wouldn't collapse under heavy load, and making decisions that would save months of pain later.

None of these problems can be solved LLMs. They can suggest code, help with boilerplate, sometimes can act as a sounding board. But they don't understand the system, they don't carry context in their "minds", and they certianly don't know why a decision is right or wrong.

And the most importantly, they don't choose. That part is still yours. The real work of software development, the part that makes someone valuable, is knowing what should exist in the first place, and why.

David Abram, The machine didn't take your craft. You gave it up.

Tags: careers, ai-assisted-programming, generative-ai, ai, llms

Treason in the Futures Markets

A graph showing the price of a stock market

AI-generated content may be incorrect.

Source: Yahoo Finance

Over the weekend Donald Trump threatened dire vengeance on Iran unless its government opened the Strait of Hormuz within 48 hours, a deadline that would expire Monday evening in Washington. Specifically, he announced that the U.S. would begin bombing power plants — plants that supply electricity to Iran’s civilian population — unless the Strait was cleared.

But at 7:05 AM Monday Trump called the whole thing off — for five days, he said, but many people are assuming that the threatened action, which would have been a massive war crime, is now off the table.

The reason for the about-face, he claimed, was that the U.S. was engaged in productive negotiations with Iranian officials — although this seems to have come as news to the Iranians, who denied that any such negotiations are taking place. Sad to say, in this case, as I tried to explain yesterday, the fanatical, brutal Iranian regime is more credible than the president of the United States. Is he lying or living in a fantasy world? Neither possibility is comforting.

But in any case, Trump’s sudden climb-down was startling. Who could have seen this coming?

The answer is, the person or people who bought large quantities of stock market futures and sold large quantities of oil futures around 15 minutes before Trump’s announcement. As CNBC reports,

At around 6:50 a.m. in New York, S&P 500 e-Mini futures trading on the CME recorded a sharp and isolated jump in volume, breaking from an otherwise subdued premarket backdrop. With thin liquidity typical of early trading hours, the sudden burst stood out as one of the largest volume moments of the session up to that point.

A similar pattern was observed in oil markets. West Texas Intermediate May futures also saw a noticeable pickup in trading activity at roughly the same time, with a distinct volume spike interrupting otherwise quiet conditions.

This “sharp and isolated jump in volume” — which you can see for the oil futures market in the chart at the top of this post — was especially bizarre because there were no major news items — no major publicly available news items — to drive sudden big market transactions. The story would be baffling, except that there’s an obvious explanation: Somebody close to Trump knew what he was about to do, and exploited that inside information to make huge, instant profits.

This wasn’t the first time something like this has happened under Trump. There were large, suspicious moves in the prediction market Polymarket before previous attacks on Iran and Venezuela. But this front-running of U.S. policy was really large: the Financial Times estimates the sales of oil futures in that magic minute Monday morning at about $580 million, and that doesn’t count the purchases of stock futures.

When officers of a company or people close to them exploit confidential information for personal financial gain, that’s insider trading — which is illegal. But we have another word for situations in which people with access to confidential information regarding national security — such as plans to bomb or not to bomb another country — exploit that information for profit. That word is “treason.”

Why is profiting from insider information about national security decisions effectively a form of treason? First, it’s hard to think of a more fundamental principle for officials we entrust with important decisions, especially those that involve national security, that they or people they know should not be allowed to exploit their positions for personal gain.

Second, financial trading based on what should be closely held secrets reveals information to current or potential foreign adversaries. To exaggerate a bit, but only a bit, who needs to bribe agents within the government, or recruit them with honey traps, when you can infer the same information by keeping track of transactions on futures markets?

Finally, there isn’t that big a gap between using knowledge of national secrets to make lucrative financial trades and simply selling those secrets to the highest bidder. Once you’re breached the line that says you shouldn’t profit personally from access to information that is or should be highly classified, the line between trading based on state secrets and selling those secrets directly is a blurry one.

In fact, I’d very much like to know exactly who was making those trades yesterday morning. Were they people directly in the know, or billionaires/traders who paid people in the know for tips?

I’m sure we’ll find out once Kash Patel’s FBI carries out its careful, no-holds-barred investigation.

For the humor-impaired, that was a joke. However, I do believe that the culprits will be easy to determine once Democrats are back in power, and they must apply the full force of law to the people responsible.

One question that may be harder to resolve is the extent to which the possibility of insider trading may actually have influenced policy. Are decisions about war and peace in part serving the cause of market manipulation rather than the national interest? If you dismiss this as unthinkable, you just haven’t been paying attention.

There’s a broader lesson here: You can’t trust a corrupt government to protect national security. And our government is now utterly corrupt: It’s hard to find a single senior official, from the president on down, who treats public office as a grave responsibility rather than an opportunity for personal self-aggrandizement and profit.

Among other things, deeply corrupt governments tend to be very bad at waging war, no matter how much they may exalt “warrior ethos” and “lethality.” When we do a post-mortem on how the Iran debacle happened, arrogant ignorance may still get top billing. But grotesque venality will come a close second.

MUSICAL CODA

Adventures in Fantasy Diplomacy

Another day in America’s self-immolation as a Great Power.

More like this on my YouTube channel

Transcript

It’s Monday morning. Donald Trump has, at least for the time being, called off plans to bomb Iran’s civilian infrastructure. He has done so because, according to him, highly productive negotiations are underway involving the government of Iran, an invisible six-foot white rabbit, and his Canadian girlfriend.

Hi, I’m Paul Krugman. What I just said is not strictly true, or it’s not all true. Trump did not say anything about the invisible rabbit or the Canadian, but the gist of it is true. He said that there’s highly productive talks underway. And shortly afterwards, the Iranian government and Iranian state media said, no, they aren’t. This is not happening.

I’m not going to say that Iranian state media is necessarily a credible source, but the odds are that they are in fact telling the truth and the President of the United States is either lying or fantasizing or both. There’s really no reason at all to believe that anything like what he said is happening is in fact happening.

Why do I say that, Aside from the fact that Trump has not exactly been truthful on a lot of things? But beyond that, there are three important reasons to believe he might be making this stuff up.

First, he put himself in a very bad spot with his threat to commit a massive war crime if Iran doesn’t open the Strait of Hormuz. and must be looking for a way out. Another president at another time might say that on careful consideration, We have recalibrated the policy or something like that. Trump doesn’t do that. Trump is always winning, never admits that he’s had a setback, never admits that he’s changed his mind.

So saying that, oh, the Iranians have come to the table, probably big, strong Iranians with tears in their eyes, but anyway, that the Iranians have come to the table and that’s why we’re not doing what I said we would do is a very Trumpian out.

Second, Why would the Iranians be making a deal at this point? We can talk a lot about how the war is going, but it’s pretty clear that as the Iranians are likely to see it, they’re winning. I mean, they’re not winning militarily, but that was never on the cards. They are, they have successfully turned what was supposed to be a lightning decapitation of their government into a protracted contest in relative ability to bear pain and all indications are that the Iranians are nowhere near cracking and all indications are that the United States, although obviously we’re not losing thousands of people, and we are having our whole life disrupted, but the American public really doesn’t like higher gas prices, does not believe Trump. The clock is ticking for Trump on this in a way that it is apparently not for the Iranian regime. So Iran has has the upper hand here. And very hard to see why they would be wanting to make a deal until they basically humiliated us substantially more.

Finally, consider possible motives. Imagine that you were somebody close to Trump, somebody close enough to actually have an influence on his decisions as well as inside knowledge. Here’s what you could have done really just between last night and now. You could have sold a bunch of crude oil futures, at very high prices, Brent was over $112 over the weekend, then bought them back immediately after Trump’s announcement of triumphal progress, but before the Iranians said that is not happening. And you could have turned a very, very nice, very large profit.

To say that insider trading might be driving U.S. policy would have been outrageous. in the past. Who thinks that that’s beyond the realm of possibility now? So all of this could be happening.

Last point to make here. Think about how much America’s position in the world has been weakened, not just by apparent failure to subdue a fourth-rate power, but by the fact that everybody now knows that you cannot trust anything, cannot trust any promises the United States makes, you cannot count on the United States carrying through with promises, with threats, not just promises, but threats are also incredible in the sense of not being all credible, and that the default assumption should be that anything that this administration says is a lie.

That is a really, really bad thing. That is, you know, influence in the world power is not simply a matter of missiles and bombs, although we seem to be running low on those too. It’s very much a matter of people taking what you say and what you promise and what you threaten seriously. And we are not ruled by serious people.

Have a great day.

When Hyperglobalization Meets Chaos

Chokehold - Wikipedia

Donald Trump and his minions are having a meltdown. On Saturday, Trump lashed out at the New York Times for an article saying the obvious — that many of his original war goals, whatever they may have been, remain unaccomplished. Just an hour later, he posted a threat to commit massive war crimes, saying that if Iran doesn’t open the Strait of Hormuz within 48 hours — that is, today — he will order U.S. forces to begin bombing civilian power plants.

Why the desperation? The answer is obvious. It’s turning out not just that regime change — if that was really the goal — is hard to engineer, but also that the world is a lot more dependent on the Strait of Hormuz than Trump and co. seem to have realized. And what is becoming increasingly clear is that this dependence extends well beyond oil and natural gas.

In addition to oil and gas, the Gulf region is a key global source of fertilizer. It produces about a third of the world’s helium — and helium isn’t just for party balloons, it’s key to production of semiconductors and has important medical uses. And — this I didn’t know — the Gulf is a choke point for pharmaceuticals, with many key ingredients normally shipped through Hormuz and many final products normally being flown to their destinations via Dubai and other Gulf airports.

So are we learning that the Persian Gulf is a uniquely crucial choke point for the world economy? I don’t think so. It’s certainly an important choke point. But it’s not unique. If the Hormuz crisis seems bad, think about the disruption to global supply chains if China were to attack Taiwan or if North Korea were to attack South Korea. Taiwan accounts for over 60% of the world supply of semiconductors and over 90% of the supply of the most advanced semiconductors. South Korea is a major exporter of memory chips. An ongoing imbroglio between the Dutch government and the Chinese chip company Nexperia, based in the Netherlands, has threatened to upend auto production around the world. India is a major exporter of key pharmaceuticals, including vaccines. Trump backed down on his Liberation Day tariffs imposed on China because it is by far the greatest source of rare earths and retaliated by cutting off the flow. And on and on.

These are not examples of globalization but of hyperglobalization, a term coined by Arvind Subramanian and Martin Kessler. In a classic 2013 paper — updated in 2023 — Subramanian and Kessler noted that world trade had grown much faster than world GDP between the 1980s and the eve of the 2008 financial crisis. In the 80s world trade wasn’t much bigger as a share of world GDP than it had been before World War I; by 2008 it was on a whole other level.

But as they documented, this rapid growth in world trade was not simply a matter of countries trading more, but of world production becoming much more complex and interdependent. For example, if you ask where, say, an iPhone is produced, there isn’t a simple answer. The phone is assembled in China or India, but the components inside the phone are produced in many countries, and these components themselves use inputs produced in many countries.

Over the past 40 years or so we’ve built a world in which national economies are so interdependent that there are potential choke points everywhere you look. Yet this global system of interdependence was reasonably workable as long as a key linchpin – the United States – supported it and made sure that goods, services and money kept flowing freely.

This is not to say that the system was perfect. It’s not clear that we should depend on imports for some vital goods, like vaccines or rare earths. But now we have the worst of both worlds. The world is now highly dependent upon a complex global supply chain and the erstwhile leader of the free world is erratic. Does anyone know what our Iran policy will be a week from now, or even tomorrow? Moreover, the Iran debacle has revealed us to be far weaker than most people realized – so weak that we are afraid to stop Iran from exporting oil even as we threaten to destroy its civilian infrastructure. The truth is, even our allies no longer trust or respect us.

So what we are facing now isn’t simply a matter of consumers losing the ability to purchase imports. Instead we are facing a scenario in which producers lose access to crucial inputs they need to keep producing. The crisis in the Strait of Hormuz is raising prices at the pump, which is bad. But it is also threatening to deprive American farmers of fertilizer during planting season, to cut off essential helium supplies to semiconductor producers in Asia, to deprive pharmaceutical producers of crucial materials, and more.

In short, terrifying as the Hormuz crisis is, I worry that it may be only the beginning. For a world economy that is riddled with multiple potential choke points can no longer rely on a strong, reliable and trustworthy America to act as a guarantor of the system. While things are bad now, they may very well get a lot worse.

MUSICAL CODA

I am, however, all for cultural globalization

The clock in our genes

Microscope slides with various textures and markings, some labelled, with a yellow hue on the right side.

The biologist Victoria Foe discovered a timing device in ‘junk’ DNA that could unlock the evolution of complex life

- by Beatrice Steinert

Read on Aeon

The HTML Review: Issue 05

What a lovely thing to drop amidst my recent consternation over the state of web design.

To paraphrase Richard III: A horse, a horse! My kingdom for native app developers with the conviction of the artist-developers in The HTML Review.

 ★ 

[Sponsor] npx workos: From Auth Integration to Environment Management, Zero ClickOps

npx workos@latest launches an AI agent, powered by Claude, that reads your project, detects your framework, and writes a complete auth integration into your codebase. No signup required. It creates an environment, populates your keys, and you claim your account later when you’re ready.

But the CLI goes way beyond installation. WorkOS Skills make your coding agent a WorkOS expert. workos seed defines your environment as code. workos doctor finds and fixes misconfigurations. And once you’re authenticated, your agent can manage users, orgs, and environments directly from the terminal. No more ClickOps.

See how it works →

 ★ 

Gasoline Prices Around the World

I love a single-purpose website like this. (I had no idea gas was so expensive in Hong Kong.)

 ★ 

WWDC 2026: June 8–12

Apple Newsroom:

WWDC kicks off with the Keynote and Platforms State of the Union on Monday, June 8. The conference continues online all week with over 100 video sessions and interactive group labs and appointments, where developers can connect directly with Apple engineers and designers to explore the latest announcements. The conference will take place on the Apple Developer app, website, and YouTube channel; and on the Apple Developer bilibili channel in China.

I’ve never before heard of Bilibili, which seems to be a Chinese equivalent to YouTube.

As usual, there’s a lottery of sorts to attend the keynote in person.

 ★ 

From the DF Archive, a Decade Ago: ‘The Industry Is Fucked Up’

Here’s a post from 2015, linking to Rene Ritchie, then still at iMore, explaining how iMore found itself serving ever worse (and more reader hostile) ads. Not much has changed regarding the state of web advertising in a decade, and iMore — once a truly great site — is defunct.

 ★ 

The Business Climate is always bad, but it never matters

In 2018, surveys said 60 percent of Oregon businesses thought the state’s business climate was bad and getting worse.

If Oregon were such a bad place to do business, you would think our economy would have done badly.  But the economic data show a very different picture.

  • Oregon output per worker has grown faster than all but seven states in the past three decades.
  • Oregon’s per capita income is higher now than it has been, relative to the national average in the past two decades.
  • In the latest year for which data are available, Oregon was a net gainer of businesses moving across state lines, outperforming Washington State, and California (which lost businesses)
  • Oregon’s metro areas have performed in the top dozen compared to their peers in prosperity over the past decade, according to independent analyses by the Brookings Institution.

Vague perceptions that Oregon has a bad  “business climate” have not prevented Oregon’s economy from outperforming most of the rest of the nation.

Businesses invariably complain about taxes and regulation; surveys don’t tell us much about how economies prosper.

The business climate is always terrible

It may always be sunny in Philadelphia, but one of the eternal truths is that businesses will always complain about the cost of paying taxes and complying with government regulations.  Opinion surveys invariably show businesses complain about the local business climate, even when the economy is performing well.

No one likes paying taxes.  Regulations, by definition, restrict and require you to do things that you might not want to do.  There’s a kind of inveterate complaining and “grass is always greener” view of taxes and regulation.  And familiarity breeds contempt.  While businesses know their local situation well, these same businesses actually know little or nothing about taxes and regulations in other places–they just assume they must be lighter and easier than the ones they actually have to pay and obey.

That’s why, even when the local economy is thriving, surveys will show businesses rate their own area’ s business climate as bad.  For example, here’s a 2018 survey by DHM research undertaken for the Oregon Business Council.  It shows that three-fifths of Oregon Businesses rated Oregon’s business climate somewhat worse or much worse than in neighboring states.  A similar margin complained that the business climate was getting worse.

 

Graphic  reproduced from University of Oregon Report on Business Recruitment.

Like all surveys, this assumes that the typical respondent actually knows something about how the business climate in Oregon compares to other states.  How they would actually know much about doing business elsewhere is never established.

How Oregon’s terrible business climate a decade ago affected our economy

It’s worth considering how the Oregon economy was performing, and has performed in the years since that survey was taken.  If perceptions of business climate mattered, you would think that Oregon would do much worse that neighboring states considering that roughly three-fifths of all businesses told surveyors the business climate was bad and getting worse.

But there is little or no evidence that Oregon’s economy was underperforming the national average or neighbors in the years around 2018, or since.  If anything, Oregon is an out-performer.

First, as one indicator, consider how many businesses moved in or out of Oregon compared to these other states.  You’d think that if the business climae were really bad, more businesses would be moving out of Oregon than move in to the state.  The Bureau of Labor Statistics actually gathers data on this.  It found that in 2021, the most recent year for which data are available, Oregon had a net inflow of businesses (35) from other states.

Akbar Sadeghi, Kevin Cooksey, and Anthony Colavito, “Firm migrations in the United States: magnitude and trends,”
Monthly Labor Review, U.S. Bureau of Labor Statistics, June 2023,  https://doi.org/10.21916/mlr.2023.11

Oregon  ranked eleventh nationally in net business inflows. Meanwhile, of surrounding states, California (-456) had a net loss of  businesses.  Oregon outperformed Washington (+17), while Idaho (+68) and fast-growing Nevada (+103) attracted more businesses than they lost.   While interstate movement of business gets lots of attention, it actually doesn’t matter much to state economic performance–which is really driven by the growth and innovation of existing businesses, and the formation of new businesses. Other measures, like productivity and income are much more robust and important measures of economic success.

Second, Oregon’s productivity and income are growing faster than in the rest of the nation. Our productivity growth over the past couple of decades is among the top ten states.  Our per capita income–the best single measure of economic prosperity–is higher than its been relative to the nation in a quarter century.

Overall, state economic indicators today are robust.  Statewide, Oregon gross domestic product per worker has increased faster than in the rest of the country for the past quarter century. 

 

Oregon’s per capita personal income now stands at about 97 percent of the US average, as high as it has been for the past two decades.   Since 2018–the date of the business climate survey, per capita income continued to increase relative to the nation, from 94 percent of the national average to 97 percent.

 

 

Third,  when we examine Oregon’s leading metropolitan areas, they have all outperformed their peers nationally.  The latest data from the independent and authoritative Brookings Institution Metro Monitor shows that when measured by prosperity, growth and inclusion, all of Oregon’s metros are healthy and performing well.  Portland, Salem and Bend all rank in the top ten among their peers nationally, and Eugene-Springfield ranks twelfth.

  • Portland ranks tenth overall in prosperity among large US metro areas, led by the seventh fastest growth in average annual wages over the past decade according to Brookings tabulations.  Portland also had the 12th fastest increase in productivity and the 16th largest improvement in the standard of living over that time period. Prosperity is driven by three measures:  productivity, which is the foundation of incomes, growth in average wages, and improvements in the standard of living.  Distributional issues are addressed more specifically in the “inclusion” measures including median earnings growth and the change in the poverty rate.
  • Portland also ranks in the top third of large metro areas, 18th overall in measures of inclusion, led by the 14th fastest improvement in median (middle class) earnings over the past decade.  While “inclusion” seems to generate controversy in some contexts, it shouldn’t here:  this Brookings indicator measures whether the economy works for all parts of the economic spectrum.
  • Even Portland’s aggregate economic growth is faster than the average for all large US metro areas.  The region’s Gross Metropolitan Product, the aggregate value of output,  rose  faster than the nation and all but 20 other metro areas.

In addition, Oregon’s three “mid-sized” metropolitan areas also rank well above average in their economic performance according to the Brookings Metro Monitor.  Salem, Eugene-Springfield, and Bend are among 85 US metro areas with populations between 250,000 and 500,000.  Bend ranks first in prosperity and growth of these areas, Salem ranks fourth in prosperity and seventh in growth, and Eugene is twelfth for prosperity, and 30th for growth.  All these cities also rank in the top fifth of all metro areas for inclusion.  

Economies & businesses have ups and downs, but they don’t signify a “bad business climate.”

None of this is to say that Oregon, like other states and the nation as a whole, doesn’t experience economic cycles, and that some businesses experience difficult times.  Like the nation, Oregon was hit hard by the Covid pandemic, and subsequent recession.  Portland–like other downtowns–is still coping with the effects of increased work-from-home on commercial office vacancies.  And when major employers–like Intel and Nike–both have bad years, as they have recently, that affects our local economy.  But economic cycles and problems and particular businesses aren’t signals of a flawed business climate.

On the Giving Pledge

From my latest piece from The Free Press:

A lot of America’s most effective giving was done by the early “robber barons,” such as Carnegie, Mellon, and Rockefeller. Andrew Carnegie, for instance, helped to create what is now Carnegie-Mellon University, and Carnegie libraries to this day dot the country and encourage literacy and reading. The Mellon and Rockefeller art collections seeded some of America’s highest quality museums.

None of this was done with any kind of pledge. Those great 19th-century industrialists pursued high-quality philanthropic opportunities when they saw them, unencumbered by today’s massive foundation staffs. If a town wanted to set up a Carnegie library, they had to meet some standard criteria, and they started by sending a letter to Carnegie’s private secretary, James Bertram. The Carnegie Corporation, which in later years led much of the philanthropy, had mainly clerical staff and did not have a full-time salaried president until after Carnegie’s death. It remains to be seen whether today’s philanthropists, including the ones who signed the Giving Pledge, will do as well.

There is much more at the link.

The post On the Giving Pledge appeared first on Marginal REVOLUTION.

       

Comments

Related Stories

 

The rise of China as a global innovator in pharma (incentives matter)

This paper examines China’s transition from pharmaceutical “free rider” to global innovator over the last decade. In 2010, China accounted for less than 8% of global clinical trials; by 2020, it had surpassed the US in annual registered clinical trial volume. To study this transformation, we compile a comprehensive, synchronized database spanning the pharmaceutical drug development supply chain, covering scientific publications, clinical trials, drug development milestones for China, the U.S., and Europe, alongside drug sales and government policies over the same period. We provide strong evidence that China’s rise was primarily driven by the National Reimbursement Drug List (NRDL) reform, which dramatically expanded the effective market size for innovative drugs. We document a sharp rise in both the quantity (86% increase) and novelty of drug trials post reform, with growth concentrated in reform-exposed disease categories, first- or best-in-class drugs, and among domestic firms. A decomposition exercise reveals that the NRDL reform accounts for 43% of the growth in oncology trial activity, nearly doubling the combined contribution of upstream knowledge accumulation and talent flows (24%), while other government policies play a minor role. Finally, dynamic gains from induced innovation exceed the reform’s static gains in consumer access to innovative drugs by threefold, underscoring the importance of accounting for the reform’s long-run effects on innovation incentives in addition to near-term improvements in drug affordability.

That is from a new NBER working paper by Panle Jia Barwick, Hongyuan Xia & Tianli Xia.  That said, by one metric all ten of the most influential science papers of the last decade came from the United States.

The post The rise of China as a global innovator in pharma (incentives matter) appeared first on Marginal REVOLUTION.

       

Comments

Related Stories

 

Tropical Cyclone Narelle Crosses Australia

A tropical cyclone with spiraling clouds and a well-defined eye sits off the coast of Queensland, Australia.
Tropical Cyclone Narelle approaches northern Queensland, Australia, in this image acquired on March 19, 2026, with the VIIRS (Visible Infrared Imaging Radiometer Suite) on the NOAA-21 satellite.
NASA Earth Observatory/Michala Garrison

Tropical Cyclone Narelle traced a long path across the northern edge of Australia, bringing damaging winds and rain to areas already saturated with abundant precipitation. The system made separate landfalls in three different states and territories between March 20 and 23, 2026.

These satellite images show Narelle at about 2 p.m. local time (04:00 Universal Time) on March 19. By that time, the tropical cyclone was poised to make its first and most powerful landfall after intensifying over the Coral Sea. Sea surface temperatures along its path were 0.5–1.0 degrees Celsius above average, experts noted, which helped fuel its rapid intensification.

As it approached Queensland, the storm intensified to a category 5 on Australia’s tropical cyclone scale with maximum sustained winds up to 225 kilometers (140 miles) per hour—equivalent to a category 4 hurricane on the Saffir-Simpson wind scale. However, because Narelle’s structure was compact by cyclone standards, the most damaging winds extended a relatively short distance from its core. Narelle reached the Cape York Peninsula, a sparsely populated region in northern Queensland, on the morning of March 20.

A tropical cyclone with spiraling clouds and a well-defined eye sits off the coast of Queensland, Australia.
Tropical Cyclone Narelle churns over the Coral Sea in this image acquired on March 19, 2026, with the VIIRS (Visible Infrared Imaging Radiometer Suite) on the NOAA-21 satellite.
NASA Earth Observatory/Michala Garrison

Narelle re-emerged over the Gulf of Carpentaria as a weakened cyclone, and wind speeds continued to decline as it neared the Northern Territory’s coast. The storm made its second landfall on the afternoon of March 21 with maximum sustained winds up to 148 kilometers (92 miles) per hour. It traversed the territory’s “Top End” until March 22. 

More than 100 millimeters (4 inches) of rain fell across a wide area of the Northern Territory during Narelle’s passage, according to news reports. Australia’s Bureau of Meteorology (BOM) warned of minor to major flooding of several rivers. The storm arrived amid a severe wet season in the region that had already caused damaging floods and prompted evacuations.

After exiting the Northern Territory, the storm briefly crossed water and reached the northern Kimberley region of Western Australia as a tropical low on March 23. Even after Narelle’s multiple strikes in northern Australia, the storm may keep going. On March 23, the BOM said Narelle could potentially re-intensify into a tropical cyclone off the coast of Western Australia, curve south, and track along the coastline toward Perth.

Cyclones with several landfalls on mainland Australia are rare but not unheard of. In 2005, Ingrid followed a similar path to Narelle. That “triple-strike” storm, however, made landfall each time as a category 3 tropical cyclone or higher.

NASA Earth Observatory images by Michala Garrison, using VIIRS data from NASA EOSDIS LANCEGIBS/Worldview, and the Joint Polar Satellite System (JPSS). Story by Lindsey Doermann.

References & Resources

You may also be interested in:

Stay up-to-date with the latest content from NASA as we explore the universe and discover more about our home planet.

A Second Cyclone Slams Madagascar
3 min read

Widespread flooding affected tens of thousands of people after cyclones Fytia and Gezani drenched the island.

Article
Australia’s “Red Centre” Turns Green
3 min read

Abundant rainfall in February and March 2026 transformed the desert landscape of Central Australia.

Article
Imelda and Humberto Crowd the Atlantic
3 min read

The tropical cyclones are close enough in proximity that they may influence one another.

Article

The post Tropical Cyclone Narelle Crosses Australia appeared first on NASA Science.

Arianespace to launch Katalyst servicing spacecraft

Ariane 64 launch

Katalyst Space Technologies will launch a geosynchronous orbit servicing spacecraft on an Ariane 6 in 2027.

The post Arianespace to launch Katalyst servicing spacecraft appeared first on SpaceNews.

York Space rides defense demand as procurement changes cloud outlook

The company points to backlog and commercial wins as it navigates transition in Space Development Agency-led programs

The post York Space rides defense demand as procurement changes cloud outlook appeared first on SpaceNews.

The software behind Artemis, Gateway and America’s defense in space deserves its own strategy

SLS/Orion 2026 Feb 2

When we talk about national space infrastructure, we talk about rockets, launch pads and ground stations. We invest billions in the vehicles that carry astronauts to the moon and the telescopes that peer to the edge of the universe. But we rarely talk about the software that makes all of it work. That is a […]

The post The software behind Artemis, Gateway and America’s defense in space deserves its own strategy appeared first on SpaceNews.

Lunar lander developers say they are ready to meet anticipated increased NASA demand

Nova-c

Two lunar lander companies say they’re ready to meet NASA’s plans for a major increase in the cadence of landings but offered few details about how they would do so.

The post Lunar lander developers say they are ready to meet anticipated increased NASA demand appeared first on SpaceNews.

Swissto12 to build small optical relay GEO satellite for Space Compass

Swissto12, the Switzerland-based small geostationary satellite specialist, has signed a contract to build the first optical relay spacecraft using its washing machine-sized HummingSat platform.

The post Swissto12 to build small optical relay GEO satellite for Space Compass appeared first on SpaceNews.

Space Force adds cyber units to guard rocket launches

F9 launch

‘Cyber defense’ squadrons at Cape Canaveral and Vandenberg reflect growing concern over malicious hacks

The post Space Force adds cyber units to guard rocket launches appeared first on SpaceNews.

Amazon Leo targets faster deployment cadence as deadline pressure mounts

Amazon vowed to double the annual launch rate for its low Earth orbit broadband constellation to more than 20 missions, hinging largely on rockets yet to prove themselves at scale.

The post Amazon Leo targets faster deployment cadence as deadline pressure mounts appeared first on SpaceNews.

Parsons unveils new satellite antenna aimed at military market

Hybrid antenna developed by Parsons and Raven Defense combines a six-meter parabolic dish with an electronically steered phased-array feed

The post Parsons unveils new satellite antenna aimed at military market appeared first on SpaceNews.

Sovereign demand and institutional capital reshape space economy

Large infrastructure funds are “carefully looking” into entering the space sector, Seraphim Space CEO Mark Boggett said March 23, giving early-stage investors more confidence to back ambitious startups that may later need billions of dollars to scale.

The post Sovereign demand and institutional capital reshape space economy appeared first on SpaceNews.

Rewriting a 20-year-old Python library

Way back in 2005, lots of people (ordinary people, not just people who work in tech) used to have personal blogs where they wrote about things, rather than using third-party short-form social media sites. I was one of those people (though I wasn’t yet blogging on this specific site, which launched the following year). And back in 2005, and even earlier, people liked to have comment sections on their blogs where readers could leave their thoughts on posts. And that was an absolute magnet for spam.

There were a few attempts to do something about this. One of them was Akismet, which launched that year and provided a web service you could send a comment (or other user-generated-content) submission to, and get back a classification of spam or not-spam. It turned out to be moderately popular, and is still around today.

The folks behind Akismet also documented their API and set up an API key system so people could write their own clients/plugins for various programming languages and blog engines and content-management systems. And so pretty quickly after the debut of the Akismet service, Michael Foord, who the Python community, and the world, tragically lost at the beginning of 2025, wrote and published a Python library, which he appropriately called akismet, that acted as an API client for it.

He published a total of five releases of his Python Akismet library over the next few years, and people started using it. Including me, because I had several use cases for spam filtering as a service. And for a while, things were good. But then Python 3 was released, and people started getting serious about migrating to it, and Michael, who had been promoted into the Python core team, didn’t have a ton of time to work on it. So I met up with him at a conference in 2015, and offered to maintain the Akismet library, and he graciously accepted the offer, imported a copy of his working tree into a GitHub repository for me, and gave me access to publish new packages.

In the process of porting the code to support both Python 2 and 3 (as was the fashion at the time), I did some rewriting and refactoring, mostly focused on simplifying the configuration process and the internals. Some configuration mechanisms were deprecated in favor of either explicitly passing in the appropriate values, or else using the 12-factor approach of storing configuration in environment variables, and the internal HTTP request stack, based entirely on the somewhat-cumbersome (at that time) Python standard library, was replaced with a dependency on requests. The result was akismet 1.0, published in 2017.

Over the next six years, I periodically pushed out small releases of akismet, mostly focused on keeping up with upstream Python version support (and finally going Python-3-only, in 2020 when Python 2.7 reached its end of upstream support). But beginning in 2024, I embarked on a more ambitious project which spanned multiple releases and turned into a complete rewrite of akismet which finished a few months ago. So today I’d like to talk about why I chose to do that, how the process went, and what it produced.

Why?

Although I’m not generally a believer in the concept of software projects being “done” and thus no longer needing active work (in the same sense as “a person isn’t really dead as long as their name is still spoken”, I believe a piece of software isn’t really “done” as long as it has at least one user), a major rewrite is still something that needs a justification. In the case of akismet, there were two specific things I wanted to accomplish that led me to this point.

One was support for a specific feature of the Akismet API. The akismet Python client’s implementation of the most important API method—the one that tells you whether Akismet thinks content is spam, called comment-check—had, since the very first version, always returned a bool. Which at first sight makes sense, because the Akismet web service’s response body for that endpoint is plain text and is either the string true (Akismet thinks the content is spam) or the string false (Akismet thinks it isn’t spam). Except actually Akismet supports a third option: “blatant” spam, meaning Akismet is so confident in its determination that it thinks you can throw away the content without further review (while a normal “spam” determination might still need a human to look at it and double-check). It signals this by returning the true text response and also setting a custom HTTP response header (X-Akismet-Pro-Tip: discard). But the akismet Python client couldn’t usefully expose this, since the original API design of the client chose to have this method return a two-value bool instead of some other type that could handle a three-value situation. And any attempt to fix it would necessarily change the return type, which would be a breaking change.

The other big motivating factor for a rewrite was the rise of asynchronous Python via async and await, originally introduced in Python 3.5. The async Python ecosystem has grown tremendously, and I wanted to have a version of akismet that could support async/non-blocking HTTP requests to the Akismet web service.

Keep it classy?

The first thing I did was spend a bit of time exploring whether I could replace the entire class-based design of the library. Since the very first version back in 2005, the akismet library had always provided its client as a class (named Akismet) with one method for each supported Akismet HTTP API method. But it’s always worth asking if a class is actually the right abstraction. Very often it’s not! And while Python is an object-oriented language and allows you to write classes, it doesn’t require you to write them. So I spent a little while sketching out a purely function-based API.

One immediate issue with this was how to handle the API credentials. Akismet requires you to obtain an API key and to register one or more sites which will use that API key, and most Akismet web API operations require that both the API key and the current site be sent with the request. There’s also a verify-key API operation which lets you submit a key and site and tells you if they’re valid; if you don’t use this, and accidentally start trying to use the rest of the Akismet API with an invalid key and/or site, the other Akismet API operations send back responses with a body of invalid.

As noted above, the 1.0 release already nudged users of akismet in the direction of putting config in the environment, so reading the key and site from env variables was already well-supported. But some people probably can’t, or won’t want to, use environment variables for configuration. For example: they might have multiple sets of Akismet credentials in a multi-tenant application, and need to explicitly pass different sets of credentials depending on which site they’re performing checks for. So in any function-based interface, all the functions would not only need to be able to read configuration from the environment (which at least could be factored out into a helper function), they’d also need to explicitly accept credentials as optional arguments. That complicates the argument signatures (which are already somewhat gnarly because of all the optional information you can provide to Akismet to help with spam determinations), and makes the API start to look cumbersome.

This was a clue that the function-based approach was probably not the right one: if a bunch of functions all have to accept extra arguments for a common piece of data they all need, it’s a sign that they may really want to be a class which just has the necessary data available internally.

The other big sticking point was how to handle credential verification. It requires an HTTP request/response to Akismet, so ideally you’d do this once (per set of credentials per process). Say, if you’re using Akismet in a web application, you’d want to check your credentials at process startup, and then just treat them as known-good for the lifetime of the process after that. Which is what the the existing class-based code did: it performed a verify-key on instantiation and then could re-use the verified credentials after that point (or raise an immediate exception if the credentials were missing or invalid). I really like the ergonomics of that, since it makes it much more difficult to create an Akismet client in an invalid/misconfigured state, but it basically requires some sort of shared state. Even if the API key and site URL are read from the environment or passed as arguments every time, there needs to be some sort of additional information kept by the client code to indicate they’ve been validated.

It still would be possible to do this in a function-based interface. It could implicitly verify each new key/site pair on first use, and either keep a full list of ones that had been verified or maybe some sort of LRU cache of them. Or there could be an explicit function for introducing a new key/site pair and verifying them. But the end result of that is a secretly-stateful module full of functions that rely on (and in some cases act on) the state; at that point the case for it being a class is pretty overwhelming.

As an aside, I find that spending a bit of time thinking about, or perhaps even writing sample documentation for, how to use a hypothetical API often uncovers issues like this one. Also, for a lot of people it’s seemingly a lot easier, psychologically, to throw away documentation than to throw away even barely-working code.

One class or two?

Another idea that I rejected pretty quickly was trying to stick to a single Akismet client class. There is a trend of libraries and frameworks providing both sync and async code paths in the same class, often using a naming scheme which prefixes the async versions of the methods with an a (like method_name() for the sync version and amethod_name() for async), but it wasn’t really compatible with what I wanted to do. As mentioned above, I liked the ergonomics of having the client automatically validate your API key and site URL, but doing that in a single class supporting both sync and async has a problem: which code path to use to perform the automatic credential validation? Users who want async wouldn’t be happy about a synchronous/blocking request being automatically issued. And trying to choose the async path by default would introduce issues of how to safely obtain a running event loop (and not just any event loop, but an instance of the particular event loop implementation the end user of the library actually wants).

So I made the decision to have two client classes, one sync and one async. As a nice bonus, this meant I could do all the work of rewriting in new classes with new names. That would let me mark the old Akismet class as deprecated but not have to immediately remove it or break its API, giving users of akismet plenty of notice of what was going on and a chance to migrate to the new clients. So I started working on the new client classes, calling them akismet.SyncClient and akismet.AsyncClient to be as boringly clear as possible about what they’re for.

How to handle async, part one

Unfortunately, the two-class solution didn’t fully solve the issue of how to handle the automatic credential validation. On the old Akismet client class it had been easy, and on the new SyncClient class it would still be easy, because the __init__() method could perform a verify-key operation before returning, and raise an exception if the credentials weren’t found or were invalid.

But in Python, __init__() cannot be (usefully) async, which posed the tricky question of how to perform automatic credential validation at instantiation time for AsyncClient.

As I dug into this I considered a few different options, and at one point even thought about going back to the one-class approach just to be able to issue a single HTTP request at instantiation without needing an event loop. But I wanted AsyncClient to be truly and thoroughly async, so I ended up settling for a compromise solution, implemented in two phases:

  1. Both SyncClient and AsyncClient were given an alternate constructor method named validated_client(). Alternate constructors can be usefully async, so the AsyncClient version could be implemented as an async method. I documented that if you’re directly constructing a client instance you intend to keep around for a while, this is the preferred constructor since it will perform automatic credential validation for you (direct instantiation via __init__() will not, on either class). And then…
  2. I implemented the context-manager protocol for SyncClient and the async context-manager protocol for AsyncClient. This allows constructing the sync client in a with statement, or an async with statement for AsyncClient. And since async with is an async execution context, it can issue an async HTTP request for credential validation.

So you can get automatic credential validation from either approach, depending on your needs:

import akismet


# Long-lived client object you'll keep around:
sync_client = akismet.SyncClient.validated_client()
async_client = await akismet.AsyncClient.validated_client()

# Or for the duration of a "with" block, cleaned up at exit:
with akismet.SyncClient() as sync_client:
    # Do things...

async with akismet.AsyncClient() as async_client:
    # Do things...

Most Python libraries can benefit from these sorts of conveniences, so I’d recommend investing time into learning how to implement them. If you’re looking for ideas, Lynn Root’s “The Design of Everyday APIs” covers a lot of ways to make your own code easier to use.

How to handle async, part deux

The other thing about writing code that supports both sync and async operations is how to handle the things they have in common. There are a few different ways to do this: you can write one implementation and have the other one call it. Or you can write two full implementations and live with the duplication. Or you can try to separate the I/O and the pure logic as much as possible, and reuse the logic while duplicating only the I/O code (or, since the two implementations aren’t perfect duplicates, writing two I/O implementations which heavily rhyme).

For akismet, I went with a hybrid of the last two of these approaches. I started out with my two classes each fully implementing everything they needed, including a lot of duplicate code between them (in fact, the first draft was just one class which was then copy/pasted and async-ified to produce the other). Then I gradually extracted the non-I/O bits into a common module they could both import from and use, building up a library of helpers for things like validating arguments, preparing requests, processing the responses, and so on.

One final object-oriented design decision here (or, I guess, not object-oriented decision): that common code is a set of functions in a module. It’s not a class. It’s not stateful the way the clients themselves are: turning an Akismet web API response into the desired Python return value, or validating a set of arguments and turning them into the correct request parameters (to pick a couple examples) are literally pure functions, whose outputs are dependent solely on their inputs.

And the common code also isn’t some sort of abstract base class that the two concrete clients would inherit from. An akismet.SyncClient and an akismet.AsyncClient are not two different subtypes of a parent “Akismet client” class or interface! Because of the different calling conventions of sync and async Python, there is no public parent interface that they share or could be substitutable for.

The current code of akismet still has some duplication, primarily around error handling since the try/except blocks need to wrap the correct version of their respective I/O operations, and I might be able to achieve some further refactoring to reduce that to the absolute minimum (for example, by splitting out a bunch of duplicated except clauses into a single common pattern-matching implementation now that Python 3.10 is the minimum supported version). But I’m not in a big hurry to do that; the current code is, I think, in a pretty reasonable state.

Enumerating the options

As I mentioned back at the start of this post, the akismet library historically used a Python bool to indicate the result of a spam-checking operation: either the content was spam (True) or it wasn’t (False). Which makes a lot of sense at first glance, and also matches the way the Akismet web service behaves: for content it thinks is spam, the HTTP response has a body consisting of the string true, and for content that it doesn’t think is spam the response body is the string false.

But for many years now, the Akismet web service has actually supported three possible values, with the third option being “blatant” spam, spam so obvious that it can simply be thrown away with no further human review. Akismet signals this by returning the true response body, and then adding a custom HTTP header to the response: X-Akismet-Pro-Tip, with a value of discard.

Python has had support for enums (via the enum module in the standard library) since Python 3.4, so that seemed the most natural way to represent the possible results. The enum module lets you use lots of different data types for enum values, but I went with an integer-valued enum (enum.IntEnum) for this, because it lets developers still work with the result as a pseudo-boolean type if they don’t care about the extra information from the third option (since in Python 0 is false and all other integers are true).

Python historical trivia

Originally, Python did not have a built-in boolean type, and the typical convention was similar to C, using the integers 0 and 1 to indicate false/true.

Python phased in a real boolean type early in the Python 2 days. First, the Python 2.2 release series (technically, Python 2.2.1) assigned the built-in names False and True to the integer values 0 and 1, and introduced a built-in bool() function which returned the integer truth value of its argument. Then in Python 2.3, the bool type was formally introduced, and was implemented as a subclass of int, constrained to have only two instances. Those instances are bound to the names False and True and have the integer values 0 and 1.

That’s how Python’s bool still works today: it’s still a subclass of int, and so you can use a bool anywhere an int is called for, and do arithmetic with booleans if you really want to, though this isn’t really useful except for writing deliberately-obfuscated code.

For more details on the history and decision process behind Python’s bool type, check out PEP 285 and this blog post from Guido van Rossum.

The only tricky thing here was how to name the third enum member. The first two were HAM and SPAM to match the way Akismet describes them. The third value is described as “blatant spam” in some documentation, but is represented by the string “discard” in responses, so BLATANT_SPAM and DISCARD both seemed like reasonable options. I ended up choosing DISCARD; it probably doesn’t matter much, but I like having the name match the actual value of the response header.

The enum itself is named CheckResponse since it represents the response values of the spam-checking operation (Akismet actually calls it comment-check because that’s what its original name was, despite the fact Akismet now supports sending other types of content besides comments).

Bring your own HTTP client

Back when I put together the 1.0 release, akismet adopted the requests library as a dependency, which greatly simplified the process of issuing HTTP requests to the Akismet web API. As part of the more recent rewrite, I switched instead to the Python HTTPX library, which has an API broadly compatible with requests but also, importantly, provides both sync and async implementations.

Async httpx requires the use of a client object (the equivalent of a requests.Session), so the Akismet client classes each internally construct the appropriate type of httpx object: httpx.Client for akismet.SyncClient, and httpx.AsyncClient for akismet.AsyncClient.

And since the internal usage was switching from directly calling the function-based API of requests to using HTTP client objects, it seemed like a good idea to also allow passing in your own HTTP client object in the constructors of the Akismet client classes. These are annotated as httpx.Client/httpx.AsyncClient, but as a practical matter anything with a compatible API will work.

One immediate benefit of this is it’s easier to accommodate situations like HTTP proxies, and server environments where all outbound HTTP requests must go through a particular proxy. You can just create the appropriate type of HTTP client object with the correct proxy settings, and pass it to the constructor of the Akismet client class:

import akismet
import httpx

from your_app.config import settings

akismet_client = akismet.SyncClient.validated_client(
    http_client=httpx.Client(
        proxy=settings.PROXY_URL,
        headers={"User-Agent": akismet.USER_AGENT}
    )
)

But an even bigger benefit came a little bit later on, when I started working on improvements to akismets testing story.

Testing should be easy

Right here, right now, I’m not going to get into a deep debate about how to define “unit” versus “integration” tests or which types you should be writing. I’ll just say that historically, libraries which make HTTP requests have been some of my least favorite code to test, whether as the author of the library or as a user of it verifying my usage. Far too often this ends up with fragile piles of patched-in mock objects to try to avoid the slowdowns (and other potential side effects and even dangers) of making real requests to a live, remote service during a test run.

I do think some fully end-to-end tests making real requests are necessary and valuable, but they probably should not be used as part of the main test suite that you run every time you’re making changes in local development.

Fortunately, httpx offers a feature that I wrote about a few years ago, which greatly simplifies both akismets own test suite, and your ability to test your usage of it: swappable HTTP transports which you can drop in to affect HTTP client behavior, including a MockTransport that doesn’t make real requests but lets you programmatically supply responses.

So akismet ships with two testing variants of its API clients: akismet.TestSyncClient and akismet.TestAsyncClient. They’re subclasses of the real ones, but they use the ability to swap out HTTP clients (covered above) to plug in custom HTTP clients with MockTransport and hard-coded stock responses. This lets you write code like:

import akismet


class AlwaysSpam(akismet.TestSyncClient):
    comment_check_response = akismet.CheckResponse.SPAM

and then use it in tests. That test client above will never issue a real HTTP request, and will always label any content you check with it as spam. You can also set the attribute verify_key_response to False on a test client to have it always fail API key verification, if you want to test your handling of that situation.

This means you can test your use of akismet without having to build piles of custom mocks and patch them in to the right places. You can just drop in instances of appropriately-configured test clients, and rely on their behavior.

If I ever became King of Programming, with the ability to issue enforceable decrees, requiring every network-interacting library to provide this kind of testing-friendly version of its core constructs would be among them. But since I don’t have that power, I do what I can by providing it in my own libraries.

(py)Testing should be easy

In the Python ecosystem there are two major testing frameworks:

  • The unittest module in the Python standard library, which is a direct port to Python of the xUnit style of test frameworks seen in many other languages (including xUnit style naming conventions, which don’t match typical Python naming conventions).
  • The third-party pytest framework, which aims to be a more natively “Pythonic” testing framework and encourages function- rather than class-based tests and heavy use of dependency injection (which it calls fixtures).

For a long time I stuck to unittest, or unittest-derived testing tools like the ones that ship with Django. Although I understand and appreciate the particular separation of concerns pytest is going for, I found its fixture system a bit too magical for my taste; I personally prefer dependency injection to use explicit registration so I can know what’s available, versus the implicit way pytest discovers fixtures based on their presence or absence in particularly-named locations.

But pytest pretty consistently shows up as more popular and more broadly used in surveys of the Python community, and every place I’ve worked for the last decade or so has used it. So I decided to port akismet’s tests to pytest, and in the process decided to write a pytest plugin to help users of akismet with their own tests.

That meant writing a pytest plugin to automatically provide a set of dependency-injection fixtures. There are four fixtures: two sync and two async, with each flavor getting a fixture to provide a client class object (which lets you test instantiation-time behavior like API key verification failures), and a fixture to provide an already-constructed client object. Configuration is through a custom pytest mark called akismet_client, which accepts arguments specifying the desired behavior. For example:

import akismet
import pytest

@pytest.mark.akismet_client(comment_check_response=akismet.CheckResponse.DISCARD)
def test_akismet_discard_response(akismet_sync_client: akismet.SyncClient):
    # Inside this test, akismet_sync_client's comment_check() will always
    # return DISCARD.

@pytest.mark.akismet_client(verify_key_response=False)
def test_akismet_fails_key_verification(akismet_sync_class: type[akismet.SyncClient]):
    # API key verification will always fail on this class.
    with pytest.raises(akismet.APIKeyError):
        akismet_sync_class.validated_client()

Odds and ends

Python has had the ability to add annotations to function and method signatures since 3.0, and more recently gained the ability to annotate attributes as well; originally, no specific use case was mandated for this feature, but everybody used it for type hints, so now that’s the official use case for annotations. I’ve had a lot of concerns about the way type hinting and type checking have been implemented for Python, largely around the fact that idiomatic Python really wants to be a structurally-typed language, or as some people have called it “interfacely-typed”, rather than nominally-typed. Which is to say: in Python you almost never care about the actual exact type name of something, you care about the interfaces (nowadays, called “protocols” in Python typing-speak) it implements. So you don’t care whether something is precisely an instance of list, you care about it being iterable or indexable or whatever.

On top of which, some design choices made in the development of type-hinted Python have made it (as I understand it) impossible to distribute a single-file module with type hints and have type checkers actually pick them up. Which was a problem for akismet, because traditionally it was a single-file module, installing a file named akismet.py containing all its code.

But as part of the rewrite I was reorganizing akismet into multiple files, so that objection no longer held, and eventually I went ahead and began running mypy as a type checker as part of the CI suite for akismet. The type annotations had been added earlier, because I find them useful as inline documentation even if I’m not running a type checker (and the Sphinx documentation tool, which all my projects use, will automatically extract them to document argument signatures for you). I did have to make some changes to work around mypy, though It didn’t find any bugs, but did uncover a few things that were written in ways it couldn’t handle, and maybe I’ll write about those in more detail another time.

As part of splitting akismet up into multiple files, I also went with an approach I’ve used on a few other projects, of prefixing most file names with an underscore (i.e., the async client is defined in a file named _async_client.py, not async_client.py). By convention, this marks the files in question as “private”, and though Python doesn’t enforce that, many common Python linters will flag it. The things that are meant to be supported public API are exported via the __all__ declaration of the akismet package.

I also switched the version numbering scheme to Calendar Versioning. I don’t generally trust version schemes that try to encode information about API stability or breaking changes into the version number, but a date-based version number at least tells you how old something is and gives you a general idea of whether it’s still being actively maintained.

There are also a few dev-only changes:
 * Local dev environment management and packaging are handled by PDM and its package-build backend. Of the current crop of clean-sheet modern Python packaging tools, PDM is my personal favorite, so it’s what my personal projects are using. * I added a Makefile which can execute a lot of common developer tasks, including setting up the local dev environment with proper dependencies, and running the full CI suite or subsets of its checks. * As mentioned above, the test suite moved from unittest to pytest, using AnyIO’s plugin for supporting async tests in pytest. There’s a lot of use of pytest parametrization to generate test cases, so the number of test cases grew a lot, but it’s still pretty fast—around half a second for each Python version being tested, on my laptop. The full CI suite, testing every supported Python version and running a bunch of linters and packaging checks, takes around 30 seconds on my laptop, and about a minute and a half on GitHub CI.

That’s it (for now)

In October of last year I released akismet 25.10.0 (and then 25.10.1 to fix a documentation error, because there’s always something wrong with a big release), which completed the rewrite process by finally removing the old Akismet client class. At this point I think akismet is feature-complete unless the Akismet web service itself changes, so although there were more frequent releases over a period of about a year and a half as I did the rewrite, it’s likely the cadence will settle down now to one a year (to handle supporting new Python versions as they come out) unless someone finds a bug.

Overall, I think the rewrite was an interesting process, because it was pretty drastic (I believe it touched literally every pre-existing line of code, and added a lot of new code), but also… not that drastic? If you were previously using akismet with your configuration in environment variables (as recommended), I think the only change you’d need to make is rewriting imports from akismet.Akismet to akismet.SyncClient. The mechanism for manually passing in configuration changed, but I believe that and the new client class names were the only actual breaking changes in the entire rewrite; everything else was adding features/functionality or reworking the internals in ways that didn’t affect public API.

I had hoped to write this up sooner, but I’ve struggled with this post for a while now, because I still have trouble with the fact that Michael’s gone, and every time I sat down to write I was reminded of that. It’s heartbreaking to know I’ll never run into him at a conference again. I’ll miss chatting with him. I’ll miss his energy. I’m thankful for all he gave to the Python community over many years, and I wish I could tell him that one more time. And though it’s a small thing, I hope I’ve managed to honor his work and to repay some of his kindness and his trust in me by being a good steward of his package. I have no idea whether Akismet the service will still be around in another 20 years, or whether I’ll still be around or writing code or maintaining this Python package in that case, but I’d like to think I’ve done my part to make sure it’s on sound footing to last that long, or longer.

How high could global inflation go?

With luck, the Iran war won’t cause a recession. But the surge in energy prices will push up the cost of living

Monday 23 March 1662/63

Up betimes and to my office, before noon my wife and I eat something, thinking to have gone abroad together, but in comes Mr. Hunt, who we were forced to stay to dinner, and so while that was got ready he and I abroad about 2 or 3 small businesses of mine, and so back to dinner, and after dinner he went away, and my wife and I and Ashwell by coach, set my wife down at her mother’s and Ashwell at my Lord’s, she going to see her father and mother, and I to Whitehall, being fearful almost, so poor a spirit I have, of meeting Major Holmes. By and by the Duke comes, and we with him about our usual business, and then the Committee for Tangier, where, after reading my Lord Rutherford’s commission and consented to, Sir R. Ford, Sir W. Rider, and I were chosen to bring in some laws for the Civill government of it, which I am little able to do, but am glad to be joyned with them, for I shall learn something of them.

Thence to see my Lord Sandwich, and who should I meet at the door but Major Holmes. He would have gone away, but I told him I would not spoil his visitt, and would have gone, but however we fell to discourse and he did as good as desire excuse for the high words that did pass in his heat the other day, which I was willing enough to close with, and after telling him my mind we parted, and I left him to speak with my Lord, and I by coach home, where I found Will. Howe come home to-day with my wife, and staid with us all night, staying late up singing songs, and then he and I to bed together in Ashwell’s bed and she with my wife. This the first time that I ever lay in the room. This day Greatorex brought me a very pretty weather-glass for heat and cold.

Read the annotations

Montaigne and the Origins of Substack

Michel de Montaigne may be the most influential essayist in history—even Shakespeare borrowed from his work (taking some passages almost verbatim). But if Montaigne were alive today, this famous essayist might be mistaken for just another slacker living in his parents’ basement.

Okay, let’s be fair. He actually lived in the family castle. But it still was slacking. At age 38, he didn’t have a job—and preferred reading books. Leave me alone, was his message to the world.

The Montaigne family castle (Photo by Henry Salomé)

But even a castle was too noisy for him—or maybe it was just his wife from an arranged marriage that made him feel that way. In any event, Montaigne eventually decided that he needed total isolation, almost like a monk in a hermitage. So he moved into the tower on the family estate. He called it his citadel.

Here he surrounded himself with books, and announced his intention to devote the rest of his life to reading and philosophizing “in calm and freedom from all cares.”

Montaigne’s tower (Photo by Henry Salomé)

But at age 47, Montaigne had a change of heart. He returned to the world, ready to embark on travels and public service. But before leaving for Italy, he had one last goal he needed to fulfill closer to home—and it would have a decisive impact on Western culture.

During his years in the tower, Montaigne wrote 94 essays, and compiled them in two book-length manuscripts. These he now delivered to a printer in Bordeaux, and paid to have them published. A short while later, he traveled to Paris and proudly gave a copy to King Henry III

In his mind, he was serving as his own patron, drawing on the family wealth to cover the expenses of his debut as an author. But today, of course, we would call this self-publishing—a term that is often (unfairly) used to demean the value and legitimacy of these rule-breaking efforts by do-it-yourself writers.


If you want to support my work, please take out a premium subscription (just $6 per month).

Subscribe now


Call it what you will, Montaigne’s achievement cannot be denied. He not only invented the modern essay—setting the stage for Bacon, Emerson, and so many others. But he also helped shape the human sciences and legitimize the personal memoir. That’s because his essays covered many topics but really had only one subject—namely Montaigne himself, with all his quirks and opinions and hot takes.

His essays marked a milestone in the history of individualism. So, of course it makes sense that they were self-published. That’s what individualists do. They are happy to work outside the system.

I could even imagine our slacker Montaigne publishing these essays on Substack today. You might say that he anticipated the Substack style of writing. His balancing of memoir and analysis, subjective and objective, observation and generalization is very much aligned with what I see on this platform every day.

Some writers aspire take the high (but narrow) road of the scholar, while others prefer the larger byways of entertainment. But Montaigne only wanted to be himself, and help us see the world through his eyes—and he had confidence that this was just as valuable as any declaration from established authorities.

He was the first to perfect this way of communicating, but hardly the last. In some ways, he might be the best role model for any author today who wants to shape the wider public conversation. Because Montaigne, again like so many Substackers, knew that most persuasive writing is always conversational.


My favorite self-published author is Marcel Proust—who was born almost exactly three hundred years after Montaigne entered his tower. But the similarities don’t end there, and not just because both are French.

Marcel Proust

Proust was another slacker from a wealthy family who used his inheritance to retreat from society. They both produced a single famous work of literary genius—and were at the same age when they embarked on their respective projects. In both instances, a masterpiece was saved from oblivion because the author had enough money to cover the costs of publication.

These authors delivered works of universal appeal, but based on cranky individualism. Like Montaigne, Proust showcases his eccentric persona on every page. In fact, there’s good reason to believe that André Gide, the editor who rejected Proust’s book, judged the man’s character rather than his actual manuscript—he later admitted that he had formed a negative impression of Proust based on a few encounters in society.

In Proust’s case, he only had to subsidize the publication of the first volume of À la recherche du temps perdu. The Gallimard publishing house, making amends for its initial rejection, released the next volume, which won the prestigious Goncourt Prize, as well as the subsequent installments of Proust’s 3,500-page work.

No, I can’t imagine Proust succeeding on Substack. Some of his sentences are longer than most of the articles here. He’d be lucky to find a hundred subscribers. Even so, I’m certain he would approve of other writers bypassing the system and reaching out directly to readers.

The link between individualism and self-publishing is confirmed by my third famous example, poet Walt Whitman. He assigned the name “Song of Myself” to one of his best known poems, but that title could just have easily described the writings of Proust and Montaigne. Once again, literary experimentation intersected with strident self-aggrandizement—and the publishing establishment wasn’t ready for what he created.

Whitman’s defiance shows up again in the name of his self-published volume Leaves of Grass. Grass was a derisive term used by editors when referring to writings of little merit, while the word leaves describes the paper used in printing a book. So Whitman takes the insult of rejection and turns it into a mark of pride. His Leaves of Grass would not only bypass the gatekeepers, but change the course of American poetry. Like Proust, Whitman added to the scandal by reviewing his own book (under a pseudonym).

Poetry has long embraced self-published authors. Four years after Whitman’s death, Edwin Arlington Robinson self-published his first book of poems—and he went on to win three Pulitzer Prizes. Alfred Lord Tennyson’s first book of poems was also self-published, but that didn’t stop him from rising to the position of Poet Laureate, a role he held for 42 years. Ezra Pound’s debut was also self-published, and he went on to launch the careers of others (James Joyce, T.S. Eliot, etc.) who, without this intervention, might have been forced into self-publication as well.

My copy of A Lume Spento, initially self-published by Ezra Pound

Pulitzer winner James Merrill had a different expedient—he let his father pay for the publication of his first book. It probably helped that his father Charles Merrill was co-founder (along with Edmund Lynch) of a brokerage firm you might have heard of. If we include other examples of authors helped by subsidies from family and friends, our list would get long and unwieldy.


In the light of these examples, we must abandon any snobbish disdain for the self-published author. This might even be the best route nowadays for writers who challenge norms and break rules. Substack is part of this glorious alternative to official channels, although it is a relative latecomer to the field of homemade writing.

But Substack can help build the future of self-publishing. In this regard, it needs to offer authors more options for publishing books, and not just shorter works via newsletter. I’d love to see the full book treatment made available here—making works available in digital, audio, and physical form.

The latter could be handled easily with print-on-demand technology. Substack could offer physical books without having to invest in physical inventory and large warehouses. The quality of print-on-demand books has improved markedly in recent years, and they can be sold as high-end volumes that look just as good as the releases coming from major publishers—or even better.

I fully intend to return to publishing physical books in the future, and I would prefer to do it here. But Substack must make that option possible. When that happens, I will happily join the ranks of those releasing self-published books. I suspect this will be more profitable for all parties, and also more liberating.

I wouldn’t even be surprised if self-publishing achieves a total flipflop from its previous role in the book economy. In the old days, authors started by self-publishing but later switched to traditional publishing after establishing their reputations. I now anticipate the reverse: Authors who start out with book deals from publishers will leave those intermediaries behind after they have proven their market value.

After all, who needs a publisher when you can do everything yourself—and capture most of the profits (previously retained by the publishing house)?

This is the next revolution in the book business (and the music business, by the way). It would be nice if the revolution happened here on Substack. But no matter what this platform decides, this shift will happen—and for the better.

So let’s thank Montaigne. We can learn from his example. But, even better, we can take his individualist approach into the 21st century—and really shake things up.

Links 3/23/26

Links for you. Science:

Dynamics of natural selection preceding human viral epidemics and pandemics
NIH Says It Will No Longer Recognize the Research Fellows’ Union
ACIP To Discuss COVID ‘Vaccine Injuries’ Next Month, Despite That Not Being In Its Purview
Delays in awards and funding calls worry NIH-funded researchers
Publisher demands $500 from impersonated author to retract paper
A Machine Learning Framework for Serogroup Classification of pathogenic species of Leptospira Based on rfb Locus Profiles

Other:

Gullible, Cynical America: The trouble with believing anything and nothing at the same time
Police body cam footage shows DOGE knew Institute of Peace was private property during raid
The Great Crime Decline Is Happening All Across the Country. Even cities with understaffed police departments have made record gains.
It Wasn’t Fascism All Along
Maine’s catch of lobster declines again as high costs and climate change impact industry
The Right Is Now ‘Transvestigating’ Erika Kirk And Sydney Sweeney
He’s invested billions in Boston. Now one big real estate investor is hitting the brakes. Here’s why.
How Are Things In Venezuela
The real reason why Kristi Noem’s cuckold husband stayed married to her through Corey Lewandowski ‘humiliation’
Texas primary shows that MAGA loves a villain
Iran, Benghazi, And The Age Of Partisan Everything. Republicans wrote the rules, Democrats should play by them.
Trump’s new plan for Iran doomed to backfire
Donald Trump Can’t Even Pretend To Explain The Plan For Iran
Trump and Hegseth are writing their own rules of war
Rebecca Solnit Says the Left’s Next Hero Is Already Here
Pardon Industry Offers Rich Offenders a Path to Trump. One inmate paid lobbyists and lawyers with ties to the president’s team and walked free. Others are following his blueprint, but it is not always clear who can deliver.
As Operation Metro Surge recedes, concern grows over tactics of Twin Cities bounty hunters
Trump’s Fantasy Is Crashing Down
A Helpful Explainer Of Kansas’s Lunatic Anti-Trans Law
Pressure
Fuzzy memories and hard facts: An SC accuser’s claims against Epstein, Trump examined
Donald Trump’s Presidency Is in Free Fall
On the turning away from Trump
The Neo solves Apple’s embarrassment
The next redistricting battle might be who is counted in state legislative districts
Trump bought Netflix and Warner Bros bonds at height of bidding war with Paramount
Congress Is Betraying America’s Founders by Ceding Power to Trump
Trump Press Sec Goes Full Cult as Polls Take Brutal Turn
When DOGE Unleashed ChatGPT on the Humanities
Trump’s plan to turn DC into Mar-a-Lago 2.0 hits a snag

What should I ask David Baszucki?

Yes I will be doing a Conversation with him.  From Wikipedia:

David Brent Baszucki (/bəˈzki/ buh-ZOO-ki; born January 20, 1963) is a Canadian-born American entrepreneur, engineer, and software developer. He is best known as the co-founder and CEO of Roblox Corporation. He co-founded and was the CEO of Knowledge Revolution, which was acquired by MSC Software in December 1998.

On Roblox:

Roblox (/ˈr.blɒks/ ROH-bloks) is an online game platform and game creation system developed by Roblox Corporation that allows users to program and play games created by themselves or other users. It was created by David Baszucki and Erik Cassel in 2004, and released to the public in 2006. As of February 2025, the platform has reported an average of 85.3 million daily active users. According to the company, their monthly player base includes half of all American children under the age of 16.

So what should I ask him?

The post What should I ask David Baszucki? appeared first on Marginal REVOLUTION.

       

Comments

Related Stories

 

Inflation Timeline

Depending what corners of the internet you hang out on, 'regular' may at times awkwardly coexist with 'sexy.'

Denmark desperately needs more inequality

The Danish election is tomorrow. One of the central themes in the incumbent campaign has been a proposed wealth tax. The fig leaf for this proposal was "smaller classrooms in the early grades", but that quickly fell off, and the debate centered on "inequality". And it's true that inequality is a problem in Denmark: There's not nearly enough!

I know that sounds sacrilegious. Even most of the business-friendly press and parties in Denmark dance around this topic. Which makes political sense because the word "inequality" leads most people to think of poverty and destitution. But that's not the reality in the little kingdom that could.

Denmark has an enormous state apparatus (half of GDP and a third of all workers!) that offers equal access to everything from health care to education and a million programs in between. It could surely be slimmed and trimmed, but on the whole, it works remarkably well. The average Dane is incredibly well cared for by any international standard (high-trust society, hurray!).

By those same standards, it's the 8th most equal country in the world on income, as measured by the Gini coefficient (0.28). But this is where the numbers start spellbinding the debate. Because the Danish Gini coefficient perversely "degrades" if new businesses succeed, as any time successful founders and high-paid employees earning incomes above the median "worsen" inequality. 

This is obviously nonsense. When the pie gets bigger, it gets better for all, as long as nobody is robbed of their existing slice.  Denmark should clearly want new successful businesses! It should love to see founders reap big rewards when the risks pay off. It should celebrate early employees making fortunes on stock grants. But all too often, it just doesn't.

Just to put it on a pin: Danes hate flashy cars with a passion that stretches back much further than the current green excuses. But buying a $300,000 Ferrari in Denmark is one of the most patriotic things you can possibly do! You'll end up paying almost three times the price for the privilege, and sending 2/3s of that to the treasury in taxes. Truly a contribution to the common cause worthy of admiration, not scorn! 

But because the debate around inequality is anchored in a fixed-pie paradigm, scorn is all you're likely to get. Anyone who does well in Denmark is immediately suspected of having succeeded at the expense of others. Probably through some form of nefarious exploitation, even if we can't prove what?! There is a core national politics of grievance and envy.

But, however human that may be, the future progress and prosperity of the country depends on rejecting this zero-sum delusional dogma. The Danish economy is currently doing well compared to the rest of the EU, but it's dangerously dependent on a handful of vintage corporations pulling the bulk of the load.

This simply has to change if the Danes wish to retain their high standards of living going forward. No corporation lasts forever. Novo Nordisk was Europe's most valuable company at the start of last year, now it's worth half that, and is out of the top ten. And who knows what the closing of the Hormuz Strait will do to Maersk. These two companies alone represent roughly a quarter of all Denmark's exports!

Meanwhile, new business formation just hit an all-time low. And only a tiny portion of the big employers in Denmark were created in the last thirty years. And thus, almost all the wealth that funds the highly-prized welfare state is coming from really old companies. Many of them over a hundred years old.

This is wonderful in many ways. The Danes should be rightfully proud to host Maersk (1904), Novo (1923), Vestas (1945), Lego (1932), and other international heavy-weights. But it can't rely on this aging corporate vintage to forever bear fruit for tomorrow.

Tomorrow needs to be tended to by planting new seeds. New companies. New growth. New capital. And that's just not going to happen if the Danish state declares itself at war with capital formation or accumulation. It should be so lucky to have more rich people, with more capital, and the talent to deploy it toward a better, shared future (or spend it on heavily-taxed Ferraris!).

The ballot boxes open tomorrow morning. It's predicted to be a close one. Fingers crossed for a prosperous choice.

A unique NASA satellite is falling out of orbit—this team is trying to rescue it

BROOMFIELD, Colorado—One of NASA's oldest astronomy missions, the Neil Gehrels Swift Observatory, has been out of action for more than a month as scientists await the arrival of a pioneering robotic rescue mission.

The 21-year-old spacecraft is falling out of orbit, and NASA officials believe it's worth saving—for the right price. Swift is not a flagship astronomy mission like Hubble or Webb, so there's no talk of sending astronauts or spending hundreds of millions of dollars on a rescue expedition. Hubble was upgraded by five space shuttle missions, and billionaire and commercial astronaut Jared Isaacman—now NASA's administrator—proposed a privately funded mission to service Hubble in 2022, but the agency rejected the idea.

Swift may be a more suitable target for a first-of-a-kind commercial rescue mission. It has cost roughly $500 million (adjusted for inflation) to build, launch, and operate, but it is significantly less expensive than Hubble, so the consequences of a botched rescue would be far less severe. Last September, NASA awarded a company named Katalyst Space Technologies a $30 million contract to rapidly build and launch a commercial satellite to stabilize Swift's orbit and extend its mission.

Read full article

Comments

Microsoft Xbox One Hacked

It’s an impressive feat, over a decade after the box was released:

Since reset glitching wasn’t possible, Gaasedelen thought some voltage glitching could do the trick. So, instead of tinkering with the system rest pin(s) the hacker targeted the momentary collapse of the CPU voltage rail. This was quite a feat, as Gaasedelen couldn’t ‘see’ into the Xbox One, so had to develop new hardware introspection tools.

Eventually, the Bliss exploit was formulated, where two precise voltage glitches were made to land in succession. One skipped the loop where the ARM Cortex memory protection was setup. Then the Memcpy operation was targeted during the header read, allowing him to jump to the attacker-controlled data.

As a hardware attack against the boot ROM in silicon, Gaasedelen says the attack in unpatchable. Thus it is a complete compromise of the console allowing for loading unsigned code at every level, including the Hypervisor and OS. Moreover, Bliss allows access to the security processor so games, firmware, and so on can be decrypted.

Monday assorted links

1. Arbitrage?

2. On Christopher Sims.

3. Minimum wage hikes boost restaurant food prices.

4. “These findings suggest that new work serves as a countervailing force to automation-driven job displacement not merely by creating additional employment, but also by generating new domains of human expertise that command market premiums.

5. Martin Heidegger clip.  Not impressive to me.

6. Canvas unrolls AI teaching agent.

7. “This essay has tried to frame what we need to build around AI.

The post Monday assorted links appeared first on Marginal REVOLUTION.

       

Comments

 

Impressions

March 23, 2026

When I take pictures, I try to stay away from traditional plane porn (of the sort that dominates on Instagram). I like to think my shots — the better of them, at any rate — are a little more offbeat or impressionistic. Case in point, these three, which rate among my favorites.

Top and bottom: A psychedelic flood of blur and color, here’s the world as seen through an airplane window covered in de-icing fluid. Those red and white pinpoints in the first one are, believe it or not, the distant lights of New York City.

Center: Two Skies. The underside of a jetliner tail juxtaposed with an afternoon sky above Somerville, Massachusetts.

Related Story:
THE TEXTURES SERIES

The post Impressions appeared first on AskThePilot.com.

A Deep Dive on ‘The Map Is Not the Territory’

In another side-quest from his current work in progress, Matthew Edney goes down a deep rabbit hole trying to work out a specific point related to Alfred Korzybski’s famous adage that “the map is not… More

Pre-Order “Data Are Made, Not Found”!

There’s something uniquely demoralizing about editing and editing and editing a book manuscript. The words all start to blur together and you start thinking that every sentence is crap, no one will ever want to read this, why bother completing the book. I was definitely in this state. And then… my publisher sent me the book cover and I squealed for joy at just how lovely it is. And it gave me hope. Check out this beauty:

And yes… that’s a wobbly Jenga tower comprised of pieces made from census documentation cuz one of the core arguments in the book is that we’re living in a world of “Jenga Politics” where different actors are pulling out pieces of our administrative infrastructure and putting pressure on top. Civil servants are exhausted, but they’re trying to keep the tower from falling.

And now that I’ve seen the beautiful cover, I can’t wait for you to read this book! And to come celebrate with me! I am starting to build a book tour so hopefully I will come to a city near you. But, in the meantime, here are some of the fun things I get to share:

  • My book won the J. Anthony Lukas Work-in-Progress Prize! Thank you to the kind people at Columbia Journalism School and the Nieman Foundation for Journalism at Harvard University for giving me wind beneath my wings!
  • Pre-Order the book! And if you order it from the University of Chicago Press website, you can save 30% by using the code UCPNEW. But feel free to order from your local bookstore or wherever else you want!
  • DC folks: Save the Date (9/25)! I am ecstatic that Politics & Prose is hosting me at their Wharf venue on September 25 at 7PM (the day after the book goes on sale!). I hope lots of folks will come out to celebrate! There will be books available! And a signing!
  • Virtual Folks: On the eve of the book launch (9/23), Dan Bouk and I will discuss the book in a virtual event hosted by Data & Society. More info on that will come shortly, but make sure to sign up to the D&S newsletter!

Moogle Gaps

Moogle Gaps, for when you want to be misdirected. TrendWatching: “Whipped up by two Australian ex-Droga5 creatives, Paul Meates and Henry Kimber, Moogle Gaps is an anti-wayfinder. Users input their navigational query as they normally would, but instead… More

How Google Maps Disappears Restaurants from Search Results

For the Guardian’s “It’s Complicated” feature, Josh Toussaint-Strauss looks at how great restaurants end up being invisible when you search for a place to eat on Google Maps. He talks with data scientist Lauren Leek,… More

The innovative supply chain of illegal drugs--even in prisons

 Strategy sets are big, so we’re not going to be able to end illegal drug use by spraying defoliants on fields of poppies, or arresting dealers, or attacking speedboats. If we can’t stop the spread of drugs even in prisons, the chance of purely police/military solutions for stopping drugs on the streets isn’t looking good.

The NYT has the story:

No Pills or Needles, Just Paper: How Deadly Drugs Are Changing
Lab-made drugs soaked into the pages of letters, books and even legal documents are being smuggled behind bars, killing inmates and frustrating investigators. 
By Azam Ahmed and Matt Richtel 

" Today, fringe chemists are ushering in a total transformation of the illicit drug market. Operating from clandestine labs, they are churning out a dizzying array of synthetic drugs — not only fentanyl, but also hazardous new tranquilizers, stimulants and complex cannabinoids. Sometimes, several unknown drugs appear on the streets in a single month. Many are so new they are not even illegal yet.

"Nearly all of them are harder to trace than conventional drugs, less expensive to produce, much more potent and far deadlier, according to scientists and law enforcement officials across the globe.

...

"After that first death in the Cook County jail in January 2023, it took months for Mr. Wilks’s team to realize that these mysterious new drugs were being sprayed onto the pages of the most innocuous-seeming items: books, letters, documents, even photographs.

"The sheets of drugs, worth thousands of dollars a page, were being torn into strips and smoked by inmates 

...

"But the traffickers were cunning. When regular mail got checked more closely, smugglers began lacing legal correspondence. Soon, officers discovered sealed packages that looked as if they had been shipped directly from Amazon, with drug-soaked books inside. "

############

It’s hard to shut down markets that people want to participate in.
Someone should write a book about this. 

March 22, 2026

President Donald J. Trump‘s behavior is increasingly erratic as he lashes out at those he perceives to be enemies. On Thursday he defended his failure to inform allies and partners about his February 28 attack on Iran by telling a Japanese reporter he wanted the element of surprise. “Who knows better about surprise than Japan? Why didn’t you tell me about Pearl Harbor, OK?” Trump said, referring to the Japanese attack on Hawaii that took place on December 7, 1941, five years before Trump was born. Sitting beside Trump, the prime minister of Japan, Sanae Takaichi, appeared taken aback. Japan is a key Pacific ally of the United States.

The president is under enormous pressure, as his war with Iran sparked Iranian officials to close the Strait of Hormuz, through which about 20% of the world’s oil flows. This outcome was expected by previous presidents, but Trump seemed to think he could avoid it and now is stuck without an easy solution. As former defense secretary and Central Intelligence Agency director Leon Panetta told David Smith of The Guardian, “[I]f there was an escape here for Trump, it would be to declare victory and it’s over and we’ve been able to be successful in all of our military targets. The problem is he can declare victory all he wants but, if he doesn’t get the ceasefire, he’s got nothing. And he’s not going to get a ceasefire as long as Iran is holding the gun of the strait of Hormuz against his head.”

“He tends to be naive about how things can happen,” Panetta told Smith. “If he says it and keeps saying it, there’s always a hope that what he says will come true. But that’s what kids do. It’s not what presidents do.”

In a frantic attempt to lower oil prices, the administration on Friday lifted sanctions on Iranian oil currently at sea. Iranian oil has been sanctioned since 1979. The lifting of sanctions will enable Iran to sell about 140 million barrels of oil, worth about $14 billion, including to the United States and to China.

National security scholar Phil Gordon, who served as the White House coordinator for the Middle East, North Africa, and the Persian Gulf Region during the Obama administration, posted: “When Obama sent Iran $400m + $1.3bn in interest in 2016 Trump called it ‘insane’ and he and others spent a decade mocking the idea of ‘pallets of cash’ even though it was Iran’s own money, American prisoners were released, courts were likely to require the U.S. payment, and Iran had just agreed to significant and verified reductions and restrictions on its nuclear program for 15+ years.

“Now Trump is giving Iran up to ten times that amount of revenue—one of the most significant measures of sanctions relief provided to the Islamic Republic since its founding—in exchange for marginal and temporary relief from the big increase in oil prices his actions have caused, without any concessions from Tehran, and even as Iran continues to target the United States, its allies, and world oil supplies. No way to read as anything other than desperate recognition of the situation Trump’s own actions have created and the lack of available alternatives for dealing with it.”

On Meet the Press today, Senator Chris Murphy (D-CT) said: “We’re gonna give Iran $14 billion to fund this war with the United States? We’re gonna give Russia billions of dollars to fund their war with Ukraine? We’re literally putting money into the pockets of the very nations that we are fighting right now. We’ve never seen this level of incompetence in war-making in this country’s history.”

Trump is also under pressure over the Department of Homeland Security (DHS), which has been mired in news stories about corruption since former secretary Kristi Noem stepped down. Yesterday morning, Trump appeared to try to change the momentum of those stories by going on the offensive against Democrats.

New scrutiny of the department has brought renewed attention to the November 2025 ProPublica report by Justin Elliott, Joshua Kaplan, and Alex Mierjeski that DHS had awarded a $220 million contract for a taxpayer-funded ad campaign to cronies, getting around transparency laws by awarding the contract to a small company that then subcontracted the deal to friends of Noem and her associate Corey Lewandowski. Of the contract, Trump allegedly said: “Corey made out on that one.”

On Thursday, March 19, Julia Ainsley, Matt Dixon, Jonathan Allen, and Laura Strickler of NBC News reported that Lewandowski told George Zoley, the head of the giant private prison company GEO Group, that he expected to be paid for steering contracts to GEO Group. Zoley said he declined initially but later offered to put Lewandowski on retainer with a consulting fee. But, sources told the journalists, Lewandowski “wanted payments—what some people would call a success fee” based on awarded contracts. When Zoley refused, GEO Group lost out on contracts. A senior DHS official told the journalists Lewandowski had told him not to award any more contracts to GEO Group.

Lewandowski’s official title was that of a “special government employee,” with a temporary appointment that permitted him to work only 130 days in a year, but DHS officials told the journalists that Lewandowski had broad authority over contracts in the department and was referred to as “chief.” He allegedly sidestepped the limits of his appointment by going into the building accompanying Noem, and thus without swiping in using his badge. Lewandowski has denied any wrongdoing.

Yesterday Hamed Aleaziz, Alexandra Berzon, Nicholas Nehamas, Zolan Kanno-Youngs, and Tyler Pager of the New York Times reported on the extraordinary power Lewandowski had in DHS under Noem, explaining that he held meetings without her present, sat in on classified briefings, read a version of the highly classified President’s Daily Brief, and issued orders as he spearheaded detention and deportation of migrants. In addition to approving government contracts that worried officials, Lewandowski helped put Greg Bovino, a midlevel Border Patrol leader, into a senior position that gave him national power.

At 11:34 yesterday morning, Trump tried to turn the DHS story into one about the Democrats, posting: “If the Radical Left Democrats don’t immediately sign an agreement to let our Country, in particular, our Airports, be FREE and SAFE again, I will move our brilliant and patriotic ICE Agents to the Airports where they will do Security like no one has ever seen before, including the immediate arrest of all Illegal Immigrants who have come into our Country, with heavy emphasis on those from Somalia, who have totally destroyed, with the approval of a corrupt Governor, Attorney General, and Congresswoman, Ilhan Omar, the once Great State of Minnesota. I look forward to seeing ICE in action at our Airports. MAKE AMERICA GREAT AGAIN! President DONALD J. TRUMP”

This appeared to be a threat to use Immigration and Customs Enforcement agents, whom Trump appears to see as his own private army, to hurt Democrats by pinning the long lines in airports on the Democrats’ refusal to fund DHS, which means that Transportation Security Administration (TSA) agents aren’t being paid. But Democrats have repeatedly proposed funding every agency in DHS other than ICE and Border Patrol, leaving those out until their abuses under Noem, Lewandowski, and Bovino have been addressed. Republicans have refused that funding unless DHS requests are funded in full at the same time.

Under Trump, ICE has become the highest-funded law enforcement agency in the U.S., with an annual budget higher than those of all other federal law enforcement agencies combined. While ICE budgets previously had hovered around $6 billion, the Republicans’ One Big Beautiful Bill Act gave DHS $85 billion to fund it through September 30, 2029. What is outstanding now is its base budget of around $10 billion. Unlike TSA agents, ICE agents are getting paid during the funding fight.

Today the administration announced ICE agents will take the place of some TSA agents, although as the former national security officials at The Steady State note, the legality of moving ICE agents into TSA positions isn’t clear. Tonight Trump admitted he is not interested in any deal with the Democrats to fund the Department of Homeland Security unless Democrats also agree to the SAVE America Act, which would require proof of citizenship to register to vote and to vote, and which is widely understood to be a measure designed to suppress voting. Trump also includes in the measure an end to mail-in voting, and an attack on transgender Americans.

Then, at 1:26 yesterday afternoon, Trump responded to the death of 81-year-old special counsel Robert Mueller by posting: “Robert Mueller just died. Good, I’m glad he’s dead. He can no longer hurt innocent people! President DONALD J. TRUMP.”

As Josh Meyer of USA Today reported, Mueller was a lifelong public servant. He served in combat as a Marine Corps officer in the Vietnam War, during which he was wounded. “I consider myself exceptionally lucky to have made it out of Vietnam,” Mueller said years later. “There were many—many—who did not. And perhaps because I did survive Vietnam, I have always felt compelled to contribute.” He became a federal prosecutor covering organized crime, terrorism, and public corruption. A conservative Republican nominated by President George W. Bush to direct the Federal Bureau of Investigation (FBI), he took office just a week before 9/11 and proceeded to reshape the FBI’s mission from fighting crime to an emphasis on counterterrorism and intelligence.

In 2017, Deputy Attorney General Rod Rosenstein appointed Mueller special counsel for the Department of Justice to investigate Russian interference in the 2016 election. Mueller’s team filed charges against Trump’s former campaign chair Paul Manafort and co-chair Rick Gates for conspiracy to launder money, violating the Foreign Agents Registration Act, and conspiracy against the United States, and reached a plea agreement with Trump’s former national security advisor Michael Flynn, who pleaded guilty to lying to the FBI about his contacts with Russian operative and ambassador Sergey Kislyak. Mueller’s team also indicted thirteen Russians and three Russian companies involved in pushing Russian propaganda to American voters. Ultimately the team indicted thirty-four people, including six of Trump’s former advisors, five of whom pleaded guilty.

Mueller’s final report detailed the efforts of Russian operatives to help Trump and hurt Democratic candidate Hillary Clinton, saying Russia launched “multiple, systematic efforts” to interfere with the election. Mueller said he had not been able to consider Trump’s guilt because Justice Department policy prohibits the prosecution of a sitting president, but added: “If we had confidence that the president clearly did not commit a crime, we would have said that.” He refused to say his report “exonerated” Trump, as Trump’s supporters insisted.

A later report by the Republican-led Senate Intelligence Committee agreed that members of Trump’s 2016 campaign, led by Manafort, worked with Russian operatives to help Trump get elected.

Not only is Robert Mueller getting under Trump’s skin, so, clearly, is his own failure to reopen the Strait of Hormuz. At 7:44 last night, he posted: “If Iran doesn’t FULLY OPEN, WITHOUT THREAT, the Strait of Hormuz, within 48 HOURS from this exact point in time, the United States of America will hit and obliterate their various POWER PLANTS, STARTING WITH THE BIGGEST ONE FIRST! Thank you for your attention to this matter. President DONALD J. TRUMP.”

In a conversation with Anne McElvoy of Politico on Thursday, United Nations Secretary-General António Guterres noted that attacks on civilian energy infrastructure are war crimes.

Yesterday Julie K. Brown of The Epstein Files, whose work digging into the cover-up of the Epstein story for the Miami Herald has been instrumental in bringing the scandal to light, and her colleague Claire Healy reported that after sex offender Jeffrey Epstein was found dead in his prison cell on August 10, 2019, a corrections officer called the FBI’s Threat Operations Center saying the officer “found it suspicious that an after-action team charged with investigation would be shredding huge amounts of paperwork” while FBI agents were in the building.

An inmate who helped shred documents told guards: “They are shredding everything,” and an assistant federal prosecutor noted the destruction or misplacing of relevant records. Another corrections officer wrote to the FBI on August 19 about an unusual amount of shredding and disposal, and suggested: “you may want to investigate why [Bureau of Prisons] employees are destroying records.”

This morning, at 8:24, Trump posted: “Now with the death of Iran, the greatest enemy America has is the Radical Left, Highly Incompetent, Democrat Party! Thank you for your attention to this matter. President DJT”

Tonight, just before midnight, he posted: “PEACE THROUGH STRENGTH, TO PUT IT MILDLY!!!”

Notes:

https://www.cnbc.com/2026/03/20/trump-pearl-harbor-japan-takaichi-iran-war.html

https://www.politico.com/news/2026/03/22/surprise-embarrassment-unease-japan-pearl-harbor-00839369

https://www.yahoo.com/news/articles/fbi-warned-bags-documents-were-143207523.html

https://www.usatoday.com/story/news/politics/2026/03/21/what-to-know-about-former-fbi-chief-and-trump-foe-robert-mueller/89264548007/

https://www.propublica.org/article/kristi-noem-dhs-ad-campaign-strategy-group

https://www.nbcnews.com/news/us-news/dhs-contractors-told-white-house-officials-asked-pay-corey-lewandowski-rcna263744

https://www.nytimes.com/2026/03/21/us/politics/corey-lewandowski-noem-dhs.html

https://www.cnn.com/us/live-news/tsa-wait-times-government-shutdown-03-22-26

https://www.npr.org/2026/01/21/nx-s1-5674887/ice-budget-funding-congress-trump

https://www.theguardian.com/us-news/2026/mar/22/trump-iran-leon-panetta

https://www.theguardian.com/us-news/2026/mar/20/us-sanctions-iranian-oil

https://www.cnn.com/us/live-news/tsa-wait-times-government-shutdown-03-22-26

https://www.politico.eu/article/un-chief-guterres-reasonable-grounds-believe-war-crimes-happening-iran-war/

https://www.intelligence.senate.gov/wp-content/uploads/2024/08/sites-default-files-documents-report-volume5.pdf

X:

PhilGordonDC/status/2035346997343866924

Bluesky:

atrupar.com/post/3mhnsvsjc7y23

atrupar.com/post/3mhnlb2im5c2k

axidentaliberal.bsky.social/post/3mhltdap5wk2y

ronfilipkowski.bsky.social/post/3mhmdxe2ojs2o

ronfilipkowski.bsky.social/post/3mhlozz53zc2s

gillianbrockell.com/post/3mhlf5tyspc2m

thesteadystate.org/post/3mhokt7nrxk2t

eliothiggins.bsky.social/post/3mhnkq6hmwk2u

thetnholler.bsky.social/post/3mhp7lpz47c2x

josephpolitano.bsky.social/post/3mhp5zgdy7k2u

murray.senate.gov/post/3mhloteycsk2l

Share

Oil versus Ice Cream

When Tyler and I were writing Modern Principles of Economics, we wanted examples that were modern, specific, and grounded in the real world. That has been a bit of a headache, because we have to update them with every new edition. Our biggest competitor uses the ice cream market as its central example and never has to revise. Smart! But for us, the extra work has been worth it.

We chose the oil market as our central example. Oil is always in the news, and it works really well across a wide range of textbook topics: the elasticity of demand and supply; oligopoly and cartels; the shutdown condition; shocks; expectations, speculation and futures markets; and oil prices have macroeconomic implications that connect micro to macro.

Yes, keeping the examples current takes more work. But when a student sees that the price of crude has surged past $100 a barrel because Iran closed the Strait of Hormuz—choking off 20% of the world’s oil supply—they have the framework to understand what is happening. Supply shock, inelastic demand, expectations and speculation, the macroeconomic transmission to GDP—it’s all right there in the headlines. Try doing that with the ice cream market.

See the Invisible Hand. Understand Your World. It is not just our slogan. It’s our method.

The post Oil versus Ice Cream appeared first on Marginal REVOLUTION.

       

Comments

Related Stories

 

The city that wasted nothing

Ink painting of people in traditional attire engaging in activities on a wooden floor with various objects around them.

Edo, modern Tokyo, transformed from a city near ecological collapse to a thriving epicentre by creating a circular economy

- by Aeon Video

Watch on Aeon

An African philosophy

A building with yellow wall, hands in silhouette in foreground, and animals resting in the sun.

Lansana Keita rejected Eurocentric ideas, tracing the philosophical tradition back to African Kemet or ancient Egypt

- by Sanya Osha

Read on Aeon

Beats now have notes

Last month I added a feature I call beats to this blog, pulling in some of my other content from external sources and including it on the homepage, search and various archive pages on the site.

On any given day these frequently outnumber my regular posts. They were looking a little bit thin and were lacking any form of explanation beyond a link, so I've added the ability to annotate them with a "note" which now shows up as part of their display.

Here's what that looks like for the content I published yesterday:

Screenshot of part of my blog homepage showing four "beats" entries from March 22, 2026, each tagged as RESEARCH or TOOL, with titles like "PCGamer Article Performance Audit" and "DNS Lookup", now annotated with short descriptive notes explaining the context behind each linked item.

I've also updated the /atom/everything/ Atom feed to include any beats that I've attached notes to.

Tags: atom, blogging, site-upgrades

Starlette 1.0 skill

Research: Starlette 1.0 skill

See Experimenting with Starlette 1.0 with Claude skills.

Tags: starlette

Experimenting with Starlette 1.0 with Claude skills

Starlette 1.0 is out! This is a really big deal. I think Starlette may be the Python framework with the most usage compared to its relatively low brand recognition because Starlette is the foundation of FastAPI, which has attracted a huge amount of buzz that seems to have overshadowed Starlette itself.

Kim Christie started working on Starlette in 2018 and it quickly became my favorite out of the new breed of Python ASGI frameworks. The only reason I didn't use it as the basis for my own Datasette project was that it didn't yet promise stability, and I was determined to provide a stable API for Datasette's own plugins... albeit I still haven't been brave enough to ship my own 1.0 release (after 26 alphas and counting)!

Then in September 2025 Marcelo Trylesinski announced that Starlette and Uvicorn were transferring to their GitHub account, in recognition of their many years of contributions and to make it easier for them to receive sponsorship against those projects.

The 1.0 version has a few breaking changes compared to the 0.x series, described in the release notes for 1.0.0rc1 that came out in February.

The most notable of these is a change to how code runs on startup and shutdown. Previously that was handled by on_startup and on_shutdown parameters, but the new system uses a neat lifespan mechanism instead based around an async context manager:

@contextlib.asynccontextmanager
async def lifespan(app):
    async with some_async_resource():
        print("Run at startup!")
        yield
        print("Run on shutdown!")

app = Starlette(
    routes=routes,
    lifespan=lifespan
)

If you haven't tried Starlette before it feels to me like an asyncio-native cross between Flask and Django, unsurprising since creator Kim Christie is also responsible for Django REST Framework. Crucially, this means you can write most apps as a single Python file, Flask style.

This makes it really easy for LLMs to spit out a working Starlette app from a single prompt.

There's just one problem there: if 1.0 breaks compatibility with the Starlette code that the models have been trained on, how can we have them generate code that works with 1.0?

I decided to see if I could get this working with a Skill.

Building a Skill with Claude

Regular Claude Chat on claude.ai has skills, and one of those default skills is the skill-creator skill. This means Claude knows how to build its own skills.

So I started a chat session and told it:

Clone Starlette from GitHub - it just had its 1.0 release. Build a skill markdown document for this release which includes code examples of every feature.

I didn't even tell it where to find the repo, Starlette is widely enough known that I expected it could find it on its own.

It ran git clone https://github.com/encode/starlette.git which is actually the old repository name, but GitHub handles redirects automatically so this worked just fine.

The resulting skill document looked very thorough to me... and then I noticed a new button at the top I hadn't seen before labelled "Copy to your skills". So I clicked it:

Screenshot of the Claude.ai interface showing a conversation titled "Starlette 1.0 skill document with code examples." The left panel shows a chat where the user prompted: "Clone Starlette from GitHub - it just had its 1.0 release. Build a skill markdown document for this release which includes code examples of every feature." Claude's responses include collapsed sections labeled "Strategized cloning repository and documenting comprehensive feature examples," "Examined version details and surveyed source documentation comprehensively," and "Synthesized Starlette 1.0 knowledge to construct comprehensive skill documentation," with intermediate messages like "I'll clone Starlette from GitHub and build a comprehensive skill document. Let me start by reading the skill-creator guide and then cloning the repo," "Now let me read through all the documentation files to capture every feature:" and "Now I have a thorough understanding of the entire codebase. Let me build the comprehensive skill document." The right panel shows a skill preview pane with buttons "Copy to your skills" and "Copy" at the top, and a Description section reading: "Build async web applications and APIs with Starlette 1.0, the lightweight ASGI framework for Python. Use this skill whenever a user wants to create an async Python web app, REST API, WebSocket server, or ASGI application using Starlette. Triggers include mentions of 'Starlette', 'ASGI', async Python web frameworks, or requests to build lightweight async APIs, WebSocket services, streaming responses, or middleware pipelines. Also use when the user is working with FastAPI internals (which is built on Starlette), needs ASGI middleware patterns, or wants a minimal async web server" (text truncated).

And now my regular Claude chat has access to that skill!

A task management demo app

I started a new conversation and prompted:

Build a task management app with Starlette, it should have projects and tasks and comments and labels

And Claude did exactly that, producing a simple GitHub Issues clone using Starlette 1.0, a SQLite database (via aiosqlite) and a Jinja2 template.

Claude even tested the app manually like this:

cd /home/claude/taskflow && timeout 5 python -c "
import asyncio
from database import init_db
asyncio.run(init_db())
print('DB initialized successfully')
" 2>&1

pip install httpx --break-system-packages -q \
  && cd /home/claude/taskflow && \
  python -c "
from starlette.testclient import TestClient
from main import app

client = TestClient(app)

r = client.get('/api/stats')
print('Stats:', r.json())

r = client.get('/api/projects')
print('Projects:', len(r.json()), 'found')

r = client.get('/api/tasks')
print('Tasks:', len(r.json()), 'found')

r = client.get('/api/labels')
print('Labels:', len(r.json()), 'found')

r = client.get('/api/tasks/1')
t = r.json()
print(f'Task 1: \"{t[\"title\"]}\" - {len(t[\"comments\"])} comments, {len(t[\"labels\"])} labels')

r = client.post('/api/tasks', json={'title':'Test task','project_id':1,'priority':'high','label_ids':[1,2]})
print('Created task:', r.status_code, r.json()['title'])

r = client.post('/api/comments', json={'task_id':1,'content':'Test comment'})
print('Created comment:', r.status_code)

r = client.get('/')
print('Homepage:', r.status_code, '- length:', len(r.text))

print('\nAll tests passed!')
"

For all of the buzz about Claude Code, it's easy to overlook that Claude itself counts as a coding agent now, fully able to both write and then test the code that it is writing.

Here's what the resulting app looked like. The code is here in my research repository.

Screenshot of a dark-themed Kanban board app called "TaskFlow" showing the "Website Redesign" project. The left sidebar has sections "OVERVIEW" with "Dashboard", "All Tasks", and "Labels", and "PROJECTS" with "Website Redesign" (1) and "API Platform" (0). The main area has three columns: "TO DO" (0) showing "No tasks", "IN PROGRESS" (1) with a card titled "Blog about Starlette 1.0" tagged "MEDIUM" and "Documentation", and "DONE" (0) showing "No tasks". Top-right buttons read "+ New Task" and "Delete".

Tags: open-source, python, ai, asgi, kim-christie, generative-ai, llms, ai-assisted-programming, claude, coding-agents, skills, agentic-engineering, starlette

Is gravity the same over the surface of the Earth? Is gravity the same over the surface of the Earth?


When will “the research paper” disappear in economics?

Soon enough you will be able to take any published research paper and tweak it, or improve it, any way you want.  Just apply a dose of AI.

Using Refine, you already can judge the quality of all past papers, once you get them in uploadable form.  We now can rewrite the entire history of modern economics with the mere investment of tokens.  Which papers in the 1993 AER were really the good ones?  Which are simply false and do not replicate?

Refine, or some service like it, will only get better, and cheaper.

Do we even need the AER any more to certify which are the best papers?  Just ask the AIs, including about influence not just quality.

Why not write a program, or have an AI write it for you, that will take your favorite papers and improve them, and change their evaluations over time, as new results come in?  Of course people will do this, at least to the extent they care.  These papers will keep on morphing.

Will economics become a branch of software engineering?  There are important papers in software engineering, but very often the most important advances are embodied in actual software, AI included.

Will the future advances in economics come from producing evaluative systems and producing systems, rather than papers?

What if you submit to a journal a data set and some code?  Who needs “the paper” per se?  Just issue some commands to the “data set plus code” and get the paper you want.  How about “I am Tyler Cowen, what is it you think I will find interesting in this data set?”

Or publish a method for simulating human behavior, to run AI-simulated experimental economics, a’la Horton and Manning?  Publish “the box,” and do not worry so much about the individual paper.

Will highly productive researchers, who publish a lot of papers, become far less valuable?  The individual paper no longer seems scarce, or will not be in another year or two.

Give tenure to people who build capabilities and who build “boxes”?

How about an economics Nobel Prize for Anthropic and Open AI?

I thank Alex T. for useful discussions on this point.

The post When will “the research paper” disappear in economics? appeared first on Marginal REVOLUTION.

       

Comments

 

The Triangulum galaxy up close

Today’s Picture of the Week is a closeup of the nearby Triangulum galaxy, also known as Messier 33, located about 3 million light-years away. This festive-looking image, taken with ESO’s Very Large Telescope (VLT), reveals the diversity and complexity of the gas and dust between the stars in great detail.

Stars are not, as is often imagined, isolated spheres in the dark, but rather live in rich and complex environments that they actively shape. Studying this cosmic interplay tells us about how stars form, and how their radiation affects the surrounding material, which helps us to understand how galaxies evolve as a whole.

The image was presented in a new study led by Anna Feltre, a postdoctoral researcher at the INAF-Astrophysical Observatory of Arcetri, Italy. The team used data taken with the Multi Unit Spectroscopic Explorer (MUSE) instrument at the VLT. MUSE’s superpower is its ability to break up the light into the different rainbow colours, allowing the team to examine the chemical composition of the interstellar matter at every location across its whole field of view.

The different colours of the image represent different elements: blue, green and red indicate the presence of oxygen, hydrogen and sulphur, respectively. MUSE allowed the team to map the distribution of many other elements, as well as their motion, key to understanding the link between stars and their surroundings. As Feltre aptly puts it: “This cosmic interplay produces a spectacular and dynamic landscape, revealing that the birthplaces of stars are far more beautiful and complex than we ever imagined.”

Links

Paraguay trend of the day

Lured by low taxes, entrepreneurs from across Latin America are plowing in money and taking up residence, with applications surging more than 60% in 2025. Sleek towers and luxury car dealerships now dot Asunción, a city where infrastructure is still struggling to catch up. And Wall Street investors are snapping up Paraguay’s bonds as its conservative president, Santiago Peña, aligns his government with the Trump administration.

Though roughly the size of California, Paraguay’s $47 billion economy is about 1% of the Golden State’s. But rapid growth and economic reforms in recent years helped the country win investment-grade credit status from Moody’s Ratings in 2024 and from S&P Global last year.

…Paraguay’s embrace of sound fiscal and monetary policies after its 2003 financial crisis is now paying off, with single-digit inflation and annual growth averaging around 4% over the past two decades.

Here is more from Bloomberg, growth last year was six percent.  Southern Cone remains underrated.

The post Paraguay trend of the day appeared first on Marginal REVOLUTION.

       

Comments

Related Stories

 

A Fault Line in Full Bloom

March 5
March 13
Wildflower blooms appear as yellow patches at the center of satellite images centered on Carrizo Plain National Monument. The blooms spread and intensify between March 5 and March 13.
Wildflower blooms appear as yellow patches at the center of satellite images centered on Carrizo Plain National Monument. The blooms spread and intensify between March 5 and March 13.
NASA Earth Observatory / Lauren Dauphin
Wildflower blooms appear as yellow patches at the center of satellite images centered on Carrizo Plain National Monument. The blooms spread and intensify between March 5 and March 13.
Wildflower blooms appear as yellow patches at the center of satellite images centered on Carrizo Plain National Monument. The blooms spread and intensify between March 5 and March 13.
NASA Earth Observatory / Lauren Dauphin

March 5, 2026 – March 13, 2026

Golden wildflowers color the Carrizo Plain and surrounding Southern California landscape in these images captured on March 5, 2026 (left), and March 13, 2026 (right), by the OLI (Operational Land Imager) on Landsat 8 and Landsat 9, respectively. NASA Earth Observatory/Lauren Dauphin

Whether it qualifies as a “superbloom” is in the eye of the beholder, but there is no doubt that California’s Carrizo Plain and the neighboring mountain ranges were awash with color as wildflowers put on their annual show in spring 2026.

Landsat satellites began to show the early signs of color in February. By early March, flowers had turned areas around Soda Lake a bright shade of yellow, and by mid-month, they had spread even farther. Yellow wildflower blooms are visible amid the dendritic network of streams flanking the alkaline lake, which dries out completely during drought years. Colors were particularly vibrant across the Carrizo Plain National Monument, even decorating meadows along the zipper-shaped San Andreas Fault with splashes of purple due to blooms of Phacelia ciliata.

More yellow and purple blooms are visible along the zipper-shaped structure of the San Andreas Fault.
Wildflowers bloom along the San Andreas Fault in this image acquired on March 13, 2026, by the OLI (Operational Land Imager) on Landsat 9.
NASA Earth Observatory / Lauren Dauphin

Winter 2025-2026 brought bouts of rain and variable conditions that benefited wildflowers. Soaking rains saturated soils in November and December, bringing rainfall totals to nearly twice the usual level, according to a report from the California Department of Water Resources. NASA data cited in the report showed soil moisture remained well above average for the month of February.

The pulse of early rains helped kick-start wildflowers because many seeds need at least a half-inch of rain to wash off their protective coating to germinate, according to the National Park Service. The warm, dry periods that followed also helped. Once established, wildflowers benefit from intermittent rainfall rather than constant soaking.

Strips of yellow and purple wildflowers decorate a green, grassy valley as the viewer looks down from a hill.
Wildflowers in Carrizo Plain National Monument on March 7, 2026.
Photograph by Erin Berkowitz

The Wild Flower Hotline reported that west-facing slopes of the Temblor Range were the first places to come alive with hillside daisies (Monolopia lanceolata) accompanied by California goldfields (Lasthenia californica) and forked fiddlenecks (Amsinckia furcata) in March. The display in the Caliente Range was enhanced by a lack of grass thatch, which was burned off in the Madre fire in July 2025.

Reports from experts on the ground indicate that common goldfield (Lasthenia gracilis), also called the needle goldfield, is responsible for the expanse of yellow near Soda Lake. Individual plants are small, but they often grow in disturbed areas just centimeters apart and bloom simultaneously, creating expansive blankets of color.

March 5
March 13
A more detailed view shows yellow blooms against a background of green surrounding Soda Lake and several streams to its east.
A more detailed view shows yellow blooms against a background of green surrounding Soda Lake and several streams to its east.
NASA Earth Observatory / Lauren Dauphin
A more detailed view shows yellow blooms against a background of green surrounding Soda Lake and several streams to its east.
A more detailed view shows yellow blooms against a background of green surrounding Soda Lake and several streams to its east.
NASA Earth Observatory / Lauren Dauphin

March 5, 2026 – March 13, 2026

Common goldfield spreads around California’s Soda Lake in these images acquired on March 5, 2026 (left), and March 13, 2026 (right), by the OLI (Operational Land Imager) on Landsat 8 and Landsat 9, respectively. NASA Earth Observatory/Lauren Dauphin

In an article for Flora magazine, Bryce King, lead field botanist for the California Native Plant Society, described the Lasthenia blooms there as one of many “seemingly unending stretches of color” across the valley bottom. Lasthenia is a “staple” of vernal pools and seasonally wet areas, he wrote, but the synchronicity of blooms on the valley floor and surrounding hills during a March visit was “beyond anything” he had expected.

Teams of NASA scientists are using remote sensing to study wildflower blooms and flowering plants, aiming to develop techniques for tracking blooms over broad areas and tools that can support farmers, beekeepers, and resource managers. Fruit, nuts, honey, and cotton are among the many crops and commodities produced by flowering plants.

A NASA scientist works in a grassy field with a large patch of yellow wildflowers in the distance.
Yoseline Angel captures the spectral signature of goldfield flowers in grasslands near Soda Lake on March 14, 2026, by measuring the reflectance of yellow petals and green leaves with a field spectrometer.
NASA/Andreas Baresch

“I would certainly consider this a superbloom,” said Yoseline Angel, a scientist at NASA’s Goddard Space Flight Center. “It’s hard to describe how stunning these wildflowers were from the ground.” 

Angel and Goddard colleague Andres Baresch were in the field in Carrizo Plain National Monument on March 13 taking spectral measurements of blooming wildflowers as Landsat acquired one of the images shown above. They are in the process of developing a global flower monitoring system that will integrate observations from the ground with those from space-based sensors such as OLI on Landsat 8 and 9 and EMIT (Earth Surface Mineral Dust Source Investigation) on the International Space Station to track the progression of blooms.

“This was the perfect opportunity to test how well our models scale between the ground and satellites,” she said. “We were fortunate to have a huge number of seeds germinate and bloom simultaneously because last year was so dry and this winter was so wet.”

A mixture of yellow and purple wildflowers blanket a meadow with green hills in the distance.
Gold and purple wildflowers bloom in Carrizo Plain National Monument on March 7, 2026.
Photograph by Erin Berkowitz

NASA Earth Observatory images by Lauren Dauphin, using Landsat data from the U.S. Geological Survey. Photos courtesy of Erin Berkowitz and Andres Baresch. Story by Adam Voiland.

References & Resources

You may also be interested in:

Stay up-to-date with the latest content from NASA as we explore the universe and discover more about our home planet.

Plants and Algae Swirl Across a South African Reservoir
5 min read

Vivid green blooms form, drift, and fade in Hartbeespoortdam reservoir over the course of a year.

Article
An Amphitheater of Rock at Cedar Breaks
4 min read

The colorful formations found in this bowl-shaped escarpment in southwestern Utah are the centerpiece of Cedar Breaks National Monument.

Article
Seasons Change in Southwest Virginia
3 min read

From autumn color to a winter-white finish, forested areas around Blacksburg trade foliage for snow over the span of two…

Article

The post A Fault Line in Full Bloom appeared first on NASA Science.

Heat Persists Across the Central and Western U.S.; Fire Weather Concerns in the Rockies and High Plains