<?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: Fayaz</title>
    <description>The latest articles on DEV Community by Fayaz (@fm).</description>
    <link>https://dev.to/fm</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%2F40939%2F6efd7aef-f7ee-41ef-9df7-25bc381ea657.jpg</url>
      <title>DEV Community: Fayaz</title>
      <link>https://dev.to/fm</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/fm"/>
    <language>en</language>
    <item>
      <title>Computer Science was never about programming.</title>
      <dc:creator>Fayaz</dc:creator>
      <pubDate>Mon, 11 Aug 2025 18:24:27 +0000</pubDate>
      <link>https://dev.to/fm/computer-science-was-never-about-programming-17pk</link>
      <guid>https://dev.to/fm/computer-science-was-never-about-programming-17pk</guid>
      <description>&lt;p&gt;Computer Science was never about programming.&lt;br&gt;
&lt;strong&gt;It has always been about problem-solving.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;From the very beginning, we weren't just taught to write code; we were taught to design solutions. Solutions so sophisticated that, eventually, they could run without our involvement.&lt;/p&gt;

&lt;p&gt;Today, with AI, that vision has almost breached our deepest intellectual work, including programming itself.&lt;/p&gt;


&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/fm/predicting-2025-a-brave-new-world-4iip" class="crayons-story__hidden-navigation-link"&gt;Predicting 2025 - A brave new world!&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="/fm" 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%2F40939%2F6efd7aef-f7ee-41ef-9df7-25bc381ea657.jpg" alt="fm profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/fm" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Fayaz
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Fayaz
                &lt;a href="/++"&gt;&lt;img alt="Subscriber" class="subscription-icon" src="https://assets.dev.to/assets/subscription-icon-805dfa7ac7dd660f07ed8d654877270825b07a92a03841aa99a1093bd00431b2.png"&gt;&lt;/a&gt;
              
              &lt;div id="story-author-preview-content-2255669" 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="/fm" 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%2F40939%2F6efd7aef-f7ee-41ef-9df7-25bc381ea657.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Fayaz&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/fm/predicting-2025-a-brave-new-world-4iip" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Feb 3 '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/fm/predicting-2025-a-brave-new-world-4iip" id="article-link-2255669"&gt;
          Predicting 2025 - A brave new world!
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/devchallenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;devchallenge&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/newyearchallenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;newyearchallenge&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/future"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;future&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;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/fm/predicting-2025-a-brave-new-world-4iip" 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/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18"&gt;
                  &lt;/span&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;19&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/fm/predicting-2025-a-brave-new-world-4iip#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              5&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;
            3 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;h2&gt;
  
  
  So, should we use AI everywhere? 🤔
&lt;/h2&gt;

&lt;p&gt;If it makes sense, yes, absolutely!&lt;/p&gt;

&lt;p&gt;The use of AI can no longer be stopped anyway, so the only thing we can do is to regulate it for responsible use.&lt;/p&gt;

&lt;h2&gt;
  
  
  Should we fear that AI will replace us? 🫣
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Maybe not!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here is why:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;AI will never become human.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It can calculate, build, optimize, and predict, but it can never be &lt;strong&gt;&lt;em&gt;us&lt;/em&gt;&lt;/strong&gt;. Which means, there will always be a need for us: our judgment, our empathy, our creativity.&lt;/p&gt;

&lt;p&gt;Yes, the nature of our work will change. But change does not mean irrelevance.&lt;/p&gt;

&lt;p&gt;Religion &lt;em&gt;&lt;strong&gt;tells us&lt;/strong&gt;&lt;/em&gt; that even God "needed" human involvement to shape human history.&lt;/p&gt;

&lt;p&gt;Nature &lt;em&gt;&lt;strong&gt;shows us&lt;/strong&gt;&lt;/em&gt; that when a more intelligent species emerges, all others don't simply vanish; they adapt, they evolve, and only those who can't evolve, vanish.&lt;/p&gt;

&lt;p&gt;The future isn't about competing with AI.&lt;br&gt;
It's about using it wisely and efficiently to tackle problems once thought impossible.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>webdev</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>Use Algolia MCP Server &amp; VSCode GitHub Copilot to Find and Submit Unique Projects in Dev Challenges! ❤️‍🔥</title>
      <dc:creator>Fayaz</dc:creator>
      <pubDate>Mon, 28 Jul 2025 06:03:05 +0000</pubDate>
      <link>https://dev.to/fm/use-algolia-mcp-server-vscode-github-copilot-to-submit-unique-projects-in-dev-challenges-3ph1</link>
      <guid>https://dev.to/fm/use-algolia-mcp-server-vscode-github-copilot-to-submit-unique-projects-in-dev-challenges-3ph1</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/algolia-2025-07-09"&gt;Algolia MCP Server Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Recently I've found myself participating in quite some Dev Challenges. I'm Loving it!&lt;/p&gt;

&lt;p&gt;However, the problem is: Most of my Dev Challenge submissions are done on the weekends. That means by then, there are already many submissions.&lt;/p&gt;

&lt;p&gt;That's great! But what's the point in working on something someone had already done! I mean, it's not always a bad thing, but wouldn't you rather work on something unique!&lt;/p&gt;

&lt;p&gt;In comes &lt;strong&gt;Algolia MCP Server&lt;/strong&gt; Challenge!&lt;/p&gt;

&lt;p&gt;So I thought, would the Algolia MCP Server make it easy for me to check if what I'm going to work on is at least unique so far?&lt;/p&gt;

&lt;p&gt;This is what this project is all about.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built and How I Utilized the Algolia MCP Server
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Installed Algolia MCP Server on VSCode with GitHub Copilot (Linux).&lt;/li&gt;
&lt;li&gt;Developed a CLI Tool to Fetch dev.to Challenge Submissions using the Forem API.&lt;/li&gt;
&lt;li&gt;Developed a Web Interface to check the Submissions locally.&lt;/li&gt;
&lt;li&gt;Developed an MCP (Model Context Protocol) Server named &lt;code&gt;dcs&lt;/code&gt; to get the Submission data in GitHub Copilot Agent Mode.&lt;/li&gt;
&lt;li&gt;Then indexed that Challenge submission data in Algolia, using Algolia MCP Server, by simply asking: &lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;#dcs&lt;/code&gt; fetch algoliachallenge tag submissions, get all the submissions from this tag, and add them to my Dev Challenges app in &lt;code&gt;#algolia&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Finally, asked GitHub Copilot in Agent mode if my project idea is unique!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once I built everything, all I had to do was ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;#algolia&lt;/code&gt; in Algolia Challenge did anyone submit something related to GitHub Copilot?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And there it was!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I didn't have to dig deep into all the submissions on dev.to&lt;/li&gt;
&lt;li&gt;Didn't have to do any complex search&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Just one single command to Algolia MCP server and the AI Agent took care of the rest!&lt;/p&gt;

&lt;p&gt;In my mind, I've already won something from this challenge! 🚀&lt;/p&gt;

&lt;p&gt;I'm sure other developers are going to love this technique, and future Dev Challenges are going to receive more unique submissions using similar solutions.&lt;/p&gt;

