Skip to content

1001 GitHut Commit Streak

On Sunday 17th August 2025 I completed 1,001 days of successive commits in GitHub (without cheating).

Practicalli Johnny profile - GitHub activity statistics - 1000 day streak

Some job hunting during the week included being contacted by a recruiter from Docker regarding an engineering manager role (security division). The recruiter that helped get me a position at Citi also got in touch for a healthcare engineering manager role.

Planned a longer cycling route to the Isle of Grain, one of the more remote parts of Kent. Grain village is right by the sea and there is a long sandy beach there. As its a remote location, there are very few people around usually.

I've taken several trips to Grain with my friend Gaiville who I trained and cycled with from Lands End to John O'Groats in 2019.

I've altered the start of the route previously used to accommodate people from the local cycling club.

Movies to see

Movies watched

  • September 5 covers the terrorist attach at the 1972 Summer Olympics in Munich, told from the perspective of the people working at the ABC sports division who were able to broadcast live much of the tragedy.
  • A Simple Favour with Anna Kendrick in the lead role, as the perfect mom who gets involved with some 'interesting' people.
  • Matrix trilogy a relaxing bank holiday movie marathon and even after 25 years the movies looks great and are still very engaging.

Current TV shows:

  • Twisted Metal is quirky and fun show with bizarre and disturbing characters who are also quite likeable too.
  • Star Trek Strange New Worlds I find to be a very fresh and fun take on the Star Trek world, whilst still having darker storylines and background threads.
  • Gravity Falls watching this show again for about the 5th time, using it as my brain switch on / switch off show. I have watched Rick n Morty too many times 🀣

GitHub statsλ︎

The Practicalli Johnny GitHub profile includes a tracker for contributions to GitHub. At the end of last week I reached over one thousand consecutive days contribution (around 2 years and 9 months).

In the time between commercial work I've always had active GitHub commit stats thanks to the work done for Practicalli. There were often gaps during commercial work where I had limited time to work other projects.

Writing a weekly journal has kept my contributions very regular, as I use the journal to capture interesting and important things I discovered each day.

Using a Journal ensures I dont forget the things I learn. I dont need to worry about structure or where to put this content in the Practicalli books, so the journal is often the first place knowledge is shared.

I use Markdown for the Jounal and the same Material for MkDocs static site rendering tool I use for all other Practicalli websites. As its Markdown, I can write it anywhere including on my Android phone with Termux / Neovim.

I review or search the journal for information to add to the Practicalli books or videos when I have more time available.

Never obsess over GitHub stats

To me the streak represents that I am in a relatively healthy state and had moments of creative writing throughout the week.

Statistics about your contributions or any other work should be beneficial to your wellbeing and not a cause for stress. Where concerns develop then use other ways to review your wellbeing and keep yourself motivated.

Hyprlandλ︎

G-Hyprland is a Garuda Linux tool to help configure Hyprland and related tools.

G-Hyprland is optional so must first be installed with ++Mod+"i"++ key binding (Garuda hyprland config).

Installing G-Hyprland rearranges the configuration into separate files and seems to override any existing hypr config. There may be a backup by I havent found it yet, so I had to manually setup my monitor config again.

The G-Hyprland configure tool did not pick up the fact I had two monitors, one on the laptop and one external. I could only choose one resolution which was used for both monitors. I assume I need to define my own monitor config for G-Hyprland to pick up, adding a practicalli.conf to the ~/.config/hypr/brain/config/monitor/ directory?

++Mod+Shift+"g" supposedly enables/disables G-Hyprland but I dont see anything that indicates the state.

++Mod+"S" is supposed to start the configuration tool for G-Hyprland (which seems to overrite any changes made manually)

NOTE: G-Hyprland is working and as well as chainging all the config has introducted the nwg-bar, a sidebar that shows open desktop apps.

Monitor configurationλ︎

Setting the monitor preferences first is important to ensure that fonts and layouts render correctly.

A single display, the monitor default configuration should work well, automatically setting the highest available resolution.

Multiple monitors will be treated as having the same resolution by waybar and other tools, meaning that the wwaybar may not fit if one display is much smaller than the other.

Report monitor configuration and save to file

hyprctl monitors > ~/backup/garudalinux/monitor-details.txt

Example setup

Dell 5k2k external monitor (51200x2160 pixels) connected to a laptop with an HD screen (1920x1080 pixels) has a significant disparity between display resolutions.

Create your own custom monitor configurations and include that in the hyprland.conf, or as a separate monitor.conf file that is included in hyprland.conf

Manual monitor settings

