<?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>DEV Community: Aditya Mali</title>
    <description>The latest articles on DEV Community by Aditya Mali (@aditya_mali_648306b2e1b5d).</description>
    <link>https://dev.to/aditya_mali_648306b2e1b5d</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%2F3290996%2F4f23f243-fa9f-403b-ab75-d783e3b3fe74.jpg</url>
      <title>DEV Community: Aditya Mali</title>
      <link>https://dev.to/aditya_mali_648306b2e1b5d</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aditya_mali_648306b2e1b5d"/>
    <language>en</language>
    <item>
      <title>JavaScript: Closures Explained With Real-Life Analogies</title>
      <dc:creator>Aditya Mali</dc:creator>
      <pubDate>Sun, 30 Nov 2025 16:58:57 +0000</pubDate>
      <link>https://dev.to/aditya_mali_648306b2e1b5d/javascript-closures-explained-with-real-life-analogies-ipk</link>
      <guid>https://dev.to/aditya_mali_648306b2e1b5d/javascript-closures-explained-with-real-life-analogies-ipk</guid>
      <description>&lt;p&gt;Trying to understand JavaScript closures?&lt;br&gt;
Here are a few everyday analogies that make the idea instantly click.&lt;/p&gt;

&lt;p&gt;⭐ 1. The Backpack Analogy&lt;/p&gt;

&lt;p&gt;You pack a backpack at home.&lt;br&gt;
Even after you leave the house, you’re still carrying everything inside it.&lt;br&gt;
Later, wherever you go, you can open it and use what you packed.&lt;/p&gt;

&lt;p&gt;That’s basically a closure — a function carrying variables even after the parent function is done.&lt;/p&gt;

&lt;p&gt;⭐ 2. The Waiter Analogy&lt;/p&gt;

&lt;p&gt;You tell a waiter your order: table number, dish, special instructions.&lt;br&gt;
He walks away from your table, but he still remembers your order when he reaches the kitchen.&lt;/p&gt;

&lt;p&gt;That memory he carries along → that’s a closure.&lt;/p&gt;

&lt;p&gt;⭐ 3. The Note From a Parent&lt;/p&gt;

&lt;p&gt;A parent gives their child a secret note.&lt;br&gt;
Years later, even when the parent isn’t around, the child can still read and use that note.&lt;/p&gt;

&lt;p&gt;The note = the variables preserved by a closure.&lt;/p&gt;

&lt;p&gt;⭐ 4. The Security Guard Analogy&lt;/p&gt;

&lt;p&gt;A boss gives a guard a list of allowed people and then goes on vacation.&lt;br&gt;
The guard still uses that list every day.&lt;/p&gt;

&lt;p&gt;The guard remembering the list = closure.&lt;/p&gt;

&lt;p&gt;⭐ 5. The Recipe Book&lt;/p&gt;

&lt;p&gt;A chef hands you a recipe book and closes his restaurant.&lt;br&gt;
But you can still open the book anytime and cook using those instructions.&lt;/p&gt;

&lt;p&gt;That recipe book is exactly what a closure feels like.&lt;/p&gt;

&lt;p&gt;⭐ 6. The Spare Key&lt;/p&gt;

&lt;p&gt;Someone gives you a key before moving abroad.&lt;br&gt;
Even after they’re gone, you can still open the door.&lt;/p&gt;

&lt;p&gt;The key you keep is the closure’s stored variable.&lt;/p&gt;

&lt;p&gt;⭐ 7. The Childhood Tattoo&lt;/p&gt;

&lt;p&gt;Something meaningful happens when you’re young — and it stays with you forever.&lt;br&gt;
Even though that moment is long gone, the tattoo remains.&lt;/p&gt;

&lt;p&gt;That tattoo = a closure holding on to past variables.&lt;/p&gt;

&lt;p&gt;🎯 Quick takeaway&lt;/p&gt;

&lt;p&gt;A closure is simply a tiny bundle of memory that a function takes along with it, even after the place where that memory was created no longer exists.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>learning</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>🚪 Exit the Tutorial Hell: From Imitation to Imagination</title>
      <dc:creator>Aditya Mali</dc:creator>
      <pubDate>Sun, 09 Nov 2025 07:31:06 +0000</pubDate>
      <link>https://dev.to/aditya_mali_648306b2e1b5d/exit-the-tutorial-hell-from-imitation-to-imagination-28p3</link>
      <guid>https://dev.to/aditya_mali_648306b2e1b5d/exit-the-tutorial-hell-from-imitation-to-imagination-28p3</guid>
      <description>&lt;h2&gt;
  
  
  🔍 Summary
