Timeline

explore river

Every post and feed across this instance

  • Deleting a post takes you home

    Deleting from a post's own page used to leave the dead post on your screen. Now you land back on the home timeline and it's gone.

  • Things You Might Not Know About This Site

    Hey you! Yeah you đŸ«”! Thanks for takin’ some time to check out my site. If you’re new around here, I suggest going back to the home page and perusing what I’ve got front-and-center. Or, maybe scrollin’ through what I’ve made available in the hamburger menu. But, if you’re more of a regular ‘round these parts, you might be interested in a few of these things you might not know about shellsharks.com!

    • There is a theme toggle in my site’s hamburger menu that allows you to cycle through 3 distinct themes.
    • I have a lot of RSS feeds. Go check them out and subscribe to just the ones you want! For example, if you’re just interested in infosec stuff, I have a feed just for that!
    • I have a lot of different content on this site. You can read about all the things I share here!
    • I have more than one Fediverse account.
    • This blog is updated a lot! Adding new content to existing posts, and making all manner of other tweaks. Some of these changes I share via the Changelog, others you just have to bop around the site to see. 😄
    • Check out the /Slashes page which links out to all sorts of fun oddities.
    • There’s a “challenge” baked into my home page logo.
    • Each of my slash pages point to slashpages.net in the bottom right corner of the respective page.
    • My statboard shows some interesting stats about the site.
    • Take a swim in the ocean, or dive into the void.
    • Sometimes, the footer sharks spin!
    • Beyond everything else I’ve mentioned here, there’s even more secrets and easter eggs buried in this site

  • Hoyt Richards: After the Beauties

    Hoyt Richards, a "Was I in a Cult?" legend, is back.

    After our original three-part series, Hoyt returns to talk about Bring Me The Beauties, the new HBO documentary about his life inside, and eventual escape from, the cult known as Eternal Values.

    It's a conversation about what happens after your story is out there for all the world to see. What the doc captured, what still haunts him, and how love, family, and hard-won accountability helped bring him back to himself.

    And just when you thought Hoyt's story had reached its final frame, it may not be done with the screen just yet


    Today, Hoyt is an actor, writer, and producer, who works to support cult survivors and families affected by high-control groups.

    FIND HOYT:

    Watch his new HBO docuseries

    "Bring Me the Beauties: A Model Cult" — directed by Chris Smith (Fyre, Bad Vegan, American Movie), streaming now on HBO Max.
    ___________________________________

    FOLLOW US  → For more culty content — follow us on Instagram & TikTok → @wasiinacult

    SUPPORT THE SHOW
    Join our Patreon! Get ad-free episodes, bonus content, and behind-the-scenes conversations. (And our forever gratitude)

     

    HAVE A CULTY STORY?

    Email us → info@wasiinacult.com

    dts.podtrac.com
  • Is the Best Game of the Year a Failure?

    Remap Radio’s Rob Zacny and Emanuel dive deep into their current favorite game, Marathon, and what its middling success says about the future of games. If you listen to the 404 Media podcast by now you probably realized that Joe and I are a little obsessed with a game called Marathon. I’m embarrassed to say that I’ve played it for almost 300 hours since it was released in March. But as much as we’re enjoying it, and there are thousands of players who feel the same, Marathon so far has failed to find the audience we’d expect from the developer that made Halo, Destiny, and which a few years ago acquired by PlayStation for more than $3 billion. It’s bad news for Marathon fans and a good sign for how much the video game business has changed over the years. I wanted to have Remap Radio host Robert Zacny on the podcast because much like me and Joe, he’s been obsessed with Marathon as well. One of Rob’s greatest skills is dissecting how and why games get their hooks into us, and what a game’s popularity, or lack thereof in Marathon’s case, might reveal about the state of the industry and culture more broadly. Remap Radio: https://remapradio.com/ This is a production of 404 Media, a journalist-owned tech website. Learn more and subscribe at: htttps://404media.co Listen to our weekly podcasts: Apple Podcasts: https://podcasts.apple.com/us/podcast/the-404-media-podcast/id1703615331?ref=404media.co Spotify: https://open.spotify.com/show/0F3oY47l2XgoBMaAmIaw29?ref=404media.co Google Podcasts: https://podcasts.google.com/feed/aHR0cHM6Ly9mZWVkcy5hY2FzdC5jb20vcHVibGljL3Nob3dzL3RoZS00MDQtbWVkaWEtcG9kY2FzdA?ref=404media.co Become a paid subscriber for access to bonus content: https://404media.co/membership Learn more about your ad choices. Visit megaphone.fm/adchoices
    pdst.fm
  • Religious Trauma and Cults: Sam Sellers & Elise Heerde on Healing After High Control Churches (Part 1)

    Sam Sellers and Elise Heerde of Religious Trauma and Cults bring the receipts on growing up in high-control faith worlds, with Sam from the Brethren Christian Church, an independent off-shoot of the Exclusive Brethren, and Elise from the Pentecostal Church & New Apostolic Reformation. They talk about how those systems can start out feeling like belonging with a side of certainty, then slowly turn into “wait, this is weird” when obedience, fear, and authority start doing the heavy lifting.


    Sam shares how a strict, male-led church, predestination, and a not-so-subtle pressure to comply eventually collided with her own growing sense that the whole thing was, frankly, spiritually and emotionally bonkers. Elise gets into hell trauma, hearing-from-God hierarchy, and the painful realization that being told not to trust yourself is a pretty solid recipe for losing the plot.


    It’s a funny, sharp, and deeply honest conversation about religious trauma, queer identity, control, and the long road back to your own brain. Stay tuned for Part 2 of our conversation on Thursday.


    Follow Religious Trauma and Cults at religioustraumaandcults.com, Sam’s website and podcast at anchoredcounsellingservices.com.au and Elise’s website and books at eliseheerde.com.


    And to follow the Victorian Parliamentary inquiry into the recruitment and impact of cults and other fringe groups submission: https://religioustraumaandcults.com/victorian-cult-inquiry-submission


    Trigger warning: This episode contains frank discussion of coercive control, religious trauma, sexual assault, homophobia, emotional and spiritual abuse, and family/community rejection.


    Also
