<?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: Samay Kumar</title>
    <description>The latest articles on Forem by Samay Kumar (@samay15jan).</description>
    <link>https://forem.com/samay15jan</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%2F1355779%2F73de53d5-ffcc-4eab-9882-50156fb6e09b.png</url>
      <title>Forem: Samay Kumar</title>
      <link>https://forem.com/samay15jan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/samay15jan"/>
    <language>en</language>
    <item>
      <title>AI Can Write Code, But Can It Ship an App? My Experiment</title>
      <dc:creator>Samay Kumar</dc:creator>
      <pubDate>Wed, 04 Mar 2026 21:44:39 +0000</pubDate>
      <link>https://forem.com/samay15jan/ai-can-write-code-but-can-it-ship-an-app-my-experiment-2130</link>
      <guid>https://forem.com/samay15jan/ai-can-write-code-but-can-it-ship-an-app-my-experiment-2130</guid>
      <description>&lt;h2&gt;
  
  
  Why I Decided to Try This
&lt;/h2&gt;

&lt;p&gt;There’s a lot of hype right now around AI tools that can supposedly build entire applications. You often see demos where an AI writes code, opens pull requests, and produces a working app with very little human involvement.&lt;/p&gt;

&lt;p&gt;I wanted to see what that actually looks like in practice.&lt;/p&gt;

&lt;p&gt;So I gave myself a small experiment: build a simple mobile app with as much help from AI as possible and see where things work and where they break.&lt;/p&gt;

&lt;p&gt;For this experiment I used OpenAI Codex and asked it to generate the base of the application.&lt;/p&gt;

&lt;p&gt;The goal wasn’t to build something complicated. I wanted something small enough to test the limits of AI-assisted development.&lt;/p&gt;

&lt;p&gt;The site is live at&lt;br&gt;&lt;br&gt;
&lt;a href="https://gurbani247.samay15jan.com" rel="noopener noreferrer"&gt;https://gurbani247.samay15jan.com&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;but what mattered to me was everything happening behind it.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Idea Behind the App
&lt;/h2&gt;

&lt;p&gt;The app itself is intentionally simple.&lt;/p&gt;

&lt;p&gt;It streams Gurbani continuously from a URL and shows a visualizer while the audio plays. That’s essentially the whole concept.&lt;/p&gt;

&lt;p&gt;The feature set was kept minimal:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Continuous Gurbani streaming
&lt;/li&gt;
&lt;li&gt;A music visualizer
&lt;/li&gt;
&lt;li&gt;A clean mobile interface
&lt;/li&gt;
&lt;li&gt;Background playback support
&lt;/li&gt;
&lt;li&gt;Basic device indicators (network, battery, time)
&lt;/li&gt;
&lt;li&gt;Hidden status bar for a cleaner UI
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The stack generated by the AI used:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;React Native
&lt;/li&gt;
&lt;li&gt;Expo
&lt;/li&gt;
&lt;li&gt;NativeWind
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Which is a fairly standard setup for lightweight mobile apps.&lt;/p&gt;




&lt;h2&gt;
  
  
  What AI Did Well
&lt;/h2&gt;

&lt;p&gt;At the start, the experience was honestly impressive.&lt;/p&gt;

&lt;p&gt;Within minutes, the AI generated the base project structure, the UI layout, and the core logic for streaming audio. It also created the visualizer components and applied styling using NativeWind.&lt;/p&gt;

&lt;p&gt;A basic working version of the app appeared very quickly.&lt;/p&gt;

&lt;p&gt;This is where AI tools are genuinely strong. They are extremely good at generating the first version of a project. Tasks like setting up folders, writing component boilerplate, and wiring up UI layouts can be done very quickly.&lt;/p&gt;

&lt;p&gt;At that stage it almost feels like the AI can build everything.&lt;/p&gt;

&lt;p&gt;But that impression doesn’t last very long once the project moves beyond scaffolding.&lt;/p&gt;




&lt;h2&gt;
  
  
  Dependency Problems
&lt;/h2&gt;

&lt;p&gt;The first major issue appeared when trying to run the project.&lt;/p&gt;

&lt;p&gt;The configuration generated for NativeWind didn’t work properly with the current ecosystem setup. Expo and NativeWind had compatibility issues in the latest versions, and the generated configuration simply failed.&lt;/p&gt;

&lt;p&gt;Fixing the issue required manually going through documentation and eventually downgrading to a more stable version of the dependency.&lt;/p&gt;

&lt;p&gt;The AI kept generating configurations that looked correct but still didn’t work in a real environment.&lt;/p&gt;

&lt;p&gt;This is something AI currently struggles with. It can generate code that looks valid, but it doesn’t fully understand the constantly changing state of real-world dependencies.&lt;/p&gt;




&lt;h2&gt;
  
  
  Background Audio
&lt;/h2&gt;

&lt;p&gt;Another requirement was background playback. The audio stream needed to continue playing even if the app was minimized or sent to the background.&lt;/p&gt;

&lt;p&gt;The implementation suggested by the AI looked correct at first glance, but it didn’t actually work.&lt;/p&gt;

&lt;p&gt;No matter how the prompts were adjusted, the audio kept stopping when the app moved to the background. Eventually I had to manually debug the issue and implement the correct behavior based on documentation and experimentation.&lt;/p&gt;

&lt;p&gt;This became another example of AI generating something that appears reasonable but fails in real execution.&lt;/p&gt;




&lt;h2&gt;
  
  
  Android Notification Media Controls
&lt;/h2&gt;

&lt;p&gt;Android usually exposes playback controls directly in the notification panel so users can pause or resume audio without opening the app.&lt;/p&gt;

&lt;p&gt;The AI attempted to implement the player controller for the notification area. The generated code looked reasonable, but on actual devices the controls didn’t function properly.&lt;/p&gt;

&lt;p&gt;The issue only became clear when testing on real hardware.&lt;/p&gt;

&lt;p&gt;Fixing it required additional debugging and experimentation before the media controls started behaving correctly.&lt;/p&gt;




&lt;h2&gt;
  
  
  CI/CD and GitHub Workflow Failures
&lt;/h2&gt;

&lt;p&gt;I also asked the AI to generate a GitHub workflow to automate building the project.&lt;/p&gt;

&lt;p&gt;It produced a YAML configuration, but the workflow repeatedly failed when executed.&lt;/p&gt;

&lt;p&gt;Some blocks in the generated configuration caused the pipeline to break, and the build never completed successfully.&lt;/p&gt;

&lt;p&gt;After several attempts, I ended up writing the workflow myself and fixing it through a few rounds of trial and error until the pipeline worked properly.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Small Problems That Break Everything
&lt;/h2&gt;

&lt;p&gt;One of the biggest limitations I noticed during the experiment is that AI struggles with small problems that break an entire workflow.&lt;/p&gt;

&lt;p&gt;In real development, the hardest problems are rarely large architectural issues. They’re usually small details:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a dependency mismatch
&lt;/li&gt;
&lt;li&gt;a missing permission
&lt;/li&gt;
&lt;li&gt;a configuration error
&lt;/li&gt;
&lt;li&gt;a CI pipeline step failing
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These small issues can stop a project from working entirely.&lt;/p&gt;

&lt;p&gt;Humans usually identify these quickly through debugging and experimentation. AI often keeps generating slightly different versions of the same broken solution without identifying the underlying cause.&lt;/p&gt;




&lt;h2&gt;
  
  
  What the Real Workflow Looked Like
&lt;/h2&gt;

&lt;p&gt;After working through the project, the development process looked very different from the idea that AI simply builds the entire application.&lt;/p&gt;

&lt;p&gt;The workflow usually looked like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;AI generates the initial implementation
&lt;/li&gt;
&lt;li&gt;The project fails to run
&lt;/li&gt;
&lt;li&gt;I debug dependency or configuration problems
&lt;/li&gt;
&lt;li&gt;AI helps generate smaller pieces of code
&lt;/li&gt;
&lt;li&gt;I integrate everything and fix the next issue
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Then the cycle repeats.&lt;/p&gt;

&lt;p&gt;In practice, AI behaves more like a very fast assistant rather than an autonomous developer.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Final Result
&lt;/h2&gt;

&lt;p&gt;After resolving the issues and finishing the missing pieces, the final application includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;continuous Gurbani streaming
&lt;/li&gt;
&lt;li&gt;a working audio visualizer
&lt;/li&gt;
&lt;li&gt;background playback
&lt;/li&gt;
&lt;li&gt;Android notification media controls
&lt;/li&gt;
&lt;li&gt;device information indicators
&lt;/li&gt;
&lt;li&gt;a cleaner interface with the status bar hidden
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I also created a web version of the project. Once the core logic was clear, building the web implementation was significantly easier, and AI was more effective in helping with that part.&lt;/p&gt;




&lt;h2&gt;
  
  
  Future Possibilities for iOS Builds
&lt;/h2&gt;

&lt;p&gt;One possible direction for the project is generating iOS builds in the future.&lt;/p&gt;

&lt;p&gt;It should be possible to create unsigned IPA files using my project:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/samay15jan/altux" rel="noopener noreferrer"&gt;https://github.com/samay15jan/altux&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The goal of that project is to simplify generating unsigned IPA builds that can later be installed using alternative signing methods.&lt;/p&gt;

&lt;p&gt;Getting something like that working requires a lot of experimentation and trial-and-error. It involves testing different build processes, reading documentation, and slowly figuring out how the tooling behaves.&lt;/p&gt;

