<?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 Mangal</title>
    <description>The latest articles on Forem by Aditya Mangal (@adityamangal1).</description>
    <link>https://forem.com/adityamangal1</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%2F506532%2F9f101563-d3b5-487c-88c4-fc2a28ae4917.png</url>
      <title>Forem: Aditya Mangal</title>
      <link>https://forem.com/adityamangal1</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/adityamangal1"/>
    <language>en</language>
    <item>
      <title>Leveraging AI in React.js Development Workflows</title>
      <dc:creator>Aditya Mangal</dc:creator>
      <pubDate>Mon, 07 Jul 2025 05:28:33 +0000</pubDate>
      <link>https://forem.com/adityamangal1/leveraging-ai-in-reactjs-development-workflows-o58</link>
      <guid>https://forem.com/adityamangal1/leveraging-ai-in-reactjs-development-workflows-o58</guid>
      <description>&lt;p&gt;While foundational knowledge remains paramount, Artificial Intelligence tools are undeniably revolutionizing and augmenting React.js development workflows, offering significant boosts in productivity and streamlining numerous tasks across the software development lifecycle.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Overview of Key AI Tools for React Developers&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;The ecosystem of AI tools for developers is rapidly expanding, offering specialized assistance across various stages of React development:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Code Completion and Suggestion&lt;/strong&gt;: Tools like GitHub Copilot , Codeium , Tabnine , and Amazon CodeWhisperer  act as intelligent "pair programmers." They provide real-time code suggestions, auto-complete complex JSX, hooks, and logic patterns, and can understand the context of a project to offer highly relevant suggestions. Kite  is another such assistant, known for suggesting entire function bodies.   &lt;/p&gt;

&lt;p&gt;Code Generation: Beyond mere completion, tools like CodeCat AI, a GPT-3 React Generator, can rapidly create entire React components based on natural language descriptions. More broadly, Visual Copilot by Builder.io and Kombai are specialized tools that convert design files (e.g., from Figma) directly into clean, ready-to-use React code, drastically reducing manual coding effort and development time by 50-80%. Generative AI can also quickly create draft implementations for new features, allowing for rapid iteration and experimentation.   &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Code Review, Refactoring, and Optimization&lt;/strong&gt;: AI-powered tools such as Sourcery , DeepCode , CodeSee, DeepSource, and SonarQube  automate aspects of code review. They can detect potential flaws, security vulnerabilities, and performance bottlenecks, and suggest intelligent refactoring opportunities, thereby ensuring higher code quality and maintainability.   &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Automated Testing and Bug Detection&lt;/strong&gt;: Tools like CodiumAI, Testim, and Replay.io leverage AI to auto-suggest comprehensive test cases for React components, catch logic bugs early, and simulate real user flows for complex UI interactions. AI can efficiently scan thousands of lines of code in seconds to pinpoint issues that would take humans hours to find.   &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Documentation Generation&lt;/strong&gt;: AI can significantly reduce the burden of documentation by automatically generating JSDoc comments from function bodies, creating README snippets for components, and auto-completing PropTypes and interface declarations in TypeScript.   &lt;br&gt;
&lt;strong&gt;Design-to-Code and Accessibility Enhancement&lt;/strong&gt;: Tools like Locofy.ai, Uizard, and Anima bridge the gap between design and development by converting design files into pixel-perfect, responsive React components with actual code. AI also plays a crucial role in improving application accessibility by detecting issues such as missing ARIA attributes, insufficient color contrast, poor tab navigation flow, and improper form labeling.   &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Specialized AI Assistants&lt;/strong&gt;: Beyond general-purpose tools, some libraries offer integrated AI assistance. For instance, the Telerik KendoReact AI Coding Assistant helps generate complex components like advanced data grids with simple prompts, claiming up to 30% productivity gains.   &lt;/p&gt;

&lt;h2&gt;
  
  
  Benefits of AI in React.js Development
&lt;/h2&gt;

