<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Santhosh (sandy inspires)</title>
    <description>The latest articles on DEV Community by Santhosh (sandy inspires) (@sandy_codes_py).</description>
    <link>https://dev.to/sandy_codes_py</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%2F457047%2F0d3a7d79-8416-4315-8289-a256c02fcd4d.png</url>
      <title>DEV Community: Santhosh (sandy inspires)</title>
      <link>https://dev.to/sandy_codes_py</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sandy_codes_py"/>
    <language>en</language>
    <item>
      <title>Deploy pygames to GitHub Pages with WebAssembly - PWA ready!</title>
      <dc:creator>Santhosh (sandy inspires)</dc:creator>
      <pubDate>Sun, 21 May 2023 09:26:01 +0000</pubDate>
      <link>https://dev.to/sandy_codes_py/deploy-pygames-to-github-pages-with-webassembly-56po</link>
      <guid>https://dev.to/sandy_codes_py/deploy-pygames-to-github-pages-with-webassembly-56po</guid>
      <description>&lt;p&gt;I'm a late comer to this hackathon!!&lt;/p&gt;

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

&lt;p&gt;GitHub Action to deploy any of your games build with pygames to GitHub pages - &lt;strong&gt;mobile friendly and PWA read from word go!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is my first GitHub Action.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F9yjv9ppo8apt3e3d47eq.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F9yjv9ppo8apt3e3d47eq.jpg" alt="Game Logo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Image Credits: Wikimedia&lt;/p&gt;

&lt;h3&gt;
  
  
  Category Submission:
&lt;/h3&gt;

&lt;p&gt;Phone Friendly&lt;/p&gt;

&lt;h3&gt;
  
  
  👨‍💻For people who say, I just wanna see it live, &lt;a href="https://santhoshkumard11.github.io/deploy-pygame/" rel="noopener noreferrer"&gt;Link&lt;/a&gt;
&lt;/h3&gt;

&lt;h3&gt;
  
  
  🎬For people who say, enough of talk - &lt;a href="https://youtu.be/KesTSGA55Xk" rel="noopener noreferrer"&gt;YouTube Demo Link&lt;/a&gt;
&lt;/h3&gt;

&lt;h3&gt;
  
  
  🕵️‍♂️For people who say, just show what you've built - &lt;a href="https://github.com/Santhoshkumard11/deploy-pygame" rel="noopener noreferrer"&gt;GitHub Repo Link&lt;/a&gt;
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Gameplay
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Mobile
&lt;/h4&gt;

&lt;p&gt;Tested with &lt;strong&gt;Samsung S22&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Frpzm7qy9a4rgql9lye3v.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Frpzm7qy9a4rgql9lye3v.gif" alt="Mobile Gameplay"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Flxmx1bs0fbtk3bsw0zay.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Flxmx1bs0fbtk3bsw0zay.jpg" alt="PWA"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fxhvjhb1ausgw8le2eifk.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fxhvjhb1ausgw8le2eifk.jpg" alt="Landscape"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Flhk1hl8tj988xalxe6pl.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Flhk1hl8tj988xalxe6pl.jpg" alt="Portrait"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  PC
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fzi88b8ivgxencw65zdag.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fzi88b8ivgxencw65zdag.gif" alt="PC Gameplay"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Screenshots
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Home Screen
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fn4xqrzmsuedctvsnssqu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fn4xqrzmsuedctvsnssqu.png" alt="Game Home"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Supports all device types which run a browser that has WebAssemly support (most modern browsers do)!&lt;/p&gt;

&lt;h4&gt;
  
  
  Devices Tested
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Acer Monitor 34"&lt;/li&gt;
&lt;li&gt;Hp Omen 15"&lt;/li&gt;
&lt;li&gt;Microsoft Surface Go 2 10"&lt;/li&gt;
&lt;li&gt;Samsung Smartphone 6"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fzhvj6hlx6s5cj806nue7.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fzhvj6hlx6s5cj806nue7.jpeg" alt="All screen sizes"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  GitHub Actions
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media.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%2Ft5xs3tavwka8ek1l5jvc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Ft5xs3tavwka8ek1l5jvc.png" alt="GitHub Actions"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Description
&lt;/h3&gt;

&lt;p&gt;Replicated the Legendary Arcade Space Invaders from 1978 which is a shoot'em up arcade game developed by Tomohiro Nishikado.&lt;/p&gt;

&lt;p&gt;The game can be played via any web browser which supports WebAssembly.&lt;/p&gt;

&lt;p&gt;Commands to use &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Left Arrow - move the ship to the left&lt;/li&gt;
&lt;li&gt;Right Arrow - move the ship to the right&lt;/li&gt;
&lt;li&gt;Space - shoot a single shot&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Difficulty level can be increased with the DIFFICULTY_LEVEL variable, a value between 1 to 10, number of enemy bullets fired at the ship.&lt;/p&gt;

&lt;p&gt;Tried integrating a special command rapid Fire that shoots 100 continuous shots at the enemies - none escapes this attack.&lt;/p&gt;

&lt;h3&gt;
  
  
  GitHub Source Code Link
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/Santhoshkumard11/deploy-pygame" rel="noopener noreferrer"&gt;https://github.com/Santhoshkumard11/deploy-pygame&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  deploy-pygame.yml
&lt;/h4&gt;

&lt;p&gt;Replace &lt;strong&gt;/space_invaders/&lt;/strong&gt; path in your repo with your game name&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;name: Build Space Invaders with Pygbag
on:
  push:
    branches:
      - main
  workflow_dispatch:

jobs:
  build-pygbag:
    name: Sandy Inspires - Space Invaders Game
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - name: Checkout
      run: |
            echo "Attempting to install pygbag"
            python -m pip install pygbag
            echo "Successfully installed pygbag"
            echo "Attempting to build the game"
            python -m pygbag --build $GITHUB_WORKSPACE/space_invaders/main.py
            echo "Successfully build the game and complied to WebAssembly"

    - name : "Upload to GitHub pages branch gh-pages"
      uses: JamesIves/github-pages-deploy-action@4.1.7
      with:
        branch: gh-pages
        folder: space_invaders/build/web
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Permissive License
&lt;/h3&gt;

&lt;p&gt;MIT license&lt;/p&gt;

&lt;h2&gt;
  
  
  Common Mistakes
&lt;/h2&gt;

&lt;p&gt;Sharing some mistakes I did and found the fix the hard way.&lt;/p&gt;

&lt;p&gt;1) Setting the Workflow permissions right&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;for a flow to write to your repo (creating branch or pushing code) you need to enable read and write permissions.
Steps:
1) Go to your repo &lt;strong&gt;Settings&lt;/strong&gt;
2) Click on the &lt;strong&gt;Actions ** tab on the left-hand side sidebar
3) Click on **General&lt;/strong&gt;
4) Scroll all the way down to find &lt;strong&gt;Workflow permissions&lt;/strong&gt;, check Read and write permissions and click Save.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;2) use &lt;strong&gt;$GITHUB_WORKSPACE&lt;/strong&gt; variable if you're not sure from where you're fetching the files or folders from.&lt;/p&gt;

&lt;p&gt;Will add more in the future as I encounter more of them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Background
&lt;/h2&gt;

&lt;p&gt;I always wanted to make games but has no idea on game design, but I was good with Python scripting and database. Recently I kind of redesigned Space Invaders 🧑‍🚀🚀 and posted it online, but many said they wanted to try it out so I asked them to follow the instructions in README.md file. Still, it's difficult for many to do that so I wanted to deploy it in web so it's accessible for anyone who wants to play it and give feedback. I saw this hackathon and was thinking if it's possible to deploy it via GitHub Actions. To my surprise there is a simple deployment way to build and deploy the game - GitHub Pages came to my rescue.&lt;/p&gt;

&lt;h3&gt;
  
  
  How I built it
&lt;/h3&gt;

&lt;p&gt;GitHub Actions has been the go-to CI/CD for developers who don't want to get into complex Jenkins pipelines, deploying and managing stuffs around. But who needs a simple CI/CD that just works every single time. I've used GitHub Actions for deploying Azure Functions, App Services, and other services of Azure but this time I want to simplify the process even further. I wanted to write my own flow, so I just tried one and it worked out - just like magic. You don't really know what's happening, but it deploys, and it just works. &lt;/p&gt;

&lt;p&gt;I had a fair idea of how things work with GitHub pages but haven't explored it a lot, but now since I wanted to deploy the game as a web application, I was looking at GitHub Pages to see if it can support a game to be deployed and not just a simple web application.&lt;/p&gt;

