<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Theekshana Chamodhya</title>
    <description>The latest articles on Forem by Theekshana Chamodhya (@theekshana).</description>
    <link>https://forem.com/theekshana</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%2F2324965%2Ffe298454-b882-434b-b4fc-6adaa5161e73.png</url>
      <title>Forem: Theekshana Chamodhya</title>
      <link>https://forem.com/theekshana</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/theekshana"/>
    <language>en</language>
    <item>
      <title>How I'm Building a POS System with Electron ,Next.js And Express</title>
      <dc:creator>Theekshana Chamodhya</dc:creator>
      <pubDate>Tue, 22 Jul 2025 15:31:54 +0000</pubDate>
      <link>https://forem.com/theekshana/how-im-building-a-pos-system-with-electron-nextjs-and-express-54gp</link>
      <guid>https://forem.com/theekshana/how-im-building-a-pos-system-with-electron-nextjs-and-express-54gp</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa54dwzlycsoqepb8b4gh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa54dwzlycsoqepb8b4gh.png" alt=" " width="800" height="607"&gt;&lt;/a&gt;&amp;gt; "I just wanted to build a simple POS system… Now my terminal has trust issues and my PC thinks it's a full-time cashier." 😅&lt;/p&gt;

&lt;h2&gt;
  
  
  👋 Hey there, dev fam!
&lt;/h2&gt;

&lt;p&gt;Welcome to Part #1 of my dev series, where I take you behind the scenes of how I'm building a modern, beautiful, cross-platform POS system from scratch - using some of the hottest tech in the JavaScript world. 🛠️🔥&lt;br&gt;
I'm calling it Ineero POS.&lt;/p&gt;

&lt;p&gt;Because it sounds like a startup that could raise $10M… but it's just me in my room, drinking tea and fighting bugs. ☕💻&lt;/p&gt;

&lt;h2&gt;
  
  
  💡 Why a POS System?
&lt;/h2&gt;

&lt;p&gt;Because I noticed a lot of small businesses still use clunky, outdated systems from the Windows XP era 🪦.&lt;/p&gt;

&lt;p&gt; I thought… "Why not build a sleek, modern POS that actually feels nice to use?"&lt;/p&gt;

&lt;p&gt;Plus, it's a great way to flex my ✌️full-stack✌️ skills - while creating something useful and sellable.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 The Tech Stack - aka The Avengers of Dev Tools
&lt;/h2&gt;

&lt;p&gt;Let's break it down:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🖥️ Frontend&lt;/strong&gt;&lt;br&gt;
Next.js - Pages, routing, SSR… and hot reload that gives me life 🔥&lt;br&gt;
Tailwind CSS - Like having a personal designer that works for free&lt;br&gt;
ShadCN/UI - Beautiful UI components straight out of a dev's dream&lt;br&gt;
Framer Motion - So smooth, even your grandma will notice the animations 😎&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🧠 Backend&lt;/strong&gt;&lt;br&gt;
Express.js - Our server ninja, handling APIs like a pro&lt;br&gt;
MongoDB + Mongoose - Flexible, fast, and perfect for storing product data, users, sales, etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🖥️ Desktop App Magic&lt;/strong&gt;&lt;br&gt;
Electron - Wrap the whole thing into a desktop app. Because we fancy 💼&lt;br&gt;
Electron Builder - For packaging and auto-updating (yes, it updates itself - no floppy disks here)&lt;br&gt;
dotenv - Keepin' secrets like a pro hacker 😎&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;⚙️ Dev Tools&lt;/strong&gt;&lt;br&gt;
pnpm - Fast, light, and doesn't eat your node_modules for breakfast&lt;br&gt;
dotenv-cli - Run scripts with environment variables like a boss&lt;br&gt;
GitHub Releases - Because we want auto-updates like real SaaS pros&lt;/p&gt;

&lt;h2&gt;
  
  
  🛠️ First Steps - Setting Up the Beast
&lt;/h2&gt;