&lt;p&gt;This kind of iterative research process is something AI currently struggles with.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I Learned From This Experiment
&lt;/h2&gt;

&lt;p&gt;After finishing the project, one thing became very clear.&lt;/p&gt;

&lt;p&gt;AI is extremely good at generating the first &lt;strong&gt;70–80% of a project&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It can scaffold applications, generate UI components, and produce large amounts of code very quickly.&lt;/p&gt;

&lt;p&gt;But the final part of development — the part where everything must actually work together — still requires real engineering.&lt;/p&gt;

&lt;p&gt;AI currently struggles with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;dependency conflicts
&lt;/li&gt;
&lt;li&gt;ecosystem changes
&lt;/li&gt;
&lt;li&gt;CI/CD reliability
&lt;/li&gt;
&lt;li&gt;environment-specific bugs
&lt;/li&gt;
&lt;li&gt;real device testing
&lt;/li&gt;
&lt;li&gt;small workflow-breaking problems
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These areas still rely heavily on human debugging and reasoning.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Despite the limitations, the experience was still impressive.&lt;/p&gt;

&lt;p&gt;Without AI assistance, building the first version of this project would have taken significantly longer. With AI, the initial version appeared very quickly.&lt;/p&gt;

&lt;p&gt;However, turning that initial code into a stable, working application still required manual debugging and decision-making.&lt;/p&gt;

&lt;p&gt;The most accurate way to describe AI coding tools right now is that they behave like &lt;strong&gt;a very fast junior developer&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;They can produce a lot of code quickly, but they still require supervision, corrections, and guidance from someone who understands the system.&lt;/p&gt;

</description>
      <category>mobile</category>
      <category>ai</category>
      <category>reactnative</category>
      <category>android</category>
    </item>
    <item>
      <title>From Code to Production: Automating Deployment on Oracle Cloud</title>
      <dc:creator>Samay Kumar</dc:creator>
      <pubDate>Mon, 02 Feb 2026 06:26:03 +0000</pubDate>
      <link>https://forem.com/samay15jan/from-code-to-production-automating-deployment-on-oracle-cloud-4pal</link>
      <guid>https://forem.com/samay15jan/from-code-to-production-automating-deployment-on-oracle-cloud-4pal</guid>
      <description>&lt;p&gt;Over the last few days, I worked on setting up the deployment and automation for my personal portfolio website. The frontend itself was intentionally not the focus. I reused an open-source template so I could spend my time understanding how real deployments work once code leaves local development. Having rebuilt my portfolio multiple times before, I wanted to shift my attention toward infrastructure and automation.&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%2Fjs55bam3vi7dr34ocgsv.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%2Fjs55bam3vi7dr34ocgsv.png" alt=" " width="800" height="527"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The site is live at &lt;a href="https://samay15jan.com" rel="noopener noreferrer"&gt;https://samay15jan.com&lt;/a&gt;, but what mattered to me was everything happening behind it.&lt;/p&gt;

&lt;p&gt;My goal was to build a system where pushing code to GitHub would automatically update the live server without manual intervention and without downtime. This required understanding how CI/CD, containerization, traffic routing, and server security work together in practice.&lt;/p&gt;

&lt;p&gt;At a high level, the workflow begins with a push to GitHub. This triggers a GitHub Actions pipeline that builds a container image and publishes it to GitHub Container Registry. The pipeline then connects to my Oracle Cloud virtual machine over SSH and executes a deployment script directly on the server.&lt;/p&gt;

&lt;p&gt;Instead of stopping the running version and starting a new one, I implemented a blue–green deployment strategy. Two environments exist on the server, but only one receives traffic at any time. The new version is deployed to the inactive environment, health checks are performed, and traffic is switched only after verification. If anything fails, the previous version continues running without interruption.&lt;/p&gt;

&lt;p&gt;The blue–green deployment script can be found here:&lt;br&gt;&lt;br&gt;
&lt;a href="https://gist.github.com/samay15jan/296498459d1607226b8a59d4ae7b3385" rel="noopener noreferrer"&gt;https://gist.github.com/samay15jan/296498459d1607226b8a59d4ae7b3385&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;NGINX sits in front of the containers and handles all incoming requests. It also manages HTTPS using Let’s Encrypt and routes traffic to the currently active environment. From the user’s perspective, deployments are invisible and the site remains online throughout the process.&lt;/p&gt;

&lt;p&gt;The server runs on Oracle Cloud Infrastructure using Ubuntu Linux. I chose OCI because it provides a free-tier instance that is ideal for students experimenting with real infrastructure. Firewall rules are managed using UFW, allowing only required ports. This part was especially valuable to me, as self-hosting exposes details that managed platforms often abstract away...and those details are where most meaningful learning happens.&lt;/p&gt;

&lt;p&gt;Later, I purchased a custom domain through Cloudflare and connected it to NGINX. Cloudflare is used for DNS management, while HTTPS is handled through Let’s Encrypt on the server.&lt;/p&gt;

&lt;p&gt;This project taught me that deployment is not just a final step. I gained a practical understanding of blue–green deployment and why running NGINX directly on the host instead of inside application containers and helps reduce downtime. Since containers are disposable by nature, keeping the reverse proxy external allows deployments to occur without affecting traffic.&lt;/p&gt;

&lt;p&gt;This project was not about building a portfolio page. It was about understanding how software actually reaches users and how that process can be automated safely.&lt;/p&gt;

&lt;p&gt;Going forward, I plan to automate my blogging workflow and gradually move all personal projects under a single self-hosted system. My long-term goal is to run services on demand using containerized workloads (Just like &lt;a href="http://render.in/" rel="noopener noreferrer"&gt;Render&lt;/a&gt; have), with a strong focus on performance, reliability, and maintainability.&lt;/p&gt;

&lt;p&gt;I also plan to explore Kubernetes to manage container health and long-running services more effectively. Working with Oracle Cloud Infrastructure opened up many new ideas for me, and it has significantly shaped how I think about building and operating systems in the future.&lt;/p&gt;

&lt;p&gt;The source code is available at:&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/samay15jan/portfolio" rel="noopener noreferrer"&gt;https://github.com/samay15jan/portfolio&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The live deployment is running at:&lt;br&gt;&lt;br&gt;
&lt;a href="https://samay15jan.com" rel="noopener noreferrer"&gt;https://samay15jan.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>cloud</category>
      <category>linux</category>
      <category>cicd</category>
    </item>
    <item>
      <title>Breaking Into Apple’s Walled Garden (Almost)</title>
      <dc:creator>Samay Kumar</dc:creator>
      <pubDate>Mon, 18 Aug 2025 18:29:15 +0000</pubDate>
      <link>https://forem.com/samay15jan/breaking-into-apples-walled-garden-almost-4a8m</link>
      <guid>https://forem.com/samay15jan/breaking-into-apples-walled-garden-almost-4a8m</guid>
      <description>&lt;h3&gt;
  
  
  Introduction
&lt;/h3&gt;

&lt;p&gt;All I wanted was simple solution to a bigger problem:&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Develop and run my own app on my own iPhone without paying Apple a dime.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you’ve ever tried developing for &lt;a href="https://developer.apple.com/ios/" rel="noopener noreferrer"&gt;iOS&lt;/a&gt;, you know how locked down the ecosystem is. Unlike Android, where you can just download and install an APK, iOS has always been about control. Apple decides what goes in, and unless you pay $100/year, own a Mac, to test and follow their endless rules—you’re stuck.&lt;/p&gt;

&lt;p&gt;That’s fine if you’re a big company. But for students, indie devs, or hobbyists on Windows/Linux, it feels impossible.&lt;/p&gt;

&lt;p&gt;And yet, I found a way.&lt;br&gt;&lt;br&gt;
Not a perfect way. Not a sustainable way. But it just works.&lt;/p&gt;




&lt;h3&gt;
  
  
  The Early Days of Sideloading
&lt;/h3&gt;

&lt;p&gt;My journey started with something very non-serious and personal: &lt;strong&gt;removing ads from YouTube on iOS.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;On Android, we have &lt;em&gt;coughs&lt;/em&gt;…&lt;a href="https://revanced.app/" rel="noopener noreferrer"&gt;&lt;em&gt;ReVanced&lt;/em&gt;&lt;/a&gt; and other mods. On iOS? Things weren’t so easy. I stumbled upon sideloading and thought it meant jailbreaking at first. Turns out—it didn’t.&lt;/p&gt;

&lt;p&gt;I grabbed some cracked &lt;code&gt;.ipa&lt;/code&gt; files (basically iOS’s version of &lt;code&gt;.apk&lt;/code&gt;) but had no idea how to install them. That’s when I entered the chaotic world of sideloading tools: &lt;a href="https://sidestore.io/" rel="noopener noreferrer"&gt;&lt;strong&gt;Sidestore&lt;/strong&gt;&lt;/a&gt; (which didn’t work), &lt;a href="https://sideloadly.io/" rel="noopener noreferrer"&gt;&lt;strong&gt;Sideloadly&lt;/strong&gt;&lt;/a&gt; (with no Linux support), &lt;a href="https://github.com/SideStore/sideloader" rel="noopener noreferrer"&gt;&lt;strong&gt;Sideloader&lt;/strong&gt;&lt;/a&gt; (almost worked) and finally &lt;a href="https://altstore.io/" rel="noopener noreferrer"&gt;&lt;strong&gt;AltStore&lt;/strong&gt;&lt;/a&gt; + &lt;a href="https://github.com/NyaMisty/AltServer-Linux" rel="noopener noreferrer"&gt;&lt;strong&gt;AltServer-Linux&lt;/strong&gt;&lt;/a&gt; which brought some magic with more problems along the way.&lt;/p&gt;

