<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>CLI Tool on AI VOID</title><link>https://ai-blog.noorshomelab.dev/tags/cli-tool/</link><description>Recent content in CLI Tool on AI VOID</description><generator>Hugo</generator><language>en</language><lastBuildDate>Tue, 17 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://ai-blog.noorshomelab.dev/tags/cli-tool/index.xml" rel="self" type="application/rss+xml"/><item><title>Chapter 10: Performance Optimization &amp;amp; Streaming Input</title><link>https://ai-blog.noorshomelab.dev/mermaid-lint-guide/chapter-10-performance-optimization-streaming/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://ai-blog.noorshomelab.dev/mermaid-lint-guide/chapter-10-performance-optimization-streaming/</guid><description>&lt;h2 id="chapter-10-performance-optimization--streaming-input"&gt;Chapter 10: Performance Optimization &amp;amp; Streaming Input&lt;/h2&gt;
&lt;h3 id="chapter-introduction"&gt;Chapter Introduction&lt;/h3&gt;
&lt;p&gt;Welcome to Chapter 10! So far, we&amp;rsquo;ve meticulously built a robust Mermaid code analyzer, validator, and fixer with a strong emphasis on correctness and maintainability. Our lexer, parser, AST, and rule engine are designed to be strict and deterministic. However, as diagrams grow in complexity and size, performance and memory footprint become critical concerns, especially for a production-grade CLI tool that might process thousands of lines of Mermaid code or be integrated into CI/CD pipelines.&lt;/p&gt;</description></item><item><title>Chapter 14: Monitoring, Maintenance &amp;amp; Future Extensibility</title><link>https://ai-blog.noorshomelab.dev/mermaid-lint-guide/chapter-14-monitoring-maintenance-extensibility/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://ai-blog.noorshomelab.dev/mermaid-lint-guide/chapter-14-monitoring-maintenance-extensibility/</guid><description>&lt;h2 id="chapter-14-monitoring-maintenance--future-extensibility"&gt;Chapter 14: Monitoring, Maintenance &amp;amp; Future Extensibility&lt;/h2&gt;
&lt;p&gt;Welcome to the final chapter of our journey building a production-grade Mermaid analyzer and fixer. Throughout this guide, we&amp;rsquo;ve focused on correctness, performance, and best practices. Now, as we approach deployment, it&amp;rsquo;s crucial to consider the long-term aspects: how to keep our tool reliable, performant, and adaptable to future needs.&lt;/p&gt;
&lt;p&gt;In this chapter, we will delve into critical topics such as monitoring the tool&amp;rsquo;s performance, establishing robust maintenance strategies, and exploring avenues for future extensibility. We&amp;rsquo;ll integrate structured logging, set up performance benchmarks, design a conceptual plugin system, discuss WebAssembly (WASM) compilation, and demonstrate CI/CD integration. By the end of this chapter, you will have a comprehensive understanding of how to ensure the &lt;code&gt;mermaid-tool&lt;/code&gt; remains a valuable asset for years to come, with a clear path for its evolution.&lt;/p&gt;</description></item><item><title>Chapter 4: Refining Character Set Management</title><link>https://ai-blog.noorshomelab.dev/rust-password-generator-guide/chapter-04-implementing-character-sets/</link><pubDate>Mon, 01 Dec 2025 00:00:00 +0000</pubDate><guid>https://ai-blog.noorshomelab.dev/rust-password-generator-guide/chapter-04-implementing-character-sets/</guid><description>&lt;h3 id="purpose-of-this-chapter"&gt;Purpose of This Chapter&lt;/h3&gt;
&lt;p&gt;While our current character set management works, it can become cumbersome as we add more options (e.g., excluding ambiguous characters). This chapter will refine our character set logic by introducing a more structured approach, making it easier to manage which characters are included or excluded. We&amp;rsquo;ll also ensure a sensible default where at least &lt;em&gt;some&lt;/em&gt; character types are always selected.&lt;/p&gt;
&lt;h3 id="concepts-explained"&gt;Concepts Explained&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Character Enums/Structs:&lt;/strong&gt; Instead of simply using boolean flags and &lt;code&gt;String::push_str&lt;/code&gt;, we can represent character sets more abstractly. This might involve creating an enum for character types or a helper struct that encapsulates the character pools and their selection logic. For this chapter, we&amp;rsquo;ll keep it fairly direct but improve the &lt;code&gt;main&lt;/code&gt; function&amp;rsquo;s structure.&lt;/p&gt;</description></item><item><title>Chapter 5: Generating Passwords with Specific Length</title><link>https://ai-blog.noorshomelab.dev/rust-password-generator-guide/chapter-05-generating-passwords-with-length/</link><pubDate>Mon, 01 Dec 2025 00:00:00 +0000</pubDate><guid>https://ai-blog.noorshomelab.dev/rust-password-generator-guide/chapter-05-generating-passwords-with-length/</guid><description>&lt;h3 id="purpose-of-this-chapter"&gt;Purpose of This Chapter&lt;/h3&gt;
&lt;p&gt;We have the ability to gather user preferences for character types and a desired password length. In this chapter, we will ensure that our password generation loop correctly produces a password of exactly the &lt;code&gt;length&lt;/code&gt; specified by the user, drawing characters from our carefully constructed character pool. While the previous chapter already introduced this loop, this chapter solidifies its role and ensures its accuracy.&lt;/p&gt;
&lt;h3 id="concepts-explained"&gt;Concepts Explained&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Looping for Length:&lt;/strong&gt; The fundamental approach to generating a password of a specific length is to iterate that many times, picking one random character in each iteration and appending it to our result string.&lt;/p&gt;</description></item></channel></rss>