<?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: atsushi-ambo</title>
    <description>The latest articles on DEV Community by atsushi-ambo (@atsushiambo).</description>
    <link>https://dev.to/atsushiambo</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%2F1008582%2Fd206b077-a2d1-467e-805b-814c705c4b13.jpg</url>
      <title>DEV Community: atsushi-ambo</title>
      <link>https://dev.to/atsushiambo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/atsushiambo"/>
    <language>en</language>
    <item>
      <title>Attending Manus’s First Event in Japan</title>
      <dc:creator>atsushi-ambo</dc:creator>
      <pubDate>Sun, 20 Apr 2025 11:08:38 +0000</pubDate>
      <link>https://dev.to/atsushiambo/attending-manuss-first-event-in-japan-3o4e</link>
      <guid>https://dev.to/atsushiambo/attending-manuss-first-event-in-japan-3o4e</guid>
      <description>&lt;h1&gt;
  
  
  Attending Manus’s First Event in Japan 🇯🇵
&lt;/h1&gt;

&lt;p&gt;Yesterday, I had the chance to join the first-ever &lt;a href="https://manus.im/?index=1" rel="noopener noreferrer"&gt;Manus&lt;/a&gt; event held in Tokyo, and I’d like to share my impressions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Event Overview
&lt;/h2&gt;

&lt;p&gt;The event kicked off with Manus’s CPO talking about the origin, development stories, and design philosophy behind Manus. What surprised me most was that, before releasing Manus, the team actually built an AI-driven browser.&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%2Fr5yj5hdeor9b0g4v9wy1.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%2Fr5yj5hdeor9b0g4v9wy1.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;They initially developed a Chrome extension, but since it depended on Chrome, they decided to build a standalone browser. After six months of development, they were just a week away from launch when they chose to cancel the project.&lt;/p&gt;

&lt;p&gt;It turned out that when the AI was processing, the browser would lock up and prevent any other tasks, effectively taking over the entire browser. So they decided to abandon the browser project—and that decision ultimately led to the creation of Manus.&lt;/p&gt;

&lt;h2&gt;
  
  
  AHPU: Agentic Hours Per User
&lt;/h2&gt;

&lt;p&gt;Most SaaS companies focus on increasing users’ time spent on their platforms. Manus takes the opposite approach: reducing the time users spend. The CPO argued that “time spent” is not a good metric.&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%2Fuxniovp7ua4ca8v4nwz0.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%2Fuxniovp7ua4ca8v4nwz0.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Because Manus continues working even after you close your laptop, you can spend time on chores, family, or anything else. This is the core idea behind AHPU (Agentic Hours Per User)—the hours your agent works on your behalf.&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%2Fqsf2fo3qiiwlqw67c86q.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%2Fqsf2fo3qiiwlqw67c86q.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The CPO also shared some heartwarming user feedback: a mother of three working in San Francisco said that using Manus to create documents gave her more time to spend with her children.&lt;/p&gt;

&lt;p&gt;It’s been about a month since Manus launched, and the response has been overwhelming. User numbers are growing rapidly, and the CPO can’t contain their excitement.&lt;/p&gt;

&lt;p&gt;They’ve only been sleeping two to three hours a night for the past month and are understandably exhausted—yet they’re still smiling. It’s clear how passionate and excited they are about what they’re building.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conversation with the CPO and Mr. Chaen
&lt;/h2&gt;

&lt;p&gt;In the second half, the CPO joined Mr. Chaen for a Q&amp;amp;A session, answering questions submitted in advance.&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%2Fgxdi96pe32cy8c692oyw.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%2Fgxdi96pe32cy8c692oyw.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The CPO revealed plans to open a Tokyo office and deploy servers in Japan, in partnership with AWS, to meet security and data management requirements for Japanese enterprises.&lt;/p&gt;

&lt;p&gt;Mr. Chaen, who regularly shares AI insights as an exclusive seminar instructor for GMO Internet Group employees, was also there in person—it was the first time I’d met him face-to-face, and his energy was infectious.&lt;/p&gt;

&lt;p&gt;The food at the event was also top-notch! 🍽️&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%2Fasjtz8zr3oxmqee3xq6f.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%2Fasjtz8zr3oxmqee3xq6f.png" alt=" " width="800" height="1422"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Connecting directly with people on the front lines of the AI era was an incredible experience. The concept of AHPU shared by the Manus CPO was particularly fascinating.&lt;/p&gt;

&lt;p&gt;Hearing how the team, though exhausted from sleepless nights, remains thrilled by the excitement of the moment left a lasting impression.&lt;/p&gt;

&lt;p&gt;Manus events will continue in the future—if you’re interested, I highly recommend attending. It’s a rare opportunity to experience the cutting edge of AI technology firsthand.&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%2Fukar74niluqmd6zttagr.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%2Fukar74niluqmd6zttagr.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>manus</category>
      <category>tokyo</category>
      <category>agents</category>
    </item>
    <item>
      <title>Attending Manus’s First Event in Japan</title>
      <dc:creator>atsushi-ambo</dc:creator>
      <pubDate>Sun, 20 Apr 2025 11:00:49 +0000</pubDate>
      <link>https://dev.to/atsushiambo/attending-manuss-first-event-in-japan-1dka</link>
      <guid>https://dev.to/atsushiambo/attending-manuss-first-event-in-japan-1dka</guid>
      <description>&lt;h1&gt;
  
  
  Attending Manus’s First Event in Japan 🇯🇵
&lt;/h1&gt;

&lt;p&gt;Yesterday, I had the chance to join the first-ever &lt;a href="https://manus.im/?index=1" rel="noopener noreferrer"&gt;Manus&lt;/a&gt; event held in Tokyo, and I’d like to share my impressions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Event Overview
&lt;/h2&gt;

&lt;p&gt;The event kicked off with Manus’s CPO talking about the origin, development stories, and design philosophy behind Manus. What surprised me most was that, before releasing Manus, the team actually built an AI-driven browser.&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/assets%2Fbrowser.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/assets%2Fbrowser.png" alt="AI Browser Built by Manus" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;They initially developed a Chrome extension, but since it depended on Chrome, they decided to build a standalone browser. After six months of development, they were just a week away from launch when they chose to cancel the project.&lt;/p&gt;

&lt;p&gt;It turned out that when the AI was processing, the browser would lock up and prevent any other tasks, effectively taking over the entire browser. So they decided to abandon the browser project—and that decision ultimately led to the creation of Manus.&lt;/p&gt;

&lt;h2&gt;
  
  
  AHPU: Agentic Hours Per User
&lt;/h2&gt;

&lt;p&gt;Most SaaS companies focus on increasing users’ time spent on their platforms. Manus takes the opposite approach: reducing the time users spend. The CPO argued that “time spent” is not a good metric.&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/assets%2Fuser-consumption.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/assets%2Fuser-consumption.png" alt="User Consumption Time" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Because Manus continues working even after you close your laptop, you can spend time on chores, family, or anything else. This is the core idea behind AHPU (Agentic Hours Per User)—the hours your agent works on your behalf.&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/assets%2Fahpu.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/assets%2Fahpu.png" alt="Explaining AHPU" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The CPO also shared some heartwarming user feedback: a mother of three working in San Francisco said that using Manus to create documents gave her more time to spend with her children.&lt;/p&gt;

&lt;p&gt;It’s been about a month since Manus launched, and the response has been overwhelming. User numbers are growing rapidly, and the CPO can’t contain their excitement.&lt;/p&gt;

&lt;p&gt;They’ve only been sleeping two to three hours a night for the past month and are understandably exhausted—yet they’re still smiling. It’s clear how passionate and excited they are about what they’re building.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conversation with the CPO and Mr. Chaen
&lt;/h2&gt;

&lt;p&gt;In the second half, the CPO joined Mr. Chaen for a Q&amp;amp;A session, answering questions submitted in advance.&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/assets%2Fdiscussion.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/assets%2Fdiscussion.png" alt="Discussion Session" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The CPO revealed plans to open a Tokyo office and deploy servers in Japan, in partnership with AWS, to meet security and data management requirements for Japanese enterprises.&lt;/p&gt;

&lt;p&gt;Mr. Chaen, who regularly shares AI insights as an exclusive seminar instructor for GMO Internet Group employees, was also there in person—it was the first time I’d met him face-to-face, and his energy was infectious.&lt;/p&gt;

&lt;p&gt;The food at the event was also top-notch! 🍽️&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/assets%2Ffood.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/assets%2Ffood.png" alt="Event Meals" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Connecting directly with people on the front lines of the AI era was an incredible experience. The concept of AHPU shared by the Manus CPO was particularly fascinating.&lt;/p&gt;

&lt;p&gt;Hearing how the team, though exhausted from sleepless nights, remains thrilled by the excitement of the moment left a lasting impression.&lt;/p&gt;

&lt;p&gt;Manus events will continue in the future—if you’re interested, I highly recommend attending. It’s a rare opportunity to experience the cutting edge of AI technology firsthand.&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/assets%2Fevent-group-photo.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/assets%2Fevent-group-photo.png" alt="Group Photo" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>manus</category>
      <category>tokyo</category>
      <category>agents</category>
    </item>
    <item>
      <title>Attending Manus’s First Event in Japan</title>
      <dc:creator>atsushi-ambo</dc:creator>
      <pubDate>Sun, 20 Apr 2025 10:49:26 +0000</pubDate>
      <link>https://dev.to/atsushiambo/attending-manuss-first-event-in-japan-2e7h</link>
      <guid>https://dev.to/atsushiambo/attending-manuss-first-event-in-japan-2e7h</guid>
      <description>&lt;h1&gt;
  
  
  Attending Manus’s First Event in Japan 🇯🇵
&lt;/h1&gt;

&lt;p&gt;Yesterday, I had the chance to join the first-ever &lt;a href="https://manus.im/?index=1" rel="noopener noreferrer"&gt;Manus&lt;/a&gt; event held in Tokyo, and I’d like to share my impressions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Event Overview
&lt;/h2&gt;

&lt;p&gt;The event kicked off with Manus’s CPO talking about the origin, development stories, and design philosophy behind Manus. What surprised me most was that, before releasing Manus, the team actually built an AI-driven browser.&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/assets%2Fbrowser.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/assets%2Fbrowser.png" alt="AI Browser Built by Manus" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;They initially developed a Chrome extension, but since it depended on Chrome, they decided to build a standalone browser. After six months of development, they were just a week away from launch when they chose to cancel the project.&lt;/p&gt;

&lt;p&gt;It turned out that when the AI was processing, the browser would lock up and prevent any other tasks, effectively taking over the entire browser. So they decided to abandon the browser project—and that decision ultimately led to the creation of Manus.&lt;/p&gt;

&lt;h2&gt;
  
  
  AHPU: Agentic Hours Per User
&lt;/h2&gt;

&lt;p&gt;Most SaaS companies focus on increasing users’ time spent on their platforms. Manus takes the opposite approach: reducing the time users spend. The CPO argued that “time spent” is not a good metric.&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/assets%2Fuser-consumption.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/assets%2Fuser-consumption.png" alt="User Consumption Time" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Because Manus continues working even after you close your laptop, you can spend time on chores, family, or anything else. This is the core idea behind AHPU (Agentic Hours Per User)—the hours your agent works on your behalf.&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/assets%2Fahpu.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/assets%2Fahpu.png" alt="Explaining AHPU" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The CPO also shared some heartwarming user feedback: a mother of three working in San Francisco said that using Manus to create documents gave her more time to spend with her children.&lt;/p&gt;