&lt;p&gt;AltStore was a revelation but only when you understand its working. But then came Apple’s infamous &lt;strong&gt;3-app limit.&lt;/strong&gt; I tried hacking around it: running multiple Docker containers, different Apple IDs, even modding AltStore into “AltStoreX”, just to bypass the limit.&lt;/p&gt;

&lt;p&gt;Still after days of &lt;code&gt;.plist&lt;/code&gt; editing which itself was pain, especially when binaries get messed up, I got two different AltStore instances working independently on one device… only to realize the 3-app limit is tied to the &lt;strong&gt;device itself&lt;/strong&gt; , not the Apple ID. Brutal.&lt;/p&gt;

&lt;p&gt;Eventually, I discovered &lt;a href="https://github.com/opa334/TrollStore" rel="noopener noreferrer"&gt;&lt;strong&gt;TrollStore&lt;/strong&gt;&lt;/a&gt;, which exploited a vulnerability (like &lt;a href="https://github.com/dora2-iOS/macdirtycow-exploit" rel="noopener noreferrer"&gt;&lt;strong&gt;macdirtycow&lt;/strong&gt;&lt;/a&gt;) to bypass refresh limits entirely. No 7-day expiry. No re-signing. It was glorious.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;(Caveat: TrollStore only works on specific iOS versions/devices.)&lt;/em&gt;&lt;/p&gt;




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

&lt;p&gt;Sideloading mods was fun, but the real problem hit me when I started working on my own app:&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/samay15jan/sparklines-mobile" rel="noopener noreferrer"&gt;Sparklines Mobile&lt;/a&gt;, a music streaming app built with &lt;strong&gt;React Native + &lt;a href="https://expo.dev/" rel="noopener noreferrer"&gt;Expo&lt;/a&gt;&lt;/strong&gt; (unfinished and might never be anyways).&lt;/p&gt;

&lt;p&gt;On Android, Expo’s &lt;a href="https://docs.expo.dev/eas/" rel="noopener noreferrer"&gt;&lt;strong&gt;EAS build system&lt;/strong&gt;&lt;/a&gt; worked flawlessly. I could build an &lt;code&gt;.apk&lt;/code&gt; and install it in minutes.&lt;br&gt;&lt;br&gt;
On iOS? Different story.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Simulator builds only, not real &lt;code&gt;.ipa&lt;/code&gt;s&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Need a paid &lt;a href="https://developer.apple.com/programs/" rel="noopener noreferrer"&gt;Apple Developer Account&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Need &lt;a href="https://www.apple.com/macos/" rel="noopener noreferrer"&gt;macOS&lt;/a&gt; + &lt;a href="https://developer.apple.com/xcode/" rel="noopener noreferrer"&gt;Xcode&lt;/a&gt; for building, and a specific iOS device to test it&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;and distribution is impossible too&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As someone on Linux, that was a dead end. But then I had a thought:&lt;br&gt;&lt;br&gt;
&lt;strong&gt;What if I could just get an unsigned &lt;code&gt;.ipa&lt;/code&gt; and sideload it manually?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Apple wants that to happen only on macOS. Challenge accepted.&lt;/p&gt;




&lt;h3&gt;
  
  
  The Breakthrough
&lt;/h3&gt;

&lt;p&gt;While digging around, I noticed projects like &lt;a href="https://github.com/qnblackcat/uYouPlus" rel="noopener noreferrer"&gt;&lt;strong&gt;uYouPlus&lt;/strong&gt;&lt;/a&gt; and &lt;a href="https://github.com/whoeevee/EeveeSpotify" rel="noopener noreferrer"&gt;&lt;strong&gt;EeveeSpotify&lt;/strong&gt;&lt;/a&gt; were building &lt;code&gt;.ipa&lt;/code&gt; files using &lt;strong&gt;&lt;a href="https://docs.github.com/en/actions" rel="noopener noreferrer"&gt;GitHub Actions&lt;/a&gt;&lt;/strong&gt; on macOS runners.&lt;/p&gt;

&lt;p&gt;That’s when it clicked:&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Why not do the same for Expo apps?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I spent hours fighting with YAML configs, debugging failed builds, and experimenting with different workflows. Eventually, I managed to get GitHub’s macOS runners worked the way I wanted and generate an unsigned &lt;code&gt;.ipa&lt;/code&gt; and sideloaded with AltStore/TrollStore.&lt;/p&gt;

&lt;p&gt;Guess what ? It worked.&lt;br&gt;&lt;br&gt;
I had my own React Native app running on my iPhone—no Mac, no paid Apple account, nothing.&lt;/p&gt;

&lt;p&gt;Sure, crashes were ugly (probably because I hadn’t set up error boundaries properly within my application codebase), but native modules worked fine. It felt surreal.&lt;/p&gt;




&lt;h3&gt;
  
  
  The Tool That Could Have Been
&lt;/h3&gt;

&lt;p&gt;At this point, I considered turning the whole process into a tool. Maybe:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;A &lt;strong&gt;CLI&lt;/strong&gt; to auto-generate the GitHub Actions workflow&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Or a &lt;strong&gt;web app&lt;/strong&gt; frontend where you could link your GitHub account and upload code, and it spits out an &lt;code&gt;.ipa&lt;/code&gt;. Something like &lt;a href="https://vercel.com/" rel="noopener noreferrer"&gt;&lt;strong&gt;Vercel&lt;/strong&gt;&lt;/a&gt; for mobile apps.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;PS: There are things like &lt;a href="https://github.com/hack-different/webmuxd" rel="noopener noreferrer"&gt;webmuxd&lt;/a&gt; which could be a game changer.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Basically, a free alternative to Expo’s paid EAS service—but for people who just want to test and learn without Apple’s gatekeeping, legally and ethically, and for personal use only.&lt;/p&gt;

&lt;p&gt;I had some ideas and minimal executional logic… but never turned into something real. And maybe i didn’t even need to anymore. I was already moving away from iOS.&lt;/p&gt;

&lt;p&gt;Still, I pushed what I had to GitHub: &lt;a href="https://github.com/samay15jan/Altux" rel="noopener noreferrer"&gt;&lt;strong&gt;Altux&lt;/strong&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
You could refer to GitHub Action template and README file in the repository for some nitty gritty, behind the scenes working.&lt;br&gt;&lt;br&gt;
If anyone wants to build on top of it, go ahead.&lt;/p&gt;




&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;This whole thing started because I just wanted to test an iOS app without paying Apple. And in the process, I learned a lot about sideloading, CI, and Apple’s walls.&lt;/p&gt;

&lt;p&gt;I’m not maintaining this project, and I’m not sticking with iOS either. But maybe this little experiment will help students, indie devs, or tinkerers who just want to learn without paying $100/year for the privilege.&lt;/p&gt;

&lt;p&gt;Apple may have a walled garden, but sometimes a crack in the wall is all you need to learn, build, and experiment. Altux was mine. Waiting for yours…&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How I Built a TUI Without Leaving the Terminal</title>
      <dc:creator>Samay Kumar</dc:creator>
      <pubDate>Mon, 14 Apr 2025 00:41:27 +0000</pubDate>
      <link>https://forem.com/samay15jan/how-i-built-a-tui-without-leaving-the-terminal-1g0e</link>
      <guid>https://forem.com/samay15jan/how-i-built-a-tui-without-leaving-the-terminal-1g0e</guid>
      <description>&lt;h3&gt;
  
  
  What does TUI even mean?
&lt;/h3&gt;

&lt;p&gt;Terminals are an overly complexified yet quick way to interact with the system and any task without leaving the terminal... ever. TUI stands for Terminal User Interface. Basically, it's a way to use some software features directly from the terminal with a user-intrusive interface, and use the keyboard to control everything.&lt;/p&gt;

&lt;p&gt;I know you might not understand it at first, because terminals are complex in their own way. So, it’s a step forward.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;PS&lt;/strong&gt;: In this article, don’t expect much of a learning experience, it's more about me showcasing a project I built for the terminal. And it’s definitely not gonna help you in your career ever. haha. So proceed wisely.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Why TUI matters
&lt;/h3&gt;

&lt;p&gt;We live in a world where everything is graphical, flashy, and requires 12GB of RAM to open a note-taking app (&lt;em&gt;&lt;del&gt;Definitely not targeting Notion&lt;/del&gt;&lt;/em&gt;). But sometimes, being raw is power. Terminals give you that rawness.&lt;/p&gt;

&lt;p&gt;It’s not just about nostalgia or being geeky for fun. TUI tools are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Blazing fast (like seriously instant)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Keyboard-driven, so your hands never leave the keys and forget the mouse even exists&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Often more scriptable and composable&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Lightweight and can run on toasters (or potatoes, if u prefer them)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For devs, sysadmins, hobbyists, and even minimalists, TUI is not just a UI – it's a philosophy.&lt;br&gt;&lt;br&gt;
And if you can make your own (even if it’s not fully polished)? Damn right it's still worth flexing.&lt;/p&gt;
&lt;h3&gt;
  
  
  What did I do?
&lt;/h3&gt;

