<?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: Ashis Chakraborty</title>
    <description>The latest articles on DEV Community by Ashis Chakraborty (@ashchk).</description>
    <link>https://dev.to/ashchk</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%2F435482%2Fc63a7c8d-902f-4941-bf50-30bf0e595e56.jpeg</url>
      <title>DEV Community: Ashis Chakraborty</title>
      <link>https://dev.to/ashchk</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ashchk"/>
    <language>en</language>
    <item>
      <title>Ever tried comparing a basketball to a watermelon...??!!</title>
      <dc:creator>Ashis Chakraborty</dc:creator>
      <pubDate>Fri, 25 Jul 2025 16:05:32 +0000</pubDate>
      <link>https://dev.to/ashchk/ever-tried-comparing-a-basketball-to-a-watermelon-23be</link>
      <guid>https://dev.to/ashchk/ever-tried-comparing-a-basketball-to-a-watermelon-23be</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/ashchk/why-feature-scaling-matters-in-ml-264m" class="crayons-story__hidden-navigation-link"&gt;Why Feature Scaling Matters in ML?!&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/ashchk" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F435482%2Fc63a7c8d-902f-4941-bf50-30bf0e595e56.jpeg" alt="ashchk profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/ashchk" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Ashis Chakraborty
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Ashis Chakraborty
                
              
              &lt;div id="story-author-preview-content-2722858" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/ashchk" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F435482%2Fc63a7c8d-902f-4941-bf50-30bf0e595e56.jpeg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Ashis Chakraborty&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/ashchk/why-feature-scaling-matters-in-ml-264m" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jul 25 '25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/ashchk/why-feature-scaling-matters-in-ml-264m" id="article-link-2722858"&gt;
          Why Feature Scaling Matters in ML?!
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/featurescaling"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;featurescaling&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/machinelearning"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;machinelearning&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/datascience"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;datascience&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/ashchk/why-feature-scaling-matters-in-ml-264m" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt; reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/ashchk/why-feature-scaling-matters-in-ml-264m#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>featurescaling</category>
      <category>machinelearning</category>
      <category>ai</category>
      <category>datascience</category>
    </item>
    <item>
      <title>Why Feature Scaling Matters in ML?!</title>
      <dc:creator>Ashis Chakraborty</dc:creator>
      <pubDate>Fri, 25 Jul 2025 16:02:08 +0000</pubDate>
      <link>https://dev.to/ashchk/why-feature-scaling-matters-in-ml-264m</link>
      <guid>https://dev.to/ashchk/why-feature-scaling-matters-in-ml-264m</guid>
      <description>&lt;p&gt;Ever tried comparing a basketball to a watermelon…?! That's what your machine learning model feels without feature scaling!&lt;br&gt;
If you feed your AI model age in years and net worth in millions.&lt;br&gt;
One feature overpowers the other. The result? Terrible predictions.&lt;br&gt;
No balance. No fairness.&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%2Frfqtu9q2pwdf3mty9htp.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%2Frfqtu9q2pwdf3mty9htp.png" alt="T-shirt colors" width="520" height="777"&gt;&lt;/a&gt;&lt;br&gt;Fig. ML model without feature scaling
  &lt;/p&gt;

&lt;p&gt;Imagine a dataset with two features:&lt;br&gt;
Age: 20 to 70&lt;br&gt;
Income: 15,000 to 2,500,000&lt;/p&gt;

&lt;p&gt;Without scaling, income will dominate distance-based decisions just because of its larger numbers. Now, incase of a insurance premium calculation, income may become deciding factor instead of age.&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%2Frhcy2893mdcp4bafg0s0.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%2Frhcy2893mdcp4bafg0s0.png" alt="T-shirt colors" width="527" height="815"&gt;&lt;/a&gt;&lt;br&gt;Fig. Wrong prediction because of net worth's high value
  &lt;/p&gt;

&lt;h2&gt;
  
  
  Feature Scaling:
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;According to wiki: &lt;br&gt;
Feature scaling is a method used to normalize the range of independent variables or features of data.&lt;br&gt;
Feature scaling is a data preprocessing technique that transforms the values of numeric features into a similar scale or range. It is done typically so that no one attribute dominates others due to its high numeric value.&lt;/p&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%2F3jpwdwgufou4xnu15gmd.png" alt="T-shirt colors" width="409" height="205"&gt;Fig. Scaling using Age divided by 100 and net worth by 100,000 in the previous figure
  

&lt;/blockquote&gt;

&lt;p&gt;It makes sure all the features are in the same range numerically so that they can be compared without much external factors. A feature is a characteristic or attribute of your data.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why is Feature Scaling Important ?
&lt;/h2&gt;