&lt;p&gt;Started with a Next.js + Tailwind dashboard.&lt;br&gt;
Created the Express.js backend with MongoDB connection.&lt;br&gt;
Integrated Electron and made it all run locally in one command. (Which worked after only 48 hours of crying and emotionally depending on AI like it's my co-founder.)&lt;br&gt;
Set up auto-updates using Electron Builder + GitHub Releases - now users can download it and it updates without manual install. Yup, like magic. &lt;/p&gt;

&lt;h2&gt;
  
  
  🎯 What's Next?
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;- Add product management&lt;/li&gt;
&lt;li&gt;- Build a POS terminal UI&lt;/li&gt;
&lt;li&gt;- Start selling it to real businesses&lt;/li&gt;
&lt;li&gt;- Fix the 17 bugs I just created while writing this post&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  💬 Wanna Follow the Journey?
&lt;/h2&gt;

&lt;p&gt;This is just &lt;strong&gt;Part 1&lt;/strong&gt;. I'll be dropping more updates as I build out the entire system - including sales reports, barcode scanners, invoice printing and all that good stuff 💸&lt;br&gt;
If you're a dev, solopreneur, or just someone who loves building cool stuff - follow along!&lt;/p&gt;

&lt;h2&gt;
  
  
  👨‍💻 About Me
&lt;/h2&gt;

&lt;p&gt;I'm Theekshana, a self-taught developer trying to go from 💰 $0 to $1M by building real SaaS, side-projects and AI tools.&lt;br&gt;
 If that sounds fun to you - follow my journey! 🚀&lt;/p&gt;

&lt;p&gt;💬 Let's Talk&lt;br&gt;
Got suggestions? Feedback? Or just wanna say "Hey that's cool"?&lt;/p&gt;

&lt;p&gt;Drop a comment or connect with me on &lt;a href="https://www.linkedin.com/in/theekshana-chamodhya" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; or &lt;a href="https://github.com/TheekshanaCN" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; - I don't bite&lt;/p&gt;

&lt;p&gt;Stay tuned for Part #2: "Building the POS Terminal UI + Handling Sales"&lt;br&gt;
Thanks for reading, and happy coding! 💻✨&lt;br&gt;
 - Theekshana&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>express</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>The Python Library You’ve Probably Never Heard Of (But Will Change Your Life) 🐍✨</title>
      <dc:creator>Theekshana Chamodhya</dc:creator>
      <pubDate>Wed, 05 Mar 2025 18:01:06 +0000</pubDate>
      <link>https://forem.com/theekshana/the-python-library-youve-probably-never-heard-of-but-will-change-your-life-277b</link>
      <guid>https://forem.com/theekshana/the-python-library-youve-probably-never-heard-of-but-will-change-your-life-277b</guid>
      <description>&lt;h2&gt;
  
  
  Ever Heard of rich? No, Not Money, But Your Console’s Glow-Up! 💎💻
&lt;/h2&gt;

&lt;p&gt;Alright, fellow Pythonistas, let’s talk about boring terminal outputs. You know the ones — plain text, no colors, no pizzazz, just cold, lifeless data. 😴&lt;/p&gt;

&lt;p&gt;But what if I told you there’s a way to turn your console into a visual masterpiece without breaking a sweat? Meet rich, the Python library that makes your terminal look like it just got a fresh UI upgrade. 🎨🚀&lt;/p&gt;

&lt;h2&gt;
  
  
  Why rich? Because Your Console Deserves Swag 😎
&lt;/h2&gt;

&lt;p&gt;Most Python devs are still using print(), but let’s be real…&lt;/p&gt;

&lt;p&gt;👉 print() is basic. 👉 print() is dull. 👉 print() is so last season. 🙃&lt;/p&gt;

&lt;p&gt;With rich, you can add colors, tables, progress bars, markdown, and even emojis! 🤯 Imagine debugging like a hacker in a sci-fi movie! (Cue dramatic music 🎵)&lt;/p&gt;

&lt;h2&gt;
  
  
  Show Me the Magic! 🔮
&lt;/h2&gt;

&lt;p&gt;1️⃣ Colored Text (Because Monochrome Is Dead)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from rich import print
print("[bold red]Error:[/] Something went wrong! 😱")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output: 🚨 Error&lt;/strong&gt;: Something went wrong! 😱 (but in a bold, red, attention-grabbing way!)&lt;/p&gt;

&lt;h2&gt;
  
  
  2️⃣ Sexy Tables for Data
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from rich.console import Console
from rich.table import Table

console = Console()
table = Table(title="Leaderboard 🏆")
table.add_column("Rank", style="cyan")
table.add_column("Name", style="magenta")
table.add_column("Score", justify="right", style="green")

table.add_row("1", "Alice", "9999")
table.add_row("2", "Bob", "8765")
table.add_row("3", "Charlie", "7500")
console.print(table)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No more ugly print() statements for your data. Boss mode activated. 🚀&lt;/p&gt;

&lt;h2&gt;
  
  
  3️⃣ Progress Bars (Because We Love Watching Things Load 😆)
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from rich.progress import track
import time

def work():
    for _ in track(range(10), description="Processing... 🛠️"):
        time.sleep(0.5)
work()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Suddenly, waiting for loops &lt;strong&gt;feels productive.&lt;/strong&gt; 😂&lt;/p&gt;

&lt;h2&gt;
  
  
  So, Why Aren’t You Using rich Yet? 🤨
&lt;/h2&gt;

&lt;p&gt;Seriously, rich is a zero-effort upgrade for your Python workflow. Just install it and flex on your friends. 🤩&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;Then, start making your console pop, glow, and shine like never before. 🚀🔥&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts 🧠💡
&lt;/h2&gt;

&lt;p&gt;If you’ve read this far, here’s your challenge:&lt;/p&gt;

&lt;p&gt;✅ Drop a comment below with your favorite rich feature. ✅ Share this article with that one friend still using print() like it's 1999. 😆 ✅ Follow me for more underrated Python gems!&lt;/p&gt;

&lt;p&gt;Let’s make coding fun again! 🚀🐍💖&lt;/p&gt;

</description>
      <category>programming</category>
      <category>python</category>
      <category>ritch</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>💡 10 Python One-Liners That Will Make Your Coding Life So Much Easier (And Way Cooler) 😎</title>
      <dc:creator>Theekshana Chamodhya</dc:creator>
      <pubDate>Fri, 27 Dec 2024 14:51:51 +0000</pubDate>
      <link>https://forem.com/theekshana/10-python-one-liners-that-will-make-your-coding-life-so-much-easier-and-way-cooler-5a39</link>
      <guid>https://forem.com/theekshana/10-python-one-liners-that-will-make-your-coding-life-so-much-easier-and-way-cooler-5a39</guid>
      <description>&lt;p&gt;**&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction:
&lt;/h2&gt;

&lt;p&gt;**&lt;br&gt;
Let me ask you a question: have you ever looked at your Python code and thought, “&lt;em&gt;There has to be a faster way to do this?&lt;/em&gt;” Well, you’re in luck! These Python one-liners are the shortcuts you’ve been dreaming of. Imagine turning long, messy code into clean, simple one-liners — and looking like a coding genius while doing it. 🧑‍💻&lt;/p&gt;

&lt;p&gt;These tricks won’t just save you time ⏳, they’ll make your code cooler, smoother, and way more fun to write. Ready to impress your friends (and yourself) with some Python magic? ✨ Let’s dive in!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.🔄 Reverse a List with Just One Line:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;reversed_list = my_list[::-1]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ever needed to flip a list around? Instead of writing a whole loop, just use this one-liner and you’re done. It’s like hitting “reverse” but for lists! 🌀&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it’s cool:&lt;/strong&gt;&lt;br&gt;
Less typing, more coding like a pro. 🤓&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. 📜 Flatten a List of Lists (Goodbye Loops!):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;flat_list = [item for sublist in my_list for item in sublist]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Got a list of lists? Turn it into one smooth list with just a single line of code. No more writing loops that make your head hurt. 💆‍♂️&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it’s cool:&lt;/strong&gt;&lt;br&gt;
It’s like flattening a pillow — super satisfying and quick! 🛏️&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. 🔄 Swap Two Variables in One Line:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;x, y = y, x
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Need to switch two variables around? Instead of using an extra “temp” variable, do it all in one go with this simple trick.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it’s cool:&lt;/strong&gt;&lt;br&gt;
You’ll feel like a coding ninja when you pull this off. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. 👀 Check if Everything in a List Is the Same:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;all_equal = len(set(my_list)) == 1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Want to see if all the items in your list are the same? This one-liner uses sets to tell you the answer in a snap. ⚡&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it’s cool:&lt;/strong&gt;&lt;br&gt;
Because who doesn’t love a shortcut for something you normally overthink? 🧠&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. 🏆 Find the Most Common Item in a List:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;most_common = max(set(my_list), key=my_list.count)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Need to figure out which item appears the most in a list? Let this one-liner do the hard work for you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it’s cool:&lt;/strong&gt;&lt;br&gt;
It’s like having a detective 🕵️‍♂️ in your code, but much faster!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. 📂 Read a File in One Line (No Loops Needed):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;lines = [line.strip() for line in open('file.txt')]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you’re reading files in Python, this one-liner will clean up each line (removing extra spaces) in a single shot. 🎯&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it’s cool:&lt;/strong&gt;&lt;br&gt;
It’s simple, fast, and doesn’t waste time. Like the fast-food version of file handling. 🍔&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. 🔗 Turn a List Into a String (Yes, That’s a Thing):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;my_str = ''.join(my_list)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Want to merge all the items in a list into a single string? This one-liner does just that — no loops required! 🌀&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it’s cool:&lt;/strong&gt;&lt;br&gt;
It’s like magic 🧙‍♂️ for lists. One line, and boom, you’ve got your string.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;8. 🤓 Write Fibonacci Sequence in ONE Line:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;fib = lambda n: reduce(lambda x, _: x + [x[-1] + x[-2]], range(n-2), [0, 1])
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is for when you want to impress people: write a whole Fibonacci sequence in just one line of code. It’s math, but with a dash of cool. 🧮&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it’s cool:&lt;/strong&gt;&lt;br&gt;
Because doing something complicated in one line will make you feel like a coding wizard. 🧙‍♀️&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;9. 💬 Check if a String Is a Palindrome (Reads the Same Forward and Backward):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;is_palindrome = lambda s: s == s[::-1]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Want to know if a word or phrase reads the same forwards and backwards? This one-liner checks it for you in the blink of an eye. 👁️&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it’s cool:&lt;/strong&gt;&lt;br&gt;
It’s like a quick mirror test 🪞 for strings. Is your string a palindrome? Now you’ll know!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;10. 🔗 Merge Two Dictionaries in One Line:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;merged_dict = {**dict1, **dict2}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Merging dictionaries has never been easier. This one-liner combines two dictionaries into one, no mess, no fuss. ✌️&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it’s cool:&lt;/strong&gt;&lt;br&gt;
It’s the dictionary version of teamwork: two become one, and everyone wins. 🏆&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion:&lt;/strong&gt;&lt;br&gt;
And there you have it — 10 Python one-liners that will not only make your code cleaner but also way more fun to write. The best part? You’ll feel like a coding superhero 🦸‍♂️ when you replace your old, clunky loops with these slick tricks.&lt;/p&gt;

&lt;p&gt;If you enjoyed these tips, be sure to follow me for more Python shortcuts and coding fun! And don’t forget to share this with your friends so they can stop wasting time on loops too! 💻✨&lt;/p&gt;

</description>
      <category>programming</category>
      <category>tutorial</category>
      <category>python</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Turns Any Text into Speech using PYTHON</title>
      <dc:creator>Theekshana Chamodhya</dc:creator>
      <pubDate>Fri, 22 Nov 2024 05:31:40 +0000</pubDate>
      <link>https://forem.com/theekshana/how-i-built-a-python-script-that-turns-any-text-into-speech-and-you-can-too-in-5-minutes-2mo7</link>
      <guid>https://forem.com/theekshana/how-i-built-a-python-script-that-turns-any-text-into-speech-and-you-can-too-in-5-minutes-2mo7</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Are you a lazy developer like me who loves automating everything and taking shortcuts? Well, you’re in for a treat! Imagine having Python do all the talking for you — literally. Whether you’re too lazy to read long articles or you want to build a virtual assistant to whisper sweet motivational quotes, I’ve got you covered. Today, I’m showing you how I built a Python script that turns any text into speech using the pyttsx3 library. And guess what? It’ll take less than 5 minutes!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Oh, and if you'd rather see this in action, I made a quick YouTube video walking through this exact process. &lt;a href="https://youtu.be/Fz-zBy5DvYU?si=wMgElyMybw_n588j" rel="noopener noreferrer"&gt;Check it out here!&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Text-to-Speech Is So Useful:
&lt;/h2&gt;

&lt;p&gt;Text-to-speech technology has a wide range of applications, from improving accessibility for visually impaired users to generating voiceovers for content creators. You can even use it to create voice-enabled apps or personal assistants that can “talk” to you. And guess what? You don’t need to be a coding genius to make this work. By the end of this post, you’ll have your very own text-to-speech Python script that you can customize however you like!&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Install &lt;code&gt;pyttsx3&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;First, we need to install the pyttsx3 library, which supports both offline and cross-platform speech synthesis.&lt;/p&gt;

&lt;p&gt;Run this command in your terminal:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 2: Import the Library and Initialize It
&lt;/h3&gt;

&lt;p&gt;Now, let’s import &lt;code&gt;pyttsx3&lt;/code&gt; and initialize the text-to-speech engine in our Python script.&lt;br&gt;
&lt;/p&gt;

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

# Create the engine that will do the talking (so we don’t have to)
engine = pyttsx3.init()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 3: Set Voice Properties (Optional)
&lt;/h3&gt;

&lt;p&gt;You can customize the voice, rate, and volume of the speech. Here’s how:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Let's slow it down a bit. Talking too fast is exhausting.
engine.setProperty('rate', 150)  # Default is 200

# Maximum volume because we like things LOUD.
engine.setProperty('volume', 1.0)

# # Changing voice to female (because variety is the spice of life)
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[1].id)  # voices[0] is male, voices[1] is female
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 4: Convert Text to Speech
&lt;/h3&gt;

