<?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: Aditya Trivedi</title>
    <description>The latest articles on Forem by Aditya Trivedi (@yuvadi29).</description>
    <link>https://forem.com/yuvadi29</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%2F3259417%2F82250ffd-018f-4c3f-864b-4f262a4483ea.jpeg</url>
      <title>Forem: Aditya Trivedi</title>
      <link>https://forem.com/yuvadi29</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/yuvadi29"/>
    <language>en</language>
    <item>
      <title>Why does a href tag have an underscore '_' ?</title>
      <dc:creator>Aditya Trivedi</dc:creator>
      <pubDate>Thu, 09 Apr 2026 12:52:00 +0000</pubDate>
      <link>https://forem.com/yuvadi29/why-does-a-href-tag-have-an-underscore--2p06</link>
      <guid>https://forem.com/yuvadi29/why-does-a-href-tag-have-an-underscore--2p06</guid>
      <description>&lt;p&gt;Before HTML5, developers used &lt;strong&gt;frameset&lt;/strong&gt; for SPA-like functionality, dividing the window into multiple frames, each with its own unique name. For e.g, left frame might be name=”sidebar” and right could be name=”content”.&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%2F7pb4xdh0v59ihzhh48gl.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%2F7pb4xdh0v59ihzhh48gl.png" alt="FrameSet" width="800" height="402"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When clicking a link, the browser needed to know which frame to load the content into. That’s where the attribute came in. Clicking a link in sidebar, would load content in content frame:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"/pricing"&lt;/span&gt; &lt;span class="na"&gt;target=&lt;/span&gt;&lt;span class="s"&gt;"content"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now if you had a frame named “blank” and used &lt;strong&gt;a href=”/” target=blank&lt;/strong&gt;, the content would load in that frame. But if no frame existed, browser would create a new window and assign it in the “blank” name.&lt;/p&gt;




&lt;h2&gt;
  
  
  So Why Underscore ?
&lt;/h2&gt;

&lt;p&gt;It’s simple, developers needed a way to explicitly tell the browser to open the link in a new tab, free of frame semantics. The underscore signifies a special value rather than frame name.&lt;/p&gt;




</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>html</category>
      <category>web</category>
    </item>
    <item>
      <title>Automate your Git Workflow using AI</title>
      <dc:creator>Aditya Trivedi</dc:creator>
      <pubDate>Thu, 09 Apr 2026 12:50:41 +0000</pubDate>
      <link>https://forem.com/yuvadi29/automate-your-git-workflow-using-ai-5c38</link>
      <guid>https://forem.com/yuvadi29/automate-your-git-workflow-using-ai-5c38</guid>
      <description>&lt;p&gt;Tired of thinking what comments to add for your git commit. This flow will help you.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Prerequisites&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Git Bash:&lt;/strong&gt; Installed on your Windows System.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ollama CLI:&lt;/strong&gt; Installed and configured with &lt;code&gt;phi3.5&lt;/code&gt; model.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Basic Knowledge of Git Commands and Terminal Usage.&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Step 1: Create the Script File&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Open your favorite Text editor and create a new file.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Copy and paste the following Bash Script:&lt;br&gt;
&lt;/p&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;# git_auto_commit.sh&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt; git rev-parse &lt;span class="nt"&gt;--git-dir&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; /dev/null 2&amp;gt;&amp;amp;1&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
 &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Error: This directory is not a Git repository."&lt;/span&gt;
 &lt;span class="nb"&gt;exit &lt;/span&gt;1
&lt;span class="k"&gt;fi

if &lt;/span&gt;git diff-index &lt;span class="nt"&gt;--quiet&lt;/span&gt; HEAD &lt;span class="nt"&gt;--&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
 &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"No changes detected. Exiting."&lt;/span&gt;
 &lt;span class="nb"&gt;exit &lt;/span&gt;0
&lt;span class="k"&gt;fi

&lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Staging changes..."&lt;/span&gt;
git add &lt;span class="nb"&gt;.&lt;/span&gt;