&lt;p&gt;Many ML models - especially those based on distance calculations or gradient descent - are sensitive to the scale of data. Without scaling:&lt;br&gt;
Attributes with larger values can unfairly influence the model.&lt;br&gt;
Models like K-Nearest Neighbors (KNN) or Support Vector Machines (SVM) can give wrong predictions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Feature scaling Methods:
&lt;/h2&gt;

&lt;p&gt;We can rescale all features to the same range - like 0 to 1 or -1 to 1 - &lt;br&gt;
so every input gets equal importance.&lt;br&gt;
Two common methods:&lt;/p&gt;

&lt;h2&gt;
  
  
  i) Standardization -
&lt;/h2&gt;

&lt;p&gt; &lt;br&gt;
Centers data around zero. Data can be negative or positive. Formula for standardization is:&lt;br&gt;
st. value = (original value - mean of the feature) / standard deviation of the feature&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%2Fzb42msinfhtqyf0ja3qi.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%2Fzb42msinfhtqyf0ja3qi.png" alt="T-shirt colors" width="476" height="249"&gt;&lt;/a&gt;&lt;br&gt;Fig. Apply Standaradization on data
  &lt;/p&gt;

&lt;h2&gt;
  
  
  ii) Normalization -
&lt;/h2&gt;

&lt;p&gt; &lt;br&gt;
Compress values between 0 and 1. It is often called Min-Max Scaling. In this feature scaling technique it resizes all values in a feature to a fixed range, typically between 0 and 1.&lt;br&gt;
norm. value = (original value - min value of the feature) / (max value of the feature - min value of the feature)&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%2F15fc6hkbpocjacxpc78p.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%2F15fc6hkbpocjacxpc78p.png" alt="T-shirt colors" width="480" height="249"&gt;&lt;/a&gt;&lt;br&gt;Fig. Apply Normalization on data
  &lt;/p&gt;

&lt;p&gt;You may check this video &lt;a href="https://www.youtube.com/shorts/edZqfQ1kKs8" rel="noopener noreferrer"&gt;link&lt;/a&gt; for more detail.&lt;/p&gt;

</description>
      <category>featurescaling</category>
      <category>machinelearning</category>
      <category>ai</category>
      <category>datascience</category>
    </item>
    <item>
      <title>Find Largest Value in Each Tree Row</title>
      <dc:creator>Ashis Chakraborty</dc:creator>
      <pubDate>Wed, 25 Dec 2024 16:50:47 +0000</pubDate>
      <link>https://dev.to/ashchk/leetcode-daily-challenge-find-largest-value-in-each-tree-row-15l1</link>
      <guid>https://dev.to/ashchk/leetcode-daily-challenge-find-largest-value-in-each-tree-row-15l1</guid>
      <description>&lt;p&gt;Leetcode daily challenge: 25 Dec,2024.&lt;br&gt;
&lt;a href="https://leetcode.com/problems/find-largest-value-in-each-tree-row/" rel="noopener noreferrer"&gt;Problem link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;BFS is perfect when we are dealing specifically with rows/levels of a binary tree. With BFS, we handle one row of the tree at a time.&lt;/p&gt;

&lt;p&gt;Here, we need to find the maximum value in each row. We can simply perform a BFS and for each row, keep track of the maximum value we have seen so far.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;void bfs( TreeNode* node, vector&amp;lt;int&amp;gt;&amp;amp; result){

        queue&amp;lt;TreeNode *&amp;gt;Q;
        Q.push(node);

        int qSize = Q.size();
        int count =0;

        while(!Q.empty()){
            count = 0;
            priority_queue&amp;lt;int&amp;gt;heap;
            qSize = Q.size();

            while(count&amp;lt;qSize){// for each level/row find max value
                count++;
                TreeNode* temp = Q.front();
                Q.pop();
                heap.push(temp-&amp;gt;val);

                if(temp-&amp;gt;left != NULL)
                Q.push(temp-&amp;gt;left);

                if(temp-&amp;gt;right != NULL)
                Q.push(temp-&amp;gt;right);

            }//while ends

            if(heap.size())
            result.push_back(heap.top());
        }
    }
    vector&amp;lt;int&amp;gt; largestValues(TreeNode* root) {
        if(root == NULL)
        return {};

        vector&amp;lt;int&amp;gt;result;
        bfs(root, result);///call bfs

        return result;
    }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=dvTYOqfEGjc&amp;amp;t=19s" rel="noopener noreferrer"&gt;Video link&lt;/a&gt; with detailed explanation will be found here.&lt;/p&gt;

</description>
      <category>leetcode</category>
      <category>bfs</category>
      <category>youtubevideo</category>
      <category>code</category>
    </item>
    <item>
      <title>Steps to solve Recursive problems</title>
      <dc:creator>Ashis Chakraborty</dc:creator>
      <pubDate>Mon, 13 May 2024 18:37:45 +0000</pubDate>
      <link>https://dev.to/ashchk/steps-to-solve-recursive-problems-o76</link>
      <guid>https://dev.to/ashchk/steps-to-solve-recursive-problems-o76</guid>
      <description>&lt;p&gt;Recursion is the technique of a function calling itself repeatedly till the base condition is satisfied.&lt;br&gt;
