<?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: Dip Chowdhury</title>
    <description>The latest articles on Forem by Dip Chowdhury (@dipbd1).</description>
    <link>https://forem.com/dipbd1</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%2F899874%2Fdc6fa651-d62c-41f1-b5b4-14638365b6ca.png</url>
      <title>Forem: Dip Chowdhury</title>
      <link>https://forem.com/dipbd1</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/dipbd1"/>
    <language>en</language>
    <item>
      <title>LinkedIn Auto React Plugin made for Codex (Automatic react based on post sentiment)</title>
      <dc:creator>Dip Chowdhury</dc:creator>
      <pubDate>Mon, 11 May 2026 20:00:05 +0000</pubDate>
      <link>https://forem.com/dipbd1/linkedin-auto-react-plugin-made-for-codex-automatic-react-based-on-post-sentiment-2oe1</link>
      <guid>https://forem.com/dipbd1/linkedin-auto-react-plugin-made-for-codex-automatic-react-based-on-post-sentiment-2oe1</guid>
      <description>&lt;p&gt;&lt;em&gt;For my seniors and more experienced stars in the field and sky, please let me know if I am doing something wrong, or if I need to change something to stay safe and good.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Do you have a Codex subscription?&lt;/p&gt;

&lt;p&gt;Have you looked into this post?&lt;br&gt;
&lt;/p&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://developers.openai.com/codex/app/computer-use" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdevelopers.openai.com%2Fog%2Fcodex%2Fapp%2Fcomputer-use.png" height="420" 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://developers.openai.com/codex/app/computer-use" rel="noopener noreferrer" class="c-link"&gt;
            Computer Use – Codex app | OpenAI Developers
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            Let Codex use desktop apps while it works
          &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://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdevelopers.openai.com%2Ffavicon.png" width="48" height="48"&gt;
          developers.openai.com
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;I have both, so I decided to bundle them together and create something that will do the fun part (giving reactions) of LinkedIn for me.&lt;/p&gt;

&lt;p&gt;You may ask, am I violating LinkedIn's policy?&lt;br&gt;
No, as the repo says, you have to tell before it starts giving a reaction.&lt;/p&gt;

&lt;p&gt;But there is a catch, you can remove the restriction, and I am not gonna take responsibility for that.&lt;/p&gt;

&lt;p&gt;Here is the Repo Link:&lt;br&gt;
&lt;a href="https://github.com/dipbd1/linkedin-auto-reaction-codex" rel="noopener noreferrer"&gt;https://github.com/dipbd1/linkedin-auto-reaction-codex&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can use the SSH link to add it as a Marketplace entry, too.&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%2Fiwtyx5zfu4r2570qsled.webp" 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%2Fiwtyx5zfu4r2570qsled.webp" alt=" " width="800" height="553"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you have any questions, or even if you need personal help, feel free to post a comment here or email me at &lt;a href="mailto:dipbd1@gmail.com"&gt;dipbd1@gmail.com&lt;/a&gt; &lt;/p&gt;

</description>
      <category>ai</category>
      <category>automation</category>
      <category>beginners</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Virtualize API call for loading Large Data in React-Select with React-Window</title>
      <dc:creator>Dip Chowdhury</dc:creator>
      <pubDate>Wed, 20 Sep 2023 10:25:39 +0000</pubDate>
      <link>https://forem.com/dipbd1/virtualize-api-call-for-loading-large-data-in-react-select-with-react-window-10gj</link>
      <guid>https://forem.com/dipbd1/virtualize-api-call-for-loading-large-data-in-react-select-with-react-window-10gj</guid>
      <description>&lt;p&gt;Hello internet folks! I’m pretty new to writing and sharing stuff on the internet, but I believe that by sharing our knowledge, we can build new cybernetic pyramids full of computational power! 🧑🏾‍💻🧑🏾‍💻🧑🏾‍💻&lt;/p&gt;

&lt;p&gt;A few days ago, I was loading some data for my current clients at “CDP” where I was trying to show 1000+ data. Everything was going well until we received a requirement to scrape and find 75000+ entries and display them using React-Select, which was previously handling the 1000+ data.&lt;/p&gt;

&lt;p&gt;Given my experience in this field, as soon as I heard the news, I knew that React wouldn’t be ideal for creating 75000+ list components to select from, especially when each of them might have their own CSS and listeners.&lt;/p&gt;

&lt;p&gt;So what can we do? In the &lt;a href="https://react-select.com/advanced"&gt;React-select Advance&lt;/a&gt; section, you might find a solution where you listen to keystrokes or the end of scrolling to bring in new data. However, I was thinking of pulling all the data back into my client and then processing it virtually using some other technique.&lt;/p&gt;

&lt;p&gt;I came across some ideas on Stack Overflow that might help you. In another post, I may explain it in more detail, but for now, you can have a look at this code. It will help you with your problem.&lt;/p&gt;

&lt;p&gt;Happy coding, and see you in the next post! 🕸🕸🕸&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;`import React, { useState, useCallback, useEffect, useRef } from "react";
import { FixedSizeList as List } from "react-window";
import InfiniteLoader from "react-window-infinite-loader";

const LOADING = 1;
const LOADED = 2;

const CustomMenuList = ({ children, initialOffset }) =&amp;gt; {
    const itemHeight = 50;
    const [itemStatusMap, setItemStatusMap] = useState({});

    const itemStatusMapRef = useRef(itemStatusMap);
    useEffect(() =&amp;gt; {
        itemStatusMapRef.current = itemStatusMap;
    }, [itemStatusMap]);

    const isItemLoaded = useCallback((index) =&amp;gt; !!itemStatusMapRef.current[index], []);

    const loadMoreItems = useCallback((startIndex, stopIndex) =&amp;gt; {
        setItemStatusMap((prevStatusMap) =&amp;gt; {
            const newStatusMap = { ...prevStatusMap };
            for (let index = startIndex; index &amp;lt;= stopIndex; index++) {
                newStatusMap[index] = LOADING;
            }
            return newStatusMap;
        });

        return new Promise((resolve) =&amp;gt; {
            setTimeout(() =&amp;gt; {
                setItemStatusMap((prevStatusMap) =&amp;gt; {
                    const newStatusMap = { ...prevStatusMap };
                    for (let index = startIndex; index &amp;lt;= stopIndex; index++) {
                        newStatusMap[index] = LOADED;
                    }
                    return newStatusMap;
                });
                resolve();
            }, 2500);
        });
    }, []);

    const Row = React.memo(({ index, style }) =&amp;gt; {
        let label;
        if (itemStatusMap[index] === LOADED) {
            label = children[index];
        }
        return (
            &amp;lt;div style={{ ...style }}&amp;gt;
                {label || "Loading..."}
            &amp;lt;/div&amp;gt;
        );
    });

    return (
        &amp;lt;InfiniteLoader
            isItemLoaded={isItemLoaded}
            itemCount={children.length}
            loadMoreItems={loadMoreItems}
            threshold={5}
        &amp;gt;
            {({ onItemsRendered, ref }) =&amp;gt; (
                &amp;lt;List
                    height={500}
                    itemCount={children.length}
                    itemSize={itemHeight}
                    initialScrollOffset={initialOffset}
                    onItemsRendered={onItemsRendered}
                    ref={ref}
                    width="100%"
                &amp;gt;
                    {Row}
                &amp;lt;/List&amp;gt;
            )}
        &amp;lt;/InfiniteLoader&amp;gt;
    );
};

export default CustomMenuList;`
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>react</category>
    </item>
  </channel>
</rss>
