<?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: Arish Sethi</title>
    <description>The latest articles on DEV Community by Arish Sethi (@arish_sethi_7d1481d9c4b87).</description>
    <link>https://dev.to/arish_sethi_7d1481d9c4b87</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2476783%2F28e3045b-6397-41c8-ab61-153dac2e823d.jpg</url>
      <title>DEV Community: Arish Sethi</title>
      <link>https://dev.to/arish_sethi_7d1481d9c4b87</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/arish_sethi_7d1481d9c4b87"/>
    <language>en</language>
    <item>
      <title>AI CHATBOT (JARVIS)</title>
      <dc:creator>Arish Sethi</dc:creator>
      <pubDate>Fri, 10 Jul 2026 19:47:15 +0000</pubDate>
      <link>https://dev.to/arish_sethi_7d1481d9c4b87/ai-chatbot-jarvis-3ego</link>
      <guid>https://dev.to/arish_sethi_7d1481d9c4b87/ai-chatbot-jarvis-3ego</guid>
      <description>&lt;h1&gt;
  
  
  Building Jarvis: How I Created a Voice-Activated Python Assistant 🚀
&lt;/h1&gt;

&lt;p&gt;Ever since I started programming, I wanted to build something that felt like it belonged in a sci-fi movie. So, I decided to sit down and create my own virtual voice assistant—&lt;strong&gt;Jarvis&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Using Python, I built an assistant that listens to my voice, speaks back to me, opens up my favorite websites, fetches live news headlines, and even plays my favorite tracks from a music dictionary.&lt;/p&gt;

&lt;p&gt;Here is a breakdown of how I built it, how the code works, and what I learned along the way!&lt;/p&gt;




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

&lt;p&gt;To give Jarvis ears, a voice, and web powers, I used a few key Python libraries:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;speech_recognition&lt;/code&gt;: For capturing audio from my microphone and converting it to text.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;pyttsx3&lt;/code&gt;: A text-to-speech library that lets Jarvis talk back offline.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;webbrowser&lt;/code&gt;: To trigger web automation directly from the terminal.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;requests&lt;/code&gt;: To make API calls and fetch real-time data from the web.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  💻 The Full Code
&lt;/h2&gt;

