Welcome to JamesCherti.com

About the author

Hi, I am James Cherti, a Senior Software and Infrastructure Specialist based in Toronto, Canada. With over two decades in the tech industry, I have had the privilege of working on everything from software development to managing complex UNIX/Linux systems and building scalable architectures. I am a terminal enthusiast who lives in the Bash shell, tmux, and Emacs, always looking for the next automation to write. When I step away from the terminal, you can usually find me in Toronto with a good cup of... (Read more)

Popular Articles

Recent articles

  • Improving the Performance of Samsung Galaxy Phones and Tablets
    Out of the box, Samsung Galaxy Phones and Tablets are highly responsive, but long-term performance often degrades into noticeable lag. As background services, cached data, and memory paging overhead consume available CPU cycles and RAM, the entire system slows down. This article covers reducing storage I/O bottlenecks by disabling virtual memory paging, controlling process lifecycles through targeted … Continue reading
  • single-window.el – Always Open Emacs Buffers in the Current Active Window
    The single-window package forces Emacs to open buffers in the current active window. It keeps your carefully arranged layouts intact, reduces visual clutter, and provides a much more predictable workflow. To ensure it does not break standard Emacs functionality, the package is built to handle the following edge cases and integrations out of the box: Transient and … Continue reading
  • jc-gentoo-portage – An opinionated, performance-oriented Gentoo Portage /etc/portage configuration
    The jc-gentoo-portage repository houses an opinionated, performance-oriented Gentoo Portage (/etc/portage) configuration. This repository can be used as an inspiration to build a lean and fast Gentoo operating system. Features: Maximizes execution performance across the system by globally enabling xs, asm, orc, jit, and threads, forcing packages to use hand-written assembly routines and JIT compilation loops. Disables telemetry … Continue reading
  • git-rexec: Find Git Repositories and Execute Commands Against Them, either Sequentially or in Parallel
    The git-rexec command-line tool recursively locates Git repositories within a directory and executes commands against them, either sequentially or in parallel. Here are examples demonstrating how to use git-rexec: Example 1: Execute git status -s across all discovered Git repositories (found by searching recursively under the current working directory) in parallel (-p or –parallel): git-rexec -p — … Continue reading
  • ansible-cleanup – Cleanup an Ansible project
    Ansible-cleanup provides a command line tool to find and remove unused playbooks, tasks, group variables, and host variables. It maintains a clean codebase by recursively scanning your Ansible repository and listing files that are safe to delete. Features Identify unused playbooks and tasks: Scans the repository to find all unused playbooks and tasks. It analyzes the codebase … Continue reading
  • A Shell Script that Configures the GNOME Desktop Programmatically
    The jc-gnome-settings repository provides the jc-gnome-settings.sh script, which holds James Cherti’s settings to customize the GNOME desktop environment, including window management, notifications, desktop behavior, keyboard settings, and more, to enhance the user experience. Requirements gsettings Usage Clone the repository: git clone https://github.com/jamescherti/jc-gnome-settings Navigate to the repository directory: cd jc-gnome-settings Run the script to configure GNOME: ./jc-gnome-settings.sh Author … Continue reading
  • A Shell Script that Automates XFCE Desktop Configuration
    The jc-xfce-settings project provides the jc-xfce-settings.sh script, which holds James Cherti’s settings to customize the XFCE desktop environment, including window management, notifications, desktop behavior, keyboard settings, and more, to enhance the user experience. (The jc-xfce-settings.sh script was created with the help of watch-xfce-xfconf) Requirements The XFCE Desktop Environment, and xfconf-query utility that is part of XFCE. Usage … Continue reading
  • ansible-role-flatpak – An Ansible role that configures Flatpak, adds Flathub as a remote repository, and manages Flatpak packages and updates
    The ansible-role-flatpak Ansible role installs and configures Flatpak, adds Flathub as a remote repository, and optionally manages Flatpak packages and updates. This role supports specific Linux distributions: Debian-based, Gentoo, and Arch Linux. Requirements Supported operating systems: Debian/Ubuntu (and their derivatives), Gentoo, or Arch Linux. Ansible collections: community.general Role Variables The following variables can be set to customize … Continue reading
  • Disabling XML-RPC in WordPress for Security and Performance
    When deploying WordPress in a production environment, every enabled feature should be evaluated for its security and performance implications. By default, WordPress prioritizes backward compatibility, which often results in legacy protocols remaining active on every request. XML-RPC is a legacy API protocol that allows external applications to interact with a WordPress installation over HTTP. Long before the … Continue reading
  • A Technical Guide to Compiling Emacs for Performance on Linux and Unix systems
    Most Linux distributions ship generic binaries compiled to run safely on a vast array of older hardware configurations. While this ensures broad compatibility, it sacrifices the speed that comes from using the specific, modern instruction sets of your processor. Building Emacs directly from source allows instructing the compiler to generate machine code targeted at your CPU architecture, … Continue reading

(All articles…)

⭐ Highlighted Articles