Skip to content

Springing back into life slowly

The last month has been tough due to illness, although still managed to do a little work with Practicalli to keep me motivated (both for work and my own personal health)

I though the Practicalli Project Templates had broken when I tried to create a new service project. It took me an hour or so to realise I had simply been using the command with the wrong argument, doh!

Book quality and workflowλ︎

Improvements have been made to the quality checks each of the Practicalli books undergow before publishing.

These improvements are helping me maintain and improve the books, especially around avoiding broken links and images during refactor of the book content.

Moving to the Material for MkDocs tool for building the books does produce a rich experience, improving the visual appeal, navigation and content presentation options.

Material for MkDocs is subtly different in organising content with Markdown, so there are changes to link paths and callouts (admonitions) syntax is different too.

Most of the screenshots and graphic design images have moved to a central practicalli/graphic-design repository. Initially the links to these images used the raw.githubusercontent.com domain, which did not always render the images efficiently and was a different domain to other GitHub links.

Images from GitHub now use the direct URL to the resource (the same github.com domain as a link) and include the ?raw=true option to indicate it should be shown as the raw image rather than withing the surrounding GitHub page.

Markdown code for GitHub raw image view
![Clojure REPL Drive Development](https://github.com/practicalli/graphic-design/blob/live/clojure/clojure-repl-workflow-concept.png?raw=true)

Tweak GitHub language detectionλ︎

The Practicalli repositories for the books are often labeled as HTML language, even thought they are written in Markdown.

GitHub uses Linguist to understand the languages used. It seems Lingusta also includes the gh-branch when identifying languages.

For a Practicalli book repository, Linguist is detecting the HTML generated from Markdown that is committed to the gh-branch and therefore considers HTML as the main language.

Markdown override used for Practicalli Websites

.gitattributes
docs/** linguist-detectable
*.md linguist-detectable=true 
*.css linguist-detectable=false
*.js linguist-detectable=false
*.html linguist-detectable=false  
Language detection not immediately updated

It may take many minutes for GitHub to update the languages statistics on the repository page.

Linguist will not report language statistics for repositories with over 10,000 committed files.

Language Overridesλ︎

Linguist Overrides are configured via a .gitattributes file in the root of a project.

Paths or languages can be excluded or included.

File extensions can be classified as a specific (non default) language

Markdown is detectable, ignore html, js and css languages

.gitattributes
*.md linguist-detectable=true 
*.html linguist-detectable=false  
*.css linguist-detectable=false
*.js linguist-detectable=false

Reclassify a language - HTML to Markdown

.gitattributes
*.html linguist-language=Markdown

Ignore vendor pathsλ︎

Files and directories created by tools are termed 'vendor' by Linguist. These vendored paths are ignored by default.

Move files and directories in one of these vendored directories for them to be ignored if checked into Git.

Or set a specific directory as vendored in the current project using the .gitattributes file

Ignore generated documentation

.gitattributes
docs/** linguist-vendored

ignore all files

.gitattributes
* linguist-vendored

Linguist - Vendor paths ignored

Linguist docs - overrides

Example .gitattribute overrides repository

Secure password managerλ︎

I've been using NordVPN and NordPass for the last year and they provide a reliable service. Although recently the NordPass desktop app has stopped working on my Ubuntu 22.04 LTS Linux server.

The NordPass app is okay) but has some constraints I dont really enjoy

  • only available as a snap
  • two approaches to browser extension, one that requires the desktop app to be installed

Ideally I prefer a password manager entirely as a browser extension. If a desktop app does add value, then it should be available as widely used .deb package or at least an AppImage rather than snap package.

For Debian and Ubuntu I have switched to the standalone extension for each browser:

I am sure Snap is technically good, but I find the user experience poor.

  • requires at least 2 versions of each package installed
  • requires snapd running
  • essentially means there are two package managers

As Ubuntu seems to be delivering more of its desktop Linux distribution as snap packages, I've decided to go back to Debian Linux proper.

Healthλ︎

Further covid infection and lingering symptoms (exhaustion, coughing, swollen glands & general inflamation) has really slowed me down during February and early March.

I seem to be on the road to 'normalcy' and hope to start exercising more throughout March.

Unfortunately I was not quite ready to go for a cycle ride this weekend. It seems unlikely that I will be ready for the Kent Invicta Grimpeur 100 next weekend (9th March) or even the 50km version :( Each route includes some of the largest ascents in North Kent, including York Hill that reaches a 20% gradient towards the top.


Thank you.

🌐 Practical.li Website

Practical.li GitHub Org practicalli-johnny profile

@practicalli@clj.social @practical_li