Skip to content

2025λ︎

Learning to live again

A productive start to the week and I am feeling much more like myself again. I thrive when I am getting things done whether that be a large or small task.

My TODO list for this week:

  • Practicalli Rust - more content but still very early days for the book
  • DONE: prep for job interview
  • DONE: job interview (EM)
  • digital archive clean up continues
  • DONE: unclog central heating (3 way port motor blockage) - using manual lever on colder days.
  • DONE: at least 1 bicycle ride
  • DOING: Heart points and steps for each day - didnt complete for the whole week, but a good improvement.

This weekly journal is updated most days and gives an easy way to capture and more importantly review what I've been up to. Especially when doing many small and disparate things, it is easy to forget what was done. The journal keeps my brain active and allows me a central place to review my activities (and feel good about them).

I had the first interview in a year and a half and even though I prepared for the interview questions using STAR responses I didnt feel I had sufficient focus in my responses during the interview and I dont think my health was good enough to be interviewing.

I am definitely out of practice interviewing, especially when very tight replies, so I will need to figure out how to effectively practice, or just do more 'practice' interviews.

First glimpse of Spring

A sunny day at the end of the week inspired me to get out on my road bike, once essential bike maintenance was completed.

Saturday Park Run was the first in over a year and it was very challenging. My time was 39 minutes and 25 seconds, around 9 minutes slower than my personal best so there is a long road ahead to a reasonable fitness.

April is the start of a new tax year in the UK so time for a personal financial review.

This weeks digital music organisation included The Cranberries, an excellent Irish rock band. The Mission and Fields Of The Nephilim unleashed my inner Goth. Nine Inch Nails finished the week of with industrial rock.

The Gorge movie on Apple TV was excellent. I really enjoyed the characters portrayed by Miles Teller staring Anya Taylor-Joy who gave a fantastic performance in The Queens Gambit. Some excellent music in the movie, including a very unexpected track from Twisted Sister xmas album (yes it does exist).

Ribble Endurance SL Disc road bicycle

Hacking Material theme for MkDocs

Trying out an aesthetic change to the Practicalli websites by changing buttons to have rounded corners. This alleviates one of the very few niggles I had with Material for MkDocs.

MkDocs Material buttons with round corners - example from Practicalli Journal

Testing a Neogit config change to automatically update the Git Status buffer on file change when that buffer is already open.

Its still cold despite a few nice days last week, although as I was ill for several days then I was snuggled up on the sofa under the lovely warm blankets I got from Wilco (before they closed down).

Music organised this week includes a mixture of gothic, rock and pop genres:

Material for MkDocs

Material for MkDocs is a very enjoyable and effective theme for conveying technical books and blogs. However I never liked the square nature of the buttons in that theme.

Discussion 6974 on Material for MkDocs provided a custom.css example that added round corners to

  • buttons
  • code blocks
  • blog index entries
  • tables
  • grid cards

Practicalli sites already had a docs/assets/stylesheets/extra.css with a Clojure Idiom admonition style.

The rounded corners styles were added to this Practicalli custom stylesheet.

Updated extra.css stylesheet

Practicalli Custom Stylesheet for MkDocs
[data-md-color-scheme="default"] {
  --md-default-bg-color: hsla(208, 100%, 96%, 0.94);
  --md-code-bg-color: hsla(208, 80%, 88%, 0.64);
  --md-code-hl-color: hsla(208, 88%, 80%, 0.92);
  --md-admonition-bg-color: hsla(208, 80%, 92%, 0.92);
  --md-typeset-kbd-color: hsla(208, 100%, 98%, 0.98);
}

/* Custom Admonitions */