&lt;/h2&gt;

&lt;p&gt;Most learners today are stuck in &lt;strong&gt;Tutorial Hell&lt;/strong&gt; — endlessly watching, rarely building.&lt;br&gt;
The &lt;strong&gt;mind learns by creating models&lt;/strong&gt;, not by consuming visuals.&lt;br&gt;
When you watch tutorials, your senses absorb raw data — sound, sight, motion — but your brain often skips the &lt;strong&gt;imagination step&lt;/strong&gt; that turns data into understanding.&lt;/p&gt;

&lt;p&gt;🎥 &lt;strong&gt;Videos are the biggest trap.&lt;/strong&gt;&lt;br&gt;
They make you &lt;em&gt;feel&lt;/em&gt; like you understand because you see someone else’s visualization —&lt;br&gt;
but that image belongs to &lt;em&gt;them&lt;/em&gt;, not to &lt;em&gt;you&lt;/em&gt;.&lt;br&gt;
Your eyes are watching, your ears are listening, your attention is split.&lt;br&gt;
You collect fragments of visuals, not full internal models.&lt;/p&gt;

&lt;p&gt;To truly learn, you must &lt;strong&gt;build your own imagination&lt;/strong&gt;, model concepts in 3D inside your mind, and act on them through writing, coding, or creating.&lt;br&gt;
Learning isn’t watching — it’s &lt;strong&gt;modeling, acting, and refining&lt;/strong&gt;.&lt;/p&gt;


&lt;h2&gt;
  
  
  🧠 Exit the Tutorial Hell
&lt;/h2&gt;

&lt;p&gt;Most people believe watching tutorials makes them better.&lt;br&gt;
But in truth, it often traps them in a &lt;strong&gt;loop of consumption&lt;/strong&gt;, not &lt;strong&gt;creation&lt;/strong&gt;.&lt;br&gt;
You keep watching one video after another, thinking you’re learning —&lt;br&gt;
but all that’s happening is &lt;strong&gt;passive data input&lt;/strong&gt;.&lt;br&gt;
No real understanding is being built inside your mind.&lt;/p&gt;


&lt;h2&gt;
  
  
  ⚙️ How the Mind Works
&lt;/h2&gt;

&lt;p&gt;We have &lt;strong&gt;five input senses&lt;/strong&gt; — eyes, ears, nose, tongue, and skin.&lt;br&gt;
They continuously bring &lt;strong&gt;raw data&lt;/strong&gt; into your brain.&lt;br&gt;
The brain processes this data, builds internal models, and then uses &lt;strong&gt;five output senses&lt;/strong&gt; — hands, legs, mouth, anus, and other body mechanisms — to &lt;strong&gt;act&lt;/strong&gt; in the world.&lt;/p&gt;

&lt;p&gt;This loop — &lt;strong&gt;input → processing → output&lt;/strong&gt; — is how learning actually happens.&lt;/p&gt;

&lt;p&gt;When you watch tutorials, you’re only engaging your &lt;strong&gt;visual and auditory inputs&lt;/strong&gt;.&lt;br&gt;
You see a screen, lines of code, diagrams, or someone explaining on a board.&lt;br&gt;
That’s all &lt;strong&gt;raw input&lt;/strong&gt;.&lt;br&gt;
To truly learn, your brain must convert that raw input into a &lt;strong&gt;mental model&lt;/strong&gt; — a 3D structure of understanding.&lt;br&gt;
That requires &lt;strong&gt;cognitive effort&lt;/strong&gt; — the use of imagination and synthesis.&lt;/p&gt;

&lt;p&gt;The problem is, most people never train this inner skill.&lt;br&gt;
They consume information and assume it’s processed knowledge.&lt;br&gt;
But they never transform what they see into internal structure.&lt;br&gt;
They see code, but they don’t &lt;em&gt;feel&lt;/em&gt; what that code means.&lt;/p&gt;

&lt;p&gt;It’s like watching someone ride a bicycle for 10 hours and thinking you’ve learned balance.&lt;br&gt;
Until you &lt;strong&gt;act&lt;/strong&gt;, your brain never calibrates.&lt;br&gt;
Learning remains an illusion.&lt;/p&gt;


