<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Projects on Lorbic</title><link>http://localhost:1313/series/projects/</link><description>Recent content in Projects on Lorbic</description><generator>Hugo</generator><language>en</language><lastBuildDate>Thu, 23 Jul 2026 00:00:00 +0000</lastBuildDate><atom:link href="http://localhost:1313/series/projects/index.xml" rel="self" type="application/rss+xml"/><item><title>Migrating Cloudflare to Terraform</title><link>http://localhost:1313/cloudflare-management-with-terraform/</link><pubDate>Tue, 28 Apr 2026 14:00:00 +0530</pubDate><guid>http://localhost:1313/cloudflare-management-with-terraform/</guid><description>&lt;p>A while back, I was tinkering in the Cloudflare dashboard and accidentally fat-fingered a DNS configuration. I didn&amp;rsquo;t realize the impact immediately, but I ended up taking down &lt;code>lorbic.com&lt;/code> for an hour.&lt;/p>
&lt;p>When I scrambled to fix it, I hit a wall: there was no &amp;ldquo;undo&amp;rdquo; button. There was no Git history to tell me what the record &lt;em>used&lt;/em> to point to, and no review to catch the mistake before I blew it.&lt;/p></description></item><item><title>Python Background Workers: Architecture, Queues, and Retry Strategies</title><link>http://localhost:1313/building-production-ready-background-workers-in-python/</link><pubDate>Sun, 01 Feb 2026 13:00:00 +0530</pubDate><guid>http://localhost:1313/building-production-ready-background-workers-in-python/</guid><description>&lt;p>I thought processing audio in the background was simple: spawn a thread, run the script, save the file. Then I hit 200 concurrent requests, and it failed epically.&lt;/p>
&lt;p>The CPU spiked to full usage because of pydub&amp;rsquo;s processing. The TTS API didn&amp;rsquo;t rate-limit me but, it was horribly slow. Then the jobs started failing. Half the jobs died silently. The other half wrote corrupted files because of race conditions I didn&amp;rsquo;t know existed. And when I deployed a little fix? The deployment killed in-flight jobs, leaving orphaned audio segments scattered across cloud storage directory.&lt;/p></description></item><item><title>I Added Session Management to Aider</title><link>http://localhost:1313/aider-session-management/</link><pubDate>Thu, 15 Jan 2026 20:30:00 +0530</pubDate><guid>http://localhost:1313/aider-session-management/</guid><description>&lt;p>I&amp;rsquo;ve been using &lt;a href="https://aider.chat" target="_blank" rel="noopener noreferrer">aider&lt;/a> as my primary AI coding assistant for a while now. It&amp;rsquo;s the one tool that actually fits my workflow: terminal-based, Git-native, and it works directly on my local files. No copy-pasting into web forms. No context windows that forget everything. And not waiting for agents to keep thinking.&lt;/p>
&lt;p>But it was missing one thing that drove me crazy.&lt;/p>
&lt;h2 id="the-problem-context-evaporates">The Problem: Context Evaporates&lt;a class="anchorjs-link" href="#the-problem-context-evaporates" aria-label="Link to section: The Problem: Context Evaporates">&lt;/a>&lt;/h2>&lt;p>Here&amp;rsquo;s the scenario. I&amp;rsquo;m deep into a complex refactor. I&amp;rsquo;ve added 15 files to the chat, built up tons of context with the model, and we&amp;rsquo;re making real progress.&lt;/p></description></item><item><title>Can ClickHouse Replace Vector Databases? HNSW, Benchmarks &amp; SQL Setup</title><link>http://localhost:1313/clickhouse-as-a-vector-database/</link><pubDate>Wed, 14 Jan 2026 20:00:00 +0530</pubDate><guid>http://localhost:1313/clickhouse-as-a-vector-database/</guid><description>&lt;p>Everyone&amp;rsquo;s building AI apps now. And every AI app needs a place to stash embeddings. The instant your data grows beyond &amp;ldquo;fits in memory&amp;rdquo;, you need a vector database. Or do you?&lt;/p>
&lt;p>If you&amp;rsquo;re already running ClickHouse for analytics, here&amp;rsquo;s some good news: you might not need another database. ClickHouse can hold its own as a vector store. Not because it was built for it, but because it&amp;rsquo;s built to be fast at everything.&lt;/p></description></item><item><title>Go Garbage Collector Mechanics: Pacer, GOGC, and Allocation Latency</title><link>http://localhost:1313/dont-take-out-the-garbage-go-gc-deep-dive/</link><pubDate>Wed, 07 Jan 2026 00:21:12 +0530</pubDate><guid>http://localhost:1313/dont-take-out-the-garbage-go-gc-deep-dive/</guid><description>&lt;p>In the world of high-throughput backend services, we often obsess over the usual suspects of performance: database indexing, network latency, and algorithmic complexity. But recently, while debugging our core gateway service (&lt;code>backend-gw&lt;/code>), I encountered a bottleneck that defied standard logic.&lt;/p>
&lt;p>The service was &lt;strong>CPU-bound&lt;/strong>, yet active heap usage was surprisingly low (~200MB). P99 latency was spiking at random intervals, but database queries were returning in milliseconds.&lt;/p>
&lt;p>The culprit was not the business logic. It was &lt;strong>memory management&lt;/strong>. I was effectively running a Denial-of-Service attack on my own runtime.&lt;/p></description></item><item><title>Introducing CouchLens: A Query Analysis Tool for Couchbase</title><link>http://localhost:1313/couchlens-couchbase-query-analysis-tool/</link><pubDate>Sun, 28 Dec 2025 20:00:00 +0530</pubDate><guid>http://localhost:1313/couchlens-couchbase-query-analysis-tool/</guid><description>&lt;p>CouchLens is a client-side web application for analyzing Couchbase N1QL query performance. You feed it JSON exports from &lt;code>system:completed_requests&lt;/code>, &lt;code>system:indexes&lt;/code>, and schema inference results. It parses execution plans, computes metrics, detects inefficiencies, and generates a report showing where your queries are slow.&lt;/p>
&lt;p>Everything runs in the browser. No data leaves your machine. The tool is a Progressive Web App, so you can install it and use it offline. The goal is to give database administrators and developers a way to understand query behavior without writing custom scripts or debugging raw JSON.&lt;/p></description></item><item><title>I Built My Own Google Drive</title><link>http://localhost:1313/i-built-my-own-google-drive/</link><pubDate>Wed, 01 Oct 2025 02:02:23 +0530</pubDate><guid>http://localhost:1313/i-built-my-own-google-drive/</guid><description>&lt;h2 id="why-bother">Why Bother?&lt;a class="anchorjs-link" href="#why-bother" aria-label="Link to section: Why Bother?">&lt;/a>&lt;/h2>&lt;p>Whenever I want to download a folder from Google Drive, it starts zipping it for what feels like minutes, and then it downloads the whole zip. There&amp;rsquo;s no incremental download, and I can&amp;rsquo;t add it as a network drive for obvious reasons. These limitations are frustrating, but they also got me thinking: what if I could have a solution that&amp;rsquo;s more flexible, more customizable, and truly mine?&lt;/p></description></item><item><title>Stealth VPN with Outline over HTTPS</title><link>http://localhost:1313/outline-vpn-over-https/</link><pubDate>Tue, 12 Aug 2025 00:00:00 +0000</pubDate><guid>http://localhost:1313/outline-vpn-over-https/</guid><description>&lt;h2 id="what-we-are-doing">What We Are Doing&lt;a class="anchorjs-link" href="#what-we-are-doing" aria-label="Link to section: What We Are Doing">&lt;/a>&lt;/h2>&lt;p>If you are somewhere that blocks VPNs through deep packet inspection (DPI), SNI filtering, or crude port blocking, the goal is to make your VPN traffic look as boring as possible.&lt;br>
The quick win is to put it on port 443, the same port used by HTTPS. That is the lifeline of the modern web, so most firewalls are reluctant to block it.&lt;/p></description></item><item><title>Docker Volume Backup: The 1-Line Command You Should Be Using (Instead of tar)</title><link>http://localhost:1313/how-to-backup-and-restore-docker-volumes/</link><pubDate>Sun, 13 Apr 2025 07:14:00 +0000</pubDate><guid>http://localhost:1313/how-to-backup-and-restore-docker-volumes/</guid><description>&lt;h1 id="how-to-backup-and-restore-docker-volumes-between-machines">How to Backup and Restore Docker Volumes Between Machines&lt;a class="anchorjs-link" href="#how-to-backup-and-restore-docker-volumes-between-machines" aria-label="Link to section: How to Backup and Restore Docker Volumes Between Machines">&lt;/a>&lt;/h1>&lt;p>When working with Docker, persistent data is often stored in volumes. Unlike container filesystems, volumes survive restarts and recreations. But what if you need to move this data from one machine to another?&lt;br>
Here&amp;rsquo;s a quick and reliable way to back up a Docker volume on one computer and restore it on another.&lt;/p></description></item><item><title>NGINX: Building from Source and Installation on Linux (Updated)</title><link>http://localhost:1313/build-nginx-from-source/</link><pubDate>Fri, 02 Feb 2024 18:28:00 +0000</pubDate><guid>http://localhost:1313/build-nginx-from-source/</guid><description>&lt;p>&lt;a href="https://en.wikipedia.org/wiki/Nginx" target="_blank" rel="noopener noreferrer">NGINX&lt;/a> is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache. NGINX is a free and open source software licensed under &lt;em>2-clause BSD&lt;/em>.&lt;br>
You can easily download and use NGINX in Windows, macOS, Linux and other operating systems &lt;a href="https://nginx.org/en/download.html" target="_blank" rel="noopener noreferrer">link&lt;/a> read NGINX installation instructions from the &lt;a href="https://nginx.org/en/docs/install.html" target="_blank" rel="noopener noreferrer">official docs&lt;/a> and install on your operating system for free.&lt;/p>
&lt;p>But, in this blog we are going to build NGINX from source code. And we will configure NGINX&amp;rsquo;s settings, paths, and add or remove modules.&lt;/p></description></item><item><title>How to Install Docker Desktop on Another Drive in Windows</title><link>http://localhost:1313/docker-custom-installation-location-windows/</link><pubDate>Sat, 27 Jan 2024 13:11:47 +0000</pubDate><guid>http://localhost:1313/docker-custom-installation-location-windows/</guid><description>&lt;p>Docker Desktop on Windows installs to your C: drive by default. When you pull large images (often 1.5GB each), add build layers, and stack containers, the ext4.vhdx file that holds all your container data bloats fast. This guide shows you how to route Docker to a secondary drive entirely, using CLI flags instead of the GUI.&lt;/p>
&lt;h2 id="quick-start">Quick Start&lt;a class="anchorjs-link" href="#quick-start" aria-label="Link to section: Quick Start">&lt;/a>&lt;/h2>&lt;p>Uninstall any existing Docker first. Then open PowerShell as admin and navigate to your Downloads folder where the installer is. Run:&lt;/p></description></item><item><title>Setting Up Llama 2 with Docker on Your Gaming Laptop Using Ollama</title><link>http://localhost:1313/setting-up-llama-2-with-docker-on-your-gaming-laptop-using-ollama/</link><pubDate>Sat, 02 Dec 2023 13:40:01 +0000</pubDate><guid>http://localhost:1313/setting-up-llama-2-with-docker-on-your-gaming-laptop-using-ollama/</guid><description>&lt;p>This article is simple guide on setting up Llama 2, a powerful large language model, on your gaming laptop using Docker and the Ollama platform. Ollama makes it very easy to run many LLMs locally. In this detailed article, I&amp;rsquo;ll cover each step, such as Ollama installation and ease of interaction through a Chat GPT-like UI. Before we go into the technical details, let&amp;rsquo;s understand what a large language model is.&lt;/p></description></item><item><title>AWS - Host Static Website With S3 + Cloudfront + Route53</title><link>http://localhost:1313/aws-host-static-website-with-s3--cloudfront--route53/</link><pubDate>Sun, 07 May 2023 15:14:24 +0000</pubDate><guid>http://localhost:1313/aws-host-static-website-with-s3--cloudfront--route53/</guid><description>&lt;p>I﻿n this blog I&amp;rsquo;ll discuss how to host a static website on AWS with S3, CloudFront and Route 53. We will secure our website with SSL certificate generated from Certificate Manger, enable HTTP/2 and HTTP/3 and redirect insecure http traffic to https version of the website. We will also make our bucket private and add policy to allow access from CloudFront.&lt;/p>
&lt;p>&lt;picture class="optimized-image-container">&lt;source srcset="http://localhost:1313/images/uploads/museums-victoria-zg0if6dcns0-unsplash_2_hu_fc8c2be84e68ff4.webp 480w, http://localhost:1313/images/uploads/museums-victoria-zg0if6dcns0-unsplash_2_hu_c4681b425210465f.webp 800w, http://localhost:1313/images/uploads/museums-victoria-zg0if6dcns0-unsplash_2_hu_bf3e51c8d21beb27.webp 1200w, http://localhost:1313/images/uploads/museums-victoria-zg0if6dcns0-unsplash_2_hu_2d6015b35c249888.webp 1632w" sizes="(max-width: 800px) 100vw, 800px" type="image/webp">&lt;img src="http://localhost:1313/images/uploads/museums-victoria-zg0if6dcns0-unsplash_2_hu_2d6015b35c249888.webp" width="1632" height="1206" alt="Picture of a Motor Buggy" title="Picture of a Motor Buggy" loading="eager" decoding="async" fetchpriority="high" class="img-fluid" />
 &lt;/picture>&lt;/p></description></item><item><title>Simplifying Search Activation: A Quick Guide with JavaScript</title><link>http://localhost:1313/simplifying-search-activation-a-quick-guide-with-javascript/</link><pubDate>Sat, 01 Apr 2023 08:28:39 +0000</pubDate><guid>http://localhost:1313/simplifying-search-activation-a-quick-guide-with-javascript/</guid><description>&lt;p>Learn how to enhance user experience by activating the search input field with a simple key press on your website. This quick guide provides a code snippet and easy-to-follow steps.&lt;/p>
