<?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: Rounak Sen</title>
    <description>The latest articles on DEV Community by Rounak Sen (@rony000013).</description>
    <link>https://dev.to/rony000013</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%2F1079535%2F79984ab9-8eaf-4873-9fa7-3a527cd32894.jpeg</url>
      <title>DEV Community: Rounak Sen</title>
      <link>https://dev.to/rony000013</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rony000013"/>
    <language>en</language>
    <item>
      <title>SonicScan - A Music Fingerprinting and Identification App</title>
      <dc:creator>Rounak Sen</dc:creator>
      <pubDate>Thu, 22 May 2025 06:20:18 +0000</pubDate>
      <link>https://dev.to/rony000013/sonicscan-a-music-fingerprinting-and-identification-app-2g4a</link>
      <guid>https://dev.to/rony000013/sonicscan-a-music-fingerprinting-and-identification-app-2g4a</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Want to try this app download it from &lt;a href="https://github.com/rony0000013/sonicscan/releases" rel="noopener noreferrer"&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🪙 ABSOLUTELY FREE&lt;/li&gt;
&lt;li&gt;👆🏿 Song Fingerprinting&lt;/li&gt;
&lt;li&gt;🔍 Song Search&lt;/li&gt;
&lt;li&gt;📥 Song Download&lt;/li&gt;
&lt;li&gt;🎸 Song Identification&lt;/li&gt;
&lt;li&gt;🌐 Multi Device Support (Windows, Linux, Mac, Web, Android, iOS)&lt;/li&gt;
&lt;li&gt;🎨 Multi Themed (powered by daisyui)&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: My implementation of fingerprinting is based on this old blogpost&lt;br&gt;
&lt;a href="https://drive.google.com/file/d/1ahyCTXBAZiuni6RTzHzLoOwwfTRFaU-C/view" rel="noopener noreferrer"&gt;How_does_Shazam_work_Coding_Geek&lt;/a&gt;&lt;br&gt;
from 2015 so it maynot be very good at identifying songs.&lt;/p&gt;

&lt;p&gt;Note: Due to spotify not allowing to download songs, and Youtube downloader&lt;br&gt;
(yt-dlp) is not working in deployment server due to youtube's cache policy I have to use jiosaavn api to get the songs, So the song search may not be very accurate.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.rust-lang.org" rel="noopener noreferrer"&gt;Rust&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://solidjs.com" rel="noopener noreferrer"&gt;SolidJS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://daisyui.com" rel="noopener noreferrer"&gt;DaisyUI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://bun.sh" rel="noopener noreferrer"&gt;Bun&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://tauri.app" rel="noopener noreferrer"&gt;Tauri&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://tailwindcss.com" rel="noopener noreferrer"&gt;TailwindCSS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://aiven.io/valkey" rel="noopener noreferrer"&gt;Valkey on Aiven&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.tomusic-downloader/"&gt;Music Downloader&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.tomusic-finder/"&gt;Music Finder&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/sumitkolhe/jiosaavn-api" rel="noopener noreferrer"&gt;Jiosaavn Api by Sumit Kolhe&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How I Build This
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;One Day while watching youtube I found a &lt;a href="https://www.youtube.com/watch?v=a0CVCcb0RJM" rel="noopener noreferrer"&gt;video&lt;/a&gt; by &lt;a href="https://www.youtube.com/@cgzirim" rel="noopener noreferrer"&gt;Chigozirim&lt;/a&gt; about how shazam works and I was amazed by It. He build a music fingerprinting app using golang and it was amazing. He build it based on the blogpost by &lt;a href="https://drive.google.com/file/d/1ahyCTXBAZiuni6RTzHzLoOwwfTRFaU-C/view" rel="noopener noreferrer"&gt;Coding_Geek&lt;/a&gt;. So inspired by it I decided to build a music fingerprinting app using rust.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I started by exploring the audio processing part and then I discovered &lt;a href="https://github.com/sonic-rs/symphonia" rel="noopener noreferrer"&gt;Symphonia&lt;/a&gt; which is a rust crate for audio processing. First I build a function to extract mono audio from a file using it and kept a frequency limited to 41.1 KHz as it is the maximum frequency that the human ear can hear. I also implemented functions to downsample the audio and normalise it. Then I visualized the spectrogram of the audio using &lt;a href="https://github.com/image-rs/image" rel="noopener noreferrer"&gt;image&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Then I started to build the fingerprinting part and I used the STFT to extract the frequency domain representation of the audio and used a Hann window function and a hop size of 512 and FFT size of 2048. Then I calculated the STFT for each band using &lt;a href="https://github.com/Geal/realfft" rel="noopener noreferrer"&gt;realfft&lt;/a&gt; crate.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I implemented a function to filter the STFT based on the bands. To limit the number of bands based on which I compute the fingerprint so I used these bands&lt;br&gt;
&lt;code&gt;(0, 32),&lt;br&gt;
(32, 64),&lt;br&gt;
(64, 128),&lt;br&gt;
(128, 256),&lt;br&gt;
(256, 512),&lt;br&gt;
(512, 1024),&lt;br&gt;
(1024, 2048),&lt;br&gt;
(2048, 4096),&lt;br&gt;
(4096, 8192),&lt;br&gt;
(8192, 20000)&lt;/code&gt;&lt;br&gt;
based on the human ear's frequency response by this &lt;a href="https://unison.audio/eq-frequency-chart/" rel="noopener noreferrer"&gt;blogpost&lt;/a&gt; and this &lt;a href="https://www.gear4music.com/blog/audio-frequency-range/" rel="noopener noreferrer"&gt;blogpost&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For the bands I also tried to implement the Mel frequency scale as it is more accurate to human ear's frequency response but it didn't work out as expected and I haven't found any good implementation of it so I used the linear frequency scale with fixed band sizes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Using the filtered STFT I computed the fingerprint using nearest neighbors of 5 peaks for each band and used the &lt;a href="https://github.com/Geal/kdtree" rel="noopener noreferrer"&gt;kdtree&lt;/a&gt; crate and each of the fingerprint I computed the hash using the tuple values of the frequency and time and stored it in a valkey database.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Then When I want to find the similar audio files I get the fingerprint of the audio file the functions and then search using the fingerprint as keys from the valkey database and then I sort the values based on the frequency, time difference and anchor count and then I return the top 3 respective songdata based on the filtered values with song_ids.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Then I learned Tauri and used my favourite frontend framework &lt;a href="https://solidjs.com" rel="noopener noreferrer"&gt;SolidJS&lt;/a&gt; with &lt;a href="https://tailwindcss.com" rel="noopener noreferrer"&gt;TailwindCSS&lt;/a&gt; and &lt;a href="https://daisyui.com" rel="noopener noreferrer"&gt;DaisyUI&lt;/a&gt; to build the UI with MotionOne to add animations and &lt;a href="https://tauri.app" rel="noopener noreferrer"&gt;Tauri&lt;/a&gt; to build the desktop/web/android/ios app.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Due to spotify not allowing to download songs, and Youtube downloader (yt-dlp) is not working in deployment server due to youtube's cache policy I have to use jiosaavn api to get the songs, So the song search may not be very accurate.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Still the music downloader is working in dev mode as it can use local browser cookies to verify and download the songs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For the Jiosaavn api I used the &lt;a href="https://github.com/sumitkolhe/jiosaavn-api" rel="noopener noreferrer"&gt;Jiosaavn Api by Sumit Kolhe&lt;/a&gt; and it is under MIT license so it is free for personal use.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For the music finder I also discovered vercel rust runtimes and used it to deploy the music finder api functions for free.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For the database I used &lt;a href="https://aiven.io/valkey" rel="noopener noreferrer"&gt;Valkey&lt;/a&gt; on &lt;a href="https://aiven.io" rel="noopener noreferrer"&gt;Aiven&lt;/a&gt; for free.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ultimately I enjoyed building this app and I hope you enjoy using it.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;thanks for reading&lt;/p&gt;

