<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>2024/01 on BenzHub</title><link>https://benzhub.github.io/en/archives/2024/01/</link><description>Recent content in 2024/01 on BenzHub</description><generator>Hugo</generator><language>en</language><lastBuildDate>Sat, 16 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://benzhub.github.io/en/archives/2024/01/index.xml" rel="self" type="application/rss+xml"/><item><title>What Is NVM? Node Version Manager Explained for Beginners</title><link>https://benzhub.github.io/en/post/javascript/052-whats-nvm/</link><pubDate>Sat, 09 Nov 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/en/post/javascript/052-whats-nvm/</guid><description>&lt;p&gt;&lt;strong&gt;NVM (Node Version Manager)&lt;/strong&gt; is a command-line tool that lets you install, manage, and switch between multiple versions of Node.js on a single machine. Instead of uninstalling and reinstalling Node.js every time a project requires a different version, NVM lets you run &lt;code&gt;nvm use 18&lt;/code&gt; or &lt;code&gt;nvm use 20&lt;/code&gt; to switch instantly. It is the most widely used Node.js version manager on macOS and Linux, with over 80,000 GitHub stars.&lt;/p&gt;</description></item><item><title>Why You Need NVM: 5 Reasons Every Node.js Developer Should Use It</title><link>https://benzhub.github.io/en/post/javascript/054-whats-the-reason-you-must-use-nvm/</link><pubDate>Sat, 09 Nov 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/en/post/javascript/054-whats-the-reason-you-must-use-nvm/</guid><description>&lt;p&gt;Why should you use NVM? If you work on more than one Node.js project, NVM (Node Version Manager) eliminates the pain of juggling incompatible Node.js versions, permission headaches, and broken global packages. In real-world development, you rarely start fresh — you maintain existing codebases that each demand a specific Node.js version. NVM lets you install and switch between any number of Node.js versions instantly, keeping every project running smoothly on the right runtime.&lt;/p&gt;
&lt;p&gt;If you are not yet familiar with what NVM is, check out &lt;a href="https://benzhub.github.io/en/post/javascript/052-whats-nvm/"&gt;What Is NVM&lt;/a&gt; for a quick introduction, or see &lt;a href="https://benzhub.github.io/en/post/javascript/023-whats-nvm-npm-nodejs/"&gt;NVM vs NPM vs Node.js&lt;/a&gt; to understand how these tools relate to each other.&lt;/p&gt;</description></item><item><title>What Is a Cron Job in Linux? Complete Guide to Scheduled Tasks</title><link>https://benzhub.github.io/en/post/linux/022-cron-job/</link><pubDate>Wed, 31 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/en/post/linux/022-cron-job/</guid><description>&lt;p&gt;&lt;strong&gt;A cron job is a time-based task scheduler built into Linux and Unix systems.&lt;/strong&gt; It automatically runs commands or scripts at specified intervals — every minute, hourly, daily, weekly, or on custom schedules. System administrators use cron jobs to automate backups, rotate logs, monitor services, and send scheduled reports without manual intervention.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In &lt;strong&gt;Linux&lt;/strong&gt;, a &lt;strong&gt;cron job&lt;/strong&gt; is the core tool for automating scheduled tasks. Once configured, the system automatically executes backups, log cleanup, service monitoring, and other repetitive tasks at specified times — greatly improving operational efficiency. This guide covers everything from &lt;strong&gt;cron&lt;/strong&gt; fundamentals, time format syntax, and practical examples to debugging tips.&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>File Transfer (SFTP) | Linux</title><link>https://benzhub.github.io/en/post/linux/021-sftp/</link><pubDate>Tue, 23 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/en/post/linux/021-sftp/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Secure File Transfer Protocol (SFTP)&lt;/strong&gt; is a protocol for transferring files over a secure channel, typically based on the SSH (Secure Shell) protocol. &lt;strong&gt;SFTP&lt;/strong&gt; provides a secure method that allows users to transfer files between local and remote Linux systems while protecting the integrity of data transmission.&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>SSH Connection with Public/Private Keys | Linux</title><link>https://benzhub.github.io/en/post/linux/020-ssh/</link><pubDate>Mon, 22 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/en/post/linux/020-ssh/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Secure Shell (SSH)&lt;/strong&gt; is a secure protocol commonly used to establish secure connections between local and remote &lt;strong&gt;Linux&lt;/strong&gt; systems, allowing users to execute commands on remote hosts, transfer files, or create secure tunnels. In this article, we will explore an important &lt;strong&gt;SSH&lt;/strong&gt; feature - connecting to remote hosts using public/private key pairs.&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Command Substitution | Linux</title><link>https://benzhub.github.io/en/post/linux/019-command-substitution/</link><pubDate>Sun, 21 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/en/post/linux/019-command-substitution/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Working with the &lt;strong&gt;Linux&lt;/strong&gt; operating system often requires command-line operations, and &lt;strong&gt;Command Substitution&lt;/strong&gt; is a powerful feature that allows you to insert the output of one command into another command, or assign it to a variable.&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Environment Variables (Environment) | Linux</title><link>https://benzhub.github.io/en/post/linux/017-environment/</link><pubDate>Sat, 20 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/en/post/linux/017-environment/</guid><description>&lt;blockquote&gt;
&lt;p&gt;In &lt;strong&gt;Linux&lt;/strong&gt;, &lt;strong&gt;environment variables (Environment)&lt;/strong&gt; typically refer to the operating system environment in which users or processes execute, including various environment variables, working directories, file permissions, and other related runtime conditions. Environment variables are an important element that contains information about the system and user environment, such as PATH, HOME, USER, etc.&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Processes (Processes) | Linux</title><link>https://benzhub.github.io/en/post/linux/018-processes/</link><pubDate>Sat, 20 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/en/post/linux/018-processes/</guid><description>&lt;blockquote&gt;
&lt;p&gt;In &lt;strong&gt;Linux&lt;/strong&gt;, &lt;strong&gt;processes (Processes)&lt;/strong&gt; are instances of running programs in the system. Each process consists of one or more threads that run on the system, performing various tasks and operations. The &lt;strong&gt;Linux&lt;/strong&gt; operating system uses processes as the basic unit for managing and executing tasks.&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Permission Shortcuts | Linux</title><link>https://benzhub.github.io/en/post/linux/016-permission-shortcuts/</link><pubDate>Fri, 19 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/en/post/linux/016-permission-shortcuts/</guid><description>&lt;blockquote&gt;
&lt;p&gt;In Linux, Permission Shortcuts are a convenient notation used to set permissions on files or directories. These shortcuts typically use letters or symbols, making it easy for users to quickly configure the desired permissions.&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Linux Group Permission Management Guide: chmod, chown, and Group Configuration</title><link>https://benzhub.github.io/en/post/linux/015-group-permissions/</link><pubDate>Thu, 18 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/en/post/linux/015-group-permissions/</guid><description>&lt;blockquote&gt;
&lt;p&gt;In &lt;strong&gt;Linux&lt;/strong&gt;, &lt;strong&gt;Group Permissions&lt;/strong&gt; are the foundation of multi-user collaboration and system security. Understanding the three identities &amp;ndash; owner, group, and others &amp;ndash; and mastering the &lt;code&gt;chmod&lt;/code&gt;, &lt;code&gt;chown&lt;/code&gt;, and &lt;code&gt;chgrp&lt;/code&gt; commands along with the complete group management workflow is an essential skill for every Linux user.&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Exponential Backoff Strategy Explained: Complete Guide with Code Examples</title><link>https://benzhub.github.io/en/post/javascript/039-backoff-strategy/</link><pubDate>Mon, 08 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/en/post/javascript/039-backoff-strategy/</guid><description>&lt;p&gt;&lt;strong&gt;Exponential backoff&lt;/strong&gt; is a retry strategy that progressively increases the delay between consecutive retry attempts after a failed request. Instead of hammering a struggling server with immediate retries, exponential backoff waits 1 second, then 2 seconds, then 4 seconds, and so on — giving the server breathing room to recover. Combined with jitter (randomization), it is the industry-standard approach for building resilient network communication in any production system.&lt;/p&gt;</description></item><item><title>Complete Guide to Linux Wildcards: How to Use *, ?, and [] Glob Patterns</title><link>https://benzhub.github.io/en/post/linux/012-wildcard-replacement/</link><pubDate>Thu, 04 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/en/post/linux/012-wildcard-replacement/</guid><description>&lt;blockquote&gt;
&lt;p&gt;In the &lt;strong&gt;Linux&lt;/strong&gt; command line, &lt;strong&gt;Wildcards (glob patterns)&lt;/strong&gt; are powerful tools for batch file operations. By mastering the &lt;code&gt;*&lt;/code&gt;, &lt;code&gt;?&lt;/code&gt;, and &lt;code&gt;[]&lt;/code&gt; wildcards along with Brace Expansion, you can accomplish batch operations in a single command that would otherwise require dozens of lines, dramatically improving your productivity.&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Input &amp; Output Redirection (Input &amp; Output Streams) | Linux</title><link>https://benzhub.github.io/en/post/linux/013-input-output-streams/</link><pubDate>Thu, 04 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/en/post/linux/013-input-output-streams/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Input &amp;amp; Output Redirection (Input &amp;amp; Output Streams) is a common method used by many programs at runtime to output logs or determine when errors occur. The techniques in this section are essential for daily system administration.&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Pipes | Linux</title><link>https://benzhub.github.io/en/post/linux/014-pipes/</link><pubDate>Thu, 04 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/en/post/linux/014-pipes/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Pipes enable the flow of data between commands, allowing Linux commands to create powerful and efficient workflows.&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Bash History | Linux</title><link>https://benzhub.github.io/en/post/linux/007-bash-history/</link><pubDate>Wed, 03 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/en/post/linux/007-bash-history/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Bash&lt;/strong&gt; records the commands you type, providing a convenient way to view and reuse them. Users can interact with this history using various commands and shortcuts.&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>CLI Shortcuts | Linux</title><link>https://benzhub.github.io/en/post/linux/008-cli-shortcuts-yank/</link><pubDate>Wed, 03 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/en/post/linux/008-cli-shortcuts-yank/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Mastering the &lt;strong&gt;Linux&lt;/strong&gt; command line interface (CLI) can boost efficiency and flexibility. We will introduce a set of essential &lt;strong&gt;Linux CLI Shortcuts&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>IP Address, Subnet Mask, Gateway &amp; MAC Address Explained</title><link>https://benzhub.github.io/en/post/networking/001-macaddress-ip-subnetmask-gateway/</link><pubDate>Wed, 03 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/en/post/networking/001-macaddress-ip-subnetmask-gateway/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Every device on a network needs four things configured correctly to communicate: an IP address to identify itself, a subnet mask to determine which devices are local, a gateway to reach remote networks, and a MAC address for physical delivery on the local segment. Understanding how these four networking fundamentals work together is the key to troubleshooting connectivity issues, configuring static IPs, and grasping how packets traverse the internet.&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Mastering Linux File Operations: Creating and Moving Files | Linux</title><link>https://benzhub.github.io/en/post/linux/011-creating-moving-files/</link><pubDate>Wed, 03 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/en/post/linux/011-creating-moving-files/</guid><description>&lt;blockquote&gt;
&lt;p&gt;In the &lt;strong&gt;Linux&lt;/strong&gt; command line world, proficiently creating and moving files is a fundamental skill. This is typically the most frequently used command when working with &lt;strong&gt;Linux&lt;/strong&gt; systems on the job.&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Reading Files | Linux</title><link>https://benzhub.github.io/en/post/linux/010-reading-files/</link><pubDate>Wed, 03 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/en/post/linux/010-reading-files/</guid><description>&lt;blockquote&gt;
&lt;p&gt;In a &lt;strong&gt;Linux&lt;/strong&gt; environment, reading files through the command line is one of the most fundamental skills. File reading is one of the most commonly used commands in daily &lt;strong&gt;Linux&lt;/strong&gt; operations.&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Signals | Linux</title><link>https://benzhub.github.io/en/post/linux/009-signals/</link><pubDate>Wed, 03 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/en/post/linux/009-signals/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The &lt;strong&gt;Linux&lt;/strong&gt; command line interface uses signals as a means of communication between processes. Understanding &lt;strong&gt;Linux&lt;/strong&gt; signals is essential for managing and interacting with running processes.&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>What Is Linux? | Linux</title><link>https://benzhub.github.io/en/post/linux/006-what-is-linux/</link><pubDate>Wed, 03 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/en/post/linux/006-what-is-linux/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Linux&lt;/strong&gt; is a &lt;strong&gt;Unix&lt;/strong&gt;-like operating system kernel, originally created by &lt;strong&gt;Linus Torvalds&lt;/strong&gt; in 1991.&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>What Is Unix? | Linux</title><link>https://benzhub.github.io/en/post/linux/005-what-is-unix/</link><pubDate>Wed, 03 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/en/post/linux/005-what-is-unix/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Unix&lt;/strong&gt; was born in the early 1970s at Bell Labs and is the ancestor of many operating systems. &lt;strong&gt;Unix&lt;/strong&gt; is renowned for its robustness, scalability, and versatility.&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Django One-to-Many Relationships: ForeignKey Complete Guide</title><link>https://benzhub.github.io/en/post/django/005-one-to-many-relationships/</link><pubDate>Mon, 01 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/en/post/django/005-one-to-many-relationships/</guid><description>&lt;p&gt;A one-to-many relationship in Django is one of the most common database patterns you will encounter when building web applications. It describes a situation where a single record in one table is associated with multiple records in another table. Django implements this relationship through the &lt;code&gt;ForeignKey&lt;/code&gt; field, making it straightforward to define, query, and manage related objects across your models.&lt;/p&gt;</description></item><item><title>Flutter vs React Native: Which Cross-Platform Framework to Choose?</title><link>https://benzhub.github.io/en/post/flutter/001-flutter-vs-react-native/</link><pubDate>Mon, 01 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/en/post/flutter/001-flutter-vs-react-native/</guid><description>&lt;p&gt;Choosing between Flutter and React Native is one of the most common decisions mobile development teams face today. Both frameworks allow you to build iOS and Android apps from a single codebase, but they differ significantly in architecture, performance characteristics, developer experience, and ecosystem maturity. This guide provides a comprehensive Flutter vs React Native comparison to help you pick the right cross-platform framework for your next project.&lt;/p&gt;</description></item><item><title>Git Staged vs Unstaged: Understanding the Staging Area</title><link>https://benzhub.github.io/en/post/git/006-staged-and-unstaged/</link><pubDate>Mon, 01 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/en/post/git/006-staged-and-unstaged/</guid><description>&lt;p&gt;In Git, &lt;strong&gt;staged&lt;/strong&gt; changes are modifications you have explicitly marked (via &lt;code&gt;git add&lt;/code&gt;) to be included in your next commit, while &lt;strong&gt;unstaged&lt;/strong&gt; changes are edits sitting in your working directory that Git tracks but will not commit until you stage them. Understanding the difference between git staged and git unstaged files is fundamental to controlling your version history and collaborating effectively with others.&lt;/p&gt;</description></item><item><title>HTML Character Entities: Complete Reference Guide</title><link>https://benzhub.github.io/en/post/htmlcss/010-html-character-entity/</link><pubDate>Mon, 01 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/en/post/htmlcss/010-html-character-entity/</guid><description>&lt;p&gt;An &lt;strong&gt;HTML character entity&lt;/strong&gt; (also called an HTML entity) is a string of characters that represents a special symbol or reserved character in HTML. Because characters like &lt;code&gt;&amp;lt;&lt;/code&gt;, &lt;code&gt;&amp;gt;&lt;/code&gt;, and &lt;code&gt;&amp;amp;&lt;/code&gt; have functional meaning in HTML markup, you cannot simply type them into your document and expect them to display as text. Instead, you use entity codes such as &lt;code&gt;&amp;amp;lt;&lt;/code&gt;, &lt;code&gt;&amp;amp;gt;&lt;/code&gt;, and &lt;code&gt;&amp;amp;amp;&lt;/code&gt; to render these characters safely in the browser. Understanding HTML entities is essential for any web developer who needs to display code snippets, mathematical symbols, currency signs, or typographic characters on a web page.&lt;/p&gt;</description></item><item><title>NVM vs NPM vs Node.js: What's the Difference? Complete Guide</title><link>https://benzhub.github.io/en/post/javascript/023-whats-nvm-npm-nodejs/</link><pubDate>Mon, 01 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/en/post/javascript/023-whats-nvm-npm-nodejs/</guid><description>&lt;blockquote&gt;
&lt;p&gt;When starting out with JavaScript development, you will inevitably encounter three terms: &lt;strong&gt;NVM&lt;/strong&gt;, &lt;strong&gt;NPM&lt;/strong&gt;, and &lt;strong&gt;Node.js&lt;/strong&gt;. In short, Node.js is the JavaScript runtime, NPM is the package manager that ships with Node.js, and NVM is a version manager that lets you install and switch between multiple Node.js versions on the same machine. This article breaks down NVM vs NPM vs Node.js in detail, including the correct installation flow, essential commands, and best practices for team collaboration.&lt;/p&gt;
&lt;/blockquote&gt;</description></item></channel></rss>