&lt;h3 id="1-html-markup-for-search-input">1. HTML Markup for Search Input:&lt;a class="anchorjs-link" href="#1-html-markup-for-search-input" aria-label="Link to section: 1. HTML Markup for Search Input:">&lt;/a>&lt;/h3>&lt;div class="code-block">
 &lt;div class="code-header">
 &lt;div class="header-left">
 &lt;span class="code-lang">html&lt;/span>
 &lt;/div>
 &lt;div class="header-right">
 &lt;button class="wrap-code-button" title="Toggle line wrap" aria-label="Toggle line wrap">
 &lt;svg class="svg-icon " aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">&lt;path d="M448 256c0-53-43-96-96-96H96c-17.7 0-32 14.3-32 32s14.3 32 32 32h256c17.7 0 32 14.3 32 32s-14.3 32-32 32H165.5l37.3-37.3c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L165.5 352H352c53 0 96-43 96-96zM32 64C14.3 64 0 78.3 0 96s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM32 384c-17.7 0-32 14.3-32 32s14.3 32 32 32H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z"/>&lt;/svg>

 &lt;/button>
 &lt;button class="download-code-button" data-lang="html" title="Download Code" aria-label="Download Code">
 &lt;svg class="svg-icon " aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">&lt;path d="M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V274.7l-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7V32zM64 352c-35.3 0-64 28.7-64 64v32c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V416c0-35.3-28.7-64-64-64H346.5l-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352H64zm368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"/>&lt;/svg>

 &lt;/button>
 &lt;button class="copy-code-button" title="Copy Code" aria-label="Copy Code">
 &lt;svg class="svg-icon " aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">&lt;!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. -->&lt;path d="M384 336H192c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16l140.1 0L400 115.9V320c0 8.8-7.2 16-16 16zM192 384H384c35.3 0 64-28.7 64-64V115.9c0-12.7-5.1-24.9-14.1-33.9L366.1 14.1c-9-9-21.2-14.1-33.9-14.1H192c-35.3 0-64 28.7-64 64V320c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H256c35.3 0 64-28.7 64-64V416H272v32c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192c0-8.8 7.2-16 16-16H96V128H64z"/>&lt;/svg>
 &lt;/button>
 &lt;/div>
 &lt;/div>
 &lt;div class="code-body">&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-html" data-lang="html">&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#6e7681"> 1&lt;/span>&lt;span>&amp;lt;&lt;span style="color:#7ee787">form&lt;/span>&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#6e7681"> 2&lt;/span>&lt;span> &amp;lt;&lt;span style="color:#7ee787">input&lt;/span> type&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;text&amp;#34;&lt;/span> id&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;search-input&amp;#34;&lt;/span> placeholder&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;$ grep...&amp;#34;&lt;/span>&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#6e7681"> 3&lt;/span>&lt;span>&amp;lt;/&lt;span style="color:#7ee787">form&lt;/span>&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#6e7681"> 4&lt;/span>&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#6e7681"> 5&lt;/span>&lt;span>&lt;span style="color:#8b949e;font-style:italic">&amp;lt;!-- If you have a button to activate the search field like in this website --&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#6e7681"> 6&lt;/span>&lt;span>&amp;lt;&lt;span style="color:#7ee787">li&lt;/span> class&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;search-icon&amp;#34;&lt;/span>&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#6e7681"> 7&lt;/span>&lt;span> &amp;lt;&lt;span style="color:#7ee787">a&lt;/span> href&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;javascript:void(0)&amp;#34;&lt;/span> id&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;search-button&amp;#34;&lt;/span>&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#6e7681"> 8&lt;/span>&lt;span> &amp;lt;&lt;span style="color:#7ee787">i&lt;/span> class&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;fa fa-search&amp;#34;&lt;/span>&amp;gt;&amp;lt;/&lt;span style="color:#7ee787">i&lt;/span>&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#6e7681"> 9&lt;/span>&lt;span> &amp;lt;/&lt;span style="color:#7ee787">a&lt;/span>&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#6e7681">10&lt;/span>&lt;span>&amp;lt;/&lt;span style="color:#7ee787">li&lt;/span>&amp;gt;&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/div>