It reduces the length of our code. Recursion is helpful for solving Graph Traversal and Dynamic programming..types of problems.&lt;/p&gt;
&lt;h2&gt;
  
  
  5 steps to solve a problem using recursion:
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Problem Statement:&lt;/strong&gt;&lt;/em&gt; Given an input n. Calculate the sum of all the integers from 1 up to n. Solve it using a recursive function.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1. Find the base case&lt;/strong&gt; The base case is the condition, which tells the function when to stop.&lt;br&gt;
When there is only 1 element, sum is 1. In our example problem. base case is when n = 1, answer = 1.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2. Write some example cases with consecutive inputs (preferably more than 5 example)&lt;/strong&gt;&lt;br&gt;
n = 5; answer = 1 + 2 + 3 + 4 + 5 = 15&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3. Find a pattern between two consecutive answers&lt;/strong&gt;&lt;br&gt;
n = 4; sum(4) = 1 + 2 + 3 + 4 =  10&lt;br&gt;
n = 5; sum(5) = 1 + 2 + 3 + 4 + 5 =  15 = sum(4) + 5&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4. Generalize a pattern in function terms&lt;/strong&gt;&lt;br&gt;
n = 5; sum(5) = 1 + 2 + 3 + 4 + 5 =  15 = sum(n-1) + n&lt;br&gt;
n = 4; sum(4) = 1 + 2 + 3 + 4 =  10 = sum(n-1) + n&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5. Write code using recursion, with base case&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int  sum ( int n ) {
           if( n == 1)
             return 1;
           return n+ sum(n-1);                    
 }

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;For more details  you may check this video:&lt;br&gt;
&lt;/p&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
      &lt;div class="c-embed__cover"&gt;
        &lt;a href="https://www.youtube.com/watch?si=3e0WKMVnInAW62CP&amp;amp;v=LYPfHvagTIc&amp;amp;feature=youtu.be" class="c-link s:max-w-50 align-middle" rel="noopener noreferrer"&gt;
          &lt;img alt="" src="https://res.cloudinary.com/practicaldev/image/fetch/s--cu_dGxr7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.ytimg.com/vi/LYPfHvagTIc/maxresdefault.jpg" height="450" class="m-0" width="800"&gt;
        &lt;/a&gt;
      &lt;/div&gt;
    &lt;div class="c-embed__body"&gt;
      &lt;h2 class="fs-xl lh-tight"&gt;
        &lt;a href="https://www.youtube.com/watch?si=3e0WKMVnInAW62CP&amp;amp;v=LYPfHvagTIc&amp;amp;feature=youtu.be" rel="noopener noreferrer" class="c-link"&gt;
          Solve Recursion in Five Steps | @designUrThought - YouTube
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;p class="truncate-at-3"&gt;
          Welcome to @designUrThought  for an in-depth exploration of recursion, a fundamental concept in computer science and programming! Whether you're a coding nov...
        &lt;/p&gt;
      &lt;div class="color-secondary fs-s flex items-center"&gt;
          &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://res.cloudinary.com/practicaldev/image/fetch/s--Nt27TRXf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.youtube.com/s/desktop/3725d26e/img/favicon.ico" width="16" height="16"&gt;
        youtube.com
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;



</description>
      <category>recursion</category>
      <category>dp</category>
      <category>tutorial</category>
      <category>recursivefunction</category>
    </item>
    <item>
      <title>Designing a Rate Limiter</title>
      <dc:creator>Ashis Chakraborty</dc:creator>
      <pubDate>Mon, 09 Aug 2021 19:35:30 +0000</pubDate>
      <link>https://dev.to/ashchk/designing-a-rate-limiter-2ka6</link>
      <guid>https://dev.to/ashchk/designing-a-rate-limiter-2ka6</guid>
      <description>&lt;p&gt;&lt;a href="https://towardsdatascience.com/designing-a-rate-limiter-6351bd8762c6?source=rss-577e2119c7f2------2"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xb61fAnv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2600/0%2Ag9mqvv0jpR7XbbB2" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;How do you design a rate limiter service?&lt;/p&gt;

&lt;p&gt;Rate limiting is a simple concept to grab, but it’s vital for large-scale systems. It is used for security purposes as well as performance improvement. For example, a service can serve a limited number of requests per second. However, if a service is receiving a huge number of requests at a time, it might be too much for the server to handle. In that case, even the server might be shut down. To handle this type of problem, we would need some kind of limiting mechanism that would allow only a certain number of requests to the service.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why do Need Rate Limiting?
&lt;/h3&gt;

