daily

2026-07-03
1

More Wexford races on Friday

Wexford Local · original → · 8/10 · Local Wexford news: racing events in county
[image →] By Dan Walsh Racing returns to Bettyville Park on this Friday evening with an eight-race card and the first race is off at 4.47pm. The card consists of four hurdle races, three…

By Dan Walsh

Racing returns to Bettyville Park on this Friday evening with an eight-race card and the first race is off at 4.47pm.

The card consists of four hurdle races, three steeplechases and an INH Flat Race. There is a large entry.

Following on from Tuesday’s successful meeting hopes are high for a large attendance with a dry and warm forecast.

Selective watering had been ongoing at the track and the ground conditions are described as “Good.

It is also Wexford GAA fundraising day at the races.

2

Water OK again on Whiterock Hill

Wexford Local · original → · 8/10 · Local Wexford news: water infrastructure affecting residents
[image →] By Dan Walsh UPDATE; Uisce Éireann can confirm that repairs to a burst watermain impacting customers in Whiterock Hill and surrounding areas have been completed, and water supply is…

By Dan Walsh

UPDATE; Uisce Éireann can confirm that repairs to a burst watermain impacting customers in Whiterock Hill and surrounding areas have been completed, and water supply is returning to customers.

Uisce Éireann are responding to a water outage impacting customers in Whiterock Hill and surrounding areas of Wexford town following a burst on a watermain.

Crews have been on site since this morning, and repairs are expected to be completed by approximately 3pm today.

Uisce Éireann’s Water Operations Manager for Wexford, Padraig Lyng, acknowledged the disruption to homes and businesses: “We understand the significant impact this unplanned outage is having on customers in Whiterock Hill and surrounding areas.

“Our crews are working to restore supply as quickly and as safely as possible. We thank the community for their continued patience while these essential repairs are carried out,” added Mr Lyng.

Customers may continue to experience low pressure or outages until repairs are completed and the network refills. Typically, it can take a number of hours following repairs for normal supply to return to all customers, particularly for those at the end of the network or on higher ground.

3

The short leash AI coding method for beating Fable

Hacker News · original → · 8/10 · Work/AI: AI coding agents for security-critical software
This post is the culmination of over a year of research into how to properly use AI agents to write high-quality software in security-critical systems. I will be writing this post primarily from my…