&lt;p&gt;To my surprise again, as long as you have an index.html file with all the code inside it, you can deploy web applications (not to be used for production) to it. I initially had to deploy it to Azure Function, which is good and my go to deployments for APIs and simple web apps, but I always wanted to simplify things.&lt;/p&gt;

&lt;p&gt;And I didn't think it would work, but it just did, I complied the Python script to WebAssembly and it created an index.html which I pushed it to &lt;strong&gt;gh-pages branch&lt;/strong&gt; and it was able to render the game smoothly and gameplay it awesome - no lag (good FPS), it's slow only when it loads the game.&lt;/p&gt;

&lt;h3&gt;
  
  
  Used the following resources to build this
&lt;/h3&gt;

&lt;p&gt;Pygame - &lt;a href="https://www.pygame.org/docs/" rel="noopener noreferrer"&gt;Link&lt;/a&gt;&lt;br&gt;
WebAssembly - &lt;a href="https://webassembly.org/getting-started/developers-guide/" rel="noopener noreferrer"&gt;Link&lt;/a&gt;&lt;br&gt;
pygbag - &lt;a href="https://pypi.org/project/pygbag/" rel="noopener noreferrer"&gt;Link&lt;/a&gt;&lt;/p&gt;

</description>
      <category>githubhack23</category>
      <category>github</category>
      <category>python</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Ml Model Consume on Linode migrated from Azure Functions - Sandy Inspires</title>
      <dc:creator>Santhosh (sandy inspires)</dc:creator>
      <pubDate>Sun, 19 Feb 2023 16:23:47 +0000</pubDate>
      <link>https://dev.to/sandy_codes_py/ml-model-consume-on-linode-migrated-from-azure-functions-sandy-inspires-2pf2</link>
      <guid>https://dev.to/sandy_codes_py/ml-model-consume-on-linode-migrated-from-azure-functions-sandy-inspires-2pf2</guid>
      <description>&lt;h2&gt;
  
  
  What I built ⚙
&lt;/h2&gt;

&lt;p&gt;A Flask Web application running on &lt;code&gt;Linode's Shared CPU&lt;/code&gt; where a binary classifier machine learning model file is placed in &lt;code&gt;Linode's Object Storage&lt;/code&gt;, which is consumed by a &lt;code&gt;Flask&lt;/code&gt; web application written in &lt;code&gt;Python&lt;/code&gt; to do prediction, log the prediction status in &lt;code&gt;Linode's MySQL server&lt;/code&gt;, and return results.&lt;/p&gt;

&lt;p&gt;A complete and successful migration done from Azure Functions with Blob Storage to Linode's Shared CPU with Object Storage.&lt;/p&gt;

&lt;p&gt;log_source, model_version, average response time (in seconds)&lt;br&gt;
azure, v1, 0.030180000141263007&lt;br&gt;
linode, v1, 0.021626923161630448&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Note: Lesser time is better&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Category Submission 🧩
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Smooth Shifters&lt;/strong&gt; and Integration Innovators&lt;/p&gt;
&lt;h3&gt;
  
  
  App Link ⛓
&lt;/h3&gt;

&lt;p&gt;&lt;a href="http://194.195.115.181/"&gt;Flask Web App Link&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Architecture Diagram 🧱
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YdwS_ive--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ei0h25u977asj0iver3k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YdwS_ive--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ei0h25u977asj0iver3k.png" alt="Arcitecture Diagram" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  YouTube Video 🎬
&lt;/h3&gt;

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

&lt;h3&gt;
  
  
  Screenshots 🖼
&lt;/h3&gt;

&lt;h4&gt;
  
  
  MySQL server on Linode
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lX38u3vw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7tpgoatn631unybl3ssl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lX38u3vw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7tpgoatn631unybl3ssl.png" alt="MySQL server on Linode" width="800" height="504"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Flask Server Usage Stats
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UIEbxNR1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9nk7mzwi7qcl6xt1b3tj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UIEbxNR1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9nk7mzwi7qcl6xt1b3tj.png" alt="Flask Server Usage Stats" width="800" height="557"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Flask Server Application Logs
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qyk-jrij--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zwffizxuizolzg3j9ug3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qyk-jrij--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zwffizxuizolzg3j9ug3.png" alt="Flask App logs" width="800" height="580"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Postman testing
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Xm_42-1X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eu0vcz0oafvo2kdmx4vh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Xm_42-1X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eu0vcz0oafvo2kdmx4vh.png" alt="Postman request" width="800" height="976"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  VS Code Folder Structure
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kiI_5TZ---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m2ydjgbrz2fv62ivq1zg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kiI_5TZ---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m2ydjgbrz2fv62ivq1zg.png" alt="VS Code Folder Structure" width="344" height="627"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Average Response time comparison Linode Vs Azure
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PacaHS5J--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5rkf1rfj656paz0cysvo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PacaHS5J--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5rkf1rfj656paz0cysvo.png" alt="MySQL database response time measure" width="794" height="570"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Linode Services and Tools used 🛠
&lt;/h3&gt;

&lt;p&gt;1) Flask (One-Click deploymentfrom marketplace) - Shared CPU - Naonde 1GB RAM - 1 CPU Core - 25 GB SSD&lt;br&gt;
2) MySQL V8 - Shared CPU - Naonde 1GB RAM - 1 CPU Core - 25 GB SSD&lt;br&gt;
3) Object Storage - for storing Machine learning models&lt;br&gt;
4) Python&lt;br&gt;
5) Flask - light-weight web framework&lt;br&gt;
6) MySQL Workbench - connect to the remote database&lt;br&gt;
7) Postman - testing out model endpoints&lt;/p&gt;
&lt;h3&gt;
  
  
  Link to Source Code 👩‍💻
&lt;/h3&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A9-wwsHG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Santhoshkumard11"&gt;
        Santhoshkumard11
      &lt;/a&gt; / &lt;a href="https://github.com/Santhoshkumard11/ml-model-consume"&gt;
        ml-model-consume
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Flask served ML model in Linode Shared Instance with files from Lindos Object Storage
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
Linode + DEV Hackathon 2023 - ML Model Consume - Sandy Inspires&lt;/h1&gt;
&lt;p&gt;This repo contains code that runs on &lt;code&gt;Linode's Shared CPU&lt;/code&gt; where a binary classifier machine learning model file is placed in &lt;code&gt;Linode Object Storage&lt;/code&gt;, which is consumed by a &lt;code&gt;Flask&lt;/code&gt; web application written in &lt;code&gt;Python&lt;/code&gt; to do prediction, log the prediction status in &lt;code&gt;Linode's MySQL server&lt;/code&gt;, and return results.&lt;/p&gt;
&lt;p&gt;Download the Postman collection which has sample API endpoints and JSON request body&lt;/p&gt;
&lt;p&gt;Request URL - &lt;a href="http://194.195.115.181" rel="nofollow"&gt;http://194.195.115.181&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;NOTE: this is a http endpoint and doesn't have a domain name yet - runs on port 80&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;
YouTube Demo Video 📺📺&lt;/h2&gt;
&lt;h3&gt;
&lt;a href="https://www.youtube.com/watch?v=9g36_NK3kNY&amp;amp;ab_channel=LateNightCodewithSanthosh" rel="nofollow"&gt;Click here to watch the demo&lt;/a&gt;
&lt;/h3&gt;
&lt;a href="https://youtu.be/9g36_NK3kNY" rel="nofollow"&gt;
  &lt;img src="https://camo.githubusercontent.com/258d2c5a4f542f8572c338e4f586120a3cdf599272edca7ca1129e2d2d26b90d/68747470733a2f2f696d672e796f75747562652e636f6d2f76692f396733365f4e4b336b4e592f687164656661756c742e6a7067" alt="video"&gt;
&lt;/a&gt;
&lt;h2&gt;
Setup environment variable&lt;/h2&gt;
&lt;h4&gt;
Please set the below variables&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;LINODE_OBJECT_STORAGE_ACCESS_KEY - Linode Object Storage Access Key&lt;/li&gt;
&lt;li&gt;LINODE_OBJECT_STORAGE_SECRET_KEY - Linode Object Storage Secret Key&lt;/li&gt;
&lt;li&gt;MYSQL_HOST - MySQL host name&lt;/li&gt;
&lt;li&gt;MYSQL_USERNAME - MySQL username&lt;/li&gt;
&lt;li&gt;MYSQL_PASSWORD - MySQL user password&lt;/li&gt;
&lt;li&gt;LATEST_MODEL_VERSION - the latest version of…&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Santhoshkumard11/ml-model-consume"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h3&gt;
  
  
  Permissive License 🤓
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;MIT&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Background 🤠
&lt;/h2&gt;