&lt;/div>&lt;h3 id="2-javascript-functionality">2. JavaScript Functionality:&lt;a class="anchorjs-link" href="#2-javascript-functionality" aria-label="Link to section: 2. JavaScript Functionality:">&lt;/a>&lt;/h3>&lt;p>Activate the search input field by pressing a key (in this example, the &amp;lsquo;/&amp;rsquo; key). Modify the key binding according to your preferences.&lt;/p></description></item><item><title>Setting Up a PostgreSQL Container: A Quick Guide</title><link>http://localhost:1313/setting-up-a-postgresql-container-a-quick-guide/</link><pubDate>Sat, 01 Apr 2023 06:41:46 +0000</pubDate><guid>http://localhost:1313/setting-up-a-postgresql-container-a-quick-guide/</guid><description>&lt;p>Learn the simple and fast process of creating a PostgreSQL container using Docker. This guide provides both the command and a detailed explanation of the container and PostgreSQL database configuration.&lt;/p>
&lt;h2 id="1-create-the-postgresql-container">1. Create the PostgreSQL Container:&lt;a class="anchorjs-link" href="#1-create-the-postgresql-container" aria-label="Link to section: 1. Create the PostgreSQL Container:">&lt;/a>&lt;/h2>&lt;div class="code-block">
 &lt;div class="code-header">
 &lt;div class="header-left">
 &lt;span class="code-lang">shell&lt;/span>
 &lt;/div>
 &lt;div class="header-right">
 &lt;button class="wrap-code-button" title="Toggle line wrap" aria-label="Toggle line wrap">
 &lt;svg class="svg-icon " aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">&lt;path d="M448 256c0-53-43-96-96-96H96c-17.7 0-32 14.3-32 32s14.3 32 32 32h256c17.7 0 32 14.3 32 32s-14.3 32-32 32H165.5l37.3-37.3c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L165.5 352H352c53 0 96-43 96-96zM32 64C14.3 64 0 78.3 0 96s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM32 384c-17.7 0-32 14.3-32 32s14.3 32 32 32H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z"/>&lt;/svg>

 &lt;/button>
 &lt;button class="download-code-button" data-lang="shell" title="Download Code" aria-label="Download Code">
 &lt;svg class="svg-icon " aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">&lt;path d="M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V274.7l-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7V32zM64 352c-35.3 0-64 28.7-64 64v32c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V416c0-35.3-28.7-64-64-64H346.5l-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352H64zm368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"/>&lt;/svg>

 &lt;/button>
 &lt;button class="copy-code-button" title="Copy Code" aria-label="Copy Code">
 &lt;svg class="svg-icon " aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">&lt;!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. -->&lt;path d="M384 336H192c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16l140.1 0L400 115.9V320c0 8.8-7.2 16-16 16zM192 384H384c35.3 0 64-28.7 64-64V115.9c0-12.7-5.1-24.9-14.1-33.9L366.1 14.1c-9-9-21.2-14.1-33.9-14.1H192c-35.3 0-64 28.7-64 64V320c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H256c35.3 0 64-28.7 64-64V416H272v32c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192c0-8.8 7.2-16 16-16H96V128H64z"/>&lt;/svg>
 &lt;/button>
 &lt;/div>
 &lt;/div>
 &lt;div class="code-body">&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#6e7681">1&lt;/span>&lt;span>docker run -d --name postgres &lt;span style="color:#79c0ff">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#6e7681">2&lt;/span>&lt;span>&lt;span style="color:#79c0ff">&lt;/span> -e &lt;span style="color:#79c0ff">POSTGRES_PASSWORD&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>RunningFlying2 &lt;span style="color:#79c0ff">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#6e7681">3&lt;/span>&lt;span>&lt;span style="color:#79c0ff">&lt;/span> -e &lt;span style="color:#79c0ff">PGDATA&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>/var/lib/postgresql/data/pgdata &lt;span style="color:#79c0ff">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#6e7681">4&lt;/span>&lt;span>&lt;span style="color:#79c0ff">&lt;/span> -v postgres_data:/var/lib/postgresql/data &lt;span style="color:#79c0ff">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#6e7681">5&lt;/span>&lt;span>&lt;span style="color:#79c0ff">&lt;/span> -p 5432:5432 &lt;span style="color:#79c0ff">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#6e7681">6&lt;/span>&lt;span>&lt;span style="color:#79c0ff">&lt;/span> postgres:latest
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#6e7681">7&lt;/span>&lt;span> &lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/div>
&lt;/div>&lt;h2 id="2-explanation">&lt;strong>2. Explanation:&lt;/strong>&lt;a class="anchorjs-link" href="#2-explanation" aria-label="Link to section: 2. Explanation:">&lt;/a>&lt;/h2>&lt;p>The above command initiates the creation of a container with the latest version of PostgreSQL. Here&amp;rsquo;s a breakdown of the parameters used:&lt;/p></description></item><item><title>Access Wsl Filesystem From Windows 10 File Explorer</title><link>http://localhost:1313/access-wsl-filesystem-from-windows-10-file-explorer/</link><pubDate>Tue, 04 May 2021 00:52:26 +0530</pubDate><guid>http://localhost:1313/access-wsl-filesystem-from-windows-10-file-explorer/</guid><description>&lt;p>&lt;img src="https://images.unsplash.com/photo-1442120108414-42e7ea50d0b5?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw=&amp;amp;ixlib=rb-1.2.1&amp;amp;auto=format&amp;amp;fit=crop&amp;amp;w=818&amp;amp;q=80" alt="" loading="eager" decoding="async" fetchpriority="high" class="img-fluid" />&lt;/p>
&lt;p>If you want to get Linux environment in your Windows system there are some solutions that provide the opportunity.&lt;br>
For example MYSYS, CYGWIN and a Virtual Machine (If you want complete linux machine) or Multiple Boot.&lt;br>
But some of them aren&amp;rsquo;t much powerful and some are resources hungry like Virtual Machine.&lt;br>
So, the solution is &lt;strong>WSL (Windows Subsystem for Linux)&lt;/strong>.&lt;br>
You can learn how to setup WSL from &lt;a href="https://docs.microsoft.com/en-us/windows/wsl/install-win10#manual-installation-steps" target="_blank" rel="noopener noreferrer">here&lt;/a>.&lt;/p></description></item></channel></rss>