&lt;p&gt;It’s been about a month since Manus launched, and the response has been overwhelming. User numbers are growing rapidly, and the CPO can’t contain their excitement.&lt;/p&gt;

&lt;p&gt;They’ve only been sleeping two to three hours a night for the past month and are understandably exhausted—yet they’re still smiling. It’s clear how passionate and excited they are about what they’re building.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conversation with the CPO and Mr. Chaen
&lt;/h2&gt;

&lt;p&gt;In the second half, the CPO joined Mr. Chaen for a Q&amp;amp;A session, answering questions submitted in advance.&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/assets%2Fdiscussion.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/assets%2Fdiscussion.png" alt="Discussion Session" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The CPO revealed plans to open a Tokyo office and deploy servers in Japan, in partnership with AWS, to meet security and data management requirements for Japanese enterprises.&lt;/p&gt;

&lt;p&gt;Mr. Chaen, who regularly shares AI insights as an exclusive seminar instructor for GMO Internet Group employees, was also there in person—it was the first time I’d met him face-to-face, and his energy was infectious.&lt;/p&gt;

&lt;p&gt;The food at the event was also top-notch! 🍽️&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/assets%2Ffood.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/assets%2Ffood.png" alt="Event Meals" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Connecting directly with people on the front lines of the AI era was an incredible experience. The concept of AHPU shared by the Manus CPO was particularly fascinating.&lt;/p&gt;

&lt;p&gt;Hearing how the team, though exhausted from sleepless nights, remains thrilled by the excitement of the moment left a lasting impression.&lt;/p&gt;

&lt;p&gt;Manus events will continue in the future—if you’re interested, I highly recommend attending. It’s a rare opportunity to experience the cutting edge of AI technology firsthand.&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/assets%2Fevent-group-photo.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/assets%2Fevent-group-photo.png" alt="Group Photo" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>manus</category>
      <category>tokyo</category>
      <category>agents</category>
    </item>
    <item>
      <title>I Took a Popular Vibe Coding Course and Built a Sample App</title>
      <dc:creator>atsushi-ambo</dc:creator>
      <pubDate>Mon, 31 Mar 2025 02:12:20 +0000</pubDate>
      <link>https://dev.to/atsushiambo/i-took-a-popular-vibe-coding-course-and-built-a-sample-app-3124</link>
      <guid>https://dev.to/atsushiambo/i-took-a-popular-vibe-coding-course-and-built-a-sample-app-3124</guid>
      <description>&lt;h1&gt;
  
  
  Experiencing Vibe Coding - Building Web Apps with AI Agents
&lt;/h1&gt;

&lt;p&gt;Hello, I'm Atsushi from the SRE team at GMO Media. In this article, I'd like to share my experience taking the "&lt;a href="https://www.deeplearning.ai/short-courses/vibe-coding-101-with-replit/" rel="noopener noreferrer"&gt;Vibe Coding 101 with Replit&lt;/a&gt;" course offered by DeepLearning.AI and building sample applications with AI agents.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Vibe Coding?
&lt;/h2&gt;

&lt;p&gt;"Vibe Coding" is a new coding style where you delegate most of the coding work to AI agents while focusing on application architecture and feature design. It's not just about throwing a prompt at an AI and accepting all its suggestions; it involves structuring your work, refining prompts, and using frameworks that lead to more efficient code.&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%2Fr2bt7un05x57bdzcno3y.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%2Fr2bt7un05x57bdzcno3y.png" alt="Image description" width="800" height="388"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Course Overview
&lt;/h2&gt;

&lt;p&gt;This course was created in partnership with &lt;a href="https://replit.com/" rel="noopener noreferrer"&gt;Replit (an online coding environment)&lt;/a&gt;, with Michele Catasta (President of Replit) and Matt Palmer (Head of Developer Relations) as instructors. Through about 1 hour and 34 minutes of video lessons, you learn how to build and deploy two web applications using AI coding agents.&lt;/p&gt;

&lt;p&gt;The course consists of 7 modules:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt; (3 minutes)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Course overview and goals&lt;/li&gt;
&lt;li&gt;Basic concepts of Vibe Coding&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Principles of Agent Development&lt;/strong&gt; (18 minutes)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Effective collaboration with AI agents&lt;/li&gt;
&lt;li&gt;Five-skill framework for leveraging agents&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Planning and Building an SEO Analyzer&lt;/strong&gt; (23 minutes)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Creating a Product Requirements Document (PRD) and wireframes&lt;/li&gt;
&lt;li&gt;Developing prototypes using AI agents&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Implementing SEO Analysis Features&lt;/strong&gt; (12 minutes)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Improving UI and adding features&lt;/li&gt;
&lt;li&gt;Error handling and debugging methods&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Planning and Building a Voting App&lt;/strong&gt; (26 minutes)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Designing data models&lt;/li&gt;
&lt;li&gt;Implementing a comparison voting system&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Enhancing the National Parks Voting App&lt;/strong&gt; (7 minutes)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Integrating a complete dataset&lt;/li&gt;
&lt;li&gt;Implementing data persistence and storage features&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Next Steps and Best Practices&lt;/strong&gt; (4 minutes)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Applying to more complex projects&lt;/li&gt;
&lt;li&gt;Tips and tricks for utilizing Vibe Coding&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;Of the two applications introduced in the course, I created the SEO Analyzer in Replit, so I'll detail that process.&lt;/p&gt;

&lt;h3&gt;
  
  
  SEO Analyzer
&lt;/h3&gt;

&lt;p&gt;This is a tool that analyzes SEO-related information from a website when you input its URL.&lt;/p&gt;

&lt;p&gt;Main features of the app:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Analyzes SEO-related information for websites&lt;/li&gt;
&lt;li&gt;Checks meta tags and SEO elements&lt;/li&gt;
&lt;li&gt;Evaluates mobile-friendliness&lt;/li&gt;
&lt;li&gt;Provides improvement suggestions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In this project, I communicated requirements to an AI agent who created a basic prototype. Then, I gradually improved its completeness by giving instructions for UI improvements and feature additions.&lt;/p&gt;

&lt;h4&gt;
  
  
  Development in Replit
&lt;/h4&gt;

&lt;p&gt;By giving the AI agent specific prompts like the one below, I was able to create an application in just a few minutes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Help me create an interactive app that displays the SEO (meta) tags for ANY website in an interactive and visual way to check that they're properly implemented.

The app should fetch the HTML for a site, then provide feedback on SEO tags in accordance with best practices for SEO optimization.

The app should give google and Social media previews.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fwzwp5o0hs2gmis223it4.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%2Fwzwp5o0hs2gmis223it4.png" alt="Image description" width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The completed app retrieves meta tags from the entered URL and visually displays previews for Google search results and social media. It also checks important SEO points and suggests improvements if needed.&lt;/p&gt;

&lt;p&gt;Since it wasn't responsive for smartphones, I conveyed the following prompt to have it fixed:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;make my app fully responsive and mobile friendly
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fvl9o550erkvbcuihj2fq.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%2Fvl9o550erkvbcuihj2fq.png" alt="Image description" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This process of starting with simple prompts and adding/improving features through dialogue with the AI agent is the essence of Vibe Coding.&lt;/p&gt;

&lt;h2&gt;
  
  
  Five Skills Needed for Vibe Coding
&lt;/h2&gt;

&lt;p&gt;The course introduced five skills for effective "Vibe Coding":&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Thinking&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Using Frameworks&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Checkpoints&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Debugging&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Providing Context&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&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%2Fqdw2ccr6zoib8jn4fel8.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%2Fqdw2ccr6zoib8jn4fel8.png" alt="Image description" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Recommend This Course
&lt;/h2&gt;

&lt;p&gt;After taking this course, I found tremendous value in the experience of collaborating with AI agents to develop applications. Here are some reasons:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Efficient Learning Curve
&lt;/h3&gt;

&lt;p&gt;In traditional programming learning, you need to first learn language syntax and framework usage, but with Vibe Coding, you can start immediately from the idea of "what you want to create." Since AI agents handle implementation details, you can focus on higher-level concepts.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Deeper Understanding of Implementation
&lt;/h3&gt;

&lt;p&gt;Surprisingly, having AI write code increased my opportunities to understand how that code works. When I ask "What does this code do?", the AI explains in detail, making it an effective learning tool.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Accelerated Prototyping
&lt;/h3&gt;

&lt;p&gt;The time from idea to prototype is dramatically shortened. Projects that would normally take days take shape in hours, allowing you to try more ideas.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Prompt Engineering Skills Improvement
&lt;/h3&gt;

&lt;p&gt;The ability to effectively instruct AI has become an extremely important skill for modern programmers. This course teaches specific prompt strategies.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Course Experience
&lt;/h2&gt;

&lt;p&gt;While taking the course, I created an SEO analyzer following the instructions. I started with a simple UI implementing only basic functions and gradually added features.&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%2Fjp44ot9a885nuc98evbv.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%2Fjp44ot9a885nuc98evbv.png" alt="Image description" width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I was particularly impressed with the debugging process when errors occurred. When I communicated error messages and code status to the AI, it quickly suggested the causes and solutions. I felt this was a much more understandable approach for beginners compared to traditional debugging methods.&lt;/p&gt;

&lt;p&gt;Also, using Replit eliminated the hassle of environment setup, allowing me to focus on coding immediately. Replit integrates an editor, package manager, and deployment tools, enabling one-stop development to deployment.&lt;/p&gt;

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

&lt;p&gt;The "Vibe Coding 101 with Replit" course is an excellent opportunity to learn effective collaboration methods with AI agents. From programming beginners to experienced developers, you can practically learn new development approaches utilizing AI.&lt;/p&gt;

&lt;p&gt;A wonderful point is experiencing the entire process from project conception to prototyping, refinement, and deployment. The skills learned in this course are applicable to actual business projects and directly lead to improved development efficiency.&lt;/p&gt;

&lt;p&gt;I believe collaboration with AI agents will become standard in future programming. By acquiring "Vibe Coding" skills ahead of this trend, we can focus on more creative and advanced projects.&lt;/p&gt;

&lt;p&gt;Borrowing the power of AI while humans focus on higher-order problem solving and creativity—why not experience this new form of programming through this course?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>webdev</category>
      <category>replit</category>
    </item>
    <item>
      <title>I Took a Popular Vibe Coding Course and Built a Sample App</title>
      <dc:creator>atsushi-ambo</dc:creator>
      <pubDate>Mon, 31 Mar 2025 02:07:19 +0000</pubDate>
      <link>https://dev.to/atsushiambo/i-took-a-popular-vibe-coding-course-and-built-a-sample-app-55o8</link>
      <guid>https://dev.to/atsushiambo/i-took-a-popular-vibe-coding-course-and-built-a-sample-app-55o8</guid>
      <description>&lt;h1&gt;
  
  
  Experiencing Vibe Coding - Building Web Apps with AI Agents
&lt;/h1&gt;

