Month: May 2021

  • First Always Developing video recording failure đŸ¤Ļī¸

    Ugh, it had to happen at some point, and today was the day.

    I couldn't record my daily Always Developing session this morning as I had a couple of things to do before work, and my computer was acting up and needed some TLC anyway. So instead I recorded session #30 this evening.

    However, after finishing up a fantastic recording of me adding terminal emulator support to Snippet Pixie, I gave the mp4 file a quick preview only to find that it had no sound! â˜šī¸

    You can see me in the bottom right hand of the screen moving my lips and gesturing away, but alas my wonderfully eloquent commentary is unheard.

    I tried checking the original mkv file, but it too has no sound.

    It's a bit of a head-scratcher as I explicitly check the levels in OBS before every recording and it uses the mic directly, not the "system default". Although I do have to set the system default audio input and output devices after any reboot as otherwise it tends to pick the wrong devices, but I forgot to do that this morning when I was fixing some stuff up. I guess there's a difference between what OBS shows in the audio mixer and what is actually used for recording. đŸ¤ˇī¸

    It's quite annoying as the session went really well, and I was quite proud to be able to get Snippet Pixie working with terminals simply by holding down the Shift key when selecting a snippet from the Search and Paste window. I even prepared the 1.5.2 release on camera, which was a nice way of showing what kind of thing you need to do to release an update to the elementary OS App Center. Although I did have a problem right at the end with getting to the developer dashboard, which of course worked straight away after I finished recording.

    Once I realised that the video was duff, I decided to check all my settings and make a follow-up recording to test that my audio was working again. So in session #30.1 I briefly explain what #30 was all about and gave a quick demo of the new version. As I'd already gone ahead and started the release process of Snippet Pixie 1.5.2 to the App Center, and pushed out the snap version already, I then went on to prepare and submit the nixpkgs/NixOS PR too. So if you're at all interested in how you release an update of a simple package to nixpkgs, Always Developing #30.1 might be worth a look.

    [NO AUDIO] Adding terminal emulator support to Snippet Pixie (kinda) | Always Developing #30

    Demo of new Snippet Pixie 1.5.2 and then submit to nixpkgs/NixOS | Always Developing #30.1

    Yup, I decided to release #30 even though it has no sound, just for giggles. đŸ˜‚ī¸ This will be especially amusing to Erik, my team mate at Delicious Brains, as we have a bit of a running joke about audio problems with our daily stand-up meetings.

    The good news is that Snippet Pixie's new ability to Shift-Ctrl-V paste a snippet into the command line or application like Vim running in a terminal, got lots of use while writing this little post! Simply using Shift-Return or Shift-Click in Snippet Pixie's Search and Paste window is incredibly convenient. đŸŽ‰ī¸

  • Yay, this entry's filename and front matter were auto populated by Snippet Pixie while working in the terminal! đŸŽ‰ī¸

  • 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

  • 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.

  • 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

  • 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!

  • Is this thing on?

    Tap, tap, tap … is this thing on?