&lt;p&gt;Now, let’s make the magic happen. You can input any text and convert it to speech with this simple command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Give Python something ridiculous to say
text = "Hey you, stop scrolling and get back to work... Just kidding, you're doing great!"
engine.say(text)

# Tell the engine to actually do its job
engine.runAndWait()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Boom!&lt;/strong&gt; Your computer is talking now. You have successfully outsourced your reading to a robot. Congratulations, fellow lazy developer!&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 5: (Optional) Save Speech to an Audio File
&lt;/h3&gt;

&lt;p&gt;Want to save the generated speech as an audio file? You can do that too!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Save the speech to a file for when you need a pep talk later
engine.save_to_file(text, 'output_audio.mp3')
engine.runAndWait()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Use Cases You Never Knew You Needed:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Audiobooks for Procrastinators&lt;/strong&gt;: Why read when you can have Python read to you?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Daily Affirmations&lt;/strong&gt;: Set Python to tell you you’re a genius every morning.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Office Shenanigans&lt;/strong&gt;: Make it say something funny and prank your coworkers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Procrastination App&lt;/strong&gt;: Every time you try to slack off, this script reads you a motivational quote.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Final Thoughts:
&lt;/h2&gt;

&lt;p&gt;And there you have it! In just a few lazy minutes, you’ve turned Python into your personal narrator. Whether you’re using it to turn articles into audiobooks or just have it remind you how awesome you are, this script has endless possibilities. And it’s super customizable, so feel free to tweak it, add some flair, and go wild!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;If you’re lazy like me and want the complete code ready to go, click &lt;a href="https://theekshana.beehiiv.com/" rel="noopener noreferrer"&gt;here&lt;/a&gt; to get it directly from my Beehive newsletter.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Call to Action:
&lt;/h2&gt;