</description>
      <category>rust</category>
      <category>music</category>
      <category>programming</category>
    </item>
    <item>
      <title>MovieLens - Smart Movie Analysis Redefined</title>
      <dc:creator>Rounak Sen</dc:creator>
      <pubDate>Mon, 25 Nov 2024 05:28:47 +0000</pubDate>
      <link>https://dev.to/rony000013/movielens-level-up-movie-3hpf</link>
      <guid>https://dev.to/rony000013/movielens-level-up-movie-3hpf</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/assemblyai"&gt;AssemblyAI Challenge &lt;/a&gt;: Sophisticated Speech-to-Text.&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;MovieLens is an innovative web application that transforms how we interact with and analyze movie content using AI technologies. At its core, the application leverages multiple AI services to create a comprehensive movie analysis platform that can understand, process, and respond to queries about movie content intelligently.&lt;/p&gt;

&lt;p&gt;The application serves as a bridge between raw movie content and meaningful insights by:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Processing uploaded movie files to extract audio content&lt;/li&gt;
&lt;li&gt;Converting speech to text with high accuracy&lt;/li&gt;
&lt;li&gt;Identifying and extracting key discussion points and themes&lt;/li&gt;
&lt;li&gt;Enabling natural language queries about the movie content&lt;/li&gt;
&lt;li&gt;Providing AI-powered responses based on the analyzed content&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The system architecture combines several cutting-edge AI services:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AssemblyAI&lt;/strong&gt; for precise speech-to-text conversion and key point extraction&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ChromaDB&lt;/strong&gt; as our vector database for efficient semantic search capabilities&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SambaNova's Llama model&lt;/strong&gt; for generating intelligent responses&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cohere&lt;/strong&gt; for creating sophisticated embeddings&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google's Gemini&lt;/strong&gt; for additional language processing tasks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The end result is a seamless experience where users can upload movies and engage in natural conversations about the content, receiving informed responses powered by AI.&lt;/p&gt;

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

&lt;p&gt;Project link: &lt;a href="https://movielens-aai.streamlit.app/" rel="noopener noreferrer"&gt;https://movielens-aai.streamlit.app/&lt;/a&gt;&lt;br&gt;
Github Link: &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/rony0000013" rel="noopener noreferrer"&gt;
        rony0000013
      &lt;/a&gt; / &lt;a href="https://github.com/rony0000013/movielens" rel="noopener noreferrer"&gt;
        movielens
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      This is a sophisticated web application that uses AI technologies to analyze movies, extract key points, and provide intelligent insights using Retrieval Augmented Generation (RAG).
    &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;🎬 MovieLens 📸&lt;/h1&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Overview&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;This is a sophisticated web application that uses AI technologies to analyze movies, extract key points, and provide intelligent insights using Retrieval Augmented Generation (RAG).&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Features&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Movie file upload and audio extraction&lt;/li&gt;
&lt;li&gt;AssemblyAI-powered transcription and key point extraction&lt;/li&gt;
&lt;li&gt;ChromaDB vector storage for semantic search&lt;/li&gt;
&lt;li&gt;AI-powered query response system using SambaNova's Llama model&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Prerequisites&lt;/h2&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Python 3.11+&lt;/li&gt;
&lt;li&gt;API Keys:
&lt;ul&gt;
&lt;li&gt;AssemblyAI API Key&lt;/li&gt;
&lt;li&gt;Google API Key (for Gemini)&lt;/li&gt;
&lt;li&gt;SambaNova API Key&lt;/li&gt;
&lt;li&gt;Cohere API Key&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Setup Instructions&lt;/h2&gt;

