Skip to content
ianmjones

ianmjones

Always developing

  • Always Developing.show
  • Contact
  • Software
  • Work
  • Very Old Stuff
  • A very unproductive exploration of how to format a Svelte form component | Always Developing #29

    Live coding an app with SvelteJS, Go, CockroachDB, and Juju Charms in Python. Sometimes Linux desktop app or WordPress plugin development too.

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

    Before starting every work day, I do half an hour of noodling on side projects, making sure to keep them moving forward, albeit slowly.

    Working on these side projects is how I learn new programming languages, frameworks and technologies.

    Chances are I’ll fail miserably each and every day, so at the very least you can take comfort in seeing a so-called senior developer fumbling through some development with little success.

    Blog:- https://ianmjones.com
    Twitter:- https://twitter.com/ianmjones

    Tech Used:
    Svelte:- https://svelte.dev
    Go:- https://golang.org
    CockroachDB:- https://www.cockroachlabs.com
    Juju:- https://juju.is

    ianmjones
    May 25, 2021
    Vlog
  • I'm so rubbish at social stuff.

    Last week I wrote an article about how my personal site is now a Gemini Capsule by default, and only just now remembered to post something on Twitter about it. 🤦️

    Anyway, the post is at the following link.

    Switched site to Gemini

    ianmjones
    May 24, 2021
    Microblog
  • Starting work on AddMeasurement Svelte component for GoalMonitor | Always Developing #28

    Live coding an app with SvelteJS, Go, CockroachDB, and Juju Charms in Python. Sometimes Linux desktop app or WordPress plugin development too.

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

    Before starting every work day, I do half an hour of noodling on side projects, making sure to keep them moving forward, albeit slowly.

    Working on these side projects is how I learn new programming languages, frameworks and technologies.

    Chances are I’ll fail miserably each and every day, so at the very least you can take comfort in seeing a so-called senior developer fumbling through some development with little success.

    Blog:- https://www.ianmjones.com
    Twitter:- https://twitter.com/ianmjones

    Tech Used:
    Svelte:- https://svelte.dev
    Go:- https://golang.org
    CockroachDB:- https://www.cockroachlabs.com
    Juju:- https://juju.is

    ianmjones
    May 24, 2021
    Vlog
  • Switched site to Gemini

    If you can see this, then I’ve successfully switched this site to be a Gemini Capsule by default.

    ianmjones.com via the Gemini protocol

    ianmjones.com via ye olde HTTPS protocol

    A few days ago I started playing with Gemini, initially writing a couple of test posts to see whether it was going to fly.

    Previous post: Is this thing on?

    Previous post: Hello Gemini World

    I encourage you to quickly check out that “Hello Gemini World” post to get a taste of how simple the Gemtext format is. It’s effectively a reduced line based Markdown format.

    A quick introduction to “gemtext” markup at Project Gemini

    The Gemtext format is very attractive to me, its incredibly easy to write and read, not only for humans, but software too.

    As noted in my previous post, I believe the format’s constraints help you concentrate on writing rather than thinking about text markup style, link placement, and images etc. With so few formatting options, the words you use have more significance.

    An incredibly appealing aspect of the Gemini protocol is its compatibility with terminal based clients (browsers if you will). I’m using one that seems to be rather popular called Amfora.

    Amfora: A fancy terminal browser for the Gemini protocol

    Over the last few weeks I’ve been using Amfora in preference to Firefox where possible to read a bunch of articles, bookmarking them and then enjoying the distraction free reading experience while having my breakfast. I’m a big fan of Instapaper, but the formatting of articles written in Gemtext is even easier to read.

    Being keyboard driven it’s very fast to navigate sites, including just hitting a number to go to visit a link. And my site’s new home page looks lovely in Amfora, especially with a slightly modified Nord theme.

    ianmjones.com in Amfora

    Amfora Nord theme

    How it’s built

    But Ian, you didn’t just build the site in raw Gemtext did you? And how the devil am I able to see it in my web browser anyway?

    I’m glad you asked! 😉️

    This site is now built with a tool called kiln.

    kiln on sr.ht

    This is a lovely little bit of software written in Go that takes your “.gmi” files that optionally have a little bit of extra “frontmatter” at the top, mixes them with some templates, and spits out a site with nice index pages and feed files etc.

    If you look closely at the changelog for kiln you may see that the author, Adnan Maolood, was kind enough to accept a couple of bug fixes from yours’ truly.

    While kiln is relatively simple, it’s very powerful, utilising Go templates for some serious flexibility of output.

    The majority of the site’s content comes from the Markdown posts I had in the WordPress version of the site I’ve been running for a few years now.

    I backed up the site’s database with WP Migrate DB Pro, and then tar’d up all the site’s files (including the db backup) and downloaded it.

    WP Migrate DB Pro

    Then I re-hydrated just the database and extracted all the posts I wanted with a simple bit of SQL.

    I wrote a shell script that ran through those records to extract the fields I needed such as title, date and content, and then processed them to clean up the titles, content and file names as much as possible.

    The shell script included usage of a Python script called md2gemini that did the heavy lifting when it comes to removing all the stuff Gemtext doesn’t support and moving links onto their own lines.

    md2gemini on GitHub

    The result was far from perfect (mainly because of some WP encoding stuff), but helped immensely, definitely something I could work with. The shell script I wrote went through many iterations as I fine tuned the output for the different types of content I had in the WP based site, from articles to microblog posts to podcast episodes.

    Eventually I had all the posts/microblogs/podcasts output to somewhat usable gmi files that were handled well by kiln, and which I could just manually clean up pretty easily (I don’t have a huge amount of content, yet).

    With kiln you can naturally output a site that uses the Gemini protocol (gemini://) and Gemtext formatted text that Gemini browsers happily read. However, you can also pre or post process the output in a build task, and this means you can use a tool such as gmnitohtml to create a version of the site for the web.

    gmnitohtml on sr.ht

    That gmnitohtml application is also by Adnan, and works really well to convert Gemtext to HTML.

    So I built a very simple HTML template, sprinkled in some custom CSS (Nord flavoured of course), and Bob’s your uncle, out pops a nice clean no-nonsense web site.

    ianmjones.com web version

    At some point I should probably write up a tutorial on how to use kiln, might be useful to someone.

    Oh, and this site is hosted via sourcehut pages.

    sourcehut pages

    I’ve been using sourcehut for a little over a year now, very much appreciate the simplicity and power. It’s great stuff, and I’m using git.sr.ht for the site’s repo along with builds.sr.ht to build and deploy the site every time I commit a change.

    sourcehut.org

    And what’s really nice is that Gemini is fully supported, so both the Gemini and web versions of the site are hosted there and deployed at the same time.

    There’s a good chance that I missed something while re-building this site, so if you find any problems or just want to chat about Gemini or how I built the site, please drop me a line.

    My contact details.

    ianmjones
    May 20, 2021
    Blog
  • Really happy to see 1Password for Linux getting its official release today.

    Welcoming Linux to the 1Password Family

    I’ve been using the beta snap packaged versions for a long time now, great to be able to refresh to the stable version.

    Updating 1Password snap from edge to stable

    ianmjones
    May 19, 2021
    Microblog
  • Hello Gemini World

    Yup, this post has been written for my Gemini Capsule, hosted on pages.sr.ht, which also does static site hosting 😉

    Project Gemini

    Gemini Capsule hosting at pages.sr.ht

    Static site hosting at pages.sr.ht

    I'm currently investigating using Gemini as the source for my written output. As the Gemini protocol is very much about simple text rendering, it creates some nice constraints that help you focus.

    Gemtext Test

    The rest of this page shows everything allowed in Gemtext. It's really here just so that I can test styling the content when converted to HTML!

    This is normal text.

    Heading 1

    Heading 2

    Heading 3

    While links are written in the same way regardless of the URL protocol or file type, some Gemini clients show links a little differently depending on what they point to. So here's a few different URLs.

    A gemini link.

    A https link.

    An image link.

    An SVG link.

    The following is a list…

    • List item one.
    • List item two.
    • List item three.

    The following is a quote…

    Always developing

    Finally, we have pre formatted text…

       _                   _                 
      (_)__ ____  __ _    (_)__  ___  ___ ___
     / / _ `/ _ \/  ' \  / / _ \/ _ \/ -_|_-<
    /_/\_,_/_//_/_/_/_/_/ /\___/_//_/\__/___/
                     |___/                   
    

    That's all folks!

    ianmjones
    May 15, 2021
    Blog
  • Snippet Pixie on elementary OS 6.0 beta – Part 2: OS config, build & test | Always Developing #26

    0:00 Finishing install of all my preferred apps for new elementary OS 6.0 install
    37:00 Final config and check of new elementary OS 6.0 install
    45:00 Compile and test of Snippet Pixie

    Live coding an app with SvelteJS, Go, CockroachDB, and Juju Charms in Python. Sometimes Linux desktop app or WordPress plugin development too.

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

    Before starting every work day, I do half an hour of noodling on side projects, making sure to keep them moving forward, albeit slowly.

    Working on these side projects is how I learn new programming languages, frameworks and technologies.

    Chances are I’ll fail miserably each and every day, so at the very least you can take comfort in seeing a so-called senior developer fumbling through some development with little success.

    Blog:- https://www.ianmjones.com
    Twitter:- https://twitter.com/ianmjones

    Tech Used:
    Svelte:- https://svelte.dev
    Go:- https://golang.org
    CockroachDB:- https://www.cockroachlabs.com
    Juju:- https://juju.is

    ianmjones
    May 13, 2021
    Vlog
  • Snippet Pixie on elementary OS 6.0 beta – Part 1: OS install & config | Always Developing #25

    Live coding an app with SvelteJS, Go, CockroachDB, and Juju Charms in Python. Sometimes Linux desktop app or WordPress plugin development too.

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

    Before starting every work day, I do half an hour of noodling on side projects, making sure to keep them moving forward, albeit slowly.

    Working on these side projects is how I learn new programming languages, frameworks and technologies.

    Chances are I’ll fail miserably each and every day, so at the very least you can take comfort in seeing a so-called senior developer fumbling through some development with little success.

    Blog:- https://www.ianmjones.com
    Twitter:- https://twitter.com/ianmjones

    Tech Used:
    Svelte:- https://svelte.dev
    Go:- https://golang.org
    CockroachDB:- https://www.cockroachlabs.com
    Juju:- https://juju.is

    ianmjones
    May 13, 2021
    Vlog
  • AddGoal API endpoint handles dates properly, quick test of Svelte frontend | Always Developing #24

    Live coding an app with SvelteJS, Go, CockroachDB, and Juju Charms in Python. Sometimes Linux desktop app or WordPress plugin development too.

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

    Before starting every work day, I do half an hour of noodling on side projects, making sure to keep them moving forward, albeit slowly.

    Working on these side projects is how I learn new programming languages, frameworks and technologies.

    Chances are I’ll fail miserably each and every day, so at the very least you can take comfort in seeing a so-called senior developer fumbling through some development with little success.

    Blog:- https://www.ianmjones.com
    Twitter:- https://twitter.com/ianmjones

    Tech Used:
    Svelte:- https://svelte.dev
    Go:- https://golang.org
    CockroachDB:- https://www.cockroachlabs.com
    Juju:- https://juju.is

    ianmjones
    May 12, 2021
    Vlog
  • More red-green tests for Go API server’s AddGoal endpoint – date validation | Always Developing #23

    Live coding an app with SvelteJS, Go, CockroachDB, and Juju Charms in Python. Sometimes Linux desktop app or WordPress plugin development too.

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

    Before starting every work day, I do half an hour of noodling on side projects, making sure to keep them moving forward, albeit slowly.

    Working on these side projects is how I learn new programming languages, frameworks and technologies.

    Chances are I’ll fail miserably each and every day, so at the very least you can take comfort in seeing a so-called senior developer fumbling through some development with little success.

    Blog:- https://www.ianmjones.com
    Twitter:- https://twitter.com/ianmjones

    Tech Used:
    Svelte:- https://svelte.dev
    Go:- https://golang.org
    CockroachDB:- https://www.cockroachlabs.com
    Juju:- https://juju.is

    ianmjones
    May 11, 2021
    Vlog
Previous Page
1 … 29 30 31 32 33 … 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