&lt;p&gt;Who knows, may be dev.to will provide their own MCP server in the near future! 💫&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;The following GitHub repo has all the necessary code and instructions for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Using GitHub copilot with Algolia MCP Server and DCS (Dev Challenge Submission) MCP Server&lt;/li&gt;
&lt;li&gt;DCS CLI&lt;/li&gt;
&lt;li&gt;DCS Web App&lt;/li&gt;
&lt;/ul&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/fayaz-dev" rel="noopener noreferrer"&gt;
        fayaz-dev
      &lt;/a&gt; / &lt;a href="https://github.com/fayaz-dev/dcs" rel="noopener noreferrer"&gt;
        dcs
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Dev Challenge Submissions
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Dev Challenge Submissions&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;A modern web application for browsing dev challenge submissions from dev.to. This app consists of a CLI tool to fetch submissions, a React web interface to display them, and an MCP server for AI assistant integration.&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/1200316/472185798-03fc5b73-e23a-4760-a3a4-daf7d86631d5.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzQ2NTA4MjIsIm5iZiI6MTc3NDY1MDUyMiwicGF0aCI6Ii8xMjAwMzE2LzQ3MjE4NTc5OC0wM2ZjNWI3My1lMjNhLTQ3NjAtYTNhNC1kYWY3ZDg2NjMxZDUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDMyNyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjAzMjdUMjIyODQyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NzljZDMzN2NiMGY2YmUyMjY2OWM5YzA4ZjFmYWNmMTk1MGY4YWZmNDUxNGQyY2E1ODZiZjJkODdhODg3MzdhYyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.-01bjG4vHg_NbS6rwYkp6gJm2z3MkpJchPO6Uqh4D-U"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fprivate-user-images.githubusercontent.com%2F1200316%2F472185798-03fc5b73-e23a-4760-a3a4-daf7d86631d5.png%3Fjwt%3DeyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzQ2NTA4MjIsIm5iZiI6MTc3NDY1MDUyMiwicGF0aCI6Ii8xMjAwMzE2LzQ3MjE4NTc5OC0wM2ZjNWI3My1lMjNhLTQ3NjAtYTNhNC1kYWY3ZDg2NjMxZDUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDMyNyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjAzMjdUMjIyODQyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NzljZDMzN2NiMGY2YmUyMjY2OWM5YzA4ZjFmYWNmMTk1MGY4YWZmNDUxNGQyY2E1ODZiZjJkODdhODg3MzdhYyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.-01bjG4vHg_NbS6rwYkp6gJm2z3MkpJchPO6Uqh4D-U" alt="React web interface demo"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Roadmap / Todo list:&lt;/h2&gt;
&lt;/div&gt;
&lt;ul class="contains-task-list"&gt;
&lt;li class="task-list-item"&gt;
 More detailed hands on tutorial about using this project effectively.&lt;/li&gt;
&lt;li class="task-list-item"&gt;
 Daily auto update of Challenge submissions.&lt;/li&gt;
&lt;li class="task-list-item"&gt;
 Filtering out unrelated posts that uses the Challenge tags.&lt;/li&gt;
&lt;li class="task-list-item"&gt;
 FullStack Web App with option to use your own LLM API key for unique project brainstorming.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Features&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CLI Tool&lt;/strong&gt;: Fetch, update, and manage submissions from dev.to using the Forem API&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Beautiful Web Interface&lt;/strong&gt;: Browse submissions with sorting and search functionality&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP Server&lt;/strong&gt;: Model Context Protocol server for AI assistant integration (GitHub Copilot, Claude, etc.)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auto-refresh&lt;/strong&gt;: Web app automatically updates when new data is fetched or removed&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Responsive Design&lt;/strong&gt;: Works great on desktop and mobile devices&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Safe Operations&lt;/strong&gt;…&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/fayaz-dev/dcs" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/oeyFBbAWrVw"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;I've made the initial setup using &lt;code&gt;vite&lt;/code&gt; and &lt;code&gt;pnpm&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Then mostly vibe coded the solutions using GitHub Copilot in Agent Mode with Claude Sonnet 4. But I did have to do some work when Claude started to make mistakes. So it's not all vibe coded work.&lt;/li&gt;
&lt;li&gt;Algolia MCP Server documentation doesn't provide instructions for Linux or GitHub Copilot, but with a bit of tinkering, I could make it work.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;.vscode/mcp.json&lt;/code&gt; file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"servers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"algolia"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"${input:algolia_mcp_dir}/algolia-mcp"&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"dcs"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"${input:dcs_mcp_dir}/server"&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"inputs"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"algolia_mcp_dir"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"promptString"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Path to the Algolia MCP directory"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"password"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"dcs_mcp_dir"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"promptString"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Path to the dev.to Challenges MCP directory"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"password"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;GitHub Copilot's support for Algolia MCP Server is quite good!&lt;/li&gt;
&lt;li&gt;Although, only Claude models support Algolia MCP Server in GitHub Copilot, GPT models don't support it! Gives 400 error.&lt;/li&gt;
&lt;li&gt;That said, GitHub's own MCP Server works with GPT 4.1 in GitHub Copilot Agent Mode. Didn't have time to debug why Algolia MCP Server only works with Claude models. Perhaps Algolia team will work on this?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Overall, participating in this challenge was really a happy experience for me.&lt;/p&gt;

&lt;p&gt;I hope other developers will also be benefited from this project. ❤️&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>algoliachallenge</category>
      <category>webdev</category>
      <category>ai</category>
    </item>
    <item>
      <title>Automate content and social media post idea generation - using Runner-H.</title>
      <dc:creator>Fayaz</dc:creator>
      <pubDate>Mon, 07 Jul 2025 06:50:43 +0000</pubDate>
      <link>https://dev.to/fm/automate-content-and-social-media-post-idea-generation-using-runner-h-1j40</link>
      <guid>https://dev.to/fm/automate-content-and-social-media-post-idea-generation-using-runner-h-1j40</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/runnerh"&gt;Runner H "AI Agent Prompting" Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;We've all been there:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Completely stuck with writer's block, while trying to come up with social media posts for the day. 🥶&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Whether you're building a personal brand or managing marketing content for your company or for your boss, fresh ideas from recent web articles can be a great source of inspiration.&lt;/p&gt;

&lt;p&gt;But it gets even better with &lt;a href="https://runner.hcompany.ai/" rel="noopener noreferrer"&gt;Runner-H&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In this post, I'll show you how to use Runner-H to search the web for new articles, collect them in a Google Sheet, summarize them in a Google Doc, and even generate sample tweets - &lt;strong&gt;all using a single prompt!&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://runner.hcompany.ai/chat/cb2d3032-8e36-4515-b422-129a3622dd9b/share" class="crayons-btn crayons-btn--primary" rel="noopener noreferrer"&gt;Runner-H Execution Demo&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%2Fy2p7u0g6ceuetb12iw7f.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%2Fy2p7u0g6ceuetb12iw7f.png" alt="Runner-H Execution"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/KrmrOvA9si4"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;




&lt;p&gt;&lt;a href="https://runner.hcompany.ai/browsing-view/9e56c2b7-657a-4666-97a7-2cd9ddb9d746" class="crayons-btn crayons-btn--primary" rel="noopener noreferrer"&gt;Runner-H Web search Demo&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%2Ffxus9xysbfr01rx57tti.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%2Ffxus9xysbfr01rx57tti.png" alt="Runner-H Web search Demo"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a href="https://docs.google.com/spreadsheets/d/136e9z-gPXMKf5sLWQTIb5AdcvzMJqKWCyk3rE9UhX_Y/edit" class="crayons-btn crayons-btn--primary" rel="noopener noreferrer"&gt;Generated Google Sheet with article data&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.google.com/document/d/18Z_FLv1XqCaXoM5xdDmDTSmSr1lVPGO5gtYTZJ-p6YU/edit" class="crayons-btn crayons-btn--primary" rel="noopener noreferrer"&gt;Generated Google Doc. with story by Runner-H&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.google.com/document/d/1cQge6QUAwnml_rUR3mw1F6R-H7keaV-jiw580ikdUvM/edit" class="crayons-btn crayons-btn--primary" rel="noopener noreferrer"&gt;Generated Google Doc. with sample Tweets by Runner-H&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Used Runner H
&lt;/h2&gt;

