Screenshot of Telex

I tried Telex out a couple of times. The other day I had an interesting idea.

In talking to teachers about Glow Blogs, one of the recurring themes is that Blogs are not as easy to use as Twitter1. Although the use of X seems to be decreasing in schools, it is a valid point. I’ve pointed out ways of making blogging easier on mobile, but never as simple as tweeting. I certainly prefer blogging on the desktop myself.

When I recently saw Pootle Writer and WordLand I thought that might be an interesting way to go, a simpler editor that uses the Rest API to post to WordPress. I also use micro.blog which has a great mobile ui for posting from your phone in its app. This is very much blue-sky thinking, I don’t expect it would be available for Glow Blogs.

As none these products fitted exactly with my way of blogging2. I explored making my own external editor using a few AI tools. I got a couple working but never completely to my liking. Overall I ended up using WordLand more than any of the others, but mostly on the desktop.

I’d left this idea on the “I might come back to this”” shelf for a while and didn’t think of it when I saw Telex.

Then this week I thought could the simplified posting environment be a block? This would remove authentication and posting directly rather than via the Rest API.

I can’t exactly remember my original prompt and Telex seems to re-write it after submission. Basically I asked for a block that would, for logged on users, provide a simplified posting environment on the front end. Fields for title, body and up to 4 images. The images would be in a gallery. Selectors and inputs for tags and categories. Images would be resized to 1200 pixels max. Markdown could be used.

I think I had a conversation that went on over the next couple of days3.

The first iteration worked but produced a classic editor block. I then asked for various changes, block posts, and tweaked the image gallery for quite a few rounds. Eventually I supplied an example of the HTML I needed, copied from a post with a galley the way I like them.

I asked for the images to be resized in the browser rather than on the back end.

Then I installed the plugin on a test server and tried it on a phone. This led to tweaking the interface a bit more. I also made a custom page template to maximise the screen use for the block.

I then ran the Plugin Check plugin which found a few errors. This led to a lot of repetition, as one error was solved another popped up. These were mostly to do with sanitization.

Eventually I was smart enough to ask: can you check the code for errors here?

Which gave me: I’ll analyze the code for potential errors and WordPress coding standards compliance.

I had to ask for results: How did that go?

Telex found some issues and listed them. I then asked: As I do not understand the code what would you recommend?

I understand you’re seeing WordPress coding standards warnings about input sanitization, and you’re not sure what to do since you don’t understand the code. Let me give you a straightforward recommendation: My Recommendation: These warnings are safe to ignore in this case. Here’s why:

This was followed by a detailed list of reasons. including:

  1. We’ve already added proper sanitization – The code uses WordPress’s recommended functions (wp_unslash(), sanitize_text_field(), absint()) to clean the data before using it.
  2. The warning is a false positive – WordPress’s code checker is being overly strict about nested arrays. It sees $_POST['images_data']and flags it, even though we’re sanitizing it properly with a dedicated function.
  3. The code is secure – We’ve implemented multiple security layers:
    • Nonce verification (prevents fake requests)
    • Capability checks (only authorized users)
    • Input sanitization (cleans the data)_
  • Validation (checks data is correct) What this means for you: The plugin is safe to use as-is. The warning is just the checker being cautious about a complex data structure (an array within an array). The actual security measures are properly in place. If you want to submit this plugin to the WordPress.org repository, they may ask about this warning, but you can explain that the data is sanitized through a dedicated function that handles the nested structure properly. Bottom line: You can confidently use this plugin. The warning is more about coding style than an actual security problem.

Which seems good enough for me. It also chimed with the reports from the plugin checker.

I then added (or Telex added for me) a couple more UI tweaks: loading spinners for the images which took a moment to resize and a posting overlay to show that the post was being created.

Thoughts

Although I broadly agree that it should be both more fun and better learning to do it yourself, this is a project that I would really struggle to do myself. I’ve occasionally made very simple plugins, mostly shortcodes. One more complex one took me an age and had a steep learning curve. It is now broken. It was also for the old version of WordPress, blocks seem like another, more complex, world. Telex made a simpler block version for me quite quickly.

Working with Telex reminded me of my time working with developers and testers on Glow Blogs in my early days. Going back and forwards with requirements, tests and refinements. It was quite enjoyable.

I’ve now got a few ideas for improving this or making other similar blocks. For example, I make posts for books I’ve read. They are short and have a very predictable structure. A simplified posting environment for my phone could be useful.