&lt;h2&gt;
  
  
  📖 Text, Audio, and Video — Which One Wins?
&lt;/h2&gt;

&lt;p&gt;Each medium has its role, but &lt;strong&gt;text remains the most efficient form of knowledge&lt;/strong&gt;.&lt;/p&gt;
&lt;h3&gt;
  
  
  📝 Text
&lt;/h3&gt;

&lt;p&gt;Text is cheaper and faster to produce.&lt;br&gt;
You can move back and forth freely — skim, jump, or pause.&lt;br&gt;
You can see an entire page at once — the first line, the last line — and your mind can visualize concepts from multiple perspectives.&lt;/p&gt;

&lt;p&gt;But text demands &lt;strong&gt;strong imagination&lt;/strong&gt;.&lt;br&gt;
You must convert abstract words into mental visuals.&lt;br&gt;
When you read a storybook, you don’t remember line numbers or pages —&lt;br&gt;
you remember the &lt;strong&gt;scene&lt;/strong&gt;: the crow, the pot, the stones.&lt;br&gt;
These are natural images your brain can easily visualize.&lt;/p&gt;

&lt;p&gt;Technical books, however, don’t give you natural objects.&lt;br&gt;
You must &lt;strong&gt;create them&lt;/strong&gt; yourself.&lt;br&gt;
If you don’t, you’ll only remember something like&lt;br&gt;
“the definition of multithreading is on page 27,”&lt;br&gt;
but you won’t actually understand it.&lt;br&gt;
That’s how most people end up passing exams but failing to build anything real.&lt;/p&gt;
&lt;h3&gt;
  
  
  🔊 Audio
&lt;/h3&gt;

&lt;p&gt;Audio takes less time to produce and is even cheaper — no paper, no books.&lt;br&gt;
But it’s limited: you can’t easily move back and forth,&lt;br&gt;
and it’s harder to visualize information over a timeline.&lt;br&gt;
It’s great for review, but not for constructing new mental models.&lt;/p&gt;
&lt;h3&gt;
  
  
  🎥 Video
&lt;/h3&gt;

&lt;p&gt;Videos are often deceptive.&lt;br&gt;
You see a person explaining with text, diagrams, or a whiteboard — all 2D visuals.&lt;br&gt;
If your imagination isn’t strong, you end up &lt;em&gt;borrowing&lt;/em&gt; their visualization instead of forming your own.&lt;br&gt;
Your eyes are busy watching, your ears are listening,&lt;br&gt;
and your attention splits between the teacher and the concept.&lt;br&gt;
The result?&lt;br&gt;
You feel like you understood, but you didn’t internalize it.&lt;br&gt;
You got fragments of visuals — not a full model.&lt;/p&gt;


&lt;h2&gt;
  
  
  🧩 The Escape Plan
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1. Stop Reacting. Start Modeling.
&lt;/h3&gt;

&lt;p&gt;Don’t just repeat what you see — &lt;strong&gt;imagine it&lt;/strong&gt;.&lt;br&gt;
Give every concept a &lt;strong&gt;form, texture, or object&lt;/strong&gt; in your mind.&lt;br&gt;
Map abstract ideas to something tangible.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;23&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Imagine a &lt;strong&gt;tiffin box with four compartments&lt;/strong&gt; — each representing a &lt;strong&gt;byte (8 bits)&lt;/strong&gt;.&lt;br&gt;
Inside the first compartment, place &lt;strong&gt;00010111&lt;/strong&gt; — the binary form of &lt;code&gt;23&lt;/code&gt;.&lt;br&gt;
The remaining compartments are empty, because in most systems, the higher bytes just store zeros for small integers.&lt;/p&gt;

&lt;p&gt;Now, if it were a &lt;strong&gt;char&lt;/strong&gt;, picture a &lt;strong&gt;single-compartment tiffin&lt;/strong&gt;, since char usually occupies one byte.&lt;br&gt;
If it were a &lt;strong&gt;float&lt;/strong&gt;, imagine each compartment filled with &lt;strong&gt;strange, abstract patterns&lt;/strong&gt; —&lt;br&gt;
not numbers, but encoded signals representing the &lt;strong&gt;sign bit, exponent, and mantissa&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Your brain now &lt;strong&gt;feels the structure of memory&lt;/strong&gt;.&lt;br&gt;
You’re not just reading code — you’re &lt;strong&gt;seeing how it lives inside the machine&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  2. Actively Test Your Model
&lt;/h3&gt;