&lt;p&gt;To use Runner-H properly like I've shown in this demo above, first you'll have to connect Runner-H with Gmail, Google Doc and Google Sheet.&lt;/p&gt;

&lt;p&gt;This is not necessary to use Runner-H, but helpful if you want Runner-H to create those documents for you.&lt;/p&gt;

&lt;p&gt;Once you log-in to your Runner-H account, go the the Connections tab and make necessary connections.&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%2Frbnso9me1gzvhiua63hz.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%2Frbnso9me1gzvhiua63hz.png" alt="Runner-H Connections"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Once your Apps are connected to Runner-H, go to the Run tab and use the Prompt below:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;Objective: This task has 5 distinct but connected phases. The main goal is to:
&lt;span class="p"&gt;-&lt;/span&gt; Collect recent posts from the specified online &lt;span class="nt"&gt;&amp;lt;source&amp;gt;&lt;/span&gt; on a specific &lt;span class="nt"&gt;&amp;lt;topic&amp;gt;&lt;/span&gt;.
&lt;span class="p"&gt;-&lt;/span&gt; Save all the collected posts in a new Google Sheet.
&lt;span class="p"&gt;-&lt;/span&gt; Write a report covering all the posts in a new Google Doc.
&lt;span class="p"&gt;-&lt;/span&gt; Write social media posts in another new Google Doc based on the collected posts.
&lt;span class="p"&gt;-&lt;/span&gt; Finally, email me the links to the generated Google Sheet and Google Docs.

Inputs: Some inputs will be provided at the end of the prompt within XML tags for clarity. Whenever an XML tag is mentioned, assume it will be provided at the end of the prompt.

Behavior:
&lt;span class="p"&gt;-&lt;/span&gt; In each phase, you will behave like the world’s best expert on the subject matter.
&lt;span class="p"&gt;-&lt;/span&gt; Try your best to accomplish the given tasks without user interaction.
&lt;span class="p"&gt;-&lt;/span&gt; Plan the entire task before the actual execution that'll result in the best possible outcome.
&lt;span class="p"&gt;-&lt;/span&gt; While executing the tasks as planned, if you find that executing the tasks as planned is not possible, amend the previous plan in a way that will satisfy the user’s main objective or at least come as close as possible within your capability.
&lt;span class="p"&gt;-&lt;/span&gt; Prefix the name of each new Google Doc or Google Sheet created in this task with today's date. Date format: yyyy-mm-dd
&lt;span class="p"&gt;-&lt;/span&gt; Format all the created Google Sheets and Google Docs beautifully, in a very professional and presentable manner.

Phase 1: Collect recent posts.
&lt;span class="p"&gt;-&lt;/span&gt; Collect 10 recent posts on the given &lt;span class="nt"&gt;&amp;lt;topic&amp;gt;&lt;/span&gt; from the specified &lt;span class="nt"&gt;&amp;lt;source&amp;gt;&lt;/span&gt;.
&lt;span class="p"&gt;-&lt;/span&gt; While gathering information on each post, collect the following data points: Title, Link, Published Date, Post Author Name, and Post Content.
&lt;span class="p"&gt;-&lt;/span&gt; Don’t just collect information from search results; go to the original link of each post and collect actual post content from the main post.

Phase 2: Save all collected posts in a new Google Sheet.
&lt;span class="p"&gt;-&lt;/span&gt; Once the necessary data of all the posts are collected, list them in a new Google Sheet with post Title, Link, Author, published Date, and Post Content.

Phase 3: Write a report in a Google Doc.
&lt;span class="p"&gt;-&lt;/span&gt; Read the Google Sheet created in Phase 2, and based on the content of all the posts in the Google Sheet, write a report in a new Google Doc.
&lt;span class="p"&gt;-&lt;/span&gt; This report should cover the main topics of all the posts.
&lt;span class="p"&gt;-&lt;/span&gt; If helpful, link some of the posts within the content of the report.
&lt;span class="p"&gt;-&lt;/span&gt; Write this report as a story, as if it's an observation and inner thoughts of a reader, while he is going through these posts starting a new day having his morning coffee. 

Phase 4: Write Twitter posts based on the collected posts
&lt;span class="p"&gt;-&lt;/span&gt; Write 10 Tweets, 5 long form tweets and 5 short form tweets, based on the content of the collected posts.
&lt;span class="p"&gt;-&lt;/span&gt; Don't write the Tweets like a copy or a report on the collected posts. Rather, write each Tweet uniquely, focusing on different ideas from the content of all those collected posts as a whole.
&lt;span class="p"&gt;-&lt;/span&gt; Don't use any hashtag or any link within the Tweets.
&lt;span class="p"&gt;-&lt;/span&gt; Give a separate heading to each Tweet in the Google Doc.

Phase-5: Email
&lt;span class="p"&gt;-&lt;/span&gt; Once all above 4 phases are completed, email me the links to the created Google Sheets and Google Docs.

&lt;span class="nt"&gt;&amp;lt;topic&amp;gt;&lt;/span&gt;International Politics&lt;span class="nt"&gt;&amp;lt;/topic&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;source&amp;gt;&lt;/span&gt;Google News Search&lt;span class="nt"&gt;&amp;lt;/source&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Note about the prompt:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The prompt is designed in a way that you'll only have to change the &lt;code&gt;&amp;lt;topic&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;source&amp;gt;&lt;/code&gt; tags (presented at the bottom of the prompt) to fit it for your own needs!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Runner-H is in beta, so if one run doesn't generate the desired result, give it another try a few moment later.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Although I've asked it to use Google news search, it actually used Bing news search. May be it's related to its current preference. You can try with other web source. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Use Case &amp;amp; Impact
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Anyone wanting to automate everyday tasks with Runner-H that's related to web search, story writing, social media post generation, writing Google Sheet and Google Doc. can get inspiration from my prompt.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Writing prompt this way and using it with Runner-H can help others create share-able automation techniques. This can really save a lot of time and help people spend more time on other important stuff, or even have more fun! 🥳&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Social Love
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Social Love 1: Sharing about Runner-H
&lt;/h4&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1940755920297861582-320" src="https://platform.twitter.com/embed/Tweet.html?id=1940755920297861582"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1940755920297861582-320');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1940755920297861582&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;h4&gt;
  
  
  Social Love 2: Sharing a sample Run of this prompt
&lt;/h4&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1942110641457934368-884" src="https://platform.twitter.com/embed/Tweet.html?id=1942110641457934368"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1942110641457934368-884');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1942110641457934368&amp;amp;theme=dark"
  }



&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>runnerhchallenge</category>
      <category>ai</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>hotline.email: AI Powered Multi-role single point inbound email categorization with Postmark and Agent.ai</title>
      <dc:creator>Fayaz</dc:creator>
      <pubDate>Mon, 09 Jun 2025 06:48:23 +0000</pubDate>
      <link>https://dev.to/fm/hotlineemail-ai-powered-multi-role-single-point-inbound-email-categorization-with-postmark-and-19oh</link>
      <guid>https://dev.to/fm/hotlineemail-ai-powered-multi-role-single-point-inbound-email-categorization-with-postmark-and-19oh</guid>
      <description>&lt;h2&gt;
  
  
  Update: rethinking hotline.email
&lt;/h2&gt;

&lt;p&gt;Working with hotline.email with new and powerful AI based user facing email application. Stay Tuned for future updates!&lt;/p&gt;




