Skip to content
ianmjones

ianmjones

Always developing

  • Always Developing.show
  • Contact
  • Software
  • Work
  • Very Old Stuff
  • If you’re subscribed to my RSS feed, sorry about the additional 5 old “Gleaming Wails” posts. As part of my quest to merge all my scattered posts etc back into ianmjones.com, I decided to also create Vlog category posts for videos on my YouTube channel.

    That meant a handful of YouTube posts were slotted in the RSS feed as they’re dated within the last 10 posts on my site.

    For the curious, I used the Auto YouTube Importer plugin, which seems to have worked pretty well. Sure enough, it worked more smoothly when I tested it locally than on prod, but I think a couple of runs of its scheduled task picked up the remainder.

    Fingers crossed, it’ll auto create Vlog posts for any new videos I post to YouTube.

    ianmjones
    June 22, 2026
    Microblog
    website
    No comments on
  • Project R

    It’s 02:39 in the morning, and having watched Project Hail Mary with the family this evening (great film by the way), and a couple of episodes of Welcome to Wrexham before that, I have something stuck in my head that is preventing me from getting to sleep.

    There should be a show where Ryan Reynolds roams around in a Reliant Robin robbing items beginning with “R” from rich people whose name begins with R, such as Ryan Gosling, Rob McElhenney, Rachel McAdams, Ringo Starr, Rachel Weisz, Robbie Williams etc.

    It should be called Project R (spoken in your best pirate speak).

    Right, that’s written down, maybe I can get to sleep now.

    ianmjones
    June 22, 2026
    Microblog
    daft, ideas
    No comments on Project R
  • After a quick little chat with Kev Quirk, in the comments on one of his posts, I’ve decided to enable comments on my site for the first time in many many years. I think it’s been 18 years!

    I’ve set comments to auto-close 2 weeks after a post is published, and as such, only this post and my post from yesterday will have comments enabled for the moment.

    When I merged all my old sites back into this one, I was struck by how many comments I’d had over time, and remembered how nice it was to be able to have that brief interaction about something specific, with some very nice people. I miss that.

    ianmjones
    June 9, 2026
    Microblog
    comments, website
  • 24 years of blogging consolidated

    I’ve had a website of some form or another since 1998, but my oldest still available site dates back to February 2002. As I write this, that’s over 24 years ago.

    I merged the content from my three archived personal sites into this current incarnation over some evenings this past week, and a chunk of time over the rainy weekend.

    This site has now swelled from 20 posts and 3 pages, to 337 posts, 10 pages, and 289 comments!

    Basically I’ve changed my mind about reinventing the site every now and then, where I’d effectively do a nuke and pave and archive the old site off to a sub-domain. I now feel that having all my old stuff together in my personal site is more valuable, and tells the story of my online presence.

    It was quite a fun exercise, pulling down archives, massaging data from various sources, even generating scripts that would call wp-cli to create posts.

    And of course, I used WP Migrate a ton during this project, not only for pushing and pulling between my local machines and my WP Engine hosted dev, staging and prod environments, but also for backups at various stages, and the occasional find and replace.

    I’ve still got a bunch of cleanup to do, I’m pretty sure a load of posts need images relinked from when I switched to using the text only Gemini protocol, and there’s many many broken links to deal with. I also want to flesh out and better organise the archive of all my projects, but I can deal with that bit by bit as time permits.

    It just feels nice to have all my stuff in one place again.

    ianmjones
    June 8, 2026
    Blog
    website, wordpress
  • My mini homelab cluster using Uncloud on IncusOS and a DigitalOcean Droplet | Always Developing #258

    Always Developing Show #258 thumbnail

    With Uncloud it’s super easy to set up a cluster of Docker nodes meshed together with WireGuard for running a bunch of services.

    In this video I show how I’ve set up my tiny homelab to run Uncloud on top of Incus and IncusOS, plus a DigitalOcean Droplet for public access.

    I also scale up the cluster with a new Incus virtual machine, adding it to the Uncloud cluster with a Dozzle agent to capture it’s Docker stats.

    The main players:

    Uncloud: https://uncloud.run/
    IncusOS: https://linuxcontainers.org/incus-os/introduction/
    Incus: https://linuxcontainers.org/incus/introduction/
    DigitalOcean ($200 credit referral link): https://m.do.co/c/aa4e4d18cf49

    Supporting cast:

    Docker: https://www.docker.com/
    Caddy: https://caddyserver.com/
    Dozzle: https://dozzle.dev/
    Concourse: https://concourse-ci.org/
    Uptime Kuma: https://uptimekuma.org/

    Always Developing Playlist:- https://www.youtube.com/playlist?list=PLDWtdmaxq1few8CjnK4MC3LLBMVpi_aCS

    ianmjones
    February 17, 2026
    Blog, Vlog
    alwaysdeveloping, cluster, docker, homelab, incus, linux, uncloud, youtube
  • Gleaming Wails: Starting on welcome screen shown when no snippets available | Always Developing #257

    Live coding an app with Gleam, Lustre, Go and Wails.

    In this session I get started on the welcome screen shown when there aren’t any snippets yet, and test that the switch of view works if there were to be some snippets available in the model.

    Snippet Expander:- https://snippetexpander.org

    Source Code: https://git.sr.ht/~ianmjones/snippetexpander

    Always Developing Playlist:- https://www.youtube.com/playlist?list=PLDWtdmaxq1few8CjnK4MC3LLBMVpi_aCS

    Blog:- https://ianmjones.com
    Mastodon:- https://fosstodon.org/@ianmjones

    Tech Used:
    Gleam:- https://gleam.run
    Lustre:- https://hexdocs.pm/lustre
    Go:- https://golang.org
    Wails:- https://wails.io

    Ian Jones
    February 2, 2026
    Vlog
  • Gleaming Wails: Snapshot testing Gleam & Lustre UI for Wails with Birdie | Always Developing #256

    Live coding an app with Gleam, Lustre, Go and Wails.

    In this session I get snapshot testing working for the Go & Wails based Snippet Expander app’s UI built with Gleam & Lustre.
    I add the Birdie package for performing snapshot testing of the Gleam & Lustre code, and end up refactoring the JavaScript FFI code that hooks into the Wails backend to get around some issues with running the tests.

    Snippet Expander:- https://snippetexpander.org

    Source Code: https://git.sr.ht/~ianmjones/snippetexpander

    Always Developing Playlist:- https://www.youtube.com/playlist?list=PLDWtdmaxq1few8CjnK4MC3LLBMVpi_aCS

    Blog:- https://ianmjones.com
    Mastodon:- https://fosstodon.org/@ianmjones

    Tech Used:
    Gleam:- https://gleam.run
    Lustre:- https://hexdocs.pm/lustre
    Go:- https://golang.org
    Wails:- https://wails.io

    Ian Jones
    January 12, 2026
    Vlog
  • Gleaming Wails: Improve handling of error state when starting daemon | Always Developing #255

    Live coding an app with Gleam, Lustre, Go and Wails.

    Just a quick session whereby I make sure when I show the Wails ErrorDialog after failing to start the daemon, the correct state is set in the Gleam frontend code.
    A bonus change was noticing that the info notice wasn’t properly styled, so I updated the CSS used by the Gleam frontend to now have an info class it can use, and I set more notices to be InfoNotice type.

    Snippet Expander:- https://snippetexpander.org

    Source Code: https://git.sr.ht/~ianmjones/snippetexpander

    Always Developing Playlist:- https://www.youtube.com/playlist?list=PLDWtdmaxq1few8CjnK4MC3LLBMVpi_aCS

    Blog:- https://ianmjones.com
    Mastodon:- https://fosstodon.org/@ianmjones

    Tech Used:
    Gleam:- https://gleam.run
    Lustre:- https://hexdocs.pm/lustre
    Go:- https://golang.org
    Wails:- https://wails.io

    Ian Jones
    January 8, 2026
    Vlog
  • Gleaming Wails: Making illegal states impossible in the Gleam frontend | Always Developing #254

    Live coding an app with Gleam, Lustre, Go and Wails.

    In this session I fix the Gleam & Lustre app’s data model to consolidate the multiple fields related to tracking the state of the daemon down to a single field. The new field uses it’s own type which represents the allowed states only.

    Snippet Expander:- https://snippetexpander.org

    Source Code: https://git.sr.ht/~ianmjones/snippetexpander

    Always Developing Playlist:- https://www.youtube.com/playlist?list=PLDWtdmaxq1few8CjnK4MC3LLBMVpi_aCS

    Blog:- https://ianmjones.com
    Mastodon:- https://fosstodon.org/@ianmjones

    Tech Used:
    Gleam:- https://gleam.run
    Lustre:- https://hexdocs.pm/lustre
    Go:- https://golang.org
    Wails:- https://wails.io

    Ian Jones
    January 5, 2026
    Vlog
  • Happy New Year! 🎉

    Today I published “Gleaming Wails: Idiomatic Gleam & Lustre Msg naming with nice refactor | Always Developing #253” to my YouTube channel.

    In this session I switch to using more conventional names for the app’s Lustre Msg types, which turns out awesome as it helps me see where I was going wrong, could remove some messages, and simplify the update function!

    ianmjones
    January 1, 2026
    Microblog, Vlog
    alwaysdeveloping, coding, gleam, live, lustre, snippetexpander, wails, youtube