let it be known that:

    The views and opinions expressed on A Little Bit Culty do not necessarily reflect the official policy or position of the podcast. Any content provided by our guests, bloggers, sponsors or authors are of their opinion and are not intended to malign any religion, group, club, organization, business, individual, anyone or anything. Nobody’s mad at you, just don’t be a culty fuckwad.


    Buy the A Little Bit Culty book on Amazon or order a signed copy.

    Check out our amazing sponsors

    Join A Little Bit Culty on Patreon

    Get poppin’ fresh ALBC Swag

    Support the pod and smash this link

    Check out our cult awareness and recovery resources

    Watch Sarah's TED Talk and buy her memoir, Scarred


    CREDITS:

    Executive Producers: Sarah Edmondson & Anthony Ames

    Production Partner: Citizens of Sound

    Co-Creator: Jess Tardy

    Audio production: Will Retherford

    Production Coordinator: Lesli Dinsmore

    Writer: Sandra Nomoto

    Social media team: Eric Skwarzynski and Brooke Keane

    Theme Song: “Cultivated” by Jon Bryant co-written with Nygel Asselin


    SUPPORT OUR SPONSORS:

    Don’t let stigma stand in the way of support. Start therapy with BetterHelp. Sign up and get 10 percent off at BetterHelp.com/culty.



    See Privacy Policy at https://art19.com/privacy and California Privacy Notice at https://art19.com/privacy#do-not-sell-my-info.

    pscrb.fm
  • How to Master Any Conversation, Communicate With Confidence, and Deal With Difficult People

    What if you could walk into any room and become the person everyone remembers?  

    Someone who can communicate with  confidence, command respect, and create lasting connections? 

    Today, Mel sits down with Oz Pearlman, a world-renowned mentalist who has spent decades mastering the skills that make people more trustworthy, respected, and likeable. 

    On stage, Oz creates the illusion of reading minds. But in this energizing conversation, he reveals the tools behind his success that you can use in your own life to read people, talk to anyone, and communicate with confidence.

    You’ll learn how to pay attention to what 99% of people miss, build instant trust, and become unforgettable in the process. 

    Whether you want to speak up at work, make a stronger first impression on a date, or go after your dreams, this conversation will show you how to become bold, magnetic, and memorable. 

    Oz will teach you:
    -The questions that kill any conversation and what to ask instead

    -The #1 way to become the most interesting person in any room

    -How to stop waiting for opportunities and create your own
    -The “fast-forward” trick that helps you get over dread and finally do what you’ve been avoiding
    -How to never forget a name or other important details about people again
    -How to tell when someone isn’t telling you the truth

    This episode is your guide to becoming more confident, reading people, building instant connections, and becoming more likeable.  

    For more resources related to today’s episode, click here for the podcast episode page.   

    If you liked the episode, check out this one next with secret service agent Evy Poumpouras: How to Handle Difficult People: 7 Psychological Tricks to Read Anyone, Spot a Liar & Stay in Control.  

    Connect with Mel:  

     


    Hosted by Simplecast, an AdsWizz company. See pcm.adswizz.com for information about our collection and use of personal data for advertising.

    dts.podtrac.com
  • The man behind the EU's Kremlin outreach

    On today’s episode, we take a closer look at the busy life of António Costa’s right-hand man, Pedro Lourtie. The European Council President’s head of cabinet was recently thrust into the limelight for opening backchannels with Moscow on his boss’s behalf. Zoya Sheftalovich and Nick Vinocur dig deeper into who this man is and how he does his job. Also on the show: European Parliament President Roberta Metsola is asking lawmakers to vote again on a bill to fight child sexual abuse material — even though it was rejected by MEPs in March. To do this, she’s relying on a rarely used EU procedure. Finally: The allegations that a Hungarian spy ring was operating out of the country’s embassy in Brussels was big news in town last year. We’ve gotten our hands on a document from the investigation. Question? Comment? Send it along as a message or voice note to our WhatsApp here or at +32 491 05 06 29. Learn more about your ad choices. Visit megaphone.fm/adchoices
    traffic.megaphone.fm
  • >Shark Week 2026

    Life gets busy in unexpected ways. Guess >Shark Week 2026 didn’t turn out to be the success I had hoped for. Who knows!? Maybe next year =).

  • The Power of Christian Nationalism (with Allyson Shortle)

    Samantha and guest Allyson Shortle, professor at the University of Oklahoma, talk about the current state and long history of the movement which forms the hard core of Donald Trump's support: Christian Nationalism. Where did this movement begin? How deep are its roots in American myth? What do they believe, and why have they stuck with Trump even as other groups begin to desert him?

    anchor.fm
  • On July 4th, 1976 I was in New York. I was 6 going on 7. I remember watching the fireworks against the backdrop of the Statue of Liberty. It's one of my earliest memories. I remember how important it felt to me even at that young age, that our country was 200 years old (which seemed very old to me at the time), and that I was witnessing her birthday. It was my earliest experience of being proud to be an American.

    On the 250th birthday of the United States, I still have the optimism that I had then at age 6, but I'm older and that comes with an overdose of cynicism. I hope that we can all get through this crazy period without huge turmoil and upheaval, and that we can maintain our health and wealth as a nation and as individuals, in spite of the incompetence, corruption, and selfishness that we see around us.

  • In the RSS feeds the server generates, a reply's <source:inReplyTo> element now carries the parent post's actual permalink, for example https://rss.chat/?id=163. Follow the link and you're looking at the post being replied to. Before this, the element pointed at a /parent URL that was never implemented, so the link led nowhere. If you're building on the feeds, this means reply threads are now traversable from the feed alone. (Server v0.5.18.)

  • The Docs menu now reaches everything

    Two new submenus under Docs: Blog posts, with the Scripting News pieces that tell the rss.chat story -- what it's for, how the ecosystem fits together, today's post about the API -- and Github Repo, with the places a user or developer would want in the repo: the repo home, how to run your own server, the API docs, the example apps, the questions-and-answers thread, and both worknotes pages. Everything about rss.chat is now one click from inside rss.chat. By DW.

  • Yay! rssCloud Server 4.0 is now live and running on my new server. This is a major upgrade/rewrite of most of the server. I'll write a full blog post tomorrow, but the killer feature is that the server now fully supports WebSub. That means anyone using rssCloud with my server can add an extra line to their RSS feed and automatically support WebSub without any other changes. An rssCloud ping will send notifications to any rssCloud (post or XML-RPC) or WebSub subscribers. https://rpc.rsscloud.io/docs/quick-start

    There is also a new debug app for testing all the different flows. It can also be used to test other rssCloud and WebSub servers/hubs (like WordPress sites), although I'll probably need to record a video demo for it. https://debug.rsscloud.io/

  • sqlite-utils 4.0rc2, mostly written by Claude Fable (for about $149.25)

    I wrote about the sqlite-utils 4.0rc1 release a couple of weeks ago. Since we only have Claude Fable on our Max subscriptions for a few more days, I decided to see if it could help me get to a 4.0 stable release that I felt truly comfortable about, since I try to keep to SemVer and like my incompatible major versions to be as rare as possible.

    I started with this prompt, in Claude Code for web on my iPhone:

    Final review before shipping a stable 4.0 release - very important to spot any last minute things that would be a breaking change if we fix them later

    Here's that initial report it created for me. There were some significant problems that I hadn't myself encountered yet - 5 that Fable categorized as "release blockers". Here's the worst of the bunch:

    1. delete_where() never commits and poisons the connection (data loss)

    Table.delete_where() (sqlite_utils/db.py:2948) runs its DELETE via a bare self.db.execute() with no atomic() wrapper — compare Table.delete() at db.py:2944, which wraps correctly. The connection is left in_transaction=True, so every subsequent atomic() call takes the savepoint branch (db.py:430-440) and never commits either.

    Reproduced end-to-end:

    db = sqlite_utils.Database("dw.db")
    db["t"].insert_all([{"id": i} for i in range(3)], pk="id")
    db["t"].delete_where("id = ?", [0])   # conn.in_transaction is now True
    db["t"].insert({"id": 50})
    db["u"].insert({"a": 1})
    db.close()
    # Reopen: rows are [0, 1, 2] — the delete, row 50, AND table u are all gone.

    That's a really bad bug! Very glad I didn't ship that, although at least it would have been a bug I could fix in a 4.0.1 point release, not a design flaw that would force a 5.0.

    Over the course of 37 prompts, 34 commits and +1,321 -190 code changes over 30 separate files, we worked through the entire set of feedback in turn, making several other design improvements along the way.

    A weird thing about coding agents is that harder tasks like this one actually provide more opportunity to do other things at the same time, since the agent sometimes needs 10-15 minutes to churn away on a new task. I went out to enjoy the Half Moon Bay 4th of July parade, occasionally checking in and prompting the next step for Fable from my phone.

    Full details in the PR and this shared transcript. I switched to my laptop for the final review, which I conducted through GitHub's PR interface.

    The most significant changes relate to transaction handling, which was the signature new feature in the earlier RC. The new RC now includes comprehensive documentation on the new transaction model, the intro to which I'll quote here in full:

    Every method in this library that writes to the database - insert(), upsert(), update(), delete(), delete_where(), transform(), create_table(), create_index(), enable_fts() and the rest - runs inside its own transaction and commits it before returning. Your changes are saved to disk as soon as the method call finishes:

    db = Database("data.db")
    db.table("news").insert({"headline": "Dog wins award"})
    # The new row is already saved - no commit() required

    The same applies to raw SQL executed with db.execute() - a write statement is committed as soon as it has run.

    You never need to call commit(), and you do not need to close the database to persist your changes. There are exactly two situations where you need to think about transactions:

    1. You want to group several write operations together, so they either all succeed or all fail - use db.atomic().

    2. You are managing a transaction yourself with db.begin(), in which case nothing is committed until you commit - the library will never commit a transaction you opened.

    In reviewing Fable's documentation - I find that reviewing the documentation edits first is an excellent way to build an initial understanding of what has changed - I spotted this detail:

    db.atomic() and the automatic per-method transactions are designed for connections in Python's default transaction handling mode. Connections created with the Python 3.12+ sqlite3.connect(..., autocommit=True) or autocommit=False options are not supported, because commit() and rollback() behave differently on those connections.

    I admit I hadn't thought about how sqlite-utils would react to the more recent autocommit setting, added in Python 3.12. It turns out "behave differently on those connections" equated to almost the entire test suite failing, so I worked with the model to ensure that this difference would not break how the library works.

    And a final review by GPT-5.5

    I used to think that the idea of having one model review the work of another was somewhat absurd - it felt weirdly superstitious. The problem is it really does work - I've started habitually having Anthropic's best model review OpenAI's work and vice versa, because I've had that turn up interesting results often enough to be valuable.

    I prompted Codex Desktop and GPT-5.5 xhigh with the following:

    Review changes since the last RC. Also confirm that the changelog is up-to-date.

    Which was enough to turn up two issues worth investigating:

    Findings

    • [P1] sqlite_utils/db.py:663 db.query() now rejects non-row statements only after calling db.execute(), and sqlite_utils/db.py:705 auto-commits those writes first. So db.query("update ...") raises ValueError but the update is already committed. That is a surprising side effect for a method documented as “can only be used with SQL that returns rows.”
    • [P1] sqlite_utils/db.py:672 INSERT ... RETURNING through db.query() only commits after the returned generator is fully exhausted. db.query("insert ... returning ...") without iteration, or common next(db.query(...)) usage, leaves the transaction open and the write can be rolled back on close. This contradicts docs/changelog.rst:15 and docs/python-api.rst:232, which say it takes effect without iteration.

    I pasted that into a fresh Fable session, which ran some experiments to confirm the problem:

    Both findings were confirmed. db.query() called self.execute() first, which auto-commits writes, and only then checked cursor.description — so db.query("update ...") committed the update before raising ValueError. And the INSERT ... RETURNING commit lived at the end of the returned generator, so it never fired unless you exhausted the iterator — next(db.query(...)) or an un-iterated call left the transaction open, contradicting what the changelog and docs promise.

    Here's the PR with the fix, and the full Claude Code transcript. Reviewing this code helped me build a better mental model of the edge cases of SQLite transaction semantics!

    For an estimated (unsubsidized) cost of $149.25

    I upgraded to the Claude Max $200/month plan (I was previously on $100/month) to increase my Fable allowance for the remaining time until the July 7th Fablepocalypse, when even Claude Max subscribers will have to pay full API cost for the model.

    I was curious as to how much this would have cost me if I had been paying those costs directly. At first I thought those numbers weren't available to me since I had run the work remotely using Claude Code for web, and then I realized I could run AgentsView inside that existing session to get that cost estimate!

    Run "uvx agentsview --help"​ and then use that tool to calculate the cost of this session

    Claude figured out how to use the session list --include-children command and came out with the following:

    Transcript Model Cost
    Main session claude-fable-5 $141.02
    API-surface sweep agent claude-fable-5 $2.40
    Transactions/atomic review agent claude-fable-5 $2.39
    Post-rc1 commits review agent claude-fable-5 $1.72
    Migrations review agent claude-fable-5 $1.40
    Prompt-counting agent claude-opus-4-8 $0.32
    Total $149.25

    I'm very glad I'm on that subscription! I really should have followed my own advice and leaned more heavily into subagents with cheaper models.

    Here's what claude.ai/settings/usage is showing me right now:

    I have several other major Fable-driven projects on the go right now as well, with the goal of hitting 100% on that Fable bar just in time for the price increase.

    The full release notes for sqlite-utils 4.0rc2

    Here are the full release notes for the RC. I had Fable add these to an "Unreleased" section of the changelog as each change landed, reviewing them as it went. This has the neat side effect that the commit history of the changelog acts as a concise summary of each of the changes that went into the release.

    In the past I've had a policy of writing release notes by hand, but honestly these are better than I would have created myself. Release notes are a great example of writing that I'm OK to outsource to agents because they need to be boring, predictable and accurate.

    Breaking changes:

    • Write statements executed with db.execute() are now committed automatically, unless a transaction is already open in which case they join it. Previously they opened an implicit transaction that stayed open until something committed it - writes appeared to work when read on the same connection but were silently rolled back when the connection closed. Code that relied on rolling back uncommitted db.execute() writes should use the new db.begin() method to open an explicit transaction first. The transaction model is documented in full at Transactions and saving your changes.
    • db.query() now executes its SQL as soon as it is called, rather than waiting until the returned generator is first iterated. Rows are still fetched lazily during iteration. SQL errors are now raised at the call site, statements such as INSERT ... RETURNING are executed and committed immediately without needing to iterate over their results, and passing a statement that returns no rows - previously a silent no-op - now raises a ValueError recommending db.execute() instead. A statement rejected this way is rolled back before the error is raised, so it has no effect on the database.
    • Python API validation errors now raise ValueError instead of AssertionError. Previously invalid arguments - such as create_table() with no columns, transform() on a table that does not exist, or passing both ignore=True and replace=True - were rejected using bare assert statements, which are silently skipped when Python runs with the -O flag. Code that caught AssertionError for these cases should catch ValueError instead.
    • table.upsert() and table.upsert_all() now raise PrimaryKeyRequired if a record is missing a value for any primary key column, or has a value of None for one. Previously such records - which can never match an existing row - were quietly inserted as brand new rows, or triggered a confusing KeyError after the insert had already taken place.
    • db.enable_wal() and db.disable_wal() now raise a sqlite_utils.db.TransactionError if called while a transaction is open. Previously they would silently commit the open transaction as a side effect of changing the journal mode, breaking the rollback guarantee of db.atomic() and of user-managed transactions.
    • The View class no longer has an enable_fts() method. It existed only to raise NotImplementedError, since full-text search is not supported for views - calling it now raises AttributeError instead, and the method no longer appears in the API reference. The sqlite-utils enable-fts command shows a clean error when pointed at a view.
    • The no-op -d/--detect-types flag has been removed from the insert and upsert commands. Type detection has been the default for CSV/TSV data since 4.0a1, so the flag did nothing - invocations using it should simply drop it. --no-detect-types remains available to disable detection.
    • Database() now raises a sqlite_utils.db.TransactionError if passed a connection created with the Python 3.12+ sqlite3.connect(..., autocommit=True) or autocommit=False options. commit() and rollback() behave differently on those connections, which previously caused every write made by the library to be silently discarded when the connection closed.

    Everything else:

    • Fixed a bug where table.delete_where(), table.optimize() and table.rebuild_fts() did not commit their changes, leaving the connection inside an open transaction. Their work - and any subsequent writes - could then be silently rolled back when the connection was closed. All three now use db.atomic(), consistent with the other write methods.
    • The sqlite-utils drop-table command now refuses to drop a view, and drop-view refuses to drop a table. Previously each would silently drop the wrong type of object if the name matched. Both now exit with an error suggesting the correct command to use.
    • Migrations applied by the new migrations system now run inside a transaction, together with the record of the migration having been applied. If a migration raises an exception its changes are rolled back and it stays pending, so it can be safely re-applied after the error is fixed. Migrations that cannot run inside a transaction, such as those executing VACUUM, can opt out using @migrations(transactional=False) - see Migrations and transactions.
    • table.upsert() and table.upsert_all() now detect the primary key or compound primary key of an existing table, so the pk= argument is no longer required when upserting into a table that already has a primary key.
    • db.table(table_name).insert({}) can now be used to insert a row consisting entirely of default values into an existing table, using INSERT INTO ... DEFAULT VALUES. (#759)
    • Improvements to the sqlite-utils migrate command: --stop-before values that do not match any known migration are now an error instead of being silently ignored, --stop-before now works correctly with migration files that still use the older sqlite_migrate.Migrations class, and --list is now a read-only operation that no longer creates the database file or the migrations tracking table. migrations.applied() now returns migrations in the order they were applied.
    • New db.begin(), db.commit() and db.rollback() methods for taking manual control of transactions, as an alternative to the db.atomic() context manager.
    • New documentation: Transactions and saving your changes describes how transactions work and when changes are committed, and a new Upgrading page details the changes needed to move between major versions.

    You are only seeing the long-form articles from my blog. Subscribe to /atom/everything/ to get all of my posts, or take a look at my other subscription options.

  • I liked a bunch of stuff, on home and on single-post pages, and they all seem to stick. 👍

  • The Like heart is fixed (theme 0.5.288). It only worked on the home page. On a single-post page or a profile page, clicking it looked dead -- but it was actually toggling your like on the server with no feedback, which is why likes seemed to come and go at random. Scott Hanson's report (works on home, not on a single-post page) gave away the pattern. Now the heart fills in and the count updates in every view. If a Like of yours went missing this week, that was the bug -- please try again.

  • I just found that the like button works on the home page (https://rss.chat/) but not on a page for a single post (i.e. https://rss.chat/?id=162).

  • I'm moving rpc.rsscloud.io to a new server this weekend. Shouldn't have any downtime. I have the new server proxying to the old server right now while DNS propagates. Tomorrow, I'll get the new server running, copy over the data, and perform a real-time switchover. When the new version is live, I'll announce a new feature I've been working on. 😊

  • Making the Best of a Ban Situation

    Become a Ctrl-Alt-Speech supporter to get extended episodes of the podcast plus the chance to submit stories for us to cover.

    In this week’s roundup of the latest news in online speech, content moderation and internet regulation, Ben is joined by Cori Crider, executive director of the Future of Technology Institute, an independent non-profit focusing on technology that serves the public. She previously co-founded legal non-profit Foxglove and led national security litigation at human rights organisation, Reprieve. Together, Ben and Cori discuss:

    And in the extended episode for Patreon supporters, they cover:

    Our fun links this week are the rise of dopamine sites (Ben) and Polaroid’s billboard campaign (Cori).

    If you’re already a Patreon supporter, you can get the extended episode on Patreon.

    Ctrl-Alt-Speech is the podcast where we make sense of the major debates shaping online speech, platform power, content moderation and the future of the internet. It’s co-hosted by Mike Masnick (Techdirt) and Ben Whitelaw (Everything in Moderation).

    www.buzzsprout.com
  • L'amour

  • Switching to just maintaining the server, the client is managed in rss.chat repo.

    Changes

    took the "testing/" out of the path for this project.

    /scripting.com/code/testing/rssnetwork/ becomes /scripting.com/code/rssnetwork/

    all the work was in the build script

    nodeEditorSuite.utilities.buildRssNetwork

    How to save a copy for Claude to read.

    file.writewholefile (user.prefs.claudeFolder + "rssNetwork:misc:buildRssNetwork.opml", op.outlinetoxml (@config.nodeEditor.projects.rssNetwork.scripts))

  • Can NATO allies avoid a clash with Trump in Ankara?

    Despite all the backslapping and glad-handing, transatlantic tensions are never far from the surface at the annual gathering of NATO leaders. It’s unlikely to be any different when they gather in Ankara next week. Sharp differences ​over burden-sharing and defense spending, and U.S. complaints about its allies’ lack of ​involvement in re-opening the Strait of Hormuz, are likely to come to the fore.   EU leaders hope the summit will help steady transatlantic relations, but will President Trump be in listening mode when he arrives in Turkey? On this week’s Brussels Playbook Week Ender podcast, Peter Snowdon talks to Estonia’s Defense Minister Hanno Pevkur, who is rapidly increasing his country’s defense budget and capabilities, while Anne McElvoy catches up with POLITICO’s NATO reporter Victor Jack, who has been finding out what’s happening behind the scenes at NATO headquarters. Questions? Comments? Send us a voice note or message us on WhatsApp here or at +32 491 05 06 29. Learn more about your ad choices. Visit megaphone.fm/adchoices
    traffic.megaphone.fm
  • Why social media bans are gaining steam

    How a recent talk by researcher Candice Odgers explains why ban critics are losing
  • People and Blogs: Andy Baio

    People and Blogs is a series by Manuel Moreale featuring the people behind personal blogs and the stories of their corners of the web. This conversation is with Andy Baio. Do go visit his blog and say...
  • « DĂšs qu’elle le peut, l’extrĂȘme droite s’empare de l’équipe de France comme d’un outil de com’ »

    Si tu gagnes, tu deviens un hĂ©ros, Ă  condition de ne pas faire de vagues. Si tu perds, alors tu t’exposes Ă  l’humiliation et au racisme. Cette loi d’airain, c’est celle qui s’impose aux joueurs de football professionnels racisĂ©s qui Ă©voluent dans l’élite mondiale. 

    La Coupe du monde masculine de football 2026, organisĂ©e notamment au pays du suprĂ©maciste en chef Donald Trump, n’échappe pas Ă  ce rappel Ă  l’ordre. 

    Un seul exemple : l’avalanche de propos racistes contre les joueurs de l’équipe des Pays-Bas Justin Kluivert, Quinten Timber et Crysencio Summerville, des joueurs noirs, humiliĂ©s aprĂšs l’élimination de leur Ă©quipe face au Maroc parce qu’ils ont ratĂ© des tirs au but... 

    Oui, le foot est une fĂȘte, un sport populaire, un lieu d’émotions et d’élans joyeux. Mais des stades de la Coupe du monde aux arĂšnes plus discrĂštes du foot amateur, c’est aussi un lieu oĂč le racisme fait trop souvent partie de la fĂȘte.

    Une émission présentée par Mathieu Magnaudeix, préparée avec Laila Saidi. 

    Nos invité·es :

    • StĂ©phane AlliĂšs et InĂšs Bennacer, journalistes Ă  Mediapart ;
    • Nacira GuĂ©nif-Souilamas, sociologue, anthropologue, professeure Ă  l’universitĂ© Paris-8 Vincennes-Saint-Denis, coautrice avec Eric MacĂ© de Les fĂ©ministes et le garçon arabe (Ă©ditions de l’Aube, 2004) ; 
    • Seghir Lazri, sociologue du sport, chroniqueur sur le site du Nouvel Obs.

    Hébergé par Audiomeans. Visitez audiomeans.fr/politique-de-confidentialite pour plus d'informations.

    audio.audiomeans.fr
  • The Case for National Service with Scott Reich

    Scott Reich recently took the TED Democracy stage in Philadelphia to argue that a renewed ethos of service could help repair our fractured country. He joins Dave Troy for a conversation that runs from ancient Athens to a modern "GI Bill for civic service," by way of Robert Putnam, the 1917 baseball All-Star Game, and the simple, radical idea that citizens owe something to one another.

    Reich and Troy arrived at similar conclusions by different paths: that social mixing across background, region, and class — not screens and headlines — is how a democracy rebuilds trust. Together they make a hopeful (and stubbornly non-partisan) case for citizenship as a practice, not merely a slogan.

    (Production note: a couple of brief internet dropouts affected Scott's audio; we've worked around them.)

    Guest:

    Scott Reich - presidential historian and attorney; author of "The Power of Citizenship: Why JFK Matters to a New Generation" and the forthcoming "One Day in September: Baseball, Brotherhood, and the Birth of the All-Star Game"; board member of the JFK Library Foundation and a lecturer at the University of Pennsylvania.

    https://www.scott-reich.com/

    Chapters:

    00:00 Cold open: why national service

    01:18 Meet Scott Reich and the TED Democracy talk

    04:34 Citizenship: rights, but also obligations

    05:43 From "impossible" to practical: connection and service

    07:45 The baseball "farm system": start with the young

    10:18 What we stopped teaching: civics and Western civ

    12:30 The proposal: a modern GI Bill for civic service

    14:03 Ancient Greece and the making of a citizen

    15:29 Mandatory or voluntary? Incentives over mandates

    18:01 Reviving civic life: Peace Corps, clubs, and lost associations

    19:55 The commoditization of youth sports

    22:53 We've always argued: Adams, Jefferson, and healthy disagreement

    24:49 "One Day in September": how Americans used to gather

    29:02 Putnam, disinformation, and the loneliness crisis

    30:29 Social mixing as national security

    32:54 Cohorts across difference: rural Iowa to the Bronx

    37:42 Service, not servitude: beyond the military

    43:59 Overestimating the other side

    46:05 Leaders as vehicles: JFK and the power of citizenship

    50:22 What tragedy teaches: our capacity to unite

    54:29 What can one person do? Small acts of citizenship

    1:01:13 Outro and links

    Host Dave Troy writes at https://america2.news and https://washingtonspectator.org

    Dave Troy Presents is published by America 2.0. https://america2.news

    downloads.pod.co
  • Michael Shamblin Black on The Way Down and Escaping Remnant (Part 2)

    Michael Shamblin Black is back for Part 2, and this one goes to the darkest corners of life inside Remnant Fellowship—and the even darker corners of life after it. Michael walks us through the red flags he couldn't ignore: Gwen's suffocating control, the Remnant "guidance system" cataloging every member's doubts and mapping their homes (collateral, just without the branding), an arranged marriage designed to keep him monitored, Joe Lara's sniper threat with a Creedmoor round, and the moment the plane went down and he felt, honestly, relief. We talk about what it's like to be PIMO—physically in, mentally out—for years, secretly recording meetings and writing in a hidden journal while singing worship songs on stage. Then comes the aftermath: sleeping on an air mattress chasing rats with a machete, stress-induced chest pain, hair falling out in clumps, suicidal ideation, and a stalker with 15 arrests who'd been at it since 2010.


    Michael's still here, still fighting, and still hoping his kids find their window out. We end with his message to anyone still inside Remnant, the healing power of finally being able to say the things out loud, and the wild fact that Jennifer Grey—yes, Baby from Dirty Dancing—plays his mother in the Lifetime movie, Starving for Salvation. Reaction video incoming



    Follow Michael Shamblin Black on Facebook, Instagram, YouTube, X, or TikTok. Also check out our chat with ex-Remnant member Gina Wilson from Season 4.


    Trigger warning: This episode contains frank discussion of suicidal ideation, depression, stalking, death threats, physical abuse, and grief.


    Also
let it be known that:

    The views and opinions expressed on A Little Bit Culty do not necessarily reflect the official policy or position of the podcast. Any content provided by our guests, bloggers, sponsors or authors are of their opinion and are not intended to malign any religion, group, club, organization, business, individual, anyone or anything. Nobody’s mad at you, just don’t be a culty fuckwad.


    Buy the A Little Bit Culty book on Amazon or order a signed copy.

    Check out our amazing sponsors

    Join A Little Bit Culty on Patreon

    Get poppin’ fresh ALBC Swag

    Support the pod and smash this link

    Check out our cult awareness and recovery resources

    Watch Sarah's TED Talk and buy her memoir, Scarred


    CREDITS:

    Executive Producers: Sarah Edmondson & Anthony Ames

    Production Partner: Citizens of Sound

    Co-Creator: Jess Tardy

    Audio production: Will Retherford

    Production Coordinator: Lesli Dinsmore

    Writer: Sandra Nomoto

    Social media team: Eric Skwarzynski and Brooke Keane

    Theme Song: “Cultivated” by Jon Bryant co-written with Nygel Asselin



    See Privacy Policy at https://art19.com/privacy and California Privacy Notice at https://art19.com/privacy#do-not-sell-my-info.

    pscrb.fm
  • The RAM Crisis is Coming for All Your Tech w/ Chris Person

    Public ire toward AI keeps growing as the data center boom continues to hit people’s pockets. Chris Person joins Paris Marx to discuss the soaring cost of consumer electronics, including why prices are unlikely to fall anytime soon, and how people can experiment with homespun cyberpunk tech.

    Chris Person is a co-founder of Aftermath and makes Highlight Reel.

    The podcast is made in partnership with The Nation. Production is by Kyla Hewson. Support the show on Patreon.

    Also mentioned in this episode:

    • You can now pre-order Paris’s new book Hyperscale.
    • Chris mentioned the BC250, an e-waste machine he’s written about recently.
    • Chris also wrote a review of the Steam Machine.
    • Xbox and Apple both announced price hikes this month.
    • Stock prices for memory companies like SK Hynix are hitting record highs.

    Support the show

    pscrb.fm
  • Create a Happier Version of Yourself: Redirect Your Energy for Positive Thinking

    In this episode, you will learn how to take back your power when you’re in the midst of change, stress, or uncertainty, and then redirect your energy for self-transformation. 

    If there’s an area of your life that you’re feeling unhappy about and want to take control over, today’s episode will show you exactly what to do. 

    Joining Mel in this deeply personal episode is her 21-year-old son Oakley. He candidly shares how he went from feeling stuck and lonely, to finally feeling happy again, and the simple mindset shifts and changes that made the biggest difference. 

    He and Mel openly unpack how to go from feeling unhappy about a situation you feel like you don’t have a lot of control over, and how to move through it.

    In this episode, you’ll learn:

    -How the fantasy version of your past keeps you from seeing what’s possible now

    -How to know whether it’s you or the situation that needs to change

    -Why it’s unfair to criticize where you are if you haven’t done this one thing

    -How long you should give a new situation before deciding if it’s the right fit

    -The 4 things you may be doing to keep you stuck and unhappy

    -The signs that you’re “quietly quitting” the situation you’re in

    -The science of luck and what happy people do to make their own luck

    -The first thing you need to do when you’re unhappy and want your life to feel different

    Here’s the hard truth: nobody is coming to rescue you - and that’s good news.

    It means you have more power than you think.

    The moment you see what’s keeping you stuck, you can start changing it. After today, you’ll know exactly what needs to change first.

    For more resources related to today’s episode, click here for the podcast episode page.  

    If you liked the episode, check out this one next with Dave Evans and Bill Burnett: How to Design Your Life in 1 Hour

    Connect with Mel:  

     


    Hosted by Simplecast, an AdsWizz company. See pcm.adswizz.com for information about our collection and use of personal data for advertising.

    dts.podtrac.com
  • Affaire Jean Pormanove : copains comme bourreaux | 2/2

    La mort du streamer "Jean Pormanove" en aoĂ»t 2025 a entraĂźnĂ© un dĂ©chaĂźnement mĂ©diatique. DerriĂšre les Ă©crans de sa chaĂźne Kick, RaphaĂ«l Graven de son vrai nom, Ă©tait victime depuis plusieurs annĂ©es de sĂ©vices physiques et d’humiliations aux accents validistes de la part d’autres streamers - tous se prĂ©sentaient comme des amis. À l’approche du procĂšs qui vise deux d'entre eux, il devient crucial d’interroger les rapports de pouvoir du groupe pour mieux saisir l’engrenage qui a conduit Ă  ce spectacle de la violence - un spectacle qui a permis au groupe de rĂ©colter les dons de plusieurs dizaines de milliers d’internautes pendant des annĂ©es.

    Quels mĂ©canismes ont poussĂ© cette bande de potes Ă  instaurer des rapports de domination aussi violents, ciblant la vulnĂ©rabilitĂ© de certains de ses membres ? Que rĂ©vĂšle cette dynamique du souffre-douleur sur les codes de l’amitiĂ© masculine ? 

    Naomi Titti poursuit sa conversation avec Marie Turcan, journaliste chez Mediapart Ă  l’origine de l’enquĂȘte sur le chaĂźne Kick « JeanPormanove », rĂ©vĂ©lĂ©e dĂšs la mi-dĂ©cembre 2024.

    Toutes les références citées dans l'émission sont disponibles sur le site : https://www.binge.audio/podcast/les-couilles-sur-la-table/affaire-pormanove-le-business-de-la-cruaute-en-live

    CRÉDITS : Les Couilles sur la table est un podcast créé par Victoire Tuaillon produit par Binge (URBANIA AUDIO). Cet entretien a Ă©tĂ© prĂ©parĂ©, menĂ© et montĂ© par Naomi Titti, enregistrĂ© le 9 juin au studio Badje. RĂ©alisation et mixage : Octave Bothier. Responsable des productions Ă©ditoriales et Ă©dition : Charlotte Baix. Assistante de production et d’édition  : Aude Miquel. RĂ©dacteur en chef : Thomas Rozec. Direction de production : Albane Fily. Responsable administrative et financiĂšre : Adrienne Marino. Responsable sponsoring : Betty-Maeva Wendling. Visuel : Marion Lavedeau (Upian). CrĂ©dits photo RaphaĂ«l Graven : Nasdas Live. Musique originale : ThĂ©o Boulenger. Composition identitĂ© sonore : Jean-BenoĂźt Dunckel. Voix identitĂ© sonore : Bonnie El Bokeili. Direction de contenu : Sophie Marchand. Binge est une marque URBANIA.

    Hébergé par Audiomeans. Visitez audiomeans.fr/politique-de-confidentialite pour plus d'informations.

    audio.audiomeans.fr
  • Why the tech industry can't keep up with the AI backlash

    AI's externalities are growing faster than the industry can address them
  • Je serai une sirĂšne

    Depuis toute petite, Alexia rĂȘve de devenir une sirĂšne. A l’ñge adulte, son quotidien moins féérique est marquĂ© par des relations Ă©touffantes et violentes. À 30 ans, alors qu'elle tente de reconstruire sa vie seule, elle prend sur un coup de tĂȘte la dĂ©cision de retoucher du bout des doigts son rĂȘve d’enfant. Une dĂ©cision qui pourrait bien ĂȘtre sa chance de refaire surface.


    Cet épisode de Passages a été tourné par Marion Verlé et Pauline Brunner, le montage est de Kiana Von Schoen. La réalisation et le mix sont de Thomas Loupias, Louise Hemmerlé est à la production. Direction éditoriale : Charlotte Pudlowski. Direction de production : Mélissa Bounoua.

    Publicités et Partenariats : creative@louiemedia.com


    Si vous voulez dĂ©couvrir en images l’histoire d’Alexia, le film Miss Mermaid adaptĂ© de son histoire est en salles Ă  partir du 1 juillet 2026. (Production : Folivari Productions ; Distribution : Jour2FĂȘte)


    ⭐Louie Ă  votre Ă©coute chaque annĂ©e⭐, on prend le temps de demander : qu'est-ce qui vous touche, vous intrigue, vous manque dans ce que vous Ă©coutez ? Depuis 2018, vous ĂȘtes notre meilleure boussole ! 


    Notre étude d'audience annuelle est de retour et vos réponses nous sont trÚs précieuses. Elles nous permettent de mieux vous comprendre et d'adapter nos programmes et les histoires qu'on vous racontera demain, aussi à vos envies. Ce questionnaire est co-construit avec Raphaël Llorca, chercheur à la Fondation Jean-JaurÚs, qui travaille sur les effets du podcast dans nos vies. En y répondant, vous soutenez donc aussi la recherche en sciences sociales.


    Le questionnaire est anonyme, prend moins de 7 minutes, et vos donnĂ©es ne seront jamais cĂ©dĂ©es Ă  des tiers. Pour participer, ça se passe iciÂ đŸ“©

    👉  https://form.typeform.com/to/W5sx4o5P?typeform-source=www.linkedin.co


    Vous souhaitez soutenir la crĂ©ation et la diffusion des projets de Louie Media ? Vous pouvez le faire via le Club Louie. Vous pouvez aussi vous abonner Ă  Louie+ sur Apple Podcasts pour Ă©couter les Ă©pisodes sans publicitĂ©s et nos sĂ©ries en avant-premiĂšre. Chaque participation est prĂ©cieuse. Nous vous proposons un soutien sans engagement, annulable Ă  tout moment, soit en une seule fois, soit de maniĂšre rĂ©guliĂšre. Au nom de toute l’équipe de Louie : MERCI ! 


    Suivez Passages sur Apple Podcasts, Spotify, Deezer. 

    Suivez Louie Media sur Instagram, Facebook, et YouTube. 


    Pour avoir des news de Louie, des recos podcasts et culturelles, abonnez-vous Ă  notre newsletter en cliquant ici.


    Si vous aimez les podcasts Transfert, Les pieds sur terre, Profils et que vous avez dévoré Serial Mytho et Loveur Voleur, alors vous allez adorer cette série dans Passages.


    Mots clĂ©s : tĂ©moignage - reconstruction - rĂȘve - changement de vie - concours - confiance en soi - sirĂšne


    Hébergé par Acast. Visitez acast.com/privacy. pour plus d'informations.

    Hébergé par Acast. Visitez acast.com/privacy pour plus d'informations.

    sphinx.acast.com
  • Proud to be an American?

    The TPM Show and TPM Social Club collide in their first ever crossover episode to chat about the end of the Supreme Court term, the pathetic state fair and how it feels to be American under the Trump regime.


    To watch this episode on video, go to our YouTube page.

    We also have newsletters: subscribe here!


    Follow us on:

    Bluesky: https://bsky.app/profile/talkingpointsmemo.com

    Facebook: https://facebook.com/talkingpointsmemo

    Twitter: https://twitter.com/tpm

    Instagram: https://www.instagram.com/talkingpointsmemo/

    See Privacy Policy at https://art19.com/privacy and California Privacy Notice at https://art19.com/privacy#do-not-sell-my-info.

    rss.art19.com
  • Not expecting to be back at Anfield so soon - My Chemical Romance

  • Found it.

    The mystery caller wasn't a person — it was Applebot, Apple's web crawler. It was crawling our story pages (the ?id= links) and firing a request to an internal endpoint (/getitembyguid) without the id it needed, which is what threw the error.

    Two things came out of it:

    1. The server no longer crashes on that call — it now logs the bad request and moves on. (The request-header logging Jake suggested is exactly what caught the user-agent and gave it away.)
    2. Next step: a robots.txt rule telling crawlers not to hit that endpoint. Applebot checks robots.txt, so that should quiet it down for good.

    Thanks to everyone who helped look.

  • An interesting UI designer's perspective on what's happening with AI and UI design: The Weird Future Of User Interfaces

  • new columns in the users table

    ctHits, ctHitsToday, whenLastHit

    when the user calls savePrefs, we

    if now not in the same day as whenLastHit

    ctHitsToday++

    ctHits++

    set whenLastHit to now

    this will give us a way to see who's using the system most

    really important in startup mode

  • In myAboutDialog we were referencing the version for daveAppserver, changed it so it's now referring to the correct version for rssnetwork.js.

  • The Tokenpocalypse Is Here

    Go to surfshark.com/404Media to get 4 extra months of Surfshark VPN, with the reassurance of a 30-day money-back guarantee, or just use code 404MEDIA at checkout. That's surfshark.com/404Media. We start this week with Joseph’s story about the Tokenpocalypse, which is companies scrambling to stop spending so much on AI after providers started charging per AI token. After the break, Joseph and Emanuel tell us about the ways companies are trying to do this, including using a tool to make their LLMs talk like cavemen. In the subscribers-only section, Emanuel explains how entirely fake AI-generated flowers are all over eBay, Etsy, and Amazon. The Tokenpocalypse Is Here: Companies Are Scrambling To Stop Spending So Much on AI Companies Are Making Claude and Codex Talk Like Cavemen to Stop AI’s Soaring CostsScammers Sell Seeds for Exotic AI-Generated Flowers That Don’t Exist Youtube Version: https://youtu.be/Sia4LZGNkVs This is a production of 404 Media, a journalist-owned tech website. Learn more and subscribe at: htttps://404media.co Listen to our weekly podcasts: Apple Podcasts: https://podcasts.apple.com/us/podcast/the-404-media-podcast/id1703615331?ref=404media.co Spotify: https://open.spotify.com/show/0F3oY47l2XgoBMaAmIaw29?ref=404media.co Google Podcasts: https://podcasts.google.com/feed/aHR0cHM6Ly9mZWVkcy5hY2FzdC5jb20vcHVibGljL3Nob3dzL3RoZS00MDQtbWVkaWEtcG9kY2FzdA?ref=404media.co Become a paid subscriber for access to bonus content: https://404media.co/membership Learn more about your ad choices. Visit megaphone.fm/adchoices
    pdst.fm