&lt;p&gt;Hello, I'm Atsushi from the SRE team at GMO Media. In this article, I'd like to share my experience taking the "&lt;a href="https://www.deeplearning.ai/short-courses/vibe-coding-101-with-replit/" rel="noopener noreferrer"&gt;Vibe Coding 101 with Replit&lt;/a&gt;" course offered by DeepLearning.AI and building sample applications with AI agents.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Vibe Coding?
&lt;/h2&gt;

&lt;p&gt;"Vibe Coding" is a new coding style where you delegate most of the coding work to AI agents while focusing on application architecture and feature design. It's not just about throwing a prompt at an AI and accepting all its suggestions; it involves structuring your work, refining prompts, and using frameworks that lead to more efficient code.&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%2Fraw.githubusercontent.com%2Fatsushi-ambo%2Fdev.to%2Fmain%2Fblog-posts%2Fvibe-coding-experience%2Fassets%2Fvibe_concept.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%2Fraw.githubusercontent.com%2Fatsushi-ambo%2Fdev.to%2Fmain%2Fblog-posts%2Fvibe-coding-experience%2Fassets%2Fvibe_concept.png" alt="Vibe Coding concept explanation slide" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Course Overview
&lt;/h2&gt;

&lt;p&gt;This course was created in partnership with &lt;a href="https://replit.com/" rel="noopener noreferrer"&gt;Replit (an online coding environment)&lt;/a&gt;, with Michele Catasta (President of Replit) and Matt Palmer (Head of Developer Relations) as instructors. Through about 1 hour and 34 minutes of video lessons, you learn how to build and deploy two web applications using AI coding agents.&lt;/p&gt;

&lt;p&gt;The course consists of 7 modules:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt; (3 minutes)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Course overview and goals&lt;/li&gt;
&lt;li&gt;Basic concepts of Vibe Coding&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Principles of Agent Development&lt;/strong&gt; (18 minutes)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Effective collaboration with AI agents&lt;/li&gt;
&lt;li&gt;Five-skill framework for leveraging agents&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Planning and Building an SEO Analyzer&lt;/strong&gt; (23 minutes)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Creating a Product Requirements Document (PRD) and wireframes&lt;/li&gt;
&lt;li&gt;Developing prototypes using AI agents&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Implementing SEO Analysis Features&lt;/strong&gt; (12 minutes)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Improving UI and adding features&lt;/li&gt;
&lt;li&gt;Error handling and debugging methods&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Planning and Building a Voting App&lt;/strong&gt; (26 minutes)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Designing data models&lt;/li&gt;
&lt;li&gt;Implementing a comparison voting system&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Enhancing the National Parks Voting App&lt;/strong&gt; (7 minutes)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Integrating a complete dataset&lt;/li&gt;
&lt;li&gt;Implementing data persistence and storage features&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Next Steps and Best Practices&lt;/strong&gt; (4 minutes)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Applying to more complex projects&lt;/li&gt;
&lt;li&gt;Tips and tricks for utilizing Vibe Coding&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;Of the two applications introduced in the course, I created the SEO Analyzer in Replit, so I'll detail that process.&lt;/p&gt;

&lt;h3&gt;
  
  
  SEO Analyzer
&lt;/h3&gt;

&lt;p&gt;This is a tool that analyzes SEO-related information from a website when you input its URL.&lt;/p&gt;

&lt;p&gt;Main features of the app:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Analyzes SEO-related information for websites&lt;/li&gt;
&lt;li&gt;Checks meta tags and SEO elements&lt;/li&gt;
&lt;li&gt;Evaluates mobile-friendliness&lt;/li&gt;
&lt;li&gt;Provides improvement suggestions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In this project, I communicated requirements to an AI agent who created a basic prototype. Then, I gradually improved its completeness by giving instructions for UI improvements and feature additions.&lt;/p&gt;

&lt;h4&gt;
  
  
  Development in Replit
&lt;/h4&gt;

&lt;p&gt;By giving the AI agent specific prompts like the one below, I was able to create an application in just a few minutes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Help me create an interactive app that displays the SEO (meta) tags for ANY website in an interactive and visual way to check that they're properly implemented.

The app should fetch the HTML for a site, then provide feedback on SEO tags in accordance with best practices for SEO optimization.

The app should give google and Social media previews.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fraw.githubusercontent.com%2Fatsushi-ambo%2Fdev.to%2Fmain%2Fblog-posts%2Fvibe-coding-experience%2Fassets%2Fseo_analyzer.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%2Fraw.githubusercontent.com%2Fatsushi-ambo%2Fdev.to%2Fmain%2Fblog-posts%2Fvibe-coding-experience%2Fassets%2Fseo_analyzer.png" alt="SEO Analyzer app screenshot" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The completed app retrieves meta tags from the entered URL and visually displays previews for Google search results and social media. It also checks important SEO points and suggests improvements if needed.&lt;/p&gt;

&lt;p&gt;Since it wasn't responsive for smartphones, I conveyed the following prompt to have it fixed:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;make my app fully responsive and mobile friendly
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fraw.githubusercontent.com%2Fatsushi-ambo%2Fdev.to%2Fmain%2Fblog-posts%2Fvibe-coding-experience%2Fassets%2Fseo_responsive.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%2Fraw.githubusercontent.com%2Fatsushi-ambo%2Fdev.to%2Fmain%2Fblog-posts%2Fvibe-coding-experience%2Fassets%2Fseo_responsive.png" alt="SEO Analyzer responsive design" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This process of starting with simple prompts and adding/improving features through dialogue with the AI agent is the essence of Vibe Coding.&lt;/p&gt;

&lt;h2&gt;
  
  
  Five Skills Needed for Vibe Coding
&lt;/h2&gt;

&lt;p&gt;The course introduced five skills for effective "Vibe Coding":&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Thinking&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Using Frameworks&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Checkpoints&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Debugging&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Providing Context&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&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%2Fraw.githubusercontent.com%2Fatsushi-ambo%2Fdev.to%2Fmain%2Fblog-posts%2Fvibe-coding-experience%2Fassets%2Fvibe_skills.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%2Fraw.githubusercontent.com%2Fatsushi-ambo%2Fdev.to%2Fmain%2Fblog-posts%2Fvibe-coding-experience%2Fassets%2Fvibe_skills.png" alt="Vibe Coding's five-skill framework" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Recommend This Course
&lt;/h2&gt;

&lt;p&gt;After taking this course, I found tremendous value in the experience of collaborating with AI agents to develop applications. Here are some reasons:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Efficient Learning Curve
&lt;/h3&gt;

&lt;p&gt;In traditional programming learning, you need to first learn language syntax and framework usage, but with Vibe Coding, you can start immediately from the idea of "what you want to create." Since AI agents handle implementation details, you can focus on higher-level concepts.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Deeper Understanding of Implementation
&lt;/h3&gt;

&lt;p&gt;Surprisingly, having AI write code increased my opportunities to understand how that code works. When I ask "What does this code do?", the AI explains in detail, making it an effective learning tool.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Accelerated Prototyping
&lt;/h3&gt;

&lt;p&gt;The time from idea to prototype is dramatically shortened. Projects that would normally take days take shape in hours, allowing you to try more ideas.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Prompt Engineering Skills Improvement
&lt;/h3&gt;

&lt;p&gt;The ability to effectively instruct AI has become an extremely important skill for modern programmers. This course teaches specific prompt strategies.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Course Experience
&lt;/h2&gt;

&lt;p&gt;While taking the course, I created an SEO analyzer following the instructions. I started with a simple UI implementing only basic functions and gradually added features.&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%2Fraw.githubusercontent.com%2Fatsushi-ambo%2Fdev.to%2Fmain%2Fblog-posts%2Fvibe-coding-experience%2Fassets%2Freplit_screen.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%2Fraw.githubusercontent.com%2Fatsushi-ambo%2Fdev.to%2Fmain%2Fblog-posts%2Fvibe-coding-experience%2Fassets%2Freplit_screen.png" alt="Replit screen during the course" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I was particularly impressed with the debugging process when errors occurred. When I communicated error messages and code status to the AI, it quickly suggested the causes and solutions. I felt this was a much more understandable approach for beginners compared to traditional debugging methods.&lt;/p&gt;

&lt;p&gt;Also, using Replit eliminated the hassle of environment setup, allowing me to focus on coding immediately. Replit integrates an editor, package manager, and deployment tools, enabling one-stop development to deployment.&lt;/p&gt;

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

&lt;p&gt;The "Vibe Coding 101 with Replit" course is an excellent opportunity to learn effective collaboration methods with AI agents. From programming beginners to experienced developers, you can practically learn new development approaches utilizing AI.&lt;/p&gt;

&lt;p&gt;A wonderful point is experiencing the entire process from project conception to prototyping, refinement, and deployment. The skills learned in this course are applicable to actual business projects and directly lead to improved development efficiency.&lt;/p&gt;

&lt;p&gt;I believe collaboration with AI agents will become standard in future programming. By acquiring "Vibe Coding" skills ahead of this trend, we can focus on more creative and advanced projects.&lt;/p&gt;

&lt;p&gt;Borrowing the power of AI while humans focus on higher-order problem solving and creativity—why not experience this new form of programming through this course?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>webdev</category>
      <category>replit</category>
    </item>
    <item>
      <title>I Took a Popular Vibe Coding Course and Built a Sample App</title>
      <dc:creator>atsushi-ambo</dc:creator>
      <pubDate>Mon, 31 Mar 2025 01:51:04 +0000</pubDate>
      <link>https://dev.to/atsushiambo/i-took-a-popular-vibe-coding-course-and-built-a-sample-app-3g55</link>
      <guid>https://dev.to/atsushiambo/i-took-a-popular-vibe-coding-course-and-built-a-sample-app-3g55</guid>
      <description>&lt;h1&gt;
  
  
  Experiencing Vibe Coding - Building Web Apps with AI Agents
&lt;/h1&gt;

&lt;p&gt;Hello, I'm Atsushi from the SRE team at GMO Media. In this article, I'd like to share my experience taking the "&lt;a href="https://www.deeplearning.ai/short-courses/vibe-coding-101-with-replit/" rel="noopener noreferrer"&gt;Vibe Coding 101 with Replit&lt;/a&gt;" course offered by DeepLearning.AI and building sample applications with AI agents.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Vibe Coding?
&lt;/h2&gt;

&lt;p&gt;"Vibe Coding" is a new coding style where you delegate most of the coding work to AI agents while focusing on application architecture and feature design. It's not just about throwing a prompt at an AI and accepting all its suggestions; it involves structuring your work, refining prompts, and using frameworks that lead to more efficient code.&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%2Frnzt9rh4l9fbrfcy687j.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%2Frnzt9rh4l9fbrfcy687j.png" alt="Image description" width="800" height="388"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Course Overview
&lt;/h2&gt;

&lt;p&gt;This course was created in partnership with &lt;a href="https://replit.com/" rel="noopener noreferrer"&gt;Replit (an online coding environment)&lt;/a&gt;, with Michele Catasta (President of Replit) and Matt Palmer (Head of Developer Relations) as instructors. Through about 1 hour and 34 minutes of video lessons, you learn how to build and deploy two web applications using AI coding agents.&lt;/p&gt;