&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;Clone the repository&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;git clone &lt;span class="pl-k"&gt;&amp;lt;&lt;/span&gt;repository_url&lt;span class="pl-k"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="pl-c1"&gt;cd&lt;/span&gt; movielens&lt;/pre&gt;

&lt;/div&gt;
&lt;ol start="2"&gt;
&lt;li&gt;Create a virtual environment&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;uv venv
&lt;span class="pl-c1"&gt;source&lt;/span&gt; venv/bin/activate  &lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; On Windows use `venv\Scripts\activate`&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;ol start="3"&gt;
&lt;li&gt;Install dependencies&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;uv add -r requirements.txt&lt;/pre&gt;

&lt;/div&gt;
&lt;ol start="4"&gt;
&lt;li&gt;Configure API Keys&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Create a &lt;code&gt;.env&lt;/code&gt; file in the root directory&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Add your API keys:&lt;/p&gt;
&lt;p&gt;.env file&lt;/p&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;ASSEMBLYAI_API_KEY=&amp;lt;your_assemblyai_api_key&amp;gt;
SAMBANOVA_API_KEY=&amp;lt;your_sambanova_api_key&amp;gt;
GOOGLE_API_KEY=&amp;lt;your_google_api_key&amp;gt;
COHERE_API_KEY=&amp;lt;your_cohere_api_key&amp;gt;
SAMBANOVA_MODEL="Meta-Llama-3.1-70B-Instruct"
COHERE_MODEL="embed-multilingual-v3.0"
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;.steamlit/secrets.toml file&lt;/p&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;SERVER_URL="http://localhost:8000"
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start="5"&gt;
&lt;li&gt;Run the application&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;uv run fastapi run main.py&lt;/pre&gt;

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

&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;Upload a movie file&lt;/li&gt;
&lt;li&gt;The application will process the…&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/rony0000013/movielens" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Journey
&lt;/h2&gt;

&lt;p&gt;Integrating AssemblyAI's Universal-2 Speech-to-Text Model was a crucial part of developing MovieLens. Here's how the journey unfolded:&lt;/p&gt;

&lt;h3&gt;
  
  
  Initial Integration
&lt;/h3&gt;

&lt;p&gt;The first step was incorporating AssemblyAI's API into our FastAPI backend. We needed a robust system that could handle various video formats and extract audio for processing. The Universal-2 model proved to be the perfect choice due to its:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Superior accuracy in handling multiple speakers&lt;/li&gt;
&lt;li&gt;Ability to process various accents and speaking styles&lt;/li&gt;
&lt;li&gt;Robust handling of background noise&lt;/li&gt;
&lt;li&gt;Fast processing times&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Technical Implementation
&lt;/h3&gt;

&lt;p&gt;The integration process involved several key steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Key Point Extraction&lt;/strong&gt;&lt;br&gt;
We utilized AssemblyAI's advanced features to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Identify main topics and themes&lt;/li&gt;
&lt;li&gt;Extract key discussion points&lt;/li&gt;
&lt;li&gt;Capture important timestamps&lt;/li&gt;
&lt;li&gt;Generate summaries of different segments&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Vector Database Integration&lt;/strong&gt;&lt;br&gt;
The transcribed text and extracted key points are then:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Embedded using Cohere's embedding model&lt;/li&gt;
&lt;li&gt;Stored in ChromaDB for efficient retrieval&lt;/li&gt;
&lt;li&gt;Indexed for semantic search capabilities&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Challenges and Solutions
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Large File Processing&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Challenge: Handling large movie files efficiently&lt;/li&gt;
&lt;li&gt;Solution: Implemented chunked uploading and processing&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Real-time Feedback&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Challenge: Keeping users informed during long processing times&lt;/li&gt;
&lt;li&gt;Solution: Added webhook support for processing status updates&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Accuracy Optimization&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Challenge: Improving transcription accuracy for various movie genres&lt;/li&gt;
&lt;li&gt;Solution: Fine-tuned audio preprocessing parameters and utilized AssemblyAI's speaker diarization&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Key Learnings
&lt;/h3&gt;

&lt;p&gt;Working with AssemblyAI's Universal-2 model taught us several valuable lessons:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The importance of proper audio preprocessing for optimal results&lt;/li&gt;
&lt;li&gt;How to effectively handle asynchronous processing for large files&lt;/li&gt;
&lt;li&gt;The value of webhook integration for real-time status updates&lt;/li&gt;
&lt;li&gt;Best practices for error handling in speech-to-text processing&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Results and Impact
&lt;/h3&gt;

&lt;p&gt;The integration of AssemblyAI's Universal-2 model significantly enhanced our application's capabilities:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Achieved 95%+ transcription accuracy across various movie genres&lt;/li&gt;
&lt;li&gt;Reduced processing time by 40% compared to previous solutions&lt;/li&gt;
&lt;li&gt;Enabled more accurate semantic search through better transcription quality&lt;/li&gt;
&lt;li&gt;Improved user experience with real-time processing updates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The journey of integrating AssemblyAI's technology has not only improved our application's functionality but also opened up new possibilities for future enhancements and features.&lt;/p&gt;

&lt;p&gt;Build with ❤️ by - Rounak Sen (&lt;a class="mentioned-user" href="https://dev.to/rony000013"&gt;@rony000013&lt;/a&gt;)&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>assemblyaichallenge</category>
      <category>ai</category>
      <category>api</category>
    </item>
    <item>
      <title>STONKS APP 📈📉- Stocks helper for Beginners</title>
      <dc:creator>Rounak Sen</dc:creator>
      <pubDate>Sun, 14 Apr 2024 15:26:12 +0000</pubDate>
      <link>https://dev.to/rony000013/stonks-app-stocks-helper-for-beginners-37m2</link>
      <guid>https://dev.to/rony000013/stonks-app-stocks-helper-for-beginners-37m2</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/devteam/join-us-for-the-cloudflare-ai-challenge-3000-in-prizes-5f99"&gt;Cloudflare AI Challenge&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Stonks is a beginner-friendly stock information app that provides an intuitive and user-friendly platform for accessing stock data and insights.&lt;/li&gt;