This post is the culmination of over a year of research into how to properly use AI agents to write high-quality software in security-critical systems. I will be writing this post primarily from my perspective as a software developer, protocol developer, and maintainer of security-critical software. Over the past year I dove deep into AI agents. I have explored their limits, what they can and cannot be relied upon to do. I’ve created our own AI review tools that perform just as well as multi-billion dollar AI-review systems. I’ve maintained my own custom fork of an AI coding agent called Crush. And this post is my distillation of what I’ve learned to be the best approach if you want to create high-quality software using AI tools. There are some people who hate AI. Indeed, many developers should hate AI, because it is an enemy to their own learning of software development. This post is not for them. This post is for the few expert developers whose skills have reached the point where they outclass any and all “frontier AI models” in their area of expertise. It is for these expert developers, who want to use AI as a method of increasing their performance without sacrificing any quality that I write this post. Problems With Current Approaches If you’ve used AI agents much, you know that during the course of a session the following can happen: - You can discover that your initial idea was dumb and a better one exists - Your agent might go “off the rails” and start doing something you don’t want it to do I’ve watched videos with hundreds of thousands of views where YouTubers explain how they invented complicated systems of 12 parallel agents managed by an orchestrator, doing a billion things simultaneously. How they no longer have to involve themselves in the coding process. It’s just slop writing and reviewing slop while the YouTuber sits on a beach, goes to the bathroom, or sips coffee for no reason. It is humanly impossible to build your own understanding of a codebase if you use such a “Vibe” approach. The AI will have gone off the rails multiple times and you will only notice it later when you actually try to use the software. This method may be perfectly OK in situations where you do not care about quality, but if you do care, a different approach is needed. The problem is that even code written and/or reviewed by Fable 5, will stink: The code works, but it is horribly inefficient and ugly. And this will definitely happen more often if you are working in some kind of a niche area that doesn’t have much training data for the model to fall back on. Contrary to marketing statements made by certain CEOs, these models are not able to think beyond their training data. AI Code Generation — The “Short Leash” Method That brings us to the “short leash method” for using AI coding agents. This method cannot be employed by just anyone. Only professional software developers can use this method. But what’s great about it is that it will lead to Fable-beating results even if you aren’t using a frontier model. In the Short Leash method: - You use a planning phase to research the task and formulate a plan, along with something like my tasks skill to track progress and break large tasks into steps (this is one point of commonality with many “vibe engineering” methods; the approach diverges in the following bullet points.) - You never use “YOLO” mode (aka “dangerously skip permissions”) - The AI never works “while you play video games” - You use a coding agent that displays a diff of the changes that are about to be made via the permissions prompt - You sit there like some crazed person from the 20th century, and actually analyze the changes the AI is proposing to make - You keep yourself in the loop at all times instead of removing yourself (the trend promoted by YouTubers) - You use the diffs in the permissions prompts as a way to keep your understanding of the codebase up-to-date and the AI on a “short leash” - You DENY permissions any time you see that the AI is about to do something you don’t want it to do - You intervene frequently and as needed to prevent the AI from “going off the rails” - At all times, the AI is “kept on a short leash” - Commits are made at the end of every subtask to protect you from the AI screwing up and deleting previously done work (this can happen, I’ve seen Opus do it) - Finally, we do a review How to do AI Reviews A PR reviewed by just a human or just an AI will have more mistakes in it than a PR that’s reviewed by both a human and an AI. The AI can be treated as a linter. It will quickly catch common mistakes, while the human will catch higher-level issues and directional changes that need to be made. So when it comes to reviews: - You should be using AI to review every single PR. - The AI must have access to sufficient context (the issue, the PR description, the codebase, and the changes). - You should use the latest and greatest models available to review. - The PR description must disclose the precise models used (if any) in assisting with the creation of the PR under an “AI Disclosure” heading. This serves multiple purposes: - It informs the maintainer that AI was used. - It lets them suggest better models if weak ones were used. - It signals that you’re a “good guy” developer and aren’t trying to “sneak AI in”. - Finally, and most importantly, the PR must be reviewed by the PR ‘author’ if it used AI. That last point is worth expounding upon a bit. AI-assisted PRs are really PRs from an AI with human assistance. Therefore, the human submitting the PR is expected to understand what they are submitting, and they cannot do that if they haven’t reviewed the code the AI wrote. So they must treat their own PR as if they’re reviewing someone else’s PR, and review it themselves, line-by-line. Once finished, they can confirm their own approval of the PR, and request attention from the maintainer. This builds and demonstrates their understanding of the codebase. Fin And that’s how we use AI at okTurtles. You can read our official AI Usage Policy. We hope this post has been helpful. AI Disclosure: this post was entirely written by human fingers connected to a human brain. A final AI-style “spell check” was performed before publishing. Donating = Loving! Without our supporters, we can't do what we do. Please take this moment to support our work.

4

Micheál Martin welcomes European Commission President to his home city

Breaking News Ireland · original → · 7/10 · Irish national affairs: EU presidency developments affecting citizens
The Taoiseach has officially welcomed European Commission president Ursula von der Leyen to his home city of Cork. Von der Leyen landed there on Thursday as part of a visit the European Commission…

