Skip to content
ianmjones

ianmjones

Always developing

  • Always Developing.show
  • Contact
  • Software
  • Work
  • Very Old Stuff
  • Elm to Gleam & Lustre – I now understand Gleam 1.1’s @internal attribute! | Always Developing #241.1

    In this session I explain where I got things wrong in the previous video, and what the `@internal` attribute is actually for.

    I then revert the current code back to using an internal module so that the public functions and types do not get exported in the final JavaScript.

    https://gleam.run
    https://github.com/lustre-labs/lustre

    It all started after I watched Kris Jenkin’s excellent chat with Louis Pilfold, Gleam’s creator, on Developer Voices:
    https://www.youtube.com/watch?v=RntfkL8lUY4

    —

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

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

    ianmjones
    May 6, 2024
    Vlog
  • Elm to Gleam & Lustre – Exploring Gleam 1.1’s new @internal attribute | Always Developing #241

    In this session I try out Gleam 1.1’s new `@internal` attribute that I thought is supposed to allow you to make a type public in a module so it can be tested, but not export it in the final JavaScript etc.

    It doesn’t go as I’d hoped. 😞

    In the next video I explain where I got things wrong, and what the `@internal` attribute is actually for.

    https://gleam.run
    https://github.com/lustre-labs/lustre

    It all started after I watched Kris Jenkin’s excellent chat with Louis Pilfold, Gleam’s creator, on Developer Voices:
    https://www.youtube.com/watch?v=RntfkL8lUY4

    —

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

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

    ianmjones
    May 6, 2024
    Vlog
  • Elm to Gleam & Lustre – Succeeding to decode some JSON for the Model 🎉 | Always Developing #240

    In this session I work out what went wrong in my last video, successfully decoding a JSON field that contains a string to its boolean representation. 🎉

    I make sure the tests are working, add more, and then ensure multiple fields and the main string to bool function are independently tested from the Model decoding.

    https://gleam.run
    https://github.com/lustre-labs/lustre

    It all started after I watched Kris Jenkin’s excellent chat with Louis Pilfold, Gleam’s creator, on Developer Voices:
    https://www.youtube.com/watch?v=RntfkL8lUY4

    —

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

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

    ianmjones
    May 2, 2024
    Vlog
  • Elm to Gleam & Lustre – Failing to decode JSON for the Model 🤦 | Always Developing #239

    In this session I fail miserably at trying to work out how I should decode the Lustre app’s flags if they’re JSON, I really should run through the Gleam tutorial to get some understanding of how to use the Result type! 🤦

    https://gleam.run
    https://github.com/lustre-labs/lustre

    It all started after I watched Kris Jenkin’s excellent chat with Louis Pilfold, Gleam’s creator, on Developer Voices:
    https://www.youtube.com/watch?v=RntfkL8lUY4

    —

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

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

    ianmjones
    April 29, 2024
    Vlog
  • Elm to Gleam & Lustre – creating the data Model | Always Developing #238

    In this session I port across the data Model from Elm to Gleam, and start to think about how it’ll be populated from the Lustre app’s flags.

    https://gleam.run
    https://github.com/lustre-labs/lustre

    It all started after I watched Kris Jenkin’s excellent chat with Louis Pilfold, Gleam’s creator, on Developer Voices:
    https://www.youtube.com/watch?v=RntfkL8lUY4

    —

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

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

    ianmjones
    April 25, 2024
    Vlog
  • Elm to Gleam & Lustre – exploring pub vs private functions (addendum) | Always Developing #237.1

    Very quick video showing how I’ve now moved the Model and decode_flags functions from the main Gleam module into an internal/data.gleam module so that those two item do not get exported by the built JavaScript.

    https://gleam.run
    https://github.com/lustre-labs/lustre

    It all started after I watched Kris Jenkin’s excellent chat with Louis Pilfold, Gleam’s creator, on Developer Voices:
    https://www.youtube.com/watch?v=RntfkL8lUY4

    —

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

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

    ianmjones
    April 22, 2024
    Vlog
  • Elm to Gleam & Lustre – exploring pub vs private functions | Always Developing #237

    Just a quick exploration of whether functions need to be public or private to be unit tested, and whether public functions are exported in the JavaScript produced by Gleam.

    https://gleam.run
    https://github.com/lustre-labs/lustre

    It all started after I watched Kris Jenkin’s excellent chat with Louis Pilfold, Gleam’s creator, on Developer Voices:
    https://www.youtube.com/watch?v=RntfkL8lUY4

    —

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

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

    ianmjones
    April 22, 2024
    Vlog
  • Elm to Gleam & Lustre – lustre.application | Always Developing #236

    In this session I first ensure the new JavaScript file produced by Gleam is imported into the UI with a version param.

    I then switch the example app from lustre.simple application type, to lustre.application, fixing up the function annotations and adding a proper Model as I go along.

    I finish off by making sure I can get unit tests to run.

    https://gleam.run
    https://github.com/lustre-labs/lustre

    It all started after I watched Kris Jenkin’s excellent chat with Louis Pilfold, Gleam’s creator, on Developer Voices:
    https://www.youtube.com/watch?v=RntfkL8lUY4

    —

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

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

    ianmjones
    April 18, 2024
    Vlog
  • I'm rather interested in learning the Gleam language, so I've started a new series of YouTube videos, "live coding" converting an Elm app to Gleam & Lustre.

    Elm to Gleam & Lustre – Setup | Always Developing #235

    ianmjones
    April 15, 2024
    Microblog, Vlog
    alwaysdeveloping, youtube
  • Elm to Gleam & Lustre – Setup | Always Developing #235

    In this session I start to convert a WordPress plugin that uses Elm for its front end to use Gleam and Lustre instead.

    After a bit on fumbling around, I get the basic build up and running, bundling and importing the JavaScript output of Lustre’s example counter application into the WordPress dashboard widget UI.

    https://gleam.run
    https://github.com/lustre-labs/lustre

    It all started after I watched Kris Jenkin’s excellent chat with Louis Pilfold, Gleam’s creator, on Developer Voices:
    https://www.youtube.com/watch?v=RntfkL8lUY4

    —

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

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

    ianmjones
    April 15, 2024
    Vlog
Previous Page
1 … 4 5 6 7 8 … 63
Next Page
  • Mail
  • Mastodon
  • YouTube
  • RSS Feed
  • Blog (252)
  • Microblog (105)
  • Podcast (6)
  • Vlog (272)
  • August 2026 (1)
  • July 2026 (1)
  • 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 (9)
  • 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 (2)
  • review (2)
  • simplicity (1)
  • sneak-peek (1)
  • snippetexpander (6)
  • software (7)
  • sourcehut (2)
  • technology (20)
  • template (1)
  • testing (2)
  • uncloud (1)
  • wails (3)
  • website (37)
  • windows (2)
  • wordpress (24)
  • wp-cron-pixie (4)
  • xojo (23)
  • youtube (12)
  • Mail
  • Mastodon
  • YouTube
  • RSS Feed