&lt;p&gt;I wanted to explore more on multi-cloud and how to integrate it with existing services or make services from different cloud providers to make things work seamlessly. This Linode hackathon give me the exact experience I was looking for, to integrate or migrate existing services in Azure to Linode to check compatibility between various services. &lt;/p&gt;

&lt;p&gt;To be honest, I learnt a ton of information about hosting a server and how to get apps running, yay, I did spend a lot of time in debugging stuff to see where things fail, Python version difference, OS dependencies, Python Package dependencies, setting up the virtual environment in the right place.&lt;/p&gt;

&lt;h3&gt;
  
  
  Learnings from this Project 👨‍🎓
&lt;/h3&gt;

&lt;p&gt;Deploying an actual server and getting it up and running was so cool. You don't get to do that with Azure, you just push the code and it just runs. Everything is under the hood. You miss out on all the interesting parts of deployment. Great knowledge on how a server works and how we can deploy services inside a server with supervisor and use Nginx to as both HTTP/HTTPS server. &lt;code&gt;Without Linode I don't believe I would've known how a server works and how the request is getting routed to a web application and to our Python code.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Networking part is another interesting area that I explored, I didn't notice much when it was in Azure, as you get a HTTPS endpoint to hit and that all you know. Now you've an IP and you need domain name to be mapped to that IP to hit the endpoint with the domain name instead of IP address.&lt;/p&gt;

&lt;p&gt;I'll definitely explore more on firewall rules and load balancer &lt;br&gt;
to see how these are configured and used in an actual server.&lt;/p&gt;
&lt;h3&gt;
  
  
  Conclusion ✨
&lt;/h3&gt;

&lt;p&gt;It was a super fun hackathon, enjoyed using Linode, super simple and clean UI. Love the shared instance starts with just $5 a month.&lt;/p&gt;

&lt;p&gt;Would be deploying more applications in Linode for my future hackathons.&lt;/p&gt;

&lt;p&gt;One hell of a hackathon it was! &lt;/p&gt;

&lt;p&gt;Special thanks to Linode and Dev team for hosting this hackathon.&lt;/p&gt;

&lt;p&gt;Happy Learning! 📑&lt;br&gt;
PRs are welcomed and drop your suggestions in the comments.&lt;/p&gt;


&lt;div class="ltag__user ltag__user__id__457047"&gt;
    &lt;a href="/sandy_codes_py" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Y4iCluO6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/practicaldev/image/fetch/s--oifHnOYO--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/457047/0d3a7d79-8416-4315-8289-a256c02fcd4d.png" alt="sandy_codes_py image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/sandy_codes_py"&gt;Santhosh (sandy inspires)&lt;/a&gt;Follow
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/sandy_codes_py"&gt;Data Engineer at Rakuten | ($14.5k) 10 Hackathon wins | MCT | Azure Certified X 6 | Python | Hackathon Enthusiasts | Technical Writer at Medium | Proactive Programmer&lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Let's connect 🤝
&lt;/h2&gt;

&lt;h4&gt;
  
  
  &lt;a href="https://linkedin.com/in/santhosh-kumard"&gt;LinkedIn&lt;/a&gt;
&lt;/h4&gt;

&lt;h4&gt;
  
  
  &lt;a href="https://www.instagram.com/sandy_inspires"&gt;Instagram&lt;/a&gt;
&lt;/h4&gt;

&lt;h4&gt;
  
  
  &lt;a href="https://twitter.com/sandy_inspires"&gt;Twitter&lt;/a&gt;
&lt;/h4&gt;

</description>
      <category>linodehackathon</category>
      <category>python</category>
      <category>writing</category>
    </item>
    <item>
      <title>Voice Collab Deepgram - Let's harness the power of voice 🗣👩‍💻</title>
      <dc:creator>Santhosh (sandy inspires)</dc:creator>
      <pubDate>Sat, 09 Apr 2022 17:16:30 +0000</pubDate>
      <link>https://dev.to/sandy_codes_py/voice-collab-deepgram-lets-harness-the-power-of-voice-e6k</link>
      <guid>https://dev.to/sandy_codes_py/voice-collab-deepgram-lets-harness-the-power-of-voice-e6k</guid>
      <description>&lt;p&gt;There is so much you can do with your voice but you need the right tools to make it happen as you like, this is where &lt;a href="https://console.deepgram.com/signup"&gt;Deepgram&lt;/a&gt; comes into play. You get Real-Time speech-to-text translation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Overview of My Submission
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=sandy-codes-py.voice-collab-deepgram"&gt;Voice Collab Deepgram&lt;/a&gt; is a VS Code extension that Lets you harness the power of voice to collaborate and interact with your code and the people you work with. Often as a software developer, you might feel like you're alone (at least I feel that way when I work on hackathon projects or working on something intense) so this extension not only gets the voice input but also talks with you. For every action phrase that it triggered there is voice feedback so it makes the experience more humanly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=sandy-codes-py.voice-collab-deepgram"&gt;Click here to get the extension from VS Code marketplace&lt;/a&gt; or type &lt;code&gt;voice collab deepgram&lt;/code&gt; in your VS Code extension explorer&lt;/p&gt;

&lt;h3&gt;
  
  
  Submission Category: Wacky Wildcards
&lt;/h3&gt;

&lt;h2&gt;
  
  
  🎬 YouTube - Live Demo
&lt;/h2&gt;

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

&lt;h2&gt;
  
  
  💻 GitHub Repo
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A9-wwsHG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Santhoshkumard11"&gt;
        Santhoshkumard11
      &lt;/a&gt; / &lt;a href="https://github.com/Santhoshkumard11/Voice-Collab-Deepgram"&gt;
        Voice-Collab-Deepgram
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Let's harness the power of voice to collaborate and interact with your code and the people you work with
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
Voice Collab Deepgram 🔊 👨‍💻👩‍💻 🦻&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=sandy-codes-py.voice-collab-deepgram" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/4234bbf6bdbe032846b3398b4f6ed19ede90accd593ad82e9651ccd1623a55b9/68747470733a2f2f76736d61726b6574706c61636562616467652e61707068622e636f6d2f76657273696f6e2f73616e64792d636f6465732d70792e766f6963652d636f6c6c61622d646565706772616d2e737667" alt=""&gt;&lt;/a&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=sandy-codes-py.voice-collab-deepgram" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/eaba83cc24be3d418f2a55720dae6bb1b0f2421e97a87c6576a6ab3edfd89b9b/68747470733a2f2f76736d61726b6574706c61636562616467652e61707068622e636f6d2f726174696e672f73616e64792d636f6465732d70792e766f6963652d636f6c6c61622d646565706772616d2e737667" alt=""&gt;&lt;/a&gt;
&lt;a href="https://dev.azure.com/sandy-codes-py/Voice-Collab/_build/latest?definitionId=1&amp;amp;branchName=main" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/dc37b0285145d6a71688550a2d90cc318a890ca772089eb268fe573403f5ff9b/68747470733a2f2f6465762e617a7572652e636f6d2f73616e64792d636f6465732d70792f566f6963652d436f6c6c61622f5f617069732f6275696c642f7374617475732f566f6963652d436f6c6c61623f6272616e63684e616d653d6d61696e" alt="Build Status"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/52803a3c7635da7c9d94b51717bc2553df1a2e31774d4639e351f942138f5304/68747470733a2f2f76736d61726b6574706c61636562616467652e61707068622e636f6d2f696e7374616c6c732d73686f72742f73616e64792d636f6465732d70792e766f6963652d636f6c6c61622d646565706772616d2e737667"&gt;&lt;img src="https://camo.githubusercontent.com/52803a3c7635da7c9d94b51717bc2553df1a2e31774d4639e351f942138f5304/68747470733a2f2f76736d61726b6574706c61636562616467652e61707068622e636f6d2f696e7374616c6c732d73686f72742f73616e64792d636f6465732d70792e766f6963652d636f6c6c61622d646565706772616d2e737667" alt=""&gt;&lt;/a&gt;
&lt;a href="https://github.com/Santhoshkumard11/Voice-Collab-Deepgram/LICENSE"&gt;&lt;img src="https://camo.githubusercontent.com/2ff6a06f2f6e08b17783133ca7ebc23ce1f8ac4415eee8e835647b57048a8f0d/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6d6173686170652f6170697374617475732e737667" alt="License: MIT "&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
Let's harness the power of voice to collaborate and interact with your code and the people you work with&lt;/h2&gt;
&lt;h2&gt;
YouTube Demo Video 📺📺&lt;/h2&gt;
&lt;h3&gt;
&lt;a href="https://www.youtube.com/watch?v=BsA1FwQfPGA&amp;amp;ab_channel=LateNightCodewithSanthosh" rel="nofollow"&gt;Click here to watch the demo&lt;/a&gt;
&lt;/h3&gt;
&lt;a href="https://youtu.be/BsA1FwQfPGA" rel="nofollow"&gt;
  &lt;img src="https://camo.githubusercontent.com/f4533e7f892495d20348ecd1bb5124ef9e6d117ce1ce707a4ec0d160c3b27c76/68747470733a2f2f696d672e796f75747562652e636f6d2f76692f42734131467751665047412f687164656661756c742e6a7067" alt="video"&gt;