:root {
/* Clojure Idiom*/
  --md-admonition-icon--clojure-idiom: url(https://raw.githubusercontent.com/practicalli/graphic-design/c40cc063cc5bb07525b524d8a3d638e2f42bc38a/logos/clojure-logo-bullet.svg);

/* Round corners */
  --base-border-radius: 0.5rem;
}

/*Admonitions colors*/
.md-typeset .admonition.clojure-idiom,
.md-typeset details.clojure-idiom {
  border-color: rgb(43, 155, 70);
}
.md-typeset .clojure-idiom > .admonition-title,
.md-typeset .clojure-idiom > summary {
  background-color: rgba(43, 155, 70, 0.1);
}
.md-typeset .clojure-idiom > .admonition-title::before,
.md-typeset .clojure-idiom > summary::before {
  background-color: rgb(250, 250, 250);
  background-image: var(--md-admonition-icon--clojure-idiom);
  -webkit-mask-image: var(--md-admonition-icon--clojure-idiom);
  mask-image: var(--md-admonition-icon--clojure-idiom);
}


/* Change font family of filename present on top of code block. */
.highlight span.filename {
  border-bottom: none;
  border-radius: var(--base-border-radius);
  display: inline;
  font-family: var(--md-code-font-family);
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  margin-bottom: 5px;
  text-align: center;
}
.highlight span.filename + pre > code {
  border-radius: var(--base-border-radius);
  border-top-left-radius: 0;
}
.md-typeset pre > code {
  border-radius: var(--base-border-radius);
}

/* Grid Cards */
.md-typeset .grid.cards > ul > li {
  border-radius: var(--base-border-radius);
}
.md-typeset .grid.cards > ul > li:hover {
  box-shadow: 0 0 0.2rem #ffffff40;
}

/* Markdown Button */
.md-typeset .md-button {
  border-radius: var(--base-border-radius);
}

/* Critic, Mark */
ins.critic,
del.critic {
  text-decoration: none;
}

.md-typeset .critic,
.md-typeset mark {
  border-radius: 0.2rem;
  padding: 0 0.2rem;
}

.md-typeset mark {
  box-shadow: 0 0 0 0.1rem var(--md-typeset-mark-color);
}

.md-typeset ins.critic {
  box-shadow: 0 0 0 0.1rem var(--md-typeset-ins-color);
}

.md-typeset del.critic {
  box-shadow: 0 0 0 0.1rem var(--md-typeset-del-color);
}

/* Forms */
.md-search__form {
  border-radius: var(--base-border-radius);
}

[data-md-toggle="search"]:checked ~ .md-header .md-search__form {
  border-top-right-radius: var(--base-border-radius);
  border-top-left-radius: var(--base-border-radius);
}

[dir="ltr"] .md-search__output {
  border-bottom-right-radius: var(--base-border-radius);
  border-bottom-left-radius: var(--base-border-radius);
}

/* Blog - index.md */
.md-post--excerpt {
  background-color: var(--md-accent-fg-color--transparent);
  box-shadow: 0 0 0 1rem var(--md-accent-fg-color--transparent);
  border-radius: var(--base-border-radius);
}

/* Table */
.md-typeset table:not([class]) {
  border-radius: var(--base-border-radius);
}

Neovim

0.10.4 version of Neovim released on 29 January 2025. This is a maintenance release focusing on bug fixes.

LSP servers rely on Node Package Manager, npm. The nodejs and npm packages are not installed in Arch Linux by default, so both packages should be installed to support Neovim mason installed lsp servers, format and lint tools.

Install nodejs and npm in Arch Linux

sudo pacman -Sy nodjs npm

Neogit status update

Neogit provides a Git status buffer (SPC g n t In Practicalli Astro).

Neogit plugin is installed via Astrocommunity neogit in Practicalli Astro, via the lua/community.lua configuration file.

Added my personal preferences to the customisation of the neogit plugin via the lua/plugins/user-practicalli.lua.

Practicalli Astro: neogit config overrides

  {
    "neogit",
    dependencies = {
      { "nvim-lua/plenary.nvim", "sindrets/diffview.nvim" },
    },
    opts = {
      disable_signs = true, -- duplicate signs if enabled
      -- graph_style = "unicode", -- elegant commit graph
      graph_style = "kitty", -- elegant commit graph
      integrations = { diffview = true },
      auto_refresh = true, -- (1)!
    },
    -- key mapping config not applied or overridden elsewhere
    keys = {
      -- Neogit status - overrides stage hunk astronvim mapping
      { "<leader>gs", "<cmd>Neogit<cr>", desc = "Status (Neogit)" },
    },
  },
  1. adding auto_refresh to config overrides to update an already open status buffer. This doesnt seem to make a difference when there is a change to the working copy and switching back and forth between text and status buffer using gt.

Ctrl-r refreshes the Neogit status buffer already open

Health

Felt very ill early in the week, with swollen neck glands, high temperature and lots of coughing. Tuesday and Wednesday were spent either in bed or snuggled up on the sofa with some warm blankets.

I took lots of water (with some electrolyte tables) and the full spread of vitamin & mineral supplement tablets throughout the week.

Eating hot food regularly helped keep my nose and throat reasonably clear, although still significant coughing in between.


Thank you.

🌐 Practical.li Website

Practical.li GitHub Org practicalli-johnny profile

@practicalli@clj.social @practical_li

New beginnings

Interviewing for an Engineering Manager at an interesting FinTech company.

The journey into Hyprland continues its never ending (?) journey. I recently discovered HyDE which provides a rich desktop environment on top of Hyprland. Initially the install script was used but it does seem that 🌐 HyDE-CLI tool is a newer and seemingly more effective approach.

Continued to manage my digitised music, including Megadeth, Ozzy Osbourne, Bryan Adams and The Offspring.

Coming back to life

Monday was a very productive day after vising the Doctors surgery to give yet another blood sample.

I am enjoying using Hyprland on an old Lenovo Thinkpad X1 and using it to update my weekly Practicalli Journal entries. I feel a long way off using Hyprland as my normal work laptop, but I do like the simplicity and eye candy that Hyprland and HyDE provides to the Linux desktop.

Hyprland tweaks and notes continue throughout the month (year). This week I investigated how the padding around Kitty is configured in Hyprland.

Having a spare laptop for the sofa means I can watch TV and relax while still capturing the highlights of the day.

Currently I am watching Star Treck The Original Series. I am really enjoying Star Trek TOS, more than I expected. It has been several decades since I last saw some episodes.

Discussed options for running a clojure workshop with minimal setup

Set up a Python local environment and installed Material for MkDocs on Arch Linux.

After a very sleepy weekend, my knee and hip are feeling almost normal again. The aim for this week is to walk at least 45 minutes each day.

Learning Linux like its 1995

Using Arch Linux (for Hyprland experiments) takes me back to the mid 1990's when I was learning Linux from the ground up.

At the end of 1994 I was installing Slackware Linux (from 82 floppy disks) and spending hours figuring out what to compile into the Linux kernel (before the days of dynamic loading). There was a huge amount to learn (usually without my own internet connection).

Arch Linux wiki pages have a huge amount of information, showing all the possible options for every piece of software and service. This does present a dilemma of choice.

Having experienced many years with Linux, I know many of the concepts and software associated with a Linux system. I don't need to read all the options, but do find myself scrolling a lot until I find something familiar (or simple).

I have an Arch Linux desktop using Hyprland up and running, using HyDE to configure all the extra tools to make Hyprland useable as a desktop (although there are still some things to tweak and add).

Hyprland configured with HyDE after fixing waybar configuration

LSP file renaming with Neovim & LSP still fails using the Neovim LSP client, although it is fairly simple to rename a namespace and its corresponding file name using clojure-lsp command line.

Movies & Shows this week:

  • Death on the Nile 1978 with Peter Ustinov as Hercule Poirot, including an all-star cast from the time including David Niven, Angela Landsbury and Betty Davis.
  • Star Trek - The Original Series started watching this week as a way to switch off each evening, or more likely listen too whilst I write up the days journal.