&lt;p&gt;The integration of AI into React development workflows yields several compelling benefits:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Increased Efficiency and Speed:&lt;/strong&gt; AI automates repetitive coding tasks, such as boilerplate code generation and common pattern suggestions, significantly accelerating completion times. This allows developers to allocate more energy and focus to the complex, creative, and problem-solving aspects of software development. For instance, GitHub Copilot has been shown to increase developer speed by up to 55%.   &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reduced Errors and Improved Code Quality&lt;/strong&gt;: AI models are less prone to human error in routine tasks. They excel at detecting patterns and anomalies in code, suggesting optimizations, and ensuring syntactically correct code snippets, leading to cleaner, more efficient, and higher-quality code with fewer bugs.   &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lower Cognitive Load and Increased Satisfaction&lt;/strong&gt;: By automating tedious or boilerplate tasks, AI tools reduce the mental strain on developers, potentially preventing burnout and significantly increasing job satisfaction and engagement by allowing them to focus on more fulfilling, higher-level work.   &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Enhanced Accessibility&lt;/strong&gt;: AI tools actively assist in identifying and rectifying accessibility issues, making applications more inclusive and compliant with standards.   &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Accelerated Learning for Junior Developers&lt;/strong&gt;: AI can function as an "expert-level mentor" for new developers, providing real-time explanations, examples, and contextual guidance. This can significantly boost their productivity and accelerate skill acquisition, helping them grow expertise and confidence faster than traditional methods alone.   &lt;/p&gt;

&lt;p&gt;A key observation here is that AI tools are not merely about code generation; they form a comprehensive ecosystem that supports the entire development lifecycle, from initial design concepts to testing and ongoing maintenance. This broad impact means AI is becoming an integral, multi-faceted part of the developer workflow, far beyond just a niche coding aid.   &lt;/p&gt;

&lt;p&gt;However, it's also important to note a potential dynamic: while AI significantly boosts junior developer productivity, this immediate gain might inadvertently mask a long-term risk of dependency if not balanced with foundational learning. These tools, by automating "struggle," could reduce the very friction that builds deep understanding and resilience. The challenge lies in ensuring that accelerated output does not come at the cost of profound conceptual mastery.&lt;/p&gt;

&lt;h2&gt;
  
  
  Best Practices for Integrating AI into the Learning Process
&lt;/h2&gt;

&lt;p&gt;For aspiring developers, integrating AI thoughtfully into their learning journey is key&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Attempt Manually First, Then Augment with AI&lt;/strong&gt;: A crucial practice is to first attempt to solve problems or write code manually. Only after grappling with the challenge and forming an initial solution should AI tools be consulted for explanations, debugging assistance, or boilerplate generation. This ensures active learning and prevents over-dependence, fostering genuine understanding.   &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Critically Evaluate AI-Generated Code&lt;/strong&gt;: Never blindly copy-paste AI-generated code. Always review and understand it, ensuring its accuracy, authenticity, legitimacy, and relevance to the specific problem. This critical evaluation process reinforces learning and helps identify potential errors or suboptimal solutions.   &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Focus on Problem Decomposition and Architectural Design&lt;/strong&gt;: AI excels at handling routine, repetitive tasks, which frees up valuable mental bandwidth for developers to concentrate on higher-order problems. This includes designing better software architectures, decomposing complex problems into manageable parts, and solving intricate logical challenges.   &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Embrace Active Learning Strategies&lt;/strong&gt;: Learning is most effective when it is active. "You learn by making things". This means consistently building small applications, and even rewriting them in different React styles (e.g., experimenting with various hooks or state management patterns) to solidify concepts. Actively engaging with documentation and experimenting with code are far more effective than passive consumption of tutorials. When stuck, AI can be used as a "personal teacher" for theoretical explanations and exploring different use cases, but the ultimate decision on implementation should remain with the human developer.   &lt;/p&gt;

&lt;p&gt;In conclusion, the future of software development is not about AI replacing developers, but about AI empowering them. Success in this evolving environment lies in mastering the tools while continuously sharpening the uniquely human skills of creativity, critical thinking, and complex problem-solving. By adopting a synergistic approach, aspiring React developers can build a robust foundation, leverage AI for accelerated productivity, and position themselves at the forefront of innovation&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Yield Farming and Liquidity Mining</title>
      <dc:creator>Aditya Mangal</dc:creator>
      <pubDate>Tue, 04 Apr 2023 11:06:02 +0000</pubDate>
      <link>https://forem.com/adityamangal1/yield-farming-and-liquidity-mining-146</link>
      <guid>https://forem.com/adityamangal1/yield-farming-and-liquidity-mining-146</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;Yield Farming and Liquidity Mining: How to Earn Passive Income in DeFi&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;In recent years, DeFi (decentralized finance) has emerged as one of the hottest trends in the world of cryptocurrency. DeFi allows users to access financial services without relying on traditional financial institutions. One of the most popular DeFi strategies for earning passive income is through yield farming and liquidity mining. In this article, we’ll discuss what yield farming and liquidity mining are, how they work, and some popular platforms to try. We’ll also discuss the risks involved in these strategies.&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%2F4m5fuw7mtb51i7463uqf.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%2F4m5fuw7mtb51i7463uqf.png" alt="Image description" width="800" height="509"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Yield Farming?
