Welcome!

About the author

James Cherti

James Cherti is a Canadian Senior Software Development and Infrastructure as
Code Specialist with over 20 years of professional experience in software
development, UNIX/Linux system administration, and computer networking. Throughout his career, he has architected highly-available and scalable distributed systems, optimized complex workflows through automation, ensured security in production environments, and developed robust software solutions across diverse industries… (Read more about James Cherti)

Subscribe to the RSS feeds

⭐ Highlighted Articles

🖽 Recent articles

  • update-iptables – A low-level Linux firewall for advanced users
    The update-iptables script implements a firewall for managing network traffic and routing. It supports a modular configuration model through drop-in scripts located in /etc/update-iptables-rules.d/. Each file is a shell script executed sequentially during firewall initialization. This low-level firewall script is intended for Linux system administrators who require precise control over packet states, network address translation, and custom routing chains. Rules are defined directly through iptables without the abstraction layers commonly introduced by modern firewall management tools. Continue reading
  • A Vim plugin for executing pathaction, the universal Makefile for the entire filesystem
    The vim-pathaction Vim plugin provides an interface for executing .pathaction.yaml rules directly from Vim through the pathaction cli, a flexible tool for running commands on files and directories. Think of pathaction like a Makefile for your entire filesystem. It uses a .pathaction.yaml file to figure out which command to run, and you can even use Jinja2 templating to make those commands dynamic. You can also use tags to define multiple actions for the exact same file type, like setting up one tag to run a script, and another to debug it. This tool is for software developers who manage multiple projects across diverse ecosystems and want to eliminate the cognitive load of switching between different build tools, environment configurations, and deployment methods. Just run one single command on any file and trust that it gets handled correctly. Continue reading
  • pathaction.el: An Emacs package for executing pathaction rules, the universal Makefile for the entire filesystem
    The pathaction.el Emacs package provides an interface for executing .pathaction.yaml rules directly from Emacs through the pathaction cli, a flexible tool for running commands on files and directories. Think of pathaction like a Makefile for your entire filesystem. It uses a .pathaction.yaml file to figure out which command to run, and you can even use Jinja2 templating to make those commands dynamic. You can also use tags to define multiple actions for the exact same file type, like setting up one tag to run a script, and another to debug it. This tool is for software developers who manage multiple projects across diverse ecosystems and want to eliminate the cognitive load of switching between different build tools, environment configurations, and deployment methods. Just run one single command on any file and trust that it gets handled correctly. Continue reading
  • ultisnips-mode.el: An Emacs major mode for editing Ultisnips snippet files (*.snippets files)
    The **ultisnips-mode** is an Emacs major mode for editing Ultisnips snippet files (*.snippets files). This mode provides syntax highlighting to facilitate editing Ultisnips snippets. Vim’s UltiSnips is a snippet solution for Vim, and its snippets can be used in Emacs by converting them to the Yasnippet format using Ultyas. Continue reading
  • kirigami.el – A Unified Interface for Text Folding across a diverse set of Emacs modes (outline-mode, outline-minor-mode, outline-indent-mode, org-mode, markdown-mode, vdiff-mode, hs-minor-mode, treesit-fold-mode…)
    The kirigami package offers a unified interface for text folding across a diverse set of major and minor modes in Emacs, including outline-mode, outline-minor-mode, outline-indent-mode, org-mode, markdown-mode, vdiff-mode, vdiff-3way-mode, hs-minor-mode, hide-ifdef-mode, origami-mode, yafolding-mode, folding-mode, and treesit-fold-mode. With Kirigami, folding key bindings only need to be configured once. After that, the same keys work consistently across all supported major and minor modes, providing a unified and predictable folding experience. (In addition to unified interface, the kirigami package enhances folding behavior in outline-mode, outline-minor-mode, markdown-mode, and org-mode. It ensures that deep folds open reliably and allows folds to be closed even when the cursor is positioned inside the content.) Continue reading
  • Matter Door/Window Sensor and Google Home: Script for Announcing Door Open and Close Events
    The Matter standard enables smart home devices from different manufacturers to work together in a reliable and secure way. One common use case is detecting when a door is opened or closed and announcing this event through Google Home speakers or sending notifications to connected devices. This article demonstrates how to configure Google Home to announce door … Continue reading
  • ansible-role-auto-upgrade – An Ansible role that automates upgrading Linux operating systems
    The auto-upgrade Ansible role automates regular upgrades of supported operating systems: Debian-based systems (e.g., Ubuntu, Debian, Linux Mint). This role provides a simpler alternative to unattended-upgrades for applying system updates… Continue reading
  • ansible-role-reniced – An Ansible role that configures reniced on Debian and Ubuntu based operating systems
    Ansible-role-reniced, an Ansible role that configures reniced on Debian and Ubuntu based operating systems… Continue reading
  • ansible-role-apt – An Ansible role that manages the APT configuration and updates the /etc/apt/sources.list for Debian and Ubuntu systems
    The ansible-role-apt Ansible role manages the APT configuration and updates the /etc/apt/sources.list for Debian and Ubuntu systems. Role variables Important variables: Variable Description Default apt_debian_community Enables community repositories (Debian contrib and main, or Ubuntu universe) true apt_debian_nonfree Enables non-free repositories (Debian non-free, non-free-firmware, or Ubuntu multiverse) true apt_debian_backports Enables the backports repository on Debian (no effect on … Continue reading
  • quick-sdcv.el, a package that enables Emacs to function as an offline dictionary using sdcv
    Related posts: pre-commit-elisp – Pre-commit hooks for Emacs Lisp (Elisp) Git repositories Emacs: persist-text-scale.el – Persist and Restore the Text Scale for All Buffers Essential Emacs Packages for Efficient Software Development and Text Editing Emacs flymake-ansible-lint.el – A Flymake backend for ansible-lint Emacs: stripspace.el – Automatically Remove Trailing Whitespace Before Saving a Buffer, with an Option to … Continue reading

(All articles…)