<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Tutorial on JsonKit Blog</title>
    <link>https://jsokit.com/blog/tags/tutorial/</link>
    <description>Recent content in Tutorial on JsonKit Blog</description>
    <generator>Hugo</generator>
    <language>en</language>
    <copyright>© 2025 JsonKit</copyright>
    <lastBuildDate>Fri, 08 May 2026 10:48:36 +0000</lastBuildDate>
    <atom:link href="https://jsokit.com/blog/tags/tutorial/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Unix Timestamp Pitfalls: A Complete Guide to Timestamp Conversion</title>
      <link>https://jsokit.com/blog/posts/unix-timestamp-pitfalls-a-complete-guide-to-timestamp-conversion/</link>
      <pubDate>Fri, 08 May 2026 10:48:36 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/unix-timestamp-pitfalls-a-complete-guide-to-timestamp-conversion/</guid>
      <description>Unix Timestamp Pitfalls: A Complete Guide to Timestamp Conversion Last week, I was debugging a production issue. The logs were filled with numbers like 1745678901. Our new intern looked confused: &amp;ldquo;What are these?&amp;rdquo; I said, &amp;ldquo;Unix timestamps.&amp;rdquo; He asked, &amp;ldquo;How do I convert them to human-readable time?&amp;rdquo;&#xA;That question made me realize timestamp conversion is trickier than I thought.&#xA;What is a Unix Timestamp? A Unix timestamp is the number of seconds since January 1, 1970, 00:00:00 UTC.</description>
    </item>
    <item>
      <title>From Manual to Automated: Systemd Service Unit Configuration Best Practices</title>
      <link>https://jsokit.com/blog/posts/from-manual-to-automated-systemd-service-unit-configuration-best-practices/</link>
      <pubDate>Mon, 04 May 2026 12:34:21 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/from-manual-to-automated-systemd-service-unit-configuration-best-practices/</guid>
      <description>From Manual to Automated: Systemd Service Unit Configuration Best Practices Last week, while deploying a Node.js application to production, I hit another systemd pitfall. The service kept exiting silently with no error logs. After hours of debugging, I discovered the conflict between Type=simple and an incorrect ExecStop configuration. I decided to build a tool to codify all the lessons learned over the years.&#xA;The Three-Section Structure of a Service Unit A standard .</description>
    </item>
    <item>
      <title>Redis Cheatsheet Implementation: From Data Structures to Category Filtering</title>
      <link>https://jsokit.com/blog/posts/redis-cheatsheet-implementation-from-data-structures-to-category-filtering/</link>
      <pubDate>Sun, 26 Apr 2026 16:29:59 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/redis-cheatsheet-implementation-from-data-structures-to-category-filtering/</guid>
      <description>Redis Cheatsheet Implementation: From Data Structures to Category Filtering Our team recently added Redis to a new project. A few junior devs kept forgetting commands. The docs are too long, CLI help is too brief. So I built a cheatsheet tool and organized Redis data structures and command categories properly.&#xA;Five Core Redis Data Structures Redis is fast not just because of in-memory storage, but because of its data structure design.</description>
    </item>
    <item>
      <title>From Variable Extraction to Smart Filling: Building a Prompt Template Manager</title>
      <link>https://jsokit.com/blog/posts/from-variable-extraction-to-smart-filling-building-a-prompt-template-manager/</link>
      <pubDate>Thu, 23 Apr 2026 11:37:47 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/from-variable-extraction-to-smart-filling-building-a-prompt-template-manager/</guid>
      <description>From Variable Extraction to Smart Filling: Building a Prompt Template Manager Recently, while using AI tools like ChatGPT and Claude, I noticed many prompts are reusable. For scenarios like code review, bug fixing, and documentation generation, the prompt structure stays similar—only the parameters change. So I built a template management tool and documented the implementation approach.&#xA;The Variable Extraction Algorithm The core question: how do we extract {{variable}} placeholders from text?</description>
    </item>
    <item>
      <title>Linux xargs Command Deep Dive: Bridging Pipes and Command Arguments</title>
      <link>https://jsokit.com/blog/posts/linux-xargs-command-deep-dive-bridging-pipes-and-command-arguments/</link>
      <pubDate>Sat, 11 Apr 2026 16:14:25 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/linux-xargs-command-deep-dive-bridging-pipes-and-command-arguments/</guid>
      <description>Linux xargs Command Deep Dive: Bridging Pipes and Command Arguments If you&amp;rsquo;ve used Linux for a while, you&amp;rsquo;ve probably encountered this frustration: piping the output of one command to another, only to get an error.&#xA;# Delete all .log files find . -name &amp;#34;*.log&amp;#34; | rm rm: missing operand The problem is that rm doesn&amp;rsquo;t accept standard input—it only takes command-line arguments. This is where xargs comes in.&#xA;What xargs Actually Does xargs reads from standard input, converts it into command-line arguments, and passes them to another command.</description>
    </item>
    <item>
      <title>Linux wc Command: More Than Just Counting Lines</title>
      <link>https://jsokit.com/blog/posts/linux-wc-command-more-than-just-counting-lines/</link>
      <pubDate>Thu, 09 Apr 2026 16:30:13 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/linux-wc-command-more-than-just-counting-lines/</guid>
      <description>Linux wc Command: More Than Just Counting Lines When writing code, you often need to quickly check file stats. Counting lines, measuring code size, checking file sizes—wc handles all of this.&#xA;Basic Usage wc stands for Word Count, but it does much more:&#xA;# Count lines, words, and bytes wc file.txt # Output: 12 48 256 file.txt # lines words bytes # Individual counts wc -l file.txt # Lines only: 12 wc -w file.</description>
    </item>
    <item>
      <title>Linux watch Command Deep Dive: From Real-time Monitoring to Change Detection</title>
      <link>https://jsokit.com/blog/posts/linux-watch-command-deep-dive-from-real-time-monitoring-to-change-detection/</link>
      <pubDate>Thu, 09 Apr 2026 11:01:07 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/linux-watch-command-deep-dive-from-real-time-monitoring-to-change-detection/</guid>
      <description>Linux watch Command Deep Dive: From Real-time Monitoring to Change Detection Time: 2026-05-11 16:57&#xA;Ever found yourself repeatedly running the same command—checking GPU usage, monitoring log file sizes, or waiting for a process to appear? Many developers manually execute commands over and over, unaware that Linux has a built-in gem: the watch command.&#xA;Core Principles of watch At its core, watch is simple: loop execution + full-screen display. But the implementation details are worth exploring.</description>
    </item>
    <item>
      <title>Linux vmstat Command Deep Dive: From Kernel Statistics to Performance Bottleneck Diagnosis</title>
      <link>https://jsokit.com/blog/posts/linux-vmstat-command-deep-dive-from-kernel-statistics-to-performance-bottleneck-diagnosis/</link>
      <pubDate>Wed, 08 Apr 2026 16:27:39 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/linux-vmstat-command-deep-dive-from-kernel-statistics-to-performance-bottleneck-diagnosis/</guid>
      <description>Linux vmstat Command Deep Dive: From Kernel Statistics to Performance Bottleneck Diagnosis Published: May 11, 2026 10:08&#xA;When tuning Linux system performance, you&amp;rsquo;ve likely used top or htop. But when you need to dig into CPU scheduling, memory paging, and I/O wait times, vmstat is the real powerhouse. Born in 1983, this tool remains the go-to choice for sysadmins diagnosing performance bottlenecks.&#xA;The Six Dimensions of vmstat Output Running vmstat directly gives you a table:</description>
    </item>
    <item>
      <title>Linux uniq Command: From Adjacent Deduplication to Count Statistics</title>
      <link>https://jsokit.com/blog/posts/linux-uniq-command-from-adjacent-deduplication-to-count-statistics/</link>
      <pubDate>Tue, 07 Apr 2026 16:07:16 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/linux-uniq-command-from-adjacent-deduplication-to-count-statistics/</guid>
      <description>Linux uniq Command: From Adjacent Deduplication to Count Statistics When processing log files or analyzing data, deduplication is a common task. The uniq command does exactly that—but with a catch: it only removes adjacent duplicate lines. Let&amp;rsquo;s dive deep into how uniq works and its practical applications.&#xA;Core Algorithm: Adjacent Line Comparison The implementation of uniq is surprisingly simple—a state machine at its heart:&#xA;// Simplified uniq core logic char *prev_line = NULL; while ((line = read_line()) !</description>
    </item>
    <item>
      <title>Linux tr Command Deep Dive: The Art of Character Translation</title>
      <link>https://jsokit.com/blog/posts/linux-tr-command-deep-dive-the-art-of-character-translation/</link>
      <pubDate>Mon, 06 Apr 2026 09:19:09 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/linux-tr-command-deep-dive-the-art-of-character-translation/</guid>
      <description>Linux tr Command Deep Dive: The Art of Character Translation Exploring the most elegant character processing tool in Unix/Linux, from ASCII tables to stream processing internals&#xA;Published: May 8, 2026 01:40&#xA;Introduction: The Philosophy of One Command tr is a perfect embodiment of the Unix philosophy—it does one thing, but does it exceptionally well. As the &amp;ldquo;character sculpting knife&amp;rdquo; in the Linux text processing toolkit, tr efficiently handles character translation, deletion, and squeezing operations.</description>
    </item>
  </channel>
</rss>