&lt;/h2&gt;

&lt;p&gt;Yield farming, also known as liquidity farming, is a process that allows users to lend their cryptocurrencies to decentralized finance (DeFi) protocols in exchange for interest or rewards. Yield farming is a way to earn passive income by simply holding your cryptocurrencies in a liquidity pool. Liquidity pools are pools of cryptocurrencies that are used to facilitate trading on decentralized exchanges (DEXs).&lt;/p&gt;

&lt;p&gt;When a user provides liquidity to a pool, they receive a liquidity provider (LP) token. LP tokens represent the user’s share of the liquidity pool. The user can then use these LP tokens to participate in yield farming by staking them in a DeFi protocol. By doing so, they earn a portion of the fees generated by the protocol, as well as any rewards offered by the protocol.&lt;/p&gt;

&lt;p&gt;One of the most popular yield farming protocols is Uniswap. Uniswap is a decentralized exchange that allows users to trade cryptocurrencies without the need for an intermediary. Users can provide liquidity to Uniswap’s liquidity pools and earn a share of the trading fees generated by the protocol. In addition to trading fees, Uniswap also offers a reward in the form of its governance token, UNI.&lt;/p&gt;

&lt;p&gt;Another popular yield farming protocol is Curve. Curve is a decentralized exchange that is focused on stablecoins. Users can provide liquidity to Curve’s liquidity pools and earn a share of the trading fees generated by the protocol. In addition to trading fees, Curve also offers a reward in the form of its governance token, CRV.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Liquidity Mining?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Liquidity mining is a specific type of yield farming that involves providing liquidity to a DeFi protocol in exchange for newly minted tokens. Liquidity mining is a way for DeFi projects to distribute their tokens and incentivize liquidity provision.&lt;/p&gt;

&lt;p&gt;When a user provides liquidity to a DeFi protocol that offers liquidity mining, they receive a token that represents their share of the liquidity pool. In addition to earning trading fees and rewards from the protocol, liquidity providers also earn newly minted tokens as a reward for providing liquidity.&lt;/p&gt;

&lt;p&gt;One of the most popular liquidity mining protocols is Compound. The compound is a decentralized lending platform that allows users to borrow and lend cryptocurrencies. Users can provide liquidity to the Compound’s liquidity pools and earn a share of the interest generated by the protocol. In addition to earning interest, liquidity providers also earn newly minted COMP tokens as a reward for providing liquidity.&lt;/p&gt;

&lt;p&gt;Another popular liquidity mining protocol is Aave. Aave is a decentralized lending platform that allows users to borrow and lend cryptocurrencies. Users can provide liquidity to Aave’s liquidity pools and earn a share of the interest generated by the protocol. In addition to earning interest, liquidity providers also earn newly minted AAVE tokens as a reward for providing liquidity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Risks Involved in Yield Farming and Liquidity Mining
&lt;/h2&gt;

&lt;p&gt;While yield farming and liquidity mining can be lucrative strategies for earning passive income, they also come with risks. One of the biggest risks involved in yield farming and liquidity mining is the risk of impermanent loss.&lt;/p&gt;

&lt;p&gt;Impermanent loss occurs when the price of the tokens in the liquidity pool changes. If the price of one token in the pool increases relative to the other&lt;/p&gt;

&lt;h2&gt;
  
  
  CONCLUSION
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;In conclusion, yield farming and liquidity mining offer a unique opportunity for users to earn passive income in the DeFi space. By providing liquidity to DeFi protocols, users can earn a portion of the fees generated by the protocol as well as newly minted tokens. However, it is important to remember that yield farming and liquidity mining come with risks, particularly the risk of impermanent loss. It is crucial for users to do their own research and fully understand the risks involved before participating in these strategies.&lt;br&gt;
Despite the risks, yield farming and liquidity mining are becoming increasingly popular in the DeFi ecosystem, with new protocols and platforms emerging regularly. Whether you’re a seasoned DeFi user or just starting out, yield farming and liquidity mining offer a unique and exciting way to participate in the DeFi revolution and potentially earn passive income.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>crypto</category>
      <category>cryptocurrency</category>
      <category>liquiditymining</category>
      <category>yieldfarming</category>
    </item>
    <item>
      <title>JINA AI | Cloud native neural search</title>
      <dc:creator>Aditya Mangal</dc:creator>
      <pubDate>Wed, 04 Aug 2021 11:38:55 +0000</pubDate>
      <link>https://forem.com/adityamangal1/jina-ai-1e66</link>
      <guid>https://forem.com/adityamangal1/jina-ai-1e66</guid>
      <description>&lt;p&gt;Jina AI is a neural search company. Jina is the core product, released on April 28th, 2020. The official tagline Jina put on it's Github repository is: Jina is a cloud-native neural search solution powered by state-of-the-art AI and deep learning. To put it simply, you can use Jina to search for anything: image-to-image, video-to-video, tweet-to-tweet, audio-to-audio, code-to-code, etc. To understand what we want to achieve at Jina AI, I often explain Jina with the following two expressions.&lt;/p&gt;

