Skip to content
EN

Back to the catalog

davepeck.org
jsonEnglish

davepeck.org

davepeck.org · English

Dave Peck's home on the web. Dave is an independent software developer, investor, and civic technologist.

json indieweb

Open the feed

https://davepeck.org/feed/master.json

Last post
Aug 12, 2026
Posts in 24 h · 7 days · 30 days
0 · 0 · 0
Our last check
Answering
Served from
United States
Text score at discovery
1,703
Format
json
Community
indieweb

Posts

What our queue read from this feed. Open one to read it here, or go to the site that published it.

  1. Twenty-Five in Blog Years
    Aug 12, 2026 · original
    I'm not sure how one measures the passage of time for a blog. Posterities ? RSS-uscitations ? Whatever the unit, today marks my blog's twenty-fifth birthday . It's old. (Reader, I assure you I've remained the same age throughout.) I started my blog as a fun broadcast for the handful of friends and family who stayed on the east coast after I'd absconded to the west. Over the years, it became a place to say the things that mattered to me, even (perhaps especially) when they didn't much matter to anyone else. Meanwhile, my personal and professional lives got very focused. I never wanted that for my writing, and so this blog has always had a quirky, unpredictable shape. It's a release valve. I think I like it that way. It's delightful to write this post twenty-five years later and find that blogs, far from dead, are enjoying a renaissance. In 2026 the web is bursting with creative and import
  2. How I Host
    May 23, 2026 · original
    Not long ago, my online presence was served variously by Heroku , Fly , AWS , GCP , and GitHub Pages . This evolved organically, over a decade, and became a recipe for unpredictable, expensive sadness. Meanwhile, the world marched on. My home gigabit fiber proved to be remarkably stable. Its uptime over the past year absolutely trounced GitHub . The answer was clear: I had to run a server at home. My read is that there are, roughly, two types of home server admins in the world: those that want to experiment with every shiny tech toy under the sun, and those that want soulless set-and-forget . Spoiler alert: I'm in the boring bucket. If you'd like to be regaled with tales of Raspberry Pi k8s clusters , high-availability Proxmox configs , or obscure Tailscale topologies ... well, Reddit is your friend . Most of my websites had long since served their purpose and remained online only throug
  3. https://davepeck.org/2026/01/27/everything-and-nothing-to-say/
    Jan 27, 2026 · original
    Sometime late last year, agentic coding tools hit a tipping point. The strongest engineers I follow use them . I'd like to write about it. There's so much delightful expansive crazy - making clever thoughtful new content about the state of AI. I'd like to contribute to it. These days, I'm using LLMs extensively in data pipelines to cull, structure, clean, and enrich data at scale. I'd like to share more. I prototyped a system that uses LLMs to generate "just in time" user interfaces. It's janky and magical. I'd like to show and tell. But I won't. Not today. I won't because my country is descending further into darkness. I won't because the streets of the Twin Cities are filled with protest. I won't because two innocent civilians have been murdered by federal agents on those very same streets. I won't because the government lied about those deaths. I won't because I know that this is not
  4. https://davepeck.org/2025/10/24/should-i-use-t-strings/
    Oct 24, 2025 · original
    Now that t-strings are part of Python 3.14 , I've seen a lot of people ask the question: "should I use them?" The short answer is "probably not yet." Template strings are powerful but still very new. They'll only start to become useful when libraries and frameworks (like tdom and t-sql ) that fundamentally require them become more widespread. A related question I've seen: "do t-strings replace f-strings?" The answer is "no." F-strings remain the best and most common way to do simple string formatting in Python. T-strings are useful in less common cases when you need to keep track of which parts of a string are static and which are dynamic. If you're actively developing a library or framework that can benefit from t-strings, then by all means start using them now. But for general application development, I think it's best to wait until the ecosystem has had time to mature.
  5. https://davepeck.org/2025/10/11/big-time-t-strings/
    Oct 11, 2025 · original
    I built a very goofy website, BIG TIME T-STRINGS , that tracks the use of Python 3.14's new t-strings in the wild. UPDATE 11/5 : Alas. GitHub has effectively disabled their current Search API. Until there's a viable alternative, BIG TIME T-STRINGS is on pause. Under the hood , BIG TIME uses the GitHub API to find all public repos that declare a minimum dependency on Python 3.14. It clones each repo and parses the *.py files, walking the AST to identify t-string literals ( ast.TemplateStr nodes ) and imports of string.templatelib . It then uses a (also very goofy) heuristic to rank the repos based on the "density" of t-string usage and star count, and publishes the results to the site . A GitHub Action re-runs the analysis every 24 hours, so check back often!
  6. Introducing tdom: HTML templating with t‑strings
    Sep 22, 2025 · original
    Python 3.14's new t‑strings add flexibility and power to the language's arsenal of string processing tools. They make it easy to distinguish between static and dynamic content—essential for safe web templating. That's why we're excited to introduce tdom , a brand-new toolkit that leverages t‑strings and brings Python web templates into the modern era. It's easy to use: write HTML in a t‑string and pass it to tdom.html() : from tdom import html name = "Alice" node = html(t'divHi, {name}!/div') str(node) 'divHi, Alice!/div' Under the hood, html() parses your HTML and returns a tree of nodes. These can be manipulated, inspected, or rendered with str() . As you'd expect, html() safely escapes special characters found in substitutions: from tdom import html name = 'scriptalert("pwned")/script' node = html(t'divHi, {name}!/div') str(node) 'divHi, <script>alert("pwned")</script>!/di
  7. Photo: Pika Pose
    Sep 11, 2025 · original
    A camera-friendly pika perched on the rocks along the Chain Lakes Loop near Mount Baker.
  8. https://davepeck.org/2025/08/28/python-the-documentary-world-premiere/
    Aug 28, 2025 · original
    The premiere of Python: The Documentary is just a couple hours away. It streams for free on YouTube at 10AM Pacific. Over the past year, I've had the pleasure of getting to know and collaborate with a few of the Pythonistas involved. I'm excited to learn more about the history and growth of Python's welcoming and impactful open source community.
  9. https://davepeck.org/2025/08/27/building-profitable-startups-with-ai/
    Aug 27, 2025 · original
    "I built an entire startup with AI and now it's profitable." Posts like this seem increasingly common. Curiously, they rarely include details: a link to the startup, a clear description of the customer and problem, or a breakdown of how AI was actually used. Please allow me to admit my gentle skepticism. I use LLMs to write code. Like anyone who has done so, I've learned a lot about when they're useful and when they're... hopeless. Claims to the contrary aside, they can't do it all. They can't even do it most. I've also helped build (and tragicomically failed to build) a few businesses. Like anyone who has done so, I know tech is rarely the long pole in the tent. Sales, marketing, building a team, crafting a culture, instilling values, listening to customers and responding to their needs, making forward progress in a sea of uncertainty, getting anyone to care at all? Hard . And, last I c
  10. Unsheltered Seattle
    Aug 22, 2025 · original
    I built a little website to help wrap my head around the state of unsheltered homelessness in Seattle. The site uses Seattle's public customer service request dataset , which aggregates data from the Find It, Fix It App and city web portal to show recent (and, if you like, historical) reports of encampments, abandoned vehicles, and related issues: Through the magic of GitHub actions , the website's data is updated daily. I've learned that the location of encampments can change rapidly, sometimes as a natural consequence of people moving around, and sometimes due to aggressive sweeps by the city. The site shows timelines for major encampments so you can get a sense of how they've evolved. The visualization also introduces the idea of " safe zones ": areas in the city that fall within roughly a block of public parks, schools, libraries, and child care centers. These closely match the zones
  11. https://davepeck.org/2025/07/13/psychotic-bugs/
    Jul 13, 2025 · original
    There are bugs and then there are bugs . The latest Oxide and Friends episode tells the story of an epic data corruption bug that nearly derailed Oxide 's launch. Says CTO Bryan Cantrill : An adage of mine is that bugs can be psychotic or nonreproducible, but not both. And when I say psychotic I don't mean just, like, difficult. I mean [...] ripping at the fabric of reality. The fabric of reality that is created by the computer, by the operating system, it creates these abstractions that we view as kind of bedrock abstractions. And when those start to break, that's a psychotic bug. You know, when you have a thread that is executing on two CPUs at the same time? It's like: it can't be. Such a good listen .
  12. https://davepeck.org/2025/07/07/cat-restaurant-game-vibe-coded-with-vscode-and-github-copilot/
    Jul 8, 2025 · original
    My daughter and I vibe coded a little Cat Restaurant Game using VSCode , GitHub Copilot in its new-ish agent mode , and Claude Sonnet 4 . The graphics were generated by ChatGPT ; my daughter made the sounds and music using GarageBand . You play a little girl that runs a sushi restaurant and has to feed the hungry cat customers before they get impatient: The whole project took about three hours over two sessions. We never touched the code. Instead, the exercise was to take a vague game idea, make it concrete, break it into sub-parts that formed a coherent whole, and then describe each part in sufficient detail to get Copilot to generate the outcome we wanted. In other words, a great learning experience! Because we never touched the code, it's predictably wonky. For instance, it uses requestAnimationFrame() but fails to make use of the time delta in callbacks; I assume the game will run at
  13. https://davepeck.org/2025/06/11/mullet-schema/
    Jun 11, 2025 · original
    One of my favorite database design patterns is what I call the "mullet schema": business up front, party in the back, where every table in the database ends with a JSON column. I even mentioned it on a recent episode of the Talk Python podcast : This morning, I read David Crawshaw 's excellent post, How I Program With Agents . In a sidebar, he completely blew my mullet-addled mind: I learned an odd way of using SQL at Tailscale (from Brad and Maisem): make every table a JSON object. In particular, have only one “real” column and the rest generated from the JSON. So the typical table looks like: CREATE TABLE IF NOT EXISTS Cookie ( Cookie TEXT NOT NULL AS (Data-'cookie') STORED UNIQUE, -- PK UserID INTEGER NOT NULL AS (Data-'user_id') STORED REFERENCES User (UserID), Created INTEGER NOT NULL AS (unixepoch(Data-'created')) STORED, LastUsed INTEGER AS (unixepoch(Data-'last_used')) CHECK (Las
  14. https://davepeck.org/2025/05/27/a-whirlwind-tour-of-t-strings/
    May 27, 2025 · original
    I gave a lightning talk at PyCon introducing t-strings to a hall full of Pythonistas. At just under five minutes, the intro had to be a "whirlwind". I hope I managed to convey the basics in a fun way. PS: right after I spoke, Sheena O'Connell gave a talk about Python in Africa that I found inspiring. It's worth a watch .
  15. https://davepeck.org/2025/05/21/pycon-wrapup/
    May 21, 2025 · original
    I just ran across* Will Vincent 's delightful PyCon 2025 Recap , the first of many recaps I hope to read from folks I met at the conference. * I'm old, so I "ran across" it in my RSS reader.
  16. https://davepeck.org/2025/05/19/t-strings-help-website/
    May 19, 2025 · original
    PyCon US has been a whirlwind of activity. One fun project: we stood up a simple but hopefully useful new t-strings help website .
  17. https://davepeck.org/2025/05/14/talk-python-podcast-episode-505-t-strings-in-python/
    May 14, 2025 · original
    Just in time for PyCon US , I had the pleasure of being a guest on the Talk Python podcast with Michael Kennedy . Along with Paul and Jim , two of my PEP 750 co-conspirators, we talked all about the new t-strings feature that will ship later this year with Python 3.14. You can listen to the episode here .
  18. https://davepeck.org/2025/05/06/vibe-coding-videos/
    May 6, 2025 · original
    LLMs are powerful levers for writing code. With time and plenty of experimentation, I've found tools and strategies that work well for me. LLMs are also wildly flexible. To learn how others use them, I've started watching screencasts by expert engineers. Three I recommend: Kevin Leneway is one of the most talented software developers I've had the pleasure of working with . He recently published a series on building a Cursor-like tool and has accumulated a number of interesting techniques for getting the most out of LLMs. Mary Rose Cook is an expert in game development and is currently building a 2D tactical shooter with AI. Her approach strikes an interesting balance between being particular about architecture and requirements and letting LLMs do their thing. Pamela Fox is a Cloud Advocate at Microsoft and is currently using LLMs to assist with complex backend tasks in Python . All three
  19. Photo: Covel Creek Falls
    May 5, 2025 · original
    The view from behind Covel Creek Falls, during a weekend campout in the Gifford Pinchot National Forest.
  20. https://davepeck.org/2025/04/14/pep-787-safer-subprocess-usage-using-t-strings/
    Apr 14, 2025 · original
    PEP 787, Safer subprocess usage using t-strings , is a newly proposed PEP that improves the safety of subprocess invocations in Python by building directly on the template strings features of PEP 750 . I couldn't be more excited to see it! The proposal is open for feedback . (PS: This new proposal was written by the two authors of PEP 501 , which fed directly into the development of PEP 750 . Nick Humrich offers a good perspective on the history in his recent HN posts .)

Discovered by the rss-feed-index crawler, which checks each feed at most once a month.

Same record as JSON: https://api.agentalog.com/api/feeds/fd_davepeck_org_d728520719a1d84f. More from this site: davepeck.org in the Feeds tab.