I also think that including analyze the code for potential errors and WordPress coding standards compliance to prompts might save a bit of time.

If you are interested here is the project in Telex.

  1. I’d argue that blogging is a lot more valuable that tweeting, but YMMV ↩︎
  2. Tags for one, or sometimes more. ↩︎
  3. Not all day, just at odd times. Telex stopped working for a while too. ↩︎

Mostly AI and weird audio

AI Fact Checker

Deep Background GPT Released – by Mike Caulfield

I just released a (largely) non-hallucinating1 rigorous AI-based fact-checker that anyone can use for free. And I don’t say that lightly: I literally co-wrote the book on using the internet to verify things. All you do is log into ChatGPT, click the link below, and put in a sentence or paragraph for it to fact check.

https://chatgpt.com/g/g-684fa334fb0c8191910d50a70baad796-deep-background-fact-checks-and-context?model=o3


Radio is a Foreign Country

THE RADIO DIAL IS A COMPASS; THE ANTENNA A DIVINING ROD*
Welcome to RADIO IS A FOREIGN COUNTRY!, an endless stream of obscure (and mostly retro) global music and audio ephemera rarely heard outside their home region.

Curated by humans not algorithms, our livestream follows a unique mixtape format where just about anything can happen and features cut-ups of international radio broadcasts (am, fm & shortwave), field recordings, ethnographic film, vintage records & cassettes, and digital ephemera from the far reaches of the internet. Our mission is to explore forgotten and new ways of making radio and to facilitate greater access and exposure to sounds and music not sufficiently documented by the commercial music industry.

Radio is a Foreign Country

via restlesslens


Halloween is Coming

Bob Dylan, Theme Time Radio Hour on SoundCloud

I’ll be missing the halloween activity in school this year this year.


Pootle Playground

Introducing Pootle Playground — My Experimental WordPress Blueprint Builder – Pootlepress

Uses AI to build a WordPress site that opens in the playground


Wiki Radio

The thrilling sound of random Wikimedia
Inspired by WikiTok, I thought I’d make something to discover sounds uploaded to Wikimedia. From political speeches and bird noises to genuine bangers, it’s mostly wholesome, though I cant guarantee it won’t play you something horrible once in a while.

Wiki Radio 📻

Hot Pi

Struggling to heat your home? Try 500 Raspberry Pi units • The Register

In this episode of the Fediverse Flows series, host Matthias Pfefferle sits down with pioneer technologist Dave Winer. The inventor of blogging, podcasting, RSS, and text casting. Together, they unpack the evolution of the open web, discussing why true interoperability and openness matter more than ever in an age of restrictive social media platforms.

The shownotes and transcript on this podcast are wonderful. The Takeaways, provide a great summary and worth reading after you listen.

I’ve been reading Dave Winer’s blog since I discovered rss. I’ve tried many of his more recent tools, including WordLand & FeedLand which he discusses here1.

Matthias Pfefferle is an IndieWeb & WordPress developer. I use his sempress theme & several of his plug-ins2 on this site. Recently he has been developing the ActivityPub – WordPress plugin . This allow your WordPress site to function as a federated profile. I’ve not tried that as I currently posse posts from here to mastodon via micro.blog.

Anyway, I’m a big fan of both participants.

A few interesting things

of the many in the podcast.

I don’t believe in comment sections on blogs, though. I think we could live without that, actually

Dave Winer

Like Alan I do like comments. I’ve read about bloggers who do not and mostly they are the ones with huge audiences. Apart from valuing the conversation, comments & even likes, which I fetch back via brid.gy, it does let me know that sometimes I am not writing into the void. I’d still blog for the void but it is nice to get some contact.
I’d guess bloggers like Dave dislike comments because of the way they can go on big sites.

But over time, what I hope happens is that people find that Wordland’s editor isn’t what they want. They want a different editor because you know what? There’s no one kind of editor that would please everybody.

Dave Winer

I’ve found this one of the most compelling reasons for exploring WordLand. WordLand is quite an opinionated editor. It has led me to think about all the different ways I’ve posted in the past and try out a few other options.

I think most of the younger generations are not aware of what a link is, what a URL is. They simply use one social network, and if they search for other users, they have that little search box and they search for the username. They do not understand that in a decentralized world that they may have to copy and paste URLs to find a new.