&lt;li&gt;It is a web-based application built on Streamlit, leveraging the power of serverless Cloudflare Workers and Workers AI to generate stock information from the polygon.io API.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;h3&gt;
  
  
  &lt;a href="https://stonks-stonks.streamlit.app"&gt;STONKS APP 📈📉&lt;/a&gt;
&lt;/h3&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://stonks-worker.rony000013.workers.dev/"&gt;Stonks app backend&lt;/a&gt;
&lt;/h3&gt;

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

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvv8aaptb6vwpuronj56q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvv8aaptb6vwpuronj56q.png" alt="Image description" width="800" height="389"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fasuamwazt3ouqvirsaj5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fasuamwazt3ouqvirsaj5.png" alt="Image description" width="800" height="597"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl49uq4d4x3edkg0gteo5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl49uq4d4x3edkg0gteo5.png" alt="Image description" width="800" height="469"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgbnvmiql6yzelmrkvfl1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgbnvmiql6yzelmrkvfl1.png" alt="Image description" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;The code for the Stonks App is available on GitHub:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;h3&gt;
  
  
  Streamlit app  &lt;a href="https://github.com/rony0000013/stonks"&gt;https://github.com/rony0000013/stonks&lt;/a&gt;
&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/rony0000013"&gt;
        rony0000013
      &lt;/a&gt; / &lt;a href="https://github.com/rony0000013/stonks"&gt;
        stonks
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Stonks is a beginner-friendly 👋 stock information app that revolutionizes the way you access and understand stock data. Built on Streamlit 💻, it leverages serverless Cloudflare Workers ☁️ and Workers AI 🤖 to generate insightful stock summaries from polygon.io API 📊.
    &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;Stonks App 📈📉&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://stonks-stonks.streamlit.app" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/492dc2cc5c894cc5c245075202d323f30d70821f2106b40543be4a2cff98d347/68747470733a2f2f7374617469632e73747265616d6c69742e696f2f6261646765732f73747265616d6c69745f62616467655f626c61636b5f77686974652e737667" alt="Streamlit App"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Features&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Stock Summary&lt;/strong&gt;: Get a comprehensive overview of stocks, including daily price charts and essential information.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-Language Support&lt;/strong&gt;: Access stock information in multiple languages, ensuring accessibility for a global audience.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;News and Sentiment Analysis&lt;/strong&gt;: Stay up-to-date with recent news related to stocks, accompanied by sentiment analysis for better decision-making.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Customizable Date&lt;/strong&gt;: Users can customize the date to obtain stock information tailored to their specific needs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LLM Model Selection&lt;/strong&gt;: Choose from various Large Language Models (LLMs) to generate stock information based on individual preferences.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Prerequisites - Python and Poetry, Stonks-worker deployed or running locally&lt;/h3&gt;

&lt;/div&gt;

&lt;p&gt;To run the Stonks App locally, follow these steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Clone the repository:&lt;/p&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;git clone https://github.com/rony0000013/stonks.git&lt;/pre&gt;

&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Install the dependencies:&lt;/p&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;poetry install&lt;/pre&gt;

&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Add stonks worker deployed link in &lt;code&gt;.streamlit/secrets.toml&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;url = &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;&amp;lt;your-deployment-link&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the app&lt;/p&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;poetry run streamlit run main.py&lt;/pre&gt;

&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

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

&lt;/div&gt;

&lt;p&gt;Contributions to the Stonks App are welcome…&lt;/p&gt;
&lt;/div&gt;


&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/rony0000013/stonks"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;

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

&lt;h3&gt;
  
  
  Cloudflare Worker  &lt;a href="https://github.com/rony0000013/stonks-worker"&gt;https://github.com/rony0000013/stonks-worker&lt;/a&gt;
&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/rony0000013"&gt;
        rony0000013
      &lt;/a&gt; / &lt;a href="https://github.com/rony0000013/stonks-worker"&gt;
        stonks-worker
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Stonks is a beginner-friendly 👋 stock information app that revolutionizes the way you access and understand stock data. Built on Streamlit 💻, it leverages serverless Cloudflare Workers ☁️ and Workers AI 🤖 to generate insightful stock summaries from polygon.io API 📊.
    &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;Stonks App Worker&lt;/h1&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Description&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;This repository contains the code for a Cloudflare Worker of the stonks app. stonks app is a beginner friendly app for getting stock information of various stocks.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Features&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Stock Summary&lt;/strong&gt;: Get a comprehensive overview of stocks, including daily price charts and essential information.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Multi-Language Support&lt;/strong&gt;: Access stock information in multiple languages, ensuring accessibility for a global audience.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;News and Sentiment Analysis&lt;/strong&gt;: Stay up-to-date with recent news related to stocks, accompanied by sentiment analysis for better decision-making.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Customizable Date&lt;/strong&gt;: Users can customize the date to obtain stock information tailored to their specific needs.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;LLM Model Selection&lt;/strong&gt;: Choose from various Large Language Models (LLMs) to generate stock information based on individual preferences.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Getting Started&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;To get started with this Cloudflare Worker, follow these steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Clone this repository:&lt;/p&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;git clone https://github.com/your-username/your-repo.git&lt;/pre&gt;

&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Install the required dependencies:&lt;/p&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;npm install&lt;/pre&gt;

&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Configure your &lt;a href="https://cloudflare.com/" rel="nofollow"&gt;&lt;strong&gt;Cloudflare&lt;/strong&gt;&lt;/a&gt; account and obtain your…&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/rony0000013/stonks-worker"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;



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