&lt;p&gt;A long time ago, somewhere in February of 2024, I got an idea to build myself a music streaming platform, 'caz at that time I was good with frontend web development. But I wanted to expand more, and what's the best way to learn than hands-on experience? That’s how I started learning backend. Fast forward 6–7 months, my web application was ready. I’ll explain the entire workflow in some other blog someday. For now, u can refer to GitHub &lt;a href="https://github.com/samay15jan/sparklines" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;So, from here I got an idea—why not use the custom backend (which I built on top of an open-source project &lt;a href="https://github.com/sumitkolhe/jiosaavn-api" rel="noopener noreferrer"&gt;here&lt;/a&gt;—I can’t remember if it was v2 or v3. idk) and build a terminal user interface to control music directly from the terminal? (Because other open-source projects were related to Spotify TUI and required a paid account with Spotify open in the background). But I needed something based on my use case, which I could run in the background while I was lost in coding sessions &lt;em&gt;&lt;strong&gt;and didn’t eat up 60% of my RAM&lt;/strong&gt;&lt;/em&gt;. I needed something like a command to run, and I could play any song I want directly from the terminal itself. After all, it’s going to be the coolest way to stream your music from the terminal!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: Just to be honest — it doesn’t "stream" like you think. My custom backend (built on top of JioSaavn) grabs the full song URL. Then I just pass that URL to &lt;code&gt;mpv&lt;/code&gt;, a media player. Simple and effective, yet works like a charm.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For quite some time, this project was just sitting idle in my TO-DO list while I did my research on finding the perfect way I could do that. And that’s when I found &lt;a href="https://github.com/vadimdemedes/ink" rel="noopener noreferrer"&gt;Ink&lt;/a&gt;. It's a way I can use React for interactive command-line apps. Yeah, it's old but it’s a well-maintained and documented open-source project. I found it to be a perfect fit for my use case, ‘caz I did know JS/TS well and had hands-on experience in React itself. So, I believed it was going to be fun to build. Also, I couldn't find anyone who took this approach to build a highly intrusive TUI with React and Ink specifically, so either I’m making history or I’m one step closer to becoming that mad guy. &lt;em&gt;Win-Win situation haha.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;So, I went all in. Can’t truly recall how long it took me to build—somewhere around a month.&lt;br&gt;&lt;br&gt;
Oh shit... been talking all this time and didn’t tell u what I named it: &lt;a href="https://github.com/samay15jan/Sparklines/tree/main/TUI" rel="noopener noreferrer"&gt;&lt;strong&gt;Sparklines-TUI&lt;/strong&gt;&lt;/a&gt;. hehe&lt;/p&gt;
&lt;h3&gt;
  
  
  Tech Stack
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Languages &amp;amp; Tools:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;NodeJS + TypeScript&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/vadimdemedes/ink" rel="noopener noreferrer"&gt;Ink&lt;/a&gt; and &lt;a href="https://github.com/vadimdemedes/ink-ui" rel="noopener noreferrer"&gt;Ink-UI&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;mpv (for music playback)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Custom backend (on top of JioSaavn)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Socket &amp;amp; fs handling in Node for communication with mpv&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Works in Termux (Android) (unstable)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Vim/Google IDX (now Firebase Studio)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Some features are not yet implemented, but the basic functionality has been achieved, though there might be unknown bugs. You can report &lt;a href="https://github.com/samay15jan/Sparklines/issues" rel="noopener noreferrer"&gt;here&lt;/a&gt;, and chances are I might never fix them. hehe, so try doing some work yourself, and contributions are welcome.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;
  
  
  Building the UI
&lt;/h3&gt;

&lt;p&gt;Definitely, React + Ink streamlined the approach to build the tool, because I was able to use previous web development knowledge and not much of a learning curve either. It was definitely something worth it. I know people will say it's not good, design/system architecture sucks, should’ve used Rust or ncurses or something similar, and so on. Definitely agree with some things, but the reason I built it was to solve a problem I couldn’t find a solution for anywhere. So I created it for myself, and it serves the purpose and works as expected. Also, Rust or ncurses introduces a steep learning curve.&lt;/p&gt;
&lt;h4&gt;
  
  
  My work environment
&lt;/h4&gt;

&lt;p&gt;I used Vim mostly while I was building this. I cloned the Ink repo to read docs side by side. Definitely worth it. Vim itself is a skill, though it’s not that good for actual coding, and messing around with nvim felt like a burden. So I switched gears to a cloud IDE (Google IDX) for development, and it did increase my coding speed a lot, especially with Nix package management.&lt;/p&gt;
&lt;h4&gt;
  
  
  Challenges in the journey
&lt;/h4&gt;

&lt;p&gt;The biggest challenge I faced was getting some sort of way to play music. So I picked the easiest route—I directly implemented it with &lt;a href="https://mpv.io/" rel="noopener noreferrer"&gt;mpv&lt;/a&gt; and I channeled logs of mpv (which had timestamps, which I needed) to a log file under the &lt;code&gt;.sparklines&lt;/code&gt; folder, and managed it with a socket (a two-way communication endpoint to handle the custom commands). With the power of NodeJS, I made it work out and somehow it turned out a lot better than expected. Also, configuration files can be accessed at &lt;code&gt;.sparklines/config&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;For sure, &lt;strong&gt;Ink&lt;/strong&gt; was something ahead of its time. It has everything one needs to build something like this. At least for fun. I faced challenges when I was working with the UI itself, though it took me some time to perfectionate it and make it modular and work with custom shortcuts. Packaging was a very simple and quick task.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;BTW, u can get it directly using &lt;code&gt;npm i sparklines-tui -g&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4&gt;
  
  
  Some Features
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Control music directly from the terminal&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Login/Register functionality&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;API key-based interaction with &lt;a href="https://github.com/samay15jan/sparklines-backend" rel="noopener noreferrer"&gt;Sparklines Backend&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Continuous playback (still buggy) and clean playback bar&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Custom shortcuts &amp;amp; help menu (Alt+h)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Search songs, albums, and artists&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Music language selector&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Recommendations &amp;amp; infinite play (work in progress) [TODO]&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Loop, shuffle, queue, and lyrics support (coming soon) [TODO]&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;NPM packaged and works on Termux (to some extent)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;For installation, refer to &lt;a href="https://github.com/samay15jan/Sparklines/tree/main/TUI" rel="noopener noreferrer"&gt;docs&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4&gt;
  
  
  Help Menu
&lt;/h4&gt;