&lt;p&gt;Here is the complete Python script I wrote for Jarvis:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;speech_recognition&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;sr&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;webbrowser&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;pyttsx3&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;recognizer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Recognizer&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;engine&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pyttsx3&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;init&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;newsapi&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;YOUR_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;  &lt;span class="c1"&gt;# Replace with your own key to use this code
&lt;/span&gt;
&lt;span class="c1"&gt;# Function to speak a given text
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;speak&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;engine&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;say&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;engine&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;runAndWait&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="c1"&gt;# Songs dictionary with song name and YouTube link
&lt;/span&gt;&lt;span class="n"&gt;songs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;who they&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[https://www.youtube.com/watch?v=wBw6Leb5F2U](https://www.youtube.com/watch?v=wBw6Leb5F2U)&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;block&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[https://www.youtube.com/watch?v=e4c5i1fyW-4](https://www.youtube.com/watch?v=e4c5i1fyW-4)&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;# Function to process recognized commands
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;processword&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;open google&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;lower&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
        &lt;span class="n"&gt;webbrowser&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[https://google.com](https://google.com)&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;open youtube&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;lower&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
        &lt;span class="n"&gt;webbrowser&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[https://youtube.com](https://youtube.com)&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;lower&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;startswith&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;play&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;song&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;lower&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;play &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;strip&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="n"&gt;link&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;songs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;song&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;link&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="nf"&gt;speak&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Playing &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;song&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="n"&gt;webbrowser&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;link&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="nf"&gt;speak&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Sorry, I don&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;t have the song &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;song&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;news&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;lower&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
        &lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[https://newsapi.org/v2/top-headlines?country=us&amp;amp;apiKey=](https://newsapi.org/v2/top-headlines?country=us&amp;amp;apiKey=)&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;newsapi&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;status_code&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;200&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
            &lt;span class="n"&gt;articles&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;articles&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;article&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;articles&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="nf"&gt;speak&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;article&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;title&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;

&lt;span class="c1"&gt;# Main logic
&lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;__main__&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;speak&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Initializing Jarvis....&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="c1"&gt;# Obtain audio from the microphone
&lt;/span&gt;            &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;sr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Microphone&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;source&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Listening...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                &lt;span class="n"&gt;audio&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;recognizer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;listen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;source&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;timeout&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;phrase_time_limit&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

            &lt;span class="c1"&gt;# Recognize the keyword 'Jarvis'
&lt;/span&gt;            &lt;span class="n"&gt;word&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;recognizer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;recognize_google&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;audio&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;word&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;lower&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;jarvis&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="nf"&gt;speak&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Yes?&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;sr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Microphone&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;source&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Jarvis active...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                    &lt;span class="n"&gt;audio&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;recognizer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;listen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;source&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                    &lt;span class="n"&gt;command&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;recognizer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;recognize_google&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;audio&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                    &lt;span class="nf"&gt;processword&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;command&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="nb"&gt;Exception&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Error: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nf"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;





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

&lt;/div&gt;



&lt;h2&gt;
  
  
  📸 See It In Action!
&lt;/h2&gt;

&lt;p&gt;Here is what it looks like when Jarvis initializes and listens through the terminal:&lt;/p&gt;

&lt;p&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ft9o79xin164k4zhaxjn9.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ft9o79xin164k4zhaxjn9.png" alt=" " width="800" height="502"&gt;&lt;/a&gt;]&lt;/p&gt;

&lt;h2&gt;
  
  
  💡 What I Learned From This Project
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;API Integration is Powerful:&lt;/strong&gt; Working with &lt;code&gt;requests&lt;/code&gt; to pull real-time news headlines opened my eyes to how modern web applications share data.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Error Handling is Crucial:&lt;/strong&gt; Wrapping the audio listener in a &lt;code&gt;try/except&lt;/code&gt; block kept the program from constantly crashing when it couldn't understand a sentence.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;From Python to the Future:&lt;/strong&gt; Building logic like this gives me a great foundation as I transition into learning lower-level, high-performance languages like C++.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  🛑 Problems I Faced &amp;amp; How I Fixed Them
&lt;/h2&gt;

&lt;p&gt;Building this wasn't smooth sailing! Here are the main roadblocks I had to smash:&lt;br&gt;
&lt;strong&gt;The &lt;code&gt;pyaudio&lt;/code&gt; Nightmare:&lt;/strong&gt; Getting &lt;code&gt;speech_recognition&lt;/code&gt; to work on Windows was tough because installing &lt;code&gt;pyaudio&lt;/code&gt; kept throwing errors. I had to figure out how to manually install the correct wheel file via the terminal to get my microphone recognized.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;API Security:&lt;/strong&gt; At first, I accidentally left my live News API key visible in the code. I had to learn how to remove it and replace it with a placeholder so people wouldn't steal my API limits when I pushed it to GitHub.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Microphone Lag &amp;amp; Timeouts:&lt;/strong&gt; Jarvis would either cut me off too early or hang forever waiting for me to speak. I had to tweak the &lt;code&gt;timeout=3&lt;/code&gt; and &lt;code&gt;phrase_time_limit= 5&lt;/code&gt; settings in the listening loop so he only processed active commands without lagging out.&lt;/p&gt;

&lt;p&gt;"Since this is one of my major projects, I’d love to hear your thoughts! Please drop a comment below with any suggestions, improvements, or tips on what I did right or what I could do better."&lt;/p&gt;

&lt;p&gt;🤝 Let’s Collaborate!&lt;/p&gt;

&lt;p&gt;Are you working on something exciting in AI, web development, blockchain,     or Python? I’d love to connect and collaborate. You can reach me out in comment section or you can message me on github-&lt;a href="https://github.com/Arish2008/CodeSphere" rel="noopener noreferrer"&gt;https://github.com/Arish2008/CodeSphere&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Check out my GitHub repo for the full code and documentation and also for more interesting projects like this. I'd love to hear your feedback or ideas for improvement!" -&lt;a href="https://github.com/Arish2008/CodeSphere" rel="noopener noreferrer"&gt;https://github.com/Arish2008/CodeSphere&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks for reading! Let me know in the comments what features I should add to Jarvis next! 🤖🔥&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>python</category>
    </item>
    <item>
      <title>💻 Build your first blockchain today! Learn the basics, see it in action, and explore real-world uses. A fun and engaging read for anyone diving into blockchain tech! 🚀</title>
      <dc:creator>Arish Sethi</dc:creator>
      <pubDate>Tue, 21 Jan 2025 17:46:35 +0000</pubDate>
      <link>https://dev.to/arish_sethi_7d1481d9c4b87/build-your-first-blockchain-today-learn-the-basics-see-it-in-action-and-explore-real-world-1dd9</link>
      <guid>https://dev.to/arish_sethi_7d1481d9c4b87/build-your-first-blockchain-today-learn-the-basics-see-it-in-action-and-explore-real-world-1dd9</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/arish_sethi_7d1481d9c4b87/building-a-basic-blockchain-in-python-my-journey-and-key-takeaways-1b6a" class="crayons-story__hidden-navigation-link"&gt;Building a Basic Blockchain in Python: My Journey and Key Takeaways!&lt;/a&gt;


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

          &lt;a href="/arish_sethi_7d1481d9c4b87" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2476783%2F28e3045b-6397-41c8-ab61-153dac2e823d.jpg" alt="arish_sethi_7d1481d9c4b87 profile" class="crayons-avatar__image" width="96" height="96"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/arish_sethi_7d1481d9c4b87" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Arish Sethi
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Arish Sethi
                
              
              &lt;div id="story-author-preview-content-2127243" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/arish_sethi_7d1481d9c4b87" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2476783%2F28e3045b-6397-41c8-ab61-153dac2e823d.jpg" class="crayons-avatar__image" alt="" width="96" height="96"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Arish Sethi&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/arish_sethi_7d1481d9c4b87/building-a-basic-blockchain-in-python-my-journey-and-key-takeaways-1b6a" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Dec 1 '24&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/arish_sethi_7d1481d9c4b87/building-a-basic-blockchain-in-python-my-journey-and-key-takeaways-1b6a" id="article-link-2127243"&gt;
          Building a Basic Blockchain in Python: My Journey and Key Takeaways!
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/arish_sethi_7d1481d9c4b87/building-a-basic-blockchain-in-python-my-journey-and-key-takeaways-1b6a" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;2&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/arish_sethi_7d1481d9c4b87/building-a-basic-blockchain-in-python-my-journey-and-key-takeaways-1b6a#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

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

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

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

&lt;/div&gt;


</description>
      <category>blockchain</category>
      <category>python</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Building a Basic Blockchain in Python: My Journey and Key Takeaways!</title>
      <dc:creator>Arish Sethi</dc:creator>
      <pubDate>Sun, 01 Dec 2024 13:56:05 +0000</pubDate>
      <link>https://dev.to/arish_sethi_7d1481d9c4b87/building-a-basic-blockchain-in-python-my-journey-and-key-takeaways-1b6a</link>
      <guid>https://dev.to/arish_sethi_7d1481d9c4b87/building-a-basic-blockchain-in-python-my-journey-and-key-takeaways-1b6a</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fudsqxxgayc0btii27jpv.jpg" 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%2Fudsqxxgayc0btii27jpv.jpg" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
**&lt;br&gt;
&lt;em&gt;Blockchain technology always fascinated me, so I decided to dive in and build my own mini blockchain using Python. Here's what I learned along the way**&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Blockchain is a technology that allows for the secure, transparent, and permanent recording of data and transactions across a network.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;My purpose of learning blockchain is to get a good knowledge of how the blocks work and what is the significance of POW (proof of work) and cryptography .As I am always intrested in blockchain because of its significant growth in the current few years.it also help me to improve my python skills.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;KEY FEATURES OF BLOCKCHAIN&lt;/strong&gt;:-&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Chaining Blocks&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;*Each block in your blockchain contains:&lt;/p&gt;

&lt;p&gt;*Data or transactions (e.g., sender, receiver, amount).&lt;/p&gt;

&lt;p&gt;*A unique identifier called a hash, generated from the block's data.&lt;/p&gt;

&lt;p&gt;*The hash of the previous block, linking the blocks together.&lt;/p&gt;

&lt;p&gt;This ensures that the blocks are connected in a secure and sequential manner. If someone tries to change the data in one block, it would break the chain because the hash links wouldn’t match anymore.&lt;/p&gt;

&lt;p&gt;** Proof of Work**&lt;/p&gt;

&lt;p&gt;*To add a new block to the blockchain, your project likely includes a &lt;/p&gt;

&lt;p&gt;*mining process, which involves solving a mathematical puzzle.&lt;br&gt;
This puzzle ensures that:&lt;/p&gt;

&lt;p&gt;*Adding a block takes some computational effort, making it hard to tamper with the chain.&lt;/p&gt;

&lt;p&gt;*For example, the hash of a valid block must start with a specific number of zeroes (e.g., "0000").&lt;/p&gt;

&lt;p&gt;This process makes the blockchain secure by requiring work to add blocks, preventing spam or malicious blocks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hashing&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;*Hashing converts the block’s data into a fixed-size string of characters (a hash).&lt;/p&gt;

&lt;p&gt;*Your project likely uses a hashing algorithm (e.g., SHA-256) to generate this hash.&lt;/p&gt;

&lt;p&gt;*The hash is unique to the block's data, like a digital fingerprint. Even a tiny change in the block’s data will produce a completely different hash.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;Block data: {"amount": 5, "sender": "Alice", "receiver": "Bob"}&lt;br&gt;
Hash: d2d2d2c6a8e9a6df13b54ff2c4da9ab9e2f4a8b9e8c1d6a9b4ff0d2c&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;API Testing Using Postman&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Your blockchain likely includes API endpoints to interact with the chain.&lt;br&gt;
Endpoints allow you to:&lt;/p&gt;

&lt;p&gt;*Add transactions: Users can submit data (e.g., transactions).&lt;/p&gt;

&lt;p&gt;*Mine new blocks: Solve the proof of work puzzle and add the block.&lt;/p&gt;

&lt;p&gt;*View the blockchain: Retrieve the chain's current state to verify its contents.&lt;/p&gt;

&lt;p&gt;Using Postman, you tested these endpoints to ensure they work as expected.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CHALLENGES I FACED AND HOW I OVERCOME THAT&lt;/strong&gt;:-&lt;br&gt;
&lt;strong&gt;my first challenge&lt;/strong&gt; is to understand what these term means like hashing, proof of work and what is the chain in the block[which I explained it to you above.] so to overcome this problem I use ChatGPT and Gemini to get a handful of knowledge about blockchain key components AI helps me a lot.&lt;br&gt;
&lt;strong&gt;My second problem&lt;/strong&gt; is the implementation of proof of work as it is very tricky for me to get used to with proof of work [pow] algorithm but as I searched it in Google and asked from AI I started learning things and can apply that in my project. I set a condition where the hash must start with '0000', ensuring security.&lt;/p&gt;

&lt;p&gt;I have used Postman for API testing there are some images which shows you how and what I have done&lt;br&gt;
the first method is to create a new request (HTTP) in Postman.&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%2Fmrnbvv6ynozzdy2mtjv7.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%2Fmrnbvv6ynozzdy2mtjv7.png" alt=" " width="486" height="903"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;step-2&lt;/strong&gt; after getting chain details we now have to create a new transaction.&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%2Fvfi8lb9w228okq4jlv2p.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%2Fvfi8lb9w228okq4jlv2p.png" alt=" " width="593" height="1002"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;we have to change get method to post and then give the request (provided in image),after this you have to go in headers section where in key column we have to write content-type and in value column, application/json.then switch to body choose raw format and set the format to json. In text box write the content given in the image. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;step-3&lt;/strong&gt; mining a new block.&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%2F2te4sonjubvefeqgropl.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%2F2te4sonjubvefeqgropl.png" alt=" " width="800" height="826"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;code snippets for some important topics of blockchain:- *&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;making new block&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    def new_block(self, proof, previous_hash=None):
        block = {
            'index': len(self.chain) + 1,
            'timestamp': time(),
            'transactions': self.current_transactions,
            'proof': proof,
            'previous_hash': previous_hash or self.hash(self.chain[-1] if self.chain else '0'),
        }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;*&lt;em&gt;making new transaction&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    def new_transaction(self, sender, recipient, amount):
        # Add a new transaction to the list of transactions
        self.current_transactions.append({
            'sender': sender,
            'recipient': recipient,
            'amount': amount,
        })
        return self.last_block['index'] + 1  # Return the index of the block that will hold this transaction
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;for hashing&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; @staticmethod
    def hash(block):
        # Creates a SHA-256 hash of a Block
        block_string = json.dumps(block, sort_keys=True).encode()
        return hashlib.sha256(block_string).hexdigest()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;proof of work mechanism&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def proof_of_work(self, last_proof):
        proof = 0
        while self.valid_proof(last_proof, proof) is False:
            proof += 1
        return proof

    @staticmethod 

def valid_proof(last_proof, proof):
        # Validates the Proof by checking if hash(last_proof, proof) has 4 leading zeroes
        guess = f"{last_proof}{proof}".encode()
        guess_hash = hashlib.sha256(guess).hexdigest()
        return guess_hash[:4] == "0000"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check out my GitHub repo for the full code and documentation and also for more interesting projects like this. I'd love to hear your feedback or ideas for improvement!" -&lt;a href="https://github.com/Arish2008/CodeSphere" rel="noopener noreferrer"&gt;https://github.com/Arish2008/CodeSphere&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;I’m always looking to improve and learn. If you have suggestions, ideas, or improvements, drop a comment below or create an issue on GitHub.&lt;/em&gt;&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;🤝 &lt;strong&gt;Let’s Collaborate!&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;Are you working on something exciting in AI, web development, blockchain, or Python? I’d love to connect and collaborate. You can reach me on:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Twitter&lt;/strong&gt;: [@arish_seth]
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thank you for reading, and I can’t wait to hear your thoughts! 🚀 &lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