&lt;p&gt;Google recently announced they are using a “neural matching” algorithm to better understand concepts. Google's Danny Sullivan said is being used for 30% of search queries. Google has recently published a research paper that successfully matches search queries to web pages using only the search query and the web pages.&lt;/p&gt;

&lt;p&gt;A "TensorFlow" for search. TensorFlow, PyTorch, MXNet, and Mindspore are all universal frameworks for deep learning. You can use them for recognizing cats from dogs, or playing Go and DOTA. They are powerful and universal but not optimized for a specific domain. In Jina, they are focusing on one domain only: the search. We are building on top of the universal deep learning framework and providing an infrastructure for any AI-powered search applications. The next figure illustrates how they position themselves.&lt;br&gt;
A design pattern. There are design patterns for every era, from functional programming to object-oriented programming. Same goes for the search system. 30 years ago, it all started with a simple textbox. Many design patterns have been proposed for implementing the search system behind this textbox, some of which are incredibly successful commercially. In the era of neural search, a query can go beyond a few keywords; it could be an image, a video, a code snippet, or an audio file. When traditional symbolic search systems cannot effectively handle those data formats, people need a new design pattern for the underlying neural search system. That's what Jina is: a new design pattern for this new era.&lt;/p&gt;

&lt;h2&gt;
  
  
  JINA RESOURCES
&lt;/h2&gt;

&lt;p&gt;Github: &lt;a href="https://github.com/jina-ai/jina/" rel="noopener noreferrer"&gt;https://github.com/jina-ai/jina/&lt;/a&gt;&lt;br&gt;
Opensource: &lt;a href="https://opensource.jina.ai" rel="noopener noreferrer"&gt;https://opensource.jina.ai&lt;/a&gt;&lt;br&gt;
Website: &lt;a href="https://jina.ai" rel="noopener noreferrer"&gt;https://jina.ai&lt;/a&gt;&lt;br&gt;
Twitter: &lt;a href="https://twitter.com/jinaai_?lang=en" rel="noopener noreferrer"&gt;https://twitter.com/jinaai_?lang=en&lt;/a&gt;&lt;br&gt;
LinkedIn: &lt;a href="https://www.linkedin.com/company/jinaai" rel="noopener noreferrer"&gt;https://www.linkedin.com/company/jinaai&lt;/a&gt;&lt;br&gt;
Press: &lt;a href="mailto:press@jina.ai"&gt;press@jina.ai&lt;/a&gt;&lt;/p&gt;

</description>
      <category>jina</category>
    </item>
    <item>
      <title>TypeScript easier to use into existing JS projects</title>
      <dc:creator>Aditya Mangal</dc:creator>
      <pubDate>Sat, 24 Jul 2021 10:23:40 +0000</pubDate>
      <link>https://forem.com/adityamangal1/typescript-easier-to-use-into-existing-js-projects-1gen</link>
      <guid>https://forem.com/adityamangal1/typescript-easier-to-use-into-existing-js-projects-1gen</guid>
      <description>&lt;p&gt;TypeScript is among the rare language projects of history that have seen significant adoption from developers, an incredible feat to be sure. However, TypeScript adoption will always pale in comparison to JavaScript adoption in general. In that sense, I believe it is crucial that TypeScript plays naturally with other JavaScript that is not typed and is not written in TypeScript. After all, TypeScript is a superset of JavaScript, right?&lt;br&gt;