&lt;p&gt;Enjoyed this lazy coding tutorial? Share it with your friends, and be sure to subscribe to my newsletter for more Python hacks and shortcuts. Oh, and let me know in the comments what fun things you’ve made Python say!&lt;/p&gt;

</description>
      <category>python</category>
      <category>tts</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>The 5 Most Underrated Python Libraries You Should Start Using Right Now</title>
      <dc:creator>Theekshana Chamodhya</dc:creator>
      <pubDate>Sat, 02 Nov 2024 02:03:18 +0000</pubDate>
      <link>https://forem.com/theekshana/the-5-most-underrated-python-libraries-you-should-start-using-right-now-3fn4</link>
      <guid>https://forem.com/theekshana/the-5-most-underrated-python-libraries-you-should-start-using-right-now-3fn4</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwmoo65u65mxk3cyg6bmb.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwmoo65u65mxk3cyg6bmb.jpeg" alt="Image description" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  “Wait… there are Python libraries other than Pandas and NumPy?”
&lt;/h2&gt;

&lt;p&gt;If you just thought that, welcome to the club! Sure, Pandas and NumPy are great, but there’s a whole world of underrated Python libraries that can make you look like a coding wizard 🧙‍♂️ (my favorite kind of work, TBH).&lt;/p&gt;

