Skip to content

Practicalli rising

Really getting into the swing of working full time on Practicalli educational content again.

Applied for funding from Clojurists Together for a new Clojure Stacks project and for updating Practical.li content. I've been tidying up the very many tickets across the project issues across the Practicalli GitHub Org.

I created a new GitHub project for Clojurists Together Funding and discovered interesting new features of GitHub projects.

After a report on a compromised GitHub action, I restricted the GitHub action policy for the Practicalli GitHub Org. Unfortunately the liquidz/antq-runner GitHub action is not by a certified Organisation, so is blocked from running unless I add an explicit exception.

reClojure 2025 has been announced for 26th May 2025, this time an in-person event. Strangely this is a Bank Holiday in the UK, so travelling could be 'interesting'.

Unlike previous reClojure conferences, this is a paid event costing 75 GBP. With the event being on a Bank Holiday I am unlikely to attend as I'll be riding with the local cycling club or other long distance event.

Clojurists Togetherλ︎

Applied to Clojurists Together for two projects, a new project called Clojure Stacks and the existing Practicalli projects.

Writing the applications gave an opportunity to organise issues across GitHub projects.

Clojure Stacksλ︎

To answer the question: "What libraries should I use and why, what are the alternatives?"

The challengeλ︎

Finding which libraries are available for Clojure is predominantly an internet search or asking the community for opinions (which may be less than fully considered answers).

Having a community driven service which provides constructive and unbiased advice across all relevant libraries would provide a consistent guide for the community, especially those finding their way.

Whilst there are many commonly used libraries, there are many commonly used alternatives. There are numerous questions in the Clojurians Slack regarding libraries, from those new to Clojure and those more experienced.

Goalλ︎

The Practicalli "Clojure Stacks" project provides a consistent way to find and understand the purpose of Clojure libraries. Each library description would be based on commercial and community experiences, not rely on unfiltered social media content. The community would be able to update aspects of each library description to keep the information as relevant as possible.

Further details and initial designs at: https://github.com/practicalli/clojure-stacks/issues/1

Practicalliλ︎

Summary: update Practicalli video guides, update and extend guides for Practicalli Clojure, Practicalli Clojure Web Services and Practicalli Neovim books. All tickets in https://github.com/orgs/practicalli/projects/4/views/1 (GitHub project specific to this sponsorship)

Create a professional series of training videos for Clojure & ClojureScript from the 100+ hours of live video on the Practicalli YouTube channel - update to use Clojure CLI (and tools.build where relevant) - provide written guides for every 4Clojure & Exercism challenge screencast, improving discover-ability - ensure every video has a meaningful transcript (readability & discovery) - provide clearer learning paths using video playlists and written learning paths based on video

Update and Extend Practicalli Books - Practicalli Clojure - define a recommended learning path for clojure (with options) - extend code challenges section with more code solution walk-through (and accompanying videos) - getting the most out of Portal data inspector - updated videos for each main section of the book (install, REPL, Projects, Editors(and the Clojure workflow), Testing & Spec, Automation & CI)

  • Practicalli Clojure Web Services
  • add guides using reitit & reitit-ring in projects
  • updated video walkthroughs, discussing design decisions made as each project is developed
  • extend the existing project guides (and update to Clojure CLI and tools.build)
  • identify useful project guides to add (borrow from previous experiences and community asks)
  • update all libraries used in each project guide

  • Practicalli Neovim

  • A video series using Neovim, Conjure and Portal demonstrating the whole Clojure workflow
  • complete Neovim basics to provide a complete guide to using Neovim effectively
  • general enhancements to the book to make it as easy as possible to follow (even without Vim/Neovim experience)

Practicalli Project Templates - add more options to the service template (authentication & authorisation, persistence options, aero config examples, etc.) - add more ClojureScript templates (Figwheel & shadow-clj)

Anything else the community requests will be considered.

Organising Practicalli projectsλ︎