That brings me to what we’ve seen over the last year of Ionic 2 development with TypeScript. Right now, the number one challenge Ionic developers face when using TypeScript in Ionic 2 is importing JavaScript modules from npm that are not typed and do not have typings available. Over and over, we see developers attempt to follow code they find on the web where an ES6+ library is imported, but then struggle to understand why TypeScript then throws errors that the module cannot be found.&lt;br&gt;
The workaround for this in TS 2.0 is to add a stub module declaration, something like&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;declare module “module-from-npm”;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And place this in a d.ts file. As such, we’re seeing developers that have TypeScript savvy add a bunch of these stub definitions that have no type information, just to get TypeScript to not throw errors on compilation for modules that don’t and might never have type information available.&lt;br&gt;
The argument for requiring types for modules is that TypeScript can’t tell what the “shape” of the module is without types. However, it shouldn’t need to know the shape because the module doesn’t have nor does it need types. Yes, this means my IDE/intellisense experience will suffer, but that’s okay. If I want to add typings for the module later, and perhaps contribute them to the @types registry, why not let me do that once I’m ready to enhance my experience through typings?&lt;br&gt;
In the past, I’ve gone so far as to fork existing libraries on github just to add typing stubs so that users won’t have to add them in their own apps.&lt;/p&gt;

&lt;p&gt;I believe this would help TypeScript proliferate and lower the barrier to entry for newcomers to modern JavaScript and to typed JavaScript. I know Ionic developers would sure be happy about this!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>typescript</category>
    </item>
    <item>
      <title>2022 Hackathon Season Plans</title>
      <dc:creator>Aditya Mangal</dc:creator>
      <pubDate>Thu, 01 Jul 2021 07:18:43 +0000</pubDate>
      <link>https://forem.com/adityamangal1/2022-hackathon-season-plans-2fl</link>
      <guid>https://forem.com/adityamangal1/2022-hackathon-season-plans-2fl</guid>
      <description>&lt;p&gt;My final year as a Computer Engineering student has ended and by the end of the summer, I will start my applications, so most of the tasks I will try to accomplish by the end of summer will be geared towards that.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Learn JavaScript&lt;br&gt;
I have been learning JavaScript inefficiently for a long time and think that this free time during the summer could be used efficiently to learn the fundamentals of JavaScript properly. To do this, I am still searching for good resources but as of now I am planning to follow the interactive textbook of How to Think Like a Computer Scientist. Comment down below if you have any other good resources to learn JavaScript well!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Build Side Projects&lt;br&gt;
While I have doing small "tutorial" projects like Madlibs or Rock,Paper,Scissors as an exercise, I actually want to do two proper side projects and finish it by the end of the summer. I do not need them to be technically complex, but rather, quality side projects that people would actually use. If you have any ideas of nice side projects that let me learn well, I am open to suggestions!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Finish Cracking the Coding Interview Book&lt;br&gt;
Since I have not taken a Data Structures and Algorithms class in university yet, I am a bit behind on the content of programming interviews so I need to read up on the fundamental data structures and algorithms. I have already started reading Cracking the Coding Interview Book and it is very useful. Hopefully, by the end of the summer I have mastered enough of the topics on the book.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Grind some Leetcode questions&lt;br&gt;
This goes along with plan number 3. While the book is great for learning and also doing the exercises help, I need more practice with questions that will be similar to the interviews I will potentially do. I have compared several practice websites, and I also do not want to keep searching and comparing which website is the best to use, so I will do the questions in Leetcode even though I am struggling with easy questions right now.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Attend hackathons&lt;br&gt;
I love hackathons, the entrepreneurial and innovative spirit of hackathons excite me. And I am most innovative when working with other people, so I will attend virtual hackathons over the summer and hopefully make nice projects.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>hackathon</category>
      <category>mlh</category>
    </item>
    <item>
      <title>NEW MORNING NEW TASKS ASSIGNED ✨❤️</title>
      <dc:creator>Aditya Mangal</dc:creator>
      <pubDate>Fri, 04 Jun 2021 08:02:53 +0000</pubDate>
      <link>https://forem.com/adityamangal1/new-morning-new-tasks-assigned-14j</link>
      <guid>https://forem.com/adityamangal1/new-morning-new-tasks-assigned-14j</guid>
      <description>&lt;p&gt;Early wake up in morning and when is see my this laptop outlook boosts me to some more exciting stuff and working on my tasks todo everyday.❤️✨🤯&lt;/p&gt;