&lt;p&gt;In this post, I’m going to introduce you to 5 hidden gems in the Python ecosystem. Use these libraries and people will think you’re some kind of Python sorcerer (don’t worry, I won’t tell them how easy it was).&lt;/p&gt;

&lt;p&gt;And if you’re a lazy developer (like me), you can skip the research and just sign up for my &lt;a href="https://theekshana.beehiiv.com" rel="noopener noreferrer"&gt;Beehive newsletter&lt;/a&gt;(Its Completely Free ) where I regularly drop code, hacks, and life-saving libraries straight to your inbox. No spam, just code.&lt;/p&gt;

&lt;p&gt;Alright, let’s get to it!&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Rich: Beautiful Console Output, Easy Peasy
&lt;/h2&gt;

&lt;p&gt;You ever been jealous of those fancy, colorful terminal outputs you see online? No? Well, now you will be.&lt;/p&gt;

&lt;p&gt;With &lt;a href="https://rich.readthedocs.io/en/stable/" rel="noopener noreferrer"&gt;Rich&lt;/a&gt;, you can add pretty colors, progress bars, and even Markdown support to your terminal output in just a few lines of code. It’s basically like giving your terminal a glow-up.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from rich.console import Console
console = Console()

# Welcome to the world of fancy console output
console.print("Hello, [bold magenta]World![/bold magenta] 🌍")

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Why You’ll Love It&lt;/strong&gt;: Because plain text is boring, and now you can flex on your coworkers with a terminal that looks like it’s auditioning for a sci-fi movie. 🎨&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Typer: Making CLI Tools Without Wanting to Cry
&lt;/h2&gt;