&lt;p&gt;This is a submission for the &lt;a href="https://dev.to/challenges/postmark"&gt;Postmark Challenge: Inbox Innovators&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;This is a MVP concept demonstration project, where I'll demonstrate how &lt;a href="https://postmarkapp.com/developer/user-guide/inbound/inbound-domain-forwarding" rel="noopener noreferrer"&gt;Postmark's inbound&lt;/a&gt; webhook and domain forwarding features can be directly integrated with an AI agent created with Agent.ai Platform, to act as either a middle-wire layer or as a decision making layer.&lt;/p&gt;

&lt;p&gt;Leveraging the power of LLMs and other features of Agent.ai, anyone can supercharge Postmark's inbound email feature and create a full featured AI powered application layer for their business needs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Following is the demo MVP AI Agent:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://agent.ai/agent/hotline" class="crayons-btn crayons-btn--primary" rel="noopener noreferrer"&gt;HotLine.email AI Agent&lt;/a&gt;
&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;As it is built, any email sent to any &lt;code&gt;@HotLine.email&lt;/code&gt; address will be process, categorized and sent to a pre-configured email address &lt;strong&gt;based on the content of the email&lt;/strong&gt; and the configuration JSON.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Note:&lt;/em&gt;&lt;/strong&gt; This agent should not be used directly, rather its webhook should be configured in Postmark's inbound webhook setting like the following:&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%2Fgtdw6qknxljusxz6s0qv.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%2Fgtdw6qknxljusxz6s0qv.png" alt="Postmark webhook setting"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  TESTING
&lt;/h3&gt;

&lt;p&gt;To test if it works as advertised, you'll just have to provide your own configuration JSON within your email's text (say at the end of the original email content).&lt;/p&gt;

&lt;p&gt;That way, the processed email will go to an email given in your own provided configuration, instead of the pre-configured email set by HotLine.email Agent.&lt;/p&gt;

&lt;p&gt;JSON configuration example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"support"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"All support related email should go here"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"email"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"support@fayaz.dev"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"offer"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"All offer and opportunity related promotional emails should go here. These are external offers."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"email"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"offers@fayaz.dev"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"hr"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"All human resource related email should go here"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"email"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"hr@fayaz.dev"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"sales"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"All sales related email should go here. These are related to our own product sales query"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"email"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"sales@fayaz.dev"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"fallback"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"This is the fall back email - if nothing matches or you are unsure, choose this email"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"email"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"fallback@fayaz.dev"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Later the Agent will be updated so that someone can claim their own &lt;code&gt;@HotLine.email&lt;/code&gt; and configure how any inbound email will be processed and forwarded if an email is sent to their own &lt;code&gt;example@HotLine.email&lt;/code&gt; address.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code Repository
&lt;/h2&gt;

&lt;p&gt;This agent's build actions (source) is shared in public on Agent.ai. So anyone will be able to see or clone the AI agent from the following link after registering with &lt;a href="https://agent.ai/?referrer=fayazDev" rel="noopener noreferrer"&gt;Agent.ai&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://agent.ai/builder/agent/read-only?id=4itlh4ognsofed0a" class="crayons-btn crayons-btn--primary" rel="noopener noreferrer"&gt;HotLine.email AI Agent's Source Code&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%2F8gms5lg4k0jryqde1y0w.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%2F8gms5lg4k0jryqde1y0w.png" alt="HotLine.email AI Agent's Source Code"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Used &lt;a href="https://www.dynadot.com/" rel="noopener noreferrer"&gt;Dynadot&lt;/a&gt; for registering and DNS configuring the &lt;code&gt;hotline.email&lt;/code&gt; domain name - as you'll need a domain name to work with Postmark.&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%2F77zvljx2jyp7b1jrevn5.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%2F77zvljx2jyp7b1jrevn5.png" alt="Dynadot DNS configuration"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Used &lt;a href="https://postmarkapp.com/developer/webhooks/inbound-webhook" rel="noopener noreferrer"&gt;Postmark's inbound webhook&lt;/a&gt; feature.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Used &lt;a href="https://postmarkapp.com/developer/user-guide/inbound/inbound-domain-forwarding" rel="noopener noreferrer"&gt;Postmark's inbound domain forwarding&lt;/a&gt; feature.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Used &lt;a href="https://agent.ai" rel="noopener noreferrer"&gt;Agent.ai&lt;/a&gt; to create an AI agent with webhook.&lt;/p&gt;&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%2Fn5usowyp4qjvovkfh4vm.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%2Fn5usowyp4qjvovkfh4vm.png" alt="Agent'ai web hook"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;I was pleasantly surprised by Postmark's inbound feature and that how easy it was to work with Agent.ai to create a powerful AI agent!&lt;/p&gt;

&lt;p&gt;It was a great experience for me!&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>postmarkchallenge</category>
      <category>webdev</category>
      <category>api</category>
    </item>
    <item>
      <title>Robonaut's Quest to Black Hole on Alibaba Cloud!</title>
      <dc:creator>Fayaz</dc:creator>
      <pubDate>Mon, 28 Apr 2025 06:48:50 +0000</pubDate>
      <link>https://dev.to/fm/robonauts-quest-on-alibaba-cloud-497l</link>
      <guid>https://dev.to/fm/robonauts-quest-on-alibaba-cloud-497l</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://int.alibabacloud.com/m/1000402443/" rel="noopener noreferrer"&gt;Alibaba Cloud&lt;/a&gt; Challenge: &lt;a href="https://dev.to/challenges/alibaba"&gt;Build a Web Game&lt;/a&gt;.&lt;/em&gt;*&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://robonaut.quest/index.html" rel="noopener noreferrer"&gt;Robonaut's Quest to Black Hole&lt;/a&gt; is an action-packed space adventure game where you control Robonaut, humanity's last hope against a dangerous exotic blackhole threatening Earth.&lt;/p&gt;

&lt;p&gt;Your mission is to collect crucial exotic particles spontaneously created by a strange black hole. This will help scientists understand and defend against this cosmic threat. Navigate carefully at the edge of the singularity while gathering valuable data to save mankind.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://robonaut.quest/index.html" class="crayons-btn crayons-btn--primary" rel="noopener noreferrer"&gt;Static Web Game: Robonaut's Quest to Black Hole&lt;/a&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Game Landing Page
&lt;/h3&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%2F9acz98ljurq053x3klph.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%2F9acz98ljurq053x3klph.png" alt="Game Landing Page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Game Starts
&lt;/h3&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%2Fkxo7r37uyw3fz4frtozg.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%2Fkxo7r37uyw3fz4frtozg.png" alt="Game Starts"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Game Play
&lt;/h3&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%2Fuc8gicajc20fcmpgx5mh.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%2Fuc8gicajc20fcmpgx5mh.png" alt="Game Play"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Game Over
&lt;/h3&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%2Fs62ikby59v1i2xte09a8.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%2Fs62ikby59v1i2xte09a8.png" alt="Game Over"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Alibaba Cloud Services Implementation
&lt;/h2&gt;

&lt;p&gt;I've used Alibaba Cloud's Object Storage Service (OSS) to host static game assets. Later plan is to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Use Alibaba Cloud CDN for faster access all over the globe.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use Alibaba Cloud Simple Application Server (SAS) to globally update the Game Leader Board. I chose SAS over Elastic Compute Service (ECS) because in this project my server side requirement is minimal, and to my understanding, SAS will provide a more predictable cost.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Experience
&lt;/h3&gt;

&lt;p&gt;I've faced difficulties in registering some cloud services with Alibaba Cloud. The same Credit Card I've used in AWS, X, Canva, ChatGPT etc. without any issue, Alibaba Cloud required far more personal details than I was comfortable to share for verification purposes. I understand this was done for greater security, so can't complain!&lt;/p&gt;

&lt;p&gt;Eventually I've used PayPal, which worked fine, except I was unable to access Free trials (as they require Credit Card for the free trials).&lt;/p&gt;

