Skip to content

Journalλ︎

Data Driven Components & Neovim updates

Practicalli Astro config for Clojure development with Neovim initial release.

Presented my experiences with Component libraries to London Clojurians this week, specifically comparing Integrant and Donut-party/system. I discussed my Service REPL workflow to show the benefits and constraints of these two libraries.

For component libraries to work well, then code should be reloadable. There are a few parts of the Clojure language that do make it harder to reload code, (deftype, defrecord, etc), although I tend to avoid those parts anyway.

Issues this week

practicalli/astro:

Montly Clojure Library updates

Exploring the mysteries of the Bazel build tool at work. Whilst technically its a very powerful tool it really lacks a good developer experience.

Its supposed to be a more powerful make, although ironically I use a Makefile so that Bazel is much easier to use.

It could be an opportunity to use Babashka, but that would be more work than using a Makefile as I dont have much Babashka experience.

Monthly Library Updates for Practicalli Projects

Monthly updates for Practicalli projects, driven by a scheduled version GitHub workflow that uses antq to report on project library dependencies and GitHub action library versions.

  • Release: Clojure CLI Config - 2024-07-07
  • Release: Project Templates - 2024-07-07

Which-key version 3 released, fixing localleader issue and providing a horizontal menu option.

Flexiana Interview

I enjoyed the interview with Flexiana team this week, they are very friendly and it we had some very interesting discussions. I included my interview preparation notes which were mosty the same as shared in the video.

A blip with Emacs 29.4 release stopped the which-key menu from showing when in a major mode. This affected both the leader and local leader key. Within a couple of hours the issue was resolved before I really figured out the cause. I installed Emacs 29.4 on Termux to replicate an issue that was reported in the #spacemacs channel of the Clojurians Community slack community.

Conjure LSP bug & Cycling video editing

Updated to Kitty 0.35.1 easily and switching between dark and light themes working instantly again.

Diagnosed a 'new buffer' error with Conjure when using Neovim 0.9.0 and when opening a Clojure file, although everything works well in 0.10.0. EDIT: The maintainer added a fix to the develop branch for testing.

#582 REVIEW: Conjure throws new Buffer error

Video editing of footage taken by the front mounted camera on my bicycle. Advanced cycle training at Gravesend at the start of June. Bigfoot Cycling Club at Gravesent Cyclopark

Took a few days away from the computer to work on the garden as its nice and sunny. A mostly sunny ride on Saturday around the Kent countryside.

Neovim on Termux enhancements

More Neovim updates and getting closer to a release of Practicalli Astro-config

I have been using Neovim (and Emacs) on Termux, so I can code on my Android tablet or Android smart phone. I typically use an external keyboard (e.g. Keyboard.io Atreus or Model100), especially when considerable typing is involved.

As the hardware and compilation tooling is different for Android Linux (compared to amd64 linux) the Clojure and Lua LSP language servers would not install via the Mason manager. As these two languages are in the top 3 languages I use, then it is a great boost to get these servers working locally and configuring Neovim to use them instead.

I use the date command when I had a need to tweak the time on my Linux computer, saves launching the Settings app and using the mouse.

Timezones made easy

time.is makes figuring out timezones really simple. See the current time in any timezone across the world.

time.is very useful for events where people attend from different timezones. Set the local time and share a link for others who will see the event time in their own timezone.

Neovim

I'm making some changes to the Practicalli AstroNvim configuration (AstroNvim4) over the next few days.

All my personal Neovim & plugin options (and associated workflow biases) will only be in lua/plugins/practicalli.lua. With these options only in one file, anyone else using the configuration can easily disable them.

I will encourage other users to create there own lua/plugins/personal.lua customisation so any changes from upstream will be easier to merge.

The GitHub repository will be renamed to practicalli/astro-config which its much easier to write and say during screencasts. GitHub should redirect when pulling updates

This week I will update Practicalli Neovim book install guide with new repo and further info on how to use the config effectively (especially with your own customisations)

Then the first official release of the config will be created via GitHub releases.

If I have time, there are lots of things to add to Practicalli Neovim book too (including a few more plugins I'm using in the config)

Multiple SSH keys for Commercial and Community work

Its easy to go down a rabbit hole of your own making when trying to make something complex work. Taking a step back allows for a much simpler approach to be considered.

I realised there was a much simpler approach to managing multiple SSH keys, especially when one of those keys is for commercial work that requires Single Sign-On authorisation.

Refactor AstroNvim Clojure pack

Pull requests this week

Total commits this week: 37

Submitted a pull request to refactor the AstroNvim Community Clojure language pack which I contributed in June 2023.

  • add nvim-treesitter-sexp plugin
  • add example of disabling / configuring parinfer plugin
  • add ts-comment.nvim to support ;; and ; comment characters
  • remove autocmd from conjure plugin (no longer needed)
  • remove most of the opinionated conjure configuration overrides, although still hiding the repl log buffer (HUD) by default as its nicer as a separate tab. Maybe if I can have it open by default as a tab, then I could live with having the HUD open on REPL startup (a nice way to check things are working)

Still sleepy from travel to the company off-site last week and the cycle ride on Saturday. Although I did manage some work in the garden on Sunday.