&lt;p&gt;Rate limiting is needed to protect a system from being brought down by hackers. To know the importance of rate-limiting, we have to know about the DOS attack.&lt;br&gt;
The denial of service attack, which is mostly known as a DOS attack, is when hackers try to flood a system with many requests within a short period of time to shut the system down. Because a server has a limit of how many requests it can serve within a certain period of time. So, the system can’t handle the floods of requests properly; it can not handle them properly.&lt;br&gt;
Rate limiting can prevent that from happening as it protects the system from being flooded with intentional unnecessary requests. After a threshold value, the system returns an error.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sliding Window Algorithm:
&lt;/h3&gt;

&lt;p&gt;If we keep track of each request per user in a time frame, we may store the timestamp of each request in a Sorted Set in our ‘value’ field of hash-table. But, it would take a lot of memory. So, we can use a sliding window with the counters. Now, consider this if we keep track of request counts for each user using multiple fixed time windows.&lt;br&gt;
For example, if we have an hourly window, when we receive a new request to calculate the limit, we can count requests each minute and calculate the sum of all counters in the past hour. This would reduce the memory we need for the set.&lt;br&gt;
Suppose we rate-limit at 500 requests per hour with an additional limit of 10 requests per minute. This means that the client has exceeded the rate limit when the sum of the counters in the past hour exceeds the limit request(500).&lt;br&gt;
For a smaller time frame, the client can’t send more than ten requests per minute. This would be a hybrid and reasonable consideration as we may think that none of the real users would send such frequent requests. Even if they do, they will get success with retries since their limits get reset every minute.&lt;br&gt;
&lt;a href="https://towardsdatascience.com/designing-a-rate-limiter-6351bd8762c6?source=rss-577e2119c7f2------2"&gt;Continue reading on Towards Data Science »&lt;/a&gt;&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>technology</category>
      <category>systemdesignintervie</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>System Design Analysis of Instagram</title>
      <dc:creator>Ashis Chakraborty</dc:creator>
      <pubDate>Mon, 22 Mar 2021 17:40:16 +0000</pubDate>
      <link>https://dev.to/ashchk/system-design-analysis-of-instagram-4nn8</link>
      <guid>https://dev.to/ashchk/system-design-analysis-of-instagram-4nn8</guid>
      <description>&lt;p&gt;&lt;a href="https://towardsdatascience.com/system-design-analysis-of-instagram-51cd25093971?source=rss-577e2119c7f2------2"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GjoGdURc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2600/0%2Ayc1ZHCSR6Wl-ylON" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;How do you design a photo-sharing service like Instagram?&lt;/p&gt;

&lt;p&gt;Performance, availability, consistency, scalability, reliability, etc., are important quality requirements in system design. We need to analyze these requirements for the system.&lt;/p&gt;

&lt;p&gt;As a system designer, we might want to have a design that will be highly available, very high performant, top-notch consistency in the system, highly secured system, etc. But it’s not possible to achieve all these targets in one system. We need to have requirements that will work as restrictions on the design of a system. So, let’s define our NFRs:&lt;br&gt;
Our system should be highly available. In the case of any web service, it’s a mandatory requirement. Home page generation latency should be at most 200 msec. If the home page generation takes too long, users will be dissatisfied, which is not acceptable.&lt;br&gt;
As we choose for the system’s high availability, we should keep in mind that may hamper consistency across the system. The system should also be highly reliable, which means any uploaded photo or video by users should never be lost.&lt;br&gt;
In this system, photos search and views would be more than uploading. As the system would have more read-heavy operations, we will focus on building a system that can retrieve photos quickly. While viewing photos, latency needs to be as low as possible.&lt;/p&gt;

&lt;h3&gt;
  
  
  Data flow:
&lt;/h3&gt;

&lt;p&gt;If you are not sure where to start in a system design, always start with the data storing system. It will help to keep your focus aligning with the requirements of the system.&lt;br&gt;
We need to support two scenarios at a high-level, one is to upload photos, and another is to view/search photos. Our system would need some object storage servers to store photos and some database servers to store metadata information.&lt;br&gt;
Defining the database schema is the first phase of understanding the data flow between different components of the system. We need to store user profile data like the follower list, uploaded photos by users. There should be a table that stores all data regarding photos.&lt;/p&gt;

&lt;h3&gt;
  
  
  Load balancer:
&lt;/h3&gt;

&lt;p&gt;As we use multiple copies of a server, we need to distribute the user traffic to those servers efficiently. The load balancer will distribute the user requests to various servers uniformly. We can use IP-based routing for the Newsfeed service, as the same user requests go to the same server, and caching can be used to get a faster response.&lt;br&gt;
If there are no such requirements, round-robin should be a simple and good solution for the server selection strategy of load balancers.&lt;/p&gt;