&lt;p&gt;So while the interface was smooth, and the services and pricing is competitive, the onboarding process was not smooth at all!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;I recommend Alibaba Cloud to improve upon an easier onboarding process!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If the payment security is a concern, I recommend they add &lt;strong&gt;&lt;em&gt;advance top-up option&lt;/em&gt;&lt;/strong&gt;, so that customers can use the cloud services up to their &lt;strong&gt;&lt;em&gt;top up amount paid in advance&lt;/em&gt;&lt;/strong&gt; without worrying much about payment security and privacy.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Eventually I could register a &lt;em&gt;Simple Application Server&lt;/em&gt; and &lt;em&gt;Object Storage Service&lt;/em&gt; with PayPal account using &lt;strong&gt;&lt;em&gt;Resource Plan&lt;/em&gt;&lt;/strong&gt; option, which works kind of like advance top-up, but an account wide advance top-up option (along with per service &lt;em&gt;Resource Plan&lt;/em&gt;) would be preferable to some users like me.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Game Development Highlights
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/fayaz-dev/robonaut-blackhole" class="crayons-btn crayons-btn--primary" rel="noopener noreferrer"&gt;Source Code on GitHub&lt;/a&gt;
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;I've heavily used GitHub Copilot (VS Code Insiders Edition) for the development of this game.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Clade 3.7, Gemini 2.5 Pro and GPT 4.1 was my LLM of choice. But mostly it was Claude 3.7&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It was 80% vibe coding and 20% developed and designed by me along with debugging.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Using &lt;code&gt;Git&lt;/code&gt;, &lt;code&gt;Vite&lt;/code&gt;, &lt;code&gt;pnpm&lt;/code&gt;, &lt;code&gt;Lazy Git&lt;/code&gt; along with &lt;code&gt;VS Code&lt;/code&gt; with GitHub Copilot Agent mode was a great experience!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;While developing this game, I've realized that LLMs work better with specific Software Engineering (SWE) and Design Pattern instructions. So this means having good SWE understanding will always be a plus for developers, even if you use the so called &lt;strong&gt;vibe coding&lt;/strong&gt;! &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Future Updates
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;For now the game is suitable for Computers, later plan is to implement mobile friendly interface. &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;I was experimenting &lt;a href="https://dev.to/fm/rant-state-of-generative-ai-in-code-generation-1hej"&gt;the code generating ability&lt;/a&gt; of modern AI for some time now. My eventual goal is to &lt;a href="https://dev.to/fm/predicting-2025-a-brave-new-world-4iip"&gt;100x my development using AI&lt;/a&gt;, so I was actively looking for different Cloud hosting services than can smoothly support my Solopreneur Adventure using advancement in AI!&lt;/p&gt;

&lt;p&gt;So even though I didn't use a lot of Cloud resources in this project, developing this game and exploring different Alibaba Cloud's services was a great experience for me in the right direction.&lt;/p&gt;




&lt;p&gt;I hope you'll enjoy Playing the Game as much as I've enjoyed developing it! &lt;a href="http://robonaut.quest/index.html" class="crayons-btn crayons-btn--primary" rel="noopener noreferrer"&gt;Robonaut.quest&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;You may reach out to me on X/Twitter: &lt;a href="https://x.com/fayazDev" rel="noopener noreferrer"&gt;@FayazDev&lt;/a&gt;&lt;/p&gt;

</description>
      <category>alibabachallenge</category>
      <category>devchallenge</category>
      <category>gamedev</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Poll on AI Code generation: do you prefer more accuracy or easier to debug code?</title>
      <dc:creator>Fayaz</dc:creator>
      <pubDate>Sat, 01 Mar 2025 09:32:39 +0000</pubDate>
      <link>https://dev.to/fm/poll-on-ai-code-generation-do-you-prefer-more-accuracy-or-easier-to-debug-code-5fjo</link>
      <guid>https://dev.to/fm/poll-on-ai-code-generation-do-you-prefer-more-accuracy-or-easier-to-debug-code-5fjo</guid>
      <description>&lt;p&gt;In my post &lt;a href="https://dev.to/fm/rant-state-of-generative-ai-in-code-generation-1hej"&gt;State of generative AI in Software Development: The reality check&lt;/a&gt;, I've mentioned a very important observation I had:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Consider the following two hypothetical situations:&lt;/p&gt;

&lt;p&gt;1) An LLM generates 80% accurate code, where the remaining 20% inaccurate code is very difficult to debug!&lt;/p&gt;

&lt;p&gt;2) Another LLM generates 60% accurate code, but the remaining 40% inaccurate code is very easy to debug.&lt;/p&gt;

&lt;p&gt;If this is the case, then the second result would most likely be far more preferable to many developers!&lt;/p&gt;

&lt;p&gt;Hence, this scenario must also be considered in judging the code generation performance of an LLM.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Today, I thought I should ask fellow developers about their opinion on this matter!&lt;/p&gt;

&lt;p&gt;So I posted a poll on X about it!&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1895752929631670371-108" src="https://platform.twitter.com/embed/Tweet.html?id=1895752929631670371"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1895752929631670371-108');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1895752929631670371&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;So what do you prefer?&lt;br&gt;
I'd love ♥️ to know your preference on this!&lt;/p&gt;

</description>
      <category>ai</category>
      <category>softwaredevelopment</category>
      <category>softwareengineering</category>
      <category>githubcopilot</category>
    </item>
    <item>
      <title>Switching from tmux to Zellij</title>
      <dc:creator>Fayaz</dc:creator>
      <pubDate>Fri, 28 Feb 2025 18:50:07 +0000</pubDate>
      <link>https://dev.to/fm/switching-from-tmux-to-zellij-9jn</link>
      <guid>https://dev.to/fm/switching-from-tmux-to-zellij-9jn</guid>
      <description>&lt;h2&gt;
  
  
  Terminal Multiplexer
&lt;/h2&gt;

&lt;p&gt;If you've used &lt;a href="https://en.wikipedia.org/wiki/Terminal_multiplexer" rel="noopener noreferrer"&gt;terminal multiplexer&lt;/a&gt; in command line, you know &lt;a href="https://github.com/tmux/tmux" rel="noopener noreferrer"&gt;tmux&lt;/a&gt; is cool! If you haven't, you really should use something like tmux, especially if you use Terminal or any Command Line Interface (CLI) a lot or SSH into remote servers often!&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Tell me:&lt;/strong&gt; what do you do, if suddenly your SSH connection is dropped while you're in the middle of an important installation or update process that needs your input?&lt;/p&gt;

&lt;p&gt;That terminal session is lost and you cannot easily (if at all) get back to that installation process!&lt;/p&gt;

&lt;p&gt;This may make your system a half cooked mess! A terminal multiplexer is what you need to solve this exact issue.&lt;/p&gt;

&lt;p&gt;Let's just say: it'll save the day, by letting you log back into the session at the exact point you were dropped off from!&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%2F64.media.tumblr.com%2Ffe8aedf8171366da9e35335dbce43322%2F4d3bc82be3c68bf6-e9%2Fs1280x1920%2F5f792a0ba3555d7387893c4a3eeeeadab5a512d7.gifv" 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%2F64.media.tumblr.com%2Ffe8aedf8171366da9e35335dbce43322%2F4d3bc82be3c68bf6-e9%2Fs1280x1920%2F5f792a0ba3555d7387893c4a3eeeeadab5a512d7.gifv" alt="Save the day" width="600" height="258"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The switch
&lt;/h2&gt;

&lt;p&gt;Tmux is not just a terminal multiplexer though, it's a lot more than that. But this post is not about tmux. It's about me switching from tmux to &lt;a href="https://zellij.dev/" rel="noopener noreferrer"&gt;Zellij&lt;/a&gt;. Why? Because Zellij is just better, and with a lot more batteries included.&lt;/p&gt;