The Taoiseach has officially welcomed European Commission president Ursula von der Leyen to his home city of Cork. Von der Leyen landed there on Thursday as part of a visit the European Commission traditionally takes to each country at the start of its EU presidency. She was greeted by Micheál Martin and Lord Mayor of Cork Damian Boylan at City Hall, where she was presented with a vase etched with the slogan for Ireland’s presidency – “Ní neart go cur le chéile – Strength with unity”. Ireland took over the presidency of the Council of the European Union on Wednesday, with a ceremony at Dublin Castle attended by Ukrainian president Volodymyr Zelensky. The College of Commissioners is also travelling to Cork, its 27 commissioners along with Von der Leyen make up the political leadership of the European Commission. Cork man and former Fianna Fáil Minister for Finance, Michael McGrath, is Ireland’s EU commissioner, with responsibility for democracy, justice, the Rule of Law, and consumer protection. Over Thursday and Friday, several meetings will be held, including between the Taoiseach and Ms von der Leyen and others between Irish ministers and European commissioners. Martin and Von der Leyen will also chair a plenary session. The arrival of such a large number of dignitaries means there is a huge security presence in Cork, with events concentrated in the University College Cork campus, Cork City Hall, Tyndall National Institute and Hayfield Manor Hotel. Ahead of meeting Von der Leyen, Martin said he plans to raise “Israel’s persistent and egregious breaches of human rights and international law”. Asked about this statement by reporters on Thursday, he said: “It’s not dependent on the presidency alone that we raise these issues.” He said there has been “a lot of progress at the Foreign Affairs Council recently”, but added there are “quite a number” of EU countries who have “different views to Ireland” on “the Palestinian issue and Palestinians’ right to self-determination”. He added: “The issue of trade with the occupied territories is one that can be dealt with and should be dealt with at a pan-European Union level.” During their visit to the Tyndall National Institute, Ireland’s largest deep-tech research centre, Commissioners are due to hear from researchers about their work in semiconductors, advanced materials, and space. While the Gardaí have said traffic restrictions for the visit will be kept to the minimum required, they have advised members of the public travelling through Cork Airport to allow for additional time due to possible temporary traffic restrictions.

5

Local winners at today’s Wexford races

Wexford Local · original → · 7/10 · Local Wexford news: racing events in county
[image →]JJ SLEVIN enjoyed success at the Wexford Races this afternoon. (Pic; WexfordLocal.com) By Dan Walsh at Wexford races Wexford racecourse was in excellent condition for today’s races and…
[image →]
JJ SLEVIN enjoyed success at the Wexford Races this afternoon. (Pic; WexfordLocal.com)

By Dan Walsh at Wexford races

Wexford racecourse was in excellent condition for today’s races and racing returns there again on Friday evening, so a busy summer for the popular South-East track.

Paul Nolan had another exciting day at Wexford Races when he saddled Rue Taylor (12/1) ridden by Carl Millar who scored by a neck over the Conor O’Dwyer trained Teenage Kiss (Charlie Dwyer up) in the opportunity handicap chase.

Taghmon jockey Sean O’Keeffe received the leg up on the Willie Mullins trained Soir De Grande (11/2) and the combination were impressive when victorious by one and a quarter lengths in the beginners’ chase.

Caim, Enniscorthy jockey JJ Slevin enjoyed success at his local track when he won the handicap chase on Chosen Shant (9/1) for owner/trainer Aengus King from Newmarket-on-Fergus, Co. Clare.

Waterford trainer Henry de Bromhead, who has an excellent strike rate at Wexford, added another success when Rockonliam (Evens Fav.) scored by four and a half lengths under Darragh O’Keeffe,

David O’Brien, who made the short hop from Piltown, Co. Kilkenny, returned smiling after saddling Mic Drop (5/1) with Josh Williamson in the handicap chase.

Racing returns to Bettyville Park on this Friday evening with an eight-race card and the first race is off at 4.47pm. It is also Wexford GAA fundraising day at the races.

6

Ask HN: Is anyone experimenting with different ways of using LLMs for coding?

Hacker News · original → · 7/10 · Work/AI: LLM coding workflows and practical usage
I'm a bit annoyed by the feeling that we're kind of stuck when it comes to using LLMs for programming. I use Claude Code and Codex, but I haven't been able to enter flow state like I can when I hand…

I'm a bit annoyed by the feeling that we're kind of stuck when it comes to using LLMs for programming. I use Claude Code and Codex, but I haven't been able to enter flow state like I can when I hand write code. This is kind of ironic to me since AI should be a bicycle for the mind, but right now it feels like a bicycle that just brakes abruptly every couple minutes. I stop, wait, review, prompt again. Is there anyone exploring something fundamentally different than the prompt response loop we have today? I actually think the idea of a tab model is directionally better than prompt response. Would love to hear about any startups, personal experiments, etc. reply

7

Claude-real-video - any LLM can watch a video

Hacker News · original → · 7/10 · AI: practical LLM video processing tool
Let Claude — or any LLM — actually watch a video. Most AI tools don't really see a video. Paste a YouTube link into ChatGPT and it reads the transcript, not the picture. Claude won't take a video…

