Latest entries

  1. Untitled

    Just got bitten by a dog, which kinda sums up this Thursday.

    Paul Robert LloydPublished

  2. Neanderthals seemed to have a thing for modern human women

    "Neanderthal deserts" in our genomes suggest a strong pattern in matings.

    Ars TechnicaPublished

  3. Perplexity announces "Computer," an AI agent that assigns work to other AI agents

    It's also a buttoned-down, ostensibly safer take on the OpenClaw concept.

    Ars TechnicaPublished

  4. xAI spent $7M building wall that barely muffles annoying power plant noise

    “Temu sound wall” not enough to quell fury over xAI’s power plant.

    Ars TechnicaPublished

  5. The physics of squeaking sneakers

    Geometry of tread patterns determines frequency, so blocks were designed to play Star Wars music.

    Ars TechnicaPublished

  6. Hoard things you know how to do

    Agentic Engineering Patterns > Many of my tips for working productively with coding agents are extensions of advice I've found useful in my career without them. Here's a great example of that: hoard things you know how to do. A big part of the skill in building software is understanding what's possible…

    Simon WillisonPublished

  7. Quoting Andrej Karpathy

    It is hard to communicate how much programming has changed due to AI in the last 2 months: not gradually and over time in the "progress as usual" way, but specifically this last December. There are a number of asterisks but imo coding agents basically didn’t work before December and basically work since…

    Simon WillisonPublished

  8. Google reveals Nano Banana 2 AI image model, coming to Gemini today

    Google's new image model replaces the previous versions immediately.

    Ars TechnicaPublished

  9. Ford is recalling 4.3 million trucks and SUVs to fix a towing software bug

    An OTA update will be pushed out in a few weeks; owners can also go to a dealership.

    Ars TechnicaPublished

  10. New AirSnitch attack breaks Wi-Fi encryption in homes, offices, and enterprises

    That guest network you set up for your neighbors may not be as secure as you think.

    Ars TechnicaPublished

  11. New York sues Valve for enabling "illegal gambling" with loot boxes

    The ability to resell Steam items for real value is key to the state's case.

    Ars TechnicaPublished

  12. A non-public document reveals that science may not be prioritized on next Mars mission

    For some reason, NASA chose not to publicly release its Mars orbiter objectives.

    Ars TechnicaPublished

  13. 15 state attorneys general sue RFK Jr. over "anti-science" vaccine policy

    Trump administration’s reduced vaccine schedule “throws science out the window.”

    Ars TechnicaPublished

  14. Badge engineering could be worse than this: The 2026 Subaru Uncharted

    Subaru has a new EV using the platform it shares with Toyota, starting at $34,995.

    Ars TechnicaPublished

  15. ULA isn't making the Space Force's GPS interference problem any easier

    Officials expect the investigation into a booster anomaly on ULA's Vulcan rocket to last multiple months.

    Ars TechnicaPublished

  16. Managing Multiple Development Ecosystem Installs

    In the past year, I occasionally required another Java Development Kit besides the usual one defined in $JAVA_HOME to build certain modules against older versions and certain modules against bleeding edge versions. In the Java world, that’s rather trivial thanks to IntelliJ’s project settings: you can…

    Wouter GroeneveldPublished

  17. Google API Keys Weren't Secrets. But then Gemini Changed the Rules.

    Google API Keys Weren't Secrets. But then Gemini Changed the Rules. Yikes! It turns out Gemini and Google Maps (and other services) share the same API keys... but Google Maps API keys are designed to be public, since they are embedded directly in web pages. Gemini API keys can be used to access private…

    Simon WillisonPublished

  18. Quoting Benedict Evans

    If people are only using this a couple of times a week at most, and can’t think of anything to do with it on the average day, it hasn’t changed their life. OpenAI itself admits the problem, talking about a ‘capability gap’ between what the models can do and what people do with them, which seems to me…

    Simon WillisonPublished

  19. Musk has no proof OpenAI stole xAI trade secrets, judge rules, tossing lawsuit

    Even twisting an ex-employee's text to favor xAI's reading fails to sway judge.

    Ars TechnicaPublished

  20. The Galaxy S26 is faster, more expensive, and even more chock-full of AI

    Samsung's Galaxy S26 series is available for preorder today and ships on March 11.

    Ars TechnicaPublished

  21. tldraw issue: Move tests to closed source repo

    tldraw issue: Move tests to closed source repo It's become very apparent over the past few months that a comprehensive test suite is enough to build a completely fresh implementation of any open source library from scratch, potentially in a different language. This has worrying implications for open…

    Simon WillisonPublished

  22. Judge doesn't trust DOJ with search of devices seized from Wash. Post reporter

    Court to search devices itself instead of letting government have full access.

    Ars TechnicaPublished

  23. Could a vaccine prevent dementia? Shingles shot data only getting stronger.

    Latest data hints that benefits seen so far could be underestimates.

    Ars TechnicaPublished

  24. 2026 Lexus RZ 550e review: Likable, but it needs improvement

    It's not very efficient, and the synthetic gearshifts aren't great, but I liked it?

    Ars TechnicaPublished

  25. RAM now represents 35 percent of bill of materials for HP PCs

    RAM represented about 15 to 18 percent of PC costs last quarter, HP said.

    Ars TechnicaPublished

  26. Claude Code Remote Control

    Claude Code Remote Control New Claude Code feature dropped yesterday: you can now run a "remote control" session on your computer and then use the Claude Code for web interfaces (on web, iOS and native desktop app) to send prompts to that session. It's a little bit janky right now. Initially when I tried…

    Simon WillisonPublished

  27. I vibe coded my dream macOS presentation app

    I gave a talk this weekend at Social Science FOO Camp in Mountain View. The event was a classic unconference format where anyone could present a talk without needing to propose it in advance. I grabbed a slot for a talk I titled "The State of LLMs, February 2026 edition", subtitle "It's all changed since…

    Simon WillisonPublished

  28. Trump's MAHA influencer pick for surgeon general goes before Senate

    Casey Means holds no active medical license and promotes alternative medicine.

    Ars TechnicaPublished

  29. Pete Hegseth tells Anthropic to fall in line with DoD desires, or else

    CEO was summoned to Washington after trying to limit military use of its technology.

    Ars TechnicaPublished

  30. Quoting Kellan Elliott-McCrea

    It’s also reasonable for people who entered technology in the last couple of decades because it was good job, or because they enjoyed coding to look at this moment with a real feeling of loss. That feeling of loss though can be hard to understand emotionally for people my age who entered tech because…

    Simon WillisonPublished

  31. Linear walkthroughs

    Agentic Engineering Patterns > Sometimes it's useful to have a coding agent give you a structured walkthrough of a codebase. Maybe it's existing code you need to get up to speed on, maybe it's your own code that you've forgotten the details of, or maybe you vibe coded the whole thing and need to understand…

    Simon WillisonPublished

  32. Against Query Based Compilers

    Query based compilers are all the rage these days, so it feels only appropriate to chart some treacherous shoals in those waters.

    Alex KladovPublished

  33. Interpretation of “I now begin to remember” by Pavlos Pavlides

    Translation of---and philosophical commentary on---a Greek song whose translated title is 'I now begin to remember'.

    Protesilaos StavrouPublished

  34. go-size-analyzer

    go-size-analyzer The Go ecosystem is really good at tooling. I just learned about this tool for analyzing the size of Go binaries using a pleasing treemap view of their bundled dependencies. You can install and run the tool locally, but it's also compiled to WebAssembly and hosted at gsa.zxilly.dev …

    Simon WillisonPublished

  35. First run the tests

    Agentic Engineering Patterns > Automated tests are no longer optional when working with coding agents. The old excuses for not writing them - that they're time consuming and expensive to constantly rewrite while a codebase is rapidly evolving - no longer hold when an agent can knock them into shape in…

    Simon WillisonPublished

  36. Weekly Update 492

    The recurring theme this week seems to be around the gap between breaches happening and individual victims finding out about them. It's tempting to blame this on the corporate victim of the breach (the hacked company), but they're simultaneously dealing with a criminal intrusion, a ransom

    Troy HuntPublished

  37. Rivers of London (Rivers of London, #1) [book]

    Vivid voice, fun and dark and original. I wasn't sure what I was getting in to reading Rivers of London (recommended multiple times on socials), especially as I kept finding the teens/young adult book cover for it (reminding me of the multiple covers the Harry Potter books had) - but I decided to jump…

    Remy SharpPublished

  38. Building Semantic Search on my Content

    I've added some pretty cool AI-powered features to kentcdodds.com and I want to tell you all about it.

    Kent C. DoddsPublished

  39. Helping YOU ask ME questions with AI

    Here's how I've made it easier for you to call into the Call Kent podcast without having to record yourself and also make yourself anonymous using AI.

    Kent C. DoddsPublished

  40. 6 life lessons I discovered while learning to ski

    Falling down a mountain strapped to two slender skis feels like an analogy for life.

    Paul Robert LloydPublished

  41. Making Icon Sets Easy With Web Origami

    Over the years, I’ve used different icon sets on my blog. Right now I use Heroicons. The recommended way to use them is to copy/paste the source from the website directly into your HTML. It’s a pretty straightforward process: Go to the website Search for the icon you want Hover it Click to “Copy SVG…

    Jim NielsenPublished

  42. Ladybird adopts Rust, with help from AI

    Ladybird adopts Rust, with help from AI Really interesting case-study from Andreas Kling on advanced, sophisticated use of coding agents for ambitious coding projects with critical code. After a few years hoping Swift's platform support outside of the Apple ecosystem would mature they switched tracks…

    Simon WillisonPublished

  43. Writing about Agentic Engineering Patterns

    I've started a new project to collect and document Agentic Engineering Patterns - coding practices and patterns to help get the best results out of this new era of coding agent development we find ourselves entering. I'm using Agentic Engineering to refer to building software using coding agents - tools…

    Simon WillisonPublished

  44. Writing code is cheap now

    Agentic Engineering Patterns > The biggest challenge in adopting agentic engineering practices is getting comfortable with the consequences of the fact that writing code is cheap now. Code has always been expensive. Producing a few hundred lines of clean, tested code takes most software developers a…

    Simon WillisonPublished

  45. Quoting Paul Ford

    The paper asked me to explain vibe coding, and I did so, because I think something big is coming there, and I'm deep in, and I worry that normal people are not able to see it and I want them to be prepared. But people can't just read something and hate you quietly; they can't see that you have provided…

    Simon WillisonPublished

  46. How to Unsubscribe from Modern Luxury

    A few years ago I started getting issues of Modern Luxury in the mail. I had no idea why they started coming, and I tried to get them to stop. This should have been easy, and was instead hard. Here’s my process, in case anyone else is in the same boat. First, if you use it, try to unsubscribe via PaperKarma…

    Kyle KingsburyPublished

  47. Never Blow Up Your Bridges

    Ten years ago, I first met my now colleague who then acted as the internship guide for a couple of graduate students that had their first taste of the industry at my previous (previous) employer. We only had brief contact: I was supposed to guide the interns from the industry side, and he was supposed…

    Wouter GroeneveldPublished

  48. Reply guy

    The latest scourge of Twitter is AI bots that reply to your tweets with generic, banal commentary slop, often accompanied by a question to "drive engagement" and waste as much of your time as possible. I just found out that the category name for this genre of software is reply guy tools. Amazing. Tags…

    Simon WillisonPublished

  49. Quoting Summer Yue

    Nothing humbles you like telling your OpenClaw “confirm before acting” and watching it speedrun deleting your inbox. I couldn’t stop it from my phone. I had to RUN to my Mac mini like I was defusing a bomb. I said “Check this inbox too and suggest what you would archive or delete, don’t action until…

    Simon WillisonPublished

  50. The Death of the Software Craftsman

    The death of a software craftsman Well, it happens a lot ‘round here You think quality is a common goal That goes to show how little you know Developers work hard over the years to cultivate tools and techniques to improve the quality of the construction of their software. These tools and techniques…

    David Bryant CopelandPublished

  51. Sprites on the Web

    In game development, it’s common to use spritesheets for animation, but this technique isn’t as widely used on the web. Which is a shame, because we can do some pretty cool stuff with sprites! In this post, we’ll share the niche CSS function you can use to leverage this technique, and explore some of…

    Josh W. ComeauPublished

  52. Red/green TDD

    Agentic Engineering Patterns > "Use red/green TDD" is a pleasingly succinct way to get better results out of a coding agent. TDD stands for Test Driven Development. It's a programming style where you ensure every piece of code you write is accompanied by automated tests that demonstrate the code works…

    Simon WillisonPublished

  53. Some Silly Z3 Scripts I Wrote

    As part of writing Logic for Programmers I produced a lot of “chaff”, code samples and sections I wrote up and then threw away. Sometimes I found a better example for the same topic, sometimes I threw the topic away entirely. It felt bad to let everything all rot on my hard drive, so I’m sharing a bunch…

    Hillel WaynePublished

  54. Selfie: a portrait of me by Ro

    A sketch of me by Ro.

    Protesilaos StavrouPublished

  55. The Claude C Compiler: What It Reveals About the Future of Software

    The Claude C Compiler: What It Reveals About the Future of Software On February 5th Anthropic's Nicholas Carlini wrote about a project to use parallel Claudes to build a C compiler on top of the brand new Opus 4.6 Chris Lattner (Swift, LLVM, Clang, Mojo) knows more about C compilers than most. He just…

    Simon WillisonPublished

  56. London Stock Exchange: Raspberry Pi Holdings plc

    London Stock Exchange: Raspberry Pi Holdings plc Striking graph illustrating stock in the UK Raspberry Pi holding company spiking on Tuesday: The Telegraph credited excitement around OpenClaw: Raspberry Pi's stock price has surged 30pc in two days, amid chatter on social media that the company's tiny…

    Simon WillisonPublished

  57. How AI Labs Proliferate

    SITUATION: there are 14 competing AI labs. “We can’t trust any of these people with super-intelligence. We need to build it ourselves to ensure it’s done right!" “YEAH!” SOON: there are 15 competing AI labs. (See: xkcd on standards.) The irony: “we’re the responsible ones” is each lab’s founding mythology…

    Jim NielsenPublished

  58. How I think about Codex

    How I think about Codex Gabriel Chua (Developer Experience Engineer for APAC at OpenAI) provides his take on the confusing terminology behind the term "Codex", which can refer to a bunch of of different things within the OpenAI ecosystem: In plain terms, Codex is OpenAI’s software engineering agent,…

    Simon WillisonPublished

  59. Disintegrate, Reintegrate, Extrude

    I wrote last week how my wife and I had to say goodbye to Clementine. Without going into detail, caring for our sick cat took a lot out of us. Since last summer, Clem needed some kind of daily medical care: ear drops, pills, special food, eye lube. Yes,...

    Ash FurrowPublished

  60. Prot Asks: Ro about programmatic thinking, political discourse, and self-discovery through art

    In this 3-hour video I talk with Ro about a wide variety of issues that cover programming, politics, and art.

    Protesilaos StavrouPublished

  61. Quoting Thibault Sottiaux

    We’ve made GPT-5.3-Codex-Spark about 30% faster. It is now serving at over 1200 tokens per second. — Thibault Sottiaux, OpenAI Tags: openai, llms, ai, generative-ai, llm-performance

    Simon WillisonPublished

  62. Andrej Karpathy talks about "Claws"

    Andrej Karpathy talks about "Claws" Andrej Karpathy tweeted a mini-essay about buying a Mac Mini ("The apple store person told me they are selling like hotcakes and everyone is confused") to tinker with Claws: I'm definitely a bit sus'd to run OpenClaw specifically [...] But I do love the concept and…

    Simon WillisonPublished

  63. Wrapping Code Comments

    I was today years old when I realized that:

    Alex KladovPublished

  64. Adding TILs, releases, museums, tools and research to my blog

    I've been wanting to add indications of my various other online activities to my blog for a while now. I just turned on a new feature I'm calling "beats" (after story beats, naming this was hard!) which adds five new types of content to my site, all corresponding to activity elsewhere. Here's what beats…

    Simon WillisonPublished

  65. Taalas serves Llama 3.1 8B at 17,000 tokens/second

    Taalas serves Llama 3.1 8B at 17,000 tokens/second This new Canadian hardware startup just announced their first product - a custom hardware implementation of the Llama 3.1 8B model (from July 2024) that can run at a staggering 17,000 tokens/second. I was going to include a video of their demo but it's…

    Simon WillisonPublished

  66. ‘Starkiller’ Phishing Service Proxies Real Login Pages, MFA

    Most phishing websites are little more than static copies of login pages for popular online destinations, and they are often quickly taken down by anti-abuse activists and security firms. But a stealthy new phishing-as-a-service offering lets customers sidestep both of these pitfalls: It uses cleverly…

    Brian KrebsPublished

  67. ggml.ai joins Hugging Face to ensure the long-term progress of Local AI

    ggml.ai joins Hugging Face to ensure the long-term progress of Local AI I don't normally cover acquisition news like this, but I have some thoughts. It's hard to overstate the impact Georgi Gerganov has had on the local model space. Back in March 2023 his release of llama.cpp made it possible to run…

    Simon WillisonPublished

  68. Quoting Thariq Shihipar

    Long running agentic products like Claude Code are made feasible by prompt caching which allows us to reuse computation from previous roundtrips and significantly decrease latency and cost. [...] At Claude Code, we build our entire harness around prompt caching. A high prompt cache hit rate decreases…

    Simon WillisonPublished

  69. How I used Cursor to Migrate Frameworks

    I upgraded kentcdodds.com from Remix v2 to React Router v7 in a day with over 17k lines of code changed. Here's how I did it.

    Kent C. DoddsPublished

  70. Recovering lost code

    Reached the stage of parallel agent psychosis where I've lost a whole feature - I know I had it yesterday, but I can't seem to find the branch or worktree or cloud instance or checkout with it in. ... found it! Turns out I'd been hacking on a random prototype in /tmp and then my computer crashed and…

    Simon WillisonPublished

  71. Gemini 3.1 Pro

    Gemini 3.1 Pro The first in the Gemini 3.1 series, priced the same as Gemini 3 Pro ($2/million input, $12/million output under 200,000 tokens, $4/$18 for 200,000 to 1,000,000). That's less than half the price of Claude Opus 4.6 with very similar benchmark scores to that model. They boast about its improved…

    Simon WillisonPublished

  72. American healthcare

    Cooling my heels at the drugstore. The post American healthcare appeared first on Jeffrey Zeldman Presents.

    Jeffrey ZeldmanPublished

  73. Experimenting with sponsorship for my blog and newsletter

    I've long been resistant to the idea of accepting sponsorship for my blog. I value my credibility as an independent voice, and I don't want to risk compromising that reputation. Then I learned about Troy Hunt's approach to sponsorship, which he first wrote about in 2016. Troy runs with a simple text…

    Simon WillisonPublished

  74. Selfie: the loquat tree is doing well

    Selfie picture of me next to a loquat tree

    Protesilaos StavrouPublished

  75. border-shape: the future of the non-rectangular web

    Learn about new geometry capabilities with this game-changing experimental CSS feature.

    Una KravetsPublished

  76. A Few Rambling Observations on Care

    In this new AI world, “taste” is the thing everyone claims is the new supreme skill. But I think “care” is the one I want to see in the products I buy. Can you measure care? Does scale drive out care? If a product conversation is reduced to being arbitrated exclusively by numbers, is care lost? The more…

    Jim NielsenPublished

  77. You had a story

    You had a story you used to tell yourself about how you got here in life. You’d share the story with others. Maybe you’d be at a party, and someone would ask what you do, and you’d say, “I’m a programmer.” And their eyes would perk up and their mind would fill with images of […]

    Nolan LawsonPublished

  78. Generative AI has broken the subject matter expert/editor relationship

    Some thoughts about managing a publishing pipeline in a world of generative AI.

    Rachel AndrewPublished

  79. Notes on clarifying man pages

    Hello! After spending some time working on the Git man pages last year, I’ve been thinking a little more about what makes a good man page. I’ve spent a lot of time writing cheat sheets for tools (tcpdump, git, dig, etc) which have a man page as their primary documentation. This is because I often find…

    Julia EvansPublished

  80. Emacs: confirm package bugs with –init-directory

    Information on how to use the Emacs --init-directory flag to identify bugs with packages you rely on.

    Protesilaos StavrouPublished

  81. A Note On Presenting Code in Emacs

    The other day, I decided it was finally time. It was finally time to open Emacs to demonstrate certain code functionalities in class. The result was predictable: it caused further confusion among already confused students. The root cause wasn’t switching out a familiar WebStorm-like environment for an…

    Wouter GroeneveldPublished

  82. Fostering Community

    I shared this in our Slack this morning and wanted to share it here because this is the type of community we’re trying to foster. We want to For now, the ticket for joining our community is purchasing one of […]

    Brad FrostPublished

  83. Weekly Update 491

    Well, the ESP32 Bluetooth bridge experiment was a complete failure. Not the radios themselves, they're actually pretty cool, but there's just no way I could get the Yale locks to be reliably operated by them. At a guess, BLE is a bit too passive to detect

    Troy HuntPublished

  84. Goodbye Clementine

    My wife and I said goodbye to our cat Clementine today. We had her for just four years – our time was cut short by cancer. Things have been up and down for months, but at the start of the year we changed priorities to keep her comfortable. Clementine and...

    Ash FurrowPublished

  85. Interpretation of “My old troubles” by Kadinelia

    Translation of---and philosophical commentary on---a Greek song whose translated title is 'My old troubles'.

    Protesilaos StavrouPublished

  86. Untitled

    Lovely evening spent in a local pub, drinking beer, eating pie and mash and coming fifth (out of seven teams) in the pub quiz with my fellow quizzer, Becky. A truly wonderful way to start the week.

    Paul Robert LloydPublished

  87. Announcing Live AI & Design Systems Jam Sessions!

    Ian, TJ, and I are excited to announce live AI & Design Systems Jam Sessions with our AI & Design Systems course community! Our first jam session will be Thursday, February 26 at 10AM ET. In these recurring biweekly Zoom […]

    Brad FrostPublished

  88. The salad bar theory of UX professionalism

    Less, but better? Not this week. The post The salad bar theory of UX professionalism appeared first on Jeffrey Zeldman Presents.

    Jeffrey ZeldmanPublished

  89. Diagnostics Factory

    In Error Codes For Control Flow, I explained that Zig's strongly-typed error codes solve the handling half of error management, leaving reporting to the users. Today, I want to describe my personal default approach to the reporting problem, that is, showing the user a useful error message.

    Alex KladovPublished

  90. Emacs: I will talk about Emacs and free software (FLOSS @ Oxford)

    Information about my upcoming Emacs-related talk for the event 'FLOSS @ Oxford'.

    Protesilaos StavrouPublished

  91. Days of miracle and wonder

    Oprah Winfrey and I have something in common, which is that our favorite album is Paul Simon’s Graceland. I’ve been thinking a lot recently about the opening track, “The Boy in the Bubble”. The song can be read a few different ways, but I read it as an aging man amazed by modernity but also […]

    Nolan LawsonPublished

  92. Selfie: sunshine at last

    Selfie picture of me facing the sun while standing under the shade of a tree.

    Protesilaos StavrouPublished

  93. Philosophy: about a person’s behaviour and outlook

    In this video I comment at length of the theme of a person's behaviour and outlook, using sayings of Confucius as a frame of reference.

    Protesilaos StavrouPublished

  94. Justifying text-wrap: pretty

    Something truly monumental happened in the world of software development in 2025. Safari shipped a reasonable implementation of text-wrap: pretty: https://webkit.org/blog/16547/better-typography-with-text-wrap-pretty/. We are getting closer and closer to the cutting-edge XV-century technology. Beautiful…

    Alex KladovPublished

  95. How Michael Abrash doubled Quake framerate

    Fabien SanglardPublished

  96. Selfie: the rivers are back

    Selfie picture of me with a river behind me.

    Protesilaos StavrouPublished

  97. Emacs: add custom entity (Austrian school) to my ‘institution-calendar’

    This is a guide on how to expand my institution-calendar package to work with your institution.

    Protesilaos StavrouPublished

  98. Reading List 354

    This reading list is courtesy of Vivaldi browser, who pay me decent money to fight for a better web and don’t moan at me for reading all this stuff. We’ve just released Vivaldi 7.8 for mobile, with even more personalistion and zero “A.I.”, because it’s cream of the crop, not a stream of the Slop. [……

    Bruce LawsonPublished

  99. Why Parenting Is Similar To JavaScript Development

    Here’s a crazy thought: to me, parenting feels very similar to programming in JavaScript. The more I think about it, the more convinced I am. If you’re an old fart that’s been coding stuff in JavaScript since its inception, you’ll undoubtedly be familiar with Douglas Crockford’s bibles, or to be more…

    Wouter GroeneveldPublished

  100. Emacs: my GNOME accent color theme switcher package

    Video demo of my new Emacs package that synchronises the theme with that of the GNOME desktop environment.

    Protesilaos StavrouPublished