&lt;/a&gt;
&lt;p&gt;
&lt;a rel="noopener noreferrer" href="https://github.com/Santhoshkumard11/Voice-Collab-Deepgrammedia/voice-collab-gif.gif"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4TH3AGTD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://github.com/Santhoshkumard11/Voice-Collab-Deepgrammedia/voice-collab-gif.gif" alt="GIF" width="800"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;
🔥 What it can do? (everything with just voice)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;▶ Trigger your &lt;strong&gt;Azure DevOps&lt;/strong&gt; pipeline build&lt;/li&gt;
&lt;li&gt;📞 Call a person on Microsoft Teams&lt;/li&gt;
&lt;li&gt;🗣 Open Microsoft Teams Chat of a person&lt;/li&gt;
&lt;li&gt;📩 Open Outlook of a person&lt;/li&gt;
&lt;li&gt;🔁 Get total pipeline runs&lt;/li&gt;
&lt;li&gt;😅 Crack a programmer joke&lt;/li&gt;
&lt;li&gt;📝 Tell a funny programmer story&lt;/li&gt;
&lt;li&gt;🤖 Chat with Sandy (Powered By &lt;strong&gt;OpenAI's GPT-3 model&lt;/strong&gt;) - Optional&lt;/li&gt;
&lt;li&gt;👾 Generate code (Powered by &lt;strong&gt;OpenAI's Codex model&lt;/strong&gt;) - Optional&lt;/li&gt;
&lt;li&gt;🔒 Lock Screen&lt;/li&gt;
&lt;li&gt;More Coming soon!&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
⚙ Setup the environment - Windows&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Requires - &lt;code&gt;Python 3.7 and above&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Requires - &lt;code&gt;node ^12&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Once you install the extension, hit &lt;code&gt;Ctrl+r&lt;/code&gt; to open Run and type &lt;code&gt;%USERPROFILE%\.vscode\extensions&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Search for sandy-codes-py voice…&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Santhoshkumard11/Voice-Collab-Deepgram"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;h2&gt;
  
  
  Architecture Diagram
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--C_Mnf_Km--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sys3gsl6iles5lewzy6n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--C_Mnf_Km--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sys3gsl6iles5lewzy6n.png" alt="Architecture Diagram" width="800" height="450"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  🔥 What it can do? (everything with just voice)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;▶ Trigger your &lt;strong&gt;Azure DevOps&lt;/strong&gt; pipeline build&lt;/li&gt;
&lt;li&gt;📞 Call a person on Microsoft Teams&lt;/li&gt;
&lt;li&gt;🗣 Open Microsoft Teams Chat of a person&lt;/li&gt;
&lt;li&gt;📩 Open Outlook of a person &lt;/li&gt;
&lt;li&gt;🔁 Get total pipeline runs&lt;/li&gt;
&lt;li&gt;😅 Crack a programmer joke&lt;/li&gt;
&lt;li&gt;📝 Tell a funny programmer story&lt;/li&gt;
&lt;li&gt;🔒 Lock Screen&lt;/li&gt;
&lt;li&gt;🤖 Chat with Sandy (Powered By &lt;strong&gt;OpenAI's GPT-3 model&lt;/strong&gt;) - Only if you have the Beta access&lt;/li&gt;
&lt;li&gt;👾 Generate code (Powered by &lt;strong&gt;OpenAI's Codex model&lt;/strong&gt;) - Only if you have the Beta access&lt;/li&gt;
&lt;li&gt;More Coming soon!&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🦾 Few of the commands you can use
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Trigger phrases&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Triggering Azure DevOps pipeline&lt;/td&gt;
&lt;td&gt;say - start build or trigger pipeline build&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Create the requirements.txt file&lt;/td&gt;
&lt;td&gt;say - create requirements.txt or create requirements file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Get all Azure DevOps pipeline runs count&lt;/td&gt;
&lt;td&gt;say - get total pipeline runs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Call someone on Microsoft Teams&lt;/td&gt;
&lt;td&gt;say - call megan (this name could any name from &lt;code&gt;MSFT_ACCOUNT_NAME_LIST&lt;/code&gt; list in &lt;code&gt;_constants.py&lt;/code&gt; file)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Email someone on Outlook&lt;/td&gt;
&lt;td&gt;say - email megan&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Open up someone's Microsoft Teams Chat&lt;/td&gt;
&lt;td&gt;say - open megan's chat&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Speak out 5 commands you can use&lt;/td&gt;
&lt;td&gt;say - show help or  help or what are the commands I can use&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Speak out all the commands you can use&lt;/td&gt;
&lt;td&gt;say - help more or list all the commands I can use&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Push the code to remote&lt;/td&gt;
&lt;td&gt;say - git push or push code (still in progress)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Commit code and lock the screen&lt;/td&gt;
&lt;td&gt;say - taking a break or break time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lock the user screen&lt;/td&gt;
&lt;td&gt;say - lock screen&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Crack a random programmer joke&lt;/td&gt;
&lt;td&gt;say - crack a joke or joke about programmers or make me feel better&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Narrate a random programmer story&lt;/td&gt;
&lt;td&gt;say - tell a story or story time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Chat with Sandy (OpenAI API Key required)&lt;/td&gt;
&lt;td&gt;say - hey sandy or sandy and then say the phrase you wanna ask Example: Am I the best programmer in the world?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Generate code (OpenAI API Key required)&lt;/td&gt;
&lt;td&gt;say - hey codex or codex and then say what you want Example: Create a Python class with name Employee, Create a Python dictionary with country and it's capitals&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;This is a developer-friendly VS Code extension that can be expanded with a bit of work. It's more focused on developers who need things to be done with voice. Just turn it on and enjoy the conversation while you work.&lt;/p&gt;

&lt;p&gt;Detailed instructions can be found on the &lt;a href="https://github.com/Santhoshkumard11/Voice-Collab-Deepgram#readme"&gt;repo's README.md file&lt;/a&gt;. &lt;/p&gt;

&lt;h4&gt;
  
  
  My Specs - Tested
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Python 3.7&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developers.deepgram.com/sdks-tools/sdks/python-sdk/"&gt;Deepgram Python SDK&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;HP Omen 15 (2018)&lt;/li&gt;
&lt;li&gt;16 GB RAM DDR4&lt;/li&gt;
&lt;li&gt;Intel Core i7-8750H @2.20 GHz&lt;/li&gt;
&lt;li&gt;GTX 1060 - 6 GB GDDR5&lt;/li&gt;
&lt;/ul&gt;


&lt;div class="ltag__user ltag__user__id__457047"&gt;
    &lt;a href="/sandy_codes_py" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Y4iCluO6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/practicaldev/image/fetch/s--oifHnOYO--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/457047/0d3a7d79-8416-4315-8289-a256c02fcd4d.png" alt="sandy_codes_py image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/sandy_codes_py"&gt;Santhosh (sandy inspires)&lt;/a&gt;Follow
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/sandy_codes_py"&gt;Data Engineer at Rakuten | ($14.5k) 10 Hackathon wins | MCT | Azure Certified X 6 | Python | Hackathon Enthusiasts | Technical Writer at Medium | Proactive Programmer&lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Let's connect
&lt;/h2&gt;

&lt;h4&gt;
  
  
  &lt;a href="https://linkedin.com/in/santhosh-kumard"&gt;LinkedIn&lt;/a&gt; - 10K Fam
&lt;/h4&gt;

&lt;h4&gt;
  
  
  &lt;a href="https://www.instagram.com/santhoshgoku"&gt;Instagram&lt;/a&gt;
&lt;/h4&gt;

&lt;h4&gt;
  
  
  &lt;a href="https://twitter.com/sandy_codes_py"&gt;Twitter&lt;/a&gt;
&lt;/h4&gt;

</description>
      <category>hackwithdg</category>
      <category>javascript</category>
      <category>python</category>
      <category>vscode</category>
    </item>
    <item>
      <title>What is asyncio and why we need them ? - Python - write concurrent/asynchronous code using the async/await syntax</title>
      <dc:creator>Santhosh (sandy inspires)</dc:creator>
      <pubDate>Thu, 17 Mar 2022 05:26:09 +0000</pubDate>
      <link>https://dev.to/sandy_codes_py/what-is-asyncio-and-why-we-need-them-python-write-concurrentasynchronous-code-using-the-asyncawait-syntax-54nn</link>
      <guid>https://dev.to/sandy_codes_py/what-is-asyncio-and-why-we-need-them-python-write-concurrentasynchronous-code-using-the-asyncawait-syntax-54nn</guid>
      <description>&lt;p&gt;TL;DR - asyncio let's your write code which switches between different tasks while maintaining the state of each task to continue further&lt;br&gt;
&lt;strong&gt;Target Audience&lt;/strong&gt; - Beginner to mid-level&lt;br&gt;
&lt;strong&gt;Assumption&lt;/strong&gt; - This post assumes that you have some low-level knowledge programming in any language.&lt;br&gt;
&lt;strong&gt;Disclaimer&lt;/strong&gt; - The post is written with my limited personal knowledge and experience, there could be areas of improvement. Feel free to comment on them.&lt;/p&gt;

&lt;p&gt;-&lt;br&gt;
Let's begin!!&lt;/p&gt;

&lt;p&gt;All the code you might have seen or written so far (if you're new to async) would be called &lt;strong&gt;synchronize&lt;/strong&gt;, why? Because it runs the &lt;strong&gt;lines of code one after the other&lt;/strong&gt; or in other words if you have two functions it could only run in a sequence.&lt;br&gt;
What we'll do in this blog post is try to break this, difference languages use different methods of doing things. But for this we'll use &lt;code&gt;Python3.7+&lt;/code&gt; and &lt;code&gt;asyncio&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Let's look at a real life example of this, 🎮📚&lt;br&gt;
Assume you're studying for your semester exam, but you also have a gaming tournament coming up so you want to practice of it. So what you do? Learn for 8 hours and practice of 4 hours a day. You keep doing this till you complete your exam and the tournament.&lt;/p&gt;

&lt;p&gt;This is the same we're trying to achieve with asynchronous programming through &lt;code&gt;asyncio&lt;/code&gt; in Python.&lt;/p&gt;

&lt;p&gt;Let's start off with the simple one,&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def start_learning():
    print("I'm learning now")

def start_gaming():
    print("I'm playing Rainbow Siege")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can easily run these function like below,&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;while True:
    start_learning()
    start_gaming()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;I'm learning now
I'm playing Rainbow Siege
I'm learning now
I'm playing Rainbow Siege
I'm learning now
I'm playing Rainbow Siege
and so on....
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Let's see how things look with asyncio&lt;br&gt;
We want to run both at the same time and let the tasks decide when to switch. Let's say a chapter is easier to complete than others, then we can switch to gaming instead of waiting for the remaining hours to end.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;async def start_learning():
    print("I'm learning now")
    # replace the below line with whatever the task that you want 
    # to perform
    await asyncio.sleep(8)

async def start_gaming():
    print("I'm playing Rainbow Siege")
    # replace the below line with whatever the task that you want 
    # to perform
    await asyncio.sleep(4)

async def main():
    await asyncio.gather(start_learning(), start_gaming())

asyncio.run(main())    
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is a pretty basic example some would need to understand asynchronous coding.&lt;br&gt;
Feel free to drop in comments if you have questions on the code or if something can be improved.&lt;br&gt;
Happy to learn!!&lt;/p&gt;

&lt;h2&gt;
  
  
  Let's connect 🤝
&lt;/h2&gt;

&lt;h4&gt;
  
  
  &lt;a href="https://linkedin.com/in/santhosh-kumard"&gt;LinkedIn&lt;/a&gt;
&lt;/h4&gt;

&lt;h4&gt;
  
  
  &lt;a href="https://www.instagram.com/santhoshgoku"&gt;Instagram&lt;/a&gt;
&lt;/h4&gt;

&lt;h4&gt;
  
  
  &lt;a href="https://twitter.com/sandy_codes_py"&gt;Twitter&lt;/a&gt;
&lt;/h4&gt;

</description>
      <category>tutorial</category>
      <category>python</category>
      <category>beginners</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>P1 - Play Real Steel Boxing with your voice 🔊🔊 - Atom (The People's Champion)</title>
      <dc:creator>Santhosh (sandy inspires)</dc:creator>
      <pubDate>Mon, 14 Mar 2022 06:06:15 +0000</pubDate>
      <link>https://dev.to/sandy_codes_py/play-real-steel-boxing-with-your-voice-atom-the-peoples-champion-e8h</link>
      <guid>https://dev.to/sandy_codes_py/play-real-steel-boxing-with-your-voice-atom-the-peoples-champion-e8h</guid>
      <description>&lt;h3&gt;
  
  
  Overview of My Submission
&lt;/h3&gt;

&lt;p&gt;Have you ever wondered how the voice recognition in the &lt;strong&gt;Noisy Boy&lt;/strong&gt; from &lt;strong&gt;Real Steel movie&lt;/strong&gt; works. For people who are new to Real Steel and haven't watched that movie yet. Watch at least the trainer and continue here.&lt;br&gt;
I was wondering if I could do the same with Deepgram's real-time speech to text api. The result of two day hustle and surprise!! surprise!! It just worked.&lt;/p&gt;
&lt;h3&gt;
  
  
  It really really works 🐱‍🏍
&lt;/h3&gt;

&lt;p&gt;I initially with the impression it won't since there is a considerable latency between the time you say something, it has to process it, send it back and the action will take place after &lt;strong&gt;100 ms&lt;/strong&gt; or so. But this was instantaneous or too close &lt;strong&gt;less than 3 ms&lt;/strong&gt;. Seems like you can take on any league games on World Robot Boxing.&lt;/p&gt;
&lt;h4&gt;
  
  
  You're in for a treat 🍬🎮
&lt;/h4&gt;
&lt;h3&gt;
  
  
  Submission Category: Gram Gamers and Wacky Wildcards
&lt;/h3&gt;

&lt;p&gt;-&lt;/p&gt;
&lt;h3&gt;
  
  
  Latency Log from Python Standard Logging module
&lt;/h3&gt;
&lt;h4&gt;
  
  
  My Laptop Specs - Tested
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;HP Omen 15 (2018)&lt;/li&gt;
&lt;li&gt;16 GB RAM DDR4&lt;/li&gt;
&lt;li&gt;Intel Core i7-8750H @2.20 GHz&lt;/li&gt;
&lt;li&gt;GTX 1060 - 6 GB GDDR5&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fgabhjdgp7fs4l24qwuwt.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fgabhjdgp7fs4l24qwuwt.jpg" alt="Latency log"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Game on fellows!!
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fc8m8zk1yfctrofjptqni.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fc8m8zk1yfctrofjptqni.gif" alt="Bring it on!!"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  📌What's next?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Live Demo on YouTube&lt;/li&gt;
&lt;li&gt;Make GitHub repo public (needs more finetuning work)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Catch you all in the 2nd series of this project
&lt;/h2&gt;


&lt;div class="ltag__user ltag__user__id__457047"&gt;
    &lt;a href="/sandy_codes_py" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&gt;
        &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F457047%2F0d3a7d79-8416-4315-8289-a256c02fcd4d.png" alt="sandy_codes_py image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/sandy_codes_py"&gt;Santhosh (sandy inspires)&lt;/a&gt;Follow
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/sandy_codes_py"&gt;Data Engineer at Rakuten | ($14.5k) 10 Hackathon wins | MCT | Azure Certified X 6 | Python | Hackathon Enthusiasts | Technical Writer at Medium | Proactive Programmer&lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Let's connect
&lt;/h2&gt;

&lt;h4&gt;
  
  
  &lt;a href="https://linkedin.com/in/santhosh-kumard" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;
&lt;/h4&gt;

&lt;h4&gt;
  
  
  &lt;a href="https://www.instagram.com/santhoshgoku" rel="noopener noreferrer"&gt;Instagram&lt;/a&gt;
&lt;/h4&gt;

&lt;h4&gt;
  
  
  &lt;a href="https://twitter.com/sandy_codes_py" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;
&lt;/h4&gt;

</description>
      <category>hackwithdg</category>
      <category>beginners</category>
      <category>python</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Enterprise grade Skin Cancer Detection and treatment solution using Power Platform - Microsoft Azure cloud</title>
      <dc:creator>Santhosh (sandy inspires)</dc:creator>
      <pubDate>Tue, 08 Mar 2022 14:38:31 +0000</pubDate>
      <link>https://dev.to/sandy_codes_py/enterprise-grade-skin-cancer-detection-and-treatment-solution-using-power-platform-microsoft-azure-cloud-963</link>
      <guid>https://dev.to/sandy_codes_py/enterprise-grade-skin-cancer-detection-and-treatment-solution-using-power-platform-microsoft-azure-cloud-963</guid>
      <description>&lt;h3&gt;
  
  
  Submission Category:
&lt;/h3&gt;

&lt;p&gt;Low-Code Legends&lt;/p&gt;

&lt;h2&gt;
  
  
  Brief Story to start with 🔮
&lt;/h2&gt;

&lt;p&gt;Let's go back in time and think about how sophisticated we are now. In the earlier 1990s, we didn't have enough computing power or as many powerful computers as we do now to do complex operations and not train a machine learning model for sure. You won't be able to sit along and code all day staring at a CTR monitor in front of you. Humans have always been these evolving creatures; How to use things, discover things, think differently of the world. With that said, computer science and technology have been in the boom since we started experimenting and pushing them to their limits. Now here we are in 2022, battling out which is the best editor (&lt;code&gt;Vim Vs Emacs&lt;/code&gt;) and with cloud empowering people to make digital transformations on all or most physical assets.&lt;/p&gt;

&lt;h2&gt;
  
  
  👨‍💻For people who say, enough of talk - &lt;a href="https://www.youtube.com/watch?v=9fqYRIaMOa0&amp;amp;ab_channel=LateNightCodewithSanthosh" rel="noopener noreferrer"&gt;YouTube Demo Link&lt;/a&gt;
&lt;/h2&gt;

&lt;h2&gt;
  
  
  🕵️‍♂️For people who say, just show what you've built - &lt;a href="https://github.com/Santhoshkumard11/enterprise-grade-skin-cancer-detection-and-treatment-solution" rel="noopener noreferrer"&gt;GitHub Repo Link&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Here is a small example of how technology can be utilized in the right way to build something for humanity to sustain better in this changing world. When you're talking about cancer, regardless of type, detecting it as early as possible increases the chance of survival. &lt;/p&gt;

&lt;h2&gt;
  
  
  Medical Background 👩‍⚕️👨‍⚕️
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Skin cancer is the most common form of cancer, globally accounting for at least 40% of cancer cases and the most common type is nonmelanoma skin cancer, which occurs in at least 2–3 million people per year. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Skin_cancer" rel="noopener noreferrer"&gt;Source: Wikipedia&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Solution 🧩
&lt;/h2&gt;

&lt;p&gt;Seeing this and I thought why don't we solve something this bad, &lt;strong&gt;leveraging Power Platform&lt;/strong&gt; for its simplicity and rapid development ability.&lt;/p&gt;

&lt;p&gt;This solution is completely built by leveraging Low code/No code platforms such as Power Apps and Power Automate, as well as Azure serverless offerings. The flow goes something like this, employees/nurses in the hospital can add new patients into the system and upload their skin sample image which then goes through the ML model for initial screening, and the result is sent to a dermatologist for closure. Once this is done then an appointment is scheduled automatically if cancer is detected by the model and the dermatologist confirms the same. The desired treatment plan is created in the backend and updated in the SharePoint List which can be viewed by the patients through Power Apps. The dermatologist can view the slots booked and the patient details.&lt;/p&gt;

&lt;p&gt;I've used Python in Azure Function, feel free to replicate the same in your favorite language. 🐱‍👤&lt;/p&gt;

&lt;h2&gt;
  
  
  Azure Services Used
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Power Apps&lt;/strong&gt; as UI&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Power Automate&lt;/strong&gt; for flow triggers&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SharePoint&lt;/strong&gt; as database&lt;/li&gt;
&lt;li&gt;Azure Functions for exposing model endpoint and uploading an image to blob storage&lt;/li&gt;
&lt;li&gt;Logic Apps for receiving the response from Adaptive Card&lt;/li&gt;
&lt;li&gt;Azure Blob Storage for storing predicted images&lt;/li&gt;
&lt;li&gt;Azure DevOps keeping track of False-positive images&lt;/li&gt;
&lt;li&gt;Adaptive Cards (Outlook Actionable Message)&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Architecture Diagram
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.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%2F38v7r05tqlhpokf1pcnb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F38v7r05tqlhpokf1pcnb.png" alt="Architecture Diagram"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FSanthoshkumard11%2Fenterprise-grade-skin-cancer-detection-and-treatment-solution%2Fraw%2Fml-model-dev%2Fimages%2Farchitecture_diagram_flow.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FSanthoshkumard11%2Fenterprise-grade-skin-cancer-detection-and-treatment-solution%2Fraw%2Fml-model-dev%2Fimages%2Farchitecture_diagram_flow.png" alt="Architecture Diagram Flow"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Azure Resource Group
&lt;/h2&gt;

&lt;p&gt;Peek look at how the Azure Resource Group.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FSanthoshkumard11%2Fenterprise-grade-skin-cancer-detection-and-treatment-solution%2Fraw%2Fml-model-dev%2Fimages%2Fresource_group.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FSanthoshkumard11%2Fenterprise-grade-skin-cancer-detection-and-treatment-solution%2Fraw%2Fml-model-dev%2Fimages%2Fresource_group.jpg" alt="Azure Resource Group"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Enough of talk! Let’s see things in action, shall we?🤹‍♀️&lt;/p&gt;

&lt;h2&gt;
  
  
  Patient Details Screen
&lt;/h2&gt;

&lt;p&gt;With features like searching a patient based on Name, editing patient details, and adding new patients&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FSanthoshkumard11%2Fenterprise-grade-skin-cancer-detection-and-treatment-solution%2Fraw%2Fml-model-dev%2Fimages%2Fpatient_details.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FSanthoshkumard11%2Fenterprise-grade-skin-cancer-detection-and-treatment-solution%2Fraw%2Fml-model-dev%2Fimages%2Fpatient_details.jpg" alt="Patient Details"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Detect cancer type with ML model
&lt;/h2&gt;

&lt;p&gt;As you see below we select the patient name from the dropdown, choose the image, and hit upload, a cool loader shows up to let you know that the image is sent to Azure Function, this triggers &lt;code&gt;DetectSampleImage&lt;/code&gt; Power Automate flow. This &lt;strong&gt;returns the detected cancer type&lt;/strong&gt;, &lt;strong&gt;uploads the image to blob storage&lt;/strong&gt; for future reference, and updates the patient list item in SharePoint.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The biggest part in doing this simple thing is how to send the image bytes to the flow and reconstruct the same in Azure Function&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FSanthoshkumard11%2Fenterprise-grade-skin-cancer-detection-and-treatment-solution%2Fraw%2Fml-model-dev%2Fimages%2Fdetect_loading.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FSanthoshkumard11%2Fenterprise-grade-skin-cancer-detection-and-treatment-solution%2Fraw%2Fml-model-dev%2Fimages%2Fdetect_loading.jpg" alt="Prediction Screen"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Send an adaptive card to the dermatologist
&lt;/h2&gt;

&lt;p&gt;Once this is done, you can choose the dermatologist from the dropdown and send this report via Adaptive Card Actionable item, this triggers the &lt;code&gt;SendEmailToDoctor&lt;/code&gt; power automate flow and the step level is set to 1 now. &lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FSanthoshkumard11%2Fenterprise-grade-skin-cancer-detection-and-treatment-solution%2Fraw%2Fml-model-dev%2Fimages%2Fdetection_screen.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FSanthoshkumard11%2Fenterprise-grade-skin-cancer-detection-and-treatment-solution%2Fraw%2Fml-model-dev%2Fimages%2Fdetection_screen.jpg" alt="Detection Screen"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Adaptive Card reply
&lt;/h2&gt;

&lt;p&gt;Now the dermatologist receives the card as shown below. He/she can choose to reply at any time. Once submitted, it hits the &lt;code&gt;Logic Apps receiver endpoint&lt;/code&gt; and the flow continues.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FSanthoshkumard11%2Fenterprise-grade-skin-cancer-detection-and-treatment-solution%2Fraw%2Fml-model-dev%2Fimages%2Fadaptive_card.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FSanthoshkumard11%2Fenterprise-grade-skin-cancer-detection-and-treatment-solution%2Fraw%2Fml-model-dev%2Fimages%2Fadaptive_card.jpg" alt="Adaptive Card"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Logic App receiver
&lt;/h2&gt;

&lt;p&gt;This gets the dermatologist's prediction type, appointment date, and time and updates it to the patient details list, and confirms the slot of the appointment. In the end, this also sends a card response to the dermatologist notifying that the details are saved successfully.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FSanthoshkumard11%2Fenterprise-grade-skin-cancer-detection-and-treatment-solution%2Fraw%2Fml-model-dev%2Fimages%2Freceive_flow.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FSanthoshkumard11%2Fenterprise-grade-skin-cancer-detection-and-treatment-solution%2Fraw%2Fml-model-dev%2Fimages%2Freceive_flow.jpg" alt="Logic App response flow"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Patient Receives appointment confirmation
&lt;/h2&gt;

&lt;p&gt;After this, the patient receives the appointment date and time and the link to the Power Apps where he/she can track their progress. The step level is set to 2 now.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FSanthoshkumard11%2Fenterprise-grade-skin-cancer-detection-and-treatment-solution%2Fraw%2Fml-model-dev%2Fimages%2Fpatient_receive.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FSanthoshkumard11%2Fenterprise-grade-skin-cancer-detection-and-treatment-solution%2Fraw%2Fml-model-dev%2Fimages%2Fpatient_receive.jpg" alt="Patient Receives the slot"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Track details in Power Apps
&lt;/h2&gt;

&lt;p&gt;Once the slot is booked the patient can track their progress with the timeline shown below their profile.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FSanthoshkumard11%2Fenterprise-grade-skin-cancer-detection-and-treatment-solution%2Fraw%2Fml-model-dev%2Fimages%2Fpatient_profile.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FSanthoshkumard11%2Fenterprise-grade-skin-cancer-detection-and-treatment-solution%2Fraw%2Fml-model-dev%2Fimages%2Fpatient_profile.jpg" alt="Patient Details"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Dermatologist's view
&lt;/h2&gt;

&lt;p&gt;After the flow is complete the &lt;code&gt;slot requested&lt;/code&gt; and &lt;code&gt;slots booked&lt;/code&gt; will be updated with appropriate values.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FSanthoshkumard11%2Fenterprise-grade-skin-cancer-detection-and-treatment-solution%2Fraw%2Fml-model-dev%2Fimages%2Fdoctor_profile.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FSanthoshkumard11%2Fenterprise-grade-skin-cancer-detection-and-treatment-solution%2Fraw%2Fml-model-dev%2Fimages%2Fdoctor_profile.jpg" alt="Dermatologist Profile"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  About the ML model used
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Model trained with images from the dataset &lt;a href="https://www.kaggle.com/nodoubttome/skin-cancer9-classesisic" rel="noopener noreferrer"&gt;here&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;It gives out the following labels,

&lt;ul&gt;
&lt;li&gt;basal &lt;/li&gt;
&lt;li&gt;Dermatofibrosarcoma protuberans&lt;/li&gt;
&lt;li&gt;cutaneous&lt;/li&gt;
&lt;li&gt;Merkel&lt;/li&gt;
&lt;li&gt;melanoma&lt;/li&gt;
&lt;li&gt;squamous cell carcinoma&lt;/li&gt;
&lt;li&gt;Negative&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Accuracy of 95% trained over 35 epochs&lt;/li&gt;
&lt;li&gt;You can find the model in the GitHub repo.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Power Apps Versions - 30 versions to make it work as expected
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FSanthoshkumard11%2Fenterprise-grade-skin-cancer-detection-and-treatment-solution%2Fraw%2Fml-model-dev%2Fimages%2Fpower-apps-version-view.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FSanthoshkumard11%2Fenterprise-grade-skin-cancer-detection-and-treatment-solution%2Fraw%2Fml-model-dev%2Fimages%2Fpower-apps-version-view.gif" alt="Power Apps Versions"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  VS Code with Azure Extension gets the job done
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FSanthoshkumard11%2Fenterprise-grade-skin-cancer-detection-and-treatment-solution%2Fraw%2Fml-model-dev%2Fimages%2Fcode.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FSanthoshkumard11%2Fenterprise-grade-skin-cancer-detection-and-treatment-solution%2Fraw%2Fml-model-dev%2Fimages%2Fcode.jpg" alt="VS Code editor"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Santhoshkumard11/enterprise-grade-skin-cancer-detection-and-treatment-solution#how-to-upload-the-power-apps-to-your-environment" rel="noopener noreferrer"&gt;Click here to learn who to upload this Power App to your environment&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Future work/score:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Auto-select the dermatologist based on the availability and critical care needed for the patient&lt;/li&gt;
&lt;li&gt;Send a Calendar invite instead of the plain text email when the dermatologist confirm the appointment&lt;/li&gt;
&lt;li&gt;Setup a retraining mechanism that trains the model with the latest images per month in Azure Machine Learning (designer)&lt;/li&gt;
&lt;li&gt;Live Chat assistance through Virtual Agents&lt;/li&gt;
&lt;li&gt;Set up a treatment plan for each patient who is diagnosed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Feel free to reach out if you need any further clarification on the implementation. I would be more than happy to answer those. 🤝&lt;/p&gt;

&lt;p&gt;Looking forward to hearing from you and improvements via Comments or PRs are most welcomed.🙏&lt;/p&gt;

&lt;p&gt;Congratulations!! 🎉you have completed reading this huge blog.🤩&lt;br&gt;
Thanks a lot for reading out till the end.👓&lt;/p&gt;

&lt;p&gt;Let’s connect if you want to collaborate on further work or a quick catch up.🤝&lt;/p&gt;
&lt;h2&gt;
  
  
  References
&lt;/h2&gt;
&lt;h4&gt;
  
  
  &lt;a href="https://linkedin.com/in/santhosh-kumard" rel="noopener noreferrer"&gt;Connect on LinkedIn&lt;/a&gt;
&lt;/h4&gt;
&lt;h4&gt;
  
  
  &lt;a href="https://www.instagram.com/santhoshgoku" rel="noopener noreferrer"&gt;Connect on Instagram&lt;/a&gt;
&lt;/h4&gt;
&lt;h4&gt;
  
  
  &lt;a href="https://twitter.com/sandy_codes_py" rel="noopener noreferrer"&gt;Connect on Twitter&lt;/a&gt;
&lt;/h4&gt;


&lt;div class="ltag__user ltag__user__id__457047"&gt;
    &lt;a href="/sandy_codes_py" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&gt;
        &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F457047%2F0d3a7d79-8416-4315-8289-a256c02fcd4d.png" alt="sandy_codes_py image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/sandy_codes_py"&gt;Santhosh (sandy inspires)&lt;/a&gt;Follow
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/sandy_codes_py"&gt;Data Engineer at Rakuten | ($14.5k) 10 Hackathon wins | MCT | Azure Certified X 6 | Python | Hackathon Enthusiasts | Technical Writer at Medium | Proactive Programmer&lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;



&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Santhoshkumard11" rel="noopener noreferrer"&gt;
        Santhoshkumard11
      &lt;/a&gt; / &lt;a href="https://github.com/Santhoshkumard11/enterprise-grade-skin-cancer-detection-and-treatment-solution" rel="noopener noreferrer"&gt;
        enterprise-grade-skin-cancer-detection-and-treatment-solution
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Using technology to make real impact on our day-to-day lives with Microsoft Azure cloud services and tools.
    &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;Enterprise grade skin cancer detection and treatment solution&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;This solution is completely built by leveraging &lt;strong&gt;Low code/No code platforms&lt;/strong&gt; such as Power Apps and Power Automate, as well as Azure serverless offerings
The flow goes something like this, employee/nurse in the hospital can add new patient into the system and upload their skin sample image into the system which then goes through the ML model for initial
screening and the result is send to a dermatologist for closure. Once this is done then an appointment is scheduled automatically if cancer is detected and the treatment plan is created in the backend and updated in the SharePoint List. The dermatologist can view the slots booked and the patient details.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Dev Blog Post 📑&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;&lt;a href="https://dev.to/sandy_codes_py/enterprise-grade-skin-cancer-detection-and-treatment-solution-using-power-platform-microsoft-azure-cloud-963" rel="nofollow"&gt;Click here to read the dev.to blog post&lt;/a&gt;&lt;/h3&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;YouTube Demo Video 📺📺&lt;/h2&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;&lt;a href="https://www.youtube.com/watch?v=9fqYRIaMOa0&amp;amp;ab_channel=LateNightCodewithSanthosh" rel="nofollow noopener noreferrer"&gt;Click here to watch the Power Apps walk-through and working demo.&lt;/a&gt;&lt;/h3&gt;

&lt;/div&gt;
&lt;a href="https://youtu.be/9fqYRIaMOa0" rel="nofollow noopener noreferrer"&gt;
  &lt;img src="https://camo.githubusercontent.com/c98b12eff7e74576b063ef39e62a0ccbf8fb7347ee301c1341ba7ee33716e08b/68747470733a2f2f696d672e796f75747562652e636f6d2f76692f396671595249614d4f61302f687164656661756c742e6a7067" alt="video"&gt;
&lt;/a&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;How to Upload the Power&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/Santhoshkumard11/enterprise-grade-skin-cancer-detection-and-treatment-solution" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


</description>
      <category>azuretrialhack</category>
      <category>powerfuldevs</category>
      <category>azure</category>
      <category>beginners</category>
    </item>
    <item>
      <title>P2 - Live Demo - Source Code - Play Real Steel Boxing with your voice 🔊🔊 - Atom (The People's Champion) P2</title>
      <dc:creator>Santhosh (sandy inspires)</dc:creator>
      <pubDate>Tue, 08 Mar 2022 05:13:39 +0000</pubDate>
      <link>https://dev.to/sandy_codes_py/rought-draft-7n8</link>
      <guid>https://dev.to/sandy_codes_py/rought-draft-7n8</guid>
      <description>&lt;p&gt;If you haven't read the first series, please read that and come back here.&lt;/p&gt;

&lt;p&gt;Let's continue from where we left of last time.&lt;/p&gt;

&lt;p&gt;I'm really impressed by the speed at which the transcription is generated to match the speed of the game.&lt;br&gt;
There can be a lot more done to make sure it's even more faster or we could also make it real-time or at least near real-time. But that's a task for another hackathon.&lt;/p&gt;

&lt;p&gt;With that said below is the Live Demo that you can watch to see how the real-time transcription is working and at what speed we get the transcripts from the &lt;code&gt;Deepgram servers&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--cMIkUG6H--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f4j87bngddl9jaw0cxjd.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cMIkUG6H--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f4j87bngddl9jaw0cxjd.gif" alt="Game play gif" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  YouTube Video 🎬
&lt;/h3&gt;

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

&lt;h3&gt;
  
  
  GitHub Repo
&lt;/h3&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A9-wwsHG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Santhoshkumard11"&gt;
        Santhoshkumard11
      &lt;/a&gt; / &lt;a href="https://github.com/Santhoshkumard11/play-real-steel-boxing-with-your-audio"&gt;
        play-real-steel-boxing-with-your-audio
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Get ready for the next phase of gaming!! Control things with your voice.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
Play Real Steel Boxing with your voice 🔊🔊 - Real-time speech transcription with Deepgram&lt;/h1&gt;
&lt;p&gt;Totally inspired by &lt;strong&gt;Real Steel Movie&lt;/strong&gt; and curiosity to build things.&lt;/p&gt;
&lt;p&gt;Have you ever wondered how the voice recognition in the &lt;strong&gt;Noisy Boy&lt;/strong&gt; from &lt;strong&gt;Real Steel movie&lt;/strong&gt; works. For people who are new to Real Steel and haven't watched that movie yet. Watch at least the trainer and continue here
I was wondering if I could do the same with &lt;strong&gt;Deepgram's real-time speech to text API&lt;/strong&gt;.&lt;/p&gt;
&lt;h4&gt;
The result of two day hustle and surprise!! surprise!! It just worked. ✨&lt;/h4&gt;
&lt;h3&gt;
&lt;a href="https://dev.to/sandy_codes_py/play-real-steel-boxing-with-your-voice-atom-the-peoples-champion-e8h" rel="nofollow"&gt;Link to read the dev blog post&lt;/a&gt; 📑&lt;/h3&gt;
&lt;h3&gt;
&lt;a href="https://www.youtube.com/watch?v=BxZt7UkQ_-E&amp;amp;ab_channel=LateNightCodewithSanthosh" rel="nofollow"&gt;Link to watch the YouTube Video&lt;/a&gt; 🎬&lt;/h3&gt;
&lt;a href="https://www.youtube.com/watch?v=BxZt7UkQ_-E&amp;amp;ab_channel=LateNightCodewithSanthosh" rel="nofollow"&gt;
  &lt;img src="https://camo.githubusercontent.com/e557cc42612665e9b7368175df3847dade049a49a3fe930fd4fa4c20416f9ae5/68747470733a2f2f696d672e796f75747562652e636f6d2f76692f42785a7437556b515f2d452f687164656661756c742e6a7067" alt="video"&gt;
&lt;/a&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/Santhoshkumard11/play-real-steel-boxing-with-your-audio/blob/4e8cb28f2b181ed5e808009d60ee85ea73a583c2/images/play_real_steel_boxing_with_voice_gif.gif"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fp8N_t9I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://github.com/Santhoshkumard11/play-real-steel-boxing-with-your-audio/raw/4e8cb28f2b181ed5e808009d60ee85ea73a583c2/images/play_real_steel_boxing_with_voice_gif.gif" alt="Game play gif"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
How to setup locally&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create a new virtual environment&lt;/p&gt;
&lt;p&gt;&lt;code&gt;py -m venv venv&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Install all the dependencies&lt;/p&gt;
&lt;p&gt;&lt;code&gt;pip install -r requirements.txt&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Change the controls and key mappings in the utils file according to the game (leave it as is for Real…&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Santhoshkumard11/play-real-steel-boxing-with-your-audio"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h3&gt;
  
  
  Conclusion ✨
&lt;/h3&gt;

&lt;p&gt;The repo is public now so you guys can try building something on top of what I've done, would love to see what you're planning to go with this.&lt;br&gt;
You don't really need a Flask application to run this, it's just for the demo purpose that I've used to show the power of Deepgram APIs.&lt;br&gt;
You can read more about SDKs available for Deepgram &lt;a href="https://developers.deepgram.com/"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;There are lot of example that you can look up to in the Use Case section, just to make yourself comfortable with the usage of real-time speech transcription or Deepgram APIs in general.&lt;/p&gt;

&lt;p&gt;Happy Learning! 📑&lt;br&gt;
PRs are welcomed and drop your suggestions in the comments.&lt;/p&gt;


&lt;div class="ltag__user ltag__user__id__457047"&gt;
    &lt;a href="/sandy_codes_py" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Y4iCluO6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/practicaldev/image/fetch/s--oifHnOYO--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/457047/0d3a7d79-8416-4315-8289-a256c02fcd4d.png" alt="sandy_codes_py image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/sandy_codes_py"&gt;Santhosh (sandy inspires)&lt;/a&gt;Follow
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/sandy_codes_py"&gt;Data Engineer at Rakuten | ($14.5k) 10 Hackathon wins | MCT | Azure Certified X 6 | Python | Hackathon Enthusiasts | Technical Writer at Medium | Proactive Programmer&lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Let's connect 🤝
&lt;/h2&gt;

&lt;h4&gt;
  
  
  &lt;a href="https://linkedin.com/in/santhosh-kumard"&gt;LinkedIn&lt;/a&gt;
&lt;/h4&gt;

&lt;h4&gt;
  
  
  &lt;a href="https://www.instagram.com/sandy_inspires"&gt;Instagram&lt;/a&gt;
&lt;/h4&gt;

&lt;h4&gt;
  
  
  &lt;a href="https://twitter.com/sandy_inspires"&gt;Twitter&lt;/a&gt;
&lt;/h4&gt;

</description>
      <category>hackwithdg</category>
      <category>beginners</category>
      <category>javascript</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
