More from Armin Ronacher's Thoughts and Writings
Every ending marks a new beginning, and today, is the beginning of a new chapter for me. Ten years ago I took a leap into the unknown, today I take another. After a decade of working on Sentry I move on to start something new. Sentry has been more than just a job, it has been a defining part of my life. A place where I've poured my energy, my ideas, my heart. It has shaped me, just as I've shaped it. And now, as I step away, I do so with immense gratitude, a deep sense of pride, and a heart full of memories. From A Chance Encounter I've known David, Sentry's co-founder (alongside Chris), long before I was ever officially part of the team as our paths first crossed on IRC in the Django community. Even my first commit to Sentry predates me officially working there by a few years. Back in 2013, over conversations in the middle of Russia — at a conference that, incidentally, also led to me meeting my wife — we toyed with the idea of starting a company together. That exact plan didn't materialize, but the seeds of collaboration had been planted. Conversations continued, and by late 2014, the opportunity to help transform Sentry (which already showed product market fit) into a much bigger company was simply too good to pass up. I never could have imagined just how much that decision would shape the next decade of my life. To A Decade of Experiences For me, Sentry's growth has been nothing short of extraordinary. At first, I thought reaching 30 employees would be our ceiling. Then we surpassed that, and the milestones just kept coming — reaching a unicorn valuation was something I once thought was impossible. While we may have stumbled at times, we've also learned immensely throughout this time. I'm grateful for all the things I got to experience and there never was a dull moment. From representing Sentry at conferences, opening an engineering office in Vienna, growing teams, helping employees, assisting our licensing efforts and leading our internal platform teams. Every step and achievement drove me. Yet for me, the excitement and satisfaction of being so close to the founding of a company, yet not quite a founder, has only intensified my desire to see the rest of it. A Hard Goodbye Walking away from something you love is never easy and leaving Sentry is hard. Really hard. Sentry has been woven into the very fabric of my adult life. Working on it hasn't just spanned any random decade; it perfectly overlapped with marrying my wonderful wife, and growing our family from zero to three kids. And will it go away entirely? The office is right around the corner afterall. From now on, every morning, when I will grab my coffee, I will walk past it. The idea of no longer being part of the daily decisions, the debates, the momentum — it feels surreal. That sense of belonging to a passionate team, wrestling with tough decisions, chasing big wins, fighting fires together, sometimes venting about our missteps and discussing absurd and ridiculous trivia became part of my identity. There are so many bright individuals at Sentry, and I'm incredibly proud of what we have built together. Not just from an engineering point of view, but also product, marketing and upholding our core values. We developed SDKs that support a wide array of platforms from Python to JavaScript to Swift to C++, lately expanding to game consoles. We stayed true to our Open Source principles, even when other options were available. For example, when we needed an Open Source PDB implementation for analyzing Windows crashes but couldn't find a suitable solution, we contributed to a promising Rust crate instead of relying on Windows VMs and Microsoft's dbghelp. When we started, our ingestion system handled a few thousand requests per second — now it handles well over a million. While building an SDK may seem straightforward, maintaining and updating them to remain best-in-class over the years requires immense dedication. It takes determination to build something that works out of the box with little configuration. A lot of clever engineering and a lot of deliberate tradeoffs went into the product to arrive where it is. And ten years later, is a multi-product company. What started with just crashes, now you can send traces, profiles, sessions, replays and more. We also stuck to our values. I'm pleased that we ran experiments with licensing despite all the push back we got over the years. We might not have found the right solution yet, but we pushed the conversation. The same goes for our commitment to funding of dependencies. And Heartfelt Thank You I feel an enormous amount of gratitude for those last ten years. There are so many people I owe thanks to. I owe eternal thanks to David Cramer and Chris Jennings for the opportunity and trust they placed in me. To Ben Vinegar for his unwavering guidance and support. To Dan Levine, for investing in us and believing in our vision. To Daniel Griesser, for being an exceptional first hire in Vienna, and shepherding our office there and growing it to 50 people. To Vlad Cretu, for bringing structure to our chaos over the years. To Milin Desai for taking the helm and growing us. And most of all, to my wonderful wife, Maria — who has stood beside me through every challenge, who has supported me when the road was uncertain, and who has always encouraged me to forge my own path. To everyone at Sentry, past and present — thank you. For the trust, the lessons, the late nights, the victories. For making Sentry what it is today. Quo eo? I'm fully aware it's a gamble to believe my next venture will find the same success as Sentry. The reality is that startups that achieve the kind of scale and impact Sentry has are incredibly rare. There's a measure of hubris in assuming lightning strikes twice, and as humbling as that realization is, it also makes me that much more determined. The creative spark that fueled me at Sentry isn't dimming. Not at all in fact: it burns brighter fueld by the feeling that I can explore new things, beckoning me. There's more for me to explore, and I'm ready to channel all that energy into a new venture. Today, I stand in an open field, my backpack filled with experiences and a renewed sense of purpose. That's because the world has changed a lot in the past decade, and so have I. What drives me now is different from what drove me before, and I want my work to reflect that evolution. At my core, I'm still inspired by the same passion — seeing others find value in what I create, but my perspective has expanded. While I still take great joy in building things that help developers, I want to broaden my reach. I may not stray far from familiar territory, but I want to build something that speaks to more people, something that, hopefully, even my children will find meaningful. Watch this space, as they say.
Three years ago I shared the As-Any Hack on this blog. That hack is a way to get upcasting to supertraits working on stable Rust. To refresh your memory, the goal was to make something like this work: #[derive(Debug)] struct AnyBox(Box<dyn DebugAny>); trait DebugAny: Any + Debug {} impl<T: Any + Debug + 'static> DebugAny for T {} The problem? Even though DebugAny inherits from Any, Rust wouldn't let you use methods from Any on a dyn DebugAny. So while you could call DebugAny methods just fine, trying to use downcast_ref from Any (the reason to use Any in the first place) would fail: fn main() { let any_box = AnyBox(Box::new(42i32)); dbg!(any_box.0.downcast_ref::<i32>()); // Compile error } The same would happen if we tried to cast it into an &dyn Any? A compile error again: fn main() { let any_box = AnyBox(Box::new(42i32)); let any = &*any_box.0 as &dyn Any; dbg!(any.downcast_ref::<i32>()); } But there is good news! As of Rust 1.86, this is finally fixed. The cast now works: At the time of writing, this fix is in the beta channel, but stable release is just around the corner. That means a lot of old hacks can finally be retired. At least once your MSRV moves up. Thank you so much to everyone who worked on this to make it work! For completeness' sake here is the extension map from the original block post cleaned up so that it does not need the as-any hack: use std::any::{Any, TypeId}; use std::cell::{Ref, RefCell, RefMut}; use std::collections::HashMap; use std::fmt::Debug; trait DebugAny: Any + Debug {} impl<T: Any + Debug + 'static> DebugAny for T {} #[derive(Default, Debug)] pub struct Extensions { map: RefCell<HashMap<TypeId, Box<dyn DebugAny>>>, } impl Extensions { pub fn insert<T: Debug + 'static>(&self, value: T) { self.map .borrow_mut() .insert(TypeId::of::<T>(), Box::new(value)); } pub fn get<T: Default + Debug + 'static>(&self) -> Ref<'_, T> { self.ensure::<T>(); Ref::map(self.map.borrow(), |m| { m.get(&TypeId::of::<T>()) .and_then(|b| (&**b as &dyn Any).downcast_ref()) .unwrap() }) } pub fn get_mut<T: Default + Debug + 'static>(&self) -> RefMut<'_, T> { self.ensure::<T>(); RefMut::map(self.map.borrow_mut(), |m| { m.get_mut(&TypeId::of::<T>()) .and_then(|b| ((&mut **b) as &mut dyn Any).downcast_mut()) .unwrap() }) } fn ensure<T: Default + Debug + 'static>(&self) { if self.map.borrow().get(&TypeId::of::<T>()).is_none() { self.insert(T::default()); } } }
This week I had a conversation with one of our engineers about “shitty code” which lead me to sharing with him one of my more unusual inspirations: Flamework, a pseudo framework created at Flickr. Two Passions, Two Approaches There are two driving passions in my work. One is the love of creating beautiful, elegant code — making Open Source libraries and APIs that focus on clear design and reusability. The other passion is building quick, pragmatic solutions for real users (who may not even be developers). The latter usually in a setting of building a product, where the product is not the code. Here, speed and iteration matter more than beautiful code or reusability, because success hinges on shipping something people want. Flamework is in service of the latter, and in crass violation of the former. Early on, I realized that creating reusable code and directly solving problems for users are often at odds. My first clue came when I helped run the German ubuntuusers website. It was powered by a heavily modified version of phpBB, which despite how messy it was, scaled to a large user base when patched properly. It was messy, but easy to adjust. The abstractions were one layer deep. Back then, me and a friend tried to replace it by writing my own bulletin board software, Pocoo. Working in isolation, without users, led me down a path of over-engineering. While we learned a lot and ended up creating popular Open Source libraries (like Jinja, Werkzeug and Pygments), Pocoo never became a solid product. Later, my collaborators and I rebuilt ubuntuusers, without the goal of making it into a reusable product. That rewrite shipped successfully and it lives to this very day. But it took me years to fully realize what was happening here: reusability is not that important when you’re building an application, but it’s crucial when you’re building a library or framework. The Flickr Philosophy If you are unfamiliar with Flamework you should watch a talk that Cal Henderson gave in 2008 at DjangoCon (Why I hate Django). He talked about scale and how Django didn't solve for it. He enumerated all the things important to him: sharding, using custom sequences for primary keys, forgoing joins and foreign keys, supporting database replication setups, denormalizing data to the extreme. This is also were I first learned about the possibility of putting all session data into cookies via signing. It was a memorable talk for me because it showed me that there are shortcomings. Django (which I used for ubuntuusers) had beautiful APIs but at the time solved for little of that Cal needed. The talk really stuck with me. At the time of the talk, Flamework did not really exist. It was more of an idea and principles of engineering at Flickr. A few years later, Flamework appeared on GitHub, not as an open-sourced piece of Flickr code but as a reimplementation of those same ideas. You can explore its repository and see code like this: function _db_update($tbl, $hash, $where, $cluster, $shard){ $bits = array(); foreach(array_keys($hash) as $k){ $bits[] = "`$k`='$hash[$k]'"; } return _db_write("UPDATE $tbl SET ".implode(', ',$bits)." WHERE $where", $cluster, $shard); } Instinctively it makes me cringe. Is that a SQL injection? Well you were supposed to use the PHP addslashes function beforehand. But notice how it caters to sharding and clustering directly in the query function. Messy but Effective Code like this often triggers a visceral reaction, especially in engineers who prize clean design. How does something like that get created? Cal Henderson described Flickr's principle as “doing the dumbest possible thing that will work.” Maybe “dumb” is too strong — “simple” might be more apt. Yet simplicity can look messy to someone expecting a meticulously engineered codebase. This is not at all uncommon and I have seen it over and over. The first large commercial project that got traction that I ever worked on (Plurk) was also pretty pragmatic and messy inside. My former colleague Ben Vinegar also recently shared a story of early, messy FreshBooks code and how he came to terms with it. Same story at Sentry. We moved fast, we made a mess. None of this is surprising in retrospective. Perfect code doesn't guarantee success if you haven't solved a real problem for real people. Pursuing elegance in a vacuum leads to abandoned side projects or frameworks nobody uses. By contrast, clunky but functional code often comes with just the right compromises for quick iteration. And that in turn means a lot of messy code powers products that people love — something that's a far bigger challenge. A Rorschach Test I have shown Flamework's code to multiple engineers over the years and it usually creates such a visceral response. It blind sights one by seemingly disregarding all rules of good software engineering. That makes Flamework serve as a fascinating Rorschach test for engineers. Are you looking at it with admiration for the focus on some critical issues like scale, the built-in observability and debugging tools. Or are you judging it, and its creators, for manually constructing SQL queries, using global variables, not using classes and looking like messy PHP4 code? Is it a pragmatic tool, intentionally designed to iterate quickly at scale, or is it a naive mess made by unskilled developers? Would I use Flamework? Hello no. But I appreciate the priorities behind it. If these ugly choices help you move faster, attract users and validate the product, then a rewrite, or large refactorings later are a small price to pay. A Question of Balance At the end of the day, where you stand on “shitty code” depends on your primary goal: Are you shipping a product and racing to meet user needs? Or are you building a reusable library or framework meant to stand the test of time? Both mindsets are valid, but they rarely coexist harmoniously in a single codebase. Flamework is a reminder that messy, simple solutions can be powerful if they solve real problems. Eventually, when the time is right, you can clean it up or rebuild from the ground up. The real challenge is deciding which route to take — and when. Even with experience, it is can be hard to know when to move from quick fixes to more robust foundations. The principles behind Flamework are also reflected in Sentry's development philosophy. One more poignant one being “Embrace the Duct Tape”. Yet as Sentry matured, much of our duct tape didn't stand the test of time, and was re-applied at moments when the real solution would have been a solid foundation poured with concrete. That's because successful projects eventually grow up. What let you iterate fast in the beginning might eventually turn into an unmaintainable mess and will be rebuilt from the inside out. I personally would never have built Flamework, it repulses me a bit. At the same time, I have a enormous respect for the people who build it. Their work and thinking has shaped how I solve problems and think of product engineering.
The concept of purity — historically a guiding principle in social and moral contexts — is also found in passionate, technical discussions. By that I mean that purity in technology translates into adherence to a set of strict principles, whether it be functional programming, test-driven development, serverless architectures, or, in the case of Rust, memory safety. Memory Safety Rust positions itself as a champion of memory safety, treating it as a non-negotiable foundation of good software engineering. I love Rust: it's probably my favorite language. It probably won't surprise you that I have no problem with it upholding memory safety as a defining feature. Rust aims to achieve the goal of memory safety via safe abstractions, a compile time borrow checker and a type system that is in service of those safe abstractions. It comes as no surprise that the Rust community is also pretty active in codifying a new way to reason about pointers. In many ways, Rust pioneered completely new technical approaches and it it widely heralded as an amazing innovation. However, as with many movements rooted in purity, what starts as a technical pursuit can evolve into something more ideological. Similar to how moral purity in political and cultural discourse can become charged, so does the discourse around Rust, which has been dominated by the pursuit of memory safety. Particularly within the core Rust community itself, discussion has moved beyond technical merits into something akin to ideological warfare. The fundamental question of “Is this code memory safe?”, has shifted to “Was it made memory safe in the correct way?”. This distinction matters because it introduces a purity test that values methodology over outcomes. Safe C code, for example, is often dismissed as impossible, not necessarily because it is impossible, but because it lacks the strict guarantees that Rust's borrow checker enforces. Similarly, using Rust’s unsafe blocks is increasingly frowned upon, despite their intended purpose of enabling low-level optimizations when necessary. This ideological rigidity creates significant friction when Rust interfaces with other ecosystems (or gets introduced there), particularly those that do not share its uncompromising stance. For instance, the role of Rust in the Linux kernel has been a hot topic. The Linux kernel operates under an entirely different set of priorities. While memory safety is important there is insufficient support for adopting Rust in general. The kernel is an old project and it aims to remain maintainable for a long time into the future. For it to even consider a rather young programming language should be seen as tremendous success for Rust and also for how open Linus is to the idea. Yet that introduction is balanced against performance, maintainability, and decades of accumulated engineering expertise. Many of the kernel developers, who have found their own strategies to write safe C for decades, are not accepting the strongly implied premise that their work is inherently flawed simply because it does not adhere to Rust's strict purity rules. Tensions rose when a kernel developer advocating for Rust's inclusion took to social media to push for changes in the Linux kernel development process. The public shaming tactic failed, leading the developer to conclude: It's not just the kernel where Rust's memory safety runs up against the complexities of the real world. Very similar feelings creep up in the gaming industry where people love to do wild stuff with pointers. You do not need large disagreements to see the purist approach create some friction. A recent post of mine for instance triggered some discussions about the trade-offs between more dependencies, and moving unsafe to centralized crates. I really appreciate that Rust code does not crash as much. That part of Rust, among many others, makes it very enjoyable to work with. Yet I am entirely unconvinced that memory safety should trump everything, at least at this point in time. What people want in the Rust in Linux situation is for the project leader to come in to declare support for Rust's call for memory safety above all. To make the detractors go away. Python's Migration Lesson Hearing this call and discussion brings back memories. I have lived through a purity driven shift in a community before. The move from Python 2 to Python 3 started out very much the same way. There was an almost religious movement in the community to move to Python 3 in a ratcheting motion. The idea that you could maintain code bases that support both 2 and 3 were initially very loudly rejected. I took a lot of flak at the time (and for years after) for advocating for a more pragmatic migration which burned me out a lot. That feedback came both in person and online and it largely pushed me away from Python for a while. Not getting behind the Python 3 train was seen as sabotaging the entire project. However, a decade later, I feel somewhat vindicated that it was worth being pragmatic about that migration. At the root of that discourse was a idealistic view of how Unicode could work in the language and that you can move an entire ecosystem at once. Both those things greatly clashed with the lived realities in many projects and companies. I am a happy user of Python 3 today. This migration has also taught me the important lesson not be too stuck on a particular idea. It would have been very easy to pick one of the two sides of that debate. Be stuck on Python 2 (at the risk of forking), or go all in on Python 3 no questions asked. It was the path in between that was quite painful to advocate for, but it was ultimately the right path. I wrote about my lessons of that migration a in 2016 and I think most of this still rings true. That was motivated by even years later people still reaching out to me who did not move to Python 3, hoping for me to embrace their path. Yet Python 3 has changed! Python 3 is a much better language than it was when it first released. It is a great language because it's used by people solving real, messy problems and because it over time found answers for what to do, if you need to have both Python 2 and 3 code in the wild. While the world of Python 2 is largely gone, we are still in a world where Unicode and bytes mix in certain contexts. The Messy Process Fully committing to a single worldview can be easier because you stop questioning everything — you can just go with the flow. Yet truths often reside on both sides. Allowing yourself to walk the careful middle path enables you to learn from multiple perspectives. You will face doubts and open yourself up to vulnerability and uncertainty. The payoff, however, is the ability to question deeply held beliefs and push into the unknown territory where new things can be found. You can arrive at a solution that isn't a complete rejection of any side. There is genuine value in what Rust offers—just as there was real value in what Python 3 set out to accomplish. But the Python 3 of today isn't the Python 3 of those early, ideological debates; it was shaped by a messy, slow, often contentious, yet ultimately productive transition process. I am absolutely sure that in 30 years from now we are going to primarily program in memory safe languages (or the machines will do it for us) in environments where C and C++ prevail. That glimpse of a future I can visualize clearly. The path to there however? That's a different story altogether. It will be hard, it will be impure. Maybe the solution will not even involve Rust at all — who knows. We also have to accept that not everyone is ready for change at the same pace. Forcing adoption when people aren't prepared only causes the pendulum to swing back hard. It's tempting to look for a single authority to declare “the one true way,” but that won't smooth out the inevitable complications. Indeed, those messy, incremental challenges are part of how real progress happens. In the long run, these hard-won refinements tend to produce solutions that benefit all sides—if we’re patient enough to let them take root. The painful and messy transition is here to stay, and that's exactly why, in the end, it works.
More in AI
Today's links The capitalism of fools: Trump's mirror-world New Deal. Hey look at this: Delights to delectate. Object permanence: IBM's fabric design; Nixon Cthulu; Surveillance capitalism is capitalism, with surveillance; Dismaland ad; Outdoor ed vs TB; Mathematicians' fave chalk. Upcoming appearances: Where to find me. Recent appearances: Where I've been. Latest books: You keep readin' em, I'll keep writin' 'em. Upcoming books: Like I said, I'll keep writin' 'em. Colophon: All the rest. The capitalism of fools (permalink) As Trump rails against free trade, demands public ownership stakes in corporations that receive government funds, and (selectively) enforces antitrust law, some (stupid) people are wondering, "Is Trump a communist?" In The American Prospect, David Dayen writes about the strange case of Trump's policies, which fly in the face of right wing economic orthodoxy and have the superficial trappings of a leftist economic program: https://prospect.org/economy/2025-08-28-judge-actually-existing-trump-economy/ The problem isn't that tariffs are always bad, nor is it that demanding state ownership stakes in structurally important companies that depend on public funds is bad policy. The problem is that Trump's version of these policies sucks, because everything Trump touches dies, and because he governs solely on vibes, half-remembered wisdom imparted by the last person who spoke to him, and the dying phantoms of old memories as they vanish beneath a thick bark of amyloid plaque. Take Trump's demand for a 10% stake in Intel (a course of action endorsed by no less than Bernie Sanders). Intel is a company in trouble, whose financialization has left it dependent on other companies (notably TMSC) to make its most advanced chips. The company has hollowed itself out, jettisoning both manufacturing capacity and cash reserves, pissing away the funds thus freed up on stock buybacks and dividends. Handing Trump a 10% "golden share" does nothing to improve Intel's serious structural problems. And if you take Trump at his word and accept that securing US access to advanced chips is a national security priority, Trump's Intel plan does nothing to advance that access. But it gets worse: Trump also says denying China access to these chips is a national security priority, but he greenlit Nvidia's plan to sell its top-of-the-range silicon to China in exchange for a gaudy statuette and a 15% export tax. It's possible to pursue chip manufacturing as a matter of national industrial policy, and it's even possible to achieve this goal by taking ownership stakes in key firms – because it's often easier to demand corporate change via a board seat than it is to win the court battles needed to successfully invoke the Defense Production Act. The problem is that Trumpland is uninterested in making any of that happen. They just want a smash and grab and some red meat for the base: "Look, we made Intel squeal!" Then there's the Trump tariffs. Writing in Vox EU, Lausanne prof of international business Richard Baldwin writes about the long and checkered history of using tariffs to incubate and nurture domestic production: https://www.nakedcapitalism.com/2025/08/trumpian-tariffs-rerun-the-failed-strategy-of-import-substitution-industrialization.html The theory of tariffs goes like this: if we make imports more expensive by imposing a tax on them (tariffs are taxes that are paid by consumers, after all), then domestic manufacturers will build factories and start manufacturing the foreign goods we've just raised prices on. This is called "import substitution," and it really has worked, but only in a few cases. What do those cases have in common? They were part of a comprehensive program of "export discipline, state-directed credit, and careful government–business coordination": https://academic.oup.com/book/10201 In other words, tariffs only work to reshore production where there is a lot of careful planning, diligent data-collection, and review. Governments have to provide credit to key firms to get them capitalized, provide incentives, and smack nonperformers around. Basically, this is the stuff that Biden did for renewables with the energy sector, and – to a lesser extent – for silicon with the CHIPS Act. Trump's not doing any of that. He's just winging it. There's zero follow-through. It's all about appearances, soundbites, and the libidinal satisfaction of watching corporate titans bend the knee to your cult leader. This is also how Trump approaches antitrust. When it comes to corporate power, both Trump and Biden's antitrust enforcers are able to strike terror into the hearts of corporate behemoths. The difference is that the Biden administration prioritized monopolists based on how harmful they were to the American people and the American economy, whereas Trump's trustbusters target companies based on whether Trump is mad at them: https://pluralistic.net/2024/11/12/the-enemy-of-your-enemy/#is-your-enemy What's more, any company willing to hand a million or two to a top Trump enforcer can just walk away from the charges: https://prospect.org/power/2025-08-19-doj-insider-blows-whistle-pay-to-play-antitrust-corruption/ In her 2023 book Doppelganger, Naomi Klein introduces the idea of a right-wing "mirror world" that offers a conspiratorial, unhinged version of actual problems that leftists wrestle with: https://pluralistic.net/2023/09/05/not-that-naomi/#if-the-naomi-be-klein-youre-doing-just-fine For example, the antivax movement claims that pharma companies operate on the basis of unchecked greed, without regard to the harm their defective products cause to everyday people. When they talk about this, they sound an awful like leftists who are angry that the Sacklers killed a million Americans with their opiods and then walked away with billions of dollars: https://pluralistic.net/2023/12/05/third-party-nonconsensual-releases/#au-recherche-du-pedos-perdue Then there are the conspiracy theories about voting machines. Progressives have been sounding the alarm about the security defects in voting machine since the Bush v Gore years, but that doesn't mean that Venezuelan hackers stole the 2020 election for Biden: https://pluralistic.net/2021/01/11/seeing-things/#ess When anti-15-minute-city weirdos warn that automated license-plate cameras are a gift to tyrants both petty and gross, they are repeating a warning that leftists have sounded since the Patriot Act: https://locusmag.com/2023/05/commentary-cory-doctorow-the-swivel-eyed-loons-have-a-point/ The mirror-world is a world where real problems (the rampant sexual abuse of children by powerful people and authortiy figures) are met with fake solutions (shooting up pizza parlors and transferring Ghislaine Maxwell to a country-club prison): https://www.bbc.com/news/articles/czd049y2qymo Most of the people stuck in the mirror world are poor and powerless, because desperation makes you an easy mark for grifters peddling conspiracy theories. But Trump's policies on corporate power are what happens in the mirror world inhabited by the rich and powerful. Trump is risking the economic future of every person in America (except a few cronies), but that's not the only risk here. There's also the risk that reasonable people will come to view industrial policy, government stakes in publicly supported companies, and antitrust as reckless showboating, a tactic exclusively belonging to right wing nutjobs and would-be dictators. Sociologists have a name for this: they call it "schismogenesis," when a group defines itself in opposition to its rivals. Schismogenesis is progressives insisting that voting machines and pharma companies are trustworthy and that James Comey is a resistance hero: https://pluralistic.net/2021/12/18/schizmogenesis/ After we get rid of Trump, America will be in tatters. We're going to need big, muscular state action to revive the nation and rebuild its economy. We can't afford to let Trump poison the well for the very idea of state intervention in corporate activity. Hey look at this (permalink) Thinking Ahead to the Full Military Takeover of Cities https://www.hamiltonnolan.com/p/thinking-ahead-to-the-full-military Framework is working on a giant haptic touchpad, Trackpoint nub, and eGPU for its laptops https://www.theverge.com/news/766161/framework-egpu-haptic-touchpad-trackpoint-nub National says "fuck you" on the right to repair https://norightturn.blogspot.com/2025/08/national-says-fuck-you-on-right-to.html?m=1 Tax the Rich. They’ll Stay https://www.rollingstone.com/politics/political-commentary/zohran-mamdani-tax-rich-new-york-city-1235414327/ Welcome to the Free Online Tax Preparation Feedback Survey https://irsresearch.gov1.qualtrics.com/jfe/form/SV_ewDJ6DeBj3ockGa Object permanence (permalink) #20yrsago Cops have to pay $41k for stopping man from videoing them https://web.archive.org/web/20050905015507/http://www.paed.uscourts.gov/documents/opinions/05D0847P.pdf #20yrsago Commercial music in podcasts: the end of free expression? https://memex.craphound.com/2005/08/26/commercial-music-in-podcasts-the-end-of-free-expression/ #10yrsago North Dakota cops can now use lobbyist-approved taser/pepper-spray drones https://www.thedailybeast.com/first-state-legalizes-taser-drones-for-cops-thanks-to-a-lobbyist/ #10yrsago Illinois mayor appoints failed censor to town library board https://ncac.org/news/blog/mayor-appoints-would-be-censor-to-library-board #10yrsago IBM’s lost, glorious fabric design https://collection.cooperhewitt.org/users/mepelman/visits/qtxg/87597377/ #10yrsago Former mayor of SLC suing NSA for warrantless Olympic surveillance https://www.techdirt.com/2015/08/26/prominent-salt-lake-city-residents-sue-nsa-over-mass-warrantless-surveillance-during-2002-olympics/ #10yrsago Health’s unkillable urban legend: “You must drink 8 glasses of water/day” https://www.nytimes.com/2015/08/25/upshot/no-you-do-not-have-to-drink-8-glasses-of-water-a-day.html?_r=0 #10yrsago Austin Grossman’s CROOKED: the awful, cthulhoid truth about Richard Nixon https://memex.craphound.com/2015/08/26/austin-grossmans-crooked-the-awful-cthulhoid-truth-about-richard-nixon/ #10yrsago After Katrina, FBI prioritized cellphone surveillance https://www.muckrock.com/news/archives/2015/aug/27/stingray-katrina/ #10yrsago Germany’s spy agency gave the NSA the private data of German citizens in exchange for Xkeyscore access https://www.zeit.de/digital/datenschutz/2015-08/xkeyscore-nsa-domestic-intelligence-agency #10yrsago Elaborate spear-phishing attempt against global Iranian and free speech activists, including an EFF staffer https://citizenlab.ca/2015/08/iran_two_factor_phishing/ #10yrsago Commercial for Banksy’s Dismaland https://www.youtube.com/watch?v=V2NG-MgHqEk #5yrsago Outdoor education beat TB in 1907 https://pluralistic.net/2020/08/27/cult-chalk/#tb #5yrsago Hagoromo, mathematicians' cult chalk https://pluralistic.net/2020/08/27/cult-chalk/#hagoromo #5yrsago Principles for platform regulation https://pluralistic.net/2020/08/27/cult-chalk/#eff-eu #5yrsago It's blursday https://pluralistic.net/2020/08/26/destroy-surveillance-capitalism/#blursday #5yrsago Surveillance Capitalism is just capitalism, plus surveillance https://pluralistic.net/2020/08/26/destroy-surveillance-capitalism/#surveillance-monopolism Upcoming appearances (permalink) Ithaca: AD White keynote (Cornell), Sep 12 https://deanoffaculty.cornell.edu/events/keynote-cory-doctorow-professor-at-large/ DC: Enshittification at Politics and Prose, Oct 8 https://politics-prose.com/cory-doctorow-10825 New Orleans: DeepSouthCon63, Oct 10-12 http://www.contraflowscifi.org/ Chicago: Enshittification with Kara Swisher (Chicago Humanities), Oct 15 https://www.oldtownschool.org/concerts/2025/10-15-2025-kara-swisher-and-cory-doctorow-on-enshittification/ San Francisco: Enshittification at Public Works (The Booksmith), Oct 20 https://app.gopassage.com/events/doctorow25 Miami: Enshittification at Books & Books, Nov 5 https://www.eventbrite.com/e/an-evening-with-cory-doctorow-tickets-1504647263469 Recent appearances (permalink) Divesting from Amazon’s Audible and the Fight for Digital Rights (Libro.fm) https://pocketcasts.com/podcasts/9349e8d0-a87f-013a-d8af-0acc26574db2/00e6cbcf-7f27-4589-a11e-93e4ab59c04b The Utopias Podcast https://www.buzzsprout.com/2272465/episodes/17650124 Tariffs vs IP Law (Firewalls Don't Stop Dragons) https://www.youtube.com/watch?v=LFABFe-5-uQ Latest books (permalink) "Picks and Shovels": a sequel to "Red Team Blues," about the heroic era of the PC, Tor Books (US), Head of Zeus (UK), February 2025 (https://us.macmillan.com/books/9781250865908/picksandshovels). "The Bezzle": a sequel to "Red Team Blues," about prison-tech and other grifts, Tor Books (US), Head of Zeus (UK), February 2024 (the-bezzle.org). "The Lost Cause:" a solarpunk novel of hope in the climate emergency, Tor Books (US), Head of Zeus (UK), November 2023 (http://lost-cause.org). "The Internet Con": A nonfiction book about interoperability and Big Tech (Verso) September 2023 (http://seizethemeansofcomputation.org). Signed copies at Book Soup (https://www.booksoup.com/book/9781804291245). "Red Team Blues": "A grabby, compulsive thriller that will leave you knowing more about how the world works than you did before." Tor Books http://redteamblues.com. "Chokepoint Capitalism: How to Beat Big Tech, Tame Big Content, and Get Artists Paid, with Rebecca Giblin", on how to unrig the markets for creative labor, Beacon Press/Scribe 2022 https://chokepointcapitalism.com Upcoming books (permalink) "Canny Valley": A limited edition collection of the collages I create for Pluralistic, self-published, September 2025 "Enshittification: Why Everything Suddenly Got Worse and What to Do About It," Farrar, Straus, Giroux, October 7 2025 https://us.macmillan.com/books/9780374619329/enshittification/ "Unauthorized Bread": a middle-grades graphic novel adapted from my novella about refugees, toasters and DRM, FirstSecond, 2026 "Enshittification, Why Everything Suddenly Got Worse and What to Do About It" (the graphic novel), Firstsecond, 2026 "The Memex Method," Farrar, Straus, Giroux, 2026 "The Reverse-Centaur's Guide to AI," a short book about being a better AI critic, Farrar, Straus and Giroux, 2026 Colophon (permalink) Today's top sources: Currently writing: "The Reverse Centaur's Guide to AI," a short book for Farrar, Straus and Giroux about being an effective AI critic. (1090 words yesterday, 45491 words total). A Little Brother short story about DIY insulin PLANNING This work – excluding any serialized fiction – is licensed under a Creative Commons Attribution 4.0 license. That means you can use it any way you like, including commercially, provided that you attribute it to me, Cory Doctorow, and include a link to pluralistic.net. https://creativecommons.org/licenses/by/4.0/ Quotations and images are not included in this license; they are included either under a limitation or exception to copyright, or on the basis of a separate license. Please exercise caution. How to get Pluralistic: Blog (no ads, tracking, or data-collection): Pluralistic.net Newsletter (no ads, tracking, or data-collection): https://pluralistic.net/plura-list Mastodon (no ads, tracking, or data-collection): https://mamot.fr/@pluralistic Medium (no ads, paywalled): https://doctorow.medium.com/ Twitter (mass-scale, unrestricted, third-party surveillance and advertising): https://twitter.com/doctorow Tumblr (mass-scale, unrestricted, third-party surveillance and advertising): https://mostlysignssomeportents.tumblr.com/tagged/pluralistic "When life gives you SARS, you make sarsaparilla" -Joey "Accordion Guy" DeVilla READ CAREFULLY: By reading this, you agree, on behalf of your employer, to release me from all obligations and waivers arising from any and all NON-NEGOTIATED agreements, licenses, terms-of-service, shrinkwrap, clickwrap, browsewrap, confidentiality, non-disclosure, non-compete and acceptable use policies ("BOGUS AGREEMENTS") that I have entered into with your employer, its partners, licensors, agents and assigns, in perpetuity, without prejudice to my ongoing rights and privileges. You further represent that you have the authority to release me from any BOGUS AGREEMENTS on behalf of your employer. ISSN: 3066-764X
The future of the industry and how to get the most out of your AI coding assistant
Today's links By all means, tread on those people: We know you love freedom, we just wish you'd share. Hey look at this: Delights to delectate. Object permanence: The right to bear cameras; GOP wants slavery for undocumented migrants; Telepresence Nazi-punching. Upcoming appearances: Where to find me. Recent appearances: Where I've been. Latest books: You keep readin' em, I'll keep writin' 'em. Upcoming books: Like I said, I'll keep writin' 'em. Colophon: All the rest. By all means, tread on those people (permalink) Just as Martin Niemöller's "First They Came" has become our framework for understanding the rise of fascism in Nazi Germany, so, too is Wilhoit's Law the best way to understand America's decline into fascism: https://en.wikipedia.org/wiki/First_They_Came In case you're not familiar with Frank Wilhoit's amazing law, here it is: Conservatism consists of exactly one proposition, to wit: There must be in-groups whom the law protects but does not bind, alongside out-groups whom the law binds but does not protect. https://crookedtimber.org/2018/03/21/liberals-against-progressives/#comment-729288 The thing that makes Wilhoit's Law so apt to this moment – and to our understanding of the recent history that produced this moment – is how it connects the petty with the terrifying, the trivial with the radical, the micro with the macro. It's a way to join the dots between fascists' business dealings, their interpersonal relationships, and their political views. It describes a continuum that ranges from minor commercial grifts to martial law, and shows how tolerance for the former creates the conditions for the latter. The gross ways in which Wilhoit's Law applies are easy to understand. The dollar value of corporate wage-theft far outstrips the total dollars lost to all other forms of property crime, and yet there is virtually no enforcement against bosses who steal their workers' paychecks, while petty property crimes can result in long prison sentences (depending on your skin color and/or bank balance): https://www.opportunityinstitute.org/blog/post/organized-retail-theft-wage-theft/ Elon Musk values "free speech" and insists on his right to brand innocent people as "pedos," but he also wants the courts to destroy organizations that publish their opinions about his shitty business practices: https://www.mediamatters.org/elon-musk Fascists turn crybaby when they're imprisoned for attempting a murderous coup, but buy merch celebrating the construction of domestic concentration camps where people are locked up without trial: https://officialalligatoralcatraz.com/shop That stuff is all easy to see, but I want to draw a line between these gross violations of Wilhoit's Law and pettier practices that have been creating the conditions for the present day Wilhoit Dystopia. Take terms of service. The Federalist Society – whose law library could save a lot of space by throwing away all its books and replacing them with a framed copy of Wilhoit's Law – has long held that merely glancing at a web-page or traversing the doorway of a shop is all it takes for you to enter into a "contract" by which you surrender all of your rights. Every major corporation – and many smaller ones – now routinely seek to bind both workers and customers to garbage-novellas of onerous, unreadable legal conditions. If we accept that this is how contracts work, then this should be perfectly valid, right? By reading these words, you agree, on behalf of your employer, to release me from all obligations and waivers arising from any and all NON-NEGOTIATED agreements, licenses, terms-of-service, shrinkwrap, clickwrap, browsewrap, confidentiality, non-disclosure, non-compete and acceptable use policies ("BOGUS AGREEMENTS") that I have entered into with your employer, its partners, licensors, agents and assigns, in perpetuity, without prejudice to my ongoing rights and privileges. You further represent that you have the authority to release me from any BOGUS AGREEMENTS on behalf of your employer. This indemnity will survive the termination of your relationship with your employer. I mean, why not? What principle – other than "in-groups whom the law protects but does not bind, alongside out-groups whom the law binds but does not protect" – makes terms of service valid, and this invalid? Then there's binding arbitration. Corporations routinely bind their workers and customers to terms that force them to surrender their right to sue, no matter how badly they are injured through malice or gross negligence. This practice used to be illegal, until Antonin Scalia opened the hellmouth and unleashed binding arbitration on the world: https://brooklynworks.brooklaw.edu/cgi/viewcontent.cgi?article=1443&&context=blr There's a pretty clever hack around binding arbitration: mass arbitration, whereby lots of wronged people coordinate to file claims, which can cost a dirty corporation more than a plain old class-action suit: https://pluralistic.net/2021/06/02/arbitrary-arbitration/#petard Of course, Wilhoit's Law provides corporations with a way around this: they can reserve the right not to arbitrate and to force you into a class action suit if that's advantageous to them: https://pluralistic.net/2025/08/15/dogs-breakfast/#by-clicking-this-you-agree-on-behalf-of-your-employer-to-release-me-from-all-obligations-and-waivers-arising-from-any-and-all-NON-NEGOTIATED-agreements Heads they win, tails you lose. Or take the nature of property rights themselves. Conservatives say they revere property rights above all else, claiming that every other human right stems from the vigorous enforcement of property relations. What is private property? For that, we turn to the key grifter thinkfluencer Sir William Blackstone, and his 1768 "Commentaries on the Laws of England": That sole and despotic dominion which one man claims and exercises over the external things of the world, in total exclusion of the right of any other individual in the universe. https://oll.libertyfund.org/pages/blackstone-on-property-1753 Corporations love the idea of their property rights, but they're not so keen on your property rights. Think of the practice of locking down digital devices – from phones to cars to tractors – so that they can't be repaired by third parties, use generic ink or parts, or load third-party apps except via an "app store": https://memex.craphound.com/2012/01/10/lockdown-the-coming-war-on-general-purpose-computing/ A device you own, but can only use in ways that its manufacturer approves of, sure doesn't sound like "sole and despotic dominion" to me. Some corporations (and their weird apologists) like to claim that, by buying their product, you've agreed not to use it except in ways that benefit their shareholders, even when that is to your own detriment: https://pluralistic.net/2024/01/12/youre-holding-it-wrong/#if-dishwashers-were-iphones Apple will say, "We've been selling iPhones for nearly 20 years now. It can't possibly come as a surprise to you that you're not allowed to install apps that we haven't approved. If that's important to you, you shouldn't have bought an iPhone." But the obvious rejoinder to this is, "People have been given sole and despotic dominion over the things they purchased since time immemorial. If the thought of your customers using their property in ways that displease you causes you to become emotionally disregulated, perhaps you shouldn't have gotten into the manufacturing business." But as indefensibly wilhoitian as Apple's behavior might be, Google has just achieved new depths of wilhoitian depravity, with a rule that says that starting soon, you will no longer be able to install apps of your choosing on your Android device unless Google first approves of them: https://9to5google.com/2025/08/25/android-apps-developer-verification/ Like Apple, Google says that this is to prevent you from accidentally installing malicious software. Like Apple, Google does put a lot of effort into preventing its customers from being remotely attacked. And, like Apple, Google will not protect you from itself: https://pluralistic.net/2023/02/05/battery-vampire/#drained When it comes to vetoing your decisions about which programs your Android device can run, Google has an irreconcilable conflict of interest. Google, after all, is a thrice-convicted monopolist who have an interest in blocking you from installing programs that interfere with its profits, under the pretense of preventing you from coming to harm. And – like Apple – Google has a track record of selling its users out to oppressive governments. Apple blocked all working privacy tools for its Chinese users at the behest of the Chinese government, while Google secretly planned to release a version of its search engine that would enforce Chinese censorship edicts and help the Chinese government spy on its people: https://en.wikipedia.org/wiki/Dragonfly_(search_engine) Google's CEO Sundar Pichai, personally gave one million dollars to Donald Trump for a seat on the dais at this year's inauguration (so did Apple CEO Tim Cook). Both men are in a position to help the self-described dictator make good on his promise to spy on and arrest Americans who disagree with his totalitarian edicts. All of this makes Google's announcement extraordinarily reckless, but also very, very wilhoitian. After all, Google jealously guards its property rights from you, but insists that your property rights need to be subordinated to its corporate priorities: "in-groups whom the law protects but does not bind, alongside out-groups whom the law binds but does not protect." We can see this at work in the way that Google treats open source software and free software. Google's software is "open source" – for us. We have the right to look at the code and do free work for Google to identify and fix bugs in the code. But only Google gets a say in how that code is deployed on its cloud servers. They have software freedom, while we merely have software transparency: https://pluralistic.net/2025/07/14/pole-star/#gnus-not-utilitarian Big companies love to both assert their own property rights while denying you yours. Take the music industry: they are required to pay different royalties to musicians depending on whether they're "selling" music, or "licensing" music. Sales pay a fraction of the royalties of a licensing deal, so it's far better for musicians when their label licenses their music than when they sell it. When you or I click the "buy" button in an online music store, we are confronted with a "licensing agreement," that limits what we may do with our digital purchase. Things that you get automatically when you buy music in physical form – on a CD, say – are withheld through these agreements. You can't re-sell your digital purchases as used goods. You can't give them away. You can't lend them out. You can't divide them up in a divorce. You can't leave them to your kids in your will. It's not a sale, so the file isn't your property. But when the label accounts for that licensing deal to a musician, the transaction is booked as a sale, which entitles the creative worker to a fraction of the royalties that they'd get from a license. Somehow, digital media exists in quantum superposition: it is a licensing deal when we click the buy button, but it is a sale when it shows up on a royalty statement. It's Schroedinger's download: https://pluralistic.net/2022/06/21/early-adopters/#heads-i-win Now, a class action suit against Amazon over this very issue has been given leave to progress to trial: https://www.hollywoodreporter.com/business/business-news/prime-video-lawsuit-movie-license-ownership-1236353127/ The plaintiffs insist that because Amazon showed them a button that said, "Buy this video" but then slapped it with licensing conditions that take away all kinds of rights (Amazon can even remotely delete your videos after you "buy" them) that they have been ripped off in a bait-and-switch. Amazon's defense is amazing. They've done what any ill-prepared fifth grader would do when called on the carpet; they quoted Webster's: Quoting Webster’s Dictionary, it said that the term means “rights to the use or services of payment” rather than perpetual ownership and that its disclosures properly warn people that they may lose access. People are increasingly pissed off with this bullshit, whereby things that you "buy" are not yours, and your access to them can be terminated at any time. The Stop Killing Games campaign is pushing for the rights of gamers to own the games they buy forever, even if the company decides to shut down its servers: https://www.stopkillinggames.com/ I've been pissed off about this bullshit since forever. It's one of the main reasons I convinced my publishers to let me sell my own ebooks and audiobooks, out of my own digital storefront. All of those books are sold, not licensed, and come without any terms or conditions: https://craphound.com/shop/ The ability to change the terms after the sale is a major source of enshittification. I call it the "Darth Vader MBA," as in "I am altering the deal. Pray I do not alter it any further": https://pluralistic.net/2023/10/26/hit-with-a-brick/#graceful-failure Naturally the ebooks and audiobooks in the Kickstarter for pre-sales of my next book, Enshittification are also sold without any terms and conditions: https://www.kickstarter.com/projects/doctorow/enshittification-the-drm-free-audiobook/ Look, I don't think that personal consumption choices can fix systemic problems. You're not going to fix enshittification – let alone tyranny – by shopping, even if you're very careful: https://pluralistic.net/2025/07/31/unsatisfying-answers/#systemic-problems But that doesn't mean that there isn't a connection between the unfair bullshit that monopolies cram down our throat and the rise of fascism. It's not just that the worst enshittifiers also the biggest Trump donors, it's that Wilhoit's Law powers enshittification. Wiloitism is shot through the Maga movement. The Flu Klux Klan wants to ban you from wearing a mask for health reasons, but they will defend to the death the right of ICE brownshirts to run around in gaiters and Oakleys as they kidnap our neighbors off the streets. Conservative bedwetters will donate six figures to a Givesendgo set up by some crybaby with a viral Rumble video about getting 86'ed from a restaurant for wearing a Maga hat, but they literally want to imprison trans people for wearing clothes that don't conform to their assigned-at-birth genders. They'll piss and moan about being "canceled" because of hecklers at the speeches they give for the campus chapter of the Hitler Youth, but they experience life-threatening priapism when students who object to the Israeli genocide of Palestinians are expelled, arrested and deported. Then there's their abortion policies, which hold that personhood begins at conception, but ends at birth, and can only be re-established by forming an LLC. It's "in-groups whom the law protects but does not bind, alongside out-groups whom the law binds but does not protect" all the way down. I'm not saying that bullshit terms of service, wage theft, binding arbitration gotchas, or victim complexes about your kids going no-contact because you won't shut the fuck up about "the illegals" at Thanksgiving are the same as the actual fascist dictatorship being born around us right now or the genocide taking place in Gaza. But I am saying that they come from the same place. The ideology of "in-groups whom the law protects but does not bind, alongside out-groups whom the law binds but does not protect" underpins the whole ugly mess. After we defeat these fucking fascists, after the next installment of the Nuremburg trials, after these eichmenn and eichwomenn get their turns in the dock, we're going to have to figure out how to keep them firmly stuck to the scrapheap of history. For this, I propose a form of broken windows policing; zero-tolerance for any activity or conduct that implies that there are "in-groups whom the law protects but does not bind, alongside out-groups whom the law binds but does not protect." We should treat every attempt to pull any of these scams as an inch (or a yard, or a mile) down the road to fascist collapse. We shouldn't suffer practitioners of this ideology to be in our company, to run our institutions, or to work alongside of us. We should recognize them for the monsters they are. Hey look at this (permalink) Citizen Is Using AI to Generate Crime Alerts With No Human Review. It’s Making a Lot of Mistakes https://www.404media.co/citizen-is-using-ai-to-generate-crime-alerts-with-no-human-review-its-making-a-lot-of-mistakes/ How To Argue With An AI Booster https://www.wheresyoured.at/how-to-argue-with-an-ai-booster/ We must fight age verification with all we have https://www.usermag.co/p/we-must-fight-age-verification-with Sqinks: A Transreal Cyberpunk Love Story https://www.kickstarter.com/projects/rudyrucker/sqinks LibreOffice 25.8: a Strategic Asset for Governments and Enterprises Focused on Digital Sovereignty and Privacy https://blog.documentfoundation.org/blog/2025/08/25/libreoffice-25-8-backgrounder/ Object permanence (permalink) #20yrsago Oakland sheriffs detain people for carrying cameras https://thomashawk.com/2005/08/right-to-bear-cameras.html #10yrsago New Zealand gov’t promises secret courts for accused terrorists https://www.nzherald.co.nz/nz/attorney-general-says-law-society-got-it-wrong-over-secret-courts/E5JHYBTMVSIBZ62UNGEWB4DPEA/?c_id=1&objectid=11503094 #10yrsago Platform Cooperativism: a worker-owned Uber for everything https://platformcoop.net/ #10yrsago GOP “kingmaker” proposes enslavement as an answer to undocumented migrants https://www.thedailybeast.com/iowa-gop-kingmaker-has-a-slavery-proposal-for-immigration/ #10yrsago Six years after unprovoked beating, Denver cop finally fired https://kdvr.com/news/video-evidence-determined-fate-of-denver-officer-in-excessive-force-dispute-fired-after-6-years/ #10yrsago Samsung fridges can leak your Gmail logins https://web.archive.org/web/20150825014450/https://www.pentestpartners.com/blog/hacking-defcon-23s-iot-village-samsung-fridge/ #10yrsago German student ditches apartment, buys an unlimited train pass https://www.washingtonpost.com/news/worldviews/wp/2015/08/22/how-one-german-millennial-chose-to-live-on-trains-rather-than-pay-rent/ #10yrsago Ashley Madison’s founding CTO claimed he hacked competing dating site https://www.wired.com/2015/08/ashley-madison-leak-reveals-ex-cto-hacked-competing-site/ #5yrsago Telepresence Nazi-punching https://pluralistic.net/2020/08/25/anxietypunk/#smartibots #5yrsago Ballistic Kiss https://pluralistic.net/2020/08/25/anxietypunk/#bk Upcoming appearances (permalink) Ithaca: AD White keynote (Cornell), Sep 12 https://deanoffaculty.cornell.edu/events/keynote-cory-doctorow-professor-at-large/ DC: Enshittification at Politics and Prose, Oct 8 https://politics-prose.com/cory-doctorow-10825 New Orleans: DeepSouthCon63, Oct 10-12 http://www.contraflowscifi.org/ Chicago: Enshittification with Kara Swisher (Chicago Humanities), Oct 15 https://www.oldtownschool.org/concerts/2025/10-15-2025-kara-swisher-and-cory-doctorow-on-enshittification/ San Francisco: Enshittification at Public Works (The Booksmith), Oct 20 https://app.gopassage.com/events/doctorow25 Miami: Enshittification at Books & Books, Nov 5 https://www.eventbrite.com/e/an-evening-with-cory-doctorow-tickets-1504647263469 Recent appearances (permalink) Divesting from Amazon’s Audible and the Fight for Digital Rights (Libro.fm) https://pocketcasts.com/podcasts/9349e8d0-a87f-013a-d8af-0acc26574db2/00e6cbcf-7f27-4589-a11e-93e4ab59c04b The Utopias Podcast https://www.buzzsprout.com/2272465/episodes/17650124 Tariffs vs IP Law (Firewalls Don't Stop Dragons) https://www.youtube.com/watch?v=LFABFe-5-uQ Latest books (permalink) "Picks and Shovels": a sequel to "Red Team Blues," about the heroic era of the PC, Tor Books (US), Head of Zeus (UK), February 2025 (https://us.macmillan.com/books/9781250865908/picksandshovels). "The Bezzle": a sequel to "Red Team Blues," about prison-tech and other grifts, Tor Books (US), Head of Zeus (UK), February 2024 (the-bezzle.org). "The Lost Cause:" a solarpunk novel of hope in the climate emergency, Tor Books (US), Head of Zeus (UK), November 2023 (http://lost-cause.org). "The Internet Con": A nonfiction book about interoperability and Big Tech (Verso) September 2023 (http://seizethemeansofcomputation.org). Signed copies at Book Soup (https://www.booksoup.com/book/9781804291245). "Red Team Blues": "A grabby, compulsive thriller that will leave you knowing more about how the world works than you did before." Tor Books http://redteamblues.com. "Chokepoint Capitalism: How to Beat Big Tech, Tame Big Content, and Get Artists Paid, with Rebecca Giblin", on how to unrig the markets for creative labor, Beacon Press/Scribe 2022 https://chokepointcapitalism.com Upcoming books (permalink) "Canny Valley": A limited edition collection of the collages I create for Pluralistic, self-published, September 2025 "Enshittification: Why Everything Suddenly Got Worse and What to Do About It," Farrar, Straus, Giroux, October 7 2025 https://us.macmillan.com/books/9780374619329/enshittification/ "Unauthorized Bread": a middle-grades graphic novel adapted from my novella about refugees, toasters and DRM, FirstSecond, 2026 "Enshittification, Why Everything Suddenly Got Worse and What to Do About It" (the graphic novel), Firstsecond, 2026 "The Memex Method," Farrar, Straus, Giroux, 2026 "The Reverse-Centaur's Guide to AI," a short book about being a better AI critic, Farrar, Straus and Giroux, 2026 Colophon (permalink) Today's top sources: Currently writing: "The Reverse Centaur's Guide to AI," a short book for Farrar, Straus and Giroux about being an effective AI critic. (1019 words yesterday, 42282 words total). A Little Brother short story about DIY insulin PLANNING This work – excluding any serialized fiction – is licensed under a Creative Commons Attribution 4.0 license. That means you can use it any way you like, including commercially, provided that you attribute it to me, Cory Doctorow, and include a link to pluralistic.net. https://creativecommons.org/licenses/by/4.0/ Quotations and images are not included in this license; they are included either under a limitation or exception to copyright, or on the basis of a separate license. Please exercise caution. How to get Pluralistic: Blog (no ads, tracking, or data-collection): Pluralistic.net Newsletter (no ads, tracking, or data-collection): https://pluralistic.net/plura-list Mastodon (no ads, tracking, or data-collection): https://mamot.fr/@pluralistic Medium (no ads, paywalled): https://doctorow.medium.com/ Twitter (mass-scale, unrestricted, third-party surveillance and advertising): https://twitter.com/doctorow Tumblr (mass-scale, unrestricted, third-party surveillance and advertising): https://mostlysignssomeportents.tumblr.com/tagged/pluralistic "When life gives you SARS, you make sarsaparilla" -Joey "Accordion Guy" DeVilla READ CAREFULLY: By reading this, you agree, on behalf of your employer, to release me from all obligations and waivers arising from any and all NON-NEGOTIATED agreements, licenses, terms-of-service, shrinkwrap, clickwrap, browsewrap, confidentiality, non-disclosure, non-compete and acceptable use policies ("BOGUS AGREEMENTS") that I have entered into with your employer, its partners, licensors, agents and assigns, in perpetuity, without prejudice to my ongoing rights and privileges. You further represent that you have the authority to release me from any BOGUS AGREEMENTS on behalf of your employer. ISSN: 3066-764X
Today's links Friction cannot be reduced, it can only be redistributed: The better things are for your boss, the worse they are for you. Hey look at this: Delights to delectate. Object permanence: Dr Bruce Sterling; Buddy Holly's overnight bag; Zombie postcapitalism. Upcoming appearances: Where to find me. Recent appearances: Where I've been. Latest books: You keep readin' em, I'll keep writin' 'em. Upcoming books: Like I said, I'll keep writin' 'em. Colophon: All the rest. Friction cannot be reduced, it can only be redistributed (permalink) Despite the pretensions of certain well-paid economists, political economy is not a "physics of human behavior," through which human interactions and outcomes can be quantized and precisely captured through mathematical models. For one thing, in physics, it's possible to reduce friction, whereas in political economy, friction isn't something you reduce, it's something you redistribute, typically downward, to people with less political power than you. Think about your job. If you are on a salary, your boss has to pay you even when there's no work to be done, which means that during times where there's no income, your boss still has to pay your wages, meaning that a long slow patch could kill the business. But if your boss can eliminate or reduce your wages when there's no work, the friction of figuring out how to keep your boss's business a going concern is shifted to you. Take the "tipped minimum wage," which is the minimum that a restaurateur can pay a server. The federal tipped minimum wage is $2.15/hour, which is substantially less than you can survive on. If your boss fucks up and can't fill the tables in his restaurant, he has to pay you $7.25/hour (the federal minimum wage). But if you get just one table in eight hours, where you bust your hump and earn a $41 tip, your boss gets to keep $40.90 of that money and pay you the grand sum of $58. That certainly relieves some of your boss's friction – but now you have to endure the friction of figuring out how to survive on $58. Maybe you don't fix your car and instead spend an extra hour at the start and end of your shift on a city bus. That's a lot of friction, but it's your friction. Same for the time you spend lining up at the food bank, the sleepless nights you endure because you can't see a dentist about your rotten tooth, the diabetes test-strips you do without. Of course, there's plenty of workers who don't even get the tipped minimum wage: in most of the country, "gig economy" workers aren't guaranteed any wages. If your boss – the company that made your app – fucked up by charging too much or skimping on ads or having piss-poor customer service, you can clock on for an eight-hour shift and get zero dollars, all the while being available to your boss, just in case they do get a customer. If you're a driver, you only get paid for the time when you're on a delivery or have a passenger, and you bear the expense of the rest of the hours you spend prowling the streets, waiting for a call-out. This allows gig companies to build up a giant workforce that can absorb orders when they come in, while shifting the friction of living on half-wages to the workers who only get paid on the way out to a delivery, but not on the way back. Return to office? An exercise in pure friction-shifting. The friction your boss experiences from furiously fantasizing about how lazy you're being at home is swapped for the friction you of your commute, the friction of having to reschedule deliveries that you weren't home to sign for, the friction of having to eat a packed lunch or waste your pay on overpriced, additive/grease/salt/sugar-laden quick-service food. The airline that fires most of its customer service staff shifts operational frictions onto passengers, from the friction of arriving two hours early to see one of the few check-in clerks to the friction of waiting for three hours on hold to rebook a canceled flight or find a lost bag. Southwest really takes the cake here. Remember a couple years ago when Southwest stranded one million passengers over Christmas week because its computers had all crashed? Turns out that the main thing SWA was doing with those computers was running a friction-shifting shell-game with its airplanes, pilots, flight attendants and passengers. SWA would sell tickets for more flights than it had planes, and then cancel the flights that had sold the fewest tickets: https://pluralistic.net/2023/01/10/the-courage-to-govern/#whos-in-charge That's quite a magnificent piece of friction-shifting. SWA is relieved of the friction of buying and maintaining a fleet of planes. The don't have to bear the friction of guessing which planes will and won't be full in advance. But SWA passengers get all the friction and more, when their flight is cancelled because other people – whom they have no control over – failed to buy enough tickets for it. Southwest "reduced friction" for its shareholders at the expense of its employees and customers. Other businesses "reduce friction" for one favored group at the expense of another, like Google, whose Youtube Content ID system makes it trivial to file a copyright takedown notice but hard-to-impossible to get your work reinstated when you are falsely accused: https://pluralistic.net/2024/06/27/nuke-first/#ask-questions-never That's shifting friction from large rightsholders (who can get infringing work removed without a trial) to creators (who don't get a day in court before their work is censored). Meanwhile, food delivery platforms shift friction onto restaurants, conscripting them into delivery services without their permission: https://pluralistic.net/2020/05/18/code-is-speech/#schadenpizza And onto drivers, who don't even rate the tipped minimum wage. For all that these companies come up with names for themselves like "Seamless," they are 100 percent seam, but those seams are shifted onto people without political or economic power. The MBA mind-virus turns its victims into "optimization"-obsessed zombies, but what they mean by "optimization" is that you will optimize your life to their benefit. HP uses software locks to "optimize" its printer business, forcing you to buy ink at $10,000/gallon: https://pluralistic.net/2024/09/30/life-finds-a-way/#ink-stained-wretches And Uber "optimizes" its drivers by spying on them and paying them less when the algorithm infers that they are more economically desperate: https://len-sherman.medium.com/how-uber-became-a-cash-generating-machine-ef78e7a97230 A better world is one in which the people optimize corporations and billionaires – by cutting them down to size and shattering their power. It's a world in which amassing obscene amounts of money and market power creates friction, in the form of endless regulatory and tax scrutiny. It's a world where public transit has priority and private cars are taxed for slowing the rest of us down as we go about our days. It's a world where workers are frictionless: protected from noncompete agreements and baroque wage theft schemes like those used to impoverish service and gig workers. It's a world where bosses experience friction, in the form of obligations to the workers whose labor generates their wealth. I really believe that – politically speaking – friction can't be destroyed, only redistributed. And I'm fine with that, really – provided we're redistributing it upwards. Hey look at this (permalink) I reported from an ICE action on Sansome and all I got was a face full of pepper spray https://sf.gazetteer.co/i-reported-from-an-ice-action-on-sansome-and-all-i-got-was-a-face-full-of-pepper-spray When Trump's Brain Broke https://www.unpopularfront.news/p/when-trumps-brain-broke Bank forced to rehire workers after lying about chatbot productivity, union says https://arstechnica.com/tech-policy/2025/08/bank-forced-to-rehire-workers-after-lying-about-chatbot-productivity-union-says/ I Made a Floppy Disk from Scratch https://www.youtube.com/watch?v=TBiFGhnXsh8 America's Kryptonite https://orphansandempires.substack.com/p/americas-kryptonite Object permanence (permalink) #20yrsago Bruce Sterling gets an honorary doctorate https://web.archive.org/web/20051226234102/http://wiredblogs.tripod.com/sterling/index.blog?entry_id=1200350 #20yrsago Beastie Boys release vocals-only tracks to encourage remixers https://web.archive.org/web/20050930220256/http://www.beastieboys.com/remixers.php #20yrsago What was in Buddy Holly’s plane-crash overnight bag? https://web.archive.org/web/20051023162927/http://www.rockin50s.com/bag.htm #20yrsago Warner Music CEO calls for iPod taxes, levies — twirls moustache and cackles, clatters away on tiny, ebony hooves https://web.archive.org/web/20050910183217/http://news.com.com/Warner+Music+readies+CD-free+e-label/2100-1027_3-5841355.html #20yrsago Customers of new UK ISP get to share all Sony music on P2P https://www.theguardian.com/technology/2005/aug/22/media.newmedia #10yrsago Greece’s creditors demand casino rights, archaeological sites, selloff of EUR50B of national assets https://web.archive.org/web/20150824062007/https://www.globaljustice.org.uk/blog/2015/aug/19/greece-sale-–-and-everything-must-go #5yrsago Zombie postcapitalism https://pluralistic.net/2020/08/22/this-machine-kills-fascists/#varoufakis Upcoming appearances (permalink) Ithaca: AD White keynote (Cornell), Sep 12 https://deanoffaculty.cornell.edu/events/keynote-cory-doctorow-professor-at-large/ DC: Enshittification at Politics and Prose, Oct 8 https://politics-prose.com/cory-doctorow-10825 New Orleans: DeepSouthCon63, Oct 10-12 http://www.contraflowscifi.org/ Chicago: Enshittification with Kara Swisher (Chicago Humanities), Oct 15 https://www.oldtownschool.org/concerts/2025/10-15-2025-kara-swisher-and-cory-doctorow-on-enshittification/ San Francisco: Enshittification at Public Works (The Booksmith), Oct 20 https://app.gopassage.com/events/doctorow25 Miami: Enshittification at Books & Books, Nov 5 https://www.eventbrite.com/e/an-evening-with-cory-doctorow-tickets-1504647263469 Recent appearances (permalink) Divesting from Amazon’s Audible and the Fight for Digital Rights (Libro.fm) https://pocketcasts.com/podcasts/9349e8d0-a87f-013a-d8af-0acc26574db2/00e6cbcf-7f27-4589-a11e-93e4ab59c04b The Utopias Podcast https://www.buzzsprout.com/2272465/episodes/17650124 Tariffs vs IP Law (Firewalls Don't Stop Dragons) https://www.youtube.com/watch?v=LFABFe-5-uQ Latest books (permalink) "Picks and Shovels": a sequel to "Red Team Blues," about the heroic era of the PC, Tor Books (US), Head of Zeus (UK), February 2025 (https://us.macmillan.com/books/9781250865908/picksandshovels). "The Bezzle": a sequel to "Red Team Blues," about prison-tech and other grifts, Tor Books (US), Head of Zeus (UK), February 2024 (the-bezzle.org). "The Lost Cause:" a solarpunk novel of hope in the climate emergency, Tor Books (US), Head of Zeus (UK), November 2023 (http://lost-cause.org). "The Internet Con": A nonfiction book about interoperability and Big Tech (Verso) September 2023 (http://seizethemeansofcomputation.org). Signed copies at Book Soup (https://www.booksoup.com/book/9781804291245). "Red Team Blues": "A grabby, compulsive thriller that will leave you knowing more about how the world works than you did before." Tor Books http://redteamblues.com. "Chokepoint Capitalism: How to Beat Big Tech, Tame Big Content, and Get Artists Paid, with Rebecca Giblin", on how to unrig the markets for creative labor, Beacon Press/Scribe 2022 https://chokepointcapitalism.com Upcoming books (permalink) "Canny Valley": A limited edition collection of the collages I create for Pluralistic, self-published, September 2025 "Enshittification: Why Everything Suddenly Got Worse and What to Do About It," Farrar, Straus, Giroux, October 7 2025 https://us.macmillan.com/books/9780374619329/enshittification/ "Unauthorized Bread": a middle-grades graphic novel adapted from my novella about refugees, toasters and DRM, FirstSecond, 2026 "Enshittification, Why Everything Suddenly Got Worse and What to Do About It" (the graphic novel), Firstsecond, 2026 "The Memex Method," Farrar, Straus, Giroux, 2026 "The Reverse-Centaur's Guide to AI," a short book about being a better AI critic, Farrar, Straus and Giroux, 2026 Colophon (permalink) Today's top sources: Currently writing: "The Reverse Centaur's Guide to AI," a short book for Farrar, Straus and Giroux about being an effective AI critic. (1025 words yesterday, 40200 words total). A Little Brother short story about DIY insulin PLANNING This work – excluding any serialized fiction – is licensed under a Creative Commons Attribution 4.0 license. That means you can use it any way you like, including commercially, provided that you attribute it to me, Cory Doctorow, and include a link to pluralistic.net. https://creativecommons.org/licenses/by/4.0/ Quotations and images are not included in this license; they are included either under a limitation or exception to copyright, or on the basis of a separate license. Please exercise caution. How to get Pluralistic: Blog (no ads, tracking, or data-collection): Pluralistic.net Newsletter (no ads, tracking, or data-collection): https://pluralistic.net/plura-list Mastodon (no ads, tracking, or data-collection): https://mamot.fr/@pluralistic Medium (no ads, paywalled): https://doctorow.medium.com/ Twitter (mass-scale, unrestricted, third-party surveillance and advertising): https://twitter.com/doctorow Tumblr (mass-scale, unrestricted, third-party surveillance and advertising): https://mostlysignssomeportents.tumblr.com/tagged/pluralistic "When life gives you SARS, you make sarsaparilla" -Joey "Accordion Guy" DeVilla READ CAREFULLY: By reading this, you agree, on behalf of your employer, to release me from all obligations and waivers arising from any and all NON-NEGOTIATED agreements, licenses, terms-of-service, shrinkwrap, clickwrap, browsewrap, confidentiality, non-disclosure, non-compete and acceptable use policies ("BOGUS AGREEMENTS") that I have entered into with your employer, its partners, licensors, agents and assigns, in perpetuity, without prejudice to my ongoing rights and privileges. You further represent that you have the authority to release me from any BOGUS AGREEMENTS on behalf of your employer. ISSN: 3066-764X