#!▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄

# β•”β•¦β•—β”Œβ”€β”β”Œβ”β”Œβ”¬β”Œβ”¬β”β”Œβ”€β”β”¬β”€β”   ┬   β•”β•¦β•—β”¬β”Œβ”€β”β”Œβ”€β”β”¬  β”Œβ”€β”β”¬ ┬
# β•‘β•‘β•‘β”‚ β”‚β”‚β”‚β”‚β”‚ β”‚ β”‚ β”‚β”œβ”¬β”˜  β”Œβ”Όβ”€   β•‘β•‘β”‚β””β”€β”β”œβ”€β”˜β”‚  β”œβ”€β”€β””β”¬β”˜
# β•© β•©β””β”€β”˜β”˜β””β”˜β”΄ β”΄ β””β”€β”˜β”΄β””β”€  β””β”˜   β•β•©β•β”΄β””β”€β”˜β”΄  β”΄β”€β”˜β”΄ β”΄ β”΄

# When using G-Hyprland:
# defined in ~/.config/brain/config/monitor/practicalli.conf

# Otherwise use ~/.config/hypr/monitor.conf

# See https://wiki.hyprland.org/Configuring/Monitors/

# External Dell Monitor
# DP-2 - Dell Monitor 5k2k via DisplayLink
monitor= DP-2, 5120x2160, 0x0, 1

# Laptop Monitor
monitor= eDP-1, 1920x1080@60.02000, 2810x2160, 1.00

#!▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄

Visual tool to configure displayλ︎

What is kanshi ? It that the tool that runs when calling 'Displays' from the Hyprland desktop menu (Super + Space)

No. /usr/bin/wdisplays is the visual tool to see the display size and orientations, from the 'Displays' menu.

Kanshi seems to be an automatic (re)load tool for configurations based on a profile.

kanshi manual page entry
❯ man kanshi

General Commands Manual

NAME
       kanshi - dynamic output configuration

SYNOPSIS
       kanshi [options...]

OPTIONS
       -h, --help
           Show help message and quit.

       -c, --config <config>
           Specifies a config file.

       -l, --listen-fd <fd>
           Listen on the specified file descriptor for IPC.

DESCRIPTION
       kanshi is a Wayland daemon that automatically configures outputs.

       kanshi is configured with a list of output profiles. Each profile contains a set of outputs. A profile will be automatically activated if all specified outputs are currently connected. A profile contains configuration for each output.

       If kanshi receives a SIGHUP signal, it will reread its config file.

CONFIGURATION
       kanshi reads its configuration from $XDG_CONFIG_HOME/kanshi/config. If unset, $XDG_CONFIG_HOME defaults to ~/.config.

       An error is raised if no configuration file is found.

       For information on the configuration file format, see kanshi(5).``shell-output

sftp connection for file sharingλ︎

I was trying to connect to Garuda Linux using the sftp protocol, used by Nautilus and other file managers to 'mount' a remote file system for reading and writing files.

The connection was refused by host initially, so it seems although openssh package was installed, the service was not running locally (or was being blocked by the firewall).

The sshd service needs to be started to be able to access the Arch Linux system using sftp.

Start the OpenSSH service

sudo systemctl start sshd

This is strange as I didnt seem to need this when using scp (maybe I was using that from the Arch Linux system).

I also added ssh to the firewall rules, but not sure if that was neccessary

Enable ssh in the ufw firewall

sudo ufw allow ssh

If an "unknown host" message is shown, there is likely an older identity in the .ssh/known_hosts file. Move or delete the known_hosts file and the sftp connection will prompt if the new host identity should be accepted.

NOTE: If the remote server has not changed, then make sure the connection is going to the correct computer (the identities in the known_hosts file blocks if the identity it knows is different).

Thunar file managerλ︎

The thunar file manager is the default in Garuda Linux. It has all the features I used from Nautilus more or less, including a network section where I can use sftp to copy or move files between computers on my local network.

The thunar preferences do not have a way to configure the font size. I assume thunar is using the default font (which may be Fira Code 10 according to some gkt-3.0 settings I saw).

In Garuda Linux the font is too small to comfortably read the text, especially on the laptop display.

Scaling the list or icon view in thunar only scales the graphics and not the text (something that Nautilus does very well).

A specific font size can be set through a GTK-3.0 stylesheet (which didnt previously exist). At the time of writing the CSS configuration should be done in GTK-3 and not GTK-4.

Set Thunar specific font size

~/.config/gtk-3.0/gtk.css
/* Set font size for thunar file manager */
.thunar { font-size: 16pt }
gtk-3.0/gtk.css (END)