&lt;p&gt;Building command-line interfaces (CLI) in Python can sometimes feel like you’re in a battle with your keyboard. Enter &lt;a href="https://typer.tiangolo.com/" rel="noopener noreferrer"&gt;Typer&lt;/a&gt;, the library that makes CLI tools so easy you’ll wonder if you’re cheating.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import typer
# Behold! The world's simplest CLI
def greet(name: str):
    print(f"Hello, {name}! 👋")
if __name__ == "__main__":
   # Trust me, this one line is about to blow your mind
    typer.run(greet)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Why You’ll Love It:&lt;/strong&gt; One line to create a fully functional CLI app. It’s like magic, but without the top hat and rabbits. Also, you get to say things like “I made a CLI tool” at parties. 🚀&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Arrow: Timezones Without Losing Your Mind
&lt;/h2&gt;

&lt;p&gt;Working with dates and timezones in Python is like trying to assemble IKEA furniture — without the instructions. &lt;a href="https://arrow.readthedocs.io/en/latest/" rel="noopener noreferrer"&gt;Arrow &lt;/a&gt;is here to save your sanity.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import arrow
now = arrow.now()

# Because we're too fancy for basic datetime
print(now.shift(hours=+1).format('YYYY-MM-DD HH:mm:ss'))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Why You’ll Love It&lt;/strong&gt;: No more needing to decipher ancient timezone scrolls. Now you can manipulate dates and times like a pro while pretending you totally understand timezones. ⏰&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Pydantic: Data Validation Done Right
&lt;/h2&gt;

&lt;p&gt;Have you ever tried to validate data manually? No? Well, you’re lucky. It’s a headache. But with &lt;a href="https://docs.pydantic.dev/latest/" rel="noopener noreferrer"&gt;Pydantic&lt;/a&gt;, data validation becomes fun (yes, I just said that).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from pydantic import BaseModel

