<?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: Shafayet Hossain Yashfi</title>
    <description>The latest articles on Forem by Shafayet Hossain Yashfi (@shafayeat).</description>
    <link>https://forem.com/shafayeat</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%2F1554102%2Fd54664d5-4ba1-473a-8ee3-1e9401ec26bd.png</url>
      <title>Forem: Shafayet Hossain Yashfi</title>
      <link>https://forem.com/shafayeat</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/shafayeat"/>
    <language>en</language>
    <item>
      <title>ATTENTION DEVS!! Your credentials are now on GitHub!!</title>
      <dc:creator>Shafayet Hossain Yashfi</dc:creator>
      <pubDate>Thu, 27 Nov 2025 02:39:43 +0000</pubDate>
      <link>https://forem.com/shafayeat/attention-devs-your-credentials-are-now-on-github-jmh</link>
      <guid>https://forem.com/shafayeat/attention-devs-your-credentials-are-now-on-github-jmh</guid>
      <description>&lt;p&gt;A worm called "Shai-Hulud: The Second Coming" is spreading through npm right now. Zapier, Postman, PostHog, ENS Domains, AsyncAPI. All infected between November 21-24, 2025.&lt;/p&gt;

&lt;p&gt;The name comes from the giant sandworms in Dune. And just like those worms, this malware spreads fast and leaves destruction behind.&lt;/p&gt;

&lt;p&gt;Attackers hacked package maintainer accounts and uploaded infected versions of the original packages. When you run &lt;code&gt;npm install&lt;/code&gt;, the malicious code runs automatically. Before the installation even finishes. Before you notice anything.&lt;/p&gt;

&lt;p&gt;The malware scans your system for secrets. API keys, GitHub tokens, npm credentials, AWS keys, SSH keys. Everything it finds gets uploaded to public GitHub repos with the description "Sha1-Hulud: The Second Coming."&lt;/p&gt;

&lt;p&gt;It also installs a backdoor on your machine. The attackers can run commands on your system whenever they want, even after you think you've cleaned up. And if the malware can't steal your data? It wipes your entire home directory instead.&lt;/p&gt;

&lt;p&gt;→ 700+ npm packages infected&lt;br&gt;
→ 25,000+ GitHub repos now contain stolen credentials&lt;br&gt;
→ 132 million monthly downloads affected&lt;br&gt;
→ New stolen secrets appearing every 30 minutes&lt;/p&gt;

&lt;p&gt;Check your package.json for:&lt;/p&gt;