&lt;p&gt;Some useful commands (can be accessed through Alt + h):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Tab                 → Navigate between sections  
Spacebar            → Toggle between play and pause  
Enter               → Select the selected item  
Ctrl + m            → Mute/unmute the audio  
Ctrl + x            → Hide other section  
Ctrl + z            → Toggle search  
Ctrl + a/s/d/f      → Focus on menu/playlists/simulation/other section  
Ctrl + k/l/;        → Toggle between search/lyrics/queue section  
↑ and ↓             → Navigate up and down between items  
] or [              → Increase/decrease volume by 5  
Ctrl + ➡ / Ctrl + ⬅ → Seek forward/backward by 5 seconds  
Ctrl + ➡ / Ctrl + ⬅ → Increase/decrease speed by 0.2x  
Alt + h             → Display/close this help menu  
Esc                 → Quit the app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Final Thoughts
&lt;/h3&gt;

&lt;p&gt;I don’t expect anyone to care (but u should care). Honestly, this was more for me. To learn, to experiment, to see if I could push the limits of terminal UI in JS. And it did that. And that’s what matters the most. If you're building something and it excites you, then even if no one else claps, you've still won.&lt;br&gt;
&lt;strong&gt;Do let your thoughts flow in comments.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Until next time. stay in terminal. peace.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Originally published on &lt;a href="https://blog.samay15jan.xyz" rel="noopener noreferrer"&gt;https://blog.samay15jan.xyz&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>linux</category>
      <category>cli</category>
      <category>react</category>
      <category>programming</category>
    </item>
    <item>
      <title>Part 1: Getting Started With Linux</title>
      <dc:creator>Samay Kumar</dc:creator>
      <pubDate>Wed, 26 Mar 2025 21:40:22 +0000</pubDate>
      <link>https://forem.com/samay15jan/part-1-getting-started-with-linux-4a6h</link>
      <guid>https://forem.com/samay15jan/part-1-getting-started-with-linux-4a6h</guid>
      <description>&lt;h2&gt;
  
  
  Introduction to Linux
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What is Linux? Million Dollar Question
&lt;/h3&gt;

&lt;p&gt;Linux is a kernel for computer systems that is used worldwide. &lt;em&gt;Yeah, even the social media you use on your phone could be backed up by a Linux server.&lt;/em&gt; Some people call it an operating system. However, Linux itself is only the kernel. When combined with other components like software utilities and libraries, it forms a complete OS, often called a "Linux distribution"—&lt;em&gt;you will get to know about it later in this blog.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Why is Linux important?
&lt;/h3&gt;

&lt;p&gt;Firstly, here are some solid stats from &lt;a href="https://truelist.co/blog/linux-statistics" rel="noopener noreferrer"&gt;TrueList&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;96.3% of the top one million web servers are running Linux. (ZDNet)&lt;/li&gt;
&lt;li&gt;Yep, the very same Linux is powering a whopping 85% of smartphones out there. (Linuxblog)&lt;/li&gt;
&lt;li&gt;The world’s top 500 fastest supercomputers all run on Linux. (Blackdown)&lt;/li&gt;
&lt;li&gt;47% of professional developers (&lt;em&gt;like me&lt;/em&gt;) use Linux-based operating systems. (Statista)&lt;/li&gt;
&lt;li&gt;Today... &lt;em&gt;maybe not when you are reading this&lt;/em&gt;, there are over 600 active Linux distros. (Tecmint)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most importantly, Linux is also one of the biggest open-source projects, which means all its code is publicly accessible. Anyone—&lt;em&gt;maybe even you after reading this blog&lt;/em&gt;—can modify and distribute its code, and it’s developed collaboratively with our very own Linux community.&lt;/p&gt;

&lt;p&gt;Which means it gives freedom and a sense of independence directly into the hands of the user to do whatever they want, without any higher body governing like what we usually get in other OSes, while maintaining the latest updates which don't take hours to install—that too at zero cost.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Did you know?&lt;/strong&gt;\&lt;br&gt;
Windows gets shattered,\&lt;br&gt;
Apples get rotten,\&lt;br&gt;
but penguins, they don’t drown... wait... do they?\&lt;br&gt;
Fires up browser..."can penguins dieee?"\&lt;br&gt;
Waits... waits intensively...\&lt;br&gt;
Google: "Please verify you are not a robot."\&lt;br&gt;
Clicks... clicks... submit\&lt;br&gt;
Google: "Yes, penguins do die like every other living organism, you dumbass. But they do live longer than Windows and Apples."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  The Birth of Linux
&lt;/h3&gt;

&lt;p&gt;The backstory of Linux is straightforward. At the heart of it all is &lt;a href="https://en.wikipedia.org/wiki/Linus_Torvalds" rel="noopener noreferrer"&gt;Linus Torvalds&lt;/a&gt;, an incredible programmer, who laid the foundation bricks for what we now know as Linux. Over the years, a global community of talented developers has built on that foundation, continually enhancing and evolving the system.&lt;/p&gt;

&lt;p&gt;That's all you gotta know. You can anytime fire up Wikipedia and learn about the cheeky little details, but I would recommend—&lt;strong&gt;theory is not something you should focus much on, especially for technical stuff&lt;/strong&gt;. For your knowledge, surely go for it.&lt;/p&gt;

&lt;p&gt;But for now, that's out of the goals for this blog.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding the Computer System Architecture
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Layers of a Computer
&lt;/h3&gt;

&lt;p&gt;Let's understand the working of a computer. According to my research, there are basically three main layers of a computer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Layer 1&lt;/strong&gt;: This is the &lt;strong&gt;hardware&lt;/strong&gt; layer, which consists of the physical components of the computer, such as the CPU, memory, storage devices, or that RTX 4090 Ti graphics card which you asked your mother to buy, stating it is the bare minimum for your studies.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Layer 2&lt;/strong&gt;: This is the &lt;strong&gt;kernel&lt;/strong&gt;, the most crucial layer in the system. It acts as an intermediary between the hardware and the software, managing resources like memory, processing power, and devices. The kernel ensures that software can interact with hardware safely and efficiently.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Layer 3&lt;/strong&gt;: This is the &lt;strong&gt;user interface&lt;/strong&gt; layer, where users interact with the system. It includes the graphical user interface (GUI) and applications. This layer allows users to perform tasks such as browsing the web, creating those boring presentations, and running programs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Think of the kernel as the manager of all system resources. It ensures that software can talk to the hardware and access resources, but it also ensures that the system runs efficiently and securely by controlling access and managing tasks.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: If you want to dive deeper into the relationship between the computer and hardware, consider checking out &lt;a href="https://www.geeksforgeeks.org/computer-organization-and-architecture-tutorials/" rel="noopener noreferrer"&gt;this&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  The Role of the Kernel in Linux
&lt;/h3&gt;

&lt;p&gt;Here are some of the key roles the kernel plays as an interface between hardware and software:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Process Management&lt;/strong&gt; - Handles the creation, execution, and termination of processes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Memory Management&lt;/strong&gt; - Allocates and deallocates RAM for processes in a sandboxed manner.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Device Management&lt;/strong&gt; - Controls hardware devices such as keyboards, mice, or any plug-and-play device like USBs via device drivers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;File System Management&lt;/strong&gt; - Handles file read/write operations, including access control and permissions for files and directories.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Networking&lt;/strong&gt; - From IP addresses to firewalls, even the communication between processes over networks is handled by the kernel.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Setting up your playground
&lt;/h2&gt;

&lt;p&gt;Before moving forward, I personally have this ideology that any knowledge learned by hands-on experience will help you grasp concepts more quickly and efficiently. You can skip this part, but it would be good if you give it a shot.&lt;/p&gt;

&lt;h3&gt;
  
  
  Installing Linux (Virtual Machine, Bare Metal, WSL, Cloud)
&lt;/h3&gt;

&lt;p&gt;To start using Linux, I personally would recommend going with &lt;a href="https://pop.system76.com/" rel="noopener noreferrer"&gt;Pop!_OS&lt;/a&gt;.&lt;br&gt;
You got a few options here: either you can run it on a VM or install it on Bare Metal.&lt;br&gt;
&lt;em&gt;Don't worry, I got you covered—you can use any one of the following methods:&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Virtual Machine (Recommended):
&lt;/h4&gt;

&lt;p&gt;It's like installing an OS inside your running system but virtually, which means you don't have to worry if you mess up something. Your main system will work just fine.&lt;br&gt;
Here are the steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Install either &lt;a href="https://www.oracle.com/virtualization/technologies/vm/downloads/virtualbox-downloads.html" rel="noopener noreferrer"&gt;VirtualBox&lt;/a&gt; or &lt;a href="https://www.vmware.com/" rel="noopener noreferrer"&gt;VMWare&lt;/a&gt; on your Windows/Mac machine (&lt;em&gt;for this, your device must support virtualization, which should work in most cases unless you have a very old/potato PC, or you might have to enable it in BIOS. Follow some tutorials for that—it's not a big thing&lt;/em&gt;).&lt;/li&gt;
&lt;li&gt;Download the Linux Pop!_OS ISO from &lt;a href="https://pop.system76.com/" rel="noopener noreferrer"&gt;here&lt;/a&gt;. You could try &lt;a href="https://ubuntu.com/download" rel="noopener noreferrer"&gt;Ubuntu&lt;/a&gt; too.&lt;/li&gt;
&lt;li&gt;Simply create a new VM, allocate RAM and storage, load the downloaded ISO, and run it.&lt;/li&gt;
&lt;li&gt;Follow the on-screen instructions to install Linux or use the live environment.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: There are plenty of guides on the internet—just follow any one.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  Bare Metal:
&lt;/h4&gt;

&lt;p&gt;This step involves installing Linux directly on your system. It will delete your Windows forever, and you cannot recover it. There are ways like dual booting (&lt;em&gt;installing two OSes on one device&lt;/em&gt;). But for now, let's focus on a clean installation of Linux on your system:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Download the Linux Pop!_OS ISO from &lt;a href="https://pop.system76.com/" rel="noopener noreferrer"&gt;here&lt;/a&gt;. You could try &lt;a href="https://ubuntu.com/download" rel="noopener noreferrer"&gt;Ubuntu&lt;/a&gt; too.&lt;/li&gt;
&lt;li&gt;Download and install &lt;a href="https://etcher.balena.io/" rel="noopener noreferrer"&gt;Balena Etcher&lt;/a&gt; or &lt;a href="https://rufus.ie/en/" rel="noopener noreferrer"&gt;Rufus&lt;/a&gt; for creating a bootable USB.&lt;/li&gt;
&lt;li&gt;Get at least an 8GB empty USB stick and plug it into your system.&lt;/li&gt;
&lt;li&gt;Run Balena Etcher or Rufus, import the downloaded ISO, and start the process.&lt;/li&gt;
&lt;li&gt;It will take 5-10 minutes to create a bootable USB.&lt;/li&gt;
&lt;li&gt;Now, based on your device brand, find its boot keys—just Google it.&lt;/li&gt;
&lt;li&gt;Reboot your system and say goodbye to Windows.&lt;/li&gt;
&lt;li&gt;Press the boot keys when booting, select your USB stick, and click enter.&lt;/li&gt;
&lt;li&gt;Now, after booting, you will be presented with a live environment. Whatever changes you make here will be gone with a reboot.&lt;/li&gt;
&lt;li&gt;Now, simply follow the on-screen instructions and make a clean install on your storage device.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Unfortunately, this method is not possible on Apple devices. Though there are ways, they are complicated.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;IMPORTANT&lt;/strong&gt;: Installation on Bare Metal is not recommended for beginners because there is a higher chance you could lose all your data, and I don't want you to curse me for that.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  Windows Subsystem for Linux
&lt;/h4&gt;

&lt;p&gt;It's a method to run Linux directly on your Windows system using the subsystem for Linux. It's a very straightforward method for any Windows user:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Check if your device supports virtualization.&lt;/li&gt;
&lt;li&gt;Open PowerShell as Administrator.&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;wsl --install&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;That's it; it will install Ubuntu by default.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;INFO&lt;/strong&gt;: Earlier, it was a long process to do, like configuring in the control panel to enable the WSL service, then proceeding with manually installing it from the Microsoft Store, and it wasn't that feature-rich.  &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Thank God Microsoft streamlined this feature to make it quick and efficient.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  Cloud
&lt;/h4&gt;

&lt;p&gt;This process allows us to spin up a virtual machine directly on the cloud. Though they do cost some money, it's a good option if you are already familiar with services like AWS/Azure/GCP. You can also use third-party services like Linode.  &lt;/p&gt;

&lt;p&gt;If you just need to get familiar with the command-line interface, Google IDX is a good option, as it provides a terminal window where you can practice commands and also learn the NIX package manager. On the other hand, you can use Google Cloud Shell too, which also uses an APT-like package manager.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;There are infinite possibilities; it just depends on what you are comfortable with. The basic commands on Linux are the same everywhere. Every distro has a layer on top to make some repetitive processes easy. That's it. Nothing else.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Linux Distributions: What Are They and Why So Many?
&lt;/h2&gt;

&lt;p&gt;Now, you might be thinking, why did I recommend you use Pop! OS or Ubuntu? What are they, and so on? &lt;em&gt;Good question... Next question?... Joking.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Look, as I said, Linux is a kernel, which uses a lot of other utilities that make it an OS for performing different tasks. These utilities can be anything (desktop GUI, icons, fonts, tools, drivers, etc.).&lt;/p&gt;

&lt;p&gt;Linux has multiple distributions (also known as flavors). As stated earlier, there are about 600+ distros (&lt;em&gt;short for distributions&lt;/em&gt;), each with its own purpose, use cases, and communities built to maintain them and provide forums for support.&lt;/p&gt;

&lt;h3&gt;
  
  
  Some Major Linux Distros:-
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ubuntu&lt;/strong&gt;: A &lt;strong&gt;Debian&lt;/strong&gt;-based Linux distro, famous for its user-friendly nature and interface, which is somewhat similar to Windows. It’s popular for beginners and is also widely used in server environments.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kali Linux&lt;/strong&gt;: A specialized Linux distro primarily used by &lt;strong&gt;penetration testers&lt;/strong&gt;, ethical hackers, and security researchers. Kali comes preloaded with a wide range of security and forensic tools.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Linux Mint and Pop! OS&lt;/strong&gt;: Lightweight distros, also based on &lt;strong&gt;Ubuntu&lt;/strong&gt; and &lt;strong&gt;Debian&lt;/strong&gt;, designed to be easy to use and very similar to the traditional Windows desktop experience.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Arch Linux&lt;/strong&gt;: A minimalist, DIY distro that follows the &lt;strong&gt;KISS (Keep It Simple, Stupid)&lt;/strong&gt; principle. Arch is favored by advanced users who want full control over their system. It’s not beginner-friendly but offers total customization. (&lt;em&gt;I use Arch, by the way!&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fedora&lt;/strong&gt;: A cutting-edge, community-driven distro with a focus on free and open-source software. It is often used by developers and those who want the latest features in an enterprise-friendly package.&lt;/li&gt;
&lt;li&gt;And more like &lt;strong&gt;Slackware&lt;/strong&gt;, &lt;strong&gt;openSUSE&lt;/strong&gt;, &lt;strong&gt;Alpine&lt;/strong&gt;, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I know it's confusing, and once you go deeper into the rabbit hole, you will explore more and more overly complicated stuff like &lt;strong&gt;Gentoo&lt;/strong&gt;, &lt;strong&gt;Linux From Scratch&lt;/strong&gt;, and a lot more.&lt;/p&gt;

&lt;h3&gt;
  
  
  Concept of Distro Hopping and How to Overcome It
&lt;/h3&gt;

&lt;p&gt;It's common for people who start using Linux to get lost in &lt;strong&gt;distro hopping&lt;/strong&gt; (the process where users try out the most popular Linux distros to find a perfect fit for them).&lt;/p&gt;

&lt;p&gt;We all have been through that phase, and here are a few tips to avoid it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;There are only 3-4 main distros on which others depend: Debian, Arch, Fedora &amp;amp; openSUSE.&lt;/li&gt;
&lt;li&gt;Never judge a distro based on its looks; you can replicate any theme, UI, or specific feature of one distro on another using Package Managers (it's like a place where you download software/tools from, just like the Microsoft Store or App Store. More on that later).&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;What matters is your use case.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;For developers&lt;/strong&gt;: Recommend Arch or Fedora due to their rolling releases.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;For general users&lt;/strong&gt;: Ubuntu or Mint for a user-friendly experience.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;For security professionals&lt;/strong&gt;: Kali Linux or Parrot Security OS.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;That's it. There are thousands of distros out there, but in reality, they are just some visual enhancements. That's it. I like to call them Niche distros.&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TIP&lt;/strong&gt;: Don't Fall into the Distro Hopping Trap&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Pick a distro, stick with it, and get better at it&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
There’s no need to constantly jump between distros. If you're a beginner, &lt;strong&gt;Debian&lt;/strong&gt; or &lt;strong&gt;Ubuntu&lt;/strong&gt; are great choices. For more experienced users, &lt;strong&gt;Arch&lt;/strong&gt; is ideal for customization &amp;amp; advanced users, and &lt;strong&gt;Fedora&lt;/strong&gt; is the go-to for enterprise use.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;HINT&lt;/strong&gt;:&lt;br&gt;&lt;br&gt;
In future articles, we might explore some ways you can create your very own distro too. Stay Tuned.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Did you know?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
There are even some distros like &lt;strong&gt;&lt;em&gt;Hannah Montana Linux&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;em&gt;Biebian (for Justin Bieber fans)&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;em&gt;Red Star OS (North Korea's official Linux distro, you can imagine how great that would be)&lt;/em&gt;&lt;/strong&gt;, and even &lt;strong&gt;&lt;em&gt;Linux XP (mimics Windows XP)&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The Command Line: The Heart of Linux
&lt;/h2&gt;

&lt;p&gt;The core concept of Linux is getting familiar with the terminal. Yeah, it's that black screen with the blinking cursor—that's the Command Line Interface (CLI). I know it can be overwhelming for many (maybe everyone starting out... I was too). I actually tried avoiding it as much as possible in the initial days of my Linux switch. But eventually, we have to use it, and that's the hard pill to swallow. However, once you actually understand the power of the terminal, you might never leave it again.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here are a few solid reasons why it's a must-have skill:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Day-to-day tasks like listing, editing, removing, and copying files in folders get easier.&lt;/li&gt;
&lt;li&gt;Understanding package managers (depending on the distro) to install software.&lt;/li&gt;
&lt;li&gt;Unlike Windows, downloading software is different. Linux users prefer commands like &lt;strong&gt;&lt;code&gt;wget&lt;/code&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;code&gt;curl&lt;/code&gt;&lt;/strong&gt; to download something. But don't worry—there are download buttons too, haha.&lt;/li&gt;
&lt;li&gt;Managing and configuring WiFi and the internet becomes easy.&lt;/li&gt;
&lt;li&gt;Configuring user permissions, checking system resources, creating or running scripts, and a lot more... &lt;em&gt;basically everything you could ever imagine.&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Now that we know how powerful terminals are, let's quickly address some of the basic commands every Linux user should know:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;ls&lt;/code&gt;&lt;/strong&gt; – List files in a directory

&lt;ul&gt;
&lt;li&gt;Example: &lt;code&gt;ls&lt;/code&gt; shows all files and folders in the current directory.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;pwd&lt;/code&gt;&lt;/strong&gt; – Show the current directory

&lt;ul&gt;
&lt;li&gt;Example: &lt;code&gt;pwd&lt;/code&gt; will display the full path to your current directory (e.g., &lt;code&gt;/home/user&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;cd&lt;/code&gt;&lt;/strong&gt; – Change directory

&lt;ul&gt;
&lt;li&gt;Example: &lt;code&gt;cd Documents&lt;/code&gt; moves into the "Documents" folder.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;cd ..&lt;/code&gt; moves up one directory level.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;echo&lt;/code&gt;&lt;/strong&gt; – Display text or values

&lt;ul&gt;
&lt;li&gt;Example: &lt;code&gt;echo "Hello, World!"&lt;/code&gt; prints the text on the screen.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;cp&lt;/code&gt;&lt;/strong&gt; – Copy files or directories

&lt;ul&gt;
&lt;li&gt;Example: &lt;code&gt;cp file1.txt file2.txt&lt;/code&gt; copies the contents of &lt;code&gt;file1.txt&lt;/code&gt; to &lt;code&gt;file2.txt&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;mv&lt;/code&gt;&lt;/strong&gt; – Move or rename files or directories

&lt;ul&gt;
&lt;li&gt;Example: &lt;code&gt;mv oldname.txt newname.txt&lt;/code&gt; renames the file.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;rm&lt;/code&gt;&lt;/strong&gt; – Remove files or directories

&lt;ul&gt;
&lt;li&gt;Example: &lt;code&gt;rm file1.txt&lt;/code&gt; deletes the file &lt;code&gt;file1.txt&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;-rf&lt;/code&gt; to delete a folder directly.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;mkdir&lt;/code&gt;&lt;/strong&gt; – Create a new directory

&lt;ul&gt;
&lt;li&gt;Example: &lt;code&gt;mkdir new_folder&lt;/code&gt; creates a new directory named "new_folder".&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;rmdir&lt;/code&gt;&lt;/strong&gt; – Remove an empty directory

&lt;ul&gt;
&lt;li&gt;Example: &lt;code&gt;rmdir empty_folder&lt;/code&gt; removes an empty directory.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;cat&lt;/code&gt;&lt;/strong&gt; – Display file contents

&lt;ul&gt;
&lt;li&gt;Example: &lt;code&gt;cat file1.txt&lt;/code&gt; shows the content of &lt;code&gt;file1.txt&lt;/code&gt; on the screen.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;man&lt;/code&gt;&lt;/strong&gt; – View the manual for a command

&lt;ul&gt;
&lt;li&gt;Example: &lt;code&gt;man ls&lt;/code&gt; shows the manual page for the &lt;code&gt;ls&lt;/code&gt; command, helping you understand how to use it.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;touch&lt;/code&gt;&lt;/strong&gt; – Create an empty file

&lt;ul&gt;
&lt;li&gt;Example: &lt;code&gt;touch newfile.txt&lt;/code&gt; creates an empty file named &lt;code&gt;newfile.txt&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;clear&lt;/code&gt;&lt;/strong&gt; – Clear the terminal screen

&lt;ul&gt;
&lt;li&gt;Example: &lt;code&gt;clear&lt;/code&gt; clears all text from the terminal, giving you a clean screen.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;history&lt;/code&gt;&lt;/strong&gt; – View your command history

&lt;ul&gt;
&lt;li&gt;Example: &lt;code&gt;history&lt;/code&gt; shows the list of commands you’ve used in the terminal.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;exit&lt;/code&gt;&lt;/strong&gt; – Exit the terminal session

&lt;ul&gt;
&lt;li&gt;Example: &lt;code&gt;exit&lt;/code&gt; closes your current terminal window.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TIP&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Linux terminals can be overwhelming at times, especially when we are just starting out. And for this, we have a helper, i.e., &lt;code&gt;man&lt;/code&gt;. Nice naming, isn't it? &lt;em&gt;It's like how we ask questions in real life, "Man, what is this?"&lt;/em&gt; &lt;em&gt;Silly jokes aside.&lt;/em&gt;&lt;br&gt;&lt;br&gt;
We can use this command like &lt;strong&gt;&lt;code&gt;man &amp;lt;TOOL_NAME&amp;gt;&lt;/code&gt;&lt;/strong&gt;, for example, &lt;strong&gt;&lt;code&gt;man ls&lt;/code&gt;&lt;/strong&gt; or &lt;strong&gt;&lt;code&gt;man lsblk&lt;/code&gt;&lt;/strong&gt;. It gives us complete A-Z usage of the tool directly from the terminal. In Linux, it’s more about reading first than implementing.&lt;br&gt;&lt;br&gt;
Many tools also have their own help menus, which we can access by &lt;strong&gt;&lt;code&gt;-h&lt;/code&gt;&lt;/strong&gt; or &lt;strong&gt;&lt;code&gt;--help&lt;/code&gt;&lt;/strong&gt;. It gives us a sweet little usage guide using flags.&lt;br&gt;&lt;br&gt;
BTW, anything starting with &lt;strong&gt;&lt;code&gt;-&lt;/code&gt;&lt;/strong&gt; or &lt;strong&gt;&lt;code&gt;--&lt;/code&gt;&lt;/strong&gt; in a command like &lt;strong&gt;&lt;code&gt;--help&lt;/code&gt;&lt;/strong&gt; is known as a flag. We can use multiple flags in one command to ease our life.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Text Editors&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Text editors are basically used to edit files quickly. Vim, Nano, and Emacs are all different types of text editors.&lt;br&gt;
The difficulty levels for these are: &lt;strong&gt;Nano &amp;gt; Vim &amp;gt; Emacs.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Suggestion&lt;/strong&gt;: If you ever accidentally stumble upon &lt;strong&gt;&lt;code&gt;vim&lt;/code&gt;&lt;/strong&gt;, don’t worry—you can exit it with &lt;strong&gt;&lt;code&gt;esc&lt;/code&gt;&lt;/strong&gt; then &lt;strong&gt;&lt;code&gt;:q!&lt;/code&gt;&lt;/strong&gt;. It’s something that will definitely make you mad at first.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Linux File System Structure
&lt;/h2&gt;

&lt;p&gt;Unlike the Windows file system, Linux has a more structured and hierarchical approach. Everything in Linux is a &lt;strong&gt;file&lt;/strong&gt;—whether it's system drivers, memory processes, configuration files, or even hardware-related components. This design makes Linux extremely flexible but also requires a bit of understanding to navigate efficiently.&lt;/p&gt;

&lt;h3&gt;
  
  
  Users and Groups in Linux
&lt;/h3&gt;

&lt;p&gt;Before we understand where files are stored and how access is managed, we need to know who controls them—this is where users and groups come in.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Users in Linux&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
In Linux, the most important user is &lt;strong&gt;root&lt;/strong&gt;. Think of it as an admin (or in layman’s terms, we can call it the god of Linux). The &lt;strong&gt;root&lt;/strong&gt; user has unrestricted access to the system, similar to the &lt;strong&gt;Administrator&lt;/strong&gt; account on Windows, but with even more control. So, the root user has enough access to break the entire system or completely wipe everything (which is something very common if you don't pay attention).&lt;/p&gt;

&lt;p&gt;However, as we know, with great responsibility comes great risk, meaning using root directly is dangerous. This brings up another question: How do we use the system?&lt;/p&gt;

&lt;p&gt;Basically, in Linux, we can have multiple users, not just one or two—potentially infinite. One device can be used by many people, just like in Windows where we can create users. It’s a similar concept. All users have their own directory where only their data is saved, and no other user can access it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Groups in Linux&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Not all users have the same responsibilities or permissions. We can’t trust everyone fully, so instead of manually assigning permissions to each user (which is a hectic task), Linux allows us to group users together. &lt;/p&gt;

&lt;p&gt;Users can be assigned to a &lt;strong&gt;group&lt;/strong&gt;, making management easier. Groups work just like teams in a company—each group has specific permissions, making it easier to manage access control.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;User Management Commands:-&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;I know theory is boring, so let's dive into practicals:-&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a new user:&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- `sudo adduser &amp;lt;USERNAME&amp;gt;` *// here `&amp;lt;USERNAME&amp;gt;` should be replaced by the desired username*
- Creates a new user and sets home directory (`/home/&amp;lt;USERNAME&amp;gt;`)
- It will ask you to set a password for the user too
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;Delete a user:&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- `sudo deluser &amp;lt;USERNAME&amp;gt;`
- This removes the user but doesn’t delete the home directory
- `sudo deluser --remove-home &amp;lt;USERNAME&amp;gt;` *// deletes home directory too.*
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;Change user password:&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- `sudo passwd &amp;lt;USERNAME&amp;gt;`
- Prompts you to enter the new password for the user
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;Switch to another user:&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- `su - &amp;lt;USERNAME&amp;gt;`
- To return to your previous user, type: `exit`
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;Create a new group:&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- `sudo addgroup &amp;lt;GROUPNAME&amp;gt;`
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;Add a user to a group:&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- `sudo usermod -aG &amp;lt;GROUPNAME&amp;gt; &amp;lt;USERNAME&amp;gt;`
- The `-aG` option adds the user to the group without removing them from other groups
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;Remove a user from a group:&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- `sudo deluser &amp;lt;USERNAME&amp;gt; &amp;lt;GROUPNAME&amp;gt;`
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;List groups for a user:&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- `groups &amp;lt;USERNAME&amp;gt;`
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;Check current user:&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- `whoami`
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;View User ID (UID) and Group ID (GID):&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- `id &amp;lt;USERNAME&amp;gt;`
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;You might not know&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Specific commands like &lt;code&gt;addgroup&lt;/code&gt;, &lt;code&gt;delgroup&lt;/code&gt;, &lt;code&gt;adduser&lt;/code&gt;, &lt;code&gt;deluser&lt;/code&gt; are for Debian-based distros.&lt;br&gt;&lt;br&gt;
But, in Arch Linux, it's &lt;code&gt;groupadd&lt;/code&gt;, &lt;code&gt;groupdel&lt;/code&gt;, &lt;code&gt;useradd&lt;/code&gt;, &lt;code&gt;userdel&lt;/code&gt; commands.&lt;br&gt;&lt;br&gt;
The reason it's like this is that, in Debian-based distros, it acts as a wrapper for the same command (visual enhancement only) that Arch Linux uses, as they are true to &lt;strong&gt;UNIX fundamentals&lt;/strong&gt;, which suggests that Arch sticks to roots and keeps things minimal.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Understanding the Linux File System Hierarchy (FHS)
&lt;/h3&gt;

&lt;p&gt;UNIX-based systems are known for their File System Hierarchy Standard (FHS). It's basically the entire file structure of the system. As we know, everything in Linux is a file, so its management is really important.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Common Directories and Their Functions:-&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Directory&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;/&lt;/code&gt; (root)&lt;/td&gt;
&lt;td&gt;The top-most directory; everything starts from here.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/bin&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Essential programs (like &lt;code&gt;ls&lt;/code&gt;, &lt;code&gt;cp&lt;/code&gt;, &lt;code&gt;mv&lt;/code&gt;, &lt;code&gt;rm&lt;/code&gt;). Used by all users.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/boot&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Bootloader configurations for booting (like &lt;code&gt;EFI&lt;/code&gt;, &lt;code&gt;Grub&lt;/code&gt;, &lt;code&gt;ReFind&lt;/code&gt;).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/dev&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Device files (like &lt;code&gt;/dev/sda&lt;/code&gt; for hard disks, &lt;code&gt;/dev/null&lt;/code&gt;, &lt;code&gt;/dev/sdb&lt;/code&gt; for USB devices).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/etc&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;System configuration files (e.g., &lt;code&gt;/etc/passwd&lt;/code&gt;, &lt;code&gt;/etc/fstab&lt;/code&gt;).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/sbin&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;System-related binaries (like &lt;code&gt;fsck&lt;/code&gt;, &lt;code&gt;iptables&lt;/code&gt;, &lt;code&gt;shutdown&lt;/code&gt;). Used mainly by root/admin.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/home&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Home directories for users (&lt;code&gt;/home/user1&lt;/code&gt;, &lt;code&gt;/home/user2&lt;/code&gt;).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/root&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Root user’s home directory (not in &lt;code&gt;/home&lt;/code&gt;).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/var&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Variable data (logs, caches, databases) like &lt;code&gt;/var/log/syslog&lt;/code&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/usr&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;User-installed software and libraries (&lt;code&gt;/usr/bin&lt;/code&gt;, &lt;code&gt;/usr/lib&lt;/code&gt;). &lt;code&gt;/usr/local/bin&lt;/code&gt; for custom executables.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/tmp&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Temporary files that are deleted on reboot.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/proc&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Virtual directory for process and kernel info (&lt;code&gt;/proc/cpuinfo&lt;/code&gt;).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/mnt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Temporary mount point for external drives.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/media&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Auto-mounted external drives (USBs, DVDs).&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Navigating the File System Using the Terminal
&lt;/h3&gt;

&lt;p&gt;As we have already discovered commands like &lt;code&gt;ls&lt;/code&gt;, &lt;code&gt;cd&lt;/code&gt;, &lt;code&gt;pwd&lt;/code&gt;, now let's go a little deeper to understand things more:-&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Absolute Path&lt;/strong&gt;: Full path from the root (&lt;code&gt;/&lt;/code&gt;) directory.&lt;br&gt;
&lt;em&gt;Example: &lt;code&gt;/home/user/Documents/file.txt&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Relative Path&lt;/strong&gt;: Path relative to the current directory.&lt;br&gt;
&lt;em&gt;Example: If you're in &lt;code&gt;/home/user/&lt;/code&gt;, then &lt;code&gt;cd Documents&lt;/code&gt; is the same as &lt;code&gt;cd /home/user/Documents&lt;/code&gt;.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Some Navigation Tips&lt;/strong&gt;:-&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;cd ..&lt;/code&gt; → Move up one directory&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;cd -&lt;/code&gt; → Switch to the previous directory&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;cd ~&lt;/code&gt; or just &lt;code&gt;cd&lt;/code&gt; → Move to your home directory&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;cd ~/home/user/Documents&lt;/code&gt; → Move to a specific folder (if you are familiar with paths, which you will be as you practice.)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ls -l&lt;/code&gt; → Long format listing (permissions, ownership, size, etc.)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ls -a&lt;/code&gt; → Show hidden files (files starting with &lt;code&gt;.&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Common Linux Filesystems
&lt;/h3&gt;

&lt;p&gt;A &lt;strong&gt;file system&lt;/strong&gt; manages how data is stored, retrieved, and structured on a storage device. It includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Data Structure&lt;/strong&gt; → Defines how files, directories, and metadata are stored.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Journal &amp;amp; Recovery&lt;/strong&gt; → Some file systems support journaling for data protection.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Performance &amp;amp; Efficiency&lt;/strong&gt; → Affects read/write speeds and storage optimization.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Features&lt;/strong&gt; → Encryption, snapshots, compression, deduplication, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Filesystem&lt;/th&gt;
&lt;th&gt;Features&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ext4&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Default, stable, widely used.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;XFS&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Great for large files, high performance.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Btrfs&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Supports snapshots, data integrity, and compression.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ZFS&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Best for data integrity, RAID-like features.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;exFAT&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Works across Windows, Linux, macOS.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;:&lt;br&gt;
For beginners, it's common that you might be on your desktop or VM, so I would recommend going for ext4. It's the most widely used filesystem, very stable, and not hardware-intensive. As you get familiar, you can try the other filesystems as needed. But keep in mind, basic fundamentals stay the same.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Mounting and Unmounting File Systems
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Mounting a Device&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;mount /dev/sdxx /mnt &lt;span class="c"&gt;# sdxx can be sda1, sdb, etc.&lt;/span&gt;
&lt;span class="nb"&gt;ls&lt;/span&gt; /mnt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Unmounting&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;umount /mnt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Permanent Mounting (fstab)&lt;/strong&gt;:
To auto-mount a partition at boot, add to &lt;code&gt;/etc/fstab&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;UUID&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;xxxxx /mnt ext4 defaults 0 2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: You can find UUID using &lt;code&gt;lsblk -f&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Hard Links vs. Soft Links and Symlinking
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Hard Links&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A hard link is an additional name for the &lt;strong&gt;same file&lt;/strong&gt;, no extra storage used.&lt;/li&gt;
&lt;li&gt;If you delete the original file, the data remains.&lt;/li&gt;
&lt;li&gt;Best for backups, redundancy, efficiency.&lt;/li&gt;
&lt;li&gt;Eg: &lt;code&gt;ln file1 hardlink1&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Soft Links (Symbolic Links)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A symlink points to another file’s &lt;strong&gt;path&lt;/strong&gt;, not its data.&lt;/li&gt;
&lt;li&gt;If you delete the original file, the symlink breaks.&lt;/li&gt;
&lt;li&gt;Best for shortcuts, cross-partition linking.&lt;/li&gt;
&lt;li&gt;Eg: &lt;code&gt;ln -s file1 symlink1&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;That was a lot to process, but there's even more just around the corner.&lt;/p&gt;

&lt;p&gt;In the upcoming blogs, we’ll dive deeper into Linux, covering system administration, security, troubleshooting, and more. Who knows? You might build your custom Linux distro by the end of this series. Stay tuned!&lt;/p&gt;

&lt;p&gt;Remember— &lt;strong&gt;Practical &amp;gt; Theoretical&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Originally published on &lt;a href="https://blog.samay15jan.xyz" rel="noopener noreferrer"&gt;https://blog.samay15jan.xyz&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>linux</category>
      <category>beginners</category>
      <category>archlinux</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Why I Started Blogging</title>
      <dc:creator>Samay Kumar</dc:creator>
      <pubDate>Sat, 07 Dec 2024 18:29:15 +0000</pubDate>
      <link>https://forem.com/samay15jan/why-i-started-blogging-4o5p</link>
      <guid>https://forem.com/samay15jan/why-i-started-blogging-4o5p</guid>
      <description>&lt;h2&gt;
  
  
  A little about me
&lt;/h2&gt;

&lt;p&gt;Hi, there a random user, welcome to my first ever blog. Thou i am not sure whom i am greeting to cauz i don’t think anyone would ever read it. Haha…laughing at my own jokes, my old act.ShowShareButtons: true&lt;/p&gt;

&lt;p&gt;Lemme introduce me to yeah all, especially those Google’s web crawlers. I am &lt;strong&gt;Samay Kumar&lt;/strong&gt; , known to no one by username &lt;strong&gt;&lt;a href="https://github.com/samay15jan" rel="noopener noreferrer"&gt;samay15jan&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Am a Software Developer by profession &lt;em&gt;(i consider myself in my good books)&lt;/em&gt;, but in reality am a just keen learner who just tries to explore technologies…&lt;em&gt;yeah u can call me a tech enthusiast&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  My journey to blogging
&lt;/h2&gt;

&lt;p&gt;If i really be honest, i don’t exactly consider it as a blog. I’m just here to express myself to the world without having any barriers. It’s a place where my voice is the only thing u could hear…&lt;em&gt;voice ? hear ? Seriously, whats wrong with me&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;I gained my inspiration for blogging from a random user on internet named &lt;strong&gt;&lt;a href="https://boonepeter.github.io" rel="noopener noreferrer"&gt;Peter Boone&lt;/a&gt;&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
So on a fine day, after a long break in my coding journey, i wanted to try something fun. Eventually, i questioned myself “How exactly does Spotify scan codes actually works ?” more about in &lt;strong&gt;&lt;a href="https://samay15jan.github.io/posts/exploring-spotify-scan-codes/" rel="noopener noreferrer"&gt;this&lt;/a&gt;&lt;/strong&gt; blog.&lt;/p&gt;

&lt;p&gt;And from there i stumbled on one of his article, suddenly an idea ignited. An idea to start to start something similar just so that i can have my very own corner on internet.&lt;br&gt;&lt;br&gt;
So, here i am using hugo with papermodx theme and writing my very own blog about “Why i started blogging”.&lt;/p&gt;

&lt;h2&gt;
  
  
  What can u expect ?
&lt;/h2&gt;

&lt;p&gt;Let’s quickly address the key points of what can u expect with these blogs, cauz it helps in…_ &lt;strong&gt;coughs&lt;/strong&gt; _…SEO Ranking. _ &lt;strong&gt;Ehh ?&lt;/strong&gt; _ Sorry, User Experience:-&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Gain ultimate knowledge from your top notch blogger.&lt;/li&gt;
&lt;li&gt;Learn about tech tutorials, cool tricks and alot more&lt;/li&gt;
&lt;li&gt;A place where &lt;del&gt;i can waste my time&lt;/del&gt; u can get a better understanding of complex stuff in simplest and fun manner.&lt;/li&gt;
&lt;li&gt;Learn how &lt;strong&gt;not&lt;/strong&gt; to get inspired by your top notch blogger, so u get an idea what not to do.&lt;/li&gt;
&lt;li&gt;Exclusive insights about latest and older tech from your very own top notch blogger.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: Enough bragging, simply these blogs shouldn’t be a thing u should entirely trust on, do your research, let that brain of yours do some work.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;After all of those heart touching words from your neighborhood blogger, u should conclude that, u guys are going to get some good knowledge, tutorials, insights of technologies and learn from the mistake i made &lt;em&gt;(which i am not going to share hehe)&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;But still keep your eyes open for the mind boggling beginning of our new journey, where i am as blank like u are after reading this blog, cauz we both don’t know what is gonna happen next.&lt;/p&gt;

&lt;p&gt;See yeah on the other side.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;PS: Never trust a 20 years old top notch blogger who just started out.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
    </item>
  </channel>
</rss>
