• #474 Astral to join OpenAI
    Mar 23 2026
    Topics covered in this episode: Starlette 1.0.0Astral to join OpenAIuv auditFire and forget (or never) with Python’s asyncioExtrasJokeWatch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python TrainingThe Complete pytest CoursePatreon Supporters Connect with the hostsMichael: @mkennedy@fosstodon.org / @mkennedy.codes (bsky)Brian: @brianokken@fosstodon.org / @brianokken.bsky.socialShow: @pythonbytes@fosstodon.org / @pythonbytes.fm (bsky) Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Monday at 11am PT. Older video versions available there too. Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it. Brian #1: Starlette 1.0.0 As a reminder, Starlette is the foundation for FastAPIStarlette 1.0 is here! - fun blog post from Marcello Trylesinski“The changes in 1.0 were limited to removing old deprecated code that had been on the way out for years, along with a few bug fixes. From now on we'll follow SemVer strictly.”Fun comment in the “What’s next?” section: “Oh, and Sebastián, Starlette is now out of your way to release FastAPI 1.0. 😉”Related: Experimenting with Starlette 1.0 with Claude skills Simon Willisonexample of the new lifespan mechanism, very pytest fixture-like @contextlib.asynccontextmanager async def lifespan(app): async with some_async_resource(): print("Run at startup!") yield print("Run on shutdown!") app = Starlette( routes=routes, lifespan=lifespan ) Michael #2: Astral to join OpenAI via John Hagen, thanksAstral has agreed to join OpenAI as part of the Codex teamCongrats Charlie and teamSeems like **Ruff** and uv play an important roll.Perhaps ty holds the most value to directly boost Codex (understanding codebases for the AI)All that said, these were open source so there is way more to the motivations than just using the tools.After joining the Codex team, we'll continue building our open source tools.Simon Willison has thoughtsdiscuss.python.org also has thoughtsThe Ars Technica article has interesting comments tooIt’s probably the death pyx Simon points out “pyx is notably absent from both the Astral and OpenAI announcement posts.” Brian #3: uv audit Submitted by Owen LemontPieces of uv audit have been trickling in. uv 0.10.12 exposes it to the cli helpHere’s the roadmap for uv auditI tried it out on a package and found a security issue with a dependency not of the project, but of the testing dependenciesbut only if using Python < 3.10, even though I’m using 3.14Kinda coolLooks like it generates a uv.lock file, which includes dependencies for all project supported versions of Python and systems, which is a very thorough way to check for vulnerabilities.But also, maybe some pointers on how to fix the problem would be good. No --fix yet. Michael #4: Fire and forget (or never) with Python’s asyncio Python’s asyncio.create_task() can silently garbage collect your fire-and-forget tasks starting in Python 3.12Formerly fine async code can now stop working, so heads upThe fix? Use a set to upgrade to a strong ref and a callback to remove itIs there a chance of task-based memory leaks? Yeah, maybe. Extras Brian: Nobody Gets Promoted for Simplicity - interesting read and unfortunate truth in too many places.pytest-check - All built-in check helper functions in this list also accept an optional xfail reason. example: check.equal(actual, expected, xfail="known issue #123")Allows some checks to still cause a failure to happen because you no longer have to mark the whole test as xfail Michael:TurboAPI - FastAPI + Pydantic compatible framework in Zig (see follow up)Pyramid 2.1 is out (yes really! :) first release in 3 years)Vivaldi 7.9 adds minimalist hide mode.Migrated pythonbytes.fm and talkpython.fm to Raw+DC design patternRobyn + Chameleon package Joke: We now have translation services
    Show more Show less
    46 mins
  • #473 A clean room rewrite?
    Mar 16 2026
    Topics covered in this episode: chardet ,AI, and licensingrefined-githubpgdog: PostgreSQL connection pooler, load balancer and database sharderAgentic Engineering PatternsExtrasJokeWatch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python TrainingThe Complete pytest CoursePatreon Supporters Connect with the hosts Michael: @mkennedy@fosstodon.org / @mkennedy.codes (bsky)Brian: @brianokken@fosstodon.org / @brianokken.bsky.socialShow: @pythonbytes@fosstodon.org / @pythonbytes.fm (bsky) Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Monday at 10am PT. Older video versions available there too. Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it. Michael #1: chardet ,AI, and licensing Thanks Ian LessingWow, where to start?A bit of legal precedence research.Chardet dispute shows how AI will kill software licensing, argues Bruce Perens on the RegisterAlso see this GitHub issue.Dan Blanchard, maintainer of a Python character encoding detection library called chardet, released a new version of the library under a new software license. (LGPL → MIT)Dan is allowed to make this change because v7 is a complete “clean room” rewrite using AIBTW, v7 is WAY better: The result is a 48x increase in detection speed for a project that lives in the hot loops of many projects. That will lead to noticeable performance increases for literally millions of users (the package gets ~130M downloads per month).It paves a path towards inclusion in the standard library (assuming they don’t institute policies against using AI tools).Thread-safe detect() and detect_all() with no measurable overhead; scales on free-threaded Python 3.13t+An individual claiming to be Mark Pilgrim, the original creator of the library, opened an issue in the project's GitHub repo arguing that Blanchard had no right to change the software license, citing the LPGL requirement that the license remain unchanged.A 'complete rewrite' is irrelevant, since they had ample exposure to the originally licensed code (i.e. this is not a 'clean room' implementation).Blanchard disagreed, citing how version 7.0.0 and 6.0.0 compare when subjected to JPlag, a library for detecting plagiarism.Blanchard told The Register he had wanted to get chardet added to the Python standard library for more than a decade since it’s a core dependency to most Python projects. Brian #2: refined-github Suggested by Matthias SchöttleA browser plugin that improves the GitHub experienceA sampling Adds a build/CI status icon next to the repo’s name.Adds a link back to the PR that ran the workflow.Enables tab and shift tab for indentation in comment fields.Auto-resizes comment fields to fit their content and no longer show scroll bars.Highlights the most useful comment in issues.Changes the default sort order of issues/PRs to Recently updated.But really, it’s a huge list of improvements Michael #3: pgdog: PostgreSQL connection pooler, load balancer and database sharder PgDog is a proxy for scaling PostgreSQL.It supports connection pooling, load balancing queries and sharding entire databases.Written in Rust, PgDog is fast, secure and can manage thousands of connections on commodity hardware.Features PgDog is an application layer load balancer for PostgreSQLHealth Checks: PgDog maintains a real-time list of healthy hosts. When a database fails a health check, it's removed from the active rotation and queries are re-routed to other replicasSingle Endpoint: PgDog can detect writes (e.g. INSERT, UPDATE, CREATE TABLE, etc.) and send them to the primary, leaving the replicas to serve readsFailover: PgDog monitors Postgres replication state and can automatically redirect writes to a different database if a replica is promotedSharding: PgDog is able to manage databases with multiple shards Brian #4: Agentic Engineering Patterns Simon WillisonSo much great stuff here, especially Anti-patterns: things to avoidAnd 3 sections on testing Red/green TDDFirst run the testAgentic manual testing Extras Brian: uv python upgrade will upgrade all versions of Python installed with uv to latest patch release suggested by John HagenCoding After Coders: The End of Computer Programming as We Know It NY Times ArticleSuggested by ChristopherBest quote: “Pushing code that fails pytest is unacceptable and embarrassing.” Michael: Talk Python Training users get a better account dashboardPackage Managers Need to Cool DownWill AI Kill Open Source, article + videoMy Always activate the venv is now a zsh-plugin, sorta. Joke: Ergonomic keyboard Also pretty good and related: Claude Code Mandated Links legal precedence researchChardet dispute shows how AI will kill software licensing, argues Bruce Perensthis GitHub issuecitingJPlagrefined-githubAgentic Engineering PatternsAnti-patterns: things to avoidRed/green ...
    Show more Show less
    46 mins
  • #472 Monorepos
    Mar 9 2026
    Topics covered in this episode: Setting up a Python monorepo with uv workspacescattrs: Flexible Object Serialization and ValidationLearning to program in the AI ageVS Code extension for FastAPI and friendsExtrasJokeWatch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python TrainingThe Complete pytest CoursePatreon Supporters Connect with the hostsMichael: @mkennedy@fosstodon.org / @mkennedy.codes (bsky)Brian: @brianokken@fosstodon.org / @brianokken.bsky.socialShow: @pythonbytes@fosstodon.org / @pythonbytes.fm (bsky) Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Monday at 11am PT. Older video versions available there too. Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it. Brian #1: Setting up a Python monorepo with uv workspaces Dennis TraubThe 3 things Give the Root a Distinct NameUse workspace = true for Inter-Package DepsUse importlib Mode for pytest Michael #2: cattrs: Flexible Object Serialization and Validation cattrs is a Swiss Army knife for (un)structuring and validating data in Python.A natural alternative/follow on from DataClass WizardConverts to ←→ from dictionariescattrs also focuses on functional composition and not coupling your data model to its serialization and validation rules.When you’re handed unstructured data (by your network, file system, database, …), cattrs helps to convert this data into trustworthy structured data.Batteries Included: cattrs comes with pre-configured converters for a number of serialization libraries, including JSON (standard library, orjson, UltraJSON), msgpack, cbor2, bson, PyYAML, tomlkit and msgspec (supports only JSON at this time). Brian #3: Learning to program in the AI age Jose Blanca“I teach a couple of introductory Python courses and I've been thinking about which advice to give to my students, that are studying how to program for the first time. I have collected my ideas in these blog posts” Why learning to program is as useful as ever, even with powerful AI tools available.How to use AI as a tutor rather than a shortcut, and why practice remains the key to real understanding.What the real learning objectives are: mental models, managing complexity, and thinking like a software developer. Michael #4: VS Code extension for FastAPI and friends Enhances the FastAPI development experience in Visual Studio CodePath Operation Explorer: Provides a hierarchical tree view of all FastAPI routes in your application.Search for routes: Use the Command Palette and quickly search for routes by path, method, or name.CodeLens links appear above HTTP client calls like client.get('/items'), letting you jump directly to the matching route definition.Deploy your application directly to FastAPI Cloud from the status bar with zero config.View real-time logs from your FastAPI Cloud deployed applications directly within VS Code.Install from Marketplace. Extras Brian: Guido van Rossum interviews key Python developers from the first 25 years Interview with Brett CannonInterview with Thomas Wouters Michael:IntelliJ IDEA: The Documentary | An origin story videoCursor Joined the ACP Registry and Is Now Live in Your JetBrains IDEWhat hyper-personal software looks likeI’m doing in-person training again (limited scope): On-site, hands-on AI engineering enablement for software teams with Michael Joke: Saas is dead
    Show more Show less
    29 mins
  • #471 The ORM pattern of 2026?
    Mar 2 2026
    Topics covered in this episode: Raw+DC: The ORM pattern of 2026?pytest-check releasesDataclass WizardSQLiteo - “native macOS SQLite browser built for normal people”ExtrasJokeWatch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python TrainingThe Complete pytest CoursePatreon Supporters Connect with the hostsMichael: @mkennedy@fosstodon.org / @mkennedy.codes (bsky)Brian: @brianokken@fosstodon.org / @brianokken.bsky.socialShow: @pythonbytes@fosstodon.org / @pythonbytes.fm (bsky) Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Monday at 11am PT. Older video versions available there too. Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it. Michael #1: Raw+DC: The ORM pattern of 2026? ORMs/ODMs provide great support and abstractions for developersThey are not the native language of agentic AIRaw queries are trained 100x+ more than standard ORMsUsing raw queries at the data access optimizes for AI codingReturning some sort of object mapped to the data optimizes for type safety and devs Brian #2: pytest-check releases 3 merged pull requests8 closed issuesat one point got to 0 PR’s and 1 enhancement requestNow back to 2 issues and 1 PR, but activity means it’s still alive and being used. so coolCheck out changelog for all modsA lot of changes around supporting mypy I’ve decided to NOT have the examples be fully --strict as I find it reduces readability See tox.ini for explanationBut src is --strict clean now, so user tests can be --strict clean. Michael #3: Dataclass Wizard Simple, elegant wizarding tools for Python’s dataclasses.Features 🚀 Fast — code-generated loaders and dumpers🪶 Lightweight — pure Python, minimal dependencies🧠 Typed — powered by Python type hints🧙 Flexible — JSON, YAML, TOML, and environment variables🧪 Reliable — battle-tested with extensive test coverageNo Inheritance Needed Brian #4: SQLiteo - “native macOS SQLite browser built for normal people” Adam HillThis is a fun tool, built by someone I trust.That trust part is something I’m thinking about a lot in these days of dev+agent built toolsSome notes on my thoughts when evaluating I know mac rules around installing .dmg files not from the apple store are picky. And I like thatBut I’m ok with the override when something comes from a dev I trustThe contributors are all Adam I’m still not sure how I feel about letting agents do commits in reposThere’s “AGENTS” folder and markdown files in the project for agents, so Ad Extras Michael: PyTV Python Unplugged This WeekIBM Crashes 11% in 4 Hours - $24 Billion Wiped Out After Anthropic's Claude Code Threatens the Entire COBOL Consulting IndustryLoving my 40” ultrawide monitor more every dayUpdatest for updating all the mac thingsIce has Thawed out (mac menubar app) Joke: House is read-only!
    Show more Show less
    39 mins
  • #470 A Jolting Episode
    Feb 23 2026
    Topics covered in this episode: Better Python tests with inline-snapshotjolt Battery intelligence for your laptopMarkdown code formatting with ruffact - run your GitHub actions locallyExtrasJokeWatch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python TrainingThe Complete pytest CoursePatreon Supporters Connect with the hostsMichael: @mkennedy@fosstodon.org / @mkennedy.codes (bsky)Brian: @brianokken@fosstodon.org / @brianokken.bsky.socialShow: @pythonbytes@fosstodon.org / @pythonbytes.fm (bsky) Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Monday at 11am PT. Older video versions available there too. Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it. Brian #1: Better Python tests with inline-snapshot Alex Hall, on Pydantic blogGreat for testing complex data structuresAllows you to write a test like this: from inline_snapshot import snapshot def test_user_creation(): user = create_user(id=123, name="test_user") assert user.dict() == snapshot({}) Then run pytest --inline-snapshot=fixAnd the library updates the test source code to look like this: def test_user_creation(): user = create_user(id=123, name="test_user") assert user.dict() == snapshot({ "id": 123, "name": "test_user", "status": "active" }) Now, when you run the code without “fix” the collected data is used for comparisonAwesome to be able to visually inspect the test data right there in the test code.Projects mentioned inline-snapshotpytest-examplessyrupydirty-equalsexecuting Michael #2: jolt Battery intelligence for your laptop Support for both macOS and LinuxBattery Status — Charge percentage, time remaining, health, and cycle countPower Monitoring — System power draw with CPU/GPU breakdownProcess Tracking — Processes sorted by energy impact with color-coded severityHistorical Graphs — Track battery and power trends over timeThemes — 10+ built-in themes with dark/light auto-detectionBackground Daemon — Collect historical data even when the TUI isn't runningProcess Management — Kill energy-hungry processes directly Brian #3: Markdown code formatting with ruff Suggested by Matthias Schoettleruff can now format code within markdown filesWill format valid Python code in code blocks marked with python, py, python3 or py3.Also recognizes pyi as Python type stub files.Includes the ability to turn off formatting with comment [HTML_REMOVED] , [HTML_REMOVED] blocks.Requires preview mode [tool.ruff.lint] preview = true Michael #4: act - run your GitHub actions locally Run your GitHub Actions locally! Why would you want to do this? Two reasons: Fast Feedback - Rather than having to commit/push every time you want to test out the changes you are making to your .github/workflows/ files (or for any changes to embedded GitHub actions), you can use act to run the actions locally. The environment variables and filesystem are all configured to match what GitHub provides.Local Task Runner - I love make. However, I also hate repeating myself. With act, you can use the GitHub Actions defined in your .github/workflows/ to replace your Makefile!When you run act it reads in your GitHub Actions from .github/workflows/ and determines the set of actions that need to be run. Uses the Docker API to either pull or build the necessary images, as defined in your workflow files and finally determines the execution path based on the dependencies that were defined.Once it has the execution path, it then uses the Docker API to run containers for each action based on the images prepared earlier.The environment variables and filesystem are all configured to match what GitHub provides. Extras Michael: Winter is coming: Frozendict acceptedDjango ORM stand-aloneCommand Book app announcement post Joke: Plug ‘n Paste
    Show more Show less
    25 mins
  • #469 Commands, out of the terminal
    Feb 9 2026
    Topics covered in this episode: Command Book Appuvx.sh: Install Python tools without uv or PythonEnding 15 years of subprocess pollingmonty: A minimal, secure Python interpreter written in Rust for use by AIExtrasJokeWatch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python TrainingThe Complete pytest CoursePatreon Supporters Connect with the hostsMichael: @mkennedy@fosstodon.org / @mkennedy.codes (bsky)Brian: @brianokken@fosstodon.org / @brianokken.bsky.socialShow: @pythonbytes@fosstodon.org / @pythonbytes.fm (bsky) Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Monday at 10am PT. Older video versions available there too. Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it. Michael #1: Command Book App New app from MichaelCommand Book App is a native macOS app for developers, data scientists, AI enthusiasts and more.This is a tool I've been using lately to help build Talk Python, Python Bytes, Talk Python Training, and many more applications.It's a bit like advanced terminal commands or complex shell aliases, but hosted outside of your terminal. This leaves the terminal there for interactive commands, exploration, short actions.Command Book manages commands like "tail this log while I'm developing the app", "Run the dev web server with true auto-reload", and even "Run MongoDB in Docker with exactly the settings I need"I'd love it if you gave it a look, shared it with your team, and send me feedback.Has a free version and paid version.Build with Swift and Swift UICheck it out at https://commandbookapp.com Brian #2: uvx.sh: Install Python tools without uv or Python Tim Hopper Michael #3: Ending 15 years of subprocess polling by Giampaolo RodolaThe standard library's subprocess module has relied on a busy-loop polling approach since the timeout parameter was added to Popen.wait() in Python 3.3, around 15 years agoThe problem with busy-polling CPU wake-ups: even with exponential backoff (starting at 0.1ms, capping at 40ms), the system constantly wakes up to check process status, wasting CPU cycles and draining batteries.Latency: there's always a gap between when a process actually terminates and when you detect it.Scalability: monitoring many processes simultaneously magnifies all of the above.+ L1/L2 CPU cache invalidationsIt’s interesting to note that waiting via poll() (or kqueue()) puts the process into the exact same sleeping state as a plain time.sleep() call. From the kernel's perspective, both are interruptible sleeps.Here is the merged PR for this change. Brian #4: monty: A minimal, secure Python interpreter written in Rust for use by AI Samuel Colvin and others at PydanticStill experimental“Monty avoids the cost, latency, complexity and general faff of using a full container based sandbox for running LLM generated code. ““Instead, it lets you safely run Python code written by an LLM embedded in your agent, with startup times measured in single digit microseconds not hundreds of milliseconds.” Extras Brian: Expertise is the art of ignoring - Kevin Renskers You don’t need to master the language. You need to master your slice.Learning everything up front is wasted effort.Experience changes what you pay attention to.I hate fish - Rands (Michael Lopp) Really about productivity systemsAnd a nice process for dealing with email Michael: Talk Python now has a CLINew essay: It's not vibe coding - Agentic engineeringGitHub is having a dayPython 3.14.3 and 3.13.12 are availableWall Street just lost $285 billion because of 13 markdown files Joke: Silence, current side project!
    Show more Show less
    34 mins
  • #468 A bolt of Django
    Feb 3 2026
    Topics covered in this episode: django-bolt: Faster than FastAPI, but with Django ORM, Django Admin, and Django packagespyleakMore Django (three articles)DatastarExtrasJokeWatch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python TrainingThe Complete pytest CoursePatreon Supporters Connect with the hosts Michael: @mkennedy@fosstodon.org / @mkennedy.codes (bsky)Brian: @brianokken@fosstodon.org / @brianokken.bsky.socialShow: @pythonbytes@fosstodon.org / @pythonbytes.fm (bsky) Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Monday at 11am PT. Older video versions available there too. Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it. Brian #1: django-bolt : Faster than FastAPI, but with Django ORM, Django Admin, and Django packages Farhan Ali RazaHigh-Performance Fully Typed API Framework for DjangoInspired by DRF, FastAPI, Litestar, and RobynDjango-Bolt docsInterview with Farhan on Django Chat PodcastAnd a walkthrough video Michael #2: pyleak Detect leaked asyncio tasks, threads, and event loop blocking with stack trace in Python. Inspired by goleak.Has patterns for Context managersdecoratorsChecks for Unawaited asyncio tasksThreadsBlocking of an asyncio loopIncludes a pytest plugin so you can do @pytest.mark.no_leaks Brian #3: More Django (three articles) Migrating From Celery to Django Tasks Paul TaylorNice intro of how easy it is to get started with Django TasksSome notes on starting to use Django Julia EvansA handful of reasons why Django is a great choice for a web framework less magic than Railsa built-in adminnice ORMautomatic migrationsnice docsyou can use sqlite in productionbuilt in emailThe definitive guide to using Django with SQLite in production I’m gonna have to study this a bit.The conclusion states one of the benefits is “reduced complexity”, but, it still seems like quite a bit to me. Michael #4: Datastar Sent to us by Forrest LanierLots of work by Chris MayOut on Talk Python soon.Official Datastar Python SDKDatastar is a little like HTMX, but The single source of truth is your serverEvents can be sent from server automatically (using SSE) e.g yield SSE.patch_elements( f"""{(#HTML#)}{datetime.now().isoformat()}""" ) Why I switched from HTMX to Datastar article Extras Brian: Django Chat: Inverting the Testing Pyramid - Brian Okken Quite a fun interviewPEP 686 – Make UTF-8 mode default Now with status “Final” and slated for Python 3.15 Michael: Prayson Daniel’s Paper trackerIce Cubes (open source Mastodon client for macOS)Rumdl for PyCharm, et. alcURL Gets Rid of Its Bug Bounty Program Over AI Slop OverrunPython Developers Survey 2026 Joke: Pushed to prod
    Show more Show less
    31 mins
  • #467 Toads in my AI
    Jan 26 2026
    Topics covered in this episode: GreyNoise IP Checktprof: a targeting profilerTOAD is outExtrasJokeWatch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python TrainingThe Complete pytest CoursePatreon Supporters Connect with the hosts Michael: @mkennedy@fosstodon.org / @mkennedy.codes (bsky)Brian: @brianokken@fosstodon.org / @brianokken.bsky.socialShow: @pythonbytes@fosstodon.org / @pythonbytes.fm (bsky) Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Monday at 11am PT. Older video versions available there too. Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it. Michael #1: GreyNoise IP Check GreyNoise watches the internet's background radiation—the constant storm of scanners, bots, and probes hitting every IP address on Earth.Is your computer sending out bot or other bad-actor traffic? What about the myriad of devices and IoT things on your local IP?Heads up: If your IP has recently changed, it might not be you (false positive). Brian #2: tprof: a targeting profiler Adam JohnsonIntro blog post: Python: introducing tprof, a targeting profiler Michael #3: TOAD is out Toad is a unified experience for AI in the terminalFront-end for AI tools such as OpenHands, Claude Code, Gemini CLI, and many more.Better TUI experience (e.g. @ for file context uses fuzzy search and dropdowns)Better prompt input (mouse, keyboard, even colored code and markdown blocks)Terminal within terminals (for TUI support) Brian #4: FastAPI adds Contribution Guidelines around AI usage Docs commit: Add contribution instructions about LLM generated code and comments and automated tools for PRsDocs section: Development - Contributing : Automated Code and AIGreat inspiration and example of how to deal with this for popular open source projects “If the human effort put in a PR, e.g. writing LLM prompts, is less than the effort we would need to put to review it, please don't submit the PR.”With sections on Closing Automated and AI PRsHuman Effort Denial of ServiceUse Tools Wisely Extras Brian: Apparently Digg is back and there’s a Python Community thereWhy light-weight websites may one day save your life - Marijke LuttekesHome Michael: Blog posts about Talk Python AI Integrations Announcing Talk Python AI Integrations on Talk Python’s BlogBlocking AI crawlers might be a bad idea on Michael’s BlogAlready using the compile flag for faster app startup on the containers: RUN --mount=type=cache,target=/root/.cache uv pip install --compile-bytecode --python /venv/bin/pythonI think it’s speeding startup by about 1s / container.Biggest prompt yet? 72 pages, 11, 000 Joke: A date via From Pat Decker
    Show more Show less
    32 mins