&lt;p&gt;The course consists of 7 modules:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt; (3 minutes)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Course overview and goals&lt;/li&gt;
&lt;li&gt;Basic concepts of Vibe Coding&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Principles of Agent Development&lt;/strong&gt; (18 minutes)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Effective collaboration with AI agents&lt;/li&gt;
&lt;li&gt;Five-skill framework for leveraging agents&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Planning and Building an SEO Analyzer&lt;/strong&gt; (23 minutes)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Creating a Product Requirements Document (PRD) and wireframes&lt;/li&gt;
&lt;li&gt;Developing prototypes using AI agents&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Implementing SEO Analysis Features&lt;/strong&gt; (12 minutes)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Improving UI and adding features&lt;/li&gt;
&lt;li&gt;Error handling and debugging methods&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Planning and Building a Voting App&lt;/strong&gt; (26 minutes)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Designing data models&lt;/li&gt;
&lt;li&gt;Implementing a comparison voting system&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Enhancing the National Parks Voting App&lt;/strong&gt; (7 minutes)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Integrating a complete dataset&lt;/li&gt;
&lt;li&gt;Implementing data persistence and storage features&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Next Steps and Best Practices&lt;/strong&gt; (4 minutes)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Applying to more complex projects&lt;/li&gt;
&lt;li&gt;Tips and tricks for utilizing Vibe Coding&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;Of the two applications introduced in the course, I created the SEO Analyzer in Replit, so I'll detail that process.&lt;/p&gt;

&lt;h3&gt;
  
  
  SEO Analyzer
&lt;/h3&gt;

&lt;p&gt;This is a tool that analyzes SEO-related information from a website when you input its URL.&lt;/p&gt;

&lt;p&gt;Main features of the app:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Analyzes SEO-related information for websites&lt;/li&gt;
&lt;li&gt;Checks meta tags and SEO elements&lt;/li&gt;
&lt;li&gt;Evaluates mobile-friendliness&lt;/li&gt;
&lt;li&gt;Provides improvement suggestions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In this project, I communicated requirements to an AI agent who created a basic prototype. Then, I gradually improved its completeness by giving instructions for UI improvements and feature additions.&lt;/p&gt;

&lt;h4&gt;
  
  
  Development in Replit
&lt;/h4&gt;

&lt;p&gt;By giving the AI agent specific prompts like the one below, I was able to create an application in just a few minutes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Help me create an interactive app that displays the SEO (meta) tags for ANY website in an interactive and visual way to check that they're properly implemented.

The app should fetch the HTML for a site, then provide feedback on SEO tags in accordance with best practices for SEO optimization.

The app should give google and Social media previews.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fhlazght60udys46lu4vo.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%2Fhlazght60udys46lu4vo.png" alt="Image description" width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The completed app retrieves meta tags from the entered URL and visually displays previews for Google search results and social media. It also checks important SEO points and suggests improvements if needed.&lt;/p&gt;

&lt;p&gt;Since it wasn't responsive for smartphones, I conveyed the following prompt to have it fixed:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;make my app fully responsive and mobile friendly
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fetyk4x2vp4vv3su93zjo.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%2Fetyk4x2vp4vv3su93zjo.png" alt="Image description" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This process of starting with simple prompts and adding/improving features through dialogue with the AI agent is the essence of Vibe Coding.&lt;/p&gt;

&lt;h2&gt;
  
  
  Five Skills Needed for Vibe Coding
&lt;/h2&gt;

&lt;p&gt;The course introduced five skills for effective "Vibe Coding":&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Thinking&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Using Frameworks&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Checkpoints&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Debugging&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Providing Context&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&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%2F8n5psjcgjvji0s6dqx7n.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%2F8n5psjcgjvji0s6dqx7n.png" alt="Image description" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Recommend This Course
&lt;/h2&gt;

&lt;p&gt;After taking this course, I found tremendous value in the experience of collaborating with AI agents to develop applications. Here are some reasons:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Efficient Learning Curve
&lt;/h3&gt;

&lt;p&gt;In traditional programming learning, you need to first learn language syntax and framework usage, but with Vibe Coding, you can start immediately from the idea of "what you want to create." Since AI agents handle implementation details, you can focus on higher-level concepts.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Deeper Understanding of Implementation
&lt;/h3&gt;

&lt;p&gt;Surprisingly, having AI write code increased my opportunities to understand how that code works. When I ask "What does this code do?", the AI explains in detail, making it an effective learning tool.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Accelerated Prototyping
&lt;/h3&gt;

&lt;p&gt;The time from idea to prototype is dramatically shortened. Projects that would normally take days take shape in hours, allowing you to try more ideas.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Prompt Engineering Skills Improvement
&lt;/h3&gt;

&lt;p&gt;The ability to effectively instruct AI has become an extremely important skill for modern programmers. This course teaches specific prompt strategies.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Course Experience
&lt;/h2&gt;

&lt;p&gt;While taking the course, I created an SEO analyzer following the instructions. I started with a simple UI implementing only basic functions and gradually added features.&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%2F6bfggr94m58s6ntusjvk.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%2F6bfggr94m58s6ntusjvk.png" alt="Image description" width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I was particularly impressed with the debugging process when errors occurred. When I communicated error messages and code status to the AI, it quickly suggested the causes and solutions. I felt this was a much more understandable approach for beginners compared to traditional debugging methods.&lt;/p&gt;

&lt;p&gt;Also, using Replit eliminated the hassle of environment setup, allowing me to focus on coding immediately. Replit integrates an editor, package manager, and deployment tools, enabling one-stop development to deployment.&lt;/p&gt;

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

&lt;p&gt;The "Vibe Coding 101 with Replit" course is an excellent opportunity to learn effective collaboration methods with AI agents. From programming beginners to experienced developers, you can practically learn new development approaches utilizing AI.&lt;/p&gt;

&lt;p&gt;A wonderful point is experiencing the entire process from project conception to prototyping, refinement, and deployment. The skills learned in this course are applicable to actual business projects and directly lead to improved development efficiency.&lt;/p&gt;

&lt;p&gt;I believe collaboration with AI agents will become standard in future programming. By acquiring "Vibe Coding" skills ahead of this trend, we can focus on more creative and advanced projects.&lt;/p&gt;

&lt;p&gt;Borrowing the power of AI while humans focus on higher-order problem solving and creativity—why not experience this new form of programming through this course?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>webdev</category>
      <category>replit</category>
    </item>
    <item>
      <title>Running Qwen, Nearly as Powerful as DeepSeek, on a MacBook Pro</title>
      <dc:creator>atsushi-ambo</dc:creator>
      <pubDate>Wed, 05 Feb 2025 13:05:38 +0000</pubDate>
      <link>https://dev.to/atsushiambo/running-qwen-nearly-as-powerful-as-deepseek-on-a-macbook-pro-367k</link>
      <guid>https://dev.to/atsushiambo/running-qwen-nearly-as-powerful-as-deepseek-on-a-macbook-pro-367k</guid>
      <description>&lt;h1&gt;
  
  
  Running Qwen Locally on a MacBook Pro
&lt;/h1&gt;

&lt;p&gt;Qwen (&lt;a href="https://github.com/QwenLM/Qwen" rel="noopener noreferrer"&gt;Qwen GitHub Repository&lt;/a&gt;) has been gaining attention recently as a powerful open-source large language model (LLM). I decided to give it a spin on my MacBook Pro using &lt;a href="https://github.com/ollama/ollama" rel="noopener noreferrer"&gt;Ollama&lt;/a&gt;, a platform designed for running local LLMs. While Qwen2.5-Max boasts the highest performance, my setup could only handle the smaller &lt;strong&gt;Qwen2.5 (32B)&lt;/strong&gt; model. Here's what I found!&lt;/p&gt;

&lt;h2&gt;
  
  
  Hardware and Software Environment
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Device&lt;/strong&gt;: MacBook Pro (M3 Pro)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Memory&lt;/strong&gt;: 36GB RAM&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Software&lt;/strong&gt;: Latest version of Ollama&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Installing Ollama
&lt;/h2&gt;

&lt;p&gt;To get started, I installed Ollama. With Homebrew, the installation process is straightforward:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew &lt;span class="nb"&gt;install &lt;/span&gt;ollama

&lt;span class="c"&gt;# Verify installation&lt;/span&gt;
ollama &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;span class="c"&gt;# Output: ollama version is 0.5.7&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Downloading and Running Qwen2.5 (32B)
&lt;/h2&gt;

&lt;p&gt;Once Ollama was set up, I proceeded to download and run the Qwen2.5 (32B) model:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama run qwen2.5:32b
&lt;span class="c"&gt;# Output during the first run:&lt;/span&gt;
pulling manifest 
pulling eabc98a9bcbf... 100% ▕█████████████████████████████████████████████████████████████████████████████▏  19 GB
...
success
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The model weighs about &lt;strong&gt;20GB&lt;/strong&gt;, so depending on your internet speed, downloading may take some time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Memory Usage Insights
&lt;/h2&gt;

&lt;p&gt;Running the Qwen2.5 (32B) model requires substantial memory. With my MacBook Pro M3 and its 36GB RAM, these were the key observations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Memory Usage&lt;/strong&gt;: About &lt;strong&gt;30-34GB&lt;/strong&gt; was utilized while running the model. (Baseline system memory before starting: ~15GB.)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Performance&lt;/strong&gt;: Each response took around &lt;strong&gt;1–2 minutes&lt;/strong&gt;, varying based on the complexity of the prompt.&lt;/li&gt;
&lt;li&gt;Extended usage caused the laptop fan to start running, but the overall experience was stable.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Caveats to Keep in Mind
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Large Initial Download&lt;/strong&gt;: Be prepared for the ~20GB download on the first launch.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;High Memory Usage&lt;/strong&gt;: Ensure you manage other applications to free up resources.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Slower Response Without GPU&lt;/strong&gt;: In setups without a dedicated GPU, inference times can be slower.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Example Task: Round-Trip Train Calculation
&lt;/h2&gt;

&lt;p&gt;To test the model’s reasoning and computation abilities, I used the following prompt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama run qwen2.5:32b
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; A train travels from city A to city B at 60 km/h and takes 2 hours. On the &lt;span class="k"&gt;return &lt;/span&gt;journey, due to headwind, it travels at 40 km/h. 
... 1&lt;span class="o"&gt;)&lt;/span&gt; What is the total distance between cities A and B?
... 2&lt;span class="o"&gt;)&lt;/span&gt; How long does the &lt;span class="k"&gt;return &lt;/span&gt;journey take?
... 3&lt;span class="o"&gt;)&lt;/span&gt; What is the average speed &lt;span class="k"&gt;for &lt;/span&gt;the entire round trip?
... Please show all calculations.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Qwen's Response
&lt;/h3&gt;

&lt;p&gt;Below is the model's detailed response:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;### 1) Total Distance Between Cities A and B
Distance = Speed × Time  
= 60 km/h × 2 h   
= **120 km**

The total distance is 120 km.

### 2) Duration of the Return Journey
Time = Distance ÷ Speed  
= 120 km ÷ 40 km/h  
= **3 hours**

The return journey takes 3 hours.

### 3) Average Speed for the Entire Round Trip
- Total Distance = 120 km (to B) + 120 km (return) = **240 km**
- Total Time = 2 hours (to B) + 3 hours (return) = **5 hours**
- Average Speed = Total Distance ÷ Total Time  
= 240 km ÷ 5 h  
= **48 km/h**