</description>
      <category>github</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Hacktoberfest Swags 💯🎉❤️</title>
      <dc:creator>Aditya Mangal</dc:creator>
      <pubDate>Wed, 17 Feb 2021 08:51:20 +0000</pubDate>
      <link>https://forem.com/adityamangal1/hacktoberfest-swags-da7</link>
      <guid>https://forem.com/adityamangal1/hacktoberfest-swags-da7</guid>
      <description>&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%2F4musq3m7tcgc58wm2uao.jpeg" 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%2F4musq3m7tcgc58wm2uao.jpeg" alt="Alt Text" width="516" height="960"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcja2cpxy364f8xnbmehe.jpeg" 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%2Fcja2cpxy364f8xnbmehe.jpeg" alt="Alt Text" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hey Devs. Just received the Hactoberfest swags. Thanks, Dev. to and all the other partners.❤️😀.&lt;/p&gt;

&lt;p&gt;This is my second year in a row. Looking forward to contributing more to Open Source.😀💯.&lt;/p&gt;

&lt;p&gt;Do Share your swags picture too. Thanks❤️&lt;/p&gt;

</description>
      <category>hacktoberfest</category>
      <category>github</category>
      <category>opensource</category>
    </item>
    <item>
      <title>HackerRank Solutions ✨</title>
      <dc:creator>Aditya Mangal</dc:creator>
      <pubDate>Tue, 08 Dec 2020 18:01:50 +0000</pubDate>
      <link>https://forem.com/adityamangal1/hackerrank-2h49</link>
      <guid>https://forem.com/adityamangal1/hackerrank-2h49</guid>
      <description>&lt;p&gt;Check out the hackerRank solution Github repo ❤️&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/adityamangal1/hackerRank-solutions" rel="noopener noreferrer"&gt;https://github.com/adityamangal1/hackerRank-solutions&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
    </item>
    <item>
      <title>The Importance of Request Timeouts</title>
      <dc:creator>Aditya Mangal</dc:creator>
      <pubDate>Mon, 30 Nov 2020 17:51:26 +0000</pubDate>
      <link>https://forem.com/adityamangal1/the-importance-of-request-timeouts-14l6</link>
      <guid>https://forem.com/adityamangal1/the-importance-of-request-timeouts-14l6</guid>
      <description>&lt;p&gt;What are timeouts?&lt;br&gt;
Timeouts set a max wait time on a request. We can think about timeouts in two contexts: the client and the server. Client timeouts set a limit on how long they are willing to wait for a response to come back—and in some cases be completed. Server timeouts set a limit on how long the connection should remain open. For example, if a client is taking an exceptionally long time to receive a response, the server may choose to close the connection. Be careful not to limit your thinking of the client as a browser and server as a backend. The client is the application making the request.&lt;br&gt;
You can also consider timeouts to be split into three types: a connect timeout, a write timeout, and a read timeout. Connect timeouts affect how long the client will wait for a connection to establish. Write timeouts affect how long the connection will wait while the client tries to send data, like a POST request. Read timeouts cover the amount of time it takes to actually receive the response back from the server. Some HTTP clients allow you to set each separately, and others only allow you to set a total combined value.&lt;/p&gt;

&lt;p&gt;Timeouts are all about "waiting." When your application makes a request, it has to wait for the response. Even in asynchronous code, eventually, that action needs to be handled and processed. Without a timeout established, your code relies on the assumption that it will either receive a successful response or an error. In reality, this isn't always the case. As we said at the start, networks are unreliable. If the request is delayed along the way, and never receives an official error response, your application will hang indefinitely. This is why timeouts are important. They stop the indefinite hang scenario.&lt;/p&gt;

&lt;p&gt;Libraries can't be trusted&lt;br&gt;
We make assumptions about "battle-tested" libraries and packages. Their heavy use adds clout, but sometimes the "good default" for a large audience isn't always the best default for your needs. For a few examples:&lt;/p&gt;

&lt;p&gt;Requests, the leading Python library for making HTTP requests, does not have a default value for timeouts. They encourage you to set timeout values, but if you forget or assume a sensible default exists, your code will be susceptible to hanging connections.&lt;br&gt;
Go's net/HTTP module also has no default timeout. You can, and should, set your own timeout value.&lt;br&gt;
The default browser implementations lack default timeouts, and in some cases lack easy ways to add timeouts. Both XHR and Fetch have issues, but most packages on NPM do incorporate ways to set timeouts. Axios, for example, has a default of 0, which it interprets as infinite.&lt;br&gt;
Ruby's net/HTTP has 60s defaults for all timeout types. This is pretty high for most use cases but is at least a default value.&lt;br&gt;
As we can see, even if you're using the language's built-in request module or one of the most popular packages available, you will likely hit problems with insufficient timeouts.&lt;/p&gt;