&lt;h3&gt;
  
  
  Tech Stack -
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Streamlit&lt;/strong&gt; - to build and deploy the app&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;fuzzywuzzy&lt;/strong&gt; - to search voice text to the ticker data&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pytickersymbols&lt;/strong&gt; - to get all stock tickers&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plotly&lt;/strong&gt; - do display the stock candlestick chart&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Poetry&lt;/strong&gt; - to manage libraries and project&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Wrangler&lt;/strong&gt; - to manage and deploy the worker&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;hono&lt;/strong&gt; - backend server to handle requests to the worker&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;cloudflare workers ai&lt;/strong&gt; - to run the ai models serverlessly&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;cloudflare kv&lt;/strong&gt; - to cache the worker requests&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;cloudflare workers&lt;/strong&gt; - to deploy and run the server&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The repository includes a README file with installation instructions, as well as a LICENSE file for the project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Journey
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The development of the Stonks App was an exciting and challenging journey. I utilized various technologies and models to create this beginner-friendly stock information platform.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I was planning on building a easy way to view information about stocks since huge percent of indians are not stock investors. so th opportunity to build such an app with cloudflare was very intresting. But the only thing was that i saw that on 12/04/2024 with only 2 more days remaining !!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I started with the backend/worker. the start was pretty easy to my surprise thanks to the video from cloudflare &lt;a href="https://www.youtube.com/watch?v=H7Qe96fqg1M"&gt;Youtube Video 📺&lt;/a&gt;. Since my first time using Cloudflare Workers, Hono and Typecript (relatively more). So the start was easy.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I really liked the Wrangler CLI very intuitive to use. The workers AI models used pretty well and documentation was plenty. The Ploygon API also has clean docs with easy to use API. Cloudflare KV was very easy to implement the caching mechanism. I was not able to implement the swagger ui like the one in fastapi.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For the frontend It was my first time to use streamlit to build a website size app with complex logics. It was more or less okay.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The main trail to problems arised when I joined frontend and backend. both had to be changed several times to pass data correctly to each other and also the caching was implemented in multiple stages like in api routes, api calling, streamlit functions which ultimately prevented the potential problem of too many requests to use up my api limits.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I had an idea of generating the stock candlestick graph and stylize it with the image generation models. First problem was getiing the chart image. After searching various libraries&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I came to a realization that was cloudflare workers is a serverless environment usual javascript libraries which call with DOM to generate charts did not work. After trying multiple times I ultimately decided that python's Plotly will do the chart creation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Second problem arose when I tried to modify image using workers ai models. Here I realized that most except &lt;code&gt;stable-diffusion-v1-5-img2img&lt;/code&gt; was not able to take input an image despite given in the docs input schema. The output of the only model which was able to stylize was very poor. So, I gave up on this Idea.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Rest all models were easy to implement in the app and I ultimately was able to finish this in 2 days.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Looking ahead, I plan to improve the Stonks App by adding new features and exploring additional ways to leverage Workers AI. Some potential enhancements include implementing advanced stock analysis models, implementing a more fun and easy way to show stock charts.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Multiple Models and/or Triple Task Types
&lt;/h2&gt;

&lt;p&gt;The Stonks App utilized multiple models from Workers AI to generate stock information, news analysis, and sentiment analysis.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Generating the stock information and chatting with stock data was done by&lt;br&gt;
&lt;/p&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="s2"&gt;"@hf/thebloke/zephyr-7b-beta-awq"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"@cf/qwen/qwen1.5-0.5b-chat"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"@hf/nexusflow/starling-lm-7b-beta"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"@hf/thebloke/llamaguard-7b-awq"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"@hf/thebloke/neural-chat-7b-v3-1-awq"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"@cf/meta/llama-2-7b-chat-fp16"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"@cf/mistral/mistral-7b-instruct-v0.1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"@cf/tinyllama/tinyllama-1.1b-chat-v1.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"@hf/mistral/mistral-7b-instruct-v0.2"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"@hf/thebloke/codellama-7b-instruct-awq"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"@hf/mistralai/mistral-7b-instruct-v0.2"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"@cf/thebloke/discolm-german-7b-v1-awq"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"@cf/meta/llama-2-7b-chat-int8"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"@hf/thebloke/mistral-7b-instruct-v0.1-awq"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"@hf/thebloke/openchat_3.5-awq"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"@cf/qwen/qwen1.5-7b-chat-awq"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"@hf/thebloke/llama-2-13b-chat-awq"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"@hf/thebloke/openhermes-2.5-mistral-7b-awq"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"@cf/tiiuae/falcon-7b-instruct"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"@hf/nousresearch/hermes-2-pro-mistral-7b"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"@cf/qwen/qwen1.5-1.8b-chat"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"@cf/microsoft/phi-2"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"@hf/google/gemma-7b-it"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"@cf/qwen/qwen1.5-14b-chat-awq"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"@cf/openchat/openchat-3.5-0106"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"@cf/google/gemma-2b-it-lora"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"@cf/google/gemma-7b-it-lora"&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;/li&gt;
&lt;li&gt;&lt;p&gt;Summarizing the generated output was done by &lt;code&gt;@cf/facebook/bart-large-cnn&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Translating the output was done by &lt;code&gt;@cf/meta/m2m100-1.2b&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Generating Sentiments from the news articles was done by &lt;code&gt;@cf/huggingface/distilbert-sst-2-int8&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Converting the voice input to text for ticker search was done by &lt;code&gt;@cf/openai/whisper&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>cloudflarechallenge</category>
      <category>devchallenge</category>
      <category>ai</category>
      <category>serverless</category>
    </item>
    <item>
      <title>Inventory Management Website</title>
      <dc:creator>Rounak Sen</dc:creator>
      <pubDate>Sat, 15 Jul 2023 08:14:24 +0000</pubDate>
      <link>https://dev.to/rony000013/inventory-management-website-2gno</link>
      <guid>https://dev.to/rony000013/inventory-management-website-2gno</guid>
      <description>&lt;p&gt;build with Soumyajit Mondal &lt;a class="mentioned-user" href="https://dev.to/soumyajit2825"&gt;@soumyajit2825&lt;/a&gt; &lt;/p&gt;

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