1 2 3 … 63
Next Page
  • Mail
  • Mastodon
  • YouTube
  • RSS Feed
  • Blog (251)
  • Microblog (104)
  • Podcast (6)
  • Vlog (272)
  • June 2026 (4)
  • February 2026 (2)
  • January 2026 (5)
  • December 2025 (10)
  • November 2025 (2)
  • September 2025 (2)
  • August 2025 (2)
  • July 2025 (1)
  • June 2025 (3)
  • May 2025 (3)
  • April 2025 (1)
  • March 2025 (2)
  • February 2025 (4)
  • November 2024 (1)
  • September 2024 (1)
  • August 2024 (2)
  • July 2024 (2)
  • May 2024 (4)
  • April 2024 (7)
  • March 2024 (1)
  • January 2024 (1)
  • December 2023 (7)
  • November 2023 (5)
  • September 2023 (1)
  • August 2023 (1)
  • April 2023 (1)
  • December 2022 (1)
  • November 2022 (2)
  • October 2022 (2)
  • September 2022 (4)
  • August 2022 (14)
  • July 2022 (12)
  • June 2022 (20)
  • May 2022 (15)
  • April 2022 (16)
  • March 2022 (16)
  • February 2022 (21)
  • January 2022 (14)
  • December 2021 (15)
  • November 2021 (15)
  • October 2021 (15)
  • September 2021 (6)
  • August 2021 (11)
  • July 2021 (5)
  • June 2021 (15)
  • May 2021 (22)
  • April 2021 (19)
  • March 2021 (1)
  • February 2021 (1)
  • January 2021 (2)
  • September 2020 (1)
  • March 2020 (6)
  • December 2019 (2)
  • November 2019 (1)
  • October 2019 (1)
  • July 2019 (6)
  • June 2019 (3)
  • May 2019 (5)
  • April 2019 (5)
  • February 2019 (1)
  • January 2019 (4)
  • December 2018 (1)
  • November 2018 (1)
  • October 2018 (3)
  • September 2018 (2)
  • August 2018 (12)
  • April 2018 (1)
  • February 2018 (1)
  • November 2017 (1)
  • August 2017 (1)
  • July 2017 (1)
  • May 2017 (1)
  • April 2017 (4)
  • March 2017 (1)
  • December 2016 (2)
  • September 2016 (2)
  • June 2016 (1)
  • May 2016 (1)
  • April 2016 (1)
  • February 2016 (2)
  • December 2015 (1)
  • November 2015 (1)
  • October 2015 (1)
  • September 2015 (1)
  • June 2015 (1)
  • May 2015 (1)
  • March 2015 (1)
  • January 2015 (1)
  • October 2012 (1)
  • September 2009 (2)
  • July 2009 (1)
  • March 2009 (2)
  • December 2008 (1)
  • November 2008 (1)
  • October 2008 (1)
  • July 2008 (1)
  • May 2008 (1)
  • March 2008 (2)
  • February 2008 (1)
  • January 2008 (2)
  • December 2007 (4)
  • November 2007 (2)
  • October 2007 (2)
  • September 2007 (4)
  • August 2007 (1)
  • July 2007 (5)
  • June 2007 (1)
  • May 2007 (2)
  • April 2007 (1)
  • March 2007 (5)
  • February 2007 (3)
  • January 2007 (3)
  • December 2006 (1)
  • November 2006 (2)
  • October 2006 (2)
  • September 2006 (2)
  • August 2006 (1)
  • July 2006 (2)
  • June 2006 (5)
  • May 2006 (2)
  • April 2006 (4)
  • March 2006 (8)
  • February 2006 (14)
  • January 2006 (5)
  • December 2005 (3)
  • November 2005 (6)
  • October 2005 (11)
  • September 2005 (7)
  • August 2005 (6)
  • July 2005 (7)
  • June 2005 (8)
  • May 2005 (2)
  • April 2005 (5)
  • March 2005 (3)
  • February 2005 (4)
  • January 2005 (1)
  • December 2004 (2)
  • November 2004 (5)
  • October 2004 (8)
  • September 2004 (4)
  • August 2004 (1)
  • January 2004 (1)
  • October 2003 (1)
  • September 2003 (2)
  • August 2003 (2)
  • May 2003 (1)
  • February 2003 (1)
  • November 2002 (1)
  • July 2002 (1)
  • June 2002 (2)
  • March 2002 (1)
  • February 2002 (7)
  • air/flex/flash (10)
  • alwaysdeveloping (12)
  • business (93)
  • casedetective (35)
  • ci (4)
  • citydesk (9)
  • cluster (1)
  • coding (3)
  • comments (1)
  • concourse (4)
  • conference (11)
  • cosmic (1)
  • daft (1)
  • database (6)
  • deliciousbrains (14)
  • design (1)
  • desktop (2)
  • development (3)
  • docker (4)
  • download (1)
  • elm (1)
  • films (1)
  • fogbugz (42)
  • freebsd (1)
  • friends/family (6)
  • garageband (1)
  • git (1)
  • gleam (6)
  • health (3)
  • homelab (1)
  • hosting (2)
  • ideas (1)
  • incus (1)
  • informix (6)
  • javascript (1)
  • kamal (2)
  • life (17)
  • linux (8)
  • live (3)
  • lustre (3)
  • mac (1)
  • mailing list (1)
  • microisv (92)
  • microsoft (2)
  • music (3)
  • open source (9)
  • php (1)
  • plugin (15)
  • productivity (12)
  • realbasic (23)
  • refreshdb (6)
  • release (1)
  • review (2)
  • simplicity (1)
  • sneak-peek (1)
  • snippetexpander (5)
  • software (7)
  • sourcehut (2)
  • technology (20)
  • template (1)
  • testing (2)
  • uncloud (1)
  • wails (3)
  • website (36)
  • windows (2)
  • wordpress (24)
  • wp-cron-pixie (4)
  • xojo (23)
  • youtube (12)
  • Mail
  • Mastodon
  • YouTube
  • RSS Feed