&lt;p&gt;The brain learns only when your internal model is expressed through &lt;strong&gt;action&lt;/strong&gt; —&lt;br&gt;
writing, coding, drawing, speaking, or building something real.&lt;br&gt;
Each action sends feedback to the brain, refining the model further.&lt;br&gt;
This is &lt;strong&gt;active feedback learning&lt;/strong&gt; — the real foundation of mastery.&lt;/p&gt;




&lt;h3&gt;
  
  
  3. Understand the Two Modes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cognitive Mode&lt;/strong&gt; → deliberate, slow, effortful. (Learning, constructing mental models.)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Autonomous Mode&lt;/strong&gt; → fast, reactive, automatic. (Execution, intuition, mastery.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You must train in the &lt;strong&gt;cognitive mode&lt;/strong&gt; until your skills shift naturally into the &lt;strong&gt;autonomous mode&lt;/strong&gt;.&lt;br&gt;
That’s how musicians improvise, athletes react, and programmers build from intuition.&lt;br&gt;
Tutorials can’t do this for you — only &lt;strong&gt;practice&lt;/strong&gt; can.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔁 The Real Learning Cycle
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Senses → Brain → Model → Action → Feedback → Refined Model&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That’s how real learning and mastery unfold.&lt;br&gt;
You can’t skip any step.&lt;br&gt;
Tutorials only give you the &lt;strong&gt;raw input&lt;/strong&gt;.&lt;br&gt;
Transformation happens when you &lt;strong&gt;build, act, and refine&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 The Two Paths
&lt;/h2&gt;

&lt;p&gt;There are two ways your mind operates:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Reactive (Autonomous)&lt;/strong&gt; → you absorb input and respond without awareness.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Creative (Cognitive)&lt;/strong&gt; → you consciously model, imagine, and act with intention.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tutorial Hell keeps you &lt;strong&gt;reactive&lt;/strong&gt; — always consuming, never creating.&lt;br&gt;
To escape, you must shift into &lt;strong&gt;creative mode&lt;/strong&gt; — building internal structures, testing them through real-world action.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 Exit the Tutorial Hell
&lt;/h2&gt;

&lt;p&gt;Stop being a passive observer.&lt;br&gt;
Be a &lt;strong&gt;builder of mental worlds&lt;/strong&gt;.&lt;br&gt;
Every concept you learn — from programming loops to rendering pipelines —&lt;br&gt;
must have a &lt;strong&gt;shape in your imagination&lt;/strong&gt; and a &lt;strong&gt;manifestation in your actions&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;When the loop of &lt;strong&gt;consume → imagine → build → refine&lt;/strong&gt; becomes natural,&lt;br&gt;
you’ve officially escaped &lt;strong&gt;Tutorial Hell&lt;/strong&gt; —&lt;br&gt;
and entered the realm of &lt;strong&gt;true learning, creation, and mastery&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>learning</category>
    </item>
    <item>
      <title>Fix: Realtek RTL8188FTV (0bda:f179) Wi-Fi Freezes on Ubuntu (Quick One-Shot)</title>
      <dc:creator>Aditya Mali</dc:creator>
      <pubDate>Thu, 06 Nov 2025 07:23:41 +0000</pubDate>
      <link>https://dev.to/aditya_mali_648306b2e1b5d/fix-realtek-rtl8188ftv-0bdaf179-wi-fi-freezes-on-ubuntu-quick-one-shot-6ii</link>
      <guid>https://dev.to/aditya_mali_648306b2e1b5d/fix-realtek-rtl8188ftv-0bdaf179-wi-fi-freezes-on-ubuntu-quick-one-shot-6ii</guid>
      <description>&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt;&lt;br&gt;
If your USB Wi-Fi adapter (Realtek &lt;strong&gt;RTL8188FTV&lt;/strong&gt;, vendor:product &lt;code&gt;0bda:f179&lt;/code&gt;) causes system freezes on Ubuntu (kernel 6.x), this short guide shows a single, safe script to install a stable driver (&lt;code&gt;rtl8188fu&lt;/code&gt;), disable buggy power management, and make the change persistent.&lt;/p&gt;


&lt;h2&gt;
  
  
  🧠 What Causes the Problem
&lt;/h2&gt;

&lt;p&gt;The in-kernel driver &lt;code&gt;rtl8xxxu&lt;/code&gt; has unstable behavior (power management / USB suspend issues) on some Realtek USB chips.&lt;br&gt;
That often leads to disconnects or full system hangs.&lt;br&gt;
Installing the &lt;code&gt;rtl8188fu&lt;/code&gt; driver (maintained fork) and disabling Realtek USB power management fixes it.&lt;/p&gt;


&lt;h2&gt;
  
  
  ⚡ One-Shot Fix Script
&lt;/h2&gt;

&lt;p&gt;Save this as &lt;code&gt;install-rtl8188fu.sh&lt;/code&gt;, make it executable, and run with &lt;code&gt;sudo&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;
&lt;span class="c"&gt;# One-shot installer for Realtek RTL8188FTV (0bda:f179)&lt;/span&gt;
&lt;span class="c"&gt;# Tested on Ubuntu 24.04 / Kernel 6.x&lt;/span&gt;

&lt;span class="nb"&gt;set&lt;/span&gt; &lt;span class="nt"&gt;-e&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"==&amp;gt; Installing dependencies"&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt update
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; git build-essential dkms linux-headers-&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;uname&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nb"&gt;true

echo&lt;/span&gt; &lt;span class="s2"&gt;"==&amp;gt; Removing old in-kernel driver (if loaded)"&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;modprobe &lt;span class="nt"&gt;-r&lt;/span&gt; rtl8xxxu &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nb"&gt;true

echo&lt;/span&gt; &lt;span class="s2"&gt;"==&amp;gt; Cloning maintained rtl8188fu repo"&lt;/span&gt;
&lt;span class="nb"&gt;cd&lt;/span&gt; /tmp
&lt;span class="nb"&gt;rm&lt;/span&gt; &lt;span class="nt"&gt;-rf&lt;/span&gt; rtl8188fu
git clone https://github.com/kelebek333/rtl8188fu.git
&lt;span class="nb"&gt;cd &lt;/span&gt;rtl8188fu

&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"==&amp;gt; Clearing strict Werror flags (if present)"&lt;/span&gt;
&lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-rl&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\-&lt;/span&gt;&lt;span class="s2"&gt;Werror"&lt;/span&gt; &lt;span class="nb"&gt;.&lt;/span&gt; 2&amp;gt;/dev/null | xargs &lt;span class="nt"&gt;-r&lt;/span&gt; &lt;span class="nb"&gt;sudo sed&lt;/span&gt; &lt;span class="nt"&gt;-i&lt;/span&gt; &lt;span class="s1"&gt;'s/-Werror//g'&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nb"&gt;true

echo&lt;/span&gt; &lt;span class="s2"&gt;"==&amp;gt; Building driver"&lt;/span&gt;
make &lt;span class="nt"&gt;-j&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;nproc&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;

&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"==&amp;gt; Installing module"&lt;/span&gt;
&lt;span class="nb"&gt;sudo cp&lt;/span&gt; &lt;span class="nt"&gt;-f&lt;/span&gt; rtl8188fu.ko /lib/modules/&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;uname&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;/kernel/drivers/net/wireless/ &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nb"&gt;true
sudo &lt;/span&gt;depmod &lt;span class="nt"&gt;-a&lt;/span&gt;

&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"==&amp;gt; Loading module"&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;modprobe rtl8188fu

&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"==&amp;gt; Disabling Realtek power management (prevents freezes)"&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"options rtl8188fu rtw_power_mgnt=0 rtw_enusbss=0"&lt;/span&gt; | &lt;span class="nb"&gt;sudo tee&lt;/span&gt; /etc/modprobe.d/rtl8188fu.conf &lt;span class="o"&gt;&amp;gt;&lt;/span&gt;/dev/null

&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"==&amp;gt; Ensure module auto-loads on boot"&lt;/span&gt;
&lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-qx&lt;/span&gt; &lt;span class="s2"&gt;"rtl8188fu"&lt;/span&gt; /etc/modules &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"rtl8188fu"&lt;/span&gt; | &lt;span class="nb"&gt;sudo tee&lt;/span&gt; &lt;span class="nt"&gt;-a&lt;/span&gt; /etc/modules &lt;span class="o"&gt;&amp;gt;&lt;/span&gt;/dev/null

&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"==&amp;gt; Restart NetworkManager"&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;systemctl restart NetworkManager &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nb"&gt;true

echo&lt;/span&gt; &lt;span class="s2"&gt;"==&amp;gt; Clean up sources"&lt;/span&gt;
&lt;span class="nb"&gt;cd&lt;/span&gt; ~
&lt;span class="nb"&gt;rm&lt;/span&gt; &lt;span class="nt"&gt;-rf&lt;/span&gt; /tmp/rtl8188fu

&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"==&amp;gt; Done. Verify with: sudo lshw -C network | grep driver"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;chmod&lt;/span&gt; +x install-rtl8188fu.sh
&lt;span class="nb"&gt;sudo&lt;/span&gt; ./install-rtl8188fu.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🔍 Verify Installation
&lt;/h2&gt;

&lt;p&gt;After running the script (or after a reboot):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;lsmod | &lt;span class="nb"&gt;grep &lt;/span&gt;8188
&lt;span class="nb"&gt;sudo &lt;/span&gt;lshw &lt;span class="nt"&gt;-C&lt;/span&gt; network | &lt;span class="nb"&gt;grep &lt;/span&gt;driver
lsusb | &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-i&lt;/span&gt; realtek
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You should see &lt;code&gt;rtl8188fu&lt;/code&gt; listed as the active driver and your adapter visible with an IP.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚠️ Still Requires Manual Attention
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Case&lt;/th&gt;
&lt;th&gt;What to Do&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;No internet connection during installation&lt;/td&gt;
&lt;td&gt;Use USB tethering or LAN just once during the first install&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ubuntu kernel upgrades later (e.g. 6.8 → 6.9)&lt;/td&gt;
&lt;td&gt;Re-run the same script after reboot&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Adapter not showing in &lt;code&gt;lsusb&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Check USB port or use a powered hub (hardware issue)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




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

&lt;p&gt;Yes — this is a &lt;strong&gt;fault-tolerant, restart-safe, one-shot installer&lt;/strong&gt; that fixes every major issue we encountered:&lt;/p&gt;

&lt;p&gt;✅ Handles build errors&lt;br&gt;
✅ Handles power issues&lt;br&gt;
✅ Handles kernel driver conflicts&lt;br&gt;
✅ Auto-configures persistence&lt;/p&gt;

&lt;p&gt;No more system hangs, unstable Wi-Fi, or manual driver tweaking.&lt;br&gt;
Just one script — stable wireless for good. 🚀&lt;/p&gt;

</description>
      <category>networking</category>
      <category>tutorial</category>
      <category>cli</category>
      <category>linux</category>
    </item>
    <item>
      <title>🛠️ I Built My Own Workout Tracker App</title>
      <dc:creator>Aditya Mali</dc:creator>
      <pubDate>Tue, 24 Jun 2025 14:01:06 +0000</pubDate>
      <link>https://dev.to/aditya_mali_648306b2e1b5d/i-built-my-own-workout-tracker-app-13cp</link>
      <guid>https://dev.to/aditya_mali_648306b2e1b5d/i-built-my-own-workout-tracker-app-13cp</guid>
      <description>&lt;p&gt;For months, I tracked my workouts meticulously using Obsidian — every rep, every set, every note.&lt;br&gt;
But as time went on, the process got messy, hard to navigate, and impossible to analyze. No graphs, no trends, no structure.&lt;/p&gt;

&lt;p&gt;So I did what most devs do when a tool doesn’t cut it:&lt;/p&gt;

&lt;p&gt;I built my own app.&lt;/p&gt;

&lt;p&gt;This post walks you through why I built it, what it does, and how it’s helping me (and now others) stay consistent and focused with training.&lt;/p&gt;

&lt;p&gt;🔧 Tech Stack&lt;br&gt;
Next.js &lt;br&gt;
Vercel Blob Storage &lt;br&gt;
Tailwind CSS &lt;br&gt;
Chart.js &lt;/p&gt;

&lt;p&gt;🧠 Why This App Exists&lt;br&gt;
Obsidian is powerful, but for workouts... I needed:&lt;/p&gt;

&lt;p&gt;Visual trends and stats&lt;/p&gt;

&lt;p&gt;Auto-generated plans&lt;/p&gt;

&lt;p&gt;A clean, distraction-free interface&lt;/p&gt;

&lt;p&gt;Cloud syncing&lt;/p&gt;

&lt;p&gt;A clear overview of what I’ve done and what’s next&lt;/p&gt;

&lt;p&gt;So I built it from scratch — and it’s now my go-to fitness companion.&lt;/p&gt;

&lt;p&gt;⚙️ Features (with Screenshots)&lt;br&gt;
🗓️ Daily Workout Logging&lt;br&gt;
Track exercises, sets, reps, and weights for every session.&lt;/p&gt;

&lt;p&gt;✍️ Editable Weekly Routines&lt;br&gt;
Want to change a workout? Just edit the plan! Add/remove exercises anytime.&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%2Fptd1b5iyj1j9265wchtu.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%2Fptd1b5iyj1j9265wchtu.png" alt="Image description" width="800" height="742"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🏋️ Built-In Exercise Library + Custom Support&lt;br&gt;
Search, filter, and log from a full list of categorized exercises — or add your own.&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%2Fpgbj3avbf1r3fbflly8r.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%2Fpgbj3avbf1r3fbflly8r.png" alt="Image description" width="800" height="596"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📈 Per-Exercise Progress Charts&lt;br&gt;
See how you’re performing over time with clean volume and strength graphs.&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%2Fht5dcfk9xacl3z8wsxg6.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%2Fht5dcfk9xacl3z8wsxg6.png" alt="Image description" width="800" height="702"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🔥 GitHub-Style Heatmap&lt;br&gt;
Your workout consistency visualized in a beautiful 365-day heatmap.&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%2F42y6y9t8r8nuue40udt7.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%2F42y6y9t8r8nuue40udt7.png" alt="Image description" width="800" height="677"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📊 Weekly Consistency Score&lt;br&gt;
Track how consistent you’ve been, week by week, in a simple graph.&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%2Fxwhj7tg38mbvqon2mjhv.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%2Fxwhj7tg38mbvqon2mjhv.png" alt="Image description" width="752" height="507"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;⚖️ Weight Tracking &amp;amp; Goal Projection&lt;br&gt;
Track body weight and estimate how long it'll take to hit your goal.&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%2Fy72qnqfetnz9vcbvys5a.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%2Fy72qnqfetnz9vcbvys5a.png" alt="Image description" width="708" height="961"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🍽️ Meal Planner &amp;amp; Macro Tracker&lt;br&gt;
Plan your meals, log macros (protein, fat, carbs, fiber), and keep your diet aligned.&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%2Fhdnbrfogxfkyepifa439.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%2Fhdnbrfogxfkyepifa439.png" alt="Image description" width="800" height="626"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📋 Dashboard Summary&lt;br&gt;
Today’s workout, nutrition stats, and consistency all in one place.&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%2Ffahxtcwo51xkdk5947gf.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%2Ffahxtcwo51xkdk5947gf.png" alt="Image description" width="344" height="674"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;⚡ Automatic Workout Plans&lt;br&gt;
Choose your preferred split — One Muscle/Day or Two Muscles/Day — and the app fills in your daily plan.(These are my plans which i follow you can edit if you want)&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%2Fdgwd6q1b5651vqjwq0zp.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%2Fdgwd6q1b5651vqjwq0zp.png" alt="Image description" width="800" height="979"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;☁️ Cloud Sync + Full Portability&lt;br&gt;
Data is stored securely with Vercel Blob. You can export or import all of it as JSON.&lt;/p&gt;

&lt;p&gt;🧪 Demo Mode&lt;br&gt;
Want to try it without signing up? Just log in with below creds and explore all features with preloaded data.&lt;/p&gt;

&lt;p&gt;💬 Final Thoughts&lt;br&gt;
I built this app out of pure necessity — but it turned into something I now use daily.&lt;br&gt;
It’s helped me stay consistent, focused, and more aware of my training patterns.&lt;/p&gt;

&lt;p&gt;If you’re a developer who lifts, or just love quantified self tools — give it a spin.&lt;br&gt;
I'm actively adding features and would love your feedback!&lt;/p&gt;

&lt;p&gt;🔗 Try the demo: &lt;a href="https://workoutos.vercel.app/" rel="noopener noreferrer"&gt;https://workoutos.vercel.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Demo account for viewing  complete UI and Data charts.&lt;br&gt;
Username: demo&lt;br&gt;
Password: demo&lt;/p&gt;

&lt;p&gt;📬 Reach out: &lt;a href="mailto:aditymal33@gmail.com"&gt;aditymal33@gmail.com&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Nextjs #FitnessApp #WorkoutTracker #IndieDev #Vercel #DevJournal #BuiltThis
&lt;/h1&gt;

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