Skip to content

A daily journal of thoughts and experiences from commercial work and community projects powered by Material for MkDocs

Practicalliλ︎

Practical.li provides free online books covering practical guides to Clojure programming and development workflows. Practicalli Engineering Playbook contains specific guides across the full spectrum of software development.

Sponsor Practicalli

All sponsorship funds are used to support the continued development of Practicalli series of books and videos, although most work is done at personal expense and time.

Thanks to Cognitect, Nubank and sponsors from the Clojure community for your continued support


Neovim on Termux enhancements

Thoughts for the week

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

Thoughts for the week

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

Thoughts for the week

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.

Company offsite week

Thoughts for the week

Travelling for a work event in Portugal with a chance to meet people I work with face to face for the first time.

I am accustom to working remotely since 2010, having worked for companies based outside of the UK. It is always very valuable to meet people face to face and can start or strengthen a relationship.

Gardening in the mornings

Thoughts for the week

A new month so time to update libraries across Practicalli projects.

Bank holiday Monday and two personal holidays this week, so only two days at work and very few meetings, yay!. Time to prepare for the company offsite event next week and see how lightly I can pack.

I made a big impact on upgrading the garden this week. All the paving stones at the end of the garden were levelled so the shed is no longer on a slope. A thick weed surpressing membrane was fitted underneath all the paving stones.

The raised garden bed was be reworked by adjusting the top of the railway sleepers to be level to the top of the paving stones. This adds a nice clean line with the garden and makes maintenance in and around the garden easier. Weed surpressing membrane was added to the side and underneath of each sleeper. Spare wood panels was used to keep the membrane in plate and to also add more robustness to the sleepers.

Most of the work was done in the early mornings as the weather was quite hot.

500 Commit Streak on GitHub

Thoughts for the week

500 day commit streak on GitHub reached today. This was legitimately achieved by doing a small amount of work each day.

I am not actively coding and committing on a regular basis in my current role, so the large majority of these commits are for Practicalli or Open Source projects.

GitHub stats - 500 day commit streak

Continuing to simplify the Practicalli AstroNvim User Config, so changes from the AstroNvim template are in new files or in community.lua.

The most visual opinionated changes are in practicalli.lua, such as dashboard logo and theme.

Motivated to work on the Practicalli Sustainable Life book after joining a sustainability working group at the company.

Its April Fool

Thoughts for the week

Adding SSH keys to the YubiKey hardware security key provides convenience of SSH key use, especially when required for multiple computers.

Using a YubiKey to keep a single SSH key pair removes the need to generate a key pair for each computer.

Using one SSH key avoids the need for multiple entries in the allowed-signatures file to check locally that a commit has been signed.

Git Multiple SSH Keys & Neovim

Thoughts for the week

A short week at work made even shorter by a company day to celebrate going live. A chance to unwind and reflect.

Neovim 0.10 is planned for 1 May 2024. Plugins should be unafected, although actively developing plugins like Neogit are trying to used parts of the Neovim API. The parts of Neogit that use 0.10 api should be more efficient, although I assume there wont be a noticable difference in functionality.

I will update Neovim to 0.10 when AstroNvim confirms it is working well with that release.