&lt;p&gt;I was keeping an eye on Zellij for some time now, but didn't get enough time to switch. But today was that day. So here I come Zellij!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;P.S. you don't need to learn tmux to start using Zellij. So if you've never used tmux, just start with Zellij right away. Here are some &lt;a href="https://zellij.dev/screencasts/" rel="noopener noreferrer"&gt;tutorials&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;p&gt;As it happened, Zellij cannot be directly installed on the OS I'm using: Ubuntu. Also, this is a new laptop I'm setting up, so I needed to take a few steps to install Zellij. So may be this post will be useful to someone!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# install build essentials on Ubuntu&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt update
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;build-essential

&lt;span class="c"&gt;# Install rust / cargo&lt;/span&gt;
curl https://sh.rustup.rs &lt;span class="nt"&gt;-sSf&lt;/span&gt; | sh

&lt;span class="c"&gt;# install zellij using cargo&lt;/span&gt;
cargo &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--locked&lt;/span&gt; zellij

&lt;span class="c"&gt;# That's it - now run Zellij!&lt;/span&gt;
zellij
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Further info
&lt;/h2&gt;

&lt;p&gt;Here's a useful video walk through with Zellij:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/BjfMWqy1hnw"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;That's it! Happy CLI mastery with Zellij, &lt;a href="https://ohmyz.sh/" rel="noopener noreferrer"&gt;Oh My zsh&lt;/a&gt; and &lt;a href="https://alacritty.org/" rel="noopener noreferrer"&gt;Alacritty&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%2F64.media.tumblr.com%2Fb79194d6f804e64a9c4341d03aa2a16c%2F4d3bc82be3c68bf6-ea%2Fs500x750%2Faa405e1dd884c2ada222eb1ecda07dea0948a49b.gifv" 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%2F64.media.tumblr.com%2Fb79194d6f804e64a9c4341d03aa2a16c%2F4d3bc82be3c68bf6-ea%2Fs500x750%2Faa405e1dd884c2ada222eb1ecda07dea0948a49b.gifv" alt="Command line mastery" width="500" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>terminal</category>
      <category>cli</category>
      <category>ssh</category>
      <category>linux</category>
    </item>
    <item>
      <title>State of generative AI in Software Development: The reality check!</title>
      <dc:creator>Fayaz</dc:creator>
      <pubDate>Thu, 06 Feb 2025 00:15:11 +0000</pubDate>
      <link>https://dev.to/fm/rant-state-of-generative-ai-in-code-generation-1hej</link>
      <guid>https://dev.to/fm/rant-state-of-generative-ai-in-code-generation-1hej</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;TL;DR;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Large Language Models (LLM) still make a lot of mistakes in code generation, as of February, 2025.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We may use strictly defined shorthand algorithms (along with some additional comments) to generate better results. The reason is, natural human languages (English or any other) themselves are ambiguous, algorithms and programming languages are not!&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What is it about?
&lt;/h2&gt;

&lt;p&gt;Code generation with Artificial Intelligence is not yet up to the mark. Claude 3.5 Sonnet is better, but it too makes time-consuming debugging errors from time to time.&lt;/p&gt;

&lt;p&gt;I'll continue relying on tools such as GitHub Copilot to boost productivity. That said, making the most of Generative AI for coding still feels elusive! Hopefully, &lt;a href="https://dev.to/fm/predicting-2025-a-brave-new-world-4iip"&gt;that will change in 2025&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Alternatives to GitHub Copilot, like &lt;a href="https://www.cursor.com/" rel="noopener noreferrer"&gt;Cursor&lt;/a&gt;, &lt;a href="https://codeium.com/windsurf" rel="noopener noreferrer"&gt;Windsurf&lt;/a&gt; etc. are in my radar, but I'd rather use Copilot more efficiently first, before diving fully into the other options.&lt;/p&gt;

&lt;h2&gt;
  
  
  A little more background
&lt;/h2&gt;

&lt;p&gt;Earlier today, while using GitHub Copilot to write a CLI Shell script, it was making time consuming mistakes.&lt;/p&gt;

&lt;p&gt;The script is about syncing Firefox profiles in two different computers - in my specific case, two Laptops, both with Ubuntu installed.&lt;/p&gt;

&lt;p&gt;Instead of keeping hundreds of open tabs, I usually create many Firefox profiles in command line. Each profile is fine tuned for specific tasks, projects etc. As web developers, we have to use different browsers, but my personal preference is still Firefox.&lt;/p&gt;

&lt;p&gt;Also, the sync option within Firefox could've been used for this, but it has other drawbacks. So syncing it this way felt easier.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI code generation - friend or foe?
&lt;/h2&gt;

&lt;p&gt;Few days ago, I used GitHub copilot for developing a browser plugin in Vanilla JavaScript. It did a much better job then. However, for this shell script project, it gave me more headache than solution!&lt;/p&gt;

&lt;p&gt;So basically, this is still on and off for me. Overall, it's productive—though there's room for improvement.&lt;/p&gt;

&lt;p&gt;It's possible that other people are using these LLMs more efficiently; however, for the sake of this post, let's assume that's not the case.&lt;/p&gt;

&lt;h2&gt;
  
  
  My observation
&lt;/h2&gt;

&lt;p&gt;In my experience, in visual projects such as UI development or JavaScript based animation (using &lt;a href="https://threejs.org/" rel="noopener noreferrer"&gt;three.js&lt;/a&gt; or &lt;a href="https://p5js.org/" rel="noopener noreferrer"&gt;p5.js&lt;/a&gt;), AI code generation works pretty well.&lt;/p&gt;

&lt;p&gt;However, in the projects where we require highly precise complex logical reasoning, they sometimes make terrible mistakes that are time consuming to debug!&lt;/p&gt;

&lt;p&gt;Why this is the case? Is it because we can easily ignore the mistakes in visual output, and consider them as acceptable variations?&lt;/p&gt;

&lt;p&gt;Or is it because, non-programmers and beginners usually ask for this kind of code generation and easily get mesmerized. Then they share their experiences with others in social media, who in turn also get mesmerized. Neither group is capable nor willing enough to find the issues in the generated code.&lt;/p&gt;

&lt;p&gt;Or is it because, as humans, we tend to share only the generated content that performs well? But when they don’t work as expected, we avoid sharing on social media. We might assume it’s our fault, thinking we didn’t instruct the AI well enough.&lt;/p&gt;

&lt;p&gt;The reality is, different models perform differently in visual programming vs. mission critical business logic based programming.&lt;/p&gt;

&lt;p&gt;Besides, in visual programming, 80% accurate result is understandably a far better outcome than 60% accurate result. However, in mission critical business logic based programming (e.g. banking software, medical software where error tolerance is 0%), both 80% and 60% accuracy may be considered as complete failures.&lt;/p&gt;

&lt;h2&gt;
  
  
  A very important consideration
&lt;/h2&gt;

&lt;p&gt;Let's extend the above context even further. Consider the following two hypothetical situations:&lt;/p&gt;

&lt;p&gt;1) An LLM generates 80% accurate code, where the remaining 20% inaccurate code is very difficult to debug!&lt;/p&gt;

&lt;p&gt;2) Another LLM generates 60% accurate code, but the remaining 40% inaccurate code is very easy to debug.&lt;/p&gt;

&lt;p&gt;If this is the case, then the second result would most likely be far more preferable to many developers!&lt;/p&gt;

