<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Junaid</title>
    <description>The latest articles on Forem by Junaid (@junaid_dev).</description>
    <link>https://forem.com/junaid_dev</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%2F682516%2Fe24a8154-2dc5-4c3a-85b0-d14485a8b17a.JPG</url>
      <title>Forem: Junaid</title>
      <link>https://forem.com/junaid_dev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/junaid_dev"/>
    <language>en</language>
    <item>
      <title>How to Create an Custom Search Engine Extention for Firefox</title>
      <dc:creator>Junaid</dc:creator>
      <pubDate>Wed, 10 Sep 2025 12:57:13 +0000</pubDate>
      <link>https://forem.com/junaid_dev/how-to-create-an-custom-search-engine-extention-for-firefox-5h3d</link>
      <guid>https://forem.com/junaid_dev/how-to-create-an-custom-search-engine-extention-for-firefox-5h3d</guid>
      <description>&lt;h2&gt;
  
  
  Requirements
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Latest Firefox Browser&lt;/li&gt;
&lt;li&gt;Firefox Addon account - If you plan to publish it on Firefox-Addons.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  File System
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;project_folder/
    |-- manifest.json
    |-- License
    |-- images/
          |-- icon-48.png
          |-- icon-64.png
          |-- icon.png
          
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;ul&gt;
&lt;li&gt;An custom Search engine extension.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"manifest_version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"GithubRepoSearch"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Quick Extention to search something across github repos."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"chrome_settings_overrides"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"search_provider"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Search via Github Repos"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"search_url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://github.com/search?q={searchTerms}&amp;amp;type=repositories"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"keyword"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"@github_repo_search"&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"icons"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"48"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"images/icon-48.png"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"64"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"images/icon-64.png"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"browser_specific_settings"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"gecko"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"email_of_the_developer@example.com"&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;An extension which changes default Search Engine with Custom Search Engine.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"manifest_version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"GithubRepoSearch"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Quick Extention to search something across github repos."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"chrome_settings_overrides"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"search_provider"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"is_default"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Search via Github Repos"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"search_url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://github.com/search?q={searchTerms}&amp;amp;type=repositories"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"keyword"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"@google"&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"icons"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"48"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"images/icon-48.png"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"64"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"images/icon-64.png"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"browser_specific_settings"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"gecko"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"email_of_the_developer@example.com"&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;I added &lt;code&gt;"is_default":true&lt;/code&gt; and changed &lt;code&gt;keyword&lt;/code&gt; to &lt;code&gt;@google&lt;/code&gt;,  which overrides Google with Custom Search Engine.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;More about &lt;code&gt;chrome_settings_overrides&lt;/code&gt; - related.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"manifest_version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"NO GOOGLE AI OVERVIEW"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1.4"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Open-source, Simple and Ready to use NO GOOGLE-AI OVERVIEW extension."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"chrome_settings_overrides"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"search_provider"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"is_default"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"NO-OVERVIEW"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"search_url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://google.com/search?udm=14&amp;amp;q={searchTerms}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"suggest_url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://suggestqueries.google.com/complete/search?client=firefox&amp;amp;q={searchTerms}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"keyword"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"@google"&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"icons"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"48"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"icons/icon-48.png"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"64"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"icons/icon-64.png"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"browser_specific_settings"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"gecko"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"junaid@abujuni.dev"&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Source :&lt;/strong&gt; &lt;a href="https://github.com/junaidcodingmaster/NO-GOOGLE-AI-OVERVIEW/blob/main/manifest.json" rel="noopener noreferrer"&gt;&lt;code&gt;NO-GOOGLE-AI-OVERVIEW/manifest.json&lt;/code&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;NOTE :&lt;/strong&gt; Here, I taken &lt;code&gt;GithubRepoSearch&lt;/code&gt; for &lt;strong&gt;Example&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Going on here?
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;chrome_settings_overrides&lt;/code&gt; - Overrides browser settings in Firefox.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;is_default&lt;/code&gt;: Sets the custom search engine as the default.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;name&lt;/code&gt;: Name of the custom search engine.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;search_url&lt;/code&gt;: The URL used for search queries.

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;{searchTerms}&lt;/code&gt;: This placeholder is replaced with the actual search query by the browser.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;
&lt;code&gt;suggest_url&lt;/code&gt;: URL used for search suggestions.
&lt;strong&gt;Note:&lt;/strong&gt; The response from this URL must be in JSON format.

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;{searchTerms}&lt;/code&gt;: This placeholder is replaced with the actual search query by the browser.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;
&lt;code&gt;keyword&lt;/code&gt;: Custom keyword for triggering the search engine or &lt;code&gt;@google&lt;/code&gt; to override it with custom search engine.&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to submit your Extension in Firefox-Addons or Add-ons?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Create an Zip of project.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create an account in Firefox-Addons or Add-ons&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to [addons.mozilla.org/en-US/developers](&lt;a href="https://addons.mozilla.org/en-US/developers" rel="noopener noreferrer"&gt;https://addons.mozilla.org/en-US/developers&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Click on &lt;code&gt;Submit New Add-on&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Fill the form.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Click on &lt;code&gt;Edit Product Page&lt;/code&gt; and Fill the Information.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Important Fields to fill&lt;br&gt;&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;      Edit Product Page           - Edit your Add-on's Page.
      Manage Authors &amp;amp; License    - Add or Remove Authors and License
      Manage Status &amp;amp; Versions
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Wait until your Status says &lt;code&gt;Approved&lt;/code&gt; , it takes around 2days to 4weeks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ola!&lt;/strong&gt; you uploaded your first Firefox extension.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Sources :&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/junaidcodingmaster/NO-GOOGLE-AI-OVERVIEW" rel="noopener noreferrer"&gt;github.com/junaidcodingmaster/NO-GOOGLE-AI-OVERVIEW)&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Your_first_WebExtension" rel="noopener noreferrer"&gt;Your first extension - Mozilla&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Author :&lt;/strong&gt; &lt;a href="https://abujuni.dev" rel="noopener noreferrer"&gt;Junaid&lt;/a&gt;&lt;/p&gt;

</description>
      <category>json</category>
      <category>programming</category>
      <category>extensions</category>
    </item>
    <item>
      <title>The Official Forem App review</title>
      <dc:creator>Junaid</dc:creator>
      <pubDate>Mon, 11 Aug 2025 16:15:52 +0000</pubDate>
      <link>https://forem.com/junaid_dev/the-official-forem-app-review-2gnj</link>
      <guid>https://forem.com/junaid_dev/the-official-forem-app-review-2gnj</guid>
      <description>&lt;p&gt;Hi my name is Junaid, Anyone who is watching this post in FOPSC(Foren Open Source Core) Community.&lt;/p&gt;

&lt;p&gt;The Foren App's UI and App is laggy. Please fix it in android and Iphone.&lt;/p&gt;

&lt;p&gt;Thankyou.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Posted via Offical Forem App&lt;/em&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>USB HID in RPI PICO W Solved!</title>
      <dc:creator>Junaid</dc:creator>
      <pubDate>Tue, 24 Jun 2025 21:39:22 +0000</pubDate>
      <link>https://forem.com/junaid_dev/usb-hid-in-rpi-pico-w-solved-23jn</link>
      <guid>https://forem.com/junaid_dev/usb-hid-in-rpi-pico-w-solved-23jn</guid>
      <description>&lt;p&gt;&lt;strong&gt;WAIT!&lt;/strong&gt; Before proceeding—if you don't know how to set up CircuitPython, check out: &lt;strong&gt;What is RPI PICO W and how to SETUP it?&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Index
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Why Rubber Ducky, PICO Ducky, etc. Don't Work on RPI PICO W&lt;/li&gt;
&lt;li&gt;Investigation and Explanation&lt;/li&gt;
&lt;li&gt;How to Fix It?&lt;/li&gt;
&lt;li&gt;What is RPI PICO W and How to SETUP it?&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Why Rubber Ducky, PICO Ducky, etc. Don't Work on &lt;code&gt;RPI PICO W&lt;/code&gt;?
&lt;/h2&gt;

&lt;p&gt;The answer is simple: Everyone tries to add a fail-safe or trigger to enable/disable &lt;code&gt;storage&lt;/code&gt; in &lt;code&gt;boot.py&lt;/code&gt;.&lt;br&gt;&lt;br&gt;
But according to CircuitPython documentation, the &lt;code&gt;storage&lt;/code&gt; state can only be triggered once.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;boot.py&lt;/code&gt; – This runs only &lt;strong&gt;once&lt;/strong&gt; before the main code executes.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Investigation and Explanation
&lt;/h2&gt;

&lt;p&gt;Here, I’m using &lt;code&gt;boot.py&lt;/code&gt; to manipulate the USB protocol and declare the device as a USB HID to the OS.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;boot.py&lt;/code&gt; – USB HID Init
&lt;/h3&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;usb_hid&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;storage&lt;/span&gt;
&lt;span class="n"&gt;storage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;disable_usb_drive&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;usb_hid&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;enable&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;usb_hid&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Devices&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;KEYBOARD&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;code&gt;code.py&lt;/code&gt; – The main keystroke or ducky script
&lt;/h3&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;time&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;usb_hid&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;adafruit_hid.keyboard&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Keyboard&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;adafruit_hid.keycode&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Keycode&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;adafruit_hid.keyboard_layout_us&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;KeyboardLayoutUS&lt;/span&gt;

&lt;span class="c1"&gt;# Setup keyboard
&lt;/span&gt;&lt;span class="n"&gt;kyb&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Keyboard&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;usb_hid&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;devices&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;layout&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;KeyboardLayoutUS&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;kyb&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Open Notepad (Windows: Win + R → type 'notepad' → Enter)
&lt;/span&gt;&lt;span class="n"&gt;kyb&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;press&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Keycode&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;WINDOWS&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;kyb&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Keycode&lt;/span&gt;&lt;span class="p"&gt;.&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;kyb&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;release_all&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;0.5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;layout&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;notepad&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;kyb&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Keycode&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ENTER&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sleep&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="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;layout&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Hello World From Pico HID&lt;/span&gt;&lt;span class="se"&gt;\n&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;p&gt;&lt;strong&gt;OLAA! Your own ducky script.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  WAIT WAIT!
&lt;/h2&gt;

&lt;p&gt;Like everyone else, you may think:&lt;br&gt;
&lt;em&gt;"I can just add a trigger to switch between HID and USB Mass Storage!"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;But here's the twist, my friend!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;boot.py&lt;/code&gt; doesn't wait (or delay) for GPIO-related tasks.&lt;br&gt;
Even if you add a delay, it skips it.&lt;br&gt;
If anything goes wrong in &lt;code&gt;boot.py&lt;/code&gt;, it automatically falls back to &lt;strong&gt;USB Mass Storage&lt;/strong&gt; mode by default.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  How to Fix It?
&lt;/h2&gt;

&lt;p&gt;There are &lt;strong&gt;two ways&lt;/strong&gt; to fix this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Internal Communication (RECOMMENDED)&lt;/li&gt;
&lt;li&gt;External Communication&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Internal Communication (RECOMMENDED)
&lt;/h3&gt;

&lt;p&gt;Here you have more reliable options to communicate between &lt;code&gt;boot.py&lt;/code&gt; and &lt;code&gt;code.py&lt;/code&gt;.&lt;br&gt;
I recommend using &lt;code&gt;microcontroller.nvm&lt;/code&gt; which helps toggle state between the two scripts.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;microcontroller.nvm&lt;/code&gt; – Persistent Non-Volatile Memory.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;code&gt;boot.py&lt;/code&gt;
&lt;/h4&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;microcontroller&lt;/span&gt;
&lt;span class="n"&gt;microcontroller&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;nvm&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;  &lt;span class="c1"&gt;# Use 1 or 0 depending on mode
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  &lt;code&gt;code.py&lt;/code&gt;
&lt;/h4&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;microcontroller&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;microcontroller&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;nvm&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&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;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;USB drive was enabled&lt;/span&gt;&lt;span class="sh"&gt;"&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;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;USB drive was disabled&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;h3&gt;
  
  
  External Communication
&lt;/h3&gt;

&lt;p&gt;You can also use a simple &lt;code&gt;state.txt&lt;/code&gt; file to read/write the current state.&lt;br&gt;
This allows both scripts to enable or disable USB Mass Storage based on that value.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Get state from file
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;getState&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;with&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;state&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;r&lt;/span&gt;&lt;span class="sh"&gt;"&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;f&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;read&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&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="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Set state to file
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;setState&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;bool_val&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;with&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;state&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;w&lt;/span&gt;&lt;span class="sh"&gt;"&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;f&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;write&lt;/span&gt;&lt;span class="p"&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;bool_val&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  What is RPI PICO W and How to SETUP it?
&lt;/h2&gt;

&lt;p&gt;Hello Beginners!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;RPI&lt;/strong&gt; – Raspberry Pi&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are two ways to use Python on your RPI PICO W:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;CircuitPython&lt;/strong&gt; – Easy, stable, and beginner-friendly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MicroPython&lt;/strong&gt; – Gives full control. A bit tricky at first but easy once understood.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  In simple terms:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CircuitPython&lt;/strong&gt; is like &lt;strong&gt;Ubuntu&lt;/strong&gt; for RPI-based microcontrollers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MicroPython&lt;/strong&gt; is like &lt;strong&gt;Arch Linux&lt;/strong&gt; for RPI-based microcontrollers.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🚀 Speedrun: Setup Process
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Download the CircuitPython &lt;code&gt;.uf2&lt;/code&gt; file from the CircuitPython website.&lt;/li&gt;
&lt;li&gt;Download &lt;code&gt;nuke.uf2&lt;/code&gt; from CircuitPython or the Raspberry Pi website.&lt;/li&gt;
&lt;li&gt;Download the latest CircuitPython RPI PICO W bundle and unzip it.&lt;/li&gt;
&lt;li&gt;While plugging in your PICO to your PC, &lt;strong&gt;hold the &lt;code&gt;BOOTSEL&lt;/code&gt; button&lt;/strong&gt; until &lt;code&gt;RPI-RP2&lt;/code&gt; shows up in File Explorer.&lt;/li&gt;
&lt;li&gt;Copy &lt;code&gt;nuke.uf2&lt;/code&gt; to the &lt;code&gt;RPI-RP2&lt;/code&gt; drive.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WAIT&lt;/strong&gt; 2 seconds. It will eject and reconnect automatically.&lt;/li&gt;
&lt;li&gt;Now, copy the CircuitPython &lt;code&gt;.uf2&lt;/code&gt; file to &lt;code&gt;RPI-RP2&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WAIT&lt;/strong&gt; again—this time it will show as &lt;code&gt;CIRCUITPY&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;From the CircuitPython bundle, find the &lt;code&gt;usb_hid&lt;/code&gt; folder and copy it to your PICO.&lt;/li&gt;
&lt;li&gt;Copy your &lt;code&gt;code.py&lt;/code&gt; and &lt;code&gt;boot.py&lt;/code&gt; into the CIRCUITPY drive.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;OLAA! DONE!&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; I'm still exploring better solutions to improve this further.&lt;br&gt;
If you have any suggestions or ideas, &lt;strong&gt;please comment down below!&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Author&lt;/strong&gt;: &lt;a href="https://www.abujuni.dev" rel="noopener noreferrer"&gt;Junaid&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sources&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://cdn-learn.adafruit.com/downloads/pdf/customizing-usb-devices-in-circuitpython.pdf" rel="noopener noreferrer"&gt;PDF: Customizing USB Devices in CircuitPython&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.circuitpython.org/projects/hid/en/latest/" rel="noopener noreferrer"&gt;Adafruit USB HID Library Documentation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>raspberrypi</category>
      <category>picow</category>
      <category>circuitpython</category>
    </item>
    <item>
      <title>Host an URL Shortening Service NOW!</title>
      <dc:creator>Junaid</dc:creator>
      <pubDate>Fri, 30 May 2025 20:38:23 +0000</pubDate>
      <link>https://forem.com/junaid_dev/host-an-url-shortening-service-now-17la</link>
      <guid>https://forem.com/junaid_dev/host-an-url-shortening-service-now-17la</guid>
      <description>&lt;p&gt;&lt;strong&gt;Yes! You Can Host Your Own URL Shortening Service — and Even Build a Business on It!&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How?
&lt;/h2&gt;

&lt;p&gt;It’s easy! You can self-host it either locally or on the internet.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;LibreShortURL&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;LibreShortURL&lt;/strong&gt; is a minimalistic, privacy-friendly, and lightweight URL shortener.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Requirements&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Server&lt;/strong&gt;: Python &lt;code&gt;&amp;gt;= 3.13&lt;/code&gt;, Linux (containerized or any distribution)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Domain&lt;/strong&gt;: A short domain is recommended for better branding&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Installation Process&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Clone the repository&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  git clone https://github.com/junaidcodingmaster/LibreShortURL
  &lt;span class="nb"&gt;cd &lt;/span&gt;LibreShortURL
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Build the app on the server&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  &lt;span class="nb"&gt;chmod&lt;/span&gt; +x ./build-server.sh
  ./build-server.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Create a configuration file (&lt;code&gt;config.env&lt;/code&gt;)&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  SERVER_DOMAIN="&amp;lt;YOUR DOMAIN WITH HTTP OR HTTPS&amp;gt;"
  SERVER_HOST=0.0.0.0
  SERVER_PORT=433

  REQ_LIMIT_PER_DAY=50
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Deploy the app&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  python app.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you encounter any errors, you can force start with Flask:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  flask run &lt;span class="nt"&gt;--host&lt;/span&gt; &lt;span class="s2"&gt;"0.0.0.0"&lt;/span&gt; &lt;span class="nt"&gt;--port&lt;/span&gt; 433
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  &lt;strong&gt;Customization&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;To customize the UI, replace the following files with your own templates or design:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;index.html&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;styles.css&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;index.js&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These files are located in the &lt;code&gt;/templates&lt;/code&gt; folder.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Need Help?&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Repository&lt;/strong&gt;: &lt;a href="https://github.com/junaidcodingmaster/LibreShortURL" rel="noopener noreferrer"&gt;github.com/junaidcodingmaster/LibreShortURL&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Questions?&lt;/strong&gt; Feel free to comment on the repository!&lt;/li&gt;
&lt;/ul&gt;




&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Stay curious and explore more.&lt;/em&gt;&lt;br&gt;
~ Junaid&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;strong&gt;Author&lt;/strong&gt;: &lt;a href="https://abujuni.dev" rel="noopener noreferrer"&gt;Junaid&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>programming</category>
      <category>exploaring</category>
      <category>funprogramming</category>
    </item>
    <item>
      <title>How to make a Simple No Google AI Overviews Ext in Firefox</title>
      <dc:creator>Junaid</dc:creator>
      <pubDate>Wed, 21 May 2025 22:44:58 +0000</pubDate>
      <link>https://forem.com/junaid_dev/mkdir-no-google-ai-overviews-man-google-ai-overviews-rm-google-ai-overviews-2mn3</link>
      <guid>https://forem.com/junaid_dev/mkdir-no-google-ai-overviews-man-google-ai-overviews-rm-google-ai-overviews-2mn3</guid>
      <description>&lt;p&gt;In this post,I am going to talk about&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What is Google AI Overviews?&lt;/li&gt;
&lt;li&gt;How to Remove it?&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  - How to Build it?
&lt;/h2&gt;

&lt;h2&gt;
  
  
  What is Google AI Overviews?
&lt;/h2&gt;

&lt;p&gt;The AI Generative contexts in Google Searches are the contexts based on Gemini AI(Google's AI).&lt;/p&gt;

&lt;p&gt;which shows the main information, what you are searching for. Even if it is incorrect or not.&lt;/p&gt;

&lt;p&gt;There are many real world examples that proves this artical. An whole website is based on these examples.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://searchengineland.com/google-ai-overview-fails-442575" rel="noopener noreferrer"&gt;searchengineland.com/google-ai-overview-fails-442575&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to Remove it?
&lt;/h2&gt;

&lt;p&gt;There are 3-ways to remove it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Install an "No Google Overviews" extension.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Change the default Search Engine&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Don't use Google Search Engine&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Install an "No Google Overviews" extension.
&lt;/h3&gt;

&lt;p&gt;Here, Also there are many more option but I recommend these:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;S.No.&lt;/th&gt;
&lt;th&gt;Ext Name&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Add-on Link&lt;/th&gt;
&lt;th&gt;Repo Link&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;NO-GOOGLE-AI-OVERVIEW&lt;/td&gt;
&lt;td&gt;Simple, open-source, and plug-and-play.&lt;/td&gt;
&lt;td&gt;&lt;a href="https://addons.mozilla.org/en-GB/firefox/addon/no-google-ai-overview" rel="noopener noreferrer"&gt;INSTALL&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/junaidcodingmaster/NO-GOOGLE-AI-OVERVIEW" rel="noopener noreferrer"&gt;GITHUB&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;AI Overview Hider for Google&lt;/td&gt;
&lt;td&gt;Hides the AI Overview section in Google search results (desktop and mobile) to restore a traditional results list.&lt;/td&gt;
&lt;td&gt;&lt;a href="https://addons.mozilla.org/en-GB/firefox/addon/ai-overview-hider-for-google/" rel="noopener noreferrer"&gt;INSTALL&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/insin/ai-overview-hider-for-google" rel="noopener noreferrer"&gt;GITHUB&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Hide Google AI Overviews&lt;/td&gt;
&lt;td&gt;Removes AI-generated summary overviews from Google search results, leaving only the normal results.&lt;/td&gt;
&lt;td&gt;&lt;a href="https://addons.mozilla.org/en-GB/firefox/addon/hide-google-ai-overviews/" rel="noopener noreferrer"&gt;INSTALL&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/zbarnz/Google_AI_Overviews_Blocker" rel="noopener noreferrer"&gt;GITHUB&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;Remove Google AI Overview&lt;/td&gt;
&lt;td&gt;Eliminates all Google AI overview blocks (including those in “People Also Ask” sections), giving a clean search page.&lt;/td&gt;
&lt;td&gt;&lt;a href="https://addons.mozilla.org/en-GB/firefox/addon/remove-google-ai-overview/" rel="noopener noreferrer"&gt;INSTALL&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/Ooblek/remove_ai_oveview_firefox_addon" rel="noopener noreferrer"&gt;GITHUB&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;No google Ai search&lt;/td&gt;
&lt;td&gt;Disables Google’s new AI-based search (SGE) by automatically appending &lt;code&gt;udm=14&lt;/code&gt; to all queries, effectively reverting to classic results.&lt;/td&gt;
&lt;td&gt;&lt;a href="https://addons.mozilla.org/en-GB/firefox/addon/nogoogleai/" rel="noopener noreferrer"&gt;INSTALL&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/sophie-glk/NoGoogleAi" rel="noopener noreferrer"&gt;GITHUB&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;Straight to the web&lt;/td&gt;
&lt;td&gt;Forces Google searches into the “Web” mode, which turns off AI suggestions, widgets, and recommendations for a pure result list.&lt;/td&gt;
&lt;td&gt;&lt;a href="https://addons.mozilla.org/en-GB/firefox/addon/straight-to-the-web/" rel="noopener noreferrer"&gt;INSTALL&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/ShadowMitia/Straight-to-the-web" rel="noopener noreferrer"&gt;GITHUB&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;AiFilter&lt;/td&gt;
&lt;td&gt;Automatically filters out AI-generated overview blocks from Google search results by adding the &lt;code&gt;-ai&lt;/code&gt; flag to each query (user toggleable).&lt;/td&gt;
&lt;td&gt;&lt;a href="https://addons.mozilla.org/en-GB/firefox/addon/aifilter-google-search/" rel="noopener noreferrer"&gt;INSTALL&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/reviewsvc/ai-filter" rel="noopener noreferrer"&gt;GITHUB&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Some of these Extensions works same , but some of them are more Advances or Equipped with more features.&lt;/p&gt;

&lt;h3&gt;
  
  
  Change the default Search Engine
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;OS/Platform&lt;/th&gt;
&lt;th&gt;FIREFOX [Compatibility]&lt;/th&gt;
&lt;th&gt;CHROME [Compatibility]&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Android&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IOS&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windows&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mac&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Linux&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;For Firefox - IOS&lt;/strong&gt; :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Go to "settings"&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Go to "Search"&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click on "Add Search"&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Paste this :&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  https://google.com/search?udm=14&amp;amp;q=%s
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Click on "Save"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;For Firefox - Android&lt;/strong&gt; :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Go to "settings"&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Go to "Default search engine"&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click on "Add Search"&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Paste this :&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  https://google.com/search?udm=14&amp;amp;q=%s
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Click on "Save"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;For Chrome - Windows/Mac/Linux&lt;/strong&gt; :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tutorial Video : &lt;a href="https://vimeo.com/1086556313?share=copy" rel="noopener noreferrer"&gt;vimeo.com/1086556313&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Don't use Google Search Engine
&lt;/h3&gt;

&lt;p&gt;Alternatives for Google Search Engine, Best one is DuckDuckGo and the official extention is also availble.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Build it?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Let's Start !&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create &lt;code&gt;manifest.json&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Add name, description, and version.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"No Google's AI Overview"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Simple Example to Remove AI Overviews from Google Searches"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;chrome_settings_overrides&lt;/code&gt; — Gives the extension permission to override browser settings (like the default search engine, etc.), which normally aren't accessible to users.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;…&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"chrome_settings_overrides"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;It has some parameters that we use to change the search engine and make it default.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"chrome_settings_overrides"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"search_provider"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"is_default"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"NO-OVERVIEWS"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"search_url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://google.com/search?udm=14&amp;amp;q={searchTerms}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"suggest_url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://suggestqueries.google.com/complete/search?client=firefox&amp;amp;q={searchTerms}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"keyword"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"@google"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;is_default&lt;/code&gt;: Sets this search engine as the default.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;name&lt;/code&gt;: Name of the custom search engine.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;search_url&lt;/code&gt;: The URL used for search queries.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;{searchTerms}&lt;/code&gt;: This placeholder is replaced with the actual search query by the browser.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;code&gt;suggest_url&lt;/code&gt;: URL used for search suggestions.&lt;br&gt;
&lt;strong&gt;Note:&lt;/strong&gt; The response from this URL must be in JSON format.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;{searchTerms}&lt;/code&gt;: This placeholder is replaced with the actual search query.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;keyword&lt;/code&gt;: Custom keyword for triggering the search engine, or &lt;code&gt;@google&lt;/code&gt; to override.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Done!&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Full code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"No Google's AI Overview"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Simple Example to Remove AI Overviews from Google Search Results"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"chrome_settings_overrides"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"search_provider"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"is_default"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"NO-OVERVIEWS"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"search_url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://google.com/search?udm=14&amp;amp;q={searchTerms}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"suggest_url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://suggestqueries.google.com/complete/search?client=firefox&amp;amp;q={searchTerms}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"keyword"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"@google"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Try it : &lt;a href="https://addons.mozilla.org/en-GB/firefox/addon/no-google-ai-overview" rel="noopener noreferrer"&gt;GET IT ON FIREFOX ADD-ONS&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Doubts or Repo : [NO-GOOGLE-AI-OVERVIEW(&lt;a href="https://github.com/junaidcodingmaster/NO-GOOGLE-AI-OVERVIEW" rel="noopener noreferrer"&gt;https://github.com/junaidcodingmaster/NO-GOOGLE-AI-OVERVIEW&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Logic
&lt;/h3&gt;

&lt;p&gt;Basically, I am using google search parameters(or params).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;udm&lt;/code&gt; - User Data Management&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Detailed article on &lt;code&gt;udm&lt;/code&gt; 's : &lt;a href="https://serpapi.com/blog/every-google-udm-in-the-world" rel="noopener noreferrer"&gt;Every Google &amp;amp;&lt;code&gt;udm=?&lt;/code&gt; in the world&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Author :&lt;/strong&gt; &lt;a href="https://abujuni.dev" rel="noopener noreferrer"&gt;Junaid&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://vimeo.com/1086556313?share=copy" rel="noopener noreferrer"&gt;How to Remove Google AI Overviews from Google Search Results | Chrome Desktop&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/junaidcodingmaster/NO-GOOGLE-AI-OVERVIEW" rel="noopener noreferrer"&gt;NO-GOOGLE-AI-OVERVIEW&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://chrome-stats.com" rel="noopener noreferrer"&gt;chrome-stats.com&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>firefox</category>
      <category>browserextensions</category>
    </item>
    <item>
      <title>ALERT: Writer's Jobs Are at Risk</title>
      <dc:creator>Junaid</dc:creator>
      <pubDate>Sun, 04 May 2025 06:06:54 +0000</pubDate>
      <link>https://forem.com/junaid_dev/alert-writers-jobs-are-in-risk-26f7</link>
      <guid>https://forem.com/junaid_dev/alert-writers-jobs-are-in-risk-26f7</guid>
      <description>&lt;p&gt;&lt;strong&gt;Now, ChatGPT can convert AI-based Text Role Playing Games (AI-TRPGs) into novels, stories, and more!&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How Does It Work?
&lt;/h3&gt;

&lt;p&gt;ChatGPT can generate fully-developed stories or novels directly from AI-TRPGs—without the need for complex &lt;strong&gt;prompt engineering&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  Step-by-Step: Create the RPG Environment
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Basic Prompt:&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;AI, let's play an RPG.

My Role:  
Name: &amp;lt;Your Name&amp;gt;  
Role: &amp;lt;girl/boy/fictional character/etc.&amp;gt;

Your Role:  
Name: &amp;lt;AI's Name&amp;gt;  
Role: &amp;lt;girl/boy/fictional character/etc.&amp;gt;

Scenario:  
On a grassland in the countryside, or &amp;lt;your custom setting&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  After Playing
&lt;/h3&gt;

&lt;p&gt;You can instruct the AI to convert your RPG session into a proper story:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conversion Prompt:&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;AI, save the RPG we played as a story.

Title: &amp;lt;Your Title&amp;gt;  
Description: &amp;lt;Short Summary&amp;gt;  
Book Cover Hints/Ideas: &amp;lt;Visual and thematic suggestions&amp;gt;

Make the story long, well-structured, understandable, and compelling.  
Design a custom book cover using creative fonts and an artistic style.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Publishing Options
&lt;/h3&gt;

&lt;p&gt;You can choose to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Publish the story on &lt;strong&gt;Wattpad&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Export it as a &lt;strong&gt;PDF&lt;/strong&gt; or &lt;strong&gt;eBook&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;⚠️ WARNING ⚠️&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;AI-TRPGs can be highly &lt;strong&gt;addictive&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;May cause elevated &lt;strong&gt;dopamine&lt;/strong&gt; levels.
&lt;/li&gt;
&lt;li&gt;Excessive use could contribute to &lt;strong&gt;identity confusion or dissociation&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;🚨 IMPORTANT NOTE 🚨&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;This is an &lt;strong&gt;experimental project&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;There is &lt;strong&gt;no intent&lt;/strong&gt; to replace human writers with AI&lt;/li&gt;
&lt;li&gt;This showcases how AI can &lt;strong&gt;generate and publish full-fledged books&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;All research, prompt engineering, and publishing were done in a &lt;strong&gt;controlled environment&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;This experiment followed all applicable rules and policies&lt;/strong&gt; of OpenAI/ChatGPT, Wattpad, and the DEV community.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Demo &amp;amp; Proof
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Published on Wattpad:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Book Title:&lt;/strong&gt; &lt;a href="https://www.wattpad.com/story/393892005-ai-in-real-body" rel="noopener noreferrer"&gt;AI in Real Body&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;This story is not published, written and directed by me(Junaid), It was published by someone.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;There is &lt;strong&gt;NO&lt;/strong&gt; Relation between me(Junaid) and Author of this story.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Research by:&lt;/strong&gt; &lt;a href="https://abujuni.dev" rel="noopener noreferrer"&gt;&lt;em&gt;Junaid&lt;/em&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Author of this post:&lt;/strong&gt; &lt;a href="https://abujuni.dev" rel="noopener noreferrer"&gt;&lt;em&gt;Junaid&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>chatgpt</category>
    </item>
    <item>
      <title>This Tool can remove 98% Bloatware apps in Android</title>
      <dc:creator>Junaid</dc:creator>
      <pubDate>Tue, 19 Nov 2024 20:04:55 +0000</pubDate>
      <link>https://forem.com/junaid_dev/this-tool-can-remove-98-bloatware-apps-1imp</link>
      <guid>https://forem.com/junaid_dev/this-tool-can-remove-98-bloatware-apps-1imp</guid>
      <description>&lt;p&gt;Yes , this below tool can remove 98% bloatware apps in android and it is &lt;strong&gt;Made with &lt;a href="//www.rust-lang.org"&gt;Rust&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/junaidcodingmaster" rel="noopener noreferrer"&gt;
        junaidcodingmaster
      &lt;/a&gt; / &lt;a href="https://github.com/junaidcodingmaster/Super-Bloatware-Remover" rel="noopener noreferrer"&gt;
        Super-Bloatware-Remover
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      A Powerful , lightweight tool that removes 98% bloatware apps in android. Made with Rust(rust-lang.org)
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Super Bloatware Remover&lt;/h1&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Effortlessly remove up to 98% of bloatware apps from your Android device without requiring root access. Developed in &lt;a href="https://rust-lang.org" rel="nofollow noopener noreferrer"&gt;Rust&lt;/a&gt; for maximum efficiency and reliability
And it is lightweight.&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;
⚠️ WARNING&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;This tool is highly powerful, even without root access. Only remove apps that you are absolutely certain are bloatware. Deleting essential system apps could cause your device to malfunction.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Index&lt;/h2&gt;

&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://github.com/junaidcodingmaster/Super-Bloatware-Remover#supported-devices" rel="noopener noreferrer"&gt;Supported Devices&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/junaidcodingmaster/Super-Bloatware-Remover#supported-platforms" rel="noopener noreferrer"&gt;Supported Platforms&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/junaidcodingmaster/Super-Bloatware-Remover#desktop-platforms" rel="noopener noreferrer"&gt;Desktop Platforms&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/junaidcodingmaster/Super-Bloatware-Remover#mobile-platforms-via-termux-with-wireless-debugging" rel="noopener noreferrer"&gt;Mobile Platforms&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/junaidcodingmaster/Super-Bloatware-Remover#how-to-use" rel="noopener noreferrer"&gt;How to Use&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/junaidcodingmaster/Super-Bloatware-Remover#for-windows" rel="noopener noreferrer"&gt;For Windows&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/junaidcodingmaster/Super-Bloatware-Remover#for-linux" rel="noopener noreferrer"&gt;For Linux&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/junaidcodingmaster/Super-Bloatware-Remover#important-notes" rel="noopener noreferrer"&gt;Important Notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/junaidcodingmaster/Super-Bloatware-Remover#customizing-the-pkgstxt-file" rel="noopener noreferrer"&gt;Customizing the &lt;code&gt;pkgs.txt&lt;/code&gt; File&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/junaidcodingmaster/Super-Bloatware-Remover#guide-to-download-open-adb-on-windows-and-check-device-connection" rel="noopener noreferrer"&gt;Guide to Download, Open ADB on Windows, and Check Device Connection&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/junaidcodingmaster/Super-Bloatware-Remover#troubleshooting-tips" rel="noopener noreferrer"&gt;Troubleshooting Tips&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/junaidcodingmaster/Super-Bloatware-Remover#building-the-app" rel="noopener noreferrer"&gt;Building the App&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Supported Devices&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;The tool has been tested on the following devices:&lt;/p&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Device&lt;/th&gt;
&lt;th&gt;Brand&lt;/th&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Y16-64GB&lt;/td&gt;
&lt;td&gt;Vivo&lt;/td&gt;
&lt;td&gt;✅ - PASS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Y16-32GB&lt;/td&gt;
&lt;td&gt;Vivo&lt;/td&gt;
&lt;td&gt;✅ - PASS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A5 CPH1909 32GB&lt;/td&gt;
&lt;td&gt;Oppo&lt;/td&gt;
&lt;td&gt;❌ - FAIL&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Supported Platforms&lt;/h2&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Desktop Platforms&lt;/h3&gt;

&lt;/div&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;OS&lt;/th&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Windows&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Linux&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;macOS&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Mobile Platforms (via Termux with Wireless Debugging)&lt;/h3&gt;…&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/junaidcodingmaster/Super-Bloatware-Remover" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


</description>
      <category>rust</category>
    </item>
    <item>
      <title>Install Official VS Code on Android</title>
      <dc:creator>Junaid</dc:creator>
      <pubDate>Wed, 03 Apr 2024 12:07:40 +0000</pubDate>
      <link>https://forem.com/junaid_dev/setup-official-vs-code-on-android-5a</link>
      <guid>https://forem.com/junaid_dev/setup-official-vs-code-on-android-5a</guid>
      <description>&lt;h2&gt;
  
  
  How to Install Official VS Code on Android
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Install Termux:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Install Termux from the &lt;a href="https://f-droid.org" rel="noopener noreferrer"&gt;F-droid&lt;/a&gt; or &lt;a href="https://f-droid.org/en/packages/com.termux/" rel="noopener noreferrer"&gt;F-droid/termux&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Setup Termux:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Update Termux packages and install &lt;code&gt;neofetch&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;apt update &lt;span class="nt"&gt;-y&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; apt upgrade &lt;span class="nt"&gt;-y&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; neofetch
&lt;/code&gt;&lt;/pre&gt;


&lt;p&gt;Follow the prompts and say &lt;code&gt;Y&lt;/code&gt; to all.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Install Ubuntu 22:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Install Linux VM (OS: Ubuntu 22):&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pkg update &lt;span class="nt"&gt;-y&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; pkg &lt;span class="nb"&gt;install &lt;/span&gt;wget curl proot &lt;span class="nb"&gt;tar&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt;
wget https://raw.githubusercontent.com/AndronixApp/AndronixOrigin/master/Installer/Ubuntu22/ubuntu22.sh &lt;span class="nt"&gt;-O&lt;/span&gt; ubuntu22.sh
&lt;span class="nb"&gt;chmod&lt;/span&gt; +x ubuntu22.sh &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; bash ubuntu22.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Set Root Password and Install Packages:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;In the Ubuntu 22 VM, set a password for root:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;passwd 
&lt;/code&gt;&lt;/pre&gt;


&lt;p&gt;(Keep it as &lt;code&gt;root&lt;/code&gt; for now.)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Install necessary packages:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;apt update &lt;span class="nt"&gt;-y&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; apt upgrade &lt;span class="nt"&gt;-y&lt;/span&gt;
apt &lt;span class="nb"&gt;install &lt;/span&gt;nano curl wget python3 python3-pip neofetch dpkg &lt;span class="nb"&gt;sudo&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; neofetch
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Create User:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Create a new user and grant sudo privileges:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;useradd &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"&amp;lt;username&amp;gt;"&lt;/span&gt;
passwd &lt;span class="s2"&gt;"&amp;lt;username&amp;gt;"&lt;/span&gt;
usermod &lt;span class="nt"&gt;-aG&lt;/span&gt; &lt;span class="nb"&gt;sudo&lt;/span&gt; &lt;span class="s2"&gt;"&amp;lt;username&amp;gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Update Packages:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Update Ubuntu packages:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt update &lt;span class="nt"&gt;-y&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;sudo &lt;/span&gt;apt upgrade &lt;span class="nt"&gt;-y&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nt"&gt;--fix-broken&lt;/span&gt; &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Exit VM:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Exit the Ubuntu VM:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;exit&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Connect Local Storage:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Connect your local mobile storage to Termux:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;termux-setup-storage
&lt;/code&gt;&lt;/pre&gt;


&lt;p&gt;Say &lt;code&gt;Y&lt;/code&gt; to allow if prompted.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Check Architecture:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Check the architecture of Termux/Android:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;neofetch
&lt;/code&gt;&lt;/pre&gt;


&lt;p&gt;Look for &lt;code&gt;aarch64&lt;/code&gt; or &lt;code&gt;arm64&lt;/code&gt; for 64-bit architecture, and &lt;code&gt;aarch32&lt;/code&gt;or&lt;code&gt;armhf&lt;/code&gt; for 32-bit.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Download VS Code:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to the official VS Code website (&lt;a href="https://code.visualstudio.com/download" rel="noopener noreferrer"&gt;https://code.visualstudio.com/download&lt;/a&gt;) and download the &lt;code&gt;.deb&lt;/code&gt; package for Arm64 or Arm32 based on your architecture.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Copy and Install VS Code:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Copy the downloaded &lt;code&gt;.deb&lt;/code&gt; file to the Ubuntu VM:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;ls &lt;/span&gt;storage/downloads
&lt;span class="nb"&gt;cp&lt;/span&gt; &lt;span class="s2"&gt;"storage/downloads/&amp;lt;filename&amp;gt;"&lt;/span&gt; &lt;span class="s2"&gt;"code.deb"&lt;/span&gt;
&lt;span class="nb"&gt;mv&lt;/span&gt; &lt;span class="s2"&gt;"code.deb"&lt;/span&gt; &lt;span class="s2"&gt;"ubuntu22-fs/root/code.deb"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Start Ubuntu VM:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Start the Ubuntu VM:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;bash start-ubuntu22.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Install VS Code:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Install VS Code using the &lt;code&gt;.deb&lt;/code&gt; file:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;apt &lt;span class="nb"&gt;install&lt;/span&gt; ./code.deb
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Login and Run VS Code:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Login with your username:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;login &lt;span class="s2"&gt;"&amp;lt;username&amp;gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;


&lt;p&gt;Enter your password.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run VS Code in the browser:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;code serve-web
&lt;/code&gt;&lt;/pre&gt;


&lt;p&gt;Wait for a URL to appear, then copy and paste it into your browser.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Bonus
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Run VS Code Server:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Run VS Code server on Android:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;code tunnel
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Enjoy using VS Code on your Android !&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;em&gt;&lt;em&gt;Double Verified&lt;/em&gt;&lt;/em&gt; by &lt;a href="https://abujuni.dev" rel="noopener noreferrer"&gt;Junaid&lt;/a&gt;.
&lt;/h2&gt;

&lt;p&gt;Author : &lt;a href="https://abujuni.dev" rel="noopener noreferrer"&gt;Junaid&lt;/a&gt;&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>termux</category>
    </item>
    <item>
      <title>I'm proud to present to you `Jpy 3D GE`</title>
      <dc:creator>Junaid</dc:creator>
      <pubDate>Sun, 17 Mar 2024 03:48:18 +0000</pubDate>
      <link>https://forem.com/junaid_dev/im-proud-to-present-to-you-jpy-3d-ge-gon</link>
      <guid>https://forem.com/junaid_dev/im-proud-to-present-to-you-jpy-3d-ge-gon</guid>
      <description>&lt;p&gt;Python now enables faster game development compared to Unity, offering HD quality, VR, and AR support. Notably, you can consolidate all your game code into a single file (Take this unity).&lt;/p&gt;

&lt;p&gt;By the help of &lt;code&gt;Jpy 3D GE&lt;/code&gt;.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open-source version coming soon.&lt;/li&gt;
&lt;li&gt;Cross-platform compatibility: Android (Termux, Pydroid3, and the official Jpy 3D GE app), iOS (similar to Android), Windows, macOS, Linux, Raspberry Pi.&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Junaid Python 3D Game Engine (Jpy 3D GE)
&lt;/h1&gt;

&lt;p&gt;The idea originated in my classroom discussions about Unity's benefits. Despite suggestions to learn C++, I chose Python. After intense public exams, I dedicated four days, sacrificing sleep, to develop this engine. Now, with a gameWindowManager and some basic shapes , as shown in below example-1&lt;/p&gt;

&lt;h2&gt;
  
  
  Examples
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Display a box at coordinates (0, 0, 0).
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;Jpy3D_GE&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;CreateWorld&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;worldAppender&lt;/span&gt;

&lt;span class="n"&gt;world&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;CreateWorld&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;example&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# Creates a world
&lt;/span&gt;
&lt;span class="n"&gt;world&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addSky&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;# by default color="skyblue"
&lt;/span&gt;&lt;span class="n"&gt;world&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addCamera&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;# by default x=0,y=0,z=0 
&lt;/span&gt;&lt;span class="n"&gt;world&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addCube&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;# by default x=0,y=0,z=0 , height=5,width=5,depth=5
&lt;/span&gt;
&lt;span class="nf"&gt;worldAppender&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;world&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# this is useful when you have more than one world in only one file
&lt;/span&gt;
&lt;span class="n"&gt;world&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;# runs this program
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Manage windows, splash screens, and more.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;GameWindowManager&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;WindowManager&lt;/span&gt;

&lt;span class="n"&gt;window&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;WindowManager&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;debug&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Add a button
&lt;/span&gt;&lt;span class="n"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addButton&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;lambda&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;Button clicked&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="c1"&gt;# Add an input box
&lt;/span&gt;&lt;span class="n"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addInput&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;lambda&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;Enter pressed&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="c1"&gt;# Set splash screen
&lt;/span&gt;&lt;span class="n"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;splashScreen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;path/to/splash_screen.png&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Set window icon
&lt;/span&gt;&lt;span class="n"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;windowIcon&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;path/to/window_icon.ico&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;
  
  
  Ongoing Work
&lt;/h2&gt;

&lt;p&gt;I'm actively debugging and adding more features. Follow my progress!&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/junaidcodingmaster" rel="noopener noreferrer"&gt;github.com/junaidcodingmaster&lt;/a&gt;&lt;br&gt;
Project Page: &lt;a href="https://jpy3dge.abujuni.dev" rel="noopener noreferrer"&gt;jpy3dge.abujuni.dev&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ICONS AND BANNERS
&lt;/h2&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%2Fd1w5350kmz4o28hu767b.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%2Fd1w5350kmz4o28hu767b.png" alt="Jpy 3D GE Banner" width="537" height="579"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fytkot6zq4jyo1mr971e9.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%2Fytkot6zq4jyo1mr971e9.png" alt="Project Page Banner" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>unity3d</category>
      <category>python</category>
      <category>jpy3dge</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Stars API ⭐🌟</title>
      <dc:creator>Junaid</dc:creator>
      <pubDate>Sat, 03 Dec 2022 19:13:40 +0000</pubDate>
      <link>https://forem.com/junaid_dev/stars-api-5bcd</link>
      <guid>https://forem.com/junaid_dev/stars-api-5bcd</guid>
      <description>&lt;p&gt;Stars API , get all stars in universe at one place .&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This is the latest version of Stars-API . [version- 2]&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This Stars API is made by &lt;a href="https://www.abujuni.dev" rel="noopener noreferrer"&gt;Junaid&lt;/a&gt; . It also includes images .&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%2Fxchyc801bxfqfslfid2e.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%2Fxchyc801bxfqfslfid2e.png" alt="demo1" width="800" height="421"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Star Data by &lt;a href="https://www.abujuni.dev" rel="noopener noreferrer"&gt;Junaid&lt;/a&gt; .&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stars API is Now online at &lt;a href="https://starsapi.abujuni.dev" rel="noopener noreferrer"&gt;https://starsapi.abujuni.dev&lt;/a&gt; (or) &lt;a href="https://stars-api.onrender.com" rel="noopener noreferrer"&gt;https://stars-api.onrender.com&lt;/a&gt; .&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Index
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Stars Data API&lt;/li&gt;
&lt;li&gt;Star Data Search API&lt;/li&gt;
&lt;li&gt;Star Images Search API&lt;/li&gt;
&lt;li&gt;Installation&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Star Data API
&lt;/h2&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%2Fxchyc801bxfqfslfid2e.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%2Fxchyc801bxfqfslfid2e.png" alt="demo1" width="800" height="421"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Star Data by &lt;a href="https://www.abujuni.dev" rel="noopener noreferrer"&gt;Junaid&lt;/a&gt; .&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Index page is the API which shows all stars in json format , every star data is in a array format .&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://127.0.0.1:5000/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;em&gt;Tip : This API is easy to make a flatlist react app .&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Star Data Search API
&lt;/h2&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%2Fd2m6ii0evngeaval7pd1.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%2Fd2m6ii0evngeaval7pd1.png" alt="demo3" width="800" height="96"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://127.0.0.1:5000/stars?name=Proxima Centauri
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;or&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://127.0.0.1:5000/stars?name=sun
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;Return&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;{"data":{"Distance":1.5813e-05,"Gravity":274.2691614596,"Mass":1.0,"Radius":1.0,"Star_name":"Sun"},"message":"Success !"}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Star Images Search API
&lt;/h2&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%2Fkquwoythdehms169asq4.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%2Fkquwoythdehms169asq4.png" alt="demo2" width="764" height="124"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://127.0.0.1:5000/stars-img?name=Proxima Centauri
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;or&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://127.0.0.1:5000/stars-img?name=sun
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;Return&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;{"img_url":"http://images-assets.nasa.gov/image/PIA18906/PIA18906~thumb.jpg","message":"Success !"}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

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


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/junaidcodingmaster" rel="noopener noreferrer"&gt;
        junaidcodingmaster
      &lt;/a&gt; / &lt;a href="https://github.com/junaidcodingmaster/Stars-API" rel="noopener noreferrer"&gt;
        Stars-API
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Stars API , get all stars in universe at one place .
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/junaidcodingmaster/Stars-API./logo.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fjunaidcodingmaster%2FStars-API.%2Flogo.png" alt="logo"&gt;&lt;/a&gt;
&lt;a href="https://www.python.org/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/e88c9b0b835ad77bb97431fffb8350291730d9f43d8a29fd88cf758cc443e624/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d616465253230776974682d507974686f6e2d626c756576696f6c65742e737667" alt="Made with Python"&gt;&lt;/a&gt;
&lt;a href="https://github.com/junaidcodingmaster/Stars-API" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/59f687c5a46a4a5a5c8db856083faa5bb0ab9bc64e3b5455f94b0c6a92f538ee/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f76657273696f6e2d322e322d677265656e2e737667" alt="Version"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Stars API ⭐🌟&lt;/h1&gt;
&lt;/div&gt;

&lt;p&gt;Get all the stars in the universe at one place with the Stars API.&lt;/p&gt;

&lt;p&gt;This is the latest version of the Stars API :  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/2f48b90cd7dcf12874b54801613613ae5857514d2cf46794c343128fc2424bea/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f6a756e616964636f64696e676d61737465722f53746172732d415049"&gt;&lt;img src="https://camo.githubusercontent.com/2f48b90cd7dcf12874b54801613613ae5857514d2cf46794c343128fc2424bea/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f6a756e616964636f64696e676d61737465722f53746172732d415049" alt="Stars API Version"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This API was created by &lt;a href="https://www.abujuni.dev" rel="nofollow noopener noreferrer"&gt;Junaid&lt;/a&gt; and includes images.&lt;/p&gt;

&lt;p&gt;Check out a demo:&lt;/p&gt;

&lt;p&gt;&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/8c12f15e55cbc0cdc1c536465cacce905019656e7a62c8fb3b40071a87274cb7/68747470733a2f2f692e6962622e636f2f3366675373667a2f3238343666336432316230632e706e67"&gt;&lt;img src="https://camo.githubusercontent.com/8c12f15e55cbc0cdc1c536465cacce905019656e7a62c8fb3b40071a87274cb7/68747470733a2f2f692e6962622e636f2f3366675373667a2f3238343666336432316230632e706e67" alt="Star Data Demo"&gt;&lt;/a&gt;
&lt;em&gt;Star Data by &lt;a href="https://www.abujuni.dev" rel="nofollow noopener noreferrer"&gt;Junaid&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The API is now live at:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://starsapi.abujuni.dev" rel="nofollow noopener noreferrer"&gt;https://starsapi.abujuni.dev&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://stars-api.onrender.com" rel="nofollow noopener noreferrer"&gt;https://stars-api.onrender.com&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Table of Contents&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/junaidcodingmaster/Stars-API#star-data-api" rel="noopener noreferrer"&gt;Star Data API&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/junaidcodingmaster/Stars-API#star-data-search-api" rel="noopener noreferrer"&gt;Star Data Search API&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/junaidcodingmaster/Stars-API#star-images-search-api" rel="noopener noreferrer"&gt;Star Images Search API&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/junaidcodingmaster/Stars-API#installation" rel="noopener noreferrer"&gt;Installation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Star Data API&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Get a JSON list of all the stars in the universe by visiting the index page:&lt;/p&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;http://127.0.0.1:5000
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;This API is perfect for creating a flatlist in a React app.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Star Data Search API&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;Get specific star data by searching by name:&lt;/p&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;http://127.0.0.1:5000/stars?name=proxima centauri
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Or&lt;/p&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;http://127.0.0.1:5000/stars?name=sun
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Example return:&lt;/p&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;{"data":{"Distance":1.5813e-05,"Gravity":274.2691614596,"Mass":1.0,"Radius":1.0,"Star_name":"Sun"},"message":"Success !"}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Star Images Search API&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;Get an image of a specific star by searching by name:&lt;/p&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;http://127.0.0.1:5000/stars-img?name=proxima centauri
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Or&lt;/p&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;http://127.0.0.1:5000/stars-img?name=sun
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Example return:&lt;/p&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;{"img_url":"http://images-assets.nasa.gov/image/PIA18906/PIA18906~thumb.jpg","message":"Success !"}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Installation&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;To use the Stars API on your…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/junaidcodingmaster/Stars-API" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Go to this repo(given above), download the latest version of Stars-API as Zip.&lt;/li&gt;
&lt;li&gt;Extract zip file and open terminal in that extracted folder.&lt;/li&gt;
&lt;li&gt;Install all requirements using -&amp;gt; &lt;code&gt;pip install -r requirements.txt&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Than type -&amp;gt; &lt;code&gt;flask run&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;heyy ! , Star API is running at &lt;a href="http://127.0.0.1:5000/" rel="noopener noreferrer"&gt;http://127.0.0.1:5000/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Where is the API ?
&lt;/h2&gt;

&lt;p&gt;Stars API is hosted at &lt;a href="https://starsapi.abujuni.dev" rel="noopener noreferrer"&gt;https://starsapi.abujuni.dev&lt;/a&gt; or &lt;a href="https://stars-api.onrender.com" rel="noopener noreferrer"&gt;https://stars-api.onrender.com&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Made By &lt;a href="https://www.abujuni.dev" rel="noopener noreferrer"&gt;Junaid&lt;/a&gt; .&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>flask</category>
    </item>
    <item>
      <title>Google Tasks Chrome Extension</title>
      <dc:creator>Junaid</dc:creator>
      <pubDate>Mon, 16 May 2022 17:25:26 +0000</pubDate>
      <link>https://forem.com/junaid_dev/google-tasks-chrome-extension-3d93</link>
      <guid>https://forem.com/junaid_dev/google-tasks-chrome-extension-3d93</guid>
      <description>&lt;p&gt;Google Tasks ,  We can see this feature in gmail and mobile app . Now, came to you as google chrome desktop Extension.&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%2Fwtq984a8n6bqlbbue0bk.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%2Fwtq984a8n6bqlbbue0bk.png" alt="Image description" width="258" height="131"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhr0y1k6p2908qog0778y.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%2Fhr0y1k6p2908qog0778y.png" alt="Image description" width="307" height="382"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&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%2Fj40fee3i7d2cphx3e6t7.png" alt="Image description" width="800" height="368"&gt;
&lt;/h2&gt;

&lt;p&gt;A Demo ⬎&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%2Fel1d1i1rfsp82zc1owi9.gif" 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%2Fel1d1i1rfsp82zc1owi9.gif" alt="Image description" width="720" height="333"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Github ⮕ &lt;a href="https://github.com/junaidcodingmaster/Google-Tasks-Chrome-Extension" rel="noopener noreferrer"&gt;Google-Tasks-Chrome-Extension&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Made By ⮕ &lt;strong&gt;&lt;a href="https://abujuni.dev" rel="noopener noreferrer"&gt;Junaid&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>html</category>
      <category>javascript</category>
      <category>css</category>
      <category>vscode</category>
    </item>
    <item>
      <title>File downloader in python and Google Colab</title>
      <dc:creator>Junaid</dc:creator>
      <pubDate>Mon, 16 May 2022 16:47:41 +0000</pubDate>
      <link>https://forem.com/junaid_dev/file-downloader-in-python-and-google-colab-3laj</link>
      <guid>https://forem.com/junaid_dev/file-downloader-in-python-and-google-colab-3laj</guid>
      <description>&lt;p&gt;This is the code for downloading files from internet.&lt;/p&gt;

&lt;h2&gt;
  
  
  In python (Local computer)
&lt;/h2&gt;

&lt;p&gt;First install requests&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install requests
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import requests

image_url = input("Paste your file url : ")
saveAs = input("Save As : ")
r = requests.get(image_url)

print("\nDownloading Files...\n")

with open(saveAs, "wb") as foo:
    foo.write(r.content)
    print("\nFile has been saved\n")


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

&lt;/div&gt;



&lt;h2&gt;
  
  
  In Google Colab
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import requests

image_url = "https://example.com/file.png" # Paste file url here

r = requests.get(image_url)

print("\nDownloading Files...\n")

# Enter your file name ⬇⬇
with open("exampleFile.png", "wb") as foo:
    foo.write(r.content)
    print("\nFile has been saved\n")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  For reference
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import requests

image_url = input("Paste your file url : ")
saveAs = input("Save As : ")
r = requests.get(image_url)

print("\nDownloading Files...\n")

with open(saveAs, "wb") as foo:
    foo.write(r.content)
    print("\nFile has been saved\n")

'''
# In google colab 
------------------------------------------
import requests

image_url = "https://example.com/file.png" # Paste file url here

r = requests.get(image_url)

print("\nDownloading Files...\n")

# Enter your file name ⬇⬇
with open("exampleFile.png", "wb") as foo:
    foo.write(r.content)
    print("\nFile has been saved\n")

'''

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

&lt;/div&gt;






&lt;p&gt;Writer ⮕ &lt;a href="https://abujuni.dev" rel="noopener noreferrer"&gt;Junaid&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Publisher ⮕ &lt;a href="https://abujuni.dev" rel="noopener noreferrer"&gt;Junaid&lt;/a&gt;&lt;/p&gt;

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