# Meet User, our favorite model (not the catwalk kind)
class User(BaseModel):
    name: str
    age: int

# Alice is valid, no more typos, hooray!
user = User(name="Alice", age=30)
print(user)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Why You’ll Love It&lt;/strong&gt;: Data validation doesn’t have to make you want to throw your laptop out the window. With Pydantic, it’s like having a built-in proofreader for your code. 💼&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Loguru: Logging Without the Setup Headache
&lt;/h2&gt;

&lt;p&gt;Logging in Python can be… uh, tedious. Enter &lt;a href="https://loguru.readthedocs.io/en/stable/" rel="noopener noreferrer"&gt;Loguru&lt;/a&gt;, which makes setting up logs so easy that even your dog could do it (probably).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from loguru import logger

# Look at me, logging like a pro in ONE line!
logger.info("This is an info message. 📝")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Why You’ll Love It&lt;/strong&gt;: One line, no setup, and now your code will tell you what’s going wrong without sending you into a tailspin. It’s logging without the emotional breakdown. 😢&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion: Go Forth and Code (But Use These Libraries)
&lt;/h2&gt;

&lt;p&gt;There you have it — 5 Python libraries that are seriously underrated and will save you hours of work. Try them out, and soon you’ll be dropping cool one-liners like, “&lt;em&gt;Oh yeah, I built a CLI tool with Typer&lt;/em&gt;” or “&lt;em&gt;You’re still using basic logs? I switched to Loguru.&lt;/em&gt;”&lt;/p&gt;

&lt;p&gt;And if you’re a lazy developer (like me), don’t forget to sign up for my &lt;a href="https://theekshana.beehiiv.com" rel="noopener noreferrer"&gt;Beehive newsletter&lt;/a&gt;(Its Completely Free ). I’ll deliver more hidden Python gems, tips, and tricks right to your inbox so you can spend less time Googling and more time looking like a genius. 💻✨&lt;/p&gt;

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

&lt;h2&gt;
  
  
  FAQs About Underrated Python Libraries
&lt;/h2&gt;

&lt;p&gt;Why should I use these lesser-known Python libraries instead of more popular ones?&lt;br&gt;
While popular libraries like Pandas and NumPy are fantastic, these underrated libraries provide more specialized functionality that can save you time and effort in specific areas like terminal output, logging, and CLI creation.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Can I use these libraries in any Python project?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Yes! These libraries are highly versatile and can be used across a wide range of Python projects, from small scripts to large-scale applications. They integrate seamlessly with other libraries and frameworks too.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Is Rich really going to make my terminal look pretty, or is it just hype?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Rich isn’t just hype! It genuinely transforms your terminal output with colors, formatting, and progress bars. It’s like the makeup artist of Python libraries — it’ll make your terminal look fabulous without any extra effort.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;I’m new to Python. Will these libraries be too advanced for me?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Not at all! Each of these libraries was chosen because they simplify tasks, even for beginners. They cut down the complexity and make coding more fun and intuitive. You’ll look like a pro in no time!&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What’s the easiest way to get started with these libraries?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You can find code snippets and documentation on each library’s website, or if you’re feeling extra lazy (like me), just sign up for my newsletter,(Its Completely Free )where I’ll send you tips, tricks, and pre-written code directly to your inbox. No need to spend hours Googling!&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Do these libraries work well together?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Absolutely! These libraries can be used independently or together in larger projects. For example, you can use Rich for output, Loguru for logging, and Typer for your command-line interfaces, all in one project.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;How do these libraries improve my productivity as a developer?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;They remove a lot of boilerplate code and allow you to focus on the core logic of your application. Whether it’s handling timezones, creating CLI tools, or logging, these libraries take care of the repetitive stuff, giving you more time to work on the fun parts.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;How can I learn more about cool Python libraries like these?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Easy! Subscribe to my Beehive newsletter (Its Completely Free ), where I regularly drop hidden Python gems, tips, and ready-to-use code. You’ll be the first to know about these tools before they go mainstream!&lt;/p&gt;

</description>
      <category>python</category>
      <category>beginners</category>
      <category>opensource</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