&lt;p&gt;Choosing a timeout value&lt;br&gt;
Determining your ideal timeout involves many variables. Connection timeouts should be kept short, while read and write timeouts are more dependant on the needs of the service. There are some considerations to make when determining the ideal timeout duration for each API call.&lt;/p&gt;

&lt;p&gt;One way is to monitor the response time from the APIs you connect to using a tool like Bearer. This works well for helping estimate the average time a successful request takes, and how long a successful error takes. Another approach is to focus on user experience. If a request is connected to the UI—directly or otherwise—your timeouts should be tied to how long you're willing to delay the interaction. For background-style tasks, higher timeouts are appropriate. For more immediate tasks, shorter timeouts are a better option. Combined with optimistic updates and a retry strategy, timeouts can directly improve your application's UX.&lt;/p&gt;

&lt;p&gt;Another variable to consider is serverless functions. If your code is making a request from a serverless endpoint, make sure the timeout is no greater than the max invocation time of the function. The function's maxed invocation time is often a hard limit. Combined with a little buffer for the time it takes for the request and response to move between your application and the remote server, these values can better inform your timeout value. For example timeout = maxInvocationTime + average response time, where the average response time is the time it normally takes. This isn't a perfect formula, but it's a great place to start.&lt;/p&gt;

&lt;p&gt;Finally, don't punish users for their connection speeds. This primarily applies to browsers, but a user on a 3G connection may require a significantly longer timeout when uploading an image than a user on a faster connection. Keep this in mind for any user-facing connections.&lt;/p&gt;

&lt;p&gt;So what should you do?&lt;br&gt;
Ideally, set specific timeouts for each API call your application makes. Use the needs of the interaction, or your services, to determine what the maximum timeout should be. If you're using an HTTP library or module that doesn't surface an easy configuration for this, consider switching to one that does.&lt;/p&gt;

&lt;p&gt;Setting custom timeouts for every request can be tedious, especially when you don't have the data necessary to make an informed decision. One alternative approach is to use a solution like Bearer's active remediations to define max timeout values for specific types of requests. For example, you can set all third-party APIs that you know are further away to a higher timeout than those with local servers. This allows you to manage these limits separate from your codebase, which makes experimentation easier. It also makes adapting to unexpected network conditions easier.&lt;/p&gt;

&lt;p&gt;Whatever you do, don't neglect timeouts. Don't assume the defaults are safe and don't assume the network is reliable. Keep your applications resilient against problems that third-party APIs may experience and your users will never know when major issues happen. If you want to learn more about Bearer and our active remediation features, give our in-app agent's a try today.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to Make Learning Programming Effective and Enjoyable</title>
      <dc:creator>Aditya Mangal</dc:creator>
      <pubDate>Mon, 30 Nov 2020 17:49:17 +0000</pubDate>
      <link>https://forem.com/adityamangal1/how-to-make-learning-programming-effective-and-enjoyable-3514</link>
      <guid>https://forem.com/adityamangal1/how-to-make-learning-programming-effective-and-enjoyable-3514</guid>
      <description>&lt;p&gt;When you start to learn to code, you typically start with learning a programming language. You learn about variables, functions, statements, loops, control-flow, etc. You may follow tutorials, typing things into a browser or a code editor, and learning syntax and how to make the code run and do something. You may watch online courses, videos, etc. And at least some of the times things seem to work out as advertised and you feel awesome for making the computer do things (controlling it with your mind).&lt;/p&gt;

&lt;p&gt;Then you decide to work on your own projects to implement your ideas or to build a 'portfolio' to demonstrate what you know. When you start with a blank (IDE) screen you may feel like you don't know where to start. And this is true for new programmers but also to experienced programmers learning a new tech.&lt;/p&gt;

&lt;p&gt;Here's a problem. We often confound two different types of learning - tactical learning and conceptual learning. We often jump straight to the tactical learning and forget to ask questions like 'why' and some of the tech tutorials fail to offer context, bigger picture before diving into the 'how'&lt;/p&gt;

&lt;p&gt;How To Separate Tactical and Conceptual Learning&lt;br&gt;
Programming consists of two types of learning that need to happen in parallel for it to be effective and enjoyable — tactical and conceptual.&lt;/p&gt;

&lt;p&gt;Tactical learning is about syntax, about what to type, where to type, and how to get the code to do something.&lt;/p&gt;