Select 'Close all Windows' from the Thunar file manager app, or use the -q flag to quit all instances.

Close and restart thunar file manager

thunar -q && thunar

Now thunar should show in the font size of your choice.

Music metadataλ︎

I have a library of digital sounds and music that is being converted to Opus. Not all of the files have meta data in the form of tags.

The

Claude AIλ︎

Experiments with Claude AI, initially via the web site.

Claude has a free plan and paid plans. The free plan only allows use via the Claude AI website or apps on Android/iOS.

The free plan does not allow use of an API key, which requires a $5 payment or a 13GBP / $20 dollar 'pro' subscription.

Anthropic Claude AI plans comparison

TODO: define the limits of the free plan, can it be used for ECA / clojure-mcp

Initial Claude Welcome

Hey there, I’m Claude.

I’m your AI assistant for brainstorming, creating, and learning together.

Here’s a few things you should know about me:
Curious? Just ask

Chat with me about anything from simple asks to complex ideas! I’m always ready to help (literally).
I’m built to help, never harm

Automated safeguards protect our conversations from creating violent, abusive, or deceptive content.

Claude personalises the experience by asking 'what should I call you?'

The next part is where I get stuck. What do I actually want to do with this AI?

All set! Here are a few ideas just for you.

Where should we start?

- Create a coding Easter egg that would make my team smile
- Build an app based on my idea
- Create dependency maps

I can also select to have my own topic.

Dependency mapsλ︎

Hi Claude! Could you create dependency maps? If you need more information from me, ask me 1-2 key questions right away. If you think I should upload any documents that would help you do a better job, let me know. You can use the tools you have access to β€” like Google Drive, web search, etc. β€” if they’ll help you better accomplish this task. Do not use analysis tool. Please keep your responses friendly, brief and conversational.

Please execute the task as soon as you can - an artifact would be great if it makes sense. If using an artifact, consider what kind of artifact (interactive, visual, checklist, etc.) might be most helpful for this specific task. Thanks for your help!

I'd be happy to help you create dependency maps! To make sure I build exactly what you need, I have a couple of key questions:

    What type of dependencies are you mapping? (e.g., software components, project tasks, business processes, organizational teams, or something else?)
    What's the scope and complexity? (e.g., a small project with 5-10 items, or a large system with dozens of interconnected elements?)

Based on your answers, I can create an interactive visual dependency map as an artifact that will let you add, edit, and rearrange dependencies with drag-and-drop functionality.

If you have any existing documentation, lists, or files that outline the components and their relationships, feel free to upload them - that would definitely help me create a more accurate starting map for you!

Which AI Servicesλ︎

I asked Google.com "what AI services can I use without a subscription?"

What AI services can I use without a subscription?

August 19, 2025