The average speed for the round trip is 48 km/h.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I cross-verified the results with &lt;strong&gt;Gemini&lt;/strong&gt;, &lt;strong&gt;GPT-4&lt;/strong&gt;, and &lt;strong&gt;Claude 3.5&lt;/strong&gt;, all of which produced the same answers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Uninstalling Qwen
&lt;/h2&gt;

&lt;p&gt;If you no longer need the model, it can be removed efficiently using the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama &lt;span class="nb"&gt;rm &lt;/span&gt;qwen2.5:32b
&lt;span class="c"&gt;# Output: deleted 'qwen2.5:32b'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;Running Qwen2.5 (32B) on a &lt;strong&gt;MacBook Pro (M3, 36GB RAM)&lt;/strong&gt; was possible, albeit with tight memory constraints. I had to close other applications to allocate sufficient resources. Despite the slower response times in a CPU-only environment, Qwen did a commendable job handling complex queries. &lt;/p&gt;

&lt;p&gt;Although my benchmark was limited to Qwen2.5 (32B), the official &lt;a href="https://qwenlm.github.io/blog/qwen2.5-max/" rel="noopener noreferrer"&gt;Qwen2.5-Max benchmark&lt;/a&gt; suggests its performance is on par with models like DeepSeek-V3 and GPT-4. This makes Qwen an exciting open-source alternative worth watching!&lt;/p&gt;

&lt;p&gt;Are you planning to try Qwen on your setup? Let me know your experience in the comments below! 🚀&lt;/p&gt;

</description>
      <category>deepseek</category>
      <category>qwen</category>
      <category>llm</category>
    </item>
    <item>
      <title>Exploring Cursor: The AI Editor Revolutionizing Content Creation</title>
      <dc:creator>atsushi-ambo</dc:creator>
      <pubDate>Tue, 10 Sep 2024 01:56:49 +0000</pubDate>
      <link>https://dev.to/atsushiambo/exploring-cursor-the-ai-editor-revolutionizing-content-creation-39ee</link>
      <guid>https://dev.to/atsushiambo/exploring-cursor-the-ai-editor-revolutionizing-content-creation-39ee</guid>
      <description>&lt;p&gt;In the ever-evolving landscape of digital content creation, Cursor stands out as a powerful AI editor designed to enhance the writing process. This blog delves into the features, benefits, and overall impact of Cursor on writers, marketers, and content creators alike. By leveraging advanced artificial intelligence, Cursor not only streamlines the editing process but also empowers users to produce high-quality content with ease.&lt;/p&gt;

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

&lt;p&gt;Cursor is an AI-driven writing assistant that helps users craft, edit, and refine their written content. Whether you're a seasoned writer or a novice, Cursor offers tools that cater to various writing needs, from grammar and style checks to content suggestions and organization tips. Its intuitive interface and smart algorithms make it an invaluable resource for anyone looking to improve their writing efficiency.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Features of Cursor
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Real-Time Editing
&lt;/h3&gt;

&lt;p&gt;One of the standout features of Cursor is its real-time editing capability. As you write, Cursor analyzes your text and provides instant feedback on grammar, punctuation, and style. This allows you to make corrections on the fly, ensuring that your content is polished and professional before you hit publish.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Content Suggestions
&lt;/h3&gt;

&lt;p&gt;Cursor goes beyond basic editing by offering content suggestions tailored to your writing style and topic. It can recommend synonyms, phrases, and even entire sentences to enhance clarity and engagement. This feature is particularly useful for writers looking to diversify their vocabulary and improve their overall writing quality.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Plagiarism Checker
&lt;/h3&gt;

&lt;p&gt;Maintaining originality is crucial in content creation, and Cursor includes a built-in plagiarism checker to help you ensure that your work is unique. By scanning your text against a vast database of existing content, Cursor alerts you to any potential issues, allowing you to make necessary adjustments before submission.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. User-Friendly Interface
&lt;/h3&gt;

&lt;p&gt;Cursor's interface is designed with user experience in mind. Its clean layout and intuitive navigation make it easy for users to access the tools they need without feeling overwhelmed. Whether you're editing a blog post, drafting an email, or writing a report, Cursor provides a seamless writing experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  Benefits of Using Cursor
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Enhanced Productivity
&lt;/h3&gt;

&lt;p&gt;By automating the editing process and providing instant feedback, Cursor significantly boosts productivity. Writers can spend less time on revisions and more time on creating compelling content. This efficiency is especially beneficial for professionals who juggle multiple projects and deadlines.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Improved Writing Quality
&lt;/h3&gt;

&lt;p&gt;With Cursor's advanced editing features and content suggestions, users can elevate the quality of their writing. The AI's ability to identify errors and offer alternatives helps writers produce clearer, more engaging content that resonates with their audience.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Accessibility for All Skill Levels
&lt;/h3&gt;

&lt;p&gt;Whether you're an experienced writer or just starting, Cursor is designed to accommodate all skill levels. Its user-friendly features make it accessible to anyone looking to improve their writing, making it a valuable tool for students, professionals, and hobbyists alike.&lt;/p&gt;

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

&lt;p&gt;Cursor is more than just an AI editor; it's a comprehensive writing assistant that empowers users to create high-quality content efficiently. With its real-time editing, content suggestions, and user-friendly interface, Cursor is revolutionizing the way we approach writing. As the demand for engaging and well-crafted content continues to grow, tools like Cursor will play an essential role in helping writers meet those challenges head-on. Embrace the future of content creation with Cursor and unlock your full writing potential.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Building a To-Do App with AI Assistance</title>
      <dc:creator>atsushi-ambo</dc:creator>
      <pubDate>Sun, 26 Nov 2023 08:34:44 +0000</pubDate>
      <link>https://dev.to/atsushiambo/building-a-to-do-app-with-ai-assistance-1m26</link>
      <guid>https://dev.to/atsushiambo/building-a-to-do-app-with-ai-assistance-1m26</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;As developers, we often find ourselves in the cycle of continuous learning. My recent endeavor was to build a To-Do application—a classic project that never gets old. But this time, I had a twist in the tale; I decided to build this app with the assistance of an AI. Yes, you heard it right, an AI partner in coding!&lt;/p&gt;

&lt;h2&gt;
  
  
  The Idea
&lt;/h2&gt;

&lt;p&gt;The concept was simple: a To-Do List application where tasks can be created, read, updated, and deleted (CRUD). But I wanted to incorporate best practices and containerization with Docker, and get everything right from the get-go. This is where my AI assistant came into play.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Build
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Flask and the Backend
&lt;/h3&gt;

&lt;p&gt;Flask is a micro web framework in Python that is perfect for small-scale projects like a To-Do app. With the AI's guidance, I set up the backend, ensuring a RESTful API design that could handle CRUD operations seamlessly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Frontend and User Experience
&lt;/h3&gt;

&lt;p&gt;The frontend was kept minimal with HTML and CSS. The AI provided tips on UI/UX design to ensure the application was user-friendly. It suggested a color scheme similar to Trello, a popular project management tool, to give a sense of familiarity to users.&lt;/p&gt;

&lt;h3&gt;
  
  
  MySQL and Persistence
&lt;/h3&gt;

&lt;p&gt;No To-Do app is complete without a database to store the tasks. MySQL was the database of choice, and Docker helped in setting up a MySQL container. My AI assistant walked me through the integration, ensuring that the tasks persisted across sessions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Docker Compose and Containerization
&lt;/h3&gt;

&lt;p&gt;Docker compose is a tool for defining and running multi-container Docker applications. With a single command, you can spin up the application with all its service dependencies. The AI helped me write the &lt;code&gt;docker-compose.yml&lt;/code&gt; file to define our Flask app and MySQL service.&lt;/p&gt;

&lt;h2&gt;
  
  
  Challenges and Learning
&lt;/h2&gt;

&lt;p&gt;Every coding journey has its set of challenges. Debugging the connection issues between Flask and MySQL, understanding Docker's nuances, and getting the RESTful endpoints to work were some hurdles I crossed, with AI providing me solutions and explanations at every step.&lt;/p&gt;

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

&lt;p&gt;The result is a functional To-Do application that can be easily spun up on any machine with Docker installed. This project not only reinforced my understanding of Flask, MySQL, and Docker but also showcased the potential of AI in coding assistance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Future Enhancements
&lt;/h2&gt;

&lt;p&gt;There's always room for improvement. Next steps include adding authentication, allowing multiple users, and deploying the app on the cloud.&lt;/p&gt;

&lt;h2&gt;
  
  
  Acknowledgements
&lt;/h2&gt;

&lt;p&gt;A huge shoutout to OpenAI and their AI-powered tools for their assistance throughout this journey. I can confidently say that AI and human collaboration can lead to remarkable achievements in the realm of software development.&lt;/p&gt;

&lt;h2&gt;
  
  
  Want to Try?
&lt;/h2&gt;

&lt;p&gt;The source code is available on GitHub, and I welcome you to clone, fork, and contribute to the project!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;https://github.com/atsushi-ambo/todo-app
git clone https://github.com/your-username/todo-app.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Happy coding!&lt;/p&gt;

&lt;p&gt;If you enjoyed this article, please like and share. I'm open to discussions and questions in the comments section below. Let's learn and grow together in this ever-evolving field of software development.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>tutorial</category>
      <category>python</category>
      <category>flask</category>
    </item>
    <item>
      <title>I tried to run the app using OpenAI API</title>
      <dc:creator>atsushi-ambo</dc:creator>
      <pubDate>Sat, 18 Mar 2023 08:15:57 +0000</pubDate>
      <link>https://dev.to/atsushiambo/i-tried-to-run-the-app-using-openai-api-7ch</link>
      <guid>https://dev.to/atsushiambo/i-tried-to-run-the-app-using-openai-api-7ch</guid>
      <description>&lt;p&gt;The &lt;a href="https://platform.openai.com/docs/quickstart/build-your-application" rel="noopener noreferrer"&gt;official OpenAI web site&lt;/a&gt; has a description of how to use the API, so I built it along with a sample application.&lt;/p&gt;

&lt;h1&gt;
  
  
  Prerequisite
&lt;/h1&gt;

&lt;p&gt;Python already installed. If you have not installed it, &lt;a href="https://www.python.org/downloads/" rel="noopener noreferrer"&gt;click here.&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Prepare the code for the application
&lt;/h1&gt;

&lt;p&gt;Clone the following repository and install the application files. Or, download the zip file from the official website.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;% git clone https://github.com/openai/openai-quickstart-python.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Add an API key
&lt;/h1&gt;

&lt;p&gt;Change the directory to the cloned repository. Create a new .env file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;% cd openai-quickstart-python
% cp .env.example .env
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Confirm that you created the file.The username is hidden for security reasons.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;% ls -l
total 56
416B Mar 12 16:57 .
160B Mar 12 16:37 ..
213B Mar 12 17:04 .env
162B Mar  8 12:06 .env.example
115B Mar  8 12:06 .gitignore
1.0K Mar  8 12:06 LICENSE
1.2K Mar  8 12:06 README.md
96B Mar 12 16:57 __pycache__
940B Mar  8 12:06 app.py
413B Mar  8 12:06 requirements.txt
128B Mar  8 12:06 static
96B Mar  8 12:06 templates
192B Mar 12 16:49 venv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can create an API key on the official page.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbakcjizbmdcsbabtwxav.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%2Fbakcjizbmdcsbabtwxav.png" alt="Image description" width="800" height="152"&gt;&lt;/a&gt;&lt;br&gt;
Then add that key to the newly created .env file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;% code .env
FLASK_APP=app
FLASK_ENV=development