&lt;p&gt;Inventory Management Website&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Best Overall Project&lt;/li&gt;
&lt;li&gt;Most Visually Pleasing&lt;/li&gt;
&lt;li&gt;Most Technical Impressive&lt;/li&gt;
&lt;li&gt;Best Project built using Supabase as the main data provider for the refine app.&lt;/li&gt;
&lt;li&gt;Best Project built using Material UI as the main UI framework for the refine app.&lt;/li&gt;
&lt;/ul&gt;



&lt;h3&gt;
  
  
  App Link 🔗
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://refine-inventory-management.onrender.com"&gt;🔗🔗🔗🔗🔗🔗&lt;/a&gt;&lt;/p&gt;



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

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--d7eMEcgo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r5yjoz06lfvvmkbnwgbn.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--d7eMEcgo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r5yjoz06lfvvmkbnwgbn.jpg" alt="Login page" width="790" height="813"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Tek2Xb4s--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5araew3ihlf1ytuw2cvg.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Tek2Xb4s--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5araew3ihlf1ytuw2cvg.jpg" alt="Signup Page" width="639" height="616"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--552J0Mno--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iztdctatynbj5qy1gv2r.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--552J0Mno--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iztdctatynbj5qy1gv2r.jpg" alt="Home Page" width="800" height="347"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HNj1_E_I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9hb4fe7i12m31nxlxulf.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HNj1_E_I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9hb4fe7i12m31nxlxulf.jpg" alt="Items Page" width="800" height="295"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Ja-dTygN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/msck5ag6fx16919xuvzz.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Ja-dTygN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/msck5ag6fx16919xuvzz.jpg" alt="Inventories Page" width="800" height="382"&gt;&lt;/a&gt;&lt;/p&gt;



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

&lt;p&gt;This inventory management website is built using Refine, React, Material UI, and Supabase. It is a powerful and easy-to-use tool that allows you to track your inventory, manage your orders, and keep your business running smoothly.&lt;/p&gt;

&lt;p&gt;The website is built on a modern stack that is scalable, secure, and reliable. It is also easy to customize, so you can tailor it to the specific needs of your business.&lt;/p&gt;



&lt;h3&gt;
  
  
  Link to Source Code 🧑‍💻
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/rony0000013/refine-inventory-management"&gt;https://github.com/rony0000013/refine-inventory-management&lt;/a&gt;&lt;/p&gt;



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

&lt;p&gt;&lt;a href="https://github.com/rony0000013/refine-inventory-management/blob/master/LICENSE"&gt;- MIT License&lt;/a&gt;&lt;/p&gt;



&lt;h3&gt;
  
  
  Background (What made you decide to build this particular app? What inspired you?)
&lt;/h3&gt;

&lt;p&gt;The Refine Inventory Management app was developed to address the challenges businesses face in managing their inventory effectively. Existing systems often lack advanced features and can be time-consuming to use. Our inspiration came from witnessing the impact of inefficient inventory management on businesses, including stockouts, overstocking, lost sales, and increased costs. We recognized the need for a user-friendly and robust solution that leverages technologies like artificial intelligence and machine learning. The goal of our app is to empower businesses to take control of their inventory, make data-driven decisions, improve operational efficiency, and ultimately increase their profitability.&lt;/p&gt;



&lt;h3&gt;
  
  
  How I built it (How did you utilize refine? Did you learn something new along the way? Pick up a new skill?)
&lt;/h3&gt;

&lt;p&gt;In building the Refine Inventory Management app, I utilized the following technologies and gained new skills along the way:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Refine:&lt;/strong&gt; I leveraged Refine, a powerful framework for data-intensive applications, to develop the backend and frontend components efficiently.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Material-UI (MUI):&lt;/strong&gt; I incorporated MUI, a React UI library, to enhance the app's user interface and create a modern and responsive design.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;React:&lt;/strong&gt; I used React, a popular JavaScript library, to develop reusable and modular components, improving code organization and maintenance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TypeScript:&lt;/strong&gt; I learned TypeScript, a strongly-typed superset of JavaScript, which brought enhanced type safety and code readability to the project.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;React Router:&lt;/strong&gt; I implemented React Router for seamless navigation within the app, providing a smooth user experience.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Supabase:&lt;/strong&gt; I integrated Supabase, an open-source platform, to simplify database management and ensure secure and scalable backend infrastructure.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inferencer:&lt;/strong&gt; I incorporated Inferencer for advanced features like demand forecasting and real-time stock tracking, gaining insights into building and training machine learning models.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Building the Refine Inventory Management app not only resulted in a functional solution but also expanded my skill set and knowledge in these technologies.&lt;/p&gt;



&lt;h3&gt;
  
  
  Additional Resources/Info
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;React &lt;a href="https://react.dev"&gt;Docs&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Refine &lt;a href="https://refine.dev/docs"&gt;Docs&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Supabase Data Provider &lt;a href="https://refine.dev/docs/core/providers/data-provider/#overview"&gt;Docs&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Material UI &lt;a href="https://refine.dev/docs/ui-frameworks/mui/tutorial/"&gt;Docs&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Inferencer &lt;a href="https://refine.dev/docs/packages/documentation/inferencer"&gt;Docs&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;React Router &lt;a href="https://refine.dev/docs/core/providers/router-provider/"&gt;Docs&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>refinehackathon</category>
      <category>react</category>
      <category>typescript</category>
      <category>supabase</category>
    </item>
    <item>
      <title>Animal Search App</title>
      <dc:creator>Rounak Sen</dc:creator>
      <pubDate>Sat, 20 May 2023 17:58:18 +0000</pubDate>
      <link>https://dev.to/rony000013/animal-search-app-27mp</link>
      <guid>https://dev.to/rony000013/animal-search-app-27mp</guid>
      <description>&lt;h2&gt;
  
  
  What I built