&lt;h3&gt;
  
  
  API GateWay:
&lt;/h3&gt;

&lt;p&gt;We have a lot of services for our system. Some will generate newsfeed, some help storing photos, some viewing the photos, etc. We need to have a single entry point for all clients. This entry point is API Gateway.&lt;br&gt;
It will handle all the requests by sending them to multiple services. And for some requests, it will just route to the specific server. The API gateway may also implement security, such as verifying the client’s permission to perform the request.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pagination:
&lt;/h3&gt;

&lt;p&gt;The newsfeed of users can be a large response. So, we may design the API to return a single page of the feed. Let’s say we are sending at most 50 posts every time a feed request is made.&lt;br&gt;
The user may send another request for the next page of feeds for the next time. And within that period, if there is not enough feed, Newsfeed may generate the next page. This technique is called pagination.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://towardsdatascience.com/system-design-analysis-of-instagram-51cd25093971?source=rss-577e2119c7f2------2"&gt;Continue reading on Towards Data Science for detailed design analysis»&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>softwareengineering</category>
      <category>systemdesignintervie</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Designing Notification System with Message Queues</title>
      <dc:creator>Ashis Chakraborty</dc:creator>
      <pubDate>Mon, 15 Feb 2021 15:29:34 +0000</pubDate>
      <link>https://dev.to/ashchk/designing-notification-system-with-message-queues-1la4</link>
      <guid>https://dev.to/ashchk/designing-notification-system-with-message-queues-1la4</guid>
      <description>&lt;p&gt;&lt;a href="https://towardsdatascience.com/designing-notification-system-with-message-queues-c30a2c9046de?source=rss-577e2119c7f2------2" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2600%2F0%2AXKXmKrE1pwboGmaw"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What is Message Queue?
&lt;/h3&gt;

&lt;p&gt;From the name itself, you can understand it is a queue. But it’s a particular type of queue. It routes messages from the sender to the receiver.&lt;/p&gt;

&lt;p&gt;It is a queue; it follows the FIFO (First In First Out) policy. It means the message that is sent first will be delivered first. In some cases, we can add priority to a message, which will make it a priority queue.&lt;/p&gt;

&lt;p&gt;So, where do we use a message queue? Say we are designing an email server. The sender sends an email, but the receiver is offline. The mail server needs to temporarily store the mail until the recipient comes online and gets the message.&lt;/p&gt;

&lt;p&gt;Message queues can also be used for implementing notification systems. Message queues also allow us to run background processes, tasks.&lt;/p&gt;

&lt;h3&gt;
  
  
  Properties Of A Message Queue
&lt;/h3&gt;

&lt;p&gt;Message queues are asynchronous in style. Asynchronous behavior allows the components(sender and receiver) to communicate with each other in the background.&lt;/p&gt;

&lt;p&gt;An important property of message queues is that they give temporary storage for storing messages until they are processed &amp;amp; received by the receiver. This is the property that makes the message queue an important component while designing a system.&lt;br&gt;
We can add priority to the messages in case of the requirement of the system. &lt;/p&gt;

&lt;p&gt;Other important message queuing properties include message acknowledgments when a message is received successfully, retrying for failed messages in case of failure scenarios.&lt;/p&gt;

&lt;p&gt;We now need to look into a popular messaging model widely used in the industry, the publish-subscribe message routing model.&lt;/p&gt;

&lt;h3&gt;
  
  
  Publish-Subscribe Pattern
&lt;/h3&gt;

&lt;p&gt;A Publish-Subscribe model is where many consumers receive the same message sent from a single or many sources.&lt;/p&gt;

&lt;p&gt;Current days, we often subscribe to various topics on websites for being notified of the new updates on any particular interest. Be it from Facebook groups, Livescore for games, etc. We will discuss pub-sub in another article. For now, we should know, message queues have components that push the messages to the queues based on the message type and the rules which are set.&lt;br&gt;
The exchange component will push the message to the queue, and the consumers will receive the message. The relationship between exchange and the message queue is known as Binding.&lt;/p&gt;

&lt;p&gt;Facebook newsfeed notification system with the message queue&lt;br&gt;
In the latter part of this article, we will discuss how notification systems and real-time feeds are implemented using message queues.&lt;/p&gt;

&lt;p&gt;For more detailed implementation, check &lt;a href="https://towardsdatascience.com/designing-notification-system-with-message-queues-c30a2c9046de?sk=937b77db768eacc200af603914738a7f" rel="noopener noreferrer"&gt;this link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://towardsdatascience.com/designing-notification-system-with-message-queues-c30a2c9046de?source=rss-577e2119c7f2------2" rel="noopener noreferrer"&gt;The main article is published in Towards Data Science »&lt;/a&gt;&lt;/p&gt;