# Once you add your API key below, make sure to not share it with anyone! The API key should remain private.
OPENAI_API_KEY="Put the key here"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Run the application
&lt;/h1&gt;

&lt;p&gt;Run the following command to start the application. The Python command varies depending on the version.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python3 -m venv venv
. venv/bin/activate
pip3 install -r requirements.txt
flask run
 * Serving Flask app 'app' (lazy loading)
 * Environment: development
 * Debug mode: on
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 177-654-623
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I was able to launch the application. Go to &lt;a href="http://127.0.0.1:5000/" rel="noopener noreferrer"&gt;http://127.0.0.1:5000/&lt;/a&gt; in your browser to see the app. Enter the name of the animal and it will suggest 3 superhero animal names!&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fetj4ohiij5rxhzo6lphg.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%2Fetj4ohiij5rxhzo6lphg.png" alt="Image description" width="800" height="624"&gt;&lt;/a&gt;&lt;br&gt;
This concludes the construction of the application. The next step is to look at the code.&lt;/p&gt;
&lt;h1&gt;
  
  
  Check the code
&lt;/h1&gt;

&lt;p&gt;If you open the app.py file, you can see the code. The actual API request is sent at response = openai. I am using the code command in the VS Code to open the file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;% code app.py
import os

import openai
from flask import Flask, redirect, render_template, request, url_for

app = Flask(__name__)
openai.api_key = os.getenv("OPENAI_API_KEY")


@app.route("/", methods=("GET", "POST"))
def index():
    if request.method == "POST":
        animal = request.form["animal"]
        response = openai.Completion.create(
            model="text-davinci-003",
            prompt=generate_prompt(animal),
            temperature=0.6,
        )
        return redirect(url_for("index", result=response.choices[0].text))

    result = request.args.get("result")
    return render_template("index.html", result=result)


def generate_prompt(animal):
    return """Suggest three names for an animal that is a superhero.

Animal: Cat
Names: Captain Sharpclaw, Agent Fluffball, The Incredible Feline
Animal: Dog
Names: Ruff the Protector, Wonder Canine, Sir Barks-a-Lot
Animal: {}
Names:""".format(
        animal.capitalize()
    )
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I am not familiar with the coding. so I asked ChatGPT what this code is about. It seems to me that ChatGPT can explain this very well.&lt;/p&gt;

&lt;p&gt;Here's a breakdown of the code:&lt;br&gt;
1.Importing required libraries:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import os
import openai
from flask import Flask, redirect, render_template, request, url_for
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;os is a Python standard library that provides a way of interacting with the operating system. openai is a Python library for interacting with OpenAI's API. Flask is a Python web framework, and render_template, request, and url_for are functions from Flask that are used to render HTML templates, handle incoming requests, and generate URLs, respectively.&lt;br&gt;
2.Creating a Flask app and setting up OpenAI API key:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;app = Flask(__name__)
openai.api_key = os.getenv("OPENAI_API_KEY")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, we create a Flask app object and set the OpenAI API key by getting the value of the OPENAI_API_KEY environment variable.&lt;br&gt;
3.Defining the index route:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;@app.route("/", methods=("GET", "POST"))
def index():
    if request.method == "POST":
        animal = request.form["animal"]
        response = openai.Completion.create(
            model="text-davinci-003",
            prompt=generate_prompt(animal),
            temperature=0.6,
        )
        return redirect(url_for("index", result=response.choices[0].text))

    result = request.args.get("result")
    return render_template("index.html", result=result)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This function is executed when a user navigates to the homepage of the web app. If the user submits a form with an animal name, the function generates three superhero names for that animal using the OpenAI API and returns the results. If the user navigates to the homepage without submitting a form, the function renders the index template with the previous results.&lt;br&gt;
4.Defining the generate_prompt function:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def generate_prompt(animal):
    return """Suggest three names for an animal that is a superhero.

Animal: Cat
Names: Captain Sharpclaw, Agent Fluffball, The Incredible Feline
Animal: Dog
Names: Ruff the Protector, Wonder Canine, Sir Barks-a-Lot
Animal: {}
Names:""".format(
        animal.capitalize()
    )
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This function takes an animal name as an argument and returns a string prompt that will be passed to the OpenAI API. The prompt provides examples of superhero names for cats and dogs, and the given animal's name is inserted at the end.&lt;/p&gt;

&lt;p&gt;Overall, this web app takes an animal name as input and generates three superhero names for that animal using the OpenAI API.&lt;/p&gt;

</description>
      <category>openai</category>
      <category>api</category>
      <category>chatgpt</category>
    </item>
    <item>
      <title>Manage an RDS Instance using Terraform</title>
      <dc:creator>atsushi-ambo</dc:creator>
      <pubDate>Sun, 19 Feb 2023 09:35:16 +0000</pubDate>
      <link>https://dev.to/atsushiambo/manage-an-rds-instance-using-terraform-18bi</link>
      <guid>https://dev.to/atsushiambo/manage-an-rds-instance-using-terraform-18bi</guid>
      <description>&lt;p&gt;I tried to manage an RDS instance using Terraform. I followed the &lt;a href="https://developer.hashicorp.com/terraform/tutorials/aws/aws-rds" rel="noopener noreferrer"&gt;hashicorp.com tutorial&lt;/a&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  Table Of Contents
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Prerequisites&lt;/li&gt;
&lt;li&gt;1. Clone the sample repository&lt;/li&gt;
&lt;li&gt;2. Check resource configuration&lt;/li&gt;
&lt;li&gt;3. Provision resources&lt;/li&gt;
&lt;li&gt;4. Modify instance configuration&lt;/li&gt;
&lt;li&gt;5. Create a Read Replica&lt;/li&gt;
&lt;li&gt;6. Clean up infrastructure&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Prerequisites &lt;a&gt;&lt;/a&gt;
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;Terraform 0.14+ installed locally.&lt;/li&gt;
&lt;li&gt;An AWS account with credentials configured for Terraform.&lt;/li&gt;
&lt;li&gt;PostgreSQL 14.2+ installed.&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  1. Clone the sample repository &lt;a&gt;&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;Clone the repository from Harshicorp of Github.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;% git clone https://github.com/hashicorp/learn-terraform-rds.git
Cloning into 'learn-terraform-rds'...
remote: Enumerating objects: 52, done.
remote: Counting objects: 100% (42/42), done.
remote: Compressing objects: 100% (25/25), done.
remote: Total 52 (delta 21), reused 30 (delta 17), pack-reused 10
Receiving objects: 100% (52/52), 16.13 KiB | 8.07 MiB/s, done.
Resolving deltas: 100% (21/21), done.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Change the directory to the installed repository.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd learn-terraform-rds
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  2. Check resource configuration &lt;a&gt;&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;Use the less command to check resource configuration&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;% less main.tf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Networking components
&lt;/h2&gt;