&lt;/h2&gt;

&lt;p&gt;A Simple React App With Express Server to Search for randomly generated animal names.&lt;/p&gt;




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




&lt;h3&gt;
  
  
  App Link
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://animalfarm-8u9v.onrender.com" rel="noopener noreferrer"&gt;https://animalfarm-8u9v.onrender.com&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Screenshots
&lt;/h3&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%2Fahz7opq0ziaf5bnecovn.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%2Fahz7opq0ziaf5bnecovn.jpg" alt="Home Page" width="800" height="375"&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%2Fl2dma0mtmfovznc8471v.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%2Fl2dma0mtmfovznc8471v.jpg" alt="Search View" width="800" height="509"&gt;&lt;/a&gt;&lt;/p&gt;




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

&lt;p&gt;A Simple React App With Express Server to Search for randomly generated animal names. It uses Chance library to generate random animal names and other data and also uses Material UI for UI. &lt;/p&gt;




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

&lt;p&gt;&lt;a href="https://github.com/rony0000013/animalfarm" rel="noopener noreferrer"&gt;https://github.com/rony0000013/animalfarm&lt;/a&gt;&lt;/p&gt;




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

&lt;p&gt;MIT License&lt;br&gt;
&lt;a href="https://github.com/rony0000013/animalfarm/blob/master/LICENSE" rel="noopener noreferrer"&gt;https://github.com/rony0000013/animalfarm/blob/master/LICENSE&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Background (What made you decide to build this particular app? What inspired you?)
&lt;/h2&gt;

&lt;p&gt;I had learned react and various other things. So to prototype and increase my knowledge base I learned and used Material UI, Github Actions, Express, etc and used them to build a simple app.&lt;/p&gt;




&lt;h3&gt;
  
  
  How I built it (How did you utilize GitHub Actions or GitHub Codespaces? Did you learn something new along the way? Pick up a new skill?)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;I build the app in a Github Codespace.&lt;/li&gt;
&lt;li&gt;The React App was simple and I used Express for backend server to send data. I also implemented search with query parameter in express backend.&lt;/li&gt;
&lt;li&gt;I learned and used Material UI, Github Actions, Express, etc and used them in the app. &lt;/li&gt;
&lt;li&gt;I created basic Guithub Action CI test for errors before deploying after commit and another action for code analysis after commit.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Additional Resources/Info
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://docs.github.com/en/actions" rel="noopener noreferrer"&gt;https://docs.github.com/en/actions&lt;/a&gt;&lt;br&gt;
&lt;a href="https://react.dev/learn" rel="noopener noreferrer"&gt;https://react.dev/learn&lt;/a&gt;&lt;br&gt;
&lt;a href="https://expressjs.com/en/starter/hello-world.html" rel="noopener noreferrer"&gt;https://expressjs.com/en/starter/hello-world.html&lt;/a&gt;&lt;br&gt;
&lt;a href="https://mui.com/material-ui/getting-started/overview/" rel="noopener noreferrer"&gt;https://mui.com/material-ui/getting-started/overview/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>githubhack23</category>
      <category>actionshackathon</category>
      <category>react</category>
    </item>
    <item>
      <title>Unleashing Pythonic Wizardry🧙🏿‍♂️: Tips to Embrace the Art of Elegant Pythonic Writing 🐍</title>
      <dc:creator>Rounak Sen</dc:creator>
      <pubDate>Tue, 09 May 2023 11:11:02 +0000</pubDate>
      <link>https://dev.to/rony000013/unleashing-pythonic-wizardry-tips-to-embrace-the-art-of-elegant-pythonic-writing-1h2g</link>
      <guid>https://dev.to/rony000013/unleashing-pythonic-wizardry-tips-to-embrace-the-art-of-elegant-pythonic-writing-1h2g</guid>
      <description>&lt;p&gt;Python, with its boundless capabilities and unmatched adaptability, transcends the realm of ordinary programming languages. While it shines brightly in its versatility, Python is no mere contender in the vast arena of coding tools.&lt;/p&gt;

&lt;p&gt;But Python’s allure runs deeper than its pragmatic utility. It embodies a philosophy, a way of thinking that permeates every line of code. Pythonic writing, as if breathing life into the very essence of programming, encapsulates a mindset of clarity, simplicity, and beauty. It goes beyond the mechanics of coding, transcending into an art form where readability and elegance reign supreme.&lt;/p&gt;

&lt;p&gt;So without any further delay lets begin with some tips to embrace the art of elegant Pythonic writing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--j1764wkf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ebhlt7h4cqywlv5jsvqw.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--j1764wkf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ebhlt7h4cqywlv5jsvqw.gif" alt="Image description" width="498" height="462"&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;Tip 1: Inplace swap 🅰️↔️🅱️&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Instead of taking a temporary variable to store a value and then swap like other programming languages, Python can swap variables in ONE line all thanks to the tuple destructuring or tuple unpacking .&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
&lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;
&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="c1"&gt;# this equals (a, b) = (b, a)
&lt;/span&gt;&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 5
&lt;/span&gt;&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;h2&gt;
  
  
  &lt;strong&gt;Tip 2: Tuple / List Unpacking 🔓📦&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;This is equal to assigning multiple variables from a list or tuple in a single line.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;11&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;13&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="c1"&gt;# works also for (11, 12, 13)