Let Claude — or any LLM — actually watch a video. Most AI tools don't really see a video. Paste a YouTube link into ChatGPT and it reads the transcript, not the picture. Claude won't take a video file at all. Even Gemini, which can read video natively, has to send it up to Google and samples frames at a fixed interval (1 fps by default), so fast cuts slip past. claude-real-video does it differently, and locally: point it at a URL or a file, and it pulls the frames that actually matter (every scene change, not a fixed quota), throws away the near-duplicates, transcribes the audio, and hands you a clean folder any LLM can read — on your own machine, nothing uploaded. crv "https://www.youtube.com/watch?v=..." # → crv-out/frames/*.jpg + crv-out/transcript.txt + crv-out/MANIFEST.txt Then drop the frames + MANIFEST.txt into Claude / ChatGPT / Gemini and ask away. Most "let an LLM watch a video" scripts (and Gemini's own pipeline) grab frames at a fixed interval — e.g. one per second. That over-samples a static screencast and under-samples a fast-cut reel. claude-real-video is smarter: | fixed-interval sampling | claude-real-video | | |---|---|---| | Frame selection | every N seconds | scene-change detection + density floor | | Repeated shots (A-B-A cuts) | sent again every time | sliding-window dedup sends each shot once | | Static slide (10 min) | ~600 near-identical frames | collapses to 1 (dedup) | | Fast-cut reel | misses frames between samples | catches each visual change | | Audio | often ignored | Whisper transcript w/ language detect | | Where the video goes | often uploaded to a cloud | stays on your machine | | Input | usually local file only | URL (yt-dlp) or local file | You feed the model fewer, more meaningful frames — cheaper context, better understanding. pip install claude-real-video # core (frames + dedup) pip install "claude-real-video[whisper]" # + audio transcription ffmpeg / ffprobe are used for frame extraction and audio, and aren't pip-installable. Install them once: | OS | command | |---|---| | macOS | brew install ffmpeg | | Linux | sudo apt install ffmpeg (or your distro's package manager) | | Windows | winget install Gyan.FFmpeg — or choco install ffmpeg — or download a build and add its bin\ folder to your PATH | Verify it's on your PATH : ffmpeg -version Transcription uses the whisper CLI (installed by the [whisper] extra, or pip install openai-whisper ). Whisper also relies on ffmpeg. Works on macOS, Windows, and Linux — Python 3.10+. # A YouTube / Instagram / TikTok / ... link crv "https://www.instagram.com/reel/XXXX/" # A local file, English transcript, output to ./out crv lecture.mp4 -o out --lang en # Frames only, no transcription crv clip.mp4 --no-transcribe # A login-gated video (your own / authorised use): pass a Netscape cookie file crv "https://..." --cookies cookies.txt python -m claude_real_video ... works as an alias for crv too. | flag | default | meaning | |---|---|---| -o, --out | crv-out | output directory | --scene | 0.30 | scene-change sensitivity (lower = more frames) | --fps-floor | 1.0 | at least one frame every N seconds | --max-frames | 150 | hard cap on total frames | --lang | auto | Whisper language (en , zh , auto , ...) | --dedup-threshold | 8 | % of pixels that must change for a frame to count as new; higher = fewer frames | --dedup-window | 4 | compare against the last N kept frames — a shot the model already saw doesn't come back after a cutaway (1 = consecutive-only) | --report | off | keep dropped frames in ./dropped + write report.html visualising every keep/drop decision | --no-transcribe | off | skip audio | --keep-audio | off | also save the full soundtrack (audio.m4a ) so audio models can hear it | --cookies | – | Netscape cookie file for login-gated sources | from claude_real_video import process r = process("https://youtu.be/...", "out", lang="en") print(r.frame_count, r.transcript_path) - Fetch — yt-dlp for URLs (optional cookies), or copy a local file. - Extract — one chronological ffmpeg select pass grabs every scene change plus a density floor (at least one frame every--fps-floor seconds), so fast cuts and slow screencasts are both covered. - Dedup — real pixel difference (downscaled RGB, not a perceptual hash — hashes go blind on flat colours and equal-luma hue changes) against a sliding window of the last --dedup-window kept frames, so an A-B-A cutaway doesn't re-send a shot the model has already seen.--report writesreport.html showing every keep/drop decision with its diff %, for tuning. - Text — if the video already has subtitles (a sidecar .srt /.vtt next to a local file, or an embedded subtitle track), those are used as the transcript — faster and more accurate than re-transcribing. Only when there are no subtitles does it fall back to Whisper on the audio (skipped cleanly if there's no audio). - Audio (optional, --keep-audio ) — save the full original soundtrack (audio.m4a : music + speech + effects, copied losslessly when possible). The transcript only has the words; the audio file lets a model that can listen (Gemini, GPT-4o, …) actually hear the music and tone. - Manifest — MANIFEST.txt summarises everything for the model. So the model can see (key frames), read (transcript) and — with --keep-audio — hear (full soundtrack) the video. The transcript is plain text any model can read; the tool doesn't burn subtitles into the video — burning is a presentation choice, not something needed to make a video AI-readable. - Only download content you have the right to. The --cookies option is for your own, authorised access — don't ship credentials in a repo. - Re-running overwrites the output directory. MIT