&lt;p&gt;Conceptual learning is about what the Things are, how they’re connected, why things are the way they are, and most importantly, how everything fits together. This book is about conceptual learning.&lt;/p&gt;

&lt;p&gt;When learning new tech, seek out conceptual resources that provide context and explain things like - what are good use cases, what is not a good use case, how this tech fits into the existing model.&lt;/p&gt;

&lt;p&gt;Do both tactical learning and conceptual learning in parallel. Interleaving the two until you're making progress making things happen on screen but also connecting the dots in your mind. One way to test your conceptual learning is to pose and answer basic questions to yourself or better explain the concepts to someone else, in plain language (without jargon). If you can do that, there is a good chance you've actually understood.&lt;/p&gt;

&lt;p&gt;What do you think? How do you approach conceptual learning?&lt;/p&gt;

&lt;p&gt;P.S. If you want to read about API, MVC, OOP, SQL, JSON, DOM, and other web programming terms in a conceptual way, I wrote 16 chapters and bundled into a nice PDF (You can get it here connect the dots and start reading for free). I've been mentoring programmers and I wrote this based on common questions from students.&lt;/p&gt;

&lt;p&gt;I'm also learning something. Promoting and marketing my work, which is completely new to me as a developer. This quote (from Seth Godin) helped me with my mindset:&lt;/p&gt;

&lt;p&gt;"A good idea isn’t worth much if it doesn’t reach people who can benefit from it"&lt;/p&gt;

&lt;p&gt;This is my attempt to reach the people that can benefit.&lt;/p&gt;

&lt;p&gt;P.P.S. If you're in a country where stripe doesn't work or dollar value is different, send me an email with the subject "I want the book" and I'll take care of it, no explanation needed (my email is in the footer of the page)&lt;/p&gt;

</description>
      <category>programming</category>
      <category>codenewbie</category>
      <category>beginners</category>
    </item>
    <item>
      <title>COMPLETED THE HACKTOBERFEST 🤩</title>
      <dc:creator>Aditya Mangal</dc:creator>
      <pubDate>Sat, 07 Nov 2020 05:22:56 +0000</pubDate>
      <link>https://forem.com/adityamangal1/completed-the-hacktoberfest-4025</link>
      <guid>https://forem.com/adityamangal1/completed-the-hacktoberfest-4025</guid>
      <description>&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%2Fi%2Fixx2zq7d6g3hbvaaavc4.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%2Fi%2Fixx2zq7d6g3hbvaaavc4.png" alt="Alt Text" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hey, Everyone myself Aditya Mangal, and I joined DEV to explore and contribute to open source technologies.&lt;br&gt;
I have participated in Hacktoberfest and learn new things able contributing to open-source platform and to get ideas from different developers and technic to solve the problems&lt;/p&gt;

&lt;p&gt;I have liked this concept of the Hacktoberfest program to solve the problems on the open-source platforms and also got the opportunity to learn from other's mistakes.&lt;/p&gt;

&lt;p&gt;Overall, I had a great experience. I am a beginner I was able to learn new things, yes I will participate again This helped me learn the uses of GitHub and understand how to contribute to open-source projects. It was a good experience and interaction with open source contributors. My next step is that I look forward to contributing more towards opensource.&lt;/p&gt;

&lt;p&gt;Thanks to DigitalOcean!&lt;/p&gt;

</description>
      <category>hacktoberfest</category>
      <category>github</category>
      <category>git</category>
      <category>opensource</category>
    </item>
    <item>
      <title>HACKTOBERFEST 2020 ❤️🤩</title>
      <dc:creator>Aditya Mangal</dc:creator>
      <pubDate>Wed, 04 Nov 2020 05:48:42 +0000</pubDate>
      <link>https://forem.com/adityamangal1/hacktoberfest-2020-17fg</link>
      <guid>https://forem.com/adityamangal1/hacktoberfest-2020-17fg</guid>
      <description>&lt;p&gt;It was a great experience to participate in such a fest and for beginners, this was an amazing platform like for me and other beginners it was a next-level inspiration also 😀💯.&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%2Fi%2F98zs2dtq2tisfw051fs7.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%2Fi%2F98zs2dtq2tisfw051fs7.png" alt="Alt Text" width="800" height="450"&gt;&lt;/a&gt; 🚀&lt;/p&gt;

</description>
      <category>hacktoberfest</category>
      <category>github</category>
    </item>
  </channel>
</rss>