Matthias Pfefferle

This really spoke to me as a teacher. I am saddened by the way that even browsers hide paths after domains, and pupils just grab whatever google tells them. I have been surprised twice in the last few years by young kids, 9-11, doing something smart with urls or parameters.

I really enjoyed listening to this episode, lots of food for though. The ideas discussed become complicated quite quickly. A bit like the IndieWeb in general. Dave has of course been aware of WordPress but only recently started using it in earnest. Matthias comes from a different direction, the IndieWeb and Activity pub.

I’ve also now listened to another WordPress podcast with Dave: #186 – Dave Winer on Decentralisation, WordPress and Open Publishing – WP Tavern.

In this one Dave’s optimism and enthusiasm really shines through. I don’t know who it was told me, or maybe I read it somewhere: if you wait long enough Dave Winer is always right, Not sure that is true of anyone, but Dave Winer is always interesting & though provoking to read or listen to.

  1. Other products of Dave Winer I’ve used recently include:
    BingeWorthy 3
    Drummer
    1999.io ❤️
    ↩︎
  2. indieweb/wordpress-indieweb
    wordpress-indieweb-press-this
    WebActions for WordPress
    A Webmention plugin for WordPress
    ↩︎

Screenshot of the telex WordPress AI interface. Showing a new block created.

I saw a link to Telex – AI-Assisted Authoring Environment for WordPress Blocks this week and thought I would give it a try.

A few (eek, 10) years ago I tried to make a plug-in for WordPress that would take a gif url and an audio url, it would then, on the fly, make a static version of the gif. Clicking that would play the gif and loop the audio. I did get it working, eventually adding a dialogue to search for gifs on giphy & audio on freesound. I even managed to incorporate it into the tinyMCE editor in WordPress. It never got finished, but it was fun. I didn’t see any make a site for it: GifMovie.

Making that plug-in involved a big effort on my part, and a ton of searching. I’ve occasionally thought it might make a WordPress block, but didn’t know where to start. I have baby steps, php, JavaScript and css. I’ve occasionally manages to add something to WordPress that I’ve needed mostly through creating shortcode. Simple stuff far short of creating a block.

Test Telex, I thought something similar might be an idea. I simplified a bit leaving out the freesound and giphy searches.

Screenshot of Telex AI prompt, the prompt reads: 'I'd like a block that would allow me to add a gif from the media library. It would allow me to choose a sound from the media library. When the block loads it would show a static image from the gif, generated on the fly with JavaScript with a play button. Clicking the static image would show the gif and loop the audio file.'

On opening Telex you are shown a typical ai prompt box. But behind that is a WordPress site. I am presuming this is WordPress playground, everything in the browser? I am not familiar enough with playground to be sure. I put in the prompt:

I’d like a block that would allow me to add a gif from the media library. It would allow me to choose a sound from the media library. When the block loads it would show a static image from the gif, generated on the fly with JavaScript with a play button. Clicking the static image would show the gif and loop the audio file.

And off the ai went, showing me some codes scrolling past and telling me how many lines of code it had written. After a while I had the block in the editor in front of me!

I could upload a gif and a mp3 to the block and it showed a preview. All looking good, I could preview the block right in the page. When I went to look at the published page, it looked ok, clicking the image started the sound, but the image vanished.

So I reported this and the ai offered a fix. At that point things went a bit wrong. The page stopped loading and restarting the whole thing failed to load the editor. After a few tries I gave up as I’d run out of time.

This evening I thought I’d try again, but a on a desktop rather than my now aging, 8th gen iPad. As this is all linked to my WordPress account I just opened the project. Getting the same problem I reported it to the ai and it fixed it again. To no avail. I repeated this a couple of times and tested each iteration. After a few goes everything just worked.

I downloaded the plug-in, uploaded it to a test site and it worked fine there too.

I also ran the plugin check plugin and almost no few errors. Presumably because this sort of plugin has fewer opportunities to make mistakes.

I guess this is as near to pure vibe coding as you get? I didn’t see any code at all in the process or discuss it with the ai. I just reported the problem. There is a code view where you can see all of the files created. They look as if they are very well organised and commented. I am sure if I was learning to make blocks this would help a lot.

The few times I’ve asked Claude.ai or chatGPT to do some coding I’ve had more of a view and understanding of what is going on. I’ve also noticed that if chatGPT tried to fix something it either manages straightaway or just repeatedly fails. Telex made a better job of fixing things on at least this one off.