Tickets for a specific piece of work, ideally taking less than a week to complete Any tickets toolarge will be broken down. Research tickets will be used to help break down work.

Iteration is a timeboxed period of consisyent length, to focus on the most valuable work to do next. GitHub projects use 2 week iterations by default, although I usually prefer a week iteration (esprcially with well defined tickets)

Milestone set one or more goals or specific feature for a project. Milrstone shouldnt be too big and 4-8 weeks is common. Clojurists together require a monthly report, so monthly milestones would help facilitate such a report very effectively.

GitHub Projectsλ︎

Practicalli has used GitHub projects for many years to capture and organise work.

There is a new version of GitHub Projects I am trying out for the Clojurists Together sponsorship for 2025 (I think GitHub rewrote this tool quite a bit as its even nicer and seems very snappy)

The new feature include - Work In Ptogress Limits (WIP Limits) - Iterations

NOTE: there may be more new feature thatI havent noticed yet

WIP limitsλ︎

GitHub projects now includes work in progress (WIP) limit indicators on each column. Each column has a pretty good default value (although maybe a little high in places).

WIP limits for the default project columns

  • No Status: ticket count only, no WIP limit (effectively this is a backlog anyway)
  • Todo: 5 (a good number to keep focus)
  • In Progress: 5 (3 would give even more focus and help ensure things are getting done)
  • Done: ticket count only

When a limit has been exceeded, the WIP limit and ticket count is shown in Red (when using GitHub with a dark theme)

Clicking on the ... menu on a column allows setting the WIP limit (Set limit)

GitHub Projects Iterationsλ︎

A new GitHub project will include an Iteration view, showing the status of work for the time-boxed period of time.

The iteration default is two weeks. If possible I will change this to 1 week, as I prefer all tickets to be smaller pieces of work that can be completed within a week.

Having a short iteration focuses the mind on a single task, giving a greater probability that the task will be completed.

Avoiding tickets dragging on week after week really helps with mental health and enables people to easily switch off outside of work.

I prefer to spend a little time thinking about a task up front and ensuring the ticket has all the information I need to complete the task. If the ticket is too big then I will either set it aside or break it down into specific definitions of DONE.

NOTE: Given I should create a monthly report for Clojurists Together, then a 4 week iteration would provide a way to capture all the activity in a month. However this doesnt feel like I would have as much focus as I like. I will run with the default 2 week iteration, which will also encourage me to keep the report updated :laughing_manically:.

Configure Iterations in GitHub Project Settings

In the GitHub project Settings > Iteration page, the list of Iterations created is shown. Each iteration can be deleted and the Name of the Iteration changed.

Add an Iteration, changing the options if a different period should be used (2 weeks is defailt). An interation can be defined in days or weeks.

GitHub actions securityλ︎

Search results across Practicalli GitHub Org

tj-actions GitHub action is reported as compromised.

A quick search across the Practicalli Org repositories confirms tj-actions is not used.

https://github.com/search?q=org%3Apracticalli+uses%3E+tj-actions%2F&type=code

GitHub can be configured to disable or limiting GitHub Actions for an Org.

In the Practicalli Org > Settings > Actions > Policies I have restricted Actions to those owned by GitHub itself and verified creators.

GitHub Practicalli Org - Restrict Actions to GitHub owned and marketplace certified creators

Emacs on Arch Linuxλ︎

As I am using the wayland compositor hyprland (rather than X11) then the Emacs Wayland package is the most appropriate choice.

Emacs Wayland uses Pure GTK (PGTK) which reduces latency where drawing application doesn't go via a central place (ie xfree/xorg), improved support for hardware like HiDPI over multiple screens and an enhanced security model.

Wayland and Pure GTK is considered the 'future' for the Linux desktop, so improvements in the graphic stack is happening in Wayland.

The Emacs package for Xorg is still available for Arch Linux.

Emacs Wayland - Arch Linux


Thank you.

🌐 Practical.li Website

Practical.li GitHub Org practicalli-johnny profile

@practicalli@clj.social @practical_li