<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>All Blog - Vindrin</title><link>https://vindrin.top/posts/</link><description>All Blog | Vindrin</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>vindrin@outlook.com (Vindrin)</managingEditor><webMaster>vindrin@outlook.com (Vindrin)</webMaster><lastBuildDate>Sun, 05 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://vindrin.top/posts/" rel="self" type="application/rss+xml"/><item><title>Things I Wish I Knew Before Learning Machine Learning</title><link>https://vindrin.top/posts/ml-lessons-learned/</link><pubDate>Sun, 05 Apr 2026 00:00:00 +0000</pubDate><author>vindrin@outlook.com (Vindrin)</author><guid>https://vindrin.top/posts/ml-lessons-learned/</guid><description><![CDATA[<h1 id="things-i-wish-i-knew-before-learning-machine-learning">Things I Wish I Knew Before Learning Machine Learning</h1>
<p>I spent three months grinding through ML tutorials. Here&rsquo;s what I&rsquo;d tell myself at the start.</p>
<h2 id="1-math-first-code-second">1. Math first, code second</h2>
<p>You can copy-paste model code without understanding it. But when it breaks, you&rsquo;re lost. Spend time on linear algebra and probability basics — it pays off later.</p>
<h2 id="2-start-small">2. Start small</h2>
<p>Don&rsquo;t start with GPT or diffusion models. Start with linear regression on a CSV file. Understand what a loss function actually means.</p>]]></description></item><item><title>Understanding Git Rebase vs Merge</title><link>https://vindrin.top/posts/git-rebase-vs-merge/</link><pubDate>Tue, 10 Mar 2026 00:00:00 +0000</pubDate><author>vindrin@outlook.com (Vindrin)</author><guid>https://vindrin.top/posts/git-rebase-vs-merge/</guid><description><![CDATA[<h1 id="understanding-git-rebase-vs-merge">Understanding Git Rebase vs Merge</h1>
<p>This is the question that confuses every developer at some point. Let&rsquo;s settle it.</p>
<h2 id="merge">Merge</h2>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">git checkout main
</span></span><span class="line"><span class="cl">git merge feature-branch</span></span></code></pre></div></div>
<p>Creates a <strong>merge commit</strong>. History shows exactly what happened: two branches joined at a point. Safe for shared branches.</p>
<h2 id="rebase">Rebase</h2>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">git checkout feature-branch
</span></span><span class="line"><span class="cl">git rebase main</span></span></code></pre></div></div>
<p>Rewrites your commits on top of <code>main</code>. History looks <strong>linear</strong> — as if you started the feature after main was updated.</p>]]></description></item><item><title>My Neovim Config Journey</title><link>https://vindrin.top/posts/neovim-config/</link><pubDate>Fri, 20 Feb 2026 00:00:00 +0000</pubDate><author>vindrin@outlook.com (Vindrin)</author><guid>https://vindrin.top/posts/neovim-config/</guid><description><![CDATA[<h1 id="my-neovim-config-journey">My Neovim Config Journey</h1>
<p>I switched to Neovim six months ago. Here&rsquo;s what I learned.</p>
<h2 id="why-bother">Why bother?</h2>
<p>VS Code is fine. But when you open it 40 times a day, the startup time adds up. Neovim starts in under 50ms and runs everywhere — including SSH sessions.</p>
<h2 id="my-setup-stack">My setup stack</h2>
<ul>
<li><strong>lazy.nvim</strong> — plugin manager</li>
<li><strong>nvim-lspconfig</strong> — LSP for Python, JS, Lua</li>
<li><strong>nvim-cmp</strong> — autocomplete</li>
<li><strong>Telescope</strong> — fuzzy finder (replaces Ctrl+P)</li>
<li><strong>nvim-treesitter</strong> — better syntax highlighting</li>
</ul>
<h2 id="the-learning-curve">The learning curve</h2>
<p>Week 1: frustration. Week 2: muscle memory. Week 3: you stop thinking about keystrokes.</p>]]></description></item><item><title>Python Virtual Environments Explained</title><link>https://vindrin.top/posts/python-venv-guide/</link><pubDate>Tue, 03 Feb 2026 00:00:00 +0000</pubDate><author>vindrin@outlook.com (Vindrin)</author><guid>https://vindrin.top/posts/python-venv-guide/</guid><description><![CDATA[<h1 id="python-virtual-environments-explained">Python Virtual Environments Explained</h1>
<p>If you&rsquo;ve ever broken a project by upgrading a package globally, you need venvs.</p>
<h2 id="what-is-a-venv">What is a venv?</h2>
<p>A virtual environment is an isolated Python installation — it has its own <code>pip</code> and packages, completely separate from your system Python.</p>
<h2 id="creating-one">Creating one</h2>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">python -m venv .venv
</span></span><span class="line"><span class="cl"><span class="nb">source</span> .venv/bin/activate    <span class="c1"># Linux/macOS</span>
</span></span><span class="line"><span class="cl">.venv<span class="se">\S</span>cripts<span class="se">\a</span>ctivate       <span class="c1"># Windows</span></span></span></code></pre></div></div>
<h2 id="installing-packages">Installing packages</h2>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">pip install requests numpy pandas
</span></span><span class="line"><span class="cl">pip freeze &gt; requirements.txt</span></span></code></pre></div></div>
<h2 id="restoring-later">Restoring later</h2>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">python -m venv .venv
</span></span><span class="line"><span class="cl">pip install -r requirements.txt</span></span></code></pre></div></div>
<h2 id="using-with-conda">Using with conda</h2>
<p>If you use conda, each <code>conda create -n myenv python=3.11</code> works the same way — isolated by default.</p>]]></description></item><item><title>Setting Up Hugo with LoveIt Theme</title><link>https://vindrin.top/posts/hugo-setup-guide/</link><pubDate>Thu, 15 Jan 2026 00:00:00 +0000</pubDate><author>vindrin@outlook.com (Vindrin)</author><guid>https://vindrin.top/posts/hugo-setup-guide/</guid><description><![CDATA[<h1 id="setting-up-hugo-with-loveit-theme">Setting Up Hugo with LoveIt Theme</h1>
<p>Hugo is fast. LoveIt is clean. Together they&rsquo;re a great combo for a personal site.</p>
<h2 id="prerequisites">Prerequisites</h2>
<ul>
<li>Hugo Extended v0.110+</li>
<li>Git</li>
</ul>
<h2 id="installation">Installation</h2>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Install Hugo (Windows via WinGet)</span>
</span></span><span class="line"><span class="cl">winget install Hugo.Hugo.Extended
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Create a new site</span>
</span></span><span class="line"><span class="cl">hugo new site my-blog
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> my-blog
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Add LoveIt as a submodule</span>
</span></span><span class="line"><span class="cl">git init
</span></span><span class="line"><span class="cl">git submodule add https://github.com/dillonzq/LoveIt themes/LoveIt</span></span></code></pre></div></div>
<h2 id="basic-config">Basic config</h2>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-toml">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-toml" data-lang="toml"><span class="line"><span class="cl"><span class="nx">baseURL</span> <span class="p">=</span> <span class="s2">&#34;https://yourdomain.com/&#34;</span>
</span></span><span class="line"><span class="cl"><span class="nx">theme</span> <span class="p">=</span> <span class="s2">&#34;LoveIt&#34;</span>
</span></span><span class="line"><span class="cl"><span class="nx">paginate</span> <span class="p">=</span> <span class="mi">5</span></span></span></code></pre></div></div>
<h2 id="start-the-server">Start the server</h2>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">hugo server -D</span></span></code></pre></div></div>
<p>Visit <code>http://localhost:1313</code> and you&rsquo;re live.</p>]]></description></item><item><title>Hello World</title><link>https://vindrin.top/posts/hello-world/</link><pubDate>Wed, 01 Jan 2025 00:00:00 +0000</pubDate><author>vindrin@outlook.com (Vindrin)</author><guid>https://vindrin.top/posts/hello-world/</guid><description><![CDATA[<h1 id="hello-world">Hello World</h1>
<p>Every journey starts somewhere. This is mine.</p>
<p>I&rsquo;ve been meaning to start a blog for a while — writing things down has a way of making thoughts clearer. Whether it&rsquo;s a technical note, a random reflection, or just a log of what I built this week, this is the place for it.</p>
<h2 id="why-a-blog">Why a blog?</h2>
<ul>
<li>To document what I learn</li>
<li>To share what I build</li>
<li>To have a corner of the internet that&rsquo;s actually mine</li>
</ul>
<p>Stay tuned. There&rsquo;s more to come.</p>]]></description></item></channel></rss>