&lt;p&gt;→ @zapier/* packages&lt;br&gt;
→ @postman/tunnel-agent&lt;br&gt;
→ posthog-node&lt;br&gt;
→ @ensdomains/* packages&lt;br&gt;
→ @asyncapi/* packages&lt;/p&gt;

&lt;p&gt;Quick check:&lt;br&gt;
cat package.json | grep -E "zapier|postman|posthog|ensdomains|asyncapi"&lt;/p&gt;

&lt;p&gt;If you installed ANY of these between November 21-24:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Assume all credentials on that machine are stolen&lt;/li&gt;
&lt;li&gt;Change everything: GitHub tokens, npm tokens, AWS keys, Azure tokens&lt;/li&gt;
&lt;li&gt;Search GitHub for "Sha1-Hulud: The Second Coming" - your data might be there&lt;/li&gt;
&lt;li&gt;Check your .github/workflows/ folder for files you didn't create&lt;/li&gt;
&lt;li&gt;Use package versions from before November 21&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is why supply chain attacks work. You don't download malware. You trust a package manager. And attackers exploit exactly that trust.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;THIS IS A COPY POST, I JUST WANTED TO LET YOU GUYS KNOW ABOUT THAT&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
    </item>
    <item>
      <title>Coding is easy... You just have to copy paste!!😊😊</title>
      <dc:creator>Shafayet Hossain Yashfi</dc:creator>
      <pubDate>Tue, 10 Jun 2025 10:17:10 +0000</pubDate>
      <link>https://forem.com/shafayeat/coding-is-easyyou-just-have-to-copy-paste-h01</link>
      <guid>https://forem.com/shafayeat/coding-is-easyyou-just-have-to-copy-paste-h01</guid>
      <description></description>
      <category>coding</category>
      <category>codenewbie</category>
      <category>productivity</category>
    </item>
    <item>
      <title>From Scratch to Sync: How I Built My Own Notepad App- Aurinote</title>
      <dc:creator>Shafayet Hossain Yashfi</dc:creator>
      <pubDate>Wed, 07 May 2025 14:25:55 +0000</pubDate>
      <link>https://forem.com/shafayeat/from-scratch-to-sync-how-i-built-my-own-notepad-app-aurinote-43g9</link>
      <guid>https://forem.com/shafayeat/from-scratch-to-sync-how-i-built-my-own-notepad-app-aurinote-43g9</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;a href="http://aurinote.zya.me" rel="noopener noreferrer"&gt;Aurinote&lt;/a&gt;&lt;/strong&gt; is a note-taking app built specifically with developers and modern productivity needs in mind. This post breaks down the tech stack, features, challenges, and development insights behind the project.&lt;/p&gt;

&lt;h2&gt;
  
  
  👇 Why I Built Aurinote
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Honestly, i don't even know. I just wanted to build something like Notepad we usually get with the Windows by default and i end up with that.😭&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ The Stack
&lt;/h2&gt;

&lt;p&gt;Here’s a quick overview of the technologies used:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tech&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;React + Vite&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Frontend framework &amp;amp; fast dev server&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;TypeScript&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Type safety and better DX&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;shadcn/ui + Tailwind CSS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;UI and styling&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Supabase&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Auth, storage, and database backend&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;TipTap&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Rich text editor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Highlight.js&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Code block syntax highlighting&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Tanstack Query&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Data fetching and caching&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Sonner&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Toast notifications&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  🔐 Supabase Auth + RLS
&lt;/h2&gt;

&lt;p&gt;User accounts are powered by Supabase Auth with email + password. Each user has a profile including name and avatar, stored in Supabase storage.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;user_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;auth&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;uid&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This ensures that each user can only read, update, or delete rows where the &lt;code&gt;user_id&lt;/code&gt; matches their authenticated ID. It’s a small line, but a huge step for securing user data. Supabase also handles session persistence, so users stay logged in across visits.&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%2Fauamc2d7ec4ev8p1ypvz.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%2Fauamc2d7ec4ev8p1ypvz.png" alt=" " width="800" height="398"&gt;&lt;/a&gt;&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%2F5jkdmaxwgc4e4hi43z4i.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%2F5jkdmaxwgc4e4hi43z4i.png" alt=" " width="800" height="399"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Rich Text Editing with TipTap
&lt;/h3&gt;

&lt;p&gt;TipTap gives the editing experience a major boost, allowing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Headings, paragraphs, lists&lt;/li&gt;
&lt;li&gt;Code blocks with syntax highlighting&lt;/li&gt;
&lt;li&gt;Keyboard shortcuts for formatting&lt;/li&gt;
&lt;li&gt;Copy-paste support&lt;/li&gt;
&lt;/ul&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%2Finfy9qk67waqnurzo97b.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%2Finfy9qk67waqnurzo97b.png" alt=" " width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;All note data is stored in HTML format, giving flexibility in rendering.&lt;/p&gt;

&lt;h3&gt;
  
  
  Avatar Uploads + Compression
&lt;/h3&gt;

&lt;p&gt;Users can upload a custom avatar, which is compressed client-side using a canvas API before uploading to Supabase Storage. This helps reduce storage size and improve loading performance.&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%2Fma8ah3eqgaeap9q1lrd2.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%2Fma8ah3eqgaeap9q1lrd2.png" alt=" " width="800" height="400"&gt;&lt;/a&gt;&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%2Fsdzxdhz4b3k2n8jdvyjh.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%2Fsdzxdhz4b3k2n8jdvyjh.png" alt=" " width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Note Management
&lt;/h3&gt;

&lt;p&gt;Notes are stored per-user and can be created, edited, and deleted from a dashboard view. The editor interface is simple and distraction-free, keeping the focus on writing.&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%2Fydc8i05qd6dgq5qsl0pr.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%2Fydc8i05qd6dgq5qsl0pr.png" alt=" " width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Theming &amp;amp; UI
&lt;/h3&gt;

&lt;p&gt;Built using Tailwind CSS and shadcn/ui, the interface is responsive, clean, and consistent across screen sizes. Features include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dark/light/Vibe/Ocean/Sunrise/Forest mode&lt;/li&gt;
&lt;li&gt;Responsive design&lt;/li&gt;
&lt;/ul&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%2Fcexaaeeip12vcqg1j6eq.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%2Fcexaaeeip12vcqg1j6eq.png" alt=" " width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  App Structure Overview
&lt;/h3&gt;

&lt;p&gt;While the codebase isn’t publicly available, here’s a quick look at how I structured the project internally for maintainability and scalability:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;src/
  components/
  context/
  pages/
  services/
  types/
  hooks/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Context handles global auth and theme state&lt;/li&gt;
&lt;li&gt;Hooks manage data fetching and session control&lt;/li&gt;
&lt;li&gt;Services handle Supabase API interactions&lt;/li&gt;
&lt;li&gt;Components include reusable UI building blocks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This modular structure helped keep the logic clean and organized, especially as features started to grow.&lt;/p&gt;

&lt;h3&gt;
  
  
  Challenges Faced
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Authentication Refresh:&lt;/strong&gt;&lt;br&gt;
Keeping the app in sync after login/logout or profile updates was trickier than expected. Supabase session changes didn’t always propagate cleanly across components, so I implemented a global context and used a &lt;code&gt;useEffect&lt;/code&gt; listener on &lt;code&gt;onAuthStateChange&lt;/code&gt; to keep everything reactive.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Image Upload Optimization:&lt;/strong&gt;&lt;br&gt;
Raw uploads were slow and bulky. To reduce file sizes and improve UX, I compress images client-side using the HTML canvas API before sending them to Supabase Storage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;UI Sync &amp;amp; Cache Invalidation:&lt;/strong&gt;&lt;br&gt;
Some UI elements weren’t updating instantly after changes especially on note edits or theme toggles. I introduced conditional re-fetching and manual state updates in context to patch these sync delays.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Row-Level Security (RLS) Headaches:&lt;/strong&gt;&lt;br&gt;
Supabase's RLS is powerful, but even one wrong policy can block data or expose too much. Debugging policy logic while working with multiple users and shared notes was a bit of a minefield. Had to write precise rules and test thoroughly to avoid privilege leakage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Supabase Rate Limits &amp;amp; Quotas:&lt;/strong&gt;&lt;br&gt;
When syncing notes across multiple sessions or devices rapidly (e.g., for real-time collab), I ran into some subtle Supabase request throttling. Caching responses locally and debouncing input saves helped reduce strain.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Responsive Design with State-Heavy UI:&lt;/strong&gt;&lt;br&gt;
Because of animations, theme toggles, and real-time syncing, managing layout shifts without UI jank (especially on mobile) was a major design+tech balancing act. I used Tailwind with media queries and conditional rendering to minimize unnecessary re-renders.&lt;/p&gt;

&lt;h3&gt;
  
  
  Features Completed
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;User registration &amp;amp; login&lt;/li&gt;
&lt;li&gt;Profile management (avatar + name)&lt;/li&gt;
&lt;li&gt;Create/edit/delete notes&lt;/li&gt;
&lt;li&gt;Rich text editing&lt;/li&gt;
&lt;li&gt;Syntax-highlighted code blocks&lt;/li&gt;
&lt;li&gt;Responsive layout&lt;/li&gt;
&lt;li&gt;Light/dark theme toggle&lt;/li&gt;
&lt;li&gt;Keyboard shortcuts&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Next Steps
&lt;/h3&gt;

&lt;p&gt;Aurinote is still under development, but upcoming features might include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Real-time collaborative editing&lt;/li&gt;
&lt;li&gt;Offline mode&lt;/li&gt;
&lt;li&gt;Exporting notes (PDF, Markdown)&lt;/li&gt;
&lt;li&gt;Tagging and search functionality&lt;/li&gt;
&lt;li&gt;Mobile-friendly PWA&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Whatever,,,
&lt;/h3&gt;

&lt;p&gt;Aurinote started as a side project, but it’s grown into something genuinely useful for everyday writing and note taking. If you’re a developer who wants a focused space to think, plan, or write—this might be a good fit🤷‍♂️&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="http://aurinote.zya.me" rel="noopener noreferrer"&gt;CHECK IT OUT&lt;/a&gt;
&lt;/h3&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://write.as/hyg9a6tb3hxtzwbk.md" rel="noopener noreferrer"&gt;Github&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Feel free to share feedback or ideas in the comments!!!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
      <category>learning</category>
    </item>
    <item>
      <title>Never knew that Electron can give me PTSD</title>
      <dc:creator>Shafayet Hossain Yashfi</dc:creator>
      <pubDate>Sat, 26 Apr 2025 05:03:01 +0000</pubDate>
      <link>https://forem.com/shafayeat/never-knew-that-electron-can-give-me-ptsd-1364</link>
      <guid>https://forem.com/shafayeat/never-knew-that-electron-can-give-me-ptsd-1364</guid>
      <description></description>
      <category>electron</category>
      <category>webdev</category>
      <category>productivity</category>
    </item>
    <item>
      <title>If S.Q.L can be pronounced ''Sequel'' and ''My S.Q.L'' can be pronounced ''My Sequel'' then doesn't that mean that ''My S.Q.L 2.0'' should've be pronounced ''My sequel the Sequel''??</title>
      <dc:creator>Shafayet Hossain Yashfi</dc:creator>
      <pubDate>Wed, 09 Apr 2025 10:22:40 +0000</pubDate>
      <link>https://forem.com/shafayeat/if-sql-can-be-pronounced-sequel-and-my-sql-can-be-pronounced-my-sequel-then-doesnt-57ne</link>
      <guid>https://forem.com/shafayeat/if-sql-can-be-pronounced-sequel-and-my-sql-can-be-pronounced-my-sequel-then-doesnt-57ne</guid>
      <description></description>
      <category>discuss</category>
      <category>sql</category>
    </item>
    <item>
      <title>Skibidi version of Dev Community??</title>
      <dc:creator>Shafayet Hossain Yashfi</dc:creator>
      <pubDate>Wed, 02 Apr 2025 16:53:02 +0000</pubDate>
      <link>https://forem.com/shafayeat/skibidi-version-of-dev-community-a7h</link>
      <guid>https://forem.com/shafayeat/skibidi-version-of-dev-community-a7h</guid>
      <description></description>
    </item>
    <item>
      <title>Ramadan Kareem guys!!</title>
      <dc:creator>Shafayet Hossain Yashfi</dc:creator>
      <pubDate>Sat, 01 Mar 2025 13:34:51 +0000</pubDate>
      <link>https://forem.com/shafayeat/ramadan-kareem-guys-2bom</link>
      <guid>https://forem.com/shafayeat/ramadan-kareem-guys-2bom</guid>
      <description></description>
    </item>
    <item>
      <title>I think Learning C++ makes me loose brain cells, or develop schizophrenia, or actually both</title>
      <dc:creator>Shafayet Hossain Yashfi</dc:creator>
      <pubDate>Tue, 21 Jan 2025 15:27:21 +0000</pubDate>
      <link>https://forem.com/shafayeat/i-think-learning-c-makes-me-loose-brain-cells-or-develop-schizophrenia-or-actually-both-49no</link>
      <guid>https://forem.com/shafayeat/i-think-learning-c-makes-me-loose-brain-cells-or-develop-schizophrenia-or-actually-both-49no</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%2Fpsgxwr7cj5k0iygzqxhj.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%2Fpsgxwr7cj5k0iygzqxhj.png" alt=" " width="552" height="980"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>cpp</category>
    </item>
    <item>
      <title>Stuck on 'Reactivating terminal' in VS Code. Can't run my Python project! Tried restarting, checking Python path, and disabling extensions, but no luck. Using Win 10. Any ideas on how to fix this? 🙏</title>
      <dc:creator>Shafayet Hossain Yashfi</dc:creator>
      <pubDate>Sun, 19 Jan 2025 11:14:17 +0000</pubDate>
      <link>https://forem.com/shafayeat/stuck-on-reactivating-terminal-in-vs-code-cant-run-my-python-project-tried-restarting-2epk</link>
      <guid>https://forem.com/shafayeat/stuck-on-reactivating-terminal-in-vs-code-cant-run-my-python-project-tried-restarting-2epk</guid>
      <description></description>
      <category>help</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Harnessing Functional Programming with JavaScript</title>
      <dc:creator>Shafayet Hossain Yashfi</dc:creator>
      <pubDate>Sat, 11 Jan 2025 15:56:01 +0000</pubDate>
      <link>https://forem.com/shafayeat/harnessing-functional-programming-with-javascript-3i7b</link>
      <guid>https://forem.com/shafayeat/harnessing-functional-programming-with-javascript-3i7b</guid>
      <description>&lt;p&gt;Design patterns are established solutions to frequent challenges in software design. By utilizing them, developers can enhance code readability, scalability, and maintainability. This article explores how TypeScript, an increasingly popular superset of JavaScript improves these patterns with its type safety and modern features. Whether you’re developing a large-scale application or a side project, grasping design patterns in TypeScript will boost your development skills.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Are Design Patterns?
&lt;/h2&gt;

&lt;p&gt;Design patterns are reusable, generic solutions to common challenges in software design. They aren't actual code but rather templates for addressing these issues. Originating from the "Gang of Four" (GoF) book, these patterns fall into three main categories:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Creational Patterns:&lt;/strong&gt; Concerned with the mechanisms of object creation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Structural Patterns:&lt;/strong&gt; Emphasize the composition and organization of objects.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Behavioral Patterns:&lt;/strong&gt; Focus on the interactions and communication between objects.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Why Use Design Patterns in TypeScript?
&lt;/h2&gt;

&lt;p&gt;TypeScript’s features make implementing design patterns more robust:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Static Typing:&lt;/strong&gt; Errors are caught at compile time, reducing runtime bugs.&lt;br&gt;
&lt;strong&gt;2. Interfaces and Generics:&lt;/strong&gt; Allow more precise and flexible implementations.&lt;br&gt;
&lt;strong&gt;3. Enum and Union Types:&lt;/strong&gt; Simplify certain patterns, such as state management.&lt;br&gt;
&lt;strong&gt;4. Enhanced Tooling:&lt;/strong&gt; With IDE support, TypeScript boosts productivity.&lt;/p&gt;
&lt;h2&gt;
  
  
  Some Key Design Patterns in TypeScript
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1. Singleton Pattern
&lt;/h3&gt;

&lt;p&gt;Ensures that a class has only one instance and provides a global point of access to it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Implementation in TypeScript:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Singleton&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="nx"&gt;instance&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;Singleton&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="nf"&gt;constructor&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt; &lt;span class="c1"&gt;// Prevent instantiation&lt;/span&gt;

  &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="nf"&gt;getInstance&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt; &lt;span class="nx"&gt;Singleton&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;Singleton&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;instance&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;Singleton&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;instance&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Singleton&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;Singleton&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;instance&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;instance1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;Singleton&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getInstance&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;instance2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;Singleton&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getInstance&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;instance1&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="nx"&gt;instance2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Use Case:&lt;/strong&gt; Managing configuration settings or database connections.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  2. Factory Pattern
&lt;/h3&gt;

&lt;p&gt;Provides an interface for creating objects without specifying their exact classes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Implementation:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kr"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;Button&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;render&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;WindowsButton&lt;/span&gt; &lt;span class="k"&gt;implements&lt;/span&gt; &lt;span class="nx"&gt;Button&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;render&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Rendering Windows button&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MacButton&lt;/span&gt; &lt;span class="k"&gt;implements&lt;/span&gt; &lt;span class="nx"&gt;Button&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;render&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Rendering Mac button&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;ButtonFactory&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="nf"&gt;createButton&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;os&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="nx"&gt;Button&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;os&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Windows&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;WindowsButton&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;os&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Mac&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;MacButton&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="k"&gt;throw&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Unknown OS&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;button&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;ButtonFactory&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;createButton&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Mac&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;button&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;render&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// Output: Rendering Mac button&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Use Case:&lt;/strong&gt; UI frameworks for cross-platform applications.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  3. Observer Pattern
&lt;/h3&gt;

&lt;p&gt;Defines a one-to-many relationship, where changes in one object are notified to all its dependents.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Implementation:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Subject&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="nx"&gt;observers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;Array&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[];&lt;/span&gt;

  &lt;span class="nf"&gt;addObserver&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;observer&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;observers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;push&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;observer&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="nf"&gt;notifyObservers&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;observers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;forEach&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;observer&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;observer&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;subject&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Subject&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;subject&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addObserver&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Observer 1 notified!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;span class="nx"&gt;subject&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addObserver&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Observer 2 notified!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;span class="nx"&gt;subject&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;notifyObservers&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Use Case:&lt;/strong&gt; Reactivity in front-end frameworks like Angular or React.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  4. Strategy Pattern
&lt;/h3&gt;

&lt;p&gt;Defines a family of algorithms, encapsulates each, and makes them interchangeable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Implementation:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kr"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;PaymentStrategy&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;pay&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;amount&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;CreditCardPayment&lt;/span&gt; &lt;span class="k"&gt;implements&lt;/span&gt; &lt;span class="nx"&gt;PaymentStrategy&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;pay&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;amount&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Paid &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;amount&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; using Credit Card`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;PayPalPayment&lt;/span&gt; &lt;span class="k"&gt;implements&lt;/span&gt; &lt;span class="nx"&gt;PaymentStrategy&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;pay&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;amount&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Paid &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;amount&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; using PayPal`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;PaymentContext&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;constructor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="nx"&gt;strategy&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;PaymentStrategy&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;

  &lt;span class="nf"&gt;executePayment&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;amount&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;strategy&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;pay&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;amount&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;payment&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;PaymentContext&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;PayPalPayment&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
&lt;span class="nx"&gt;payment&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;executePayment&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// Paid 100 using PayPal&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Use Case:&lt;/strong&gt; Payment systems in e-commerce platforms.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  5. Decorator Pattern
&lt;/h3&gt;

&lt;p&gt;Adds new functionality to an object dynamically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Implementation:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;SimpleCoffee&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;cost&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MilkDecorator&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;constructor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="nx"&gt;coffee&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;SimpleCoffee&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;

  &lt;span class="nf"&gt;cost&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;coffee&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;cost&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;coffee&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;SimpleCoffee&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;milkCoffee&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;MilkDecorator&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;coffee&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;milkCoffee&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;cost&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt; &lt;span class="c1"&gt;// Output: 7&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Use Case:&lt;/strong&gt; Adding features to a product in a shopping cart.&lt;/p&gt;

&lt;h2&gt;
  
  
  Design Patterns Table
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Pattern&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Category&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Use Case&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Benefit&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Singleton&lt;/td&gt;
&lt;td&gt;Creational&lt;/td&gt;
&lt;td&gt;Managing global state like configurations&lt;/td&gt;
&lt;td&gt;Guarantees single instance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Factory&lt;/td&gt;
&lt;td&gt;Creational&lt;/td&gt;
&lt;td&gt;UI components or APIs&lt;/td&gt;
&lt;td&gt;Decouples creation logic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Observer&lt;/td&gt;
&lt;td&gt;Behavioral&lt;/td&gt;
&lt;td&gt;Event systems in frameworks&lt;/td&gt;
&lt;td&gt;Simplifies communication&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Strategy&lt;/td&gt;
&lt;td&gt;Behavioral&lt;/td&gt;
&lt;td&gt;Algorithm selection in runtime&lt;/td&gt;
&lt;td&gt;Enhances flexibility&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Decorator&lt;/td&gt;
&lt;td&gt;Structural&lt;/td&gt;
&lt;td&gt;Extending class functionality&lt;/td&gt;
&lt;td&gt;Adds dynamic capabilities&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Best Practices for Implementing Design Patterns
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Understand the Problem:&lt;/strong&gt; Don't complicate things with unnecessary patterns.&lt;br&gt;
&lt;strong&gt;2. Combine Patterns:&lt;/strong&gt; Consider using combinations such as Singleton with Factory.&lt;br&gt;
&lt;strong&gt;3. Leverage TypeScript Features:&lt;/strong&gt; Utilize interfaces, generics, and enums to make implementation easier.&lt;br&gt;
&lt;strong&gt;4. Write Tests:&lt;/strong&gt; Ensure that the patterns function as intended.&lt;/p&gt;

&lt;h2&gt;
  
  
  Additional Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;হাতে কলমে জাভাস্ক্রিপ্ট&lt;/strong&gt; by &lt;em&gt;Junayed Ahmed&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Refactoring to Patterns&lt;/strong&gt; by &lt;em&gt;Joshua Kerievsky&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;See you in the next article, lad! 😊&lt;/p&gt;




&lt;p&gt;My personal website: &lt;a href="https://shafayet.zya.me" rel="noopener noreferrer"&gt;https://shafayet.zya.me&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Bit windy, innit bruv?😇😇&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%2F6um8q21umhybh2lq71a0.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%2F6um8q21umhybh2lq71a0.png" alt=" " width="552" height="620"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>typescript</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Just think how many people you see on google maps are dead now...</title>
      <dc:creator>Shafayet Hossain Yashfi</dc:creator>
      <pubDate>Thu, 09 Jan 2025 08:02:37 +0000</pubDate>
      <link>https://forem.com/shafayeat/just-think-how-many-people-you-see-on-google-maps-are-dead-now-5h65</link>
      <guid>https://forem.com/shafayeat/just-think-how-many-people-you-see-on-google-maps-are-dead-now-5h65</guid>
      <description></description>
    </item>
    <item>
      <title>Reflections and Predictions, Analyzing the Challenges and Trends of 2025</title>
      <dc:creator>Shafayet Hossain Yashfi</dc:creator>
      <pubDate>Sat, 04 Jan 2025 09:57:31 +0000</pubDate>
      <link>https://forem.com/shafayeat/reflections-and-predictions-analyzing-the-challenges-and-trends-of-2025-29bg</link>
      <guid>https://forem.com/shafayeat/reflections-and-predictions-analyzing-the-challenges-and-trends-of-2025-29bg</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/newyear"&gt;2025 New Year Writing challenge&lt;/a&gt;: Predicting 2025.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;As we approach 2025, the technology landscape is set for significant transformations. The previous year established a foundation for innovation, but the upcoming year is expected to push the limits of what we can achieve. With progress in AI and the widespread accessibility of technology, let’s take a look at the trends, challenges, and breakthroughs that are likely to make headlines in 2025. (I guess...)&lt;/p&gt;

&lt;h2&gt;
  
  
  AI Leading the Way in Transformation
&lt;/h2&gt;

&lt;p&gt;Artificial Intelligence is still at the forefront of innovation. In 2025, generative AI is anticipated to progress beyond content creation, influencing fields like healthcare, legal services, and personalized education. Medical diagnostics powered by AI will become more precise and widely available, with tools that analyze patient data in real time to propose individualized treatment options.&lt;br&gt;
&lt;strong&gt;Predicted Impact:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI powered legal assistants will revolutionize the legal industry, enabling small firms to tackle large-scale cases.&lt;/li&gt;
&lt;li&gt;Generative AI in education will craft personalized learning plans, bridging knowledge gaps at an unprecedented scale.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;However, ethical concerns will continue to be a top priority. Companies must tackle data privacy issues and biases in AI systems to keep the public's trust.&lt;/p&gt;
&lt;h2&gt;
  
  
  The Rise of Quantum Computing
&lt;/h2&gt;

&lt;p&gt;In 2025, we can expect major advancements in quantum computing. Companies, both large and small, are in a fierce competition to tap into its possibilities, with applications that range from improving supply chains to tackling complex scientific issues.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What to Expect:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Breakthroughs in quantum cryptography will redefine cybersecurity.&lt;/li&gt;
&lt;li&gt;Pharmaceutical companies will leverage quantum simulations to accelerate drug discovery.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;While quantum computing holds great potential, its widespread adoption will encounter challenges, such as the requirement for specialized infrastructure and expertise.&lt;/p&gt;
&lt;h2&gt;
  
  
  Web3 and the New Internet Economy
&lt;/h2&gt;

&lt;p&gt;Decentralized technologies are set to gain even more momentum in 2025. Web3 aims to create a more equitable, user-focused internet, with blockchain serving as its foundation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Predicted Innovations:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Decentralized finance (DeFi) platforms will introduce novel financial products, empowering users in underbanked regions.&lt;/li&gt;
&lt;li&gt;NFTs will evolve beyond art and collectibles, finding use cases in identity verification and intellectual property rights management.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Regulatory challenges will significantly influence the development of Web3. Governments around the globe will work to find a balance between fostering innovation and ensuring consumer protection.&lt;/p&gt;
&lt;h2&gt;
  
  
  Sustainability in Tech
&lt;/h2&gt;

&lt;p&gt;Green technology will be at the forefront in 2025 as companies work to meet global sustainability objectives. With a focus on eco-friendly software development and energy efficient data centers, the tech industry will be essential in the fight against climate change.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Trends:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The rise of “green coding” methodologies will minimize the environmental impact of software development.&lt;/li&gt;
&lt;li&gt;Renewable energy-powered cloud services will become the industry standard.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sustainability will become essential rather than optional, shaping the choices of consumers and the decisions of investors.&lt;/p&gt;
&lt;h2&gt;
  
  
  The Human Element in Tech
&lt;/h2&gt;

&lt;p&gt;While technical skills will still be important, the year 2025 will highlight the significance of human centric skills. The tech workforce of the future will be characterized by effective communication, adaptability, and ethical decision-making.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Shifts in Work Culture:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Remote work will solidify its place, with asynchronous collaboration tools becoming more sophisticated.&lt;/li&gt;
&lt;li&gt;Companies will prioritize mental health initiatives, acknowledging the challenges of a distributed workforce.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Soft skills will set developers apart as they navigate a world that is becoming more complex and interconnected.&lt;/p&gt;
&lt;h2&gt;
  
  
  Challenges to Watch
&lt;/h2&gt;

&lt;p&gt;Every innovation comes with its challenges. In 2025, we can anticipate the following difficulties:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Cybersecurity Threats:&lt;/strong&gt; As systems become more interconnected, the potential for large-scale cyberattacks will increase.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Digital Divide:&lt;/strong&gt; Despite technological progress, ensuring equitable access remains a challenge.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Regulation:&lt;/strong&gt; Governments will grapple with creating frameworks that promote innovation while protecting society.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  A Vision of the Future
&lt;/h2&gt;

&lt;p&gt;2025 is set to be a year filled with both breakthroughs and self-reflection. As developers, innovators, and thinkers, we have the chance to influence the direction of technology. Whether we are exploring new frontiers or tackling the challenges that come our way, the upcoming year holds great potential for growth and transformation.&lt;/p&gt;



&lt;p&gt;Make sure to check out this article, as it details the viral moments and major trends that shaped the IT sector in 2024. From advancements in AI to surprising tech innovations, it offers a captivating look at the year's most important stories. It's perfect for anyone wanting to stay informed about what made an impact in the industry!!!&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/shafayeat/the-viral-moments-and-trends-that-rocked-it-sector-in-2024-4e36" class="crayons-story__hidden-navigation-link"&gt;The Viral Moments and Trends That Rocked IT Sector in 2024&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="/shafayeat" 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%2F1554102%2Fd54664d5-4ba1-473a-8ee3-1e9401ec26bd.png" alt="shafayeat profile" class="crayons-avatar__image" width="800" height="800"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/shafayeat" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Shafayet Hossain Yashfi
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Shafayet Hossain Yashfi
                
              
              &lt;div id="story-author-preview-content-2183428" 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="/shafayeat" 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%2F1554102%2Fd54664d5-4ba1-473a-8ee3-1e9401ec26bd.png" class="crayons-avatar__image" alt="" width="800" height="800"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Shafayet Hossain Yashfi&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/shafayeat/the-viral-moments-and-trends-that-rocked-it-sector-in-2024-4e36" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Dec 31 '24&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/shafayeat/the-viral-moments-and-trends-that-rocked-it-sector-in-2024-4e36" id="article-link-2183428"&gt;
          The Viral Moments and Trends That Rocked IT Sector in 2024
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag crayons-tag--filled  " href="/t/discuss"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;discuss&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&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/shafayeat/the-viral-moments-and-trends-that-rocked-it-sector-in-2024-4e36" 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/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;13&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/shafayeat/the-viral-moments-and-trends-that-rocked-it-sector-in-2024-4e36#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              3&lt;span class="hidden s:inline"&gt; comments&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;
            8 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;





&lt;p&gt;My personal website: &lt;a href="https://shafayet.zya.me" rel="noopener noreferrer"&gt;https://shafayet.zya.me&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>newyearchallenge</category>
      <category>future</category>
    </item>
  </channel>
</rss>
