<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Swadesh Chatterjee</title>
    <description>The latest articles on Forem by Swadesh Chatterjee (@swadesh_chatterjee_b35563).</description>
    <link>https://forem.com/swadesh_chatterjee_b35563</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3714724%2F3fcec0fa-eda6-4fcc-9848-c2fd88d9da4a.png</url>
      <title>Forem: Swadesh Chatterjee</title>
      <link>https://forem.com/swadesh_chatterjee_b35563</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/swadesh_chatterjee_b35563"/>
    <language>en</language>
    <item>
      <title>Getting Started with cURL</title>
      <dc:creator>Swadesh Chatterjee</dc:creator>
      <pubDate>Tue, 27 Jan 2026 19:03:00 +0000</pubDate>
      <link>https://forem.com/swadesh_chatterjee_b35563/getting-started-with-curl-43fi</link>
      <guid>https://forem.com/swadesh_chatterjee_b35563/getting-started-with-curl-43fi</guid>
      <description>&lt;h2&gt;
  
  
  What is cURL?
&lt;/h2&gt;

&lt;p&gt;cURL is a command line tool that allows you to talk to a server using your command line instead of a graphical web browser.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgq2s1zb2vm626u82sbzc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgq2s1zb2vm626u82sbzc.png" alt="Im" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why programmers need cURL?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Because it is faster.&lt;/li&gt;
&lt;li&gt;Test APIs instantly&lt;/li&gt;
&lt;li&gt;Debug backend services&lt;/li&gt;
&lt;li&gt;Send GET/POST/PUT/DELETE requests&lt;/li&gt;
&lt;li&gt;Add headers and authentication tokens
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl -s https://fakestoreapi.com/products/1 | jq
{
  "id": 1,
  "title": "Fjallraven - Foldsack No. 1 Backpack, Fits 15 Laptops",
  "price": 109.95,
  "description": "Your perfect pack for everyday use and walks in the forest. Stash your laptop (up to 15 inches) in the padded sleeve, your everyday",
  "category": "men's clothing",
  "image": "https://fakestoreapi.com/img/81fPKd-2AYL._AC_SL1500_t.png",
  "rating": {
    "rate": 3.9,
    "count": 120
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnoa9cisuupgdx26xert9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnoa9cisuupgdx26xert9.png" alt="Im" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>api</category>
      <category>beginners</category>
      <category>cli</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>DNS Record Types Explained</title>
      <dc:creator>Swadesh Chatterjee</dc:creator>
      <pubDate>Fri, 23 Jan 2026 17:48:53 +0000</pubDate>
      <link>https://forem.com/swadesh_chatterjee_b35563/dns-record-types-explained-28en</link>
      <guid>https://forem.com/swadesh_chatterjee_b35563/dns-record-types-explained-28en</guid>
      <description>&lt;h2&gt;
  
  
  How does a browser know where a website lives?
&lt;/h2&gt;

&lt;p&gt;When you type a URL into a browser, it does not inherently know where that website is located physically. It uses DNS as the &lt;code&gt;phonebook of the internet&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmr2uazr5g6ndxp5n9uo0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmr2uazr5g6ndxp5n9uo0.png" alt="Im" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is DNS and why do we need it?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The Domain Name System (DNS) is the decentralized system that translates human readable hostnames into machine readable IP addresses.&lt;/li&gt;
&lt;li&gt;Humans are good at remembering names (like amazon.com) but bad at remembering strings of random numbers (IP addresses). DNS bridges this gap.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What are DNS records and what problems do they solve?
&lt;/h2&gt;

&lt;p&gt;DNS records are the specific entries in the &lt;code&gt;phonebook&lt;/code&gt;. They solve the problem of routing different types of traffic to different places.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuo0mygr9poi6v57f6bup.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuo0mygr9poi6v57f6bup.png" alt="In" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Dns Records
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;• NS Record(Name Record):&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
      Indicates who controls the domain. It points to the authoritative DNS server that stores all the other records for that domain.&lt;br&gt;
&lt;strong&gt;_ A / AAAA Record:_&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; Maps a domain to an IPv4 address (e.g., 192.0.2.1).&lt;/li&gt;
&lt;li&gt; Maps a domain to an IPv6 address (e.g., 2001:0db8::1).&lt;/li&gt;
&lt;li&gt; These are the primary records that get your browser to the website server.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsb437wzok40n4b13p50t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsb437wzok40n4b13p50t.png" alt="Im" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;CNAME Record (Canonical Name):&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;    Maps one name to another name (an alias).&lt;/li&gt;
&lt;li&gt;    It often points &lt;a href="http://www.example.com" rel="noopener noreferrer"&gt;www.example.com&lt;/a&gt; to example.com. It says, "I don't have the IP; ask that domain over there."&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;MX Record (Mail Exchange):&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Specifies the mail servers responsible for accepting email on behalf of the domain. Without this, you cannot receive email at @yourdomain.com.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;TXT Record (Text):&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stores text-based information. It is heavily used for verification (proving ownership to Google/Microsoft) and email security (SPF/DKIM) to prevent spam.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>programming</category>
      <category>webdev</category>
      <category>ai</category>
      <category>chaicode</category>
    </item>
    <item>
      <title>How DNS Resolution Works</title>
      <dc:creator>Swadesh Chatterjee</dc:creator>
      <pubDate>Tue, 20 Jan 2026 18:13:24 +0000</pubDate>
      <link>https://forem.com/swadesh_chatterjee_b35563/how-dns-resolution-works-55jm</link>
      <guid>https://forem.com/swadesh_chatterjee_b35563/how-dns-resolution-works-55jm</guid>
      <description>&lt;h2&gt;
  
  
  What is DNS and why name resolution exists?
&lt;/h2&gt;

&lt;p&gt;DNS (Domain Name System) is often described as the &lt;strong&gt;phonebook of internet&lt;/strong&gt;. It is a hierarchical and decentralized naming system that translates human readable domain names into numerical IP addresses that computers use to locate each other on the internet.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frfqy7wc5nx7dlltnbwra.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frfqy7wc5nx7dlltnbwra.png" alt="Ima" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Name resolution exists because:&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Humans are good at remembering names but bad at remembering random numbers.&lt;/li&gt;
&lt;li&gt;It decouples the identity of a service from its location. If a server moves to a new IP address, the DNS record is simply updated.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frklsx8po24i2biaoscvm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frklsx8po24i2biaoscvm.png" alt="Ima" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding the &lt;code&gt;dig&lt;/code&gt; Command and the Complete DNS Resolution Flow
&lt;/h2&gt;

&lt;p&gt;Dig is a command line tool used by network administrators to query the DNS. It is used to troubleshoot network issues by verifying that DNS servers are responding correctly and providing the expected IP addresses.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;dig.NS&lt;/code&gt; queries the root zone and returns root name server which only point to TLD server not the IP addresses.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;dig com NS&lt;/code&gt; queries the .com TLD servers, which tell you which authoritative servers manage domains under .com.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;dig google.com&lt;/code&gt; NS finds Google authoritative name server which actually own the DNS records.&lt;/li&gt;
&lt;li&gt;It trigger full DNS resolution via recursive resolver.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzlik1dpw2m20iwen1wk1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzlik1dpw2m20iwen1wk1.png" alt="Ima" width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Understanding Network Devices</title>
      <dc:creator>Swadesh Chatterjee</dc:creator>
      <pubDate>Tue, 20 Jan 2026 17:46:51 +0000</pubDate>
      <link>https://forem.com/swadesh_chatterjee_b35563/understanding-network-devices-5bnl</link>
      <guid>https://forem.com/swadesh_chatterjee_b35563/understanding-network-devices-5bnl</guid>
      <description>&lt;h2&gt;
  
  
  What is a Modem?
&lt;/h2&gt;

&lt;p&gt;A modem is a device that connects a computer or local network to the internet by converting digital signals from a computer and  signals that travel over telephone or cable lines. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpxkuyk83c9et65g6s1om.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpxkuyk83c9et65g6s1om.png" alt="Im" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How it connect network to the internet
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Device send request.&lt;/li&gt;
&lt;li&gt;The request goes to the router.&lt;/li&gt;
&lt;li&gt;The router forward it to the modem via ethernet.&lt;/li&gt;
&lt;li&gt;Encoded the data into isp-specific signals.&lt;/li&gt;
&lt;li&gt;Send it over fiber-cable to the isp.&lt;/li&gt;
&lt;li&gt;Isp routes it to the internet.&lt;/li&gt;
&lt;li&gt;Response comes back the same way.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What is a Router?
&lt;/h2&gt;

&lt;p&gt;A router is a networking device that forwards data packets between different computer network.Router allow multiple devices to share an Internet connection efficiently.&lt;/p&gt;

&lt;h3&gt;
  
  
  How it directs traffic?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;A router connects different networks&lt;/li&gt;
&lt;li&gt;It receives data packets from devices.&lt;/li&gt;
&lt;li&gt;Each packet has a destination Ip address.&lt;/li&gt;
&lt;li&gt;The router decides the best path to reach that address.&lt;/li&gt;
&lt;li&gt;It forwards the packet to the next network until it reaches to the destination.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Switch vs Hub: how local networks actually work?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;.Hub:&lt;/strong&gt; A hub operates at the Physical Level. It does not distinguish between different devices on the network. When a hub receives a data packet on one port, it broadcasts that data to every other port on the hub.&lt;br&gt;
&lt;strong&gt;.Switch:&lt;/strong&gt; A switch operates at the Data Link Layer. It maintains a table of MAC addresses, remembering which device is connected to which port. When a switch receives data, it identifies the intended recipient and sends the data only to that specific port. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2w8i1tw4lwjt92ngz7tw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2w8i1tw4lwjt92ngz7tw.png" alt="Im" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a Firewall and why security lives here?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A firewall is a network security device that monitor and filters incoming and outgoing network traffic based on an organization previously establish security policies.&lt;/li&gt;
&lt;li&gt;Security at the firewall because it acts as the barrier between a trusted internal network and an untrusted external network. It functions as a gatekeeper, inspecting traffic to block malicious data.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbudaq56qjkqgnlxnefjp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbudaq56qjkqgnlxnefjp.png" alt="Im" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a Load Balancer and why scalable systems need it?
&lt;/h2&gt;

&lt;p&gt;A Load Balancer is a device that acts as a traffic manager for servers. It sits in front of  server farm and routes client requests across all servers capable of fulfilling those requests.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj5xs342cooqwuiywk8h1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj5xs342cooqwuiywk8h1.png" alt="Ima" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Why Scalable Systems Need It?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;one server might be overwhelmed with traffic while others sit idle.The load balancer ensures traffic is distributed evenly.&lt;/li&gt;
&lt;li&gt;If a server crashes, the load balancer detects the failure and stops sending traffic to that server, redirecting it to active servers. This ensures the application remains online for users.&lt;/li&gt;
&lt;li&gt;It allows you to add more servers to the pool easily. The load balancer simply starts sending traffic to the new servers automatically.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How all these devices work together in a real-world setup?
&lt;/h2&gt;

&lt;p&gt;A user request  first sent over the Internet to a CDN for quick delivery of content. If the content is not  cached then  the request passes through a Firewall for security before reaching to a Load Balancer. The Load Balancer then distributes the request to an available Web Server, which forwards it to an Application Server for processing. The Application Server queries the Database for necessary data and the response follows the  path back to the user.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftcxk2xeqhdx5w5surh6l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftcxk2xeqhdx5w5surh6l.png" alt="Im" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>chaicode</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>The Pendrive Problem</title>
      <dc:creator>Swadesh Chatterjee</dc:creator>
      <pubDate>Sat, 17 Jan 2026 14:17:14 +0000</pubDate>
      <link>https://forem.com/swadesh_chatterjee_b35563/the-pendrive-problem-2db2</link>
      <guid>https://forem.com/swadesh_chatterjee_b35563/the-pendrive-problem-2db2</guid>
      <description>&lt;h1&gt;
  
  
  Why Version Control Exists ?
&lt;/h1&gt;

&lt;p&gt;Before Git and  GitHub, developers shared code the hard way.&lt;/p&gt;

&lt;p&gt;Pendrives. Emails. ZIP files.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz0oiv2bgohkvwl33ar2q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz0oiv2bgohkvwl33ar2q.png" alt="Im" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Pendrive Era
&lt;/h2&gt;

&lt;p&gt;A typical workflow looked like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Copy code to a pendrive
&lt;/li&gt;
&lt;li&gt;Give it to another developer
&lt;/li&gt;
&lt;li&gt;They modify it
&lt;/li&gt;
&lt;li&gt;Send it back as &lt;code&gt;software_v1&lt;/code&gt;, &lt;code&gt;software_v2&lt;/code&gt;, or &lt;code&gt;software_latest_version&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Everyone did this. And everyone suffered.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5rp3s32s5ront3eptzg7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5rp3s32s5ront3eptzg7.png" alt="Im" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What Went Wrong
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;One person overwrote another  changes
&lt;/li&gt;
&lt;li&gt;Nobody knew &lt;strong&gt;who changes what&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Bugs appeare with no history to trace
&lt;/li&gt;
&lt;li&gt;Working code was lost forever
&lt;/li&gt;
&lt;li&gt;Collaboration slowed instead of speeding up
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If two developers edited the same file, one of them lost work. Always.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Real Problem
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flc0dizrjhfohc96508m7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flc0dizrjhfohc96508m7.png" alt="I" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No history. No ownership. No safe collaboration.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Version Control Became Necessary
&lt;/h2&gt;

&lt;p&gt;Version control solved the chaos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Every change is tracked
&lt;/li&gt;
&lt;li&gt;Nothing is lost
&lt;/li&gt;
&lt;li&gt;Multiple developers can work safely
&lt;/li&gt;
&lt;li&gt;You can go back in time
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>beginners</category>
      <category>git</category>
      <category>github</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>Inside Git</title>
      <dc:creator>Swadesh Chatterjee</dc:creator>
      <pubDate>Fri, 16 Jan 2026 12:39:12 +0000</pubDate>
      <link>https://forem.com/swadesh_chatterjee_b35563/inside-git-56jb</link>
      <guid>https://forem.com/swadesh_chatterjee_b35563/inside-git-56jb</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Most developers learn Git through commands like &lt;code&gt;git commit&lt;/code&gt;, &lt;code&gt;git push&lt;/code&gt;, or &lt;code&gt;git merge&lt;/code&gt;, but they often rely on memorization or online guides to get things done. Understanding Git internal design how it stores data, tracks history, and ensures integrity can turn confusing errors into predictable outcomes. Instead of just memorizing commands, you can &lt;em&gt;reason&lt;/em&gt; about Git.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Happens When You Run &lt;code&gt;git init&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;Running &lt;code&gt;git init&lt;/code&gt; does one main thing: it creates a hidden &lt;code&gt;.git&lt;/code&gt; directory in your project root. This folder is Git’s database and control center—everything Git needs to manage your project is stored here. Without it, you’re just working with plain files.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding the &lt;code&gt;.git&lt;/code&gt; Folder
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;.git&lt;/code&gt; directory contains several key components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;HEAD&lt;/strong&gt; – A pointer to the current branch or commit you’re on.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;objects/&lt;/strong&gt; – Git’s object database, storing all blobs, trees, commits, and tags.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;refs/&lt;/strong&gt; – References to commits: branches (under &lt;code&gt;refs/heads&lt;/code&gt;), tags (&lt;code&gt;refs/tags&lt;/code&gt;), and more.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;config&lt;/strong&gt; – Project-specific Git configuration.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;index&lt;/strong&gt; – The &lt;em&gt;staging area&lt;/em&gt;, a binary file that tracks what will go into the next commit.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv7zk166qksorgn0dmyyv.png" alt="I" width="800" height="436"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What Happens During &lt;code&gt;git add&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;When you run &lt;code&gt;git add file.txt&lt;/code&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Git compresses the file’s content and creates a &lt;strong&gt;blob object&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;The blob’s hash (e.g., &lt;code&gt;a1b2c3...&lt;/code&gt;) is computed from its content.&lt;/li&gt;
&lt;li&gt;The blob is written to &lt;code&gt;.git/objects/&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The file’s hash and path are recorded in the &lt;strong&gt;index&lt;/strong&gt; (staging area).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The staging area is essentially a list of what will be part of the next tree object.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Happens During &lt;code&gt;git commit&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;When you commit:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Git creates a &lt;strong&gt;tree object&lt;/strong&gt; from the current index, representing the project structure.&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;commit object&lt;/strong&gt; is created containing:

&lt;ul&gt;
&lt;li&gt;The tree’s hash&lt;/li&gt;
&lt;li&gt;Parent commit hash(es)&lt;/li&gt;
&lt;li&gt;Author, committer, timestamp&lt;/li&gt;
&lt;li&gt;Commit message&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;The commit object is stored in &lt;code&gt;.git/objects/&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The current branch reference (e.g., &lt;code&gt;refs/heads/main&lt;/code&gt;) is updated to point to the new commit hash.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqnebo81u8m9y97pgmad9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqnebo81u8m9y97pgmad9.png" alt="Im" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Git for Beginners</title>
      <dc:creator>Swadesh Chatterjee</dc:creator>
      <pubDate>Fri, 16 Jan 2026 12:20:06 +0000</pubDate>
      <link>https://forem.com/swadesh_chatterjee_b35563/git-for-beginners-2l57</link>
      <guid>https://forem.com/swadesh_chatterjee_b35563/git-for-beginners-2l57</guid>
      <description>&lt;h2&gt;
  
  
  What Is Git?
&lt;/h2&gt;

&lt;p&gt;In simple terms, &lt;strong&gt;Git is a time machine for your files&lt;/strong&gt;. It is  a tool that records changes to your code over time, so you can recall specific versions later.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Git Is Used
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Code History &amp;amp; Rollback:&lt;/strong&gt; See exactly what changed, when, and why. Made a breaking change? Revert to yesterday’s working version instantly.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Team Collaboration:&lt;/strong&gt; Multiple people can work on the same project simultaneously without overwriting each other’s work. Git helps merge changes together cleanly.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Experimentation Without Fear:&lt;/strong&gt; Want to try a risky new feature? Create a separate "branch" to test it. If it doesn’t work, just delete it—your main project stays safe.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Industry Standard:&lt;/strong&gt; Git is the foundation for platforms like GitHub, GitLab, and Bitbucket. Knowing Git is a non-negotiable skill for modern developers.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Core Git Concepts
&lt;/h2&gt;

&lt;p&gt;To understand Git, you need to know its basic building blocks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Repository:&lt;/strong&gt; The project’s main folder, where Git stores all history and configuration. It's the &lt;code&gt;.git&lt;/code&gt; folder inside your project.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Working Directory:&lt;/strong&gt; The actual files and folders you see and edit on your computer.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Staging Area :&lt;/strong&gt; A middle ground. You add changes here to prepare them for a permanent snapshot.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Commit:&lt;/strong&gt; A permanent snapshot of your project at a specific point in time, with a message describing what you did.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Branch:&lt;/strong&gt; A parallel timeline of commits. The default branch is usually called &lt;code&gt;main&lt;/code&gt; or &lt;code&gt;master&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;HEAD:&lt;/strong&gt; A pointer that shows what commit or branch you are currently looking at in your working directory.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2vjb5nb3wqmvrte932ip.png" alt="Ima" width="800" height="800"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Essential Git Commands
&lt;/h2&gt;

&lt;p&gt;Start with these fundamental commands:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;code&gt;git init&lt;/code&gt;: Turns your current folder or directory into a new Git repository.&lt;/li&gt;
&lt;li&gt;  &lt;code&gt;git status&lt;/code&gt;: Shows the state of your working directory and staging area (what’s changed, what’s staged).&lt;/li&gt;
&lt;li&gt;  &lt;code&gt;git add &amp;lt;filename&amp;gt;&lt;/code&gt;: Moves specific file changes from your working directory to the staging area. Use &lt;code&gt;git add .&lt;/code&gt; to stage all changes.&lt;/li&gt;
&lt;li&gt;  &lt;code&gt;git commit -m "Your message"&lt;/code&gt;: Takes everything in the staging area and saves it as a new commit in the repository. Write clear, concise commit messages!&lt;/li&gt;
&lt;li&gt;  &lt;code&gt;git log&lt;/code&gt;: Shows the history of commits.&lt;/li&gt;
&lt;li&gt;  &lt;code&gt;git diff&lt;/code&gt;: Shows the exact differences (lines added/removed) in files you haven’t staged yet.&lt;/li&gt;
&lt;li&gt;  &lt;code&gt;git branch&lt;/code&gt;: Lists all branches. Creates a new one if you give it a name (e.g., &lt;code&gt;git branch new-feature&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;  &lt;code&gt;git checkout &amp;lt;branch-name&amp;gt;&lt;/code&gt; / &lt;code&gt;git switch &amp;lt;branch-name&amp;gt;&lt;/code&gt;: Switches your working directory to a different branch.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  A Simple Developer Workflow
&lt;/h2&gt;

&lt;p&gt;Let's walk through a typical solo session:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1. Start a new project with Git
mkdir &amp;lt;project-name&amp;gt;
cd &amp;lt;project-name&amp;gt;
git init

2. Create a file, make some changes
echo "# My App" &amp;gt; README.md

3. Check what Git sees
git status # README.md will be shown as "untracked"

4. Stage the new file
git add README.md

5. Commit the change
git commit -m "Add project README file"

6. Make more changes to the README file
echo "This is a simple guide." &amp;gt;&amp;gt; README.md

7. See what changed
git diff

8. Stage and commit the update
git add README.md
git commit -m "Add description to README"

View your commit history
git log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4hgzb8m2o6c9fgra05j2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4hgzb8m2o6c9fgra05j2.png" alt="GitImage" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>codenewbie</category>
      <category>git</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
