{
    "archive_path": "archive/1788689050.032283",
    "base_url": "bcantrill.dtrace.org/2026/09/05/the-revolt-of-the-reader",
    "basename": "",
    "bookmarked_date": "2026-09-06 10:04",
    "canonical": {
        "archive_org_path": "https://web.archive.org/web/bcantrill.dtrace.org/2026/09/05/the-revolt-of-the-reader",
        "dom_path": "output.html",
        "favicon_path": "favicon.ico",
        "git_path": "git/",
        "google_favicon_path": "https://www.google.com/s2/favicons?domain=bcantrill.dtrace.org",
        "headers_path": "headers.json",
        "htmltotext_path": "htmltotext.txt",
        "index_path": "index.html",
        "media_path": "media/",
        "mercury_path": "mercury/content.html",
        "pdf_path": "output.pdf",
        "readability_path": "readability/content.html",
        "screenshot_path": "screenshot.png",
        "singlefile_path": "singlefile.html",
        "warc_path": "warc/",
        "wget_path": "bcantrill.dtrace.org/2026/09/05/the-revolt-of-the-reader/index.html"
    },
    "domain": "bcantrill.dtrace.org",
    "extension": "",
    "hash": "BRE2CJ2HB4DNKN4P5NSE",
    "history": {
        "archive_org": [],
        "dom": [],
        "favicon": [
            {
                "cmd": [
                    "curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--max-time",
                    "120",
                    "--output",
                    "favicon.ico",
                    "--user-agent",
                    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 ArchiveBox/0.7.4 (+https://github.com/ArchiveBox/ArchiveBox/) curl/curl 8.14.1 (x86_64-pc-linux-gnu)",
                    "https://www.google.com/s2/favicons?domain=bcantrill.dtrace.org"
                ],
                "cmd_version": "curl 8.14.1 (x86_64-pc-linux-gnu)",
                "end_ts": "2026-09-06T10:07:26.392291+00:00",
                "index_texts": null,
                "output": "favicon.ico",
                "pwd": "/data/archive/1788689050.032283",
                "schema": "ArchiveResult",
                "start_ts": "2026-09-06T10:07:26.045694+00:00",
                "status": "succeeded"
            }
        ],
        "git": [],
        "headers": [
            {
                "cmd": [
                    "curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--head",
                    "--max-time",
                    "120",
                    "--user-agent",
                    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 ArchiveBox/0.7.4 (+https://github.com/ArchiveBox/ArchiveBox/) curl/curl 8.14.1 (x86_64-pc-linux-gnu)",
                    "https://bcantrill.dtrace.org/2026/09/05/the-revolt-of-the-reader/"
                ],
                "cmd_version": "curl 8.14.1 (x86_64-pc-linux-gnu)",
                "end_ts": "2026-09-06T10:07:26.895070+00:00",
                "index_texts": null,
                "output": "headers.json",
                "pwd": "/data/archive/1788689050.032283",
                "schema": "ArchiveResult",
                "start_ts": "2026-09-06T10:07:26.404917+00:00",
                "status": "succeeded"
            }
        ],
        "htmltotext": [],
        "media": [],
        "mercury": [
            {
                "cmd": [
                    "/app/node_modules/@postlight/parser/cli.js",
                    "https://bcantrill.dtrace.org/2026/09/05/the-revolt-of-the-reader/"
                ],
                "cmd_version": "1.0.0",
                "end_ts": "2026-09-06T10:07:34.472407+00:00",
                "index_texts": null,
                "output": "mercury",
                "pwd": "/data/archive/1788689050.032283",
                "schema": "ArchiveResult",
                "start_ts": "2026-09-06T10:07:30.883646+00:00",
                "status": "succeeded"
            }
        ],
        "pdf": [],
        "readability": [
            {
                "cmd": [
                    "/app/node_modules/readability-extractor/readability-extractor",
                    "/tmp/tmpbjafqbd9",
                    "https://bcantrill.dtrace.org/2026/09/05/the-revolt-of-the-reader/"
                ],
                "cmd_version": "0.0.11",
                "end_ts": "2026-09-06T10:07:30.876288+00:00",
                "index_texts": [
                    "Reading is important to me.  While I\u2019m not a quick reader nor an especially\nvoracious one, I have found that long-form reading has had a profound influence\non me over my life.\nAnd because reading is important to me, writing is too: writing not only allows\nus to convey our ideas, but the very act forces us to test and distill them\u2009\u2014\u2009at once making our ideas more robust while providing the vehicle by which to\nshare them.\nBut I am writing this now because\u2009\u2014\u2009speaking as a reader\u2009\u2014\u2009we are\nexasperated: too many people\u2009\u2014\u2009people we otherwise like and respect!\u2009\u2014\u2009are\nwriting (or otherwise putting their name to) pieces that are clearly\nLLM-authored.  We readers are left with pointed questions for those promoting\nLLM-authored pieces: do you think readers can\u2019t tell? Or do you think readers\ndon\u2019t care?\nTo answer the first question, readers can absolutely tell.  To those who read\nbroadly, the hand of the LLM is so clear it\u2019s as if\nthe writer\u2019s intellectual fly is open.\nIn fact, it\u2019s so jarring that I have to\nbelieve that those writing with LLMs are either not reading enough to see the\nLLM\u2019s obvious structural tells\u2009\u2014\u2009or (and?) they aren\u2019t even reading their own\ncontent.  (A confession: with particularly egregious pieces, I have fantasized\nabout sentencing the author to read them aloud, certain that they themselves\nwill be unable to endure the slop that they are foisting upon the rest of us.)\nAs to the second question, readers emphatically care.  In fact, the tells of\nLLM writing are so grating (\"and here\u2019s why that framing matters!\") that our\nbrains pull an LLM-triggered ejection handle, bailing us out mid-sentence in an\nact of self-preservation.  And the first person plural there is deliberate: as\nCynthia Dunlop writes,\nof the 668 developers that replied to her survey, 78% \"stop reading\nimmediately\" when they detect an LLM.  And there are consequences that outlast\nthe piece:  71% of the respondents in Cynthia\u2019s survey also \"avoid the author\nin the future\" (!!).  Revealingly, the respondents are not after linguistic\nperfection, but rather authenticity: 98% reported preferring an author\u2019s own\n(imperfectly) written piece over an LLM-polished one.  Finally, be wary of\ndismissing Cynthia\u2019s respondents as a self-selecting group: active readers on\nsocial media are exactly the folks most likely to repost or otherwise promote\nwriting they like\u2009\u2014\u2009the early adopters and the tastemakers of online prose.\nWhy do people have this reaction?  Beyond having to endure aggravating\nstylistic tics, when reading a piece that has had substantial LLM assistance,\nwe\u2009\u2014\u2009the readers\u2009\u2014\u2009don\u2019t know what is real and what isn\u2019t.  As I wrote in\nRFD 576,\nto use an LLM to write is to void the social contract between writer and\nreader: we readers shouldn\u2019t be expected to labor to understand a sentence that\nthe writer themselves didn\u2019t work to create.\nDoes the revolt of the reader matter?  If it needs to be said, when you are\nusing an LLM to author a public piece, you are no longer writing for yourself\nor to otherwise pressure-test your own ideas\u2009\u2014\u2009the only purpose is to\nserve the reader.  If readers choose to ignore you (perhaps forever!), you will\nhave undermined yourself:  instead of attracting readers you will be actively\nrepelling them.  So other judgement about its use aside, using an LLM will\nincreasingly become simply\u2026\u200b ineffective.\nIn this regard, I am reminded of the arc of e-mail spam.  There was a time in\nthe early 2000s when people were (reasonably!) afraid that the explosion of\nspam would mean the end of e-mail.  This was an era largely before social\nnetworking, and e-mail was the canonical killer app of the Internet; that we\nwere losing e-mail to spam felt deeply dispiriting.  But sometime in the late\n2000s, we turned a corner: spam filtering improved so much that the economics\nof spam were undermined.  Moreover, as spam became effectively contained, the\nconsequences of being labeled as spam became increasingly dire.  Today,\nlegitimate businesses are very careful about how they use bulk e-mail; to be\nlabeled as spam is to effectively destroy your domain name and tarnish your\nbrand.\nThe war on spam started to turn when we could identify it at scale; could\nsomething similar happen to LLM-authored writing?  Like spam, an LLM\u2019s\ninfluence is readily identifiable to humans reading it; surely this is a\nsolvable problem?\nUp until somewhat recently, the results on this problem had been decidedly\nmixed.  I had tried to use LLMs themselves for LLM identification, but I found\nthat their false negative rate was far too high: they were chipper in\naccepting stuff that I was certain was LLM-authored.  Other services seemed to\nlook for basic LLM tells, but as an avid (and unapologetic!) user of the\nem-dash, these superficial techniques make me shift nervously in my seat (and I\nfound them to be so broadly unreliable that they didn\u2019t earn regular use).\nLate last year, Pangram Labs launched\ntheir Pangram 3 model.  I\nfound it to be a huge leap over other detectors, and became an avid user.\nImportantly, over months of use (and especially on samples that I otherwise\nknew the origins of), I found its false positive rate to be very low: when\nPangram identified a text as being largely AI written, I could say with some\ncertainty that an LLM was heavily involved.  (I found its false negative rate\nto be higher than I would like, but it was a small price to pay for a low false\npositive rate.)\nA little over a month ago, they introduced\nPangram 4, which I found to\nbe a step-function improvement over the already-impressive Pangram 3: in my\nexperience it has an astonishingly low false positive rate and low false\nnegative rate (which is to say: very high accuracy!).  I am finding it to be so\neffective (and the loss of trust in voices that use LLMs to be so precipitous)\nthat I recently extended RFD 576 to be\nexplicit\nabout public writing, specifically mandating that public Oxide writing be\nreported by Pangram as human-authored.  As I explained in the RFD, the standard\nfor our public writing is not merely that LLMs aren\u2019t used to write, but that\nreaders have the confidence that it\u2019s not LLM-authored\u2009\u2014\u2009and increasingly\nthat means being Pangram-clean.  For those organizations that value the\nauthenticity of their institutional voice, I would encourage the adoption of a\nsimilar policy for those writing under their banner. (Looking squarely at you,\nRust Foundation!)\nIndeed, Pangram has become important to so many of us that I was thrilled when\nPangram Labs co-founder and CEO\nMax Spero joined us recently on Oxide and Friends.\nI would recommend\nthat discussion not only for the technical details of Pangram, but\nalso for Adam\u2019s drop of a pitch-perfect (if underappreciated in the moment)\nSimpsons reference: when I likened LLM-authored writing to presenting takeout\nfood as one\u2019s own cooking,\nAdam quipped that such\nwriting is like \"steamed hams\", making reference to\nPrincipal Skinner trying to pass\noff Krusty Burgers as an old family recipe.  Beyond the apropos reference, it\nwas interesting to hear Max\u2019s insight into what has made Pangram 4 especially\neffective\u2009\u2014\u2009and why its efficacy seems to evince some\nsuspicious howls of protest.\nSo, writers beware:  readers are in revolt.  You should fully expect your\nwriting to be run through Pangram.  If your position is that we should be fine\nwith an LLM crafting prose from your prompt, spare us all the wasted cycles and\njust give us your prompt.  Or, better yet, consider doing what generations of\nwriters have done before you, and treating that prompt as a skeleton that you\nuse to write your piece yourself!  This doesn\u2019t mean that an LLM can\u2019t help\nyou, of course\u2009\u2014\u2009LLMs are superlative editors!\u2009\u2014\u2009just that you probably shouldn\u2019t let it write it for you if you actually expect\nthe rest of us to read it."
                ],
                "output": "readability",
                "pwd": "/data/archive/1788689050.032283",
                "schema": "ArchiveResult",
                "start_ts": "2026-09-06T10:07:28.930858+00:00",
                "status": "succeeded"
            }
        ],
        "screenshot": [],
        "singlefile": [],
        "title": [
            {
                "cmd": [
                    "curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--max-time",
                    "120",
                    "--user-agent",
                    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 ArchiveBox/0.7.4 (+https://github.com/ArchiveBox/ArchiveBox/) curl/curl 8.14.1 (x86_64-pc-linux-gnu)",
                    "https://bcantrill.dtrace.org/2026/09/05/the-revolt-of-the-reader/"
                ],
                "cmd_version": "curl 8.14.1 (x86_64-pc-linux-gnu)",
                "end_ts": "2026-09-06T10:07:28.924872+00:00",
                "index_texts": null,
                "output": "The revolt of the reader | The Observation Deck",
                "pwd": "/data/archive/1788689050.032283",
                "schema": "ArchiveResult",
                "start_ts": "2026-09-06T10:07:28.915107+00:00",
                "status": "succeeded"
            }
        ],
        "wget": [
            {
                "cmd": [
                    "wget",
                    "--no-verbose",
                    "--adjust-extension",
                    "--convert-links",
                    "--force-directories",
                    "--backup-converted",
                    "--span-hosts",
                    "--no-parent",
                    "-e",
                    "robots=off",
                    "--timeout=120",
                    "--restrict-file-names=windows",
                    "--warc-file=/data/archive/1788689050.032283/warc/1788689246",
                    "--page-requisites",
                    "--user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 ArchiveBox/0.7.4 (+https://github.com/ArchiveBox/ArchiveBox/) wget/GNU Wget 1.21.3",
                    "--compression=auto",
                    "https://bcantrill.dtrace.org/2026/09/05/the-revolt-of-the-reader/"
                ],
                "cmd_version": "GNU Wget 1.21.3",
                "end_ts": "2026-09-06T10:07:28.909648+00:00",
                "index_texts": null,
                "output": "bcantrill.dtrace.org/2026/09/05/the-revolt-of-the-reader/index.html",
                "pwd": "/data/archive/1788689050.032283",
                "schema": "ArchiveResult",
                "start_ts": "2026-09-06T10:07:26.902664+00:00",
                "status": "succeeded"
            }
        ]
    },
    "icons": null,
    "is_archived": true,
    "is_static": false,
    "latest": {
        "archive_org": null,
        "dom": null,
        "favicon": "favicon.ico",
        "git": null,
        "media": null,
        "pdf": null,
        "screenshot": null,
        "singlefile": null,
        "title": "The revolt of the reader | The Observation Deck",
        "warc": null,
        "wget": "bcantrill.dtrace.org/2026/09/05/the-revolt-of-the-reader/index.html"
    },
    "link_dir": "/data/archive/1788689050.032283",
    "newest_archive_date": "2026-09-06T10:07:30.883646+00:00",
    "num_failures": 0,
    "num_outputs": 6,
    "oldest_archive_date": "2026-09-06T10:07:26.045694+00:00",
    "path": "/2026/09/05/the-revolt-of-the-reader/",
    "schema": "Link",
    "scheme": "https",
    "snapshot_id": "5fe8e36e-d1fc-4a0e-9c71-e4a96a054ab7",
    "sources": [
        "/data/sources/1788689050-import.txt"
    ],
    "tags": null,
    "tags_str": "",
    "timestamp": "1788689050.032283",
    "title": "The revolt of the reader | The Observation Deck",
    "updated": "2026-09-06T10:07:26.045194+00:00",
    "updated_date": "2026-09-06 10:07",
    "url": "https://bcantrill.dtrace.org/2026/09/05/the-revolt-of-the-reader/"
}