&lt;/span&gt;&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 11
&lt;/span&gt;&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 12
&lt;/span&gt;&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 13      
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;you can use this feature to pass arguments and keyword arguments to a function using ‘&lt;em&gt;’ for list or tuples and ‘&lt;/em&gt;*’ for dictionaries.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;args&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"a"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;kwargs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;"a"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"b"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;21&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="n"&gt;some_func&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;kwargs&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# * for list or tuple and ** for dicts
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Nsu59dNs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2pexml2b4pe1sd38jcsu.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Nsu59dNs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2pexml2b4pe1sd38jcsu.gif" alt="Unpacking" width="498" height="278"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;Tip 2: Tuple / List Packing 🔒📦&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Just like unpacking you can also pack some values in a variable using ‘*’.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;first&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;rest&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;last&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="c1"&gt;# works also for (1, 2, 3, 4, 5)
&lt;/span&gt;&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;first&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 1
&lt;/span&gt;&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;rest&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# [2, 3, 4]
&lt;/span&gt;&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;last&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also get packed arguments using ‘*’.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;some_function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;kwargs&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s"&gt;"Args: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s"&gt;"Kwargs: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;kwargs&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;some_function&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="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;# Args: (1, 2, 3)
# Kwargs: {'a': 4, 'b': 5, 'c': 6}  
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;BONUS TIP: NEVER Trust your user to ALWAYS pass correct Input.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NKHAFwtf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/phox2f8dnvwu9pv5zunp.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NKHAFwtf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/phox2f8dnvwu9pv5zunp.gif" alt="Packing" width="320" height="240"&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;Tip 4: Store you Garbage in ‘_’ ️🗑️&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Python offers you ‘_’ as a valid variable name so why not store your garbage in it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&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="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Useless _"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;h2&gt;
  
  
  &lt;strong&gt;Tip 5: Loop correctly ♾️&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Instead of index looping on Index like other languages use the value of the element in list or tiple or dict to loop.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="ow"&gt;in&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="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt; &lt;span class="c1"&gt;# No use of index
&lt;/span&gt;  &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;dict_&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;"a"&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="s"&gt;"b"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"c"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;# dict.items() returns list of (key, value) tuples.
&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;dict_&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;items&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt; 
  &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And If you need Index you have enumerate() to help you&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;list_&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="c1"&gt;# enumerate return list of (key, value) tuples.
&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;idx&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;enumerate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;list_&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
  &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;idx&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bipEEXCR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6e9mii2e3m5vw8bbuqaj.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bipEEXCR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6e9mii2e3m5vw8bbuqaj.gif" alt="loop infinite" width="498" height="420"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;Tip 6: Better Numbers ️🔢&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Just use pythons underscored numbers to give a much better readable numbers.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;num&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;100_000_000&lt;/span&gt; &lt;span class="c1"&gt;# much better than 100000000
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;h2&gt;
  
  
  &lt;strong&gt;Tip 7: f-strings f-strings f-strings all the way🔤&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;By far The BEST way to write dynamic stings is No doubt python’s f-strings. It works like magic and is very readable.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;color&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Black"&lt;/span&gt;
&lt;span class="n"&gt;animal&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Dog"&lt;/span&gt;
&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s"&gt;"I saw a &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;color&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;animal&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;."&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# I saw a Black Dog.
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;for multiline strings use&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;profession&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Geek"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Coder"&lt;/span&gt;
&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s"&gt;"""
      Hi &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;. 
      You are a &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;profession&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;.
      """&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;AND did I forgot to mention they are DAMM FAST.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;Tip 8: Slicing is FUN 🍰🍕&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;In python slicing is as easy as accessing the value from a list or tuple. In other programming languages slicing is done using calling a method or function. but python has streamlined slicing by making it access able in third backet notation in format [start : stop_before : separation] also including negative index(from last element).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;list_&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;list_&lt;/span&gt;&lt;span class="p"&gt;[:&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="c1"&gt;# [1, 2, 3]
&lt;/span&gt;&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;list_&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="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="c1"&gt;# [1, 3, 5]
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also reverse a list by using [::-1]&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;list_&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;list_&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="c1"&gt;# [5, 4, 3, 2, 1]
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--L6nYkE4I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/osp7irwfo1fzvyj1l2yw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--L6nYkE4I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/osp7irwfo1fzvyj1l2yw.png" alt="Phil swift chainsaw" width="345" height="345"&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;Tip 9: Better IF ELSE 🕹️&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;If you have simple if else statement you can use python if else expression to achieve your task. This is a replacement of ternary operator from other languages. Its syntax is in form&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TRUE if CONDITION else FALSE&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"YES"&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="s"&gt;"NO"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you are familiar with other language’s ternary operator this will take some time to get used to.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;Tip 10: Cool LAMBDAs ️⋋&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Lambdas are great tool for doing some quick anonymous functions. this gives us a way to avoid one of the Programmer’s most dreadful decisions i.e. NAMING THINGS . they are generally used for one use mainly as a function to another functions.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;square_lambda&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;
&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s"&gt;"Lambda function: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;square_lambda&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# Lambda function: 16
&lt;/span&gt;
&lt;span class="c1"&gt;# main use
&lt;/span&gt;&lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;list_&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_5Xbg0hh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/krmhpoezc6qn9ztkya9r.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_5Xbg0hh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/krmhpoezc6qn9ztkya9r.gif" alt="phew" width="398" height="498"&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;p&gt;This Is just the beginning Intro to Python Magic There are More Magics to reveal. Python with a symphony of possibilities, an invitation to dream big and transform the world, one line of Pythonic brilliance at a time.&lt;/p&gt;

&lt;p&gt;This is My first Blog I you Like It please share to spread Knowledge. And If you have any pointers or feedback feel free to comment it.&lt;/p&gt;

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