8

If you think this doesn't affect you, think again

r/gaming · original → · 7/10 · Gaming: digital media policy affecting consumers broadly
I stopped buying physical games in 2020. When the COVID-19 pandemic broke my routine of heading out to a store on launch days to grab a disc for my collection, I went digital and haven’t reformed…

I stopped buying physical games in 2020. When the COVID-19 pandemic broke my routine of heading out to a store on launch days to grab a disc for my collection, I went digital and haven’t reformed that habit since. For players like me, the news that Sony will stop producing physical discs in 2028 sounds like a non-factor from a distance. If I can still purchase and play games, what difference does it make if I have the plastic to prove it? The reality, though, is much more complicated. The impending loss of PlayStation discs is an existentially troubling move for an industry that has been slowly chipping away at what it means to own a game for quite some time. The consequences of that won’t just be felt by enthusiasts with shelves to fill. Even if your library is fully digital, the loss of physical PlayStation games could have knock-on effects that you’ll feel one way or another come 2028. For those who still buy discs, some immediate impacts will be felt when Sony’s plan goes into effect. Yes, there will be an aesthetic loss for anyone who loves displaying their collection, but that’s a very small side effect in the bigger picture. There will be no market for used games, which means that it will be impossible to save money by going secondhand. Friends will no longer be able to lend games to one another by passing around a disc. (Though the PS5 does have a digital sharing solution.) And anyone who buys discs to get around dealing with their poor internet connection will now be at the mercy of slow download speeds. Digital collectors won’t notice a difference on those tangible points, but they’re still sitting in the same boiling water. The move away from discs comes down to ownership, a concept that’s become slippery for all mediums in an increasingly-digital age. Do you actually own a song when you buy it off of iTunes? How about that movie you paid $15 for on Prime Video? Generally, the answer is no, though it may as well be yes to a casual buyer. You’re often actually buying a license for that thing. You can still watch, play, read, or listen to it; it just means that the platform holder has the right to revoke your access any time if they so choose. That last part might sound like a bit of obligatory legal coverage that companies aren’t actually likely to jump on, but plenty have and do. There’s a history of that happening on PlayStation specifically. Just last week, PlayStation users reported they had received emails informing them that, starting Sept. 1, they would lose access to certain movies they had purchased, due to some licensing nuances with distributor StudioCanal that impacted 551 films, including Total Recall and Terminator 2: Judgment Day. If you bought those movies at any point on the PlayStation Store, you will not have access to them come September, and there’s no indication that you’ll be refunded for them. There’s nothing stopping a game publisher, or Sony itself, from doing the same with video games any time they choose. It already happened in 2015 with Konami’s P.T., a demo for Hideo Kojima’s Silent Hills that you can no longer officially download even if you had previously added it to your library. That ownership problem could exacerbate a long-standing preservation nightmare for the video game industry. What will happen if a game that is only available digitally is removed from virtual storefronts? You don’t have to wonder what that would look like. Alongside the news of Sony ending disc production, the company also announced that it will be sunsetting the PlayStation 3 and PlayStation Vita storefronts soon — a move that was already contentious when Sony first tried to do it in 2021, but quickly walked back its plans following fan outcry. If the plan sticks this time, an untold number of games that aren’t available on disc will virtually disappear unless publishers decide to port them to modern platforms. Physical media functions as a safeguard for that worst-case scenario, ensuring that you’ll always have an option to hang onto a game if it's removed from a store or revoked from your library. What PlayStation going fully digital tells us about the PS6 Expect 2028 to be a transitional year for Sony Let’s say that you’re still not concerned about any of that. If you buy a game and only ever play it once, who cares if you can’t access it in 10 years? Even if that’s your mindset, the lack of purchasing options could prove to be a burden. We’ll soon be locked into a single storefront controlled by Sony, and we’ll have to play by any rules it sets. One of those rules in the digital-only era could be dynamic pricing. Sony has recently begun experimenting with offering different prices to different users. So far, that testing has only played around with discounts, but it leaves the door open for Sony to hike them in the other direction, too. Were that to take effect today, you’d still have some options to get a game that exists on disc for less by going to another retailer. When those discs no longer exist, though, you’ll have to pay whatever price Sony puts in front of you. These scenarios may sound a little alarmist. One could argue that, in 2026, a disc is little more than a key to a lock — something that’s very literally true for a lot of Nintendo Switch 2 games. There are real red flags with historical precedent to back up the worry, though. Physical media doesn’t solve every problem in an age of always-online consoles, but it gives buyers some level of ownership of games that can otherwise be taken away on a whim. Until digital ownership laws are overhauled, discs serve an important function in the gaming landscape. You can still buy Blu-rays, books, and vinyl records to hang on to your favorite media. Even if you don’t buy physical, the crucial safety net is there in case you ever need it. Why should games be any different?