&lt;p&gt;Hence, this scenario must also be considered in judging the code generation performance of an LLM.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update &lt;em&gt;(March 01, 2025)&lt;/em&gt;:&lt;/strong&gt; Let's see twitter thinks!&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1895752929631670371-570" src="https://platform.twitter.com/embed/Tweet.html?id=1895752929631670371"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1895752929631670371-570');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1895752929631670371&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;h2&gt;
  
  
  The good parts
&lt;/h2&gt;

&lt;p&gt;In any case, I've noticed something else interesting about AI-generated code. They usually produce much better results using shorthand strict algorithms instead of natural languages like English.&lt;/p&gt;

&lt;p&gt;Yes, most LLMs work pretty well when we use &lt;a href="https://en.wikipedia.org/wiki/Pseudocode" rel="noopener noreferrer"&gt;pseudocode&lt;/a&gt; as prompts!&lt;/p&gt;

&lt;p&gt;For example, following is an algorithm like prompt that extracts Firefox profile names from their corresponding directory names. It worked for me pretty well:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;Convert the following algorithm to shell code, lines starting with # are comments with additional instructions:

profiles=array
for each directory in sync_from
    # ending = &lt;span class="err"&gt;*&lt;/span&gt; after 1st dot (non empty)
    if directory name = "something.ending"
        profile_name=ending
        profiles[]=profile_name
    end_if
end_for
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This resulted in the following  Shell script using Claude 3.5 Sonnet in GitHub Copilot:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;

&lt;span class="c"&gt;# Initialize profiles array&lt;/span&gt;
&lt;span class="nb"&gt;declare&lt;/span&gt; &lt;span class="nt"&gt;-a&lt;/span&gt; profiles