</description>
      <category>technology</category>
      <category>architecture</category>
      <category>gettingstarted</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>System Design Basics: Getting started with Caching</title>
      <dc:creator>Ashis Chakraborty</dc:creator>
      <pubDate>Sat, 16 Jan 2021 18:12:44 +0000</pubDate>
      <link>https://dev.to/ashchk/system-design-basics-getting-started-with-caching-1h0i</link>
      <guid>https://dev.to/ashchk/system-design-basics-getting-started-with-caching-1h0i</guid>
      <description>&lt;p&gt;&lt;a href="https://towardsdatascience.com/system-design-basics-getting-started-with-caching-c2c3e934064a?source=rss-577e2119c7f2------2"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wQKVKjE1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2600/0%2A1EzBZAdG1HfYaJOX" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Caching is an essential topic of system design. It is one of the essential techniques of system design. In almost all the systems, we might need to use caching. It is a technique used for the performance improvement of a system.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Cache?
&lt;/h2&gt;

&lt;p&gt;The cache is a piece of hardware or software that stores data that can be retrieved faster than other data sources. Caches are generally used to keep track of frequent responses to user requests.&lt;/p&gt;

&lt;p&gt;We need to increase the number of cache hits and decrease the cache miss rate for performance improvement. &lt;/p&gt;

&lt;h2&gt;
  
  
  Cache Invalidation:
&lt;/h2&gt;

&lt;p&gt;In the case of data modification in DB, if the cache contains the previous data, then that is called stale data. So, we need to have a technique for invalidation of cache data. Else, the application will show inconsistent behavior. As cache has limited memory, we need to update data stored in it. This process is known as Cache Invalidation. Some techniques for cache invalidation are Write-through Cache, Write-back Cache, Cache-Aside, Read-Through Cache, etc.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cache Eviction policy:
&lt;/h2&gt;

&lt;p&gt;A cache is a backup of primary data storage; It has a limited amount of space. We may need to remove them from the cache. These are called eviction policies. Some well-known policies are First In First Out, Last In First Out, Least Recently Used(LRU), Least Frequently Used (LFU), etc. According to the requirements, we have to select an eviction policy for the system.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://towardsdatascience.com/system-design-basics-getting-started-with-caching-c2c3e934064a?source=rss-577e2119c7f2------2"&gt;Continue reading on Towards Data Science »&lt;/a&gt;&lt;br&gt;
If you don't have a medium account check &lt;a href="https://towardsdatascience.com/system-design-basics-getting-started-with-caching-c2c3e934064a?sk=dd4e6d96a768481d68e3b0bd80227f1f"&gt;this link&lt;/a&gt;&lt;/p&gt;

</description>
      <category>systemdesign</category>
      <category>softwareengineering</category>
      <category>programming</category>
      <category>technology</category>
    </item>
    <item>
      <title>System Design Basics: Getting Started With the Client-Server Architecture</title>
      <dc:creator>Ashis Chakraborty</dc:creator>
      <pubDate>Tue, 22 Dec 2020 13:02:58 +0000</pubDate>
      <link>https://dev.to/ashchk/system-design-basics-getting-started-with-the-client-server-architecture-b7n</link>
      <guid>https://dev.to/ashchk/system-design-basics-getting-started-with-the-client-server-architecture-b7n</guid>
      <description>&lt;p&gt;&lt;a href="https://towardsdatascience.com/system-design-basics-getting-started-with-the-client-server-architecture-b02f9c9daae8?source=rss-577e2119c7f2------2" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2600%2F0%2AvfToqLq03qmw45MG"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Client-Server architecture
&lt;/h3&gt;

&lt;p&gt;Client/server architecture is an important concept for system design newbies. You may think it like the foundation of how the modern internet works. Nowadays, digital devices like computers, laptops, mobile devices are everywhere. Client-server architecture is the foundation of knowing how these computers talk to one another.&lt;/p&gt;

&lt;p&gt;What do client and server mean in the client-server model? For simplification, we may say that a client is a machine that requests some data or service. And the server returns some service or data to the client. Servers listen to the incoming network requests. So, the client-server model is a modern system designed in such a way that clients request data or service from the server, and the servers provide data or service to the client.&lt;/p&gt;

&lt;p&gt;Now we may check how this architecture works with an example. For example, what happens when we type &lt;a href="http://www.medium.com" rel="noopener noreferrer"&gt;www.medium.com&lt;/a&gt; in our browser and press the enter button. The client device, our own laptop or computer, does not really know what the medium.com URL means. The browser needs to communicate with the server machine where the medium URL is located.&lt;/p&gt;

&lt;p&gt;The users who type a specific URL in this system are clients. The server provides information through the internet. So, these computers can be in different parts of the world.&lt;/p&gt;