9

llm-coding-agent 0.1a0

Simon Willison · original → · 7/10 · Work/AI: LLM coding agent development
2nd July 2026 Another Fable 5 experiment. Now that my LLM library has evolved into more of an agent framework it's time to see what a simple coding agent would look like built on it. I started a new…

2nd July 2026 Another Fable 5 experiment. Now that my LLM library has evolved into more of an agent framework it's time to see what a simple coding agent would look like built on it. I started a new Python library using my python-lib-template-repository GitHub template repository, then ran these two prompts (here's the Claude Code for web transcript): Write a spec.md for this project - it will depend on the latest “llm” alpha from PyPI and implement a Claude code style coding agent complete with tools for reading and editing files and executing commands Then: Commit the spec, then build it using red/green TDD in a series of sensible commits (each with passing tests and updated docs) - occasionally manually test it using the OpenAI API key in your environment Here's the spec, the resulting README file, and the sequence of commits. I've shipped a slop-alpha to PyPI, so you can run the new agent like this: uvx --prerelease=allow --with llm-coding-agent llm code It's pretty good for a first attempt! Here's the (Fable-authored) README, which lists recipes like llm code --yolo and llm code --allow "pytest*" --allow "git diff*" . It also presents a Python API based around a CodingAgent(model="gpt-5.5", root="/path", approve=True).run("Fix the failing test in tests/test_parser.py") class which I didn't ask for but I'm delighted to see implemented. Here's the suite of tools it implemented, listed using uvx ... llm tools : CodingTools_edit_file(path: str, old_string: str, new_string: str, replace_all: bool = False) -> str Replace an exact string in a file. old_string must match the file contents exactly (including whitespace) and must identify a unique location unless replace_all is true. Returns a diff of the change so it can be verified. CodingTools_execute_command(command: str, timeout: int = 120) -> str Run a shell command in the session root directory. Returns combined stdout and stderr followed by an Exit code line. timeout is in seconds (maximum 600); on timeout the whole process tree is killed. CodingTools_list_files(pattern: str = '**/*', path: str = '.') -> str List files matching a glob pattern, newest first. Skips hidden directories, node_modules, __pycache__ and (in a git repository) anything covered by .gitignore. Returns at most 200 paths relative to the searched directory. CodingTools_read_file(path: str, offset: int = 0, limit: int = 2000) -> str Read a text file, returning numbered lines like cat -n. Paths are relative to the session root. Use offset (0-based first line) and limit (max lines) to page through files too large to read in one call. CodingTools_search_files(pattern: str, path: str = '.', glob: str = None, max_results: int = 100) -> str Search file contents for a regular expression. Returns matches as path:line_number:line, capped at max_results. Use glob (e.g. "*.py") to restrict which files are searched. CodingTools_write_file(path: str, content: str) -> str Create or overwrite a file with the given content. Parent directories are created as needed. Prefer edit_file for modifying existing files. I tried it out by running llm code --yolo and then prompting: mkdir /tmp/demo and then in that folder create a simple swiftui CLI app for telling the time in ascii art Here's the transcript, in which GPT-5.5 reasoning notes that "SwiftUI isn't suitable for a true CLI" and then builds an app that outputs this on swift run AsciiTime : █ █████ ████ █ █ ███ ██ █ █ █ ██ █ ██ █ █ █ ████ ███ █ █ █ █ █ █ █ █ █ █ █ ███ ████ ████ ███ ███ █████

10

Using DSPy to evaluate and improve Datasette Agent's SQL system prompts

Simon Willison · original → · 7/10 · Work/AI: DSPy framework for LLM evaluation
2nd July 2026 One of this morning's AIE keynotes covered dspy, which reminded me I've been meaning to see if it could help me improve the system prompt used by Datasette Agent - so I fired off an…

2nd July 2026 One of this morning's AIE keynotes covered dspy, which reminded me I've been meaning to see if it could help me improve the system prompt used by Datasette Agent - so I fired off an asynchronous research task in Claude Code for web using Claude Fable 5: Pip install the latest Datasette alpha and datasette-agent and dspy - then figure out how to use dspy to evaluate and improve the main system prompts used by Datasette Agent for the feature where it can execute read only SQL queries to answer user questions about data. Fable chose to test using GPT 4.1 mini and nano, and identified several promising looking directions for improvements. I particularly like this one: The schema listing gives only table names; the "don't call describe_table if you already have the information" advice caused column-name guessing (page_count, o.order_id, first_name) and error-retry loops in baseline traces. Either include column names in the prompt's schema listing or soften that advice.

11

Understand to participate

Simon Willison · original → · 7/10 · Work/AI: coding agent collaboration patterns
2nd July 2026 I saw Geoffrey Litt speak at AIE yesterday, and one framing he used particularly resonated with me: Understand to participate Geoffrey was talking about the challenge of collaborating…

2nd July 2026 I saw Geoffrey Litt speak at AIE yesterday, and one framing he used particularly resonated with me: Understand to participate Geoffrey was talking about the challenge of collaborating with coding agents as they construct increasingly large and sophisticated changes, and the need to avoid taking on cognitive debt as your understanding drifts from how the code actually works. His argument is that you need to understand the code to a depth that enables you to participate further with the model: You can learn what the agent is doing to make sure you can be an active participant in the creative process. [...] You need a rich set of concepts in your mind to think creatively and fluently about how to move something forward. If you're lacking that fluency, your ability to participate in the project is meaningfully limited. The AIE talks are all recorded - all 300+ of them! - and should be trickling out over the next three weeks. Geoffrey's is one that I recommend catching on YouTube. Geoffrey also published a thread version of his talk on Twitter.

Items scoring 7/10 or above from 11 sources, scored by claude-haiku-4-5-20251001 on relevance to my interests. At most 3 per source.

Scoring categories & sources
  1. Local Wexford or South East Ireland news
  2. Irish or EU-wide affairs affecting citizens broadly: elections, new laws or policy being debated, cost of living, education — especially impacts on mid-life adults or teenagers. Never courts/crime stories.
  3. Irish news on a topic relevant to my interests
  4. Work and tech topics: networking, AI, Kubernetes, platforms, SaaS
  5. AI news including critical or anti-AI perspectives
  6. Gaming: PC gaming, indie gaming, retro gaming
  7. General interests: gardening, woodwork, cycling, fitness, travel
  8. Comics

Sources: Breaking News Ireland, Wexford Local, Hacker News, r/gaming, r/pcgaming, r/antiAI, r/indiegaming, Lenny's Newsletter, One Useful Thing, Newcomer, Simon Willison