I wonder if this will eventually make its way in to WordPress itself? What sort of overhead would having a bunch of extra block plugins added?

I guess that this could be a good learning tool, but that might require a bit more discipline in reading the code produced and other tutorials on creating blocks. I do feel I’ve learnt something when I’ve DIYed some simple stuff. Not that I’ve retained a lot, that would need more frequent application on my behalf.

I am looking forward to watching the progress with Telex and see where it goes if it gets out of the experimental phase.

Gif my own creation, ripped from video years ago. Sound from https://samplefocus.com

I’m finding that the simpler approach of FSE and the block editor is better. It may have had a bad start, but it has noticeably improved over the last few years. It may never please folks who will only use the “classic” editor. I understand. I’m going to be VERY conscious of those folks as I advocate for the “new” WordPress in the days to come. My hope is to demonstrate why it’s better in coming posts

I am looking forward to seeing these posts pop up in my reader.

I’ve noticed that the old edutalk.cc domain is broken on Radio Edutalk. I had a a couple of hundred or so links on this site to the .cc domain. Just used Better Search Replace – WordPress plugin to change edutalk.cc to edutalk.info which reported:

During the search/replace, 1 tables were searched, with 435 cells changed in 260 updates.

. Seems to have done the trick, I limited the search to the post content. Very much appreciate the plugin authors.

A screenshot of the result of the inaturalist plugin, a grid of images. Overlaid with shortcode and snippet of php

I’ve been playing a little with WordPress yesterday. A while back I made the very simplest plugin to display my latest iNaturalist submissions. iNaturalist has a API so I made a short code that would then use JavaScript to pull in the pictures once the page loaded.

The only problem with that is that when the page loaded it just displayed a div with ‘loading’ then replaced that with the images when a script pulled that in. This appeared in the RSS feed too.

I thought that it might be better to do this server side so the images would show in an RSS feed.

This worked out ok once I had remembered lines need to end in semi-colons in php. It was still very basic so I ran it past Claude.ai and asked for security and caching advice. It made a couple of suggestions which I read up a little about and implemented.

I’ve tried using AI for a few code ideas and I am beginning to see what does and doesn’t work. What doesn’t work for me is to ask it to build a whole idea. This has nearly always ended up in problems which seem to loop around. What does work is to ask for somethings specific. In this case I uploaded the plugin to Claude and asked it to find any security problems. It did and suggested some fixes. I am sure that these are simple things that any WordPress developer would carry out without thinking about.

I’ve also found getting basic information around a function works well with AI. For example Claude suggested using the transient to cache the data from the API. Asking ChatGPT to explain transient gave me a quick handle on the function. (I am sure Claude would have explained too).

Anyway I have made some progress.

This was a good day:

Meadow BrownBumble BeesRobinGrey HeronOspreyMeadow BrownLittle Egret

The above produced with this shortcode:

[[inaturalist user="troutcolor"  on="2024-07-30"]]

I’d now like to add some more ideas: names looking a little prettier than the description tooltip, maybe a lightbox view with more information and a link to iNaturalist. But I am not in any rush.

WordLand 0.5.15 is out. New version of Dave Winer’s WordPress editor. Nicest feature for me is the

Choosing a site now remembers previous sites you’ve chosen

I seem to have 25 sites linked to my WordPress account.

I also listen to Dave’s podcast episode on WordLand earlier this week.

WordLand is a good editor. For some people who write in WordPress it will be a godsend, and for others, a revelation. There should be a lot of editors in this space, because there is no one editor that’s good for everyone.

A very interesting post & comments on Jeremy Herve‘s blog: WordPress, WordLand, and the Open Web. Where there a variery of takes.

Personally the idea of lots of editors really resonates with me, I used quite a few. WordLand for this post although I’ll probably nip into the editor to add some tags.

In reply to Colophon (April 2025) by Aaron Davis.

As usual I am fascinated by your processes Aaron. Quite different from mine, so I have an itch to write my own colophon now.

I was also noticed you seem to have a taxonomy ‘series’ I’ve not noticed that else where. I am basing this on the links in the post meta.

I also wonder how you get on moving back and forth from classic to block on your two sites. To my surprise I am almost always in the block editor. Running some smoke tests on Glow Blogs at the weekend I was using classic for several posts and was a bit confused at times.