&lt;span class="nv"&gt;summary&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;git diff &lt;span class="nt"&gt;--cached&lt;/span&gt; &lt;span class="nt"&gt;--name-only&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;

&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Generating commit message suggestion from Ollama phi3.5..."&lt;/span&gt;
&lt;span class="nv"&gt;suggested_commit_msg&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;ollama run phi3.5 &lt;span class="s2"&gt;""&lt;/span&gt;Generate a concise yet informative commit message that accurately summarizes the following code changes. The message should be clear, professional, and follow best practices &lt;span class="k"&gt;for &lt;/span&gt;commit messages. Aim to describe the purpose and impact of the changes &lt;span class="k"&gt;in &lt;/span&gt;a way that is easy to understand. Avoid unnecessary details but ensure the key modifications are covered. Format the message &lt;span class="k"&gt;in &lt;/span&gt;an imperative style &lt;span class="o"&gt;(&lt;/span&gt;e.g., &lt;span class="s1"&gt;'Fix bug in authentication flow'&lt;/span&gt; instead of &lt;span class="s1"&gt;'Fixed a bug...'&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="nb"&gt;.&lt;/span&gt; Here are the changes to summarize: &lt;span class="nv"&gt;$summary&lt;/span&gt;&lt;span class="s2"&gt;")

echo "&lt;/span&gt;Suggested commit message:&lt;span class="s2"&gt;"
echo "&lt;/span&gt;&lt;span class="nv"&gt;$suggested_commit_msg&lt;/span&gt;&lt;span class="s2"&gt;"

read -p "&lt;/span&gt;Edit commit message? &lt;span class="o"&gt;(&lt;/span&gt;y/n&lt;span class="o"&gt;)&lt;/span&gt;: &lt;span class="s2"&gt;" choice

if [[ "&lt;/span&gt;&lt;span class="nv"&gt;$choice&lt;/span&gt;&lt;span class="s2"&gt;" =~ ^[Yy]&lt;/span&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="s2"&gt;]]; then
   echo "&lt;/span&gt;Enter your commit message below. Press Ctrl+D when &lt;span class="k"&gt;done&lt;/span&gt;.&lt;span class="s2"&gt;"
   commit_msg=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;cat&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;  # Reads multiline input until Ctrl+D
else
   commit_msg="&lt;/span&gt;&lt;span class="nv"&gt;$suggested_commit_msg&lt;/span&gt;&lt;span class="s2"&gt;"
fi

git commit -m "&lt;/span&gt;&lt;span class="nv"&gt;$commit_msg&lt;/span&gt;&lt;span class="s2"&gt;"
git push origin master
echo "&lt;/span&gt;Done!&lt;span class="s2"&gt;"
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Save the file as &lt;code&gt;git_auto_commit.sh&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Step 2: Add the Script to Your Global Bin Directory&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create a &lt;code&gt;bin&lt;/code&gt; directory if it doesn’t exist:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; ~/bin
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Move the script to this directory:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mv&lt;/span&gt; /path/to/git_auto_commit.sh ~/bin/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  &lt;strong&gt;Step 3: Make the Script Executable inside a bash terminal.&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;You can use Git Bash as well to execute it here&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 ~/bin/git_auto_commit.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  &lt;strong&gt;Step 4: Add the Script Directory to Your PATH&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Open &lt;code&gt;~/.bashrc&lt;/code&gt; or &lt;code&gt;~/.bash_profile&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nano ~/.bashrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Add this line at the end:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;PATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;&lt;span class="s2"&gt;/bin:&lt;/span&gt;&lt;span class="nv"&gt;$PATH&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Save and apply changes:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;source&lt;/span&gt; ~/.bashrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Step 5: Testing the Script&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Navigate to a Git repository.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git_auto_commit.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Follow the prompts.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Additional Notes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Ensure &lt;code&gt;Ollama&lt;/code&gt; is installed and running.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Windows &lt;strong&gt;NTFS&lt;/strong&gt; permissions may not reflex Unix-style &lt;code&gt;chmod&lt;/code&gt; changes, but the script will execute.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;This script is now available at my GitHub Repository. Go ahead and automate your Git Workflow.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Yuvadi29/Ai-Comment-Generator" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/p&gt;




</description>
      <category>ai</category>
      <category>github</category>
      <category>githubactions</category>
      <category>automation</category>
    </item>
    <item>
      <title>How to Approach Projects</title>
      <dc:creator>Aditya Trivedi</dc:creator>
      <pubDate>Sat, 04 Apr 2026 07:35:39 +0000</pubDate>
      <link>https://forem.com/yuvadi29/how-to-approach-projects-52jm</link>
      <guid>https://forem.com/yuvadi29/how-to-approach-projects-52jm</guid>
      <description>&lt;p&gt;Whenever it comes to creating a project or making a project, the most crucial part of it is to have an approach to it. Many a times, what developers do is that they directly start creating the project, rather than understanding what the requirements of the project is.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;The way I approach a project is:&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;1. Initial Planning&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Understanding what is the exact requirement in detail&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Creating a flowchart understanding what is the flow of the entire project&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;2. Technology Selection&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Based on the flowchart, NOW is when I choose the tech stack to start the project. Now this step also has some conditions while making decision on:&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Backend Selection&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Fast Processing → NodeJS&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Data Processing and Cleaning → Python/Django/Flask&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;AI or Machine Learning → Python or NodeJs (Personally my choice as there are many libraries which are available here as well)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Security → Java&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Frontend Options&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;NextJS → Fast Loading and Image Optimisation&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;ViteJS → Faster Development&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Or Any other JavaScript Based Frameworks&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;TalwindCSS/ShadCN → Styling&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Database Choices&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;MongoDB → Super Easy Syntax and easy to connect and also document based&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Supabase → OpenSource Structured Database like MYSQL&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;ChromaDB/PineCone/MongoDB → Vector Embeddings and Vector Search (AI Related Applications)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;API Testing Tools&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;  Postman&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;3. Design Phase&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;After I am done choosing my Tech Stack, next step is to start with the designing the frontend. For that I usually go for either Figma or Penpot (Open Source Figma Alternative)&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;4. Development Process&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Now this is where a little debate happens, some directly go for frontend development while some start with backend. Don't worry nothing is wrong here, you can start with anything you want.&lt;/p&gt;

&lt;p&gt;I personally choose to start with creating the backend first as I think this particularly takes a lot of time developing and most importantly &lt;strong&gt;TESTING&lt;/strong&gt; 😏😏.&lt;/p&gt;

&lt;p&gt;I use TDD approach for this which is Test-Driven-Development i.e. create an api → test it with multiple test case you can think of, then move forward with the next one.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;5. Frontend Development&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Once backend is created, now start with designing the frontend. Always prefer using reusable components in your website so that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Number of Lines of Code is reduced&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Debugging is easier&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Code is Reusable&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Start creating the frontend using mobile first view as it is very important to have your website both desktop and mobile friendly. Using this approach reduces a lot of your time in development.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;6. Integration &amp;amp; Testing&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Once the frontend is completed, next task is to start integrating the APIs. This is where all the crucial aspect of any website is implemented.&lt;/p&gt;

&lt;p&gt;Once APIs are integrated, next step is to do a thorough testing of the integrated APIs and UI. If the results are as per your requirements, you are good to go for deployment else debug the issues and solve them until and unless you're requirements are not met.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;7. Deployment&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;For Backend deployment I usually prefer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Render&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;PythonAnywhere&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For Frontend My only way to go is &lt;a href="http://vercel.com" rel="noopener noreferrer"&gt;vercel.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once this is done, your project is completed. Congratulations 🥳&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Just a small reminder, this approach can be changed based on the scalability and use case of the project.”&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>sideprojects</category>
      <category>coding</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