what AI services can I use without a subscription?
It appears you're interested in exploring AI services without needing a subscription. Here's a breakdown of some great options available for free:
Free AI Services for Various Needs

    Writing & Content Creation:
        ChatGPT: Provides a free tier utilizing GPT-4o mini, supporting text generation, brainstorming, code assistance, and web browsing with usage limits.
        Grammarly: Offers free AI rewrite suggestions, tone adjustments, and assistance in improving writing clarity and engagement.
        Copy.ai: Offers free access to copywriting tools and templates for various formats, such as social media posts, emails, and product descriptions, with a monthly word limit and single-user access.
        HubSpot AI Writer: Integrated with the HubSpot CRM, it uses real-time data to personalize content, generate blog outlines, update posts for SEO, and create newsletters, with a free plan.
        Notion AI: Integrated within Notion, it allows for document summaries, meeting note generation, and content drafting, providing a free and customizable AI assistant within the workspace.
        Rytr: Provides a free plan with a monthly character limit for drafting emails, ideas, and short posts using GPT-3 technology.

    Image & Design:
        DALL-E: Accessible through the free ChatGPT tier, it transforms text prompts into images, suitable for illustrations, concept art, and blog visuals.
        Canva AI: Provides AI-powered design features like Magic Design, which creates designs from text prompts, access to a vast library of templates and stock photos, along with tools for customization and resizing visuals.
        Playground AI: Offers a free plan for generating and editing images from text prompts, allowing the blending of real and AI-generated elements, and supporting integrations with e-commerce platforms.
        Illusion Diffusion: Uses AI to create optical illusions from photos, with customization options and access to various settings, available through the Hugging Face Community.
        Krea.ai: A platform for generating visuals from text inputs, suitable for marketing and design tasks, with free access to essential features.
        Deep Dream Generator: Transforms text prompts into images, assisting with marketing campaigns, social media visuals, and blog posts.
        Designify: Generates images on autopilot, allowing exploration of various creative directions by generating variations from a single concept.
        Adobe Firefly: Offers image generation with Generative Fill and Expand features and integrates with the Adobe suite, available for free on the web or through Adobe Express.
        Pixlr: A modular online photo editor with AI features like Cutout and Backdrop, allowing for retouching, cropping, and enhancing images with a free tier.

    Video Creation & Editing:
        Synthesia: Offers a free plan for generating AI videos with stock avatars and voices in multiple languages, including features like adding avatars, instant voiceovers, and video editing with templates.
        Invideo: Integrates AI models to simplify video creation.
        Runway ML: Provides a free plan with credits for generating short videos and images using AI, including features like image-to-video conversion and text-to-image with reference support.
        Descript: A tool that simplifies audio and video editing by allowing users to edit transcripts, remove filler words, and enhance audio with AI.
        Lumen5: Transforms long-form text into videos with automatically selected visuals and captions, with a free account allowing for the creation of a limited number of videos per month.
        Pictory: Converts long-form text into shareable videos with automatically selected visuals and captions, offering a fast way to repurpose written content.

    Research & Productivity:
        Perplexity AI: Provides structured answers to natural language questions with clickable source citations, useful for researching and summarizing information.
        Google AI Studio: A web-based tool for prototyping and experimenting with the Gemini Developer API, offering free tiers across the family of multimodal generative AI models.
        Google Gemini: Free to use for individuals with a personal Google Account, it assists with understanding and finding big ideas and information.
        Otter.ai: Provides real-time transcription and note-taking for meetings on platforms like Zoom, Microsoft Teams, and Google Meet, along with summaries and action item generation.
        Fireflies.ai: Records and analyzes conversations during meetings, identifies key action items, and integrates with platforms like Zoom and Google Meet.
        Zapier: Connects various apps through automated workflows ("Zaps") and includes AI features for building chatbots, organizing data, and creating custom interfaces, with a free plan for basic automations.
        Reclaim.ai: An AI scheduling tool that helps manage calendars and find time to complete tasks.
        Hive: AI project management software that creates projects from a prompt, allowing for task breakdown, time tracking, and collaboration.
        Slidesgo AI Presentation Maker: Generates presentations from a title, tone, and theme, with customization and editing tools, available for free.
        Be My Eyes: An AI-driven app assisting visually impaired individuals with real-time video calls with sighted volunteers or AI assistants.
        Snopes Factbot: An AI-powered chatbot specializing in fact-checking news, rumors, and conspiracy theories.
        AutoGen: An open-source framework from Microsoft for building multi-agent systems based on Large Language Models (LLMs).
        Small SEO Tools – Reverse Image Search: An advanced AI solution for searching by images, finding copyright-free ideas, and detecting duplication.

    Other Specialized Tools:
        Beatoven AI: An AI-powered platform for music production and audio editing, offering generative AI tools to create and manipulate audio files with a free version allowing limited audio creation.
        Codeium AI: A software development assistant that uses AI to generate code, automate tasks, and assist with data analysis, available for free.
        Documator: Offers a free AI-powered PDF summarizer (for files up to 10MB) and a cloud-based document automation platform.
        Lalal.ai: An AI audio stem splitter that isolates and removes specific tracks from audio files, with 10 minutes of free use available.

Limitations of Free AI Tools
Free AI tools often have limitations compared to paid services, including:

    Limited output quality: Many free platforms restrict exports to lower resolutions and may have limitations on visual fidelity or the presence of watermarks.
    Limited features: Free versions may not include advanced customization options, integrations, or access to premium features.
    Usage restrictions: There may be limitations on the number of uses, file sizes, or time constraints.
    Lower rendering speeds: Free users may experience slower processing times, especially during peak hours.
    Potential privacy and data security risks: Free tools might collect and share user data more extensively than paid services, and may lack robust security measures.
    Limited commercial usage rights: Some free tools may restrict the use of generated content for commercial purposes without an upgrade.
    Lack of customer support: Free users typically receive minimal or no direct assistance.

Important Note: It's always a good idea to check the specific terms and conditions of any free AI tool before relying on it for crucial tasks, especially those involving sensitive information or commercial use.

AI responses may include mistakes. Learn more


Thank you.

🌐 Practical.li Website

Practical.li GitHub Org practicalli-johnny profile

@practicalli@clj.social @practical_li