&lt;p&gt;A specific set of rules are needed for the interaction of two systems. The most popular are the HTTP and HTTPS.&lt;/p&gt;

&lt;p&gt;The client computers request the required information from the server. That could be in any structure of formatted data. Mainly implemented and popular formats are in XML and JSON. Server and client request and respond mostly using these formats.&lt;/p&gt;

&lt;p&gt;Now, we are going a bit into detail into what happens after the user types a URL in a browser. How does the browser know where the server is located? The browser performs a DNS query.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://towardsdatascience.com/system-design-basics-getting-started-with-the-client-server-architecture-b02f9c9daae8?source=rss-577e2119c7f2------2" rel="noopener noreferrer"&gt;Continue reading on Towards Data Science »&lt;/a&gt;&lt;br&gt;
If you don't have a medium account check &lt;a href="https://towardsdatascience.com/system-design-basics-getting-started-with-the-client-server-architecture-b02f9c9daae8?sk=d186470a4df5355b9f405010e8c4150e" rel="noopener noreferrer"&gt;this link&lt;/a&gt;&lt;/p&gt;

</description>
      <category>technology</category>
      <category>programming</category>
      <category>systemdesignintervie</category>
      <category>architecture</category>
    </item>
    <item>
      <title>System Design Basics: Load balancer 101</title>
      <dc:creator>Ashis Chakraborty</dc:creator>
      <pubDate>Fri, 06 Nov 2020 00:17:16 +0000</pubDate>
      <link>https://dev.to/ashchk/system-design-basics-load-balancer-101-4d2a</link>
      <guid>https://dev.to/ashchk/system-design-basics-load-balancer-101-4d2a</guid>
      <description>&lt;p&gt;&lt;a href="https://codeburst.io/system-design-basics-load-balancer-101-adc4f602d08f?source=rss-577e2119c7f2------2" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2600%2F0%2AYIuEDe-yXagGc-bo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Getting started with Load balancer
&lt;/h4&gt;

&lt;p&gt;The load balancer is a server that usually sits between client devices and a set of servers and distributes client requests across servers. Load balancers can be placed in various places of a system. The loads on the servers need to be distributed in a balanced way; that’s why they are called a load balancer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Where do we use a Load balancer?
&lt;/h3&gt;

&lt;p&gt;Typically, we can put a load balancer between the client and the server to handle incoming network requests. Another very normal use of an LB is for distributing the network traffic across backend servers. A load balancer is used to reduce individual server load. And it prevents a single point of failure for any server. So, it improves the overall availability and responsiveness of the system. We may add LBs at various places in the system. Especially where we have multiple resources like servers or database or cache.&lt;/p&gt;

&lt;h3&gt;
  
  
  Load Balancing Techniques:
&lt;/h3&gt;

&lt;p&gt;There are various types of load balancing methods. Every type uses different algorithms for different purposes. These techniques are actually different types of strategy for server-selection. Here is a list of load balancing techniques:&lt;/p&gt;

&lt;h4&gt;
  
  
  Random selection:
&lt;/h4&gt;

&lt;p&gt;In this method, the servers are selected randomly. There are no other factors calculated in the selection of the server. There might be a problem with some of the servers sitting idle, and some are overloaded with requests in this technique.&lt;/p&gt;

&lt;h4&gt;
  
  
  Round Robin:
&lt;/h4&gt;

&lt;p&gt;This is one of the most common load balancing methods. It’s a method where the LB redirects incoming traffic between a set of servers in a certain order. Let's say, there is a list of five servers; the first request goes to server 1, the second one goes to server 2, and so on. When LB reaches the end of the list, it starts over at the beginning, from server number 1 again. It almost evenly balances the traffic between the servers. But in this method, server specifications are not considered. The servers need to be of equal specification for this method to be useful. Otherwise, a low processing powered server may have the same load as a high processing capacity server.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codeburst.io/system-design-basics-load-balancer-101-adc4f602d08f?source=rss-577e2119c7f2------2" rel="noopener noreferrer"&gt;Continue reading on codeburst »&lt;/a&gt;&lt;br&gt;
If you don't have medium account check &lt;a href="https://codeburst.io/system-design-basics-load-balancer-101-adc4f602d08f?sk=795ff2f70ce8ded089cdbec0e3332e5b" rel="noopener noreferrer"&gt;this link&lt;/a&gt;&lt;/p&gt;

</description>
      <category>systemdesign</category>
      <category>softwareengineering</category>
      <category>architecture</category>
      <category>technology</category>
    </item>
    <item>
      <title>System Design 101</title>
      <dc:creator>Ashis Chakraborty</dc:creator>
      <pubDate>Wed, 07 Oct 2020 13:56:59 +0000</pubDate>
      <link>https://dev.to/ashchk/system-design-101-31do</link>
      <guid>https://dev.to/ashchk/system-design-101-31do</guid>
      <description>&lt;p&gt;&lt;a href="https://towardsdatascience.com/system-design-101-b8f15162ef7c?source=rss-577e2119c7f2------2"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tCL63Cr_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2600/0%2AK3dJOJ5kDYXsGQcD" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step by step guide on designing a system&lt;br&gt;
