More on Muse, Amazon, and Walmart; Muse and Expedia; Whither Google?
Meta needs Walmart to wait out Amazon; Expedia seeks to keep its middleware position; meanwhile, where is Google?
Meta needs Walmart to wait out Amazon; Expedia seeks to keep its middleware position; meanwhile, where is Google?
Got home around midnight. I have concussion and a couple stitches in my head, but nothing serious. Few other cuts and bruises too. By far the worst part is my back though - it's in spasm and REALLY painful. Thanks for reading this post via RSS. RSS is ace, and so are you. ❤️ You can reply to this post by email , or leave a comment .
Yesterday was Grok 4.7 ( pelicans ) and MiMo v2.6 Flash/Pro ( more pelicans ). Today Anthropic released Claude Opus 5.5 , and around an hour later OpenAI released GPT-6 Sol and GPT-6 Luna . It's going to take a while to get a good read on all of these new models, but here are my impressions so far. GPT-5.6 Luna was already my favorite model for building applications against, because it combined excellent performance with being really cheap . Somehow GPT-6 Luna is half the price of that again - and GPT-6 Sol had a similar reduction compared to GPT-5.6 Sol. Here's what the pricing landscape looks like today: Note that GPT-5.6 has a scheduled 25% price increase for November, so GPT-6 is half the price of the promotional pricing for those models. (With GPT-5.6 Terra priced the same as GPT-6 Sol, any remaining reasons to use Terra just evaporated.) It's hard to overstate how competitive this pricing is. Grok 4.7 priced itself at $2/$6, less than half the price of GPT-5.6 Sol, but is now equally priced to GPT-6 Sol on input and closer on output. At $0.10/$0.50 GPT-6 Luna is one of the cheapest models OpenAI have ever released, beaten only by the far weaker GPT-4.1 Nano ($0.10/$0.40, April 2025) and GPT-5 Nano ($0.05/$0.40, August 2025). I rendered pelicans for GPT-6 Luna and for GPT-6 Sol , then I combined them all together in this comparison grid along with the GPT-5.6 pelicans. I like how you can instantly see that the 5.6 family chose bolder, brighter colors, while the 6 family is a lot more muted. I still think GPT-6 Astra on max produced the best pelican. Opus 5.5 looks like it addresses the biggest complaints people had about Opus in terms of its communication style. Thariq Shihipar : Opus 5.5 is the result of your feedback. It communicates clearly, it's cheaper per token than Opus 5.0 with the intelligence of Fable 5.1 it's very token efficient and works across every effort level. It's also meant to be better at Blender . I'm looking forward to putting it through its paces there. Opus 4.5, 4.6, 4.7, 4.8, and 5 all shared the same price: $5/million tokens for input and $25/million for output. 5.5 is a 20% reduction - $4/million and $20/million. The price for cache reads fell 60%. That's significant for longer agentic conversations, where 90%+ of input tokens are processed at cached token prices. The new price for Opus 5.5 is the same as the price for GPT-5.6 Sol, but that was before OpenAI dropped their Sol prices by half. GPT-6 Astra and Claude Fable 5.1 are both priced at $10/million input and $50/million output. The price war currently affects the next tier of models below that. Anthropic say that Sonnet 5.5 and Haiku 5.5 are coming soon. It's going to be interesting to see if Haiku can regain its price competitiveness at the lower end, given current Haiku 4.5 is $1/$5 while the latest GPT-6 Luna is one tenth of that price at $0.10/$0.50. In a first for my " Generate an SVG of a pelican riding a bicycle " test, Claude Opus 5.5 at "max" thinking level failed to return a response! It started by calling this "a classic test request", and then thought really, really hard about what it was doing: This is a classic test request, so I want to plan out a well-composed pelican with its distinctive beak and pouch riding a bicycle with proper wheels, frame, and pedals, set against a simple sky and ground backdrop. [...] Verifying the shin length checks out at roughly 95.2, close enough. Now I'm working out the near leg path from hip to knee to ankle, then sketching the foot shape resting on the pedal — outlining the heel, toe tips, and sole contour with a path using lines and curves to sit naturally on the pedal surface around y=478-494. [...] I like the fish sticking prominently out of the basket with the pelican eyeing it as a fun detail worth keeping. I'm also confirming the eye placement near the bill base matches typical pelican anatomy, and considering giving it a slightly happier expression. [...] The far leg reads correctly as passing behind the frame, so I'm moving on to check the chainring teeth and confirm layer ordering—the far crank arm should be mostly hidden by the seat tube and chainring. I'm settling on the final SVG's width and height attributes alongside the viewBox to ensure proper scaling, noting there's no text so no font-family is needed. [...] I was so excited to see this pelican... but then it stopped . Opus 5.5 has a 128,000 maximum output token limit (as do the other Claude models), and it hit that while it was still reasoning about the SVG! I tried a second time and got the same result. This makes me suspect that "max" is effectively useless - if it over-thinks to breaking point on a stupid SVG prompt I don't trust it not to do the same for more interesting work. (Those two failures each cost me $2.56 and took nearly 20 minutes.) Fable 5.1 on "max" didn't over-think and did give me the best pelican I've seen from any Anthropic model. Here are the Opus 5.5 pelicans , excluding 5.5 max. I also built this comparison grid comparing them with pelicans by Opus 5, Fable 5.1, and Sonnet 5: Comparing different model vendors by how well they draw a pelican riding a bicycle may not make much sense now (if it ever did), but I'm still finding value in using them for comparisons of the same model families at different reasoning levels. I'm now using GPT-6 Sol and Claude Opus 5.5 as my default models in Codex and Claude Code. I've upgraded the Datasette Agent demo at agent.datasette.io to use GPT-6 Luna, and it seems to be fast and competent at both SQL queries and building HTML and JavaScript for Datasette Apps . You are only seeing the long-form articles from my blog. Subscribe to /atom/everything/ to get all of my posts, or take a look at my other subscription options .
This is the loudest thing in the world. Also fun. And hilarious. Thank you for using RSS. I appreciate you. Email me
Here are a few nice and interesting design decisions I spotted on various websites in the last months. The pinball repair forum Pinside shows specifically how much time has passed between posts. This is great for orientation and especially when catching up or revisiting – history always gets flattened, and this gives the original story a much more truthful cadence: = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/interesting-web-design-moments/1.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/interesting-web-design-moments/1.1600w.avif" type="image/avif"> In a post from Reimar Servas I mentioned yesterday, you can see generous linking through the writing… = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/interesting-web-design-moments/2.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/interesting-web-design-moments/2.1600w.avif" type="image/avif"> …but also a nice “link summary” at the bottom. I like this because I think this accommodates both people who branch out in the moment, and people who might prefer to read in full, and then explore. Also, it’s just easier to click all of the links if they’re laid out like this: = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/interesting-web-design-moments/3.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/interesting-web-design-moments/3.1600w.avif" type="image/avif"> In the same space, Frank Tisellano provides these interesting callouts. They feel perhaps a little too eager, but I feel the eagerness is intentional: they build on how browsers show the URL on hover in the corner as a hint: = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/interesting-web-design-moments/4.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/interesting-web-design-moments/4.1600w.avif" type="image/avif"> I liked kottke.org’s annotation when something is a gift link (here to the New York Times): = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/interesting-web-design-moments/5.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/interesting-web-design-moments/5.1600w.avif" type="image/avif"> This website by Andrew Murphy has a swear toggle: And lastly, it was fun to see an interview (by Infil) presented this way: = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/interesting-web-design-moments/8.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/interesting-web-design-moments/8.1600w.avif" type="image/avif"> And it’s not just the interview – solo posts employ the same treatment to convey emotions:
Soooo I managed to drive our mower off a 5 foot wall and land on my head. Just waiting for a CT now. Gonna be a long night... Thanks for reading this post via RSS. RSS is ace, and so are you. ❤️ You can reply to this post by email , or leave a comment .
I used to have a three screen setup on my desk. At some point, I removed the third screen because I felt weirdly overwhelmed. There was always something to see, to keep track of, to click on, to watch or to adjust while I played or chatted. I wanted more focus on fewer things. Removing the screen really helped me because it restricted what I see at once, but now, maybe two (?) years later, I notice I am running into a similar issue again with just two screens. The way I have been using my laptop(s) hasn't been beneficial to me lately in that regard. I can't tell if it's a phase, or simply age, but quickly switching between tasks and contexts after 5-20 minutes on each, digitally, seems a lot more draining than it used to be. And I've developed digital habits that facilitate that to the extreme. On a typical work day, I might have work for 20-60 minutes before I run out of things to do (underutilized worker good and fast at her job). Then I see what else I can do in the meantime. I'll probably check Matrix, read several channels, then check my RSS reader, open a few links in a new tab. I'll check the Bearblog Discover feed, open a few things from there as well. Then I check work again. Afterwards, maybe I check my private email, reply to one, and become distracted again. I start reading the first article, but might get distracted/bored/feel my focus wane after half of it, so I switch to something else - like a message I got, or another work thing came in, or I'll start reading another article. When I feel myself getting tired from it, I jump again. Whenever I dedicate myself to something - like studying, reading, writing a longer blog post, gaming - I still have so many interruptions because I check another message, or I have to check my work emails again, or I put on a new video or music, or interrupt that one to put another one on to continue the other one later, or I answer another email again... it wasn't always this way, but now it is. That doesn't even include all the physical interruptions when I have to get up from the desk. That behavior results in so many articles and PDFs left at different points, several YouTube videos paused, several things opened to check later, ticking off/closing one thing just for it to replaced by another thing, blog posts at several stages of completion (instead of my usual writing-until-completed) and feeling absolutely drained. I do finish most stuff I read or watch within the same day or two days, and I get a significant chunk of things done that I planned to do; but it weirdly does not feel that way, because I chipped away at it all in micro-increments, instead of sitting down and properly working at it for however long it takes, uninterrupted, in a flow, and then having a proper sense of closure and possibly accomplishment before moving on to the next thing. It just always feels like playing catch-up instead, or tying up loose ends, or doing the bare minimum to keep everything afloat. In the past, I was really convinced that if I everything I needed or wanted to do was easily accessible (open) at all times, it would allow me to freely bounce between them and do all of them a little, getting progress in on everything, and feeling behind in nothing. If I needed a break from studying, why not use that break to finish that informative video, or make some progress on that other lengthy PDF, or answer emails, etc.? It initially feels productive because you think you don't waste time. You keep bouncing and at the end of the day, you can list all these things you get to tick off or at least made progress on. For me, that advantage or feeling definitely didn't last, and now I crave the opposite. It just feels like I do everything a little, but nothing fully. I miss the focus, the flow, the dedication. It's been more difficult for my brain to keep jumping between different mediums and laptops and browser spaces and tabs all the time. I need more time to adjust and to get back to where I was, and it affects my attention span, my resilience to work through stuff, and my energy levels. And I miss proper breaks that are breaks and not just "briefly looking at another thing I have to finish". It feels like I do so little because so much is still open or not entirely done or only has been worked on for about 10-20 minutes that day, but it is simply spread out between so many things, with so many interruptions. This way, nothing feels like it is truly getting 'done' or making significant progress, even when it is true. At this point, I'd rather dedicate 2 hours to answering and sorting emails and have a clear inbox, than deal with 1-2 every day and it just feels never-ending (especially with newsletters). The way I set up Zen browser probably added to it, which is ironic given its name. But: I had several things permanently open in the Essentials, I had some things pinned at the top of the specific space, and I had at least 5 spaces dedicated for specific open tabs. While I do have compact mode enabled so the browser is essentially in full screen without a top or sidebar, I kept getting distracted and furthering the above bad habits that were really draining anyway. But it's not just the setup; since I had a bit of a rough time a few weeks ago and still occasionally struggle a bit, that also probably led to escapism through online stuff. Craving as much stimulation as possible, no breaks or boredom so I don't have to think or feel about certain things, and so on. Behind bad online habits is usually a difficult time in real life. I really need a stronger focus now, more self-imposed limits on what is happening at the same time, and less opportunities for me to jump between everything I needed or wanted to do. I've now removed most things I had put in Essentials, deleted several spaces, finally closed some tabs I had saved for later, and have closed others that were permanently open but that I should visit manually and then close when done, instead of giving myself constant easy access. I'm also using Virtual Desktops again, so I can better separate when I truly just want to focus on a specific task without all the other things open or accessible. If needed, I can also shut my laptop screen or disable it so I only have my one external screen, or take it from the setup to somewhere else, or even go get my old laptop as a separate device :) It really is a curse sometimes to have so much of your life bundled up in the same thing, as this portal to it all; from work and socializing to games to blogging to studying to other entertainment, and it's all in the same space, ready for you to jump between it all and feel like doing much of neither of it, starting one thing but your mind wandering to the other, over and over again, and that just going on the entire day, while so much of it feels equally urgent... Published 22 Sep, 2026
If you liked this piece, you should subscribe to my premium newsletter, and you can subscribe on the following links: $70 a year , $18 a quarter , or $7 a month . In return you get a weekly premium newsletter including vast, detailed analyses of NVIDIA , Anthropic and OpenAI’s finances , and the AI bubble writ large . It's a great way to support my free work, and you'll get full access to my massive archive of premium analyses of the tech and finance industry. On Friday, I’ll publish the second part of The Hater’s Guide to AI Debt ( here's part 1 ) — where we’ll talk about the spiraling costs associated with standing up compute, why they won’t get better, and how the situation poses an existential risk to counterparties like Oracle. With that in mind, if you haven’t already, check out the first Hater's Guide To Oracle ( or part 2 ), or perhaps my premium piece about how OpenAI Kills Oracle , or even my Hater's Guides To the SaaSpocalypse , Private Credit, and Private Equity. If you want to get in touch — and especially if you have any juicy information about Anthropic, OpenAI, or any other companies in the AI bubble — hit me up on Signal at ezitron.76. I’m also on IB on your Bloomberg Terminal. Soundtrack: Flobots - Handlebars A few months ago, I asked where all the data centers were , because I was struggling to find proof that very many were being finished despite all the capex spending, construction, and the skyrocketing cost of RAM . The answer to that question was, effectively, “nowhere.” The vast majority of Microsoft data center projects I could find had barely gotten started , aside from the massive OpenAI-dedicated “ Fairwater ” data centers that are “open” in the sense that some of the buildings are turned on, with the remainder either being actively built or with construction expected to start at some later point. A couple of months later, The Guardian and I ran an investigation working with a source familiar with Microsoft’s GPU capacity, finding that it had approximately 2.2 million chips. At the time, I was unable to verify whether these were all of its GPUs, or whether OpenAI had its own allocation that wouldn’t appear in the data we obtained, which is why I left out one piece of reporting — that, based on the precise loadout of GPUs in operation, that Microsoft had around 1.993GW of capacity, backed by around $50 billion in GPUs, predominantly made up of NVIDIA H100 and H200 chips, with a decent amount of GB200 and GB300s. Two weeks ago, Bloomberg reported that Microsoft had “about 12 gigawatts of capacity,” but that “...only about 2 gigawatts of the company’s current 12-gigawatt capacity is centered on AI-specific chips.” A quote follows: That’s a really nice way of saying that Microsoft is directly misleading reporters, investors and the general public about its capacity. It has claimed again and again that it has brought gigawatts of capacity online for the best part of a year, all, in my opinion, with the intent of misrepresenting the scale of an AI data center buildout where I believe most of the GPUs, to quote Satya Nadella , are now “sitting in inventory that [they] can’t plug in.” Today’s newsletter is about a cruel truth: that NVIDIA’s revenue growth is almost entirely the result of speculative purchases by hyperscalers and neoclouds that take years to install its GPUs. In other words, I think everybody is completely wrong about data center capacity, and it’s going to be a nightmare to untangle once they work it out. Everybody wants AI to be just like the Dot-Com Bubble, when I fear that GPUs may end up like the millions of unsold copies of Atari’s ET found buried in New Mexico. Per my own article : In earnings calls for its second , third , and fourth quarter fiscal year 2026 earnings, Microsoft would use near-identical phrasing: While I cannot say the exact rationale for making these statements, I can find no way to interpret them other than being an act of deception. In its Q2 2026 earnings call, Microsoft CFO Amy Hood responded to UBS analyst Karl Keirstead’s question, again repeating the “gigawatt” language [emphasis mine]: Note that Karl’s line of questioning directly addresses Fairwaters Atlanta and Wisconsin, two explicitly AI-focused data centers dedicated to OpenAI, and Hood responds by talking about a gigawatt of capacity in the December quarter ( referring to Q1 FY26, when no mention of adding a gigawatt in a quarter was made ). I already anticipate the response here will be that what Microsoft said here is “legal,” because it never said that this was AI capacity, but anyone responding like this operates with a peasant’s mindset. Anyone reading this transcript or hearing Microsoft mentioning that it added “gigawatts” of data center capacity is thinking about AI data center capacity — as evidenced by this piece and this piece and basically everyone you talk to on the subject. Let me be very blunt: it appears that Microsoft has, since the beginning of 2022, spent around $265 billion in capital expenditures (and added around $320 billion in assets to its properties, plants and equipment) to bring around $50 billion of GPUs online, and has used broad, vague language to make it seem like it’s been far more productive. Nobody on God’s green Earth is sitting here wondering if Microsoft added gigawatts of CPU capacity or cloud storage, nor are analysts desperate to hear about aggregate numbers — they’re asking where is all the money you’re spending on AI going , and the answer, it appears, is “into a warehouse” or “into a data center without power.” To bring home the point, I analyzed Microsoft’s earnings calls between Fiscal Year 2010 and Fiscal Year 2022, and found little discussion of data center capacity outside of competition with Amazon Web Services and Google Cloud, and no discussion of megawatts or gigawatts. When it comes to earnings calls, Microsoft’s use of megawatts and gigawatts is explicitly AI-era terminology , used for the first time in its Q4 FY2025 earnings call , though it had used it elsewhere, such as in a document reported on by Business Insider in April 2024 that said it had brought online “more than 500 megawatts of new data center capacity,” including this damning quote, emphasis mine: It appears that Microsoft is being vague with its numbers to hide the very obvious truth: that it’s spending hundreds of billions of dollars to buy GPUs that sit in warehouses or unpowered data centers, likely years in advance. This is a huge scandal. Why is Microsoft buying so many GPUs if it’s not got anywhere to put them? Why isn’t it waiting to buy the GPUs when it needs them, rather than buying them months or years in advance? Why is Microsoft telling us it’s bringing gigawatts of capacity online when it’s very clearly doing otherwise? And at this point, can we take anyone’s capacity announcements seriously? Microsoft is one of the first companies to build a GPU-powered AI data center ( back in 2020, specifically for OpenAI ), and has both incredible amounts of experience standing up compute infrastructure and resources to make it happen. I need to stress this point, because outside of the hyperscalers, the other companies building large-scale data centers are neoclouds, many of which were former crypto mining companies, or Oracle, which only dipped its toe into cloud infrastructure in 2016, long after Microsoft launched Azure and Google launched Google Cloud. If anyone has the expertise and resources to deploy large-scale AI infrastructure assets at scale, it’s Microsoft — and, as a result, Microsoft’s effectiveness in deploying AI infrastructure is more meaningful than, say, that of a Neocloud or even Oracle. As I said above, Microsoft had — as of a few months ago — approximately $50 billion of actual GPUs in service at around an estimated 1.993GW of AI capacity, with Bloomberg reporting on September 11, 2026 that it had “around” 2GW. It has spent $265 billion in capital expenditures, and per estimates from Michael Turrin of Wells Fargo and Gregg Moskowitz of Mizuho Securities, and Microsoft’s own statements in earnings calls: As mentioned above, Nadella mentioned in November 2025 that he had “...a bunch of chips sitting in inventory that [he couldn’t plug in],” but didn’t make any mention of how many there were. In other words, Microsoft is warehousing anywhere from $50 billion to $100 billion in GPUs, and has barely gotten $50 billion worth installed in the last four years. If Microsoft is struggling, everybody’s struggling, and we may have a very inconvenient truth: that NVIDIA has potentially sold hundreds of billions of GPUs years in advance. And yes, everybody is struggling. Microsoft, as a deeply unhelpful and deceptive company, does not disclose its “construction in progress” on its balance sheet — the place where companies put everything that they’re building, and in the era of AI, their unbuilt data centers and yet-to-be-installed GPUs (or, in Google’s case, its custom TPU AI chips). Across hyperscalers including Google, Meta, Oracle, Amazon, SpaceX, and Tesla, neoclouds like CoreWeave and IREN, and colocation companies like Core Scientific and Applied Digital, there is over $374 billion in construction in progress, a figure that’s likely lower than the true number, because Amazon’s contribution ($71.7 billion) is only current as of the end of 2025. The $374 billion number doesn’t include any CIP from Microsoft, Firmus, Sharon AI, Equinix, Nebius, or any number of private operators like Vantage, DataBank, CyrusOne, or QTS. It does not include any sovereign AI projects ( Humain/Saudi Aramco , Singapore , Reliance in India , G42 in the UAE), private projects run by or for OpenAI or Anthropic, Stack Infrastructure ( which is building Oracle’s New Mexico data center , with the CIP not landing on Oracle’s balance sheet as it doesn’t “own” the project), or Meta’s $27.3 billion off-balance-sheet “Hyperion” data center . Between them, I think there’s at least another $50 billion to $100 billion of CIP, but for fairness I’m not including it in the larger total. This number has increased across the dataset from $102.9 billion in 2023, to $145.6 billion in 2024, to $243.2 billion in 2025. Between 2023 and 2025, the combined capital expenditures of these companies was $351.6 billion on $243.2 billion of CIP. In other words, lots of money out the door with a bunch of stuff in a big, confusing and potentially-unproductive pile. If I’m honest, I think that $200 billion number might be a little generous. Considering Oracle’s CIP number from its latest quarterly earnings was at $48.5 billion and Google’s Q2 2026 “assets not yet in service” were at an astonishing $122.8 billion , up from $108.5 billion in Q1 2026 and $78.5 billion at the end of 2025 , it’s reasonable to believe that Microsoft has at least $50 billion of construction in progress. I also think it’s fair to assume that Amazon has, since the beginning of 2026, added at least $25 billion to CIP, though we’ll find out at the end of the year. As far as the breakdown of assets goes, I think it’s fair to assume the 50/50 split is accurate. In Google’s latest earnings call , CFO Anat Ashkenazi said that “...60% of our investment in technical infrastructure this quarter was in servers,” referring to servers with GPUs or TPUs. Wells Fargo’s Ken Gawrelski estimated in a note from January 2026 that approximately 65% of Meta’s capex was tied to “shorter-life servers and networking equipment assets.” Per Karl Keirstead of UBS in a note in January 2026, “...the vast majority of Oracle’s capex is for equipment, mostly Nvidia GPUs,” adding that “...by comparison, we estimate average annual capex over the next 5 years for Microsoft with perhaps 60% or around $125 billion for short-lived equipment/chips.” Yet arguably the most revealing thing I could find was a quote from CEO Andy Jassy on Amazon’s Q1 2026 earnings call from April : So, if we assume the number is roughly $374 billion, plus (at minimum) $50 billion from Microsoft, plus another (at minimum) $20 billion from Amazon, that puts us around $444 billion, with Google’s share — $120.8 billion — being 60% GPUs and related hardware, for a total of $72.48 billion, putting us at (assuming a 50/50 split) an estimated $234 billion in GPUs and TPUs sitting in warehouses. Since the beginning of calendar year 2023, NVIDIA has sold roughly $496.4 billion in GPUs and associated gear, and Broadcom approximately $65.1 billion in AI chips (though I’ll add that Broadcom only started disclosing its AI segment as of its March 2024 earnings ) for a total of $561.5 billion. Based on discussions with sources familiar with Azure infrastructure, Microsoft has a great deal of H100 and H200 inventory up and running — mostly consisting of hundreds of thousands of Hopper chips, as well as somewhere in the region of 160,000 Blackwell GPUs at the time of discussion. Based on a further analysis of NVIDIA’s earnings calls in the period along with estimates from Vijay Rakesh of Mizuho and Ross Seymore of Deutsche Bank, I roughly estimate NVIDIA has sold approximately $222.6 billion in Hopper and $270.9 billion in Blackwell GPUs. I think it’s reasonable to believe that the majority — if not the entirety — of Hopper GPUs are installed, leaving us with millions of Blackwell GPUs waiting to be installed. This is, to be clear, an assertion I made in November 2025 , when I took Jensen Huang’s statement that NVIDIA shipped “6 million” NVIDIA GPUs literally, versus using the whacky Jensen Maths that “each GPU is actually two GPUs,” bringing the total down to three. Nevertheless, based on everything I’ve discussed today, it’s very reasonable to ask whether even a quarter of those Blackwell GPUs are actually in data centers, or at least data centers with power connected to them. And if the truth — and this very much seems to be the case — is that NVIDIA has sold hundreds of billions of dollars of GPUs years in advance, that materially changes everything about the AI bubble and the AI data center buildout. I have, on occasion, cited Sightline Climate’s February estimates , which I’ll now quote in their entirety: I love Sightline Climate, and believe they do important and helpful work, but based on Microsoft’s obfuscation of what “capacity” actually means, I believe that virtually all estimates around operational AI data center capacity are now functionally useless. While we can use Sightline’s data as a measure of how much is in planning, I no longer think anyone has a handle on how much capacity is built. The same goes for basically any statements made by companies about or reporting around their potential capacity that do not specifically separate active AI capacity from overall capacity. Microsoft claims, as reported, that it has 12GW of capacity — 3GW of which came online in the last three quarters! — but only 2GW of that is AI data center capacity , which begs two questions: It’s very clear that Microsoft is playing silly buggers with the term “capacity,” which makes me believe this is an industry-wide problem. For example, CoreWeave claimed in its latest earnings presentation that it added 850MW in “active power” in the last quarter: There is a big difference between whether that’s active, revenue-generating AI data center capacity or 850MW of power at a plant not connected to anything because the data center isn’t built yet, much like it’s very different if it’s only 50MW or 200MW of AI data center capacity. In Oracle’s case , there were some statements made in its most recent earnings call by co-CEO Clay Magouyrk that are equally-misleading: Just so we’re clear, here’re the statements made by Mr. Magouyrk: Then there was another quote that had me very confused about Stargate Abilene, a 1.2GW total capacity/824MW IT load (IE: GPUs and essential hardware) data center campus that’s been under construction since June 2024. I’m waiting on an update from a source, but as of June this year, only three buildings were ready to go in Abilene, with a fourth a perennial work-in-progress. I concede that perhaps development has sped up, but per Yes Energy’s analysis , as of June Stargate Abilene was pulling a total power load of around 450MW — and Mr. Magouyrk specifically said “75% of total capacity” and “618MW,” which sounds like it’s referring to IT load. I don’t even have a clear answer as to what’s going on here, other than that we don’t have much (if any) clarity around how much data center capacity is even being built. Buried deep within a sustainability report released in July , saying… You’re meant to read that and say “wow, 1.2GW of AI data center capacity,” but that doesn’t, as we’ve established with Microsoft, mean anything of the sort. Data Center Dynamics accidentally explained the problem in their piece on the report : As we’ve established, that “1GW of capacity” does not mean, in any way, shape or form, 1GW of AI data center capacity , or even usable capacity of any kind. In fact, it’s unclear what it is that was added, because none of these companies tell you. At the end of 2025 , OpenAI claimed it had “1.9GW of compute” — which would suggest that it takes up the vast majority of Microsoft’s infrastructure and some of Oracle’s — but it doesn’t distinguish between whether that’s active power , IT load or even accessible to the company. As I discussed a few months ago , despite vast amounts of capital expenditures, hyperscaler depreciation — by which I mean when you spread out the cost of GPUs over 6 years starting from when they enter service — also suggests that the vast majority of capex is yet to be put in service. To illustrate, I pulled an historical chart of hyperscaler depreciation and amortization as a percentage of capital expenditures. If capital expenditures were quickly turning into operational, useful and revenue-generating assets, the percentage would be growing versus collapsing quarter-after-quarter, with Google’s sitting at an embarrassing 15.8%, suggesting less than 16 cents of every dollar of capex is flowing into D&A. While this isn’t a cost (as it’s spreading out the cost of something spread over a period of time), it eats into net income. As you’ll see, at several points hyperscalers reclassified the “useful life” of servers, allowing them to spread out the costs of servers containing AI GPUs for a year or two longer, allowing them to lower depreciation costs as a result. For example, in 2022, Microsoft extended the useful lifespan of servers from four to six years — and this year, changed the depreciation schedule of the actual data center structures from 15 to 25 years . The following year, Meta and Google followed suit , with Meta extending the lifespan to five years and Google to six. Meta would again extend the useful life of its servers in 2025 , pushing it to 5.5 years. Amazon, meanwhile, can’t make up its mind about how long its servers last, having increased (and decreased) multiple times over the course of the past six years. Quoting MoneyWise : This chart tells us three things: And because they’ve continued to be cloak and dagger about their actual capacity or where their capital expenditures are actually going, it’s anyone’s guess as to when depreciation will spike. But it’ll have to at some point unless they intend to write the GPUs off. This situation is utterly obscene. It’s very clear that at least $200 billion — if not more than $300 billion — of NVIDIA’s GPU sales have been made a year or years in advance, just as the company telegraphs it will make over $670 billion in revenue in its fiscal year 2028 (starting February 2027). It’s also clear that Microsoft, Google, Amazon, Meta, SpaceX, and every neocloud are purchasing NVIDIA GPUs tens of billions at a time under the implicit knowledge that it will take years to build the capacity and connect the power to them, creating what amounts to the largest pre-order campaign in the history of capitalism, but also a material misrepresentation of the current AI buildout. Investors — and journalists — have been under the assumption that gigawatts of AI data center capacity have been coming online on a regular basis, with NVIDIA raking in hundreds of billions of dollars for GPUs that are quickly fed into AI infrastructure. Since the beginning of 2022, Amazon, Google, Microsoft, and Meta have spent over a trillion dollars in capital expenditures, and if Microsoft is indicative of the larger effort — about 18% ($50 billion or so) of capital expenditures turned into revenue-generating IT infrastructure — that would mean only around $222.66 billion of NVIDIA and other AI chips across the four largest hyperscalers are actually operational and functional. If we assume — kindly — that 50% of the cost of a data center is construction, this would mean around $445.3 billion of data center capacity is operational. This leaves us with around $791 billion of capital expenditures unaccounted for, which is fairly disastrous, and if we assume that 50% of that is GPUs (across NVIDIA, AMD, Trainium, TPUs and any other custom silicon), that’s around $395 billion of silicon that’s been sold and is, I hope, sitting in a warehouse or an unpowered data center, as if they were just sold on paper, that’s…questionably legal accounting. I’m willing to believe that some share of that is also CPU infrastructure, storage, and other dollars not flowing directly to NVIDIA. In any case, that’s a shit ton of undeployed silicon, and a very, very, very different picture to the one that both NVIDIA and the hyperscalers have been telling investors. There’s a world of difference between “we’re buying a lot of GPUs and building a lot of data centers to make a lot of money” and “we’re investing in this stuff on the off chance it makes us money years in the future.” I’ll break it down: For the most part, hyperscalers have been given credit for their capital expenditures because overall revenues have grown, with everyone saying that their “ AI bets have paid off ,” when it’s clear that the AI bets in question have barely started to come online. I believe the reason that Google, Amazon, Microsoft, and most notably not Meta have seen remarkable revenue growth in the AI era is that they’re selling effectively all of their available compute to either Anthropic or OpenAI, who make up more than 70% of their AI revenues , and why the only AI data center companies with any revenue growth — CoreWeave, Nebius, IREN, et. al — are connected directly or by proxy to the two AI labs. Thanks to near-infinite resources — over $217 billion in 2026 alone — given to OpenAI and Anthropic, hyperscalers can effectively saturate any of the GPU infrastructure they bring online, as both AI labs are capitalized and willing to buy basically anything available. And because capacity is coming on very slowly otherwise , it’s sending out an illusory signal around “insatiable demand” for AI compute, when the actual situation is that barely any compute is coming online, even when it’s built by the largest and best-capitalized companies in the world. I’ll give you an example. Microsoft spent $265 billion in capex since the beginning of 2022, and in its most-recent fiscal year, 70% of its AI revenue — and 7% of its overall revenue — came from OpenAI . If you, as an investor, were to believe that this revenue was a result of all that capex , you were categorically wrong. Most of that capex hasn’t, in fact, been put into action. Amazon , Google , and Microsoft have said multiple times that they have demand that wildly outstrips capacity, but they’re totally opaque about where that demand comes from, largely because the answer is OpenAI, Anthropic, or in Google and Microsoft’s case Meta. I apologize if I’m overexplaining myself, but I really need to be clear about the problem. If “demand is outstripping supply” because of millions of customers begging for AI compute, that’s very different to “demand outstripping supply” because three customers are taking up most or all of the capacity. Similarly, if “demand is outstripping supply” because lots of capacity is coming online and a diverse subset of customers is buying it , that’s vastly different to if capacity is coming on slowly, and the vast majority of it is being given straight to OpenAI, Anthropic, or Meta. The $1.3 trillion in compute commitments from Anthropic and OpenAI have created a distortion in the demand for AI compute, in part because of their massive amounts of capital and in part because of their ridiculous demands for compute. The massive backlogs across Google, Microsoft, Amazon, CoreWeave, IREN, Nebius, and Nscale come not from the incredible demand for AI compute but the incredible ability for Anthropic and OpenAI to sign contracts. For example, Nscale’s $45 billion deal with Anthropic along with a contract with Microsoft make up 85% of its $103 billion backlog , and Anthropic’s deal is contingent on yet-to-be-raised financing . These backlogs are regularly used to justify the massive AI data center buildout, when they’re more a function of Dario Amodei and Sam Altman’s DocuSign accounts. You see, the ultimate problem is that the world outside of hyperscalers is — as a result of the obfuscation of data center capacity — under the belief that these companies are buying GPUs and then quickly turning that into cash versus buying these GPUs and quickly turning them into storage. This, by the way, is the problem with hyperscalers not explicitly breaking out their AI revenue, because in doing so they create the (I’d argue deliberate) illusion that AI capex is creating revenue growth , which both tricks investors into buying their stock and tricks developers into building AI data centers, believing that capex quickly translates into revenue. You can scoff about how investors or developers should “do better research” or “learn about stuff,” but remember that the vast majority of data points about data center construction are somewhere between misleading and outright fantasy. I’ve seen estimates of 12GW, 15GW, and as much as 20GW of capacity coming online in 2026, but based on everything I’ve talked about today, I think it’s farcical to believe that more than five to ten gigawatts of operational AI data center capacity actually exists. When you have companies like Microsoft and Amazon saying they’re bringing on a gigawatt of capacity — worded in such a way as to make you believe it’s AI data center capacity — every single quarter, what are you meant to believe? That the largest companies in the world would actively mislead you as a means of making their capital expenditures look more effective? And in turn, are you meant to believe that every single media outlet and research firm that pumps out theoretical gigawatts of yearly capacity coming online is wrong too? No, you’re probably going to believe the consensus, even when the underlying numbers don’t really make sense, and even when Microsoft’s announced capacity never seems to come online , because if you don’t believe that, you have to accept that everybody got this wrong. So, let me explain a few things before we go any further: You’ll also notice that there are tons of stories about announced AI data centers but very few about completed ones, and those mostly operate as reputation laundering. For example, CNBC helped both Oracle and Amazon do the same trick, claiming that their data centers were “open” when they were, in fact, opening one or a few of many parts of a data center campus: In Sigalos’ defense, Amazon leading the scam, claiming in a blog released the same day that Project Rainier was “now fully operational,” using weasel wording to refer to Rainier not as the data center but as an AI compute cluster , even though everything about its blog and the CNBC story exists to make you think it refers to the full data center project. All of this is to say that, for the most part, AI data center projects get announced and funded all the time, that the press willingly or otherwise engages in laundering the scale and completion of the projects, and everybody on the outside is deceived into thinking the AI buildout is faster and more effective than it really is. This means that the $290 billion in AI data center debt issued this year (outside of hyperscalers) will go towards building capacity at whatever rate it can, which is a problem because the vast majority of these deals are project financing-based, meaning that they’re funded out of the revenues of a customer who may or may not exist. In all honesty, the best case scenario would be if NVIDIA stopped selling GPUs, or AI data center debt stopped being issued, because every single time a data center is funded and breaks ground, it increases the severity of the overbuild scenario. As I discussed in my premium piece This Is Worse Than The Dot Com Bubble from a few months ago, GPUs are nothing like dark fiber. An incomplete data center will cost just as much to finish in 2030 as it will today, as will the GPUs cost just as much to run. The difference will be that once the AI bubble bursts, the customers of AI compute — predominantly unprofitable, venture-backed startups — won’t exist. Right now, with more than half of NVIDIA GPUs yet to be turned into operational capacity, every single new data center being built is effectively a bet on whether AI demand is larger in 2028 or 2029 than it is today, because you’re going to be competing with all the other capacity coming online in the years preceding that have already broken ground. Then there’s the problem of the upcoming flood of Blackwell GPUs, the vast majority of which have yet to be operationalized, meaning that anyone who bought them in 2025 is likely going to see them installed just as the first units of Vera Rubin come online, which will suppress prices even without there being significant available capacity, on top of the fact that there’s going to be a huge flood of them coming online in the next few years. Honestly, I think it’s kind of laughable we’re even talking about Vera Rubin at this point. When are we going to see it at scale? 2030? C’mon now. For years we’ve heard stories about the “incredible demand” for NVIDIA’s GPUs, and to be clear, Jensen Huang’s money is very real, and it is, whether or not they’re going anywhere, actually selling GPUs. There is, however, a massive difference between “we’re selling so many GPUs because people are immediately installing them and making money” and “we’re selling so many GPUs because our largest customers are buying so many of them because their revenues slowed in 2022 and they’ve run out of hypergrowth ideas .” Now, I get it, it’s not really Jensen’s job to tell people why people are buying GPUs , and I fully agree! That being said , NVIDIA does have a fiduciary responsibility to disclose material events about the products it sells — and, for example, if millions of GPUs are not actually shipping to customers, or are shipping to warehouses, or are otherwise not being sold with the immediate intent of installing them. I want to be clear about something: there is absolutely no advantage to or reason for buying GPUs months or years in advance outside of the vendor (NVIDIA) playing hardball. Yet it appears that hyperscalers — which make up more than 50% of its revenue — are willing to do so, quarter after quarter, hoarding tens of billions of dollars to “secure supply” that is only constrained because of the hyperscalers themselves. While UBS’ Timothy Arcuri noted in March 2026 that customers were placing orders around 22 months in advance , NVIDIA has sung a very different tune, with Jensen Huang saying that “ tokens are profitable and compute is revenue ” as the vast majority of his sales generate neither tokens nor revenue because the fucking data centers take so long to build. I need to be more blunt here: the vast majority of companies that have bought GPUs have yet to turn them into meaningful revenue, if they’ve turned them on at all. Most of NVIDIA’s sales are sitting in warehouses, and that is a significant disclosure that NVIDIA should have already been forced to make. It wouldn’t be too dissimilar to the last time NVIDIA got in trouble with the SEC back in 2022 , when it failed to disclose that the revenue growth in its gaming segment was actually coming from cryptocurrency miners rather than gamers, which was considered “inadequate disclosure.” While there’s a noted difference here — as NVIDIA’s customers are, ostensibly, buying their data center GPUs to put in a data center — the “demand” cycle for these chips, or really any AI chip, is entirely manufactured as a result of four or five large customers buying so many and Huang making statements about revenue generation that do not reflect reality. Perhaps this doesn’t rise to the level of SEC action, but every single journalist and analyst should be asking Jensen Huang and every hyperscaler executive buying GPUs the following questions: To hyperscaler CEOs: I realize that I’m Mr. Bubble and everybody gets mad at me for poo-pooing our big, beautiful AI bubble, but I cannot express how serious this situation has become. Hundreds of billions of dollars of debt has been issued, the price of every imaginable consumer electronic has been inflated , and both most of our stock market and parts of our economy have become dependent on the sales of GPUs , most of which are going to a handful of companies that are, for the most part, not fucking using them. There’s also something profoundly sad about the entire thing. So much money has been spent building and buying silicon for AI capacity that takes years to build, all as the AI industry tells us that right now there’s insatiable demand and that we’re fools to question it. One of the core reasons that people believe that AI isn’t a bubble is because of NVIDIA’s perpetual quarterly revenue growth, which is branded, once again, as insatiable demand for AI compute , when it’s actually almost entirely-speculative purchases based on potential revenues, with said potential mostly driven by the compute spend from OpenAI and Anthropic, two unprofitable and unsustainable AI labs . This is one of the reasons that Jensen Huang continues to funnel endless billions of dollars into circular financing — because the sense of ever-expanding demand for GPUs has become a proxy for ever-expanding demand for AI compute, even though it takes years for the first part to become the second, if it ever does. NVIDIA has now sold at least $200 billion dollars’ worth of GPUs — multiple gigawatts-worth — that have yet to be ingested by the market, and hyperscalers have, through their obfuscation of operational capacity and refusal to disclose AI revenues, helped create one of the largest speculative asset bubbles in history. Everybody who participated in this obfuscation owns part of what comes next. As I estimated a few months ago , Sightline Climate’s data has us at over 190GW of planned data center capacity, or, at 1.3 PUE and $12 million per megawatt, around $1.62 trillion in annual compute demand needed to saturate it. Right now, I estimate that there’s maybe $22 billion of demand outside of Anthropic and OpenAI . In other words, I believe we are now in an inevitable overbuild situation, one with no neat, tidy Dot-Com Bubble-style exit story. Demand for NVIDIA GPUs — and those from Broadcom, AMD and other semiconductor companies — is driven by speculative capital believing that the AI industry will become magnitudes larger than it is today, largely driven by the fact that everybody believes there’s far more demand for compute capacity than actually exists. Everybody celebrating Anthropic’s (entirely fictional) plans to have 5GW of capacity by the end of 2026 should know that this company is inspiring one the largest misallocation of capital in the history of capitalism. There is not 5GW of capacity for Anthropic to buy, nor will there be 10GW more for it to buy in 2027, and to suggest otherwise is to further perpetuate myths about how fast compute comes online and Anthropic’s ability to pay for it. NVIDIA has created a remarkable illusion perpetuated by the media — that GPU sales are a direct measurement of the actual demand for AI compute, rather than a measurement of how a few companies are willing to invest in an idea two years in advance, using circular financing as a means of creating the sense that you must buy these GPUs now , or you’ll miss out on the future. Capacity will, eventually, come online at a scale that the market for AI compute cannot support, and it won’t be obvious until it’s way, way too late. I fear that every single model around existing and future data center construction and AI compute demand is wrong, and that every assumption we have about the underlying economics of AI is corrupted by the belief that there’s far more operational capacity than there really is. If we believe there’s gigawatts’ worth of AI compute coming online every year, then we in turn believe there’s gigawatts’ worth of demand. If there’s a gigawatt or two coming online every year, that’s a completely different story. At the very least, hyperscalers are going to be burdened with brutal depreciation charges or onerous write-offs for years to come, whether their capacity turns into revenue or not. CoreWeave, Nscale, Lambda and every other neocloud is set on the highway to Hell, with ballooning debt that can only be paid via contracts that are dependent on a few AI labs and a company so capricious that it renamed itself after the Metaverse, burned $77 billion, then killed it two years later . I don’t even know how to write what I’m thinking without sounding alarmist…but I don’t see how 90%+ of NVIDIA’s sales ever end up generating a single dollar of revenue, and considering the amount of project financing-backed data center debt deals, there’s very little that exists to protect investors if AI compute demand never arrives. I don’t know how we don’t see tens of billions of dollars of write-downs and dead data center debt deals with every investor involved losing every penny, nor do I see how big tech avoids admitting that they wasted all their capex. I think everybody who invests in these things ultimately loses, ranging from embarrassment and terrible earnings for hyperscalers to genuine destruction for anyone that trusted the pablum that “all useful compute will be used.” Until that happens, more and more money will be sunk into further theoretical capacity, making the eventual collapse all the more gruesome. And in the end, what was any of this for? What did this achieve? What was the point of stacking up hundreds of billions of dollars of debt to buy hundreds of billions of dollars’ worth of AI chips years in the future? What do you think happens when the first hyperscaler pulls out? What do you think happens when the debt stops flowing? I’ll give you one answer: everybody will realize that they conflated a great sales pitch with a thriving industry, and both the markets and the economy will suffer as a result. None of this ever had anything to do with AI, and everybody who cheered Jensen Huang’s ascent in the belief it did is a mark. What a fucking waste. I don’t enjoy finding this stuff out. I wish we’d have stopped doing this years ago. Not that I think we will…but even if they bail out Anthropic, even if they bail out OpenAI, there is no way to magic up the trillions needed to justify the capex, or to prop up hyperscaler growth long term. The longer this continues, the more promises are made, the more projects that are announced…the worse it’s going to be. If you liked this piece, you should subscribe to my premium newsletter. It’s $70 a year , $18 a quarter , or $7 a month , and in return you get a weekly newsletter that’s usually anywhere from 10,000 to 18,000 words and provides vast, detailed analyses of the biggest events and companies in the AI bubble. If you want to get in touch — and especially if you have any juicy information about Anthropic, OpenAI, or any other companies in the AI bubble — hit me up on Signal at ezitron.76. I’m also on IB on The Terminal. Satya Nadella, Q2 FY26 (January 28, 2026) earnings call: All up, we added nearly one gigawatt of total capacity this quarter alone. Satya Nadella, Q3 FY26 (April 29, 2026) earnings call: All up, we added another gigawatt of capacity this quarter, and remain on track to double our overall footprint in just two years. Satya Nadella, Q4 FY26 (July 29, 2026) earnings call: All up, we added another gigawatt of capacity this quarter and remain on track to roughly double our overall capacity in just two years. In Fiscal Year 2025 (July 1, 2024 to June 30, 2025, $64.6 billion total capex) Microsoft’s split between short-lived (read: GPUs and associated gear) and long-lived (IE: physical infrastructure like buildings) assets was 50/50, meaning that approximately $32.3 billion was GPUs and associated gear . In Fiscal Year 2026 (July 1 2025 to June 30 2026, $115.9 billion in total capex), Microsoft’s split was two-thirds (67%) short versus long, or around $74.4 billion in GPUs and associated gear . This leaves us with an estimated $106.7 billion in short-lived, uninstalled GPUs. I will concede that there may be other short-lived assets, Microsoft’s own language from earnings calls notes they refer to “primarily CPUs and GPUs.” I severely doubt that Microsoft is spending more than a few billion on CPUs. I am preemptively assuming this is where AI bulls will latch onto first, and want to be clear that there really are no other big ticket items that could be taking up this much capex. Are we talking about power capacity or IT load? If it’s power capacity, this number is functionally useless. Is this actual data center capacity or total power secured ? If it’s the latter, Microsoft is basically saying “I got power from someone” rather than “I have a data center connected to power that I have either built or commissioned myself.” If it brought online 3GW of capacity in nine months but AI capacity only increased by, at best, a few hundred megawatts, what the hell is in the other data centers? I seriously cannot understand how Microsoft got to 12GW of capacity in totality but only 2GW of AI data center capacity. Oracle has delivered 850MW of AI capacity containing “more than 300,000 [non-specific] GPUs since the end of Q4 (fiscal year 2026, ending May 31 2026). Delivery in Q1 Fiscal Year 2027 is “73% of the total capacity we delivered last fiscal year,” which could mean 620MW of AI data center capacity, but he said total capacity , which involves non-AI data centers. Hyperscalers are getting increasingly worse at turning their capex into operational capacity. Hyperscalers have massive depreciation charges to look forward to that will eat their profits alive. Hyperscalers have a spending problem. If investors and the general public believe Microsoft, Google, Amazon and Meta are bringing capacity online rapidly, capital expenditures are justified at their current rate, because it’s seen as spending money to make money. If the truth is that the vast majority of these capital expenditures are going into Jensen Huang’s pocket and filling warehouses full of GPUs , that means that investors are being sold a line of shit about both revenue growth. As it stands, it appears to take years to build an AI data center based on every source I can see. Hundreds of billions of dollars’ worth of GPUs have been sold in advance under the belief that this capacity will be built, energized and leased to somebody. Right now, capacity is coming on very, very slowly, and nobody really wants to talk about it. On September 23, 2025, journalist MacKenzie Sigalos reported that “ OpenAI’s first data center in $500 billion Stargate project is open in Texas, with sites coming in New Mexico and Ohio ,” when in fact one of eight buildings was open, a fact buried six paragraphs into the story. On October 29, 2025, Sigalos reported that “ Amazon [opened its] $11 billion AI data center in rural Indiana as rivals race to break ground ,” claiming, and I quote, that it was “up and operational, while most AI rivals are promising data centers of the future.” In truth, only seven out of thirty buildings were complete, a fact buried 9 paragraphs and a video into the piece. How many Hopper GPUs are currently operational and generating revenue? How many Blackwell GPUs are currently operational and generating revenue? How long is it taking for data centers of over 100MW to be completed, by which I mean fully energized and generating revenue? How many NVIDIA GPUs are currently in storage, awaiting power, or otherwise purchased but not yet in operation? Roughly what percentage of NVIDIA GPUs that were sold in Fiscal Year 2025 and Fiscal Year 2026 are operational and generating revenue? How much AI-specific data center capacity do you have operational? How many GPUs — by make and type — do you have operational, installed and generating revenue in data centers? How many GPUs — by make and type — do you have in storage, awaiting power, or otherwise purchased but not yet in operation?
Honey, I Shrunk the Headers With Flow.ZIP Authors SIGCOMM'26 This paper presents a crazy brilliant technique for reducing the overheads associated with network packets. This was my first introduction to MPLS, which is deceptively simple. Fig. 1 shows the cost of header bytes in via “simulation of a FatTree topology and representative production storage workload”. The y-axis shows average flow completion time (FCT), which is the time between the first and last packets of a flow. The x-axis shows how loaded the network is. Source: https://dl.acm.org/doi/10.1145/3789240.3829104 The summary is that there are workloads where the cost of transmitting packet headers is non-trivial. Section 2 of the paper uses a mathematical model as further evidence. This problem is exacerbated by network virtualization techniques that add additional levels of encapsulation. If packet headers and encapsulation are the problem, how can it be solved? Encapsulate network packets by slapping on another header (an MPLS header to be precise)! Fig. 2 shows the layout of a !32-bit! MPLS header: identifies a path through the network. represents a traffic class for prioritization. indicates if this is the last MPLS header in a stack of MPLS headers represents time to live (like the IP TTL field). The paper proposes using MPLS for packet compression. Compression occurs near the sender, decompression occurs near the receiver. The idea is that for a given flow (i.e., connection) most bits in the IP/TCP/UDP header are identical for all packets in the flow. For example, say the sender is a cloud VM. The VM could send a normal packet (with bloated headers) to a SmartNIC. The NIC could then remove all header bits which are constant for the flow (e.g., addresses, ports, protocol) and replace them with a single 32-bit MPLS header. As the packet travels through the network to its destination, all switches/routers along the way would use the MPLS header for routing. Once the packet arrives at the destination SmartNIC, the NIC would remove the MPLS header and restore the original headers. Fig. 5 illustrates the compression scheme: Source: https://dl.acm.org/doi/10.1145/3789240.3829104 The original L3/L4 header (green) is replaced with a 32-bit MPLS header (blue) and the compression residue (orange). The compression residue holds bits which are not constant for the flow (e.g., payload length). This scheme relies on a lot of network hardware (e.g., NICs, switches) being in on the trick. The paper proposes a controller which configures the MPLS mappings in all of the network hardware. A typical switch supports an MPLS table with 16K entries. The controller gathers statistics about all flows and chooses 16K flows with the most bang for the buck. The remaining long tail of flows does not use MPLS compression. Fig. 8 shows flow completion times for 4 different workloads. Flow.ZIP is this paper. ROHC is an alternative technique called Robust Header Compression . Dangling Pointers This technique seems to be at odds with packet spraying, which is a hot topic these days. I wonder if there is a way to support both header compression and packet spraying. Thanks for reading Dangling Pointers! Subscribe for free to receive new posts. Source: https://dl.acm.org/doi/10.1145/3789240.3829104 The summary is that there are workloads where the cost of transmitting packet headers is non-trivial. Section 2 of the paper uses a mathematical model as further evidence. This problem is exacerbated by network virtualization techniques that add additional levels of encapsulation. MPLS to the Rescue If packet headers and encapsulation are the problem, how can it be solved? Encapsulate network packets by slapping on another header (an MPLS header to be precise)! Fig. 2 shows the layout of a !32-bit! MPLS header: identifies a path through the network. represents a traffic class for prioritization. indicates if this is the last MPLS header in a stack of MPLS headers represents time to live (like the IP TTL field).
Author: Andy McNab Genre: Military Fiction Released: 2015 Rating: ★★☆☆☆ It's a deadly game of hide and seek. Liam Scott has joined Recce Platoon. And it looks like he will be heading for Somalia. His mission is to gather intelligence from behind enemy lines, carrying out top-secret surveillance and dead letter drops. But he's new to the game and there's a lot to learn. Soon Liam is monitoring a den of Al-Shabaab militants and hunting a key terrorist target. Can Recce Platoon find their man and get out undiscovered? If the militants find them first, it's game over... Learn more on Goodreads ➡ This one was a slow burn. The first 2/3 of the book were really slow. It picked up during the last 1/3, but the majority of the book was a slog. I'm glad to see the back of this trilogy. It was a fun read, but I think was a bit much to be reading to my son. Plus, some parts of the books cut a little too close to home, to the point where I had to take a moment a few times. Anyway, next we're planning to read the Reckoners series , and I'm really looking forward to reading them again. I think he will enjoy them, and I'm excited to open his mind to the world of Brandon Sanderson. Thanks for reading this post via RSS. RSS is ace, and so are you. ❤️ You can reply to this post by email , or leave a comment .
I just received this email from my oldest son's school, and as the parent of adopted kids, for whom we constantly strive to be as private as possible, I really appreciate this. Advances in artificial intelligence (AI) technology mean that images shared on websites, social media platforms and other publicly accessible sources can potentially be downloaded and manipulated without consent. While we have always taken care when using student images, we have been advised that the growing availability of AI image-generation tools has significantly increased this risk. Consequently, we are updating our approach to the use of student images in public-facing communications. In hard-copy or online school publications which are widely available, we will no longer use images in which our students can easily be identified. To allow us to continue to give a visual flavour of school life, we may use AI-generated illustrative images featuring entirely fictional people. These images will not depict real students and are intended only to represent the type of activities, subjects and experiences available at . These changes reflect wider safeguarding advice and the fact that AI technology is developing very quickly. We recognise that this is a changing area, and our approach may need to evolve with it. For now, we will trial this approach, see how it works in practice, and make any further changes needed to keep safeguarding at the heart of what we do. Thank you for your continued support as we adapt our practices in response to emerging safeguarding challenges. Thanks for reading this post via RSS. RSS is ace, and so are you. ❤️ You can reply to this post by email , or leave a comment .
Amazon predictably blocked Muse, but there is room for a deal based on the reality that Amazon's physical world investments are an AI moat.
I grew up in a house stuffed full of books, with no television, and electricity for only an hour or two per day (while the generator was running). There were shelves full of old science fiction (Asimov and Heinlein), as well as books on history, some good old fantasy, and other smatterings collected from second-hand bookstores over the years. My mother read to us each night when we were children, starting with Dr Seuss, all the way to Harry Potter, where she did the spooky voices during the Voldemort scenes, which had me walking up and down the room with my fingers in my ears, humming to myself, until the scary parts were over. Naturally, this led to me reading a lot as a teenager and young adult. Up until I left home at 18, I would fall asleep each night reading by candlelight, which sounds very romantic and, in hindsight, definitely contributed to good sleep growing up. At university, I read substantially less. I suddenly had a computer in my room, reliable electricity, and downloaded series to watch. I never stopped reading, but certainly felt my attention span erode as a result (I also think Family Guy circa 2012 rotted my brain irreparably). As you can probably tell by now, I love reading books. It's my favourite form of media, by far, and I finish around a book a week. This may sound like a lot, but it translates into about an hour of reading per day—the length of a modern series episode, and while I'm not keeping count, the books I've read over the past year have really stacked up. Reading does something that other forms of media, by their nature, can't do: it allows the reader to see the world through the lens of the author and their characters, creating empathy, where they not only see the actions taken (such as in film), but also understand their perspectives, motivations, thoughts, and feelings. I find that my thinking is generally influenced by whatever I'm reading at the moment. When I'm reading Pratchett, I see the world with some tongue-in-cheek whimsy. Conversely, when reading Hugh Howey, I'm more cynical about the machinations of the societal elite and technological advancement. Reading books is also a fickle activity, as it requires activation energy and a decent attention span, both of which are eroded by the media landscape today. I've found that, since deleting my YouTube algorithm over a year ago, I have had a lot more time and energy for reading, and I'm grateful for making that choice. My YouTube home page Much ink has been spilled about the decline of reading and literacy and how we're becoming a post-literate society , so I'll only touch on it lightly: the main reason for this decline is access to higher-calorie entertainment with lower nutrient density—mostly short-form video. This really started with television in the 1960s, yet only became an intellectual crisis in the past two decades thanks to Netflix and YouTube. It was surprising to learn that blue-collar workers in the ’50s had better literacy than college-educated adults today, and has gotten to the point where some governments have proposed paying people to read . This is well documented in Amusing Ourselves to Death (1985) by Neil Postman, which is worth reading. This year, I have been re-reading the Discworld books by Terry Pratchett—possibly my favourite author and an all-round interesting person. If I could have dinner with any historical figure, it would be this man. He possesses a way of looking at the world, alongside a delightfully descriptive and witty style, that I can only stand in awe of. I've also read a handful of non-fiction books, as well as Wool , which I believe has been made into an Apple TV series named Silo . My bedside table for most of this year (featuring a lamp made by Emma) I received a bookstore voucher from some friends for my 34th birthday and have decided to get into the classics with Frankenstein by Mary Shelley (I feel this is a relevant book at the moment, as humans are currently creating a monster of our own that may escape our control) and Crime and Punishment by Dostoyevsky, which is arguably one of the most important pieces of historical literature. Thanks, Graeme and JP! Reading never leaves you; it just becomes buried by other things. I no longer need to read by candlelight, but I still fall asleep every night with a book. If you haven't read for a while, I encourage you to block out some time, forgo an episode of the series you're currently watching, and settle down with a good book. It could be a classic you've always meant to read, or an old favourite you'd like to revisit. You don't need to finish a book a week; a few pages before bed are a perfectly good place to start. Email me if you'd like some recommendations (though there's a fair chance I'll suggest something by Pratchett).
If you’ve been around the mechanical keyboard scene for a while, NuPhy’s name has probably come up at some point, most likely attached to one of their Air series low-profile boards. Over the past few years they’ve put out keyboards that look better than they have any right to at their price point, with a sound and feel that punches above their weight class and without the pretentiousness that usually comes with enthusiast hardware. The Kick75 is one of their more interesting releases so far, because it’s a hybrid-profile board. It is one PCB and one chassis that take two different switch and keycap ecosystems, using a relatively inexpensive swap kit. This is not the kind of board I’d normally gravitate towards, as my collection is more on the enthusiast side of the hobby, with a RAMA M60-A as my HHKB endgame, a RAMA KARA as its wingman, and the “Kunai” Corne V3 as my ergonomic daily driver. The 75% layout has never quite, erm, clicked for me. :-) Still, the Kick75 is interesting enough that I’ve spent a fair amount of time with it. This is a write-up on my thoughts and opinions on the NuPhy. I’ll admit that when I first saw the board in person at the NuPhy showroom in Seoul I was skeptical. The mechanical keyboard hobby has seen its fair share of exotic ideas and plenty of them exist to solve a problem that nobody really had. Unlike the Air series, which is purely low-profile, or the Halo and Field series, which are standard height, the Kick75 is meant to be both. My question was whether that flexibility works in practice, or whether the result is a compromise that is worse than either option by itself. The hybrid mode is achieved by unifying the pin layout and the stabilizer geometry across NuPhy’s nano (low-profile) and Max (high-profile) switch families. Both are 5-pin, both fit the same plate cutouts, and both work with the same stabilizers, which is a non-trivial engineering exercise. NuPhy markets the two families as sharing a unified 3.5mm travel, but as we can see from the individual spec sheets the reality is not as clear-cut. Only the Red nano and Brown nano are at 3.5mm, the Silver nano and the Red Max, Brown Max and Silver Max are at 3.4mm, the Blush nano is at 3.2mm, and the silent Blush Max is at 3.8mm. However, none of those differences are likely to be noticed by the target audience while typing. Both lines come in the same four variants, where Red is the plain linear at 45g operating force, Brown the tactile at 50g, Silver the speed switch with its pre-travel cut from 1.8mm down to 1.2mm, and Blush the silent version, which uses a silicone insert in the stem instead of pads on the housing. The nano switches are made almost entirely out of POM, with the silent Blush as the exception with a PC top and a PA66 bottom. The Max switches keep the POM top housing but move to PA66 at the bottom, with LY stems on the Red and Brown, a Y3 stem on the Silver, and POM on the Blush. Whichever profile you pick, the board uses the same PCB and the same PCB gasket mount, so the case contributes the same way acoustically in both setups. What makes the tonal difference are the switches and the keycap profile. The board that I got to test came with the default NuPhyIO firmware. NuPhy call the aesthetic of the Kick75 the 8-Bit Odyssey theme, which means a translucent frosted polycarbonate chassis, a faint cartridge-style groove on the underside, four-color accents on a handful of the keys, and a bright red volume knob that looks like it came off a piece of late-80s hardware. There’s some pixel art on the bottom plate as well. The board looks sort of retro and you either like that or you don’t. I personally like the aesthetics. The Kick75 is entirely made of plastic, with the top case, the bottom case, and the plate being all PC. For a board between $109 and $129 that’s neither surprising nor unreasonable, but it does set some expectations. This is not a RAMA (R.I.P.) or Mode, nor is it even a mid-tier aluminum 75% that you can get for around the same money these days. What you’re paying for is the engineering behind the hybrid concept and the sound dampening that goes with it, but definitely not the material. Before this turns into an it’s just plastic dismissal, the RAMA KARA in my own collection is also a plastic board, and with the internal dampener and a decent switch choice it thoccs a lot harder than you’d normally expect an ABS case to. Chassis material matters less than what is done with it, and, to be fair, NuPhy seem to have put a fair amount of work into that part. The dampening is pretty elaborate, with five layers inside the case, namely plate foam, a switch pad, a sound damper, PCB foam, and bottom case foam. The result is a soft, cushioned bottom-out with a bit of bounce to it. The translucent PC case diffuses the south-facing RGB evenly through the chassis. The stock PBT caps are not shine-through, so the light comes out around the keys rather than through the legends. However, the milky diffusion of the PC helps the board avoid the trashy harsh Christmas-tree look that a lot of consumer-tier keyboards normally have. If you care about RGB at all, then you might find that this is a decent implementation. The magnetic kick-out feet give two angles, 6° and 12°, and they hold with enough force that they don’t feel flimsy. The volume knob, depending on your taste, is either the most interesting detail on the keyboard or the most too-much one. It’s bright red, it’s relatively big, and it is set into a recessed corner of the case. I personally think it works quite well, but it obviously adds a lot of playfulness to the overall aesthetics that some might not find particularly appealing. The Kick75 is comfortable to type on for extended periods. The gasket mount takes the edge off the bottom-out without turning the keystroke mushy, and on the low-profile side the 3.5mm travel is noticeably more than you get on most laptop-class keyboards. On the high-profile side the 3.4mm is shorter than the usual 4.0mm, which makes the Max configuration feel a touch snappier than your average gasket-mounted 75%. The tactile Brown switches have a 50g operating force and a 65g bottom-out, which is on the lighter end of modern tactiles, and the bump is gentle without being mushy. The linear Red switches are more predictable at 45g and roughly 60g, while the Silvers are the lightest of the four and actuate 0.6mm earlier. The Blush switches are the silent option, and the silicone in the stem does a good enough job that you can still tell where you are in the stroke. Wobble is in line with what you’d expect from a modern hot-swap implementation. There’s a touch of stem play in either direction, more visible on the Max switches because of their taller stems, but nothing that disrupts normal typing. The stabilizers are plate-mounted and factory-lubed, with no audible rattle out of the box. Acoustically the Kick75 has a decent, thoccy , creamy sound profile, especially on the low-profile side. The double-shot PBT keycaps, nSA on the low-profile and mSA on the high, are chalky-textured and relatively thick. They’re not the deepest-sounding caps I’ve typed on, but they avoid the cheap, hollow clacking of thinner ABS sets. To set some reference points against my own collection, the M60-A is at the deep, heavy, dense end of the spectrum, the KARA is premium-feeling-despite-being-plastic thanks to the internal dampener and the screw-in stabilizers, and the Kunai is clacky-and-busy compared to those, and obviously has a lot less depth than the others. The Kick75 doesn’t get anywhere near the M60-A’s density, and I doubt that anything at this price would, but it ends up somewhere between the KARA’s and the Kunai’s character. For a $109 factory-built board with a polycarbonate chassis that’s not at all a bad result. If you’re thinking “Cool, I can swap between profiles whenever I feel like!” then you might be in for a bit of a disappointment, because switching between the low- and the high-profile is not quick. It’s a full disassembly that takes around an hour if you’ve taken keyboards apart before. You need to unscrew the case, lift the assembly out, swap the plate foam and the switch pad, move the stabilizer buckles over to the other profile, and reseat the gaskets. Then you pull every single switch, install the switches of the other profile, and put all the keycaps back on. Only then can you close everything back up with the other top case and, going from low to high, fit the knob extension. The $29.95 conversion kit covers the top case, the plate foam, the switch pad, the knob extension, and it comes with a screwdriver with the two bits you need. It however does not come with the switches or the keycaps for the other profile, which you have to buy separately. Hence I would argue that for most people the Kick75 is a one-way trip. Once you’ve set it up as either low- or high-profile, swapping to the other profile is enough of a chore that you won’t, unless you genuinely enjoy disassembling the same keyboard over and over. If you do want to switch back and forth regularly, you’re probably better off buying two units, because the kit plus a second set of switches and keycaps gets you pretty much to the price of a second board anyway. I have strong opinions on the low-profile side, as I own the Corne V3 (Choc) variant of my primary keyboard and I do not enjoy typing on it at all . Flat, low-travel keycaps remind me too much of the MacBook keyboard, which I’ve avoided for years. The nSA profile on the Kick75, however, is sculpted and not flat, and the 3.5mm travel on the nano switches is at least 0.5mm more than the Choc ecosystem gives you at 3.0mm. Still, I personally dislike lo-pros with a passion. NuPhy ships the Kick75 in two SKUs. The default $109.95 version runs their proprietary NuPhyIO firmware, configured through a web-based tool that covers remapping, macros, and RGB without the need to install anything locally on your computer. It’s pleasant enough to use, however it talks to the keyboard over WebHID, so it only works in Chromium-based browsers. Firefox and Safari don’t implement the API yet. The $129.95 SKU replaces NuPhyIO with QMK and VIA support, which is the route I’d have taken if I had actually ordered one for myself. Charging $20 extra for QMK/VIA, when it comes free on nearly every other enthusiast-class board on the market, is a weird move from NuPhy here. If you want a solid entry-level board that’s as affordable as possible, the NuPhyIO version is fine, I guess, but in all other cases I’d definitely recommend going for the QMK/VIA one instead. The Kick75 has USB-C, Bluetooth 5.0 for up to four paired devices, and 2.4 GHz through a small dongle that stores magnetically under the case. Wired and 2.4 GHz both run at 1000 Hz, while Bluetooth caps out at 125 Hz, which is fine for typing and acceptable for anything short of competitive gaming. NuPhy rates the 2500 mAh cell at up to 360 hours with the backlight off and roughly 90 hours with it on. I had the board for too short a time to verify either number, so I can’t really speak on whether the Kick75 achieves those. As a hybrid-profile keyboard the Kick75 is an interesting engineering piece that however doesn’t deliver on the casual-swap promise its marketing implies. As a 75% gasket-mounted mechanical keyboard at $109 to $129, however, it’s a good buy, with a sound profile well above its price bracket, a retro aesthetic that I happen to like, and more dampening inside than the price bracket normally gets you. If you’re shopping for your first enthusiast keyboard and you want to keep your options open between low- and high-profile, the Kick75 is a good place to start. If you’re an established enthusiast with a shelf of aluminum boards, a settled layout, and existing investments in keycaps and switches, it isn’t aimed at you and you’ll get more out of a single-profile board built around what you already have. For me personally, the Kick75 is not a board I’d permanently add to my collection , but it’s one I’d recommend to someone curious about the hobby who isn’t ready to spend $500+ on a single-purpose enthusiast build. It does most things well, but the profile swap, which is the entire reason the board exists, is the one thing that it sort of fails to deliver. Note: Unlike most of my other keyboard write-ups this isn’t a long-term hands-on review. The board was borrowed for a limited time and I don’t own it. Take this as a first impression, and use it as a starting point for your own research. Your mileage may vary based on switch choice, build configuration, and what you’re coming from and/or expecting.
import Figure from "../../components/blog/SeedanceVideoEditing/Figure.astro"; import ReferencePhotos from "../../components/blog/SeedanceVideoEditing/ReferencePhotos.astro"; import ResultVideo from "../../components/blog/SeedanceVideoEditing/ResultVideo.astro"; import sourceFraming from "../../assets/images/blog-posts/SeedanceVideoEditing/source-framing.jpg"; import sourceWide from "../../assets/images/blog-posts/SeedanceVideoEditing/source-wide.jpg"; import generatedWide from "../../assets/images/blog-posts/SeedanceVideoEditing/generated-wide.jpg"; import generatedCloseup from "../../assets/images/blog-posts/SeedanceVideoEditing/generated-closeup.jpg"; import apiScreenshot from "../../assets/images/blog-posts/SeedanceVideoEditing/reapi-edit-settings.png"; import fullPromptUrl from "../../assets/images/blog-posts/SeedanceVideoEditing/submitted-prompt.txt?url"; It feels like AI video generation is finally solved and I wanted to be a part of it. After seeing an AI-generated video of Sam Altman and Dario Amodei go extremely viral on X today, it felt like it was finally time to learn how to do this myself. I made a version with Jensen Huang and Lisa Su that got over 100,000 impressions with less than 30 minutes of total effort. However, it still does feel like somewhat of a dark art to the uninitiated, hence why I'm writing this blog. Feel free to just copy and paste it into an agent if you want to generate similar kinds of videos. The most shocking part outside of the process itself was the cost: I paid about $16 per generation for these roughly 30 second videos at 1080p using Seedance 2.5 through reAPI . There's still a cost barrier to doing this, especially when it takes a few attempts to get a result you like. I'm excited to see that come down as the models get more and more efficient. <ResultVideo /> I started with Quavo and Takeoff's COLORS performance , then matched the section and framing of this character replacement edit on X . Starting with an existing performance gives the model gestures, expressions, interactions and camera movement to follow. I downloaded the original with yt-dlp , without its attached YouTube playlist. You will also need FFmpeg and jq for the commands in this post. For this clip, the section begins at 14.60575 seconds and lasts about 29.09 seconds. I cropped the 3840 × 2160 source to 2880 × 2160, offset 606 pixels from the left. That gives a 4:3 frame with the performers and microphone positioned correctly. These crop coordinates are specific to that 4K source. For another video, choose your own section and crop before submitting it. Keep the audio in the trimmed file, since you will use it again after generation. <Figure image={sourceFraming} alt="The cropped source performance with the striped shirt performer on the left and orange shirt performer on the right" caption="The prepared source near the beginning. This establishes the left and right assignments, microphone placement and framing." source="https://www.youtube.com/watch?v=x9yop0nYR9g" credit="COLORS" /> A good portrait tells the model what someone's face looks like. It does not tell it what shoes to put on them. I collected full body photos with visible footwear alongside facial references, then told the model how to use each photo. These are the six actual images I submitted, in request order. Click any image to inspect it at full size. The first photo is the primary outfit reference: a red patterned Hawaiian shirt, khaki cargo shorts and dark thong flip flops. His full body and both feet are visible. The second is another full body view, useful for his build and footwear, but it shows a different shirt and black shorts. I explicitly told the model to ignore those clothing differences and follow Image 1. The third photo supplies recent facial detail, including his wavy hair and pointed goatee. Its watch and clip microphone should not carry into the video. The second photo was originally 8,047 pixels wide. The API rejected it because reference dimensions must be between 300 and 6,000 pixels. I resized the entire photo to 6,000 pixels wide and kept both feet in frame. The rejected attempt used no credits. <ReferencePhotos person="palmer" /> Paul is on the left in Image 4, but he belongs on the right in the video. That distinction needs to be in the prompt. Image 5 is older, so I used it for facial detail while asking the model to keep his gray hair and appearance from Image 4. Image 6 is the important wardrobe photo. Paul is standing at the far right, wearing a pale polo, gray shorts and brown sandals. I also asked for visible cargo pockets, even though that photo does not clearly show them. That makes the pockets a detail to check in the output, rather than something the reference already establishes. <ReferencePhotos person="paul" /> I used the standard Seedance 2.5 model, , with output and set to . The reAPI documentation requires and for this editing mode. Automatic duration also requires enough account credit for the maximum reservation, even if the source is shorter. I kept the default moderation settings and set , since I wanted to restore the original music afterward. <Figure image={apiScreenshot} alt="Screenshot of reAPI's Seedance 2.5 documentation showing the task types and requirements for video editing" caption="The provider's edit mode requirements. This is a screenshot of the documentation, not a generation dashboard." source="https://reapi.ai/docs/seedance-2-5#task-types-and-constraints" credit="reAPI documentation" /> Create an API key and put it in your local environment variable. Upload and the six photos to storage that gives you directly accessible HTTPS file URLs. A link to a photo viewer page is not the same as a link to the image bytes. Temporary signed download URLs work as long as they remain valid for the job. Save the six image URLs as a JSON array in , in the order shown above, and set to your uploaded trimmed MP4. Keep the key and private URLs out of screenshots and published examples. Here is a shorter version of my prompt. The image numbers refer to the order in . <a href={fullPromptUrl} download>Download the complete prompt used for this run.</a> Save whichever version you use as . The position in a reference photograph and the position in the output are separate instructions. This matters when a reference has two people in it. Also name the specific clothes, rather than assuming the model will know which photo should determine the outfit. Build the request with jq so multiline prompt text is escaped correctly: The submission returns a task ID. Keep polling that task until it completes. If a submission has an uncertain network result, check whether it created a task before submitting again, since another POST can create another paid render. Compare the source and generated clip at the same timestamp. Check the positions, scene, gestures and camera cuts, then inspect the faces and clothing through the turns. <Figure image={sourceWide} alt="Wide source frame showing both original performers at 18 seconds into the trimmed clip" caption="Source at 18 seconds into the trimmed clip." source="https://www.youtube.com/watch?v=x9yop0nYR9g" credit="COLORS" /> <Figure image={generatedWide} alt="Wide generated frame with Palmer on the left in his red Hawaiian shirt, khaki cargo shorts and flip flops, and Paul on the right in a pale polo, gray shorts and brown sandals" caption="Generated frame at 18 seconds. Palmer has the requested outfit, including visible cargo pockets and flip flops. Paul's polo and sandals carried through, but his gray shorts lack the requested cargo pockets." /> Watch every cut, the turns and the moments when hands pass near faces. Check that neither original performer comes back, the replacements keep their positions, and the outfits stay consistent. A successful API response only means that a video was produced. <Figure image={generatedCloseup} alt="Generated closeup showing a ring on Palmer's hand and rings and a watch on Paul" caption="The no jewelry instruction failed: rings remain on both people, and Paul still wears a watch. His hair also came out darker than the recent reference." /> The model returned a 1664 × 1248 video for the request. I exported a 1440 × 1080 H264 MP4 for X, keeping the 4:3 frame and copying the audio from the trimmed source. The two arguments select video from the generated file and audio from the original trimmed file. preserves that AAC audio without encoding it again. Compare the stream durations and check the end of the clip for any mismatch. Check the file before uploading: The export settings target H264 at 1440 × 1080 with AAC audio. Check the resulting frame rate, dimensions and bitrate against X's documented upload limits . The second command decodes the file to catch errors that metadata alone would miss. The reference photos, prompt and source framing are the parts to reuse when making your own version. If one detail is essential, like Palmer's flip flops or Paul's sandals, make it visible in the references and then check that it actually appears in the video.
Designer Reimar Servas goes further than the usual Border Radius Discourse and thinks about the deeper but often ignored questions of border radii as a system, and about the consequences of such a system that go beyond visuals : […] These redesign efforts suggest ignorance of a fundamental problem: rounded forms have a smaller surface area than angular ones. Used as containers, they reduce usable space. This is fine on most touch-based UIs since they typically feature simple layouts with only a few controls and plenty of white space. Such spacious designs help our fingertips, which demand larger touch areas. A mouse pointer, by contrast, can target much smaller elements. Professional desktop software — think 3D modelling, video editing, or music production — is often packed with small controls. On these complex interfaces (and the operating systems that host them) screen estate is precious, even on large screens. Heavily rounded elements don’t work well here. I liked this simple, but powerful visual: = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/this-also-introduces-new-questions/1.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/this-also-introduces-new-questions/1.1600w.avif" type="image/avif"> Servas adds: Apple is well aware that principles from pointer-based UIs rarely translate well to touch interfaces. After all, they spearheaded the evolution of touch UIs and introduced multi-touch interactions like pinch-to-zoom to consumer electronics — formerly only seen in science fiction or obscure research projects . Yet they’re now rolling out single unified design language across watches, phones, desktop computers, and XR goggles. The piece was written just before the arrival of Golden Gate, which undoes some of Tahoe’s damage. Yet, I remain worried about the rumoured touch MacBook. I consider adding touch to macOS an unsolvable challenge, unless you happen to be okay with compromising on precision and density. I’m not.
A fun lil convention from the financial app YNAB’s release notes page – there is always a headlining feature with a hero shot and a long description, but the smaller improvements are still listed as “pocket change”:
We’ve given in to using LLMs for writing at work. From emails and Slack comments to full-on documentation, everything is AI-generated. However, I’ve realized it only ever saves me time when I’m being lazy. That is, it’s great at converting meetings into transcripts, summarizing those transcripts into action items, and keeping information accessible. But it’s pretty bad because the result is ridden with invisible errors. But what counts as an error if you trust the LLM and never meticulously read the output? And how much time are you really saving if you end up spending that time proofreading? I went back to a meeting transcript after a developer struggled to turn my AI-generated summary into a coherent ticket. Looking through the source transcript, I noticed that at one point it recorded the word "embroidery." I mean, we work for a large telecom company, the chances of me using that word are slim to none. Nevertheless, the AI summarized the conversation and included "embroidery" as an action item. In the words of Claude himself: It's not just true, it's false. I chuckled, but it made me think about all the BI slop we generate daily in the name of using AI technology. It feels helpful. Creating massive documents makes us look productive. Generating a pull request with changes across hundreds of files seems impressive. Asking AI to validate an idea feels instructive. Unless you take the time to scrutinize the results. I can only imagine what the world will look like when we feed all this slop back into the machine.
Another month, another agent-shell update. If you missed the last post, have a look at the 0.73 update . As usual, this post showcases highlights, but please check out the full list of changes if you're after the nitty-gritty. agent-shell is a native Emacs mode to interact with AI agents powered by ACP ( Agent Client Protocol ). Two agents join the family, available as usual via , or explicitly as follows: Likely the most impactful feature in the release. It's highly discoverable and plenty useful, so I'm expecting a fair amount of uptake. A typical shell experience offers a prompt. Users type and submit their commands and wait for the command to finish before the shell prompt is offered again. Deriving from , was no different. That is, until now. As of v0.78, offers a writeable prompt at the end of the buffer at all times. Submit, and the prompt comes right back while the agent is busy handling the turn. Type and submit again and will automatically queue your request if necessary. While queueing itself isn't a new feature, the shell prompt queueing route offers a freebie in terms of cognitive load. Submit prompts as you used to (via binding), and let decide whether to handle now or queue for later. The persistent prompt is enabled by default via . If this isn't your cup of tea, it can be easily disabled with: The viewport's compose buffer is there either way, and submitting from it mid-turn routes through exactly the same logic. As of this release, can also steer turns (provided the agent supports the ACP extension). Steering enables you to course correct in-flight prompts without cancelling or waiting for the prompt processing to finish. As of today, I'm aware of and handling ACP steering, but please reach out if you know of others. Steering an in-flight turn via offers a similar experience to the existing . That is, prompting the user for text in the minibuffer. Having said that, we now have a new and shiny persistent prompt, and as we now know, the binding automatically queues if needed. From the same prompt you can now also steer by submitting via the binding. Huge thanks to @OSadovy , who took on the legwork for steering in #777 . With and respectively queueing and steering as needed, the default behaviour is configurable via (queues by default) while the (or ) route uses (steers by default). Both customizations accept a function, so swapping would offer steering and queueing with something like: Both apply wherever a prompt is submitted mid-turn, the shell prompt and the viewport's compose buffer alike. As emacsers, we want all sorts of customizations, so custom functions can be used too, if you'd like something a little different from what's offered. While we could already paste screenshots from the clipboard, we can now drag and drop files from external file managers onto either shell or viewport buffers. Images get a preview, anything else is attached as an link. Thank you @dustinfarris for #825 . While on topic, @dustinfarris fixed file mentions carrying whitespace in paths ( #824 ). After all this time, I had no idea the temporary thumbnail generated by macOS's screenshot utility is draggable, and so you can now drop it straight into your session. Thanks to @dustinfarris for the tip! If you'd like to keep an eye on token cost, headers can now show the session's cumulative cost, right after the context usage indicator. Currently off by default, so opt in with: Keep in mind cost is displayed for agents reporting cost via ACP. Thank you @mrcnski for #834 . folds lots away by default (tool calls, thinking, groups), requiring additional help if we want closer integration. Thanks to @mrcnski 's contribution in #832 , folded fragments now respect . Searching also folds back what it expanded once you're done, groups included. Also thanks to @Gleek for #827 : expanding a fragment no longer clobbers 's match data. Slash command completion is now offered more idiomatically across all three surfaces (shell prompt, viewport compose buffer, minibuffer): it only kicks in when whitespace alone precedes the . Thank you @izeigerman for #810 . File completion after is unchanged. We now have , which grabs the most recent output regardless of point location, so you can pull the latest response from anywhere in buffer. Links got a handful of fixes/improvements worth mentioning: on next/previous page now moves N interactions instead of one, and a negative prefix pages the other way. Moving forward past the newest interaction restores a parked compose snapshot, so does what pressing the key N times does, rather than stopping short of your draft. Thank you @liaowang11 for #813 . Following on from last month's table work, plain data rows now get a face of their own, and every table face inherits from one base face. If you'd like to restyle tables wholesale, you now have a single place to do it. Thank you @mrcnski for #822 . returns the current ACP session ID. On that note, there's also for when you just want it in your kill ring. was a bit narrow, so it's been replaced by , an alist of whatever OpenCode advertises under "Available config options" when starting a new shell: Options are applied in the order listed, and order matters. Thank you @nhojb for #739 . Four more joining the lot: With the new renderer offering a richer Markdown experience for some time now, the deprecated renderer is gone. If you peeked at the commit logs for the period, you'll see it's been another busy month. Since the last post, 153 commits shipped, 32 issues have been closed and 25 pull requests merged. As of this writing, the backlog sits at 16 open issues and 6 open PRs (versus 11 and 5 last time around). Zooming out a little, here's how the backlog has tracked since March: Side note: this chart was generated using the skill shared in my emacs-skills repo. From the graph, it's evident when I became a father , but you can also see I managed to bring things back down, hovering at a fairly stable level since. All of this requires daily attention 👉 hint hint 👈 These days (especially at the workplace), vendor-neutral tooling matters more than ever, and there are a couple of ways to help keep going. Some cost money, others just a click. All are appreciated ;) is built and maintained by me, an indie dev, while the tools it often competes with at the workplace have well-funded teams behind them. Time spent on is time away from other work that pays the bills, so if it's useful to you, please consider sponsoring the project. And if your employer benefits from your use, nudge them to chip in too, they can typically contribute at a scale individuals can't. GitHub stars help with exposure, attracting new users and potential sponsors. Starring agent-shell costs nothing and can potentially help bring in more funding, so if you don't mind a couple of clicks, the project can really use another GitHub star . Thank you to all contributors for these improvements! Liking ? Would like to see it evolve? Consider sponsoring the effort. Antigravity (Google), #795 by @tychoish . Start it with . Qoder CLI , #831 by @unship . Start it with . File references inside spans are now linked ( #781 , #782 , thanks @OSadovy ). Links inside tables are now actionable. Links are now more robust while streaming. Links to local directories now open in . The cursor-sensor hint is no longer misaligned on links. Session lists are now paginated under the hood, requesting available sessions until agents run out ( #809 by @KarimAziev ). If you'd rather cap your session list, takes a positive integer. Restarting shells now preserves window arrangement. agent-shell-org-config : Keep agent, project, and skill definitions in org-roam. agent-shell-permission-transient : A compact Transient interface for responding to queued permission requests. agent-shell-queue : A flexible prompt/shell queue for sessions. agent-shell-queue-transient : A Transient interface for the prompt queue in . #739 : Add opencode model variant customization ( @nhojb ) #772 : Ask about killing the shell only when that is what was asked for ( @OSadovy ) #777 : Steer prompts into the running turn instead of queueing them ( @OSadovy ) #794 : Mark restored prompts with ( @OSadovy ) #795 : Add ( @tychoish ) #796 : Add link ( @tychoish ) #801 : Strip copies in the substring filter, not via yank-handler ( @OSadovy ) #802 : Fix chat prompt indentation ( @nhojb ) #804 : Stop the live prompt flickering on every keystroke ( @alberti42 ) #808 : Fix viewport prompt font-lock face precedence ( @liaowang11 ) #809 : Handle ACP session/list pagination ( @KarimAziev ) #810 : Slash command completion at prompt start ( @izeigerman ) #812 : Display Pi terminal output in agent-shell ( @timfel ) #813 : Add prefix-arg page jumps to viewport paging ( @liaowang11 ) #821 : Check dependencies against the floors ( @alberti42 ) #822 : Give plain table data rows a face ( @mrcnski ) #824 : Quote file mentions whose path holds whitespace ( @dustinfarris ) #825 : Attach files dropped on a shell or viewport buffer ( @dustinfarris ) #827 : Preserve isearch match data when expanding fragments ( @Gleek ) #828 : Add to Related projects ( @lllShamanlll ) #830 : Fix provider icon downloads via LobeHub CDN ( @tjohnman ) #831 : Add Qoder CLI ACP backend ( @unship ) #832 : Respect ( @mrcnski ) #834 : Show session cost in the header ( @mrcnski ) #837 : Add link to README ( @mrcnski )
Competitive e-sport athletes are full-time professionals, and the ones at the top earn around what corporate executives make. This month a bot turned up on the ladder good enough to beat them, so the question is no longer only which human played a game, but whether one did. So: is it possible to fingerprint a human by the way they play?