&lt;span class="c"&gt;# Iterate through directories in sync_from&lt;/span&gt;
&lt;span class="k"&gt;for &lt;/span&gt;&lt;span class="nb"&gt;dir &lt;/span&gt;&lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$sync_from&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;/&lt;span class="k"&gt;*&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
    &lt;span class="c"&gt;# Check if it's a directory&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$dir&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
        &lt;span class="c"&gt;# Get base name of directory&lt;/span&gt;
        &lt;span class="nv"&gt;base_name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;basename&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$dir&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;
        &lt;span class="c"&gt;# Extract part after first dot&lt;/span&gt;
        &lt;span class="nv"&gt;profile_name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;base_name&lt;/span&gt;&lt;span class="p"&gt;#*.&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;
        &lt;span class="c"&gt;# Check if profile_name is not empty and not equal to base_name&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$profile_name&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$base_name&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nt"&gt;-n&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$profile_name&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
            &lt;span class="c"&gt;# Add to array&lt;/span&gt;
            profiles+&lt;span class="o"&gt;=(&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$profile_name&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;fi
    fi
done&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And the following Shell script with &lt;a href="https://chat.deepseek.com/" rel="noopener noreferrer"&gt;DeepSeek R1&lt;/a&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;

&lt;span class="nv"&gt;profiles&lt;/span&gt;&lt;span class="o"&gt;=()&lt;/span&gt;

&lt;span class="k"&gt;for &lt;/span&gt;&lt;span class="nb"&gt;dir &lt;/span&gt;&lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$sync_from&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;/&lt;span class="k"&gt;*&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do
    if&lt;/span&gt; &lt;span class="o"&gt;[[&lt;/span&gt; &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$dir&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;]]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
        &lt;/span&gt;&lt;span class="nb"&gt;dirname&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;basename&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$dir&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;
        &lt;span class="nv"&gt;first_part&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;dirname&lt;/span&gt;&lt;span class="p"&gt;%%.*&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
        &lt;span class="nv"&gt;ending&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;dirname&lt;/span&gt;&lt;span class="p"&gt;#*.&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[[&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$dirname&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$first_part&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nt"&gt;-n&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$ending&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;]]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
            &lt;/span&gt;profiles+&lt;span class="o"&gt;=(&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$ending&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;fi
    fi
done&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Suffice it to say, both worked.&lt;/p&gt;

&lt;p&gt;However, when I tried to generate the same Shell script with Natural Language (e.g. English), they produced unexpected results. I finally was able to generate expected output after a few trials, but that's not an efficient way of programming!&lt;/p&gt;

&lt;p&gt;Multiple trial-and-error phases and hands-on fixes were needed to get English prompts to work as expected. Though with the pseudocode prompt, both Claude 3.5 and DeepSeek R1 produced predictable results on the first attempt!&lt;/p&gt;

&lt;h2&gt;
  
  
  Questions to developer community:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;What's your experience with AI in Software Development? Did you get 10x productivity boost using different LLMs as some people claim?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Do you know of any better way, or a better algorithm that produces predictable results with different Generative AI models?&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Please let me know!&lt;/p&gt;

&lt;p&gt;if you prefer, you may also engage me in the following related Tweet:&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1889388252446204306-514" src="https://platform.twitter.com/embed/Tweet.html?id=1889388252446204306"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1889388252446204306-514');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1889388252446204306&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;Hopefully my experience was helpful to you. Happy Coding! 🥰&lt;/p&gt;

</description>
      <category>ai</category>
      <category>vscode</category>
      <category>development</category>
      <category>productivity</category>
    </item>
    <item>
      <title>This is super cool!</title>
      <dc:creator>Fayaz</dc:creator>
      <pubDate>Tue, 04 Feb 2025 19:37:10 +0000</pubDate>
      <link>https://dev.to/fm/this-is-super-cool-4fic</link>
      <guid>https://dev.to/fm/this-is-super-cool-4fic</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/fm" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2F40939%2F6efd7aef-f7ee-41ef-9df7-25bc381ea657.jpg" alt="fm"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/fm/just-got-free-access-to-qwen-ai-video-generation-awesome-36of" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Just got FREE access to QWEN AI Video generation! Awesome!&lt;/h2&gt;
      &lt;h3&gt;Fayaz ・ Feb 4 '25&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#ai&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#machinelearning&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#news&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#discuss&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>news</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Just got FREE access to QWEN AI Video generation! Awesome!</title>
      <dc:creator>Fayaz</dc:creator>
      <pubDate>Tue, 04 Feb 2025 09:35:19 +0000</pubDate>
      <link>https://dev.to/fm/just-got-free-access-to-qwen-ai-video-generation-awesome-36of</link>
      <guid>https://dev.to/fm/just-got-free-access-to-qwen-ai-video-generation-awesome-36of</guid>
      <description>&lt;p&gt;I was playing with the Qwen model for image generation. After several trials, generated the following image with theme deep research (the text is added in Canva).&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;In case you don't know, Qwen is the ChatGPT of Alibaba Cloud &amp;amp; it's free!&lt;/p&gt;
&lt;/blockquote&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%2Fmvpgr1bquokr35098nhu.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%2Fmvpgr1bquokr35098nhu.png" alt="Child - deep research" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Prompt:&lt;br&gt;
Generate a life like ultra high definition ultra realistic vibrant image of a child examining plants with a magnifying glass in hand.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;At that time, video generation was disabled.&lt;br&gt;
But then I reloaded it for another image generation, and to my surprise, there it was - Video Generation! For Free!&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%2Fi9mrh71etk1gucur239f.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%2Fi9mrh71etk1gucur239f.png" alt="Video generation with Qwen" width="800" height="180"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Boy O boy - after DeepSeek R1, the AI world just got crazy with new releases!&lt;/p&gt;

&lt;p&gt;Here's the first video I generated with Qwen (audio added using Canva)!&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/afSbB4HKmco"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Go ahead! Knock yourselves out with Free video generation! 🥳&lt;/p&gt;

&lt;p&gt;Here's the link: &lt;a href="https://chat.qwenlm.ai" rel="noopener noreferrer"&gt;QWEN Chat&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>news</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Predicting 2025 - A brave new world!</title>
      <dc:creator>Fayaz</dc:creator>
      <pubDate>Mon, 03 Feb 2025 07:59:37 +0000</pubDate>
      <link>https://dev.to/fm/predicting-2025-a-brave-new-world-4iip</link>
      <guid>https://dev.to/fm/predicting-2025-a-brave-new-world-4iip</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;blockquote&gt;
&lt;p&gt;July 1, 1872, downtown Chicago—finally, Mr. John Carpenter decided to close his generations-old family business of handcrafted wooden furniture and join the local mining company as a supervisor of skilled workers.&lt;/p&gt;

&lt;p&gt;The salary was good, but that wasn’t what bothered him. "Why did it have to be him?" he asked himself. He wasn’t like his other brothers—he was responsible, creative, hardworking, and deeply caring toward his extended family. His grandfather, Mr. Alex Carpenter, had entrusted the family business to John for all those reasons!&lt;/p&gt;

&lt;p&gt;Yet, in the end, none of it mattered when the Second Industrial Revolution arrived. The new industrialists began producing even better-finished furniture and selling it at a fraction of the price—John and his handcrafted furniture had no chance. He could still sell some finely crafted pieces to wealthy locals who valued traditional woodworking, but it wasn’t enough to keep the business afloat.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;What you just read above is pure fiction. I don’t know of anyone named John Carpenter from downtown Chicago. But what I do know for sure is that many unnamed family business owners of that era went out of business and had to join the workforce due to the Second Industrial Revolution. Their way of life changed forever.&lt;/p&gt;

&lt;p&gt;People like John Carpenter didn’t go out of business because they lacked skill, creativity, or dedication. They went out of business because they lacked the vision to foresee the massive wave of change heading their way.&lt;/p&gt;

&lt;p&gt;They say history repeats itself, and if I’m sure of anything, it’s that another technological revolution is on the horizon. A massive wave of change is imminent—and this time, it will shake society in ways that will likely make previous technological revolutions look like child’s play.&lt;/p&gt;

&lt;h2&gt;
  
  
  Artificial Intelligence
&lt;/h2&gt;

&lt;p&gt;Yes, you’re right—I’m talking about AI, of course. Everyone who is anyone in the tech industry knows that AI is already causing massive change, and what’s coming next will likely be far bigger than ever before. But to what end? That’s the trillion-dollar question everyone is trying to figure out. Below are some of my predictions that may just come true as early as 2025!&lt;/p&gt;

&lt;h2&gt;
  
  
  Developers in the Job Market
&lt;/h2&gt;

&lt;p&gt;In broad strokes, the AI revolution will divide developers into three distinct types:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Developers with strong core tech skills but reluctant to use AI for productivity&lt;/strong&gt; – some will survive due to their expertise and position, but many will struggle in 2025, because others with similar skills and experience will likely multiply their productivity using newer advancements in AI.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Developers who are efficient AI users but lack strong core tech skills&lt;/strong&gt; – These developers will perform well in some cases but will be easily replaced by others or even by newer AI advancements. Additionally, they will struggle with complex projects and find it difficult to rise to top positions. New generation and their parents must ensure that their education doesn't remain on the surface level - otherwise they will likely suffer in the coming days.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Developers with strong core tech skills and efficient in using AI for productivity&lt;/strong&gt; - This is the type of developer you’ll want to become in 2025. With strong foundational skills, such as proficiency in various programming languages, you’ll be confident in handling complex projects. By leveraging AI advancements, you’ll stay at the top of your field. As many people say, AI won’t replace you—but people who use AI effectively most likely will. That said, it definitely won’t be the developers described in category #2.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Solopreneurs Running Mid-Sized Companies
&lt;/h2&gt;

&lt;p&gt;Advancements in AI will soon enable expert solopreneurs to run their entire businesses using AI agents. My prediction: 2025 will be the year that gives rise to billionaire solopreneurs who will single-handedly manage companies at an unprecedented scale.&lt;/p&gt;

&lt;p&gt;While major AI companies will continue pushing toward artificial general intelligence (AGI), more fine-tuned AI models and specialized AI agents will thrive in specific industries. This will allow expert solopreneurs to carve out their share of the massive wealth AI is set to generate.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Predicting the future is difficult, impossible even. But if we have an overall vision of the future, and work towards it incrementally based on the changes in the present, then I think we'll be fine.&lt;/p&gt;

&lt;p&gt;So I say enjoy the AI revolution!&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>newyearchallenge</category>
      <category>future</category>
      <category>ai</category>
    </item>
    <item>
      <title>PodcastX Agent - on demand Podcast, Page &amp; Meme generator from X Posts (Tweets) using Agent.ai!</title>
      <dc:creator>Fayaz</dc:creator>
      <pubDate>Mon, 27 Jan 2025 07:51:07 +0000</pubDate>
      <link>https://dev.to/fm/podcastx-agent-on-demand-podcast-page-meme-generator-from-x-posts-tweets-using-agentai-53k0</link>
      <guid>https://dev.to/fm/podcastx-agent-on-demand-podcast-page-meme-generator-from-x-posts-tweets-using-agentai-53k0</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://srv.buysellads.com/ads/long/x/T6EK3TDFTTTTTT6WWB6C5TTTTTTGBRAPKATTTTTTWTFVT7YTTTTTTKPPKJFH4LJNPYYNNSZL2QLCE2DPPQVCEI45GHBT" rel="noopener noreferrer"&gt;Agent.ai&lt;/a&gt; Challenge: Assembly of Agents (&lt;a href="https://dev.to/challenges/agentai"&gt;See Details&lt;/a&gt;)&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;Wouldn't it be great if you could get a daily update about posts from your favorite X / Twitter accounts, based on the topics of your choice? Wouldn't it be even greater if you could listen to it instead of reading, while you are driving to office or from office to home?&lt;/p&gt;

&lt;p&gt;Wouldn't it be super cool if you could set the tone of the podcast based on the style of your favorite podcast creator?&lt;/p&gt;

&lt;p&gt;This would keep you up-to-date with your interests, and at the same time, save you a lot of time from endlessly scrolling X. This would also save you from FOMO and let you enjoy other things in life, knowing full well you didn't miss much!&lt;/p&gt;

&lt;p&gt;What more, it generates a Page of it's own with Meme so that you can share with friends and post Link to social media.&lt;/p&gt;

&lt;p&gt;This is exactly why I've built this Agent. It would be extremely useful for me and many others like me.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;At this point this is beta version, I plan to update it further with fine tuning the generated content and more advanced features.&lt;/p&gt;

&lt;p&gt;The agent is public! So please check my Agent in action: &lt;a href="https://agent.ai/profile/podcastX" rel="noopener noreferrer"&gt;https://agent.ai/profile/podcastX&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/G8FeCxqKPR8"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Agent.ai Experience
&lt;/h2&gt;

&lt;p&gt;I was pleasantly surprised by some capabilities within Agent.ai builder, especially using other Agents in association to accomplish tasks! In my case, I've used the Meme maker Agent to generate appropriate meme based on the generated podcast. It was super easy and useful.&lt;/p&gt;

&lt;p&gt;I plan on using some other Agents to make PodcastX Agent even more functional and feature rich!&lt;/p&gt;

&lt;p&gt;Lack of documentation didn't make the experience easy though, and there are some bugs that made working with the builder difficult at times. But I'll have to say, I liked the overall experience.&lt;/p&gt;

&lt;p&gt;I have high hope for the platform &amp;amp; I loved the end product I've ended up making with Agent.ai builder.&lt;/p&gt;

&lt;p&gt;I'd recommend you guys to try out Agent.ai!&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>agentaichallenge</category>
      <category>ai</category>
      <category>machinelearning</category>
    </item>
  </channel>
</rss>