&lt;p&gt;The VPC and the subnets are defined as the first resource by using the terraform-aws-vpc module.&lt;br&gt;
Caution: For simplicity, the RDS instance is publicly accessible in this tutorial.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;module "vpc" {
  source  = "terraform-aws-modules/vpc/aws"
  version = "2.77.0"

  name                 = "education"
  cidr                 = "10.0.0.0/16"
  azs                  = data.aws_availability_zones.available.names
  public_subnets       = ["10.0.4.0/24", "10.0.5.0/24", "10.0.6.0/24"]
  enable_dns_hostnames = true
  enable_dns_support   = true
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Memo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;A Terraform module is a group of Terraform resources that are packaged together in a reusable way. Modules are useful because they allow you to reuse your infrastructure configuration code, and reduce duplication of code and effort.

The terraform-aws-modules/vpc/aws module that's used in the configuration file is a module that creates an Amazon Virtual Private Cloud (VPC) in AWS. A VPC is a virtual network dedicated to your AWS account that you can use to launch AWS resources in a logically isolated manner.

The vpc module in the configuration file creates an AWS VPC with the specified cidr (network address range), public_subnets (public subnet addresses), and tags (metadata). The VPC is given a name of example-vpc. Once the module is declared, you can use the outputs of the module to connect other resources to the VPC, such as the RDS instance in the configuration file.

By using the VPC module, you can quickly create a VPC with a consistent configuration and eliminate the need to duplicate the VPC configuration across multiple Terraform projects.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Subnet group
&lt;/h2&gt;

&lt;p&gt;The next resource is an aws_db_subnet_group, which is a collection of subnets where your RDS instance can be provisioned. This subnet group uses the subnets created by the VPC module.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;resource "aws_db_subnet_group" "education" {
  name       = "education"
  subnet_ids = module.vpc.public_subnets

  tags = {
    Name = "Education"
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This subnet group resource is an optional parameter in your aws_db_instance block shown below. Otherwise, Terraform will create your RDS instances in the default VPC.&lt;/p&gt;

&lt;h2&gt;
  
  
  Database instance
&lt;/h2&gt;

&lt;p&gt;Check the aws_db_instance configuration.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;resource "aws_db_instance" "education" {
  identifier             = "education"
  instance_class         = "db.t3.micro"
  allocated_storage      = 5
  engine                 = "postgres"
  engine_version         = "14.1"
  username               = "edu"
  password               = var.db_password
  db_subnet_group_name   = aws_db_subnet_group.education.name
  vpc_security_group_ids = [aws_security_group.rds.id]
  parameter_group_name   = aws_db_parameter_group.education.name
  publicly_accessible    = true
  skip_final_snapshot    = true
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As I mentioned earlier, the argument of publicly_accessible is set to true, which means that this DB is accessible from the public.&lt;a href="https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/db_instance" rel="noopener noreferrer"&gt;You can check all arguments on this page.&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Parameter group
&lt;/h2&gt;

&lt;p&gt;Now check the aws_db_parameter_group.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;resource "aws_db_parameter_group" "education" {
  name   = "education"
  family = "postgres14"

  parameter {
    name  = "log_connections"
    value = "1"
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can specify a name for the db parameter group. Otherwise, Terraform will randomly assign a unique name. You do not need to set a custom DB parameter group. Terraform will use a default one, but the default parameter group cannot be modified later, so if you want to modify it, it is better to use a custom parameter group.&lt;br&gt;
&lt;a href="https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/db_parameter_group" rel="noopener noreferrer"&gt;You can check all arguments on this page.&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Input variables
&lt;/h2&gt;

&lt;p&gt;You can check the input variable by opening variables.tf file. The DB root user password is configured in the file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;% less variables.tf
variable "db_password" {
  description = "RDS root user password"
  sensitive   = true
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Terraform can hide the password in the output file, but Terrafor stores it in the state file.&lt;/p&gt;

&lt;h2&gt;
  
  
  Output variables
&lt;/h2&gt;

&lt;p&gt;You can review the output file. It shows the details of the RDS that will be created.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;output "rds_hostname" {
  description = "RDS instance hostname"
  value       = aws_db_instance.education.address
  sensitive   = true
}

output "rds_port" {
  description = "RDS instance port"
  value       = aws_db_instance.education.port
  sensitive   = true
}

output "rds_username" {
  description = "RDS instance root username"
  value       = aws_db_instance.education.username
  sensitive   = true
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  3.Provision resources &lt;a&gt;&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;First, set the db_password variable as an environment variable.&lt;br&gt;
Then, initialize the terraform configuration.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;% export TF_VAR_db_password="hashicorp"
% terraform init
Initializing modules...
Downloading registry.terraform.io/terraform-aws-modules/vpc/aws 2.77.0 for vpc...
- vpc in .terraform/modules/vpc

Initializing the backend...

Initializing provider plugins...
- Reusing previous version of hashicorp/aws from the dependency lock file
- Installing hashicorp/aws v3.32.0...
- Installed hashicorp/aws v3.32.0 (signed by HashiCorp)

Terraform has made some changes to the provider dependency selections recorded
in the .terraform.lock.hcl file. Review those changes and commit them to your
version control system if they represent changes you intended to make.

Terraform has been successfully initialized!

You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.

If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next, apply the configuration. When prompted to confirm, answer Yes.&lt;br&gt;
After a few minutes, the RDS creation was complete.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Apply complete! Resources: 14 added, 0 changed, 0 destroyed.

Outputs:

rds_hostname = &amp;lt;sensitive&amp;gt;
rds_port = &amp;lt;sensitive&amp;gt;
rds_username = &amp;lt;sensitive&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then you can try to connect to the RDS by a following command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;psql -h $(terraform output -raw rds_hostname) -p $(terraform output -raw rds_port) -U $(terraform output -raw rds_username) postgres
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But, I have received the following error even though I have installed PostgreSQL.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;psql -h $(terraform output -raw rds_hostname) -p $(terraform output -raw rds_port) -U $(terraform output -raw rds_username) postgres
zsh: command not found: psql
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So I looked it up on Google. It seems like I need to specify the path in ~/.zshrc file.&lt;br&gt;
If you get the same error, run the following command and Add the path&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ vim ~/.zshrc
export PATH="/opt/homebrew/opt/postgresql@15/bin:$PATH"
:wq!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then, I run the psql command again to connect.&lt;br&gt;
Password is "hashicorp"&lt;br&gt;
After connecting the DB, you can create a database named "hashicorp" within this instance.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;postgres=&amp;gt; CREATE DATABASE hashicorp;
CREATE DATABASE
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can verify that the database has been created by running the following command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;postgres-&amp;gt; \list
                                                 List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    | ICU Locale | Locale Provider |   Access privileges   
-----------+----------+----------+-------------+-------------+------------+-----------------+-----------------------
 hashicorp | edu      | UTF8     | en_US.UTF-8 | en_US.UTF-8 |            | libc            | 
 postgres  | edu      | UTF8     | en_US.UTF-8 | en_US.UTF-8 |            | libc            | 
 rdsadmin  | rdsadmin | UTF8     | en_US.UTF-8 | en_US.UTF-8 |            | libc            | rdsadmin=CTc/rdsadmin+
           |          |          |             |             |            |                 | rdstopmgr=Tc/rdsadmin
 template0 | rdsadmin | UTF8     | en_US.UTF-8 | en_US.UTF-8 |            | libc            | =c/rdsadmin          +
           |          |          |             |             |            |                 | rdsadmin=CTc/rdsadmin
 template1 | edu      | UTF8     | en_US.UTF-8 | en_US.UTF-8 |            | libc            | =c/edu               +
           |          |          |             |             |            |                 | edu=CTc/edu
(5 rows)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can exit by the following command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;\q
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  4. Modify instance configuration &lt;a&gt;&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;Open main.tf and change the storage size from 5 to 10GB.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;resource "aws_db_instance" "education" {
   name                   = "education"
   instance_class         = "db.t3.micro"
-  allocated_storage      = 5
+  allocated_storage      = 10
##...
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Before you apply the change, you will need to add the apply_immediately argument to set it to true so that the RDS can be restarted.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;resource "aws_db_instance" "education_replica" {
   name                   = "education-replica"
   identifier             = "education-replica"
   replicate_source_db    = aws_db_instance.education.identifier
   instance_class         = "db.t3.micro"
 + apply_immediately      = true
   publicly_accessible    = true
   skip_final_snapshot    = true
   vpc_security_group_ids = [aws_security_group.rds.id]
   parameter_group_name   = aws_db_parameter_group.education.name
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then, apply the change.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;% terraform apply
data.aws_availability_zones.available: Reading...
module.vpc.aws_vpc.this[0]: Refreshing state... [id=vpc-0b256089f0091780c]
aws_db_parameter_group.education: Refreshing state... [id=education]
data.aws_availability_zones.available: Read complete after 0s [id=us-east-2]
aws_security_group.rds: Refreshing state... [id=sg-014424185901691c4]
module.vpc.aws_internet_gateway.this[0]: Refreshing state... [id=igw-0719c56f100ace0d7]
module.vpc.aws_route_table.public[0]: Refreshing state... [id=rtb-03d7c847b9a295364]
module.vpc.aws_subnet.public[1]: Refreshing state... [id=subnet-008ab5f5d5587f486]
module.vpc.aws_subnet.public[0]: Refreshing state... [id=subnet-062890da2dae35429]
module.vpc.aws_subnet.public[2]: Refreshing state... [id=subnet-02cb916ed21e23d79]
module.vpc.aws_route.public_internet_gateway[0]: Refreshing state... [id=r-rtb-03d7c847b9a2953641080289494]
module.vpc.aws_route_table_association.public[1]: Refreshing state... [id=rtbassoc-03ce6f881ca509cf7]
module.vpc.aws_route_table_association.public[0]: Refreshing state... [id=rtbassoc-0f0f18b8c334690d4]
module.vpc.aws_route_table_association.public[2]: Refreshing state... [id=rtbassoc-02bb355ff4c6d01f1]
aws_db_subnet_group.education: Refreshing state... [id=education]
aws_db_instance.education: Refreshing state... [id=education]

Terraform used the selected providers to generate the following execution plan. Resource
actions are indicated with the following symbols:
  ~ update in-place

Terraform will perform the following actions:

  # aws_db_instance.education will be updated in-place
  ~ resource "aws_db_instance" "education" {
      ~ allocated_storage                     = 5 -&amp;gt; 10
        id                                    = "education"
        name                                  = ""
        tags                                  = {}
        # (49 unchanged attributes hidden)
    }

Plan: 0 to add, 1 to change, 0 to destroy.

Do you want to perform these actions?
  Terraform will perform the actions described above.
  Only 'yes' will be accepted to approve.

  Enter a value: yes

aws_db_instance.education: Modifying... [id=education]
aws_db_instance.education: Still modifying... [id=education, 10s elapsed]
aws_db_instance.education: Still modifying... [id=education, 20s elapsed]
aws_db_instance.education: Still modifying... [id=education, 30s elapsed]
aws_db_instance.education: Modifications complete after 33s [id=education]

Apply complete! Resources: 0 added, 1 changed, 0 destroyed.

Outputs:

rds_hostname = &amp;lt;sensitive&amp;gt;
rds_port = &amp;lt;sensitive&amp;gt;
rds_username = &amp;lt;sensitive&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After completing the change, you can verify that it was applied correctly.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;% terraform plan
data.aws_availability_zones.available: Reading...
aws_db_parameter_group.education: Refreshing state... [id=education]
module.vpc.aws_vpc.this[0]: Refreshing state... [id=vpc-0b256089f0091780c]
data.aws_availability_zones.available: Read complete after 1s [id=us-east-2]
aws_security_group.rds: Refreshing state... [id=sg-014424185901691c4]
module.vpc.aws_internet_gateway.this[0]: Refreshing state... [id=igw-0719c56f100ace0d7]
module.vpc.aws_subnet.public[0]: Refreshing state... [id=subnet-062890da2dae35429]
module.vpc.aws_subnet.public[2]: Refreshing state... [id=subnet-02cb916ed21e23d79]
module.vpc.aws_subnet.public[1]: Refreshing state... [id=subnet-008ab5f5d5587f486]
module.vpc.aws_route_table.public[0]: Refreshing state... [id=rtb-03d7c847b9a295364]
module.vpc.aws_route.public_internet_gateway[0]: Refreshing state... [id=r-rtb-03d7c847b9a2953641080289494]
module.vpc.aws_route_table_association.public[0]: Refreshing state... [id=rtbassoc-0f0f18b8c334690d4]
module.vpc.aws_route_table_association.public[1]: Refreshing state... [id=rtbassoc-03ce6f881ca509cf7]
module.vpc.aws_route_table_association.public[2]: Refreshing state... [id=rtbassoc-02bb355ff4c6d01f1]
aws_db_subnet_group.education: Refreshing state... [id=education]
aws_db_instance.education: Refreshing state... [id=education]

No changes. Your infrastructure matches the configuration.

Terraform has compared your real infrastructure against your configuration and found no
differences, so no changes are needed.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  5. Create a Read Replica &lt;a&gt;&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;Open main.tf file and add the following block.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;resource "aws_db_instance" "education_replica" {
   name                   = "education-replica"
   identifier             = "education-replica"
   replicate_source_db    = aws_db_instance.education.identifier
   instance_class         = "db.t3.micro"
   apply_immediately      = true
   publicly_accessible    = true
   skip_final_snapshot    = true
   vpc_security_group_ids = [aws_security_group.rds.id]
   parameter_group_name   = aws_db_parameter_group.education.name
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And add this argument in the primary instance block.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;resource "aws_db_instance" "education" {
    name                      = "education"
    instance_class            = "db.t3.micro"
    allocated_storage         = 10
+   backup_retention_period   = 1
##...
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add this block into outputs.tf file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;output "rds_replica_connection_parameters" {
  description = "RDS replica instance connection parameters"
  value       = "-h ${aws_db_instance.education_replica.address} -p ${aws_db_instance.education_replica.port} -U ${aws_db_instance.education_replica.username} postgres"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then apply the change with "terraform apply".&lt;br&gt;
You will see the following message at the bottom of the screen.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;aws_db_instance.education_replica: Creation complete after 11m47s [id=education-replica]

Apply complete! Resources: 1 added, 1 changed, 0 destroyed.

Outputs:

rds_hostname = &amp;lt;sensitive&amp;gt;
rds_port = &amp;lt;sensitive&amp;gt;
rds_replica_connection_parameters = "-h education-replica.cl6o1zzqtrp1.us-east-2.rds.amazonaws.com -p 5432 -U edu postgres"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now you can connect to the read replica.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;% psql $(terraform output -raw rds_replica_connection_parameters)
Password for user edu: 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;List database to verify that the database has actually been created.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;postgres=&amp;gt; \list
                                                 List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    | ICU Locale | Locale Provider |   Access privileges   
-----------+----------+----------+-------------+-------------+------------+-----------------+-----------------------
 hashicorp | edu      | UTF8     | en_US.UTF-8 | en_US.UTF-8 |            | libc            | 
 postgres  | edu      | UTF8     | en_US.UTF-8 | en_US.UTF-8 |            | libc            | 
 rdsadmin  | rdsadmin | UTF8     | en_US.UTF-8 | en_US.UTF-8 |            | libc            | rdsadmin=CTc/rdsadmin+
           |          |          |             |             |            |                 | rdstopmgr=Tc/rdsadmin
 template0 | rdsadmin | UTF8     | en_US.UTF-8 | en_US.UTF-8 |            | libc            | =c/rdsadmin          +
           |          |          |             |             |            |                 | rdsadmin=CTc/rdsadmin
 template1 | edu      | UTF8     | en_US.UTF-8 | en_US.UTF-8 |            | libc            | =c/edu               +
           |          |          |             |             |            |                 | edu=CTc/edu
(5 rows)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  6. Clean up infrastructure &lt;a&gt;&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;You can delete the infrastructure by this command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;% terraform destroy 
....
module.vpc.aws_vpc.this[0]: Destroying... [id=vpc-0b256089f0091780c]
module.vpc.aws_vpc.this[0]: Destruction complete after 1s

Destroy complete! Resources: 15 destroyed.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Well, this is the end of this tutorial.&lt;br&gt;
I'm getting used to Terraform, so I'll keep learning.&lt;br&gt;
&lt;a href="https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/db_instance" rel="noopener noreferrer"&gt;You may refer to this site to review the argument of aws RDS.&lt;/a&gt;&lt;/p&gt;

</description>
      <category>iac</category>
      <category>terraform</category>
      <category>devops</category>
      <category>aws</category>
    </item>
    <item>
      <title>I tried the initial setting of GitHub [For Mac user]</title>
      <dc:creator>atsushi-ambo</dc:creator>
      <pubDate>Sun, 29 Jan 2023 09:41:20 +0000</pubDate>
      <link>https://dev.to/atsushiambo/i-tried-the-initial-setting-of-github-for-mac-user-4l02</link>
      <guid>https://dev.to/atsushiambo/i-tried-the-initial-setting-of-github-for-mac-user-4l02</guid>
      <description>&lt;p&gt;I plan to write a bunch of blogs this year. I would like to use GitHub to manage my blogs, so this time around I tried the initial setup of GitHub to get started.&lt;/p&gt;

&lt;h1&gt;
  
  
  Table Of Contents
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;1. Create an account&lt;/li&gt;
&lt;li&gt;2. Create a repository&lt;/li&gt;
&lt;li&gt;3. Basic commands for using GitHub&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  1. Create an account &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Click Sign up on &lt;a href="https://github.com/" rel="noopener noreferrer"&gt;the GitHub official page.&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzog8m59d5zkbyefbrso0.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%2Fzog8m59d5zkbyefbrso0.png" alt="Image description" width="800" height="413"&gt;&lt;/a&gt;&lt;br&gt;
You will be asked to enter your email address, password and username after clicking on the page.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp5th8b0413dpd9dpnhna.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%2Fp5th8b0413dpd9dpnhna.png" alt="Image description" width="800" height="623"&gt;&lt;/a&gt;&lt;br&gt;
Then you need to do puzzle. You will receive an email with a passcode for authentication.&lt;br&gt;
If the password is OK, you will be taken to the GitHub home page.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy6jhn6b438vax27ir5qe.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%2Fy6jhn6b438vax27ir5qe.png" alt="Image description" width="800" height="349"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  2. Create a repository &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Click the plus button in the upper right corner to create a new repository.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz7vyj0qjenm62l0dmvix.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%2Fz7vyj0qjenm62l0dmvix.png" alt="Image description" width="800" height="391"&gt;&lt;/a&gt;&lt;br&gt;
After clicking it, you have to fill in the name of the repository and other information.&lt;br&gt;
README is like a description of a project, you may add it later.&lt;br&gt;
.gitignore file is a list of files you don't like to be managed on GitHub.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhkkdvry4rvub07qc5yz4.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%2Fhkkdvry4rvub07qc5yz4.png" alt="Image description" width="800" height="831"&gt;&lt;/a&gt;&lt;br&gt;
After filling in the information, click the Create a repository button. You will be taken to a next page.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0kx1b2v1u8ju570pcjcd.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%2F0kx1b2v1u8ju570pcjcd.png" alt="Image description" width="800" height="757"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  3. Basic commands for using GitHub &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;OK, let's try a couple of basic commands to make use of the repository we have just created.&lt;br&gt;
Copy an URL of the repository by clicking the code button in the upper right corner. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fag90hjzqbu7r2z7s1u7l.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%2Fag90hjzqbu7r2z7s1u7l.png" alt="Image description" width="800" height="353"&gt;&lt;/a&gt;&lt;br&gt;
Then open a terminal on your PC and run the following command.&lt;br&gt;
You will get a copy of a remote repository (on GitHub) into your local repository.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;% git clone [URL of the repository]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You will get comments like the following:&lt;br&gt;
This is a public repository, so I can show my URL.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;% git clone https://github.com/atsushi-ambo/test-github
Cloning into 'test-github'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (3/3), done.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Initialize the repository
&lt;/h3&gt;

&lt;p&gt;Run the following command to initialize your repository.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;% git init
Reinitialized existing Git repository in /Users/username/test-github/.git/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Add a new file to your local repository
&lt;/h3&gt;

&lt;p&gt;First, create a new file in the local repository by the following command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;% echo “Hello World” &amp;gt; GitHubtest.txt
% ls
GitHubtest.txt  README.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then, add the file to the local repository with the following command.&lt;br&gt;
Actually, the "add" command does not add to a local repository, it adds to an index before the local repository.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;% git add GitHubtest.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Commit the file to the local repository
&lt;/h3&gt;

&lt;p&gt;Having added the file to the index, you can now commit it to the local repository using the following "commit" command. You will need to add a message such as "Add a file".&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git commit -m "[your message]"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I got the following result:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;% git commit -m "add a file"
[main aa3f19e] adda file
 Committer: Atsushi Ambo &amp;lt;username-MacBook-Pro.local&amp;gt;
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly. Run the
following command and follow the instructions in your editor to edit
your configuration file:

    git config --global --edit

After doing this, you may fix the identity used for this commit with:

    git commit --amend --reset-author

 1 file changed, 1 insertion(+)
 create mode 100644 GitHubtest.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Push the change to the remote repository
&lt;/h3&gt;

&lt;p&gt;Now, you have committed the change (file) to your local repository. Next, add it the remote repository by the following command. You have only a main branch, so branch name is "main."&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git push origin [branch name]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;However, I received the following error.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;% git push origin main          
Missing or invalid credentials.
Error: connect ENOENT /var/folders/vr/n1j1fkxd25b60vlpyg3_8t500000gn/T/vscode-git-fc8d2dcd4c.sock
    at PipeConnectWrap.afterConnect [as oncomplete] (node:net:1157:16) {
  errno: -2,
  code: 'ENOENT',
  syscall: 'connect',
  address: '/var/folders/vr/n1j1fkxd25b60vlpyg3_8t500000gn/T/vscode-git-fc8d2dcd4c.sock'
}
Missing or invalid credentials.
Error: connect ENOENT /var/folders/vr/n1j1fkxd25b60vlpyg3_8t500000gn/T/vscode-git-fc8d2dcd4c.sock
    at PipeConnectWrap.afterConnect [as oncomplete] (node:net:1157:16) {
  errno: -2,
  code: 'ENOENT',
  syscall: 'connect',
  address: '/var/folders/vr/n1j1fkxd25b60vlpyg3_8t500000gn/T/vscode-git-fc8d2dcd4c.sock'
}
remote: No anonymous write access.
fatal: Authentication failed for 'https://github.com/atsushi-ambo/test-github/'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I did some research on Google and found out that I have to set an access token for the repository.&lt;/p&gt;

&lt;h3&gt;
  
  
  Setup personal access token
&lt;/h3&gt;

&lt;p&gt;So, let's setup the token.&lt;br&gt;
Go to the Settings tab and click on Developer settings at the bottom.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8xwj7zc08jlopgu59amb.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%2F8xwj7zc08jlopgu59amb.png" alt="Image description" width="800" height="317"&gt;&lt;/a&gt;&lt;br&gt;
Select Fine-grained tokens in Personal access tokens tab.&lt;br&gt;
GitHub recommends fine-grained tokens over tokens (classic).&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy74ovwoh9a505xzj1dyh.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%2Fy74ovwoh9a505xzj1dyh.png" alt="Image description" width="800" height="441"&gt;&lt;/a&gt;&lt;br&gt;
Fill in required fields such as Token Name.&lt;br&gt;
Select the Only select repositories check box so that you can push to the remote repository this time.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp7xkybbxhb68slxuebox.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%2Fp7xkybbxhb68slxuebox.png" alt="Image description" width="800" height="872"&gt;&lt;/a&gt;&lt;br&gt;
Then, click the create button.&lt;br&gt;
Copy the created token, you only have one time to copy it. Don't lose it.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh9vkswaton4w8y0iu2kj.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%2Fh9vkswaton4w8y0iu2kj.png" alt="Image description" width="800" height="424"&gt;&lt;/a&gt;&lt;br&gt;
To setup the token, you will need to install GitHub CLI.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;% brew install gh
Running `brew update --auto-update`...
==&amp;gt; Auto-updated Homebrew!
Updated 2 taps (hashicorp/tap and homebrew/core).
==&amp;gt; New Formulae
ancient                      clang-build-analyzer         hashicorp/tap/copywrite      m1ddc                        mdless                       xcdiff                       zsh-autopair

You have 9 outdated formulae installed.
You can upgrade them with brew upgrade
or list them with brew outdated.

==&amp;gt; Fetching gh
==&amp;gt; Downloading https://ghcr.io/v2/homebrew/core/gh/manifests/2.22.1
######################################################################## 100.0%
==&amp;gt; Downloading https://ghcr.io/v2/homebrew/core/gh/blobs/sha256:e704f932cbc7b237e9143e9db3a9a32f0acd753e03d302299b69d660d3875011
==&amp;gt; Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sha256:e704f932cbc7b237e9143e9db3a9a32f0acd753e03d302299b69d660d3875011?se=2023-01-28T10%3A25%3A00Z&amp;amp;sig=u57FLpso8S3mj2ErguwRz
######################################################################## 100.0%
==&amp;gt; Pouring gh--2.22.1.arm64_ventura.bottle.tar.gz
==&amp;gt; Caveats
zsh completions have been installed to:
  /opt/homebrew/share/zsh/site-functions
==&amp;gt; Summary
🍺  /opt/homebrew/Cellar/gh/2.22.1: 153 files, 40.3MB
==&amp;gt; Running `brew cleanup gh`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run the following command to setup the token.&lt;br&gt;
You will be asked some questions, answer them to continue.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;% gh auth login
? What account do you want to log into? GitHub.com
? What is your preferred protocol for Git operations? HTTPS
? Authenticate Git with your GitHub credentials? Yes
? How would you like to authenticate GitHub CLI? Login with a web browser
...
✓ Authentication complete.
- gh config set -h github.com git_protocol https
✓ Configured git protocol
✓ Logged in as atsushi-ambo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you receive an authentication complete message, you have completed the setup.&lt;br&gt;
So, now let's try "push" command again.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;% git push origin main
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 349 bytes | 349.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/atsushi-ambo/test-github
   e30a2c6..7253ffa  main -&amp;gt; main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You have completed the commit to the remote repository on GitHub.&lt;br&gt;
You can see the test file uploaded to the repository on GitHub.&lt;br&gt;
My blog is finished at this point. There are some other git commands like "git branch" and "git checkout". I will try to use them next time.&lt;/p&gt;

</description>
      <category>github</category>
      <category>git</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
