<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Traliran's blog]]></title><description><![CDATA[Official blog of Traliran, developer of Traliran AI Hub. Writing about software development, new app releases, and project updates.]]></description><link>https://traliran.hashnode.dev</link><image><url>https://cdn.hashnode.com/uploads/logos/6a7af0d76035a00f059e8c07/a04dcf7f-69c0-4996-9a35-3489826e155d.jpg</url><title>Traliran&apos;s blog</title><link>https://traliran.hashnode.dev</link></image><generator>RSS for Node</generator><lastBuildDate>Fri, 18 Sep 2026 11:10:43 GMT</lastBuildDate><atom:link href="https://traliran.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Why C is the Best Thing That Ever Happened to Programming]]></title><description><![CDATA[Most modern programming languages try to hide how the machine actually works. They wrap developers in syntax sugar, automatic garbage collection, and gigabytes of abstractions. But if you want total c]]></description><link>https://traliran.hashnode.dev/why-c-is-the-best-thing-that-ever-happened-to-programming</link><guid isPermaLink="true">https://traliran.hashnode.dev/why-c-is-the-best-thing-that-ever-happened-to-programming</guid><category><![CDATA[C]]></category><category><![CDATA[programming languages]]></category><dc:creator><![CDATA[Traliran]]></dc:creator><pubDate>Fri, 11 Sep 2026 18:43:08 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6a7af0d76035a00f059e8c07/5f791f1a-9e1e-45fb-a8e6-63f92422b96b.jpg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Most modern programming languages try to hide how the machine actually works. They wrap developers in syntax sugar, automatic garbage collection, and gigabytes of abstractions. But if you want total control over the hardware and code that runs at the speed of thought, there is only one true path — C.</p>
<hr />
<h2>Why Learn C Language in 2026: Absolute Control and Peak Performance</h2>
<p>The core strength of C lies in its honesty. There are no hidden loops, heavy frameworks, or unpredictable garbage collection pauses. You get exactly what you wrote.</p>
<ul>
<li><p><strong>Direct Memory Access:</strong> Working with pointers teaches you exactly where your data lives.</p>
</li>
<li><p><strong>Minimal Overhead:</strong> Your binaries weigh kilobytes instead of hundreds of megabytes.</p>
</li>
<li><p><strong>Predictability:</strong> You always know what machine code every line will compile into.</p>
</li>
</ul>
<p>When you build a tool in C, it runs instantaneously. No bloated layers, no lag, and zero compromises — whether on a high-end server or legacy hardware.</p>
<hr />
<h2>C Programming Without Hassle: Writing Clean Code Fast</h2>
<p>The myth that C development is painfully slow is completely outdated. Today, the primary focus is on architecture. When syntax and boilerplate cease to be a bottleneck, the <strong>KISS</strong> philosophy (<em>Keep It Simple, Stupid</em>) takes center stage.</p>
<h3>The Magic of Compilation and Build Process</h3>
<p>You no longer need to spend hours hunting down minor syntax errors. Focus entirely on what matters:</p>
<ol>
<li><p>Design clean, straightforward data structures (<code>struct</code>).</p>
</li>
<li><p>Break logic down into small, single-purpose functions.</p>
</li>
<li><p>Keep code modular for effortless maintenance.</p>
</li>
</ol>
<p>C forces you to think clearly and design systems right from the start. Once the architecture is solid, building a fast, working prototype is pure joy.</p>
<hr />
<h2>Key Advantages of C Over Other Languages: Simplicity and Longevity</h2>
<p>While shiny new languages rise and vanish every few years, C remains the rock-solid foundation of IT. Operating systems, drivers, databases, high-load services, and game engines — everything runs on C.</p>
<ul>
<li><p><strong>Lean Specification:</strong> C uses only a handful of keywords. You don't need to learn hundreds of complex features to read someone else's code.</p>
</li>
<li><p><strong>Ultimate Portability:</strong> C code compiles on virtually any architecture, from microcontrollers to supercomputers.</p>
</li>
<li><p><strong>No Magic:</strong> Every piece of logic is explicit. When something breaks, you know exactly where to look.</p>
</li>
</ul>
<hr />
<h2>Verdict: The Perfect Balance of Control and Speed</h2>
<p>C isn't just surviving — it's thriving in a new era. It is the ultimate choice for developers who value simplicity, want to squeeze maximum performance out of every CPU cycle, and love building lightning-fast tools without bloat.</p>
<p>C delivers what modern software desperately lacks — complete freedom and pure performance.</p>
]]></content:encoded></item><item><title><![CDATA[💎 From Web App to Terminal: How I Ported Traliran AI Hub to C11]]></title><description><![CDATA[I'm the author of Traliran AI Hub. Here's the story of how its terminal version came to be.

Background
I develop Traliran AI Hub — a privacy-first serverless AI client that runs entirely in the brows]]></description><link>https://traliran.hashnode.dev/from-web-app-to-terminal-how-i-ported-traliran-ai-hub-to-c11</link><guid isPermaLink="true">https://traliran.hashnode.dev/from-web-app-to-terminal-how-i-ported-traliran-ai-hub-to-c11</guid><dc:creator><![CDATA[Traliran]]></dc:creator><pubDate>Fri, 28 Aug 2026 14:15:27 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6a7af0d76035a00f059e8c07/0fa99588-38d8-4002-88ed-c89acf8fb6ee.jpg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>I'm the author of</em> <a href="https://github.com/Traliran/traliran-ai-hub"><em>Traliran AI Hub</em></a><em>. Here's the story of how its terminal version came to be.</em></p>
<hr />
<h2>Background</h2>
<p>I develop <a href="https://github.com/Traliran/traliran-ai-hub">Traliran AI Hub</a> — a privacy-first serverless AI client that runs entirely in the browser: API keys live in <code>LocalStorage</code>, requests go straight to the providers, and there are no middleman servers. The concept stuck, but I myself spend most of my time in the terminal — tmux, SSH on remote servers, working without a GUI.</p>
<p>At some point it became clear: I wanted the same functionality, but <strong>in the terminal</strong>. That's how <code>traliran-ai-hub-cli</code> was born — my own port of Traliran AI Hub written in pure C11 with ncurses. The same feature set, the same privacy, just without the browser (this version may lag behind in updates and features due to the intricacies of native development).</p>
<hr />
<h2>What's Inside</h2>
<p>A native TUI client (<code>traliran-hub</code>) in C11 + <code>ncursesw</code> + <code>libcurl</code>. The JSON parser (<code>cJSON</code>) is vendored locally — from the system you only need a compiler and a couple of dev packages. It builds into a single binary:</p>
<pre><code class="language-shell">make            # builds ./traliran-hub
make install    # installs to /usr/local/bin (override with PREFIX=...)
make clean
</code></pre>
<p>Run it:</p>
<pre><code class="language-shell">traliran-hub
</code></pre>
<p>On first run it creates <code>~/.cache/traliran-cache/</code> (config/notes/sessions in <code>storage.json</code>) and a starter IDE workspace.</p>
<p>Quick start:</p>
<ol>
<li><p>Press <strong>5</strong> (Settings) → set your <strong>Provider</strong> and <strong>API Key</strong>, then <strong>Fetch Models</strong> and pick a model.</p>
</li>
<li><p>Return to <strong>Chat</strong> (<strong>1</strong>) and type a message.</p>
</li>
<li><p>Press <strong>?</strong> in-app for the full keymap.</p>
</li>
</ol>
<hr />
<h2>Features I Ported from the Web Version</h2>
<ul>
<li><p><strong>Multi-Provider Support:</strong> Groq, Gemini, OpenAI, OpenRouter, DeepSeek, Qwen, GLM, Claude, plus local backends (Ollama / Llama.cpp).</p>
</li>
<li><p><strong>⚡ Multi-Model Compare:</strong> pick several models at once — the app fires parallel requests and renders side-by-side cards. Perfect for benchmarking without ten open tabs.</p>
</li>
<li><p><strong>💡 Thinking Mode:</strong> reasoning models like DeepSeek-R1 — their chain of thought collapses into a clean dropdown.</p>
</li>
<li><p><strong>👥 AI Group Debate:</strong> personas (Optimist, Critic, Technologist) dissect an idea over multiple rounds. My "brainstorming" — solo.</p>
</li>
<li><p><strong>⚡ AI IDE:</strong> file manager, editor, snapshot versioning (commit/revert), a persistent coding agent in the right panel, project export to <code>.tar.gz</code>.</p>
</li>
<li><p><strong>🧠 RAG:</strong> drop <code>.md</code>/<code>.txt</code> into a knowledge base and the chat retrieves relevant content via a tool protocol. Notes export there and back.</p>
</li>
<li><p><strong>💻 Sandbox:</strong> preview generated HTML/JS/CSS right inside the chat.</p>
</li>
<li><p><strong>🏪 Assistant Store:</strong> ready-made presets (translator, editor, idea generator).</p>
</li>
<li><p><strong>⚙️ Fine-Grained Tuning:</strong> Temperature, Top P, and Max Tokens on the fly.</p>
</li>
<li><p><strong>🌍 Full UTF-8:</strong> Cyrillic and other non-ASCII everywhere with proper cursor handling.</p>
</li>
<li><p><strong>Vim Mode:</strong> <strong>F12</strong> toggles vim-style navigation.</p>
</li>
</ul>
<p>A small but important detail: plain hotkeys (<code>q</code>, <code>?</code>, <code>1..6</code>, Tab, IDE <code>x</code>) only fire after <strong>3 rapid presses within a second</strong>, so typing never triggers them by accident. F-keys and Ctrl combos fire immediately.</p>
<hr />
<h2>Why This Is About Privacy</h2>
<ul>
<li><p><strong>Zero middleman:</strong> 100% client-side application, no servers.</p>
</li>
<li><p><strong>Direct routing:</strong> tokens live only in the local config (<code>~/.cache/traliran-cache/hub-config.json</code>) and go straight to the providers.</p>
</li>
<li><p><strong>AGPLv3:</strong> freely audit, host, and modify.</p>
</li>
</ul>
<p>As the author, I care that users fully control their data — in both versions there's no "black box" running server-side.</p>
<hr />
<h2>Who It's For</h2>
<ul>
<li><p>Those who live in the terminal and don't want to switch to a browser.</p>
</li>
<li><p>Those working on remote/headless servers over SSH.</p>
</li>
<li><p>Those who want to compare models across providers in parallel and privately.</p>
</li>
<li><p>Those looking for a lightweight alternative to heavy browser-based AI IDEs.</p>
</li>
</ul>
<hr />
<h2>Links</h2>
<ul>
<li><p>Traliran AI Hub (web, original): <a href="https://github.com/Traliran/traliran-ai-hub">https://github.com/Traliran/traliran-ai-hub</a></p>
</li>
<li><p>Traliran AI Hub — CLI/TUI port: <a href="https://github.com/Traliran/traliran-ai-hub-cli">https://github.com/Traliran/traliran-ai-hub-cli</a></p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[Vibecoding: How to Manage an AI Coder and Not Drown in Spaghetti Code]]></title><description><![CDATA[Forget fairy tales about AI doing everything for you at the touch of a button. Without strict control, vibecoding quickly turns into a mess of broken, unmaintainable code.
Modern vibecoding isn't blin]]></description><link>https://traliran.hashnode.dev/vibecoding-how-to-manage-an-ai-coder-and-not-drown-in-spaghetti-code</link><guid isPermaLink="true">https://traliran.hashnode.dev/vibecoding-how-to-manage-an-ai-coder-and-not-drown-in-spaghetti-code</guid><dc:creator><![CDATA[Traliran]]></dc:creator><pubDate>Wed, 26 Aug 2026 09:47:58 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6a7af0d76035a00f059e8c07/d4f22a0b-1e6f-4918-8584-08961407ce6a.jpg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Forget fairy tales about AI doing everything for you at the touch of a button. Without strict control, vibecoding quickly turns into a mess of broken, unmaintainable code.</p>
<p>Modern vibecoding isn't blind generation — it is <strong>strict architectural supervision</strong>. To build real products, you must change your approach to context and redefine your role in the process.</p>
<hr />
<h2>Forget Persona Prompting: Context is the Only King of Modern Prompting</h2>
<p>Fables like "Act as a Senior Developer" were left back in 2023. Modern LLMs don't need roleplay — they need <strong>the cleanest, deepest context possible</strong>.</p>
<h3>Why "Persona Prompting" is Outdated</h3>
<p>AI doesn't start coding better just because you called it a senior dev. It needs concrete technical boundaries. Skip the foreplay and provide the AI with technical specifications:</p>
<ul>
<li><p><strong>Stack and versions:</strong> Not just "React", but <code>React 18, Next.js 14 (App Router), Tailwind CSS</code>.</p>
</li>
<li><p><strong>Architectural constraints:</strong> Show folder structure, naming conventions, and API response formats.</p>
</li>
<li><p><strong>Rule files (</strong><code>.cursorrules</code> <strong>/</strong> <code>.clauderules</code><strong>):</strong> Load strict rules into the project that the AI must follow at all times (e.g., <em>"Never use</em> <code>any</code> <em>in TypeScript, write functional components only"</em>).</p>
</li>
</ul>
<hr />
<h2>Humans as Strict Regulators, Not Blind Consumers of Code</h2>
<p>The biggest danger of vibecoding is shipping AI-generated garbage straight to production without looking. If you blindly consume whatever the AI spits out, your project is doomed.</p>
<h3>1. Total Quality Control and Code Review</h3>
<p>You act as the <strong>Technical Regulator and Censor</strong>. You never take the AI's word for it.</p>
<ul>
<li><p><strong>Read every</strong> <code>diff</code><strong>:</strong> Check exactly what the AI changes. Don't let it rewrite working modules from scratch just to add one button. Don't know how to code? Use basic logic: adding a single button shouldn't make 30 lines of code disappear from <code>main.py</code> or <code>app.js</code>.</p>
</li>
<li><p><strong>Force it to justify decisions:</strong> If the AI suggests a library, ask: <em>"Why this one over a native solution? Will it impact performance?"</em></p>
</li>
</ul>
<h3>2. Architectural Control: Keep AI Inside Modular Boundaries</h3>
<p>AI loves dumping all code into a single massive file. Your job as an Architect is to enforce a <strong>system</strong>:</p>
<ul>
<li><p>Break the app into isolated modules.</p>
</li>
<li><p>Never allow AI to leak business logic into UI components.</p>
</li>
<li><p>Demand test coverage for critical paths before code hits production.</p>
</li>
</ul>
<hr />
<h2>Vibecoding Tools: The Infrastructure for Total Control</h2>
<p>To effectively regulate AI, you need tools that supply rich context and let you audit output easily:</p>
<ol>
<li><p><strong>Cursor (with a</strong> <code>.cursorrules</code> <strong>file)</strong> — The ultimate tool for repo-wide context. Indexes your entire codebase and lets you feed specific files to the AI using <code>@</code>.</p>
</li>
<li><p><strong>Claude (Sonnet / Opus / Haiku)</strong> — The benchmark for logic. Holds long context best and rarely "hallucinates" non-existent functions.</p>
</li>
<li><p><strong>Git (and frequent commits)</strong> — Your primary safety net in vibecoding. Shipped a working micro-step with AI? Commit it. AI broke the project? Instant revert.</p>
</li>
</ol>
<hr />
<h2>Summary: Real "Vibe" Means Total Control</h2>
<p>Vibecoding only works when <strong>the AI writes the code, while the human acts as a strict filter and architect</strong>.</p>
<p>Don't grant AI freedom where mathematical precision is required. Provide context, decompose tasks, review every single line — and only then will you build a clean, functional, and scalable masterpiece.</p>
]]></content:encoded></item><item><title><![CDATA[du-rank: A Tiny and Ultra-Fast C Disk Usage Analyzer]]></title><description><![CDATA[When a server or laptop suddenly runs out of disk space, standard CLI tools like du require complex syntax, while heavy GUI apps aren't suitable for remote terminals. du-rank is a lightweight command-]]></description><link>https://traliran.hashnode.dev/du-rank-a-tiny-and-ultra-fast-c-disk-usage-analyzer</link><guid isPermaLink="true">https://traliran.hashnode.dev/du-rank-a-tiny-and-ultra-fast-c-disk-usage-analyzer</guid><dc:creator><![CDATA[Traliran]]></dc:creator><pubDate>Mon, 24 Aug 2026 11:10:09 GMT</pubDate><content:encoded><![CDATA[<p>When a server or laptop suddenly runs out of disk space, standard CLI tools like <code>du</code> require complex syntax, while heavy GUI apps aren't suitable for remote terminals. du-rank is a lightweight command-line tool designed for instant disk usage analysis on Linux and POSIX systems.</p>
<h2>Why Choose <code>du-rank</code> for Disk Usage Analysis and RAM Efficiency?</h2>
<p>Scanning millions of files often leads to high memory consumption in traditional utilities. du-rank solves this issue through zero-dependency C code and memory-efficient data structures.</p>
<h3>Minimalist Tech Stack: Pure C with Zero External Dependencies</h3>
<p>Written in clean <strong>POSIX C</strong>, the entire utility is contained within a single C source file.</p>
<ul>
<li><p><strong>Zero Dependencies:</strong> Relies solely on standard POSIX headers (<code>&lt;dirent.h&gt;</code>, <code>&lt;sys/stat.h&gt;</code>, <code>&lt;unistd.h&gt;</code>).</p>
</li>
<li><p><strong>High Portability:</strong> Compiles effortlessly using any standard C compiler (<code>gcc</code>, <code>clang</code>) via Makefile.</p>
</li>
<li><p><strong>Instant Execution:</strong> The resulting binary is just a few kilobytes and launches instantly.</p>
</li>
</ul>
<h3>Min-Heap Algorithm: Fixed Memory Footprint on Multi-Terabyte Drives</h3>
<p>During standard scans, du-rank avoids storing the full file tree in memory. Instead, it utilizes a <strong>Min-Heap</strong> of a fixed size <code>N</code> (default <code>N=10</code>).</p>
<p>Memory is allocated only for the top-<code>N</code> largest items. This ensures an <code>O(N)</code> memory footprint, preventing Out-Of-Memory (OOM) crashes even when scanning multi-terabyte drives.</p>
<h2>Key Features: Scanning Modes and Command-Line Options</h2>
<p><code>du-rank</code> delivers clear visual feedback directly in the terminal using ASCII/UTF-8 bar charts and optional ANSI colors.</p>
<h3>Fast Scanning Workflows: --allsys, --usr, and --top</h3>
<p>Analyze system drives or user folders with concise commands:</p>
<ul>
<li><p><code>--allsys</code> — scans the entire filesystem starting from <code>/</code> (automatically skipping pseudo-filesystems like <code>/proc</code>, <code>/sys</code>, <code>/dev</code>, and <code>/run</code>).</p>
</li>
<li><p><code>--usr</code> — instantly checks the current user's home directory (~).</p>
</li>
<li><p><code>--top &lt;N&gt;</code> — customizes the output to show the top <code>N</code> space-consuming targets.</p>
</li>
</ul>
<h3>Duplicate File Detection with <code>--dubl-scan</code>: Reclaim Wasted Space</h3>
<p>One of the standout features is the built-in duplicate scanner activated via --dubl-scan:</p>
<pre><code class="language-plaintext">$ du-rank --dubl-scan --usr
</code></pre>
<ul>
<li><p><strong>Matching Strategy:</strong> Groups regular files matching by name, exact size, and modification time (mtime).</p>
</li>
<li><p><strong>High Performance:</strong> Avoids reading file content from disk, ensuring near-instant scan completion.</p>
</li>
<li><p><strong>Reclaimable Space:</strong> Calculates the exact amount of disk space you can recover by keeping one copy per group.</p>
</li>
</ul>
<h2>Measurement Accuracy: Why st_blocks Beats Apparent File Size</h2>
<p>Many basic utilities report apparent file size (<code>st_size</code>), which can be inaccurate for sparse files or block-allocated storage.</p>
<p><code>du-rank</code> measures actual allocated disk sectors using <code>st_blocks</code> (512-byte blocks). This delivers true disk usage figures identical to core system tools.</p>
<h2>How to Build and Run du-rank from GitHub</h2>
<p>Building du-rank requires only a C compiler and make:</p>
<pre><code class="language-plaintext"># Clone the repository from GitHub
git clone https://github.com/Traliran/du-rank.git
cd du-rank

# Build the binary
make

# Analyze your home directory
./du-rank --usr

# Find top 5 space consumers in /var
./du-rank --top 5 /var
</code></pre>
<h2>Summary and Repository Links</h2>
<p><code>du-rank</code> is a practical utility for Linux admins, developers, and power users who value speed, accuracy, and minimal footprint.</p>
<p>GitHub Repository: <a href="https://github.com/Traliran/du-rank">Traliran/du-rank</a></p>
<p>Original article: <a href="https://dev.to/traliran/du-rank-a-tiny-and-ultra-fast-c-disk-usage-analyzer-30pd">https://dev.to/traliran/du-rank-a-tiny-and-ultra-fast-c-disk-usage-analyzer-30pd</a></p>
]]></content:encoded></item></channel></rss>