System design is one of the most important and feared aspects of software engineering. One of the main reasons was that everybody seems to have a different approach; there is no clear step by step guidelines.&lt;/p&gt;

&lt;p&gt;The struggle of software engineers with system design can be divided into two parts:&lt;/p&gt;

&lt;h4&gt;
  
  
  1) The system design process is unstructured by nature; there is no proper answer to say binary right or wrong.
&lt;/h4&gt;

&lt;h4&gt;
  
  
  2) Software developers lack in experience developing complex and large-scale systems.
&lt;/h4&gt;

&lt;p&gt;In this article, we’ll go through steps to approach solving a design problem. This guideline may help you to design a system. This one is based on my experience of learning architecture courses.&lt;/p&gt;

&lt;p&gt;★Step 1: Requirements clarifications&lt;br&gt;
★Step 2: Estimation of important parts&lt;br&gt;
★Step 3: Data Flow&lt;br&gt;
★Step 4: High-level Component design&lt;br&gt;
★ Step 5: Detailed design&lt;br&gt;
★ Step 6: Identify bottlenecks and resolve them&lt;br&gt;
For detailed information,&lt;br&gt;
&lt;a href="https://towardsdatascience.com/system-design-101-b8f15162ef7c?source=rss-577e2119c7f2------2"&gt;Continue reading on Towards Data Science »&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Those who don't have medium account may use &lt;a href="https://towardsdatascience.com/system-design-101-b8f15162ef7c?source=friends_link&amp;amp;sk=be3d26de1f9d1671b4abe379aae814f8"&gt; this link&lt;/a&gt;&lt;/p&gt;

</description>
      <category>softwareengineering</category>
      <category>technology</category>
      <category>architecture</category>
      <category>programming</category>
    </item>
    <item>
      <title>Five Daily Activities to Overcome Negative Thoughts</title>
      <dc:creator>Ashis Chakraborty</dc:creator>
      <pubDate>Wed, 30 Sep 2020 06:50:18 +0000</pubDate>
      <link>https://dev.to/ashchk/five-daily-activities-to-overcome-negative-thoughts-2pof</link>
      <guid>https://dev.to/ashchk/five-daily-activities-to-overcome-negative-thoughts-2pof</guid>
      <description>&lt;p&gt;&lt;a href="https://medium.com/illumination/five-daily-activities-to-overcome-negative-thoughts-842b673cdc2e?source=rss-577e2119c7f2------2"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--USK9qLeG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2600/0%2AaDwxyWdqpn3q9rWl" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Simple activities to remove negative thoughts in your daily life:&lt;/p&gt;

&lt;h3&gt;
  
  
  ★Write down your problems.
&lt;/h3&gt;

&lt;p&gt;Writing is like a mental exercise. It can bring psychological relief to the mind.&lt;/p&gt;

&lt;h3&gt;
  
  
  ★Forget what others are thinking about you.
&lt;/h3&gt;

&lt;p&gt;Most of our negative thoughts are about what people may think if you do or do not do something.&lt;br&gt;
Care about what other people think and you will always be their prisoner. — Lao Tzu&lt;br&gt;
The interesting fact is others don’t really care as much as you think. Unless your activity directly affects another person or their life, they are unlikely to spend much time thinking about you at all.&lt;/p&gt;

&lt;h3&gt;
  
  
  ★Take deep breaths
&lt;/h3&gt;

&lt;p&gt;Take a 1–2 minutes pause and take some deep breaths. Feel that you’re breathing with stomach and through your nose. Focus on the air going in and out, don’t rush them, be calm; just breath in and out&lt;/p&gt;

&lt;h3&gt;
  
  
  ★Listen to music
&lt;/h3&gt;

&lt;p&gt;Let the body heal from the outside, when there’s a storm brewing on the inside.&lt;/p&gt;

&lt;h3&gt;
  
  
  ★Focus on the solution, not the problem
&lt;/h3&gt;

&lt;p&gt;If you focus on the solution, you will get more ways to succeed. But if you focus on the problem, you will find more problems.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://medium.com/illumination/five-daily-activities-to-overcome-negative-thoughts-842b673cdc2e?source=rss-577e2119c7f2------2"&gt;Continue reading on ILLUMINATION »&lt;/a&gt;&lt;/p&gt;

</description>
      <category>selfimprovement</category>
      <category>personalgrowth</category>
      <category>personaldevelopment</category>
      <category>lifelessons</category>
    </item>
  </channel>
</rss>
