<?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: Rajesh Joshi</title>
    <description>The latest articles on DEV Community by Rajesh Joshi (@rajeshjoshi-dev).</description>
    <link>https://dev.to/rajeshjoshi-dev</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F300092%2Feb0b7ac1-3adc-4a6d-980b-1c199276c5e4.jpg</url>
      <title>DEV Community: Rajesh Joshi</title>
      <link>https://dev.to/rajeshjoshi-dev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rajeshjoshi-dev"/>
    <language>en</language>
    <item>
      <title>Bare Metal vs VM vs Containers? 🤔</title>
      <dc:creator>Rajesh Joshi</dc:creator>
      <pubDate>Wed, 04 Sep 2024 04:48:24 +0000</pubDate>
      <link>https://dev.to/rajeshjoshi-dev/bare-metal-vs-vm-vs-containers-3i24</link>
      <guid>https://dev.to/rajeshjoshi-dev/bare-metal-vs-vm-vs-containers-3i24</guid>
      <description>&lt;p&gt;Imagine you want to rent a house. You have three options:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Bare Metal (Owning the House):&lt;/strong&gt; You buy the entire house. You have full control over everything, from the foundation to the roof.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Virtual Machine (Renting the Whole House):&lt;/strong&gt; You rent the entire house. You can use it as you like, but you don't own it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Container (Renting a Room):&lt;/strong&gt; You rent a single room within the house. You have limited control, but it's more affordable and flexible.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Let's apply this to technology:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Bare Metal:&lt;/strong&gt; A physical server with its own hardware (CPU, RAM, storage). It offers maximum control and performance but is expensive to manage and scale.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Virtual Machine (VM):&lt;/strong&gt; Software that creates a virtual environment on a physical server. Each VM runs on top of a &lt;strong&gt;hypervisor&lt;/strong&gt;, which is a piece of software that emulates the hardware of a computer. Multiple VMs can run on the same server, sharing resources. VMs are more flexible and cost-effective than bare metal, but they can be less performant.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Container:&lt;/strong&gt; A lightweight unit of software that packages an application and its dependencies. Each container runs on top of a container engine, which is a piece of software that emulates the operating system of a computer. Containers are smaller, faster, and more portable than VMs. They are ideal for microservices architecture and cloud-native applications.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Which one to choose?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Bare Metal:&lt;/strong&gt; If you need maximum control, performance, and security, bare metal is the way to go.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;VM:&lt;/strong&gt; If you need flexibility, cost-effectiveness, and isolation, VMs are a good option.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Containers:&lt;/strong&gt; If you need portability, scalability, and efficiency, containers are the best choice.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Follow for more.&lt;/p&gt;

&lt;p&gt;Happy Coding 🤓&lt;/p&gt;

</description>
      <category>docker</category>
      <category>backend</category>
      <category>python</category>
      <category>programming</category>
    </item>
    <item>
      <title>Play Game 🎮 Earn Coupon | Wix Studio eCommerce Engagement 📈 Tool</title>
      <dc:creator>Rajesh Joshi</dc:creator>
      <pubDate>Mon, 15 Jul 2024 02:58:36 +0000</pubDate>
      <link>https://dev.to/rajeshjoshi-dev/play-game-earn-coupon-wix-studio-ecommerce-engagement-tool-29l0</link>
      <guid>https://dev.to/rajeshjoshi-dev/play-game-earn-coupon-wix-studio-ecommerce-engagement-tool-29l0</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/wix"&gt;Wix Studio Challenge &lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;A game to increase user engagement 📈 on your eCommerce website. By allowing them to play a crazy math 🧠 game and win 🎖️ Coupons.&lt;/p&gt;




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

&lt;p&gt;🔴 Live Demo: &lt;a href="https://rajeshj3.wixstudio.io/ecom" rel="noopener noreferrer"&gt;https://rajeshj3.wixstudio.io/ecom&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;center&gt;Screens&lt;/center&gt;&lt;/th&gt;
&lt;th&gt;&lt;center&gt;Zoomed Component&lt;/center&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;img alt="" 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%2Flzalzvcjfv7sfow9cm8d.png" width="800" height="433"&gt; &lt;center&gt;&lt;small&gt;Landing Page&lt;/small&gt;&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;&lt;img alt="" 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%2Fmalkqltwnbwod4mr4udm.png" width="720" height="460"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;img alt="" 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%2Fsz9qo2kn75z10wudoh0c.png" width="800" height="433"&gt; &lt;center&gt;&lt;small&gt;Game Preview&lt;/small&gt;&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;&lt;img alt="" 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%2Fgdccbxl0gfpxuwv3ltdj.png" width="800" height="505"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;img alt="" 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%2Fhf46qlvur4wjlkg3le10.png" width="800" height="435"&gt; &lt;center&gt;&lt;small&gt;Game Screen&lt;/small&gt;&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;&lt;img alt="" 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%2F7npzwv9g5cj7bwirnmh1.png" width="800" height="500"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;img alt="" 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%2Fpydx11uo309x0fm2wd8x.png" width="800" height="434"&gt; &lt;center&gt;&lt;small&gt;Coupon Screen&lt;/small&gt;&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;&lt;img alt="" 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%2Foxpps1woeodvh9le3c4k.png" width="800" height="466"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;img alt="" 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%2Fqj4wi925riovgq0956qw.png" width="800" height="432"&gt; &lt;center&gt;&lt;small&gt;Cart Screen&lt;/small&gt;&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;&lt;img alt="" 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%2F02sf54mpohgih70xgua5.png" width="634" height="914"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Go to &lt;a href="https://rajeshj3.wixstudio.io/ecom" rel="noopener noreferrer"&gt;https://rajeshj3.wixstudio.io/ecom&lt;/a&gt; 🔗&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You'll see a button &lt;strong&gt;"Play and Get Discount"&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click on that button to play the game. ▶️ &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Now, you have to solve the provided simple math equation. 🧠&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Once you solve the equation, you'll earn a &lt;strong&gt;20% off Coupon Code&lt;/strong&gt;. 🤑&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add items to your cart and apply the coupon. 🤩&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enjoy! 🚀&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;Wix provides amazing &lt;a href="https://dev.wix.com/docs/velo/articles/api-overview/introduction" rel="noopener noreferrer"&gt;Velo documentation&lt;/a&gt;. With this project, I explored Wix Studio for the 1st time, and I must say it's pretty straight forward to get started with.&lt;/p&gt;

&lt;h3&gt;
  
  
  APIs and Libraries I utilize?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;wix-marketing.v2&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Used &lt;code&gt;createCoupon&lt;/code&gt; API to generate a new and unique coupon for the winner, this coupon is valid for next 24 hours only. Utilized &lt;code&gt;getCoupon&lt;/code&gt; API to retrieve the newly created coupon to show on the UI.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;wix-auth&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To create and retrieve a coupon, the requesting user must have necessary permissions. But, in case of an anonymous user, one needs to elevate the request. For this, I used the &lt;code&gt;elevate&lt;/code&gt; API with &lt;code&gt;Anyone&lt;/code&gt; permission.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;wix-web-module&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Used &lt;code&gt;Permissions&lt;/code&gt; API from wix-web-module to created and retrieve coupons.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Code on GitHub
&lt;/h3&gt;

&lt;p&gt;Core logic for the game lives in &lt;code&gt;src/pages/masterPage.js&lt;/code&gt;.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/rajeshjoshi-dev" rel="noopener noreferrer"&gt;
        rajeshjoshi-dev
      &lt;/a&gt; / &lt;a href="https://github.com/rajeshjoshi-dev/wix-ecom" rel="noopener noreferrer"&gt;
        wix-ecom
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &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;Git Integration &amp;amp; Wix CLI &lt;a rel="noopener noreferrer nofollow" href="https://user-images.githubusercontent.com/89579857/185785022-cab37bf5-26be-4f11-85f0-1fac63c07d3b.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fuser-images.githubusercontent.com%2F89579857%2F185785022-cab37bf5-26be-4f11-85f0-1fac63c07d3b.png"&gt;&lt;/a&gt;
&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;This repo is part of Git Integration &amp;amp; Wix CLI, a set of tools that allows you to write, test, and publish code for your Wix site locally on your computer.&lt;/p&gt;
&lt;p&gt;Connect your site to GitHub, develop in your favorite IDE, test your code in real time, and publish your site from the command line.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Set up this repository in your IDE&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;This repo is connected to a Wix site. That site tracks this repo's default branch. Any code committed and pushed to that branch from your local IDE appears on the site.&lt;/p&gt;
&lt;p&gt;Before getting started, make sure you have the following things installed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://git-scm.com/download" rel="nofollow noopener noreferrer"&gt;Git&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://nodejs.org/en/download/" rel="nofollow noopener noreferrer"&gt;Node&lt;/a&gt;, version 14.8 or later.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://docs.npmjs.com/downloading-and-installing-node-js-and-npm" rel="nofollow noopener noreferrer"&gt;npm&lt;/a&gt; or &lt;a href="https://yarnpkg.com/getting-started/install" rel="nofollow noopener noreferrer"&gt;yarn&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;An SSH key &lt;a href="https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account" rel="noopener noreferrer"&gt;added to your GitHub account&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To set up your local environment and start coding locally, do the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open your terminal and navigate to where you want…&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/rajeshjoshi-dev/wix-ecom" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;





&lt;h2&gt;
  
  
  Follow Me
&lt;/h2&gt;

&lt;p&gt;Twitter &lt;a href="https://twitter.com/rajesh_j3" rel="noopener noreferrer"&gt;@rajesh_j3&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;LinkedIn &lt;a href="https://www.linkedin.com/in/rajeshj3/" rel="noopener noreferrer"&gt;@rajeshj3&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Thanks,&lt;/p&gt;

&lt;p&gt;Happy Coding 👨‍💻&lt;/p&gt;




</description>
      <category>devchallenge</category>
      <category>wixstudiochallenge</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
    <item>
      <title>A Step-by-Step Guide to Launching Your Profitable Micro-SaaS in 2024</title>
      <dc:creator>Rajesh Joshi</dc:creator>
      <pubDate>Tue, 09 Jan 2024 14:36:08 +0000</pubDate>
      <link>https://dev.to/rajeshjoshi-dev/a-step-by-step-guide-to-launching-your-profitable-micro-saas-in-2024-2ffh</link>
      <guid>https://dev.to/rajeshjoshi-dev/a-step-by-step-guide-to-launching-your-profitable-micro-saas-in-2024-2ffh</guid>
      <description>&lt;p&gt;In the ever-evolving landscape of the tech industry, launching your micro-saas can be a game-changer, especially for indie hackers and solopreneurs. As we step into 2024, here's a comprehensive guide to help you navigate the intricacies of creating and thriving with your Micro-SaaS venture.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Identifying Your Niche: The Cornerstone of Success
&lt;/h2&gt;

&lt;p&gt;Before diving into the world of Micro-SaaS, meticulously identify your niche. What unique problem can your software solve for your target audience? Successful ventures often start with a laser-focused approach. Consider market needs, gaps, and trends to carve your niche effectively.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Lean Development Strategies: Maximizing Resources
&lt;/h2&gt;

&lt;p&gt;Indie hackers and solopreneurs often work with limited resources. Embrace lean development strategies to maximize efficiency. Prioritize essential features and functionalities that resonate with your target users. Remember, simplicity can be a key factor in user adoption.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. User-Centric Design: Enhancing the User Experience
&lt;/h2&gt;

&lt;p&gt;Craft an intuitive and user-centric design for your Micro-SaaS. User experience (UX) plays a pivotal role in the success of your software. Ensure seamless navigation, straightforward onboarding, and a visually appealing interface. A satisfied user is more likely to become a loyal customer.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Agile Development and Iteration: Stay Adaptable
&lt;/h2&gt;

&lt;p&gt;The tech industry moves at a rapid pace. Adopt an agile development approach and be ready to iterate based on user feedback and market changes. This flexibility allows you to stay ahead of the curve and continuously enhance your Micro-SaaS offering.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Marketing on a Shoestring Budget: Making an Impact
&lt;/h2&gt;

&lt;p&gt;Effective marketing doesn't always require a hefty budget. Leverage social media, content marketing, and community engagement to create a buzz around your Micro-SaaS. Highlight its unique value proposition and how it addresses specific pain points within your niche.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. The Power of Community: Building Relationships
&lt;/h2&gt;

&lt;p&gt;Forge connections within the Micro-SaaS community. Engage in forums, attend virtual meetups, and contribute to discussions. Building relationships can open doors to collaboration, partnerships, and valuable insights that can propel your Micro-SaaS to new heights.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Pre-Launch Buzz: Creating Anticipation
&lt;/h2&gt;

&lt;p&gt;Generate excitement before your Micro-SaaS hits the market. Offer pre-launch incentives, share sneak peeks, and encourage pre-registration. Platforms like MicroSaaS.shop provide opportunities for unlimited free listings, giving your venture added visibility in a commission-free environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Launch Day Strategies: Maximizing Impact
&lt;/h2&gt;

&lt;p&gt;Your launch day is crucial. Utilize social media, newsletters, and press releases to create a buzz. Leverage the pre-launch anticipation to drive traffic to your MicroSaaS.shop listing, reaching a targeted audience of potential buyers.&lt;/p&gt;

&lt;h2&gt;
  
  
  9. Post-Launch Optimization: The Continuous Journey
&lt;/h2&gt;

&lt;p&gt;Once launched, the journey is far from over. Monitor user feedback, analyze data, and implement continuous optimizations. A profitable Micro-SaaS evolves with the needs of its users and the dynamics of the market.&lt;/p&gt;

&lt;h2&gt;
  
  
  10. Scaling Smartly: Expanding Your Reach
&lt;/h2&gt;

&lt;p&gt;As your Micro-SaaS gains traction, consider strategic scaling. Identify complementary markets, explore partnerships, and assess opportunities for feature expansion. Scaling smartly ensures sustained growth without compromising the core value of your offering.&lt;/p&gt;




&lt;p&gt;Launching a profitable Micro-SaaS in 2024 requires a combination of strategic planning, user-centric development, and effective marketing. By following this step-by-step guide tailored for indie hackers and solopreneurs, you're well on your way to creating a Micro-SaaS venture that stands out in the competitive tech landscape. Remember, the journey is as important as the destination—embrace the challenges, learn from experiences, and enjoy the process of building something truly impactful.&lt;/p&gt;




&lt;p&gt;Happy Indie Hacking 👨‍💻&lt;br&gt;
&lt;a href="https://bento.me/rajeshj3" rel="noopener noreferrer"&gt;Rajesh Joshi&lt;/a&gt;&lt;br&gt;
&lt;a href="https://bento.me/saasions" rel="noopener noreferrer"&gt;Saasions Lab&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>CronWeb: Use Webhook 🔗 No Need to Build Your Own Cron Scheduler 🕒</title>
      <dc:creator>Rajesh Joshi</dc:creator>
      <pubDate>Sat, 08 Jul 2023 14:18:13 +0000</pubDate>
      <link>https://dev.to/rajeshjoshi-dev/cronweb-utilize-webhooks-without-building-your-own-cron-tools-li5</link>
      <guid>https://dev.to/rajeshjoshi-dev/cronweb-utilize-webhooks-without-building-your-own-cron-tools-li5</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;📝 In this tutorial, you will learn how to integrate CronWeb with RapidAPI using Python and the Requests library. CronWeb enables you to schedule and run cron jobs easily, while RapidAPI provides a vast collection of APIs for various purposes. By combining the two, you can automate tasks and access external APIs on a scheduled basis. 🚀&lt;/p&gt;

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




&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;p&gt;Before we begin, make sure you have the following:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Python installed on your machine (preferably Python 3.x) 🐍&lt;/li&gt;
&lt;li&gt;The Requests library installed (&lt;code&gt;pip install requests&lt;/code&gt;) 📦&lt;/li&gt;
&lt;li&gt;A RapidAPI account (sign up at &lt;a href="https://www.rapidapi.com/" rel="noopener noreferrer"&gt;RapidAPI&lt;/a&gt;) 🌐&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Section 1: Creating a RapidAPI Account and Obtaining an API Key
&lt;/h2&gt;

&lt;p&gt;To access RapidAPI services, you need an API key. Follow these steps to get your API key:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Sign up or log in to your RapidAPI account at &lt;a href="https://www.rapidapi.com/" rel="noopener noreferrer"&gt;RapidAPI&lt;/a&gt;. ✅&lt;/li&gt;
&lt;li&gt;Go to &lt;a href="https://rapidapi.com/joshirajesh448-emyeudCJ4Y-/api/cronweb-webhook-driven-cron-job-scheduler" rel="noopener noreferrer"&gt;CronWeb&lt;/a&gt; tool and Subscribe to &lt;a href="https://rapidapi.com/joshirajesh448-emyeudCJ4Y-/api/cronweb-webhook-driven-cron-job-scheduler/pricing" rel="noopener noreferrer"&gt;FREE Plan(Basic)&lt;/a&gt;. 🔄&lt;/li&gt;
&lt;li&gt;Once subscribed, you will receive an API key. Keep it safe, as we'll use it in our Python script. 🔑&lt;/li&gt;
&lt;/ol&gt;

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




&lt;h2&gt;
  
  
  Section 2: Implementing the CronJob with RapidAPI Integration
&lt;/h2&gt;

&lt;p&gt;Now, let's create a Python script that uses CronWeb API to schedule a task to make a webhook request to our server on specified date and time. Here's an example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;

&lt;span class="n"&gt;RAPIDAPI_KEY&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getenv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;RAPIDAPI_KEY&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;schedule_job&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;

    &lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://cronweb-webhook-driven-cron-job-scheduler.p.rapidapi.com/schedule/&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

    &lt;span class="n"&gt;payload&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;description&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Send email to inactive users&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://api.example.com/your-webhook-endpoint&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;# replace with your webhook server
&lt;/span&gt;        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;method&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;POST&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;params&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{},&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;payload&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;    &lt;span class="c1"&gt;# payload as per your requirements
&lt;/span&gt;            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;action&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;inactive.email&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;message&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Send e-mail to inactive users on upcoming monday morning&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;headers&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;    &lt;span class="c1"&gt;# optional headers
&lt;/span&gt;            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;signature&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;X-example-Signature&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;xxxxxxxxxxxxxxxxxxxxxxxxxx&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;minute&lt;/span&gt;&lt;span class="sh"&gt;"&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="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;hour&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;day&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;17&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;month&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;timezone&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;UTC&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="n"&gt;headers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content-type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;application/json&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;X-RapidAPI-Key&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;RAPIDAPI_KEY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;X-RapidAPI-Host&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;cronweb-webhook-driven-cron-job-scheduler.p.rapidapi.com&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;payload&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;  &lt;span class="c1"&gt;# save the returned "id" to access the task later
&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;__name__&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;__main__&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;schedule_job&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;In the above code snippet:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We import the necessary modules: requests for making HTTP requests, and os for accessing environment variables. 📦&lt;/li&gt;
&lt;li&gt;We define the &lt;code&gt;schedule_job&lt;/code&gt; function that makes an HTTP GET request to the desired RapidAPI endpoint, passing the necessary headers with the API key from the environment variables. ⚙️&lt;/li&gt;
&lt;li&gt;We print the JSON response. 🖨️&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Section 3: Running the Python Script
&lt;/h2&gt;

&lt;p&gt;To run the Python script, follow these steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a new file named script.py. 📁&lt;/li&gt;
&lt;li&gt;Copy and paste the code snippet from Section 2 into script.py. 📋&lt;/li&gt;
&lt;li&gt;Replace '&lt;a href="https://api.example.com/your-webhook-endpoint" rel="noopener noreferrer"&gt;https://api.example.com/your-webhook-endpoint&lt;/a&gt;' with the actual webhook endpoint URL you want to call. 🌐&lt;/li&gt;
&lt;li&gt;Save the changes. 💾&lt;/li&gt;
&lt;li&gt;You can start the script by running the command python script.py in your terminal. 🚀&lt;/li&gt;
&lt;li&gt;Now, make sure the specified &lt;code&gt;url&lt;/code&gt; is accessible through the internet with provided headers and HTTP method. CronWeb will make API request to the server at the date and time you specified. 📅&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Congratulations! You have successfully integrated CronWeb API using Python and the Requests library. With this setup, you can automate tasks and leverage the wide range of RapidAPI services on a scheduled basis. Explore the possibilities and enhance your applications with scheduled API calls. 🎉&lt;/p&gt;

&lt;p&gt;If you have any questions or need further assistance, feel free to reach out to the CronWeb or RapidAPI support teams. 💬&lt;/p&gt;




&lt;p&gt;Happy coding! 👩‍💻👨‍💻&lt;/p&gt;

&lt;p&gt;That's it! I hope this tutorial helps you understand how to use CronWeb with RapidAPI in Python with the Requests library. Let me know if there's anything else I can assist you with! 😊&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>programming</category>
      <category>python</category>
    </item>
    <item>
      <title>Dockerize FastAPI project like a pro - Step-by-step Tutorial 🚀</title>
      <dc:creator>Rajesh Joshi</dc:creator>
      <pubDate>Fri, 14 Apr 2023 07:53:49 +0000</pubDate>
      <link>https://dev.to/rajeshjoshi-dev/dockerize-fastapi-project-like-a-pro-step-by-step-tutorial-7i8</link>
      <guid>https://dev.to/rajeshjoshi-dev/dockerize-fastapi-project-like-a-pro-step-by-step-tutorial-7i8</guid>
      <description>&lt;h2&gt;
  
  
  Introduction 🔥
&lt;/h2&gt;

&lt;p&gt;Are you a developer looking to &lt;strong&gt;containerize your FastAPI project&lt;/strong&gt; using Docker?&lt;/p&gt;

&lt;p&gt;In this step-by-step tutorial, we'll show you how to Dockerize your FastAPI app like a pro. From setting up your development environment to deploying your app to Docker Hub, we'll cover everything you need to know to get started with Docker and FastAPI.&lt;/p&gt;




&lt;h2&gt;
  
  
  Watch the video 🎥
&lt;/h2&gt;

&lt;p&gt;For a better understanding, watch the tutorial video on &lt;strong&gt;Stackless Tech&lt;/strong&gt; YouTube Channel.&lt;/p&gt;

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




&lt;h2&gt;
  
  
  Let's go 🚀
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Start with creating and activating python virtual environment.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;python3 &lt;span class="nt"&gt;-m&lt;/span&gt; venv &lt;span class="nb"&gt;env&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;source env&lt;/span&gt;/bin/activate
&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;env&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="nv"&gt;$ &lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Install FastAPI and Uvicorn.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;env&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="nv"&gt;$ &lt;/span&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;fastapi uvicorn
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;In main.py file, Write &lt;code&gt;Hello, World!&lt;/code&gt; program.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;FastAPI&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="nd"&gt;@app.get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;/&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;index&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;details&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Hello, World!&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

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

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;run the server&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;env&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="nv"&gt;$ &lt;/span&gt;uvicorn main:app &lt;span class="nt"&gt;--reload&lt;/span&gt; &lt;span class="nt"&gt;--port&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;8000 &lt;span class="nt"&gt;--host&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;0.0.0.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Open &lt;code&gt;127.0.0.1:8000&lt;/code&gt; and see if it works.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Write dependencies into &lt;code&gt;requirements.txt&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;env&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="nv"&gt;$ &lt;/span&gt;pip freeze &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; requirements.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Create &lt;code&gt;Dockerfile&lt;/code&gt;, &lt;code&gt;.dockerignore&lt;/code&gt; and &lt;code&gt;docker-compose.yaml&lt;/code&gt; files&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight docker"&gt;&lt;code&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="s"&gt; python:3.8.10-slim&lt;/span&gt;

&lt;span class="k"&gt;WORKDIR&lt;/span&gt;&lt;span class="s"&gt; /app&lt;/span&gt;

&lt;span class="k"&gt;COPY&lt;/span&gt;&lt;span class="s"&gt; . /app&lt;/span&gt;

&lt;span class="k"&gt;RUN &lt;/span&gt;pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;env/
__pycache__/

*.env
*.env.*
env.*
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;3'&lt;/span&gt;

&lt;span class="na"&gt;services&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;web&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;build&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;.&lt;/span&gt;
    &lt;span class="na"&gt;command&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;sh -c "uvicorn main:app --reload --port=8000 --host=0.0.0.0"&lt;/span&gt;
    &lt;span class="na"&gt;ports&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;8000:8000&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Run the docker container&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;env&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="nv"&gt;$ &lt;/span&gt;docker compose up &lt;span class="nt"&gt;--build&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Go to &lt;code&gt;127.0.0.1:8000&lt;/code&gt;, And it's now running from the Docker Container.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;I hope you guys liked this quick tutorial&lt;/p&gt;

&lt;p&gt;Cheers&lt;/p&gt;

</description>
      <category>python</category>
      <category>fastapi</category>
      <category>docker</category>
      <category>programming</category>
    </item>
    <item>
      <title>Goodbye Complicated Sharing! - Share Data Across Devices with Share360.tech 🤯</title>
      <dc:creator>Rajesh Joshi</dc:creator>
      <pubDate>Wed, 22 Feb 2023 07:16:24 +0000</pubDate>
      <link>https://dev.to/rajeshjoshi-dev/goodbye-complicated-sharing-share-data-across-devices-with-share360tech-kfi</link>
      <guid>https://dev.to/rajeshjoshi-dev/goodbye-complicated-sharing-share-data-across-devices-with-share360tech-kfi</guid>
      <description>&lt;h2&gt;
  
  
  😭 Problem?
&lt;/h2&gt;

&lt;p&gt;Sharing text data across nearby devices has always been a hassle.&lt;/p&gt;

&lt;p&gt;Some conventional methods for sharing text data include using native cross-platform applications (e.g. WhatsApp, WeChat, Telegram) or email services (e.g. Gmail, Yahoo Mail).&lt;/p&gt;

&lt;p&gt;All such conventional methods require either the installation of native applications in both the devices or the use of bulky sites.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 Solution?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://share360.tech/" rel="noopener noreferrer"&gt;Share360.tech&lt;/a&gt; is a fast 🚀, reliable 💪, and secure 🛡️ web application and browser extension designed to simplify sharing of sensitive textual data.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Unlimited text length 🗒️&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Secure 4-character alpha-numeric random password 🔑&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Customizable password options 😎&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Data persistence life is limited to 10 minutes 🤩 &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;One-time read-only 🤫.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enjoy the option of dark/light themes 🌒 for easy readability.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🤩 How to use?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Step. 1
&lt;/h3&gt;

&lt;p&gt;Visit &lt;a href="https://share360.tech/" rel="noopener noreferrer"&gt;share360.tech&lt;/a&gt; 🚀&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Step. 2
&lt;/h3&gt;

&lt;p&gt;Enter the Text you want to share, and hit SUBMIT&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Step. 3
&lt;/h3&gt;

&lt;p&gt;Share the provided code or link, or scan the QR code to retrieve your textual data&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Step. 4
&lt;/h3&gt;

&lt;p&gt;Hit GET TEXT button.&lt;/p&gt;

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

&lt;p&gt;Here you go, you have the text on your other device.&lt;/p&gt;




&lt;h2&gt;
  
  
  Contribution ✨
&lt;/h2&gt;

&lt;p&gt;Share360.tech is not Open-Source yet. But, if you want us to Open the Source, please drop a comment explaining why you are interested.&lt;/p&gt;




&lt;p&gt;I hope, you guys liked this quick introduction to Share360.tech. If so, then please don't forget to drop a Like ❤️&lt;/p&gt;

&lt;p&gt;Happy Coding! 😃💻&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>react</category>
      <category>firebase</category>
    </item>
    <item>
      <title>🤔 Suggest me the Tech Stack for 🌐 Browsemates</title>
      <dc:creator>Rajesh Joshi</dc:creator>
      <pubDate>Thu, 02 Feb 2023 07:21:03 +0000</pubDate>
      <link>https://dev.to/rajeshjoshi-dev/suggest-me-the-tech-stack-for-browsemates-3ac5</link>
      <guid>https://dev.to/rajeshjoshi-dev/suggest-me-the-tech-stack-for-browsemates-3ac5</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Tech enthusiasts unite! 💻 I am excited to announce my latest project - Browsemates. This project is a new venture that aims to revolutionize the way people communicate and collaborate while browsing the web. But, I need your help in making this project a success. That's why I'm reaching out to the tech community and asking for your advice on the best tech stack for this project. 🚀 #Browsemates #TechStack #Startup 💻💻&lt;/p&gt;

&lt;h2&gt;
  
  
  Importance?
&lt;/h2&gt;

&lt;p&gt;As a software developer, I understand the importance of choosing the right tech stack for a project. The tech stack you choose can have a huge impact on the success of a project, so it's important to get it right. That's why I'm turning to the tech community for advice on the best tech stack for Browsemates. 🤔&lt;/p&gt;

&lt;h2&gt;
  
  
  What I think? 🤔
&lt;/h2&gt;

&lt;p&gt;My personal choice for the tech stack for Browsemates is Python for the backend and ReactJS for the web app. 🐍 I have chosen Python for the backend because it is a powerful, high-level programming language that is widely used in the tech industry. Python is known for its simplicity, ease of use, and versatility, making it a great choice for the backend of Browsemates. 💻&lt;/p&gt;

&lt;p&gt;ReactJS, on the other hand, is a popular JavaScript library for building user interfaces. 💥 ReactJS is known for its speed, efficiency, and ability to handle complex web applications. I believe that using ReactJS for the web app will provide a smooth and user-friendly experience for our users. 🤩&lt;/p&gt;

&lt;h2&gt;
  
  
  Help 🥲
&lt;/h2&gt;

&lt;p&gt;However, I understand that the tech community is full of experts who have a wealth of knowledge and experience. That's why I'm open to your suggestions and recommendations on the tech stack for Browsemates. If you believe that a different tech stack would be a better fit for this project, I would love to hear from you. 💡&lt;/p&gt;

&lt;h2&gt;
  
  
  Let's go 🚀
&lt;/h2&gt;

&lt;p&gt;Let's make this project a success together! The goal of Browsemates is to revolutionize the way people communicate and collaborate while browsing the web. With your help and expertise, I am confident that we can make this project a reality. 🚀💻 #TechStack #Python #ReactJS #Startup 💪&lt;/p&gt;




&lt;p&gt;Join me on this journey on twitter &lt;a href="https://twitter.com/rajesh_j3" rel="noopener noreferrer"&gt;@rajesh_j3&lt;/a&gt;&lt;/p&gt;




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

</description>
      <category>crypto</category>
      <category>web3</category>
      <category>blockchain</category>
    </item>
    <item>
      <title>Python NOT for Beginners ⛔ but for Professionals 😎</title>
      <dc:creator>Rajesh Joshi</dc:creator>
      <pubDate>Tue, 31 Jan 2023 10:07:48 +0000</pubDate>
      <link>https://dev.to/rajeshjoshi-dev/python-not-for-beginners-but-for-professionals-4deh</link>
      <guid>https://dev.to/rajeshjoshi-dev/python-not-for-beginners-but-for-professionals-4deh</guid>
      <description>&lt;h2&gt;
  
  
  Introduction 🚀
&lt;/h2&gt;

&lt;p&gt;Python is a powerful, versatile, and user-friendly programming language that is widely used for web development, data analysis, scientific computing, and more. One of the reasons Python is so popular is because it comes with a rich standard library that includes a wealth of tools and modules that can be used for various tasks. In this blog post, we'll explore some of the best built-in features of the Python programming language.&lt;/p&gt;

&lt;h3&gt;
  
  
  Iterators and Generators 🚀
&lt;/h3&gt;

&lt;p&gt;In Python, everything is an object, including sequences like lists, tuples, and strings. These sequences are iterable, meaning that you can use a for loop to iterate over their elements. Python also provides a powerful tool for creating your own iterators called generators. Generators are special functions that return an iterator, which can be used to generate a sequence of values. The values are generated one at a time, only when requested, and they can be generated an indefinite number of times.&lt;/p&gt;

&lt;p&gt;Here's an example of a simple generator in Python:&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;fibonacci&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&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="n"&gt;b&lt;/span&gt; &lt;span class="o"&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;1&lt;/span&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="nf"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;yield&lt;/span&gt; &lt;span class="n"&gt;a&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="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This generator returns the first n numbers in the Fibonacci sequence. You can use it like this:&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;number&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;fibonacci&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  List comprehensions 🚀
&lt;/h3&gt;

&lt;p&gt;List comprehensions are a concise way of creating lists in Python. They are a simple and efficient way to perform operations on a list and create a new list with the results. With list comprehensions, you can write code that is more readable, expressive, and concise.&lt;/p&gt;

&lt;p&gt;Here's an example of a list comprehension in Python:&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;squared&lt;/span&gt; &lt;span class="o"&gt;=&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;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="nf"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;squared&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This code creates a list of the squares of the first 10 numbers. The result will be &lt;code&gt;[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Decorators 🚀
&lt;/h3&gt;

&lt;p&gt;In Python, a decorator is a special type of function that can be used to modify the behavior of another function. Decorators can be used to add or modify behavior to existing functions, without having to change the underlying code. This makes decorators a powerful tool for extending the functionality of your code.&lt;/p&gt;

&lt;p&gt;Here's an example of a simple decorator in Python:&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;my_decorator&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;func&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;wrapper&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Something is happening before the function is called.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="nf"&gt;func&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Something is happening after the function is called.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;wrapper&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;say_hello&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Hello!&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;say_hello&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;my_decorator&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;say_hello&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;say_hello&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This code defines a simple decorator that adds behavior to the say_hello function. When you run this code, you will see the following output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Something is happening before the &lt;span class="k"&gt;function &lt;/span&gt;is called.
Hello!
Something is happening after the &lt;span class="k"&gt;function &lt;/span&gt;is called.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Context Managers 🚀
&lt;/h3&gt;

&lt;p&gt;Context Managers in Python are objects that control the behavior of a block of code. They are used to manage resources, such as file handles or network connections, by defining a set of rules for how the resource should be used.&lt;/p&gt;

&lt;p&gt;The most common use of context managers is to handle the opening and closing of files in a safe and efficient manner. Instead of manually opening and closing a file, a context manager will handle these operations for you.&lt;/p&gt;

&lt;p&gt;Here's an example of a simple context manager in Python:&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;with&lt;/span&gt; &lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;file.txt&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;w&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nb"&gt;file&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nb"&gt;file&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Hello, world!&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this example, the open function is used to open the file "file.txt" in write mode ("w"). The with statement is used to create a context in which the file will be used. The as clause specifies a variable (file) that will be used to refer to the file within the context.&lt;/p&gt;

&lt;p&gt;When the block of code within the with statement is finished executing, the context manager will automatically close the file. This eliminates the need to manually close the file and eliminates the risk of leaving the file open if an exception is raised.&lt;/p&gt;

&lt;p&gt;Context managers can also be defined for other types of resources, such as network connections or database connections, to manage their use in a similar manner.&lt;/p&gt;




&lt;p&gt;Follow me on twitter &lt;a href="https://twitter.com/rajesh_j3" rel="noopener noreferrer"&gt;@rajesh_j3&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Thank you&lt;/p&gt;

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

</description>
      <category>web3</category>
      <category>blockchain</category>
      <category>crypto</category>
      <category>offers</category>
    </item>
    <item>
      <title>The idea,🌐Browsemates- Connect with others on the same webpage as you🔥</title>
      <dc:creator>Rajesh Joshi</dc:creator>
      <pubDate>Mon, 30 Jan 2023 19:28:17 +0000</pubDate>
      <link>https://dev.to/rajeshjoshi-dev/the-ideabrowsemates-connect-with-others-on-the-same-webpage-as-you-4hi3</link>
      <guid>https://dev.to/rajeshjoshi-dev/the-ideabrowsemates-connect-with-others-on-the-same-webpage-as-you-4hi3</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;The world is rapidly changing 🌍 and with the rise of remote work and online collaboration, the way people communicate and collaborate while browsing the web has become increasingly important 💻 That's why I am thrilled 🤗 to announce my latest project, &lt;strong&gt;Browsemates&lt;/strong&gt; 🚀 - a platform that connects people on the same webpage in real-time 💬&lt;/p&gt;




&lt;h2&gt;
  
  
  What is Browsemates? 🤔
&lt;/h2&gt;

&lt;p&gt;At its core, &lt;strong&gt;Browsemates&lt;/strong&gt; is a real-time communication platform that allows users to &lt;strong&gt;communicate with others who are on the same webpage 🌐&lt;/strong&gt; With its browser extension 💻, you can join any webpage and start communicating with others in a matter of seconds 💬 The platform makes it easy to connect with others, whether you're working on a project with your team 🤝 or just need to ask a quick question 💬&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Browsemates is helpful? 🤔
&lt;/h2&gt;

&lt;p&gt;One of the biggest problems that Browsemates aims to solve is the disconnection people experience when working remotely 💼 With the pandemic forcing many people to work from home, it can be difficult to stay connected with your team and collaborate effectively 🤝 Browsemates solves this problem by allowing users to connect with others on the same webpage, making it easier to communicate and collaborate no matter where you are 💻&lt;/p&gt;

&lt;p&gt;Another problem that Browsemates addresses is the lack of effective communication tools available while browsing the web 🕸️ Many times, people need to communicate with others who are on the same page, but don't have a convenient way to do so 🤔 Browsemates solves this problem by providing a real-time communication platform that is accessible from any webpage 💬&lt;/p&gt;

&lt;p&gt;Not just for remote workers 💼, Browsemates is also useful for anyone who needs to communicate with others while browsing the web 🌐 Whether you're a student working on a project 📚, a freelancer collaborating with a client 💼, or just someone who needs to communicate with others while browsing, Browsemates makes it easy to do so 💬&lt;/p&gt;




&lt;h2&gt;
  
  
  Features of Browsemates 📈
&lt;/h2&gt;

&lt;p&gt;In addition to real-time communication 💬, Browsemates also includes features such as voice and video calls 📞, text-based messaging 💬, and more 💡 With these features, users can communicate with others in a variety of ways, making it easier to get their message across and collaborate effectively 💪&lt;/p&gt;




&lt;h2&gt;
  
  
  User-Friendly Interface 🤩
&lt;/h2&gt;

&lt;p&gt;One of the things that sets Browsemates apart is its user-friendly interface 💻 The platform is designed to be easy to use and accessible, making it a great option for people of all skill levels 📈 Whether you're a tech-savvy individual or someone who is new to real-time communication platforms, Browsemates is a great choice 💡&lt;/p&gt;




&lt;h2&gt;
  
  
  Join me on this Journey 🚀
&lt;/h2&gt;

&lt;p&gt;I am excited 🤗 to announce the development of Browsemates and cannot wait to see the impact it will have on the world of remote work and online collaboration 💼 I invite you to join me on this journey 🚀 and stay tuned for updates on Twitter 🐦 Together, we can revolutionize the way people communicate and collaborate while browsing the web 💻 #Startup #WebTech 🚀&lt;/p&gt;

&lt;p&gt;Follow me on Twitter &lt;a href="https://twitter.com/rajesh_j3" rel="noopener noreferrer"&gt;@rajesh_j3&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Please Note: &lt;strong&gt;ChatGPT&lt;/strong&gt; helped me in writing this blog post.&lt;/p&gt;

&lt;p&gt;Thank you&lt;/p&gt;

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

</description>
      <category>cryptocurrency</category>
      <category>crypto</category>
      <category>web3</category>
      <category>blockchain</category>
    </item>
    <item>
      <title>Talk to people who are on the same site | 🌐 Browsemates</title>
      <dc:creator>Rajesh Joshi</dc:creator>
      <pubDate>Mon, 30 Jan 2023 11:54:55 +0000</pubDate>
      <link>https://dev.to/rajeshjoshi-dev/talk-to-people-who-are-on-the-same-site-browsemates-2alp</link>
      <guid>https://dev.to/rajeshjoshi-dev/talk-to-people-who-are-on-the-same-site-browsemates-2alp</guid>
      <description>&lt;p&gt;&lt;strong&gt;Announcement&lt;/strong&gt; 📢🎉: I'm ecstatic to reveal my latest project, Browsemates - the platform that brings people together on the same webpage 💻🤝&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Intro&lt;/strong&gt;: 💬 Browsemates lets you communicate in real-time with others on the same webpage. Get connected in just seconds with its browser extension! Perfect for students, freelancers, or anyone who needs to communicate while browsing 📈&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Problem Solved&lt;/strong&gt;: 💥 Browsemates eliminates the feeling of disconnection people experience while browsing the web and enhances communication tools available online.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use-Cases&lt;/strong&gt;: 🎥 Viewing parties, 🗞️ news discussion, 💡 recommendations, 📝 reviews, 🤩 fan clubs, 💬 language learning, 🛍️ shopping advice, 📚 study groups, 🧑‍🏫 mentoring, 🤝 networking, 💬 community building, 🤝 collaboration, 🌍 travel and more! The possibilities are endless!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Features&lt;/strong&gt;: 📞 Real-time communication, voice/text messaging, posts, comments, and more. Plus, a user-friendly interface that's easy to use for everyone 💻&lt;/p&gt;




&lt;p&gt;Join the revolution in remote work and online collaboration with Browsemates!&lt;/p&gt;

&lt;p&gt;🔥 Follow me on Twitter &lt;a href="https://twitter.com/rajesh_j3" rel="noopener noreferrer"&gt;@rajesh_j3&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;Thanks &amp;amp; happy coding! 💻🎉&lt;/p&gt;

</description>
      <category>web3</category>
      <category>blockchain</category>
      <category>crypto</category>
      <category>offers</category>
    </item>
    <item>
      <title>🌐 Connect with others on the same webpage as you 🖥️</title>
      <dc:creator>Rajesh Joshi</dc:creator>
      <pubDate>Sun, 29 Jan 2023 20:00:27 +0000</pubDate>
      <link>https://dev.to/rajeshjoshi-dev/connect-with-others-on-the-same-webpage-as-you-de6</link>
      <guid>https://dev.to/rajeshjoshi-dev/connect-with-others-on-the-same-webpage-as-you-de6</guid>
      <description>&lt;h2&gt;
  
  
  Announcement 📢
&lt;/h2&gt;

&lt;p&gt;🚀 I'm thrilled to announce my latest project, &lt;strong&gt;🌐 Browsemates - a platform that connects people on the same webpage 💻 as you!&lt;/strong&gt;&lt;/p&gt;




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

&lt;p&gt;🚀 &lt;strong&gt;Browsemates&lt;/strong&gt; is a real-time communication platform that allows users to communicate with others who are on the same webpage. 💬 Whether you're working on a project with your team or just need to ask a quick question, &lt;strong&gt;Browsemates&lt;/strong&gt; makes it easy to connect with others in real-time. With its browser extension, you can join any webpage and start communicating with others in just seconds!&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem, Browsemates is solving 🚀
&lt;/h2&gt;

&lt;p&gt;💥 One of the biggest problems that Browsemates solves is &lt;em&gt;the disconnection people experience while browsing the internet&lt;/em&gt;. Browsemates allows users to connect with others on the same webpage, making it easier to communicate and collaborate no matter where you are.&lt;/p&gt;

&lt;p&gt;💥 Browsemates also addresses the lack of effective communication tools while browsing the web. It provides a real-time communication platform that is accessible from any webpage.&lt;/p&gt;

&lt;p&gt;💡 Browsemates is useful for anyone who needs to communicate with others while browsing the web - students, freelancers, or just anyone who needs to communicate while browsing.&lt;/p&gt;




&lt;h2&gt;
  
  
  Few use-cases 🌟
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Viewing parties&lt;/strong&gt;: Watch movies with thousands of people together.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;News and current events&lt;/strong&gt;: Talk to people about the latest news.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recommendations&lt;/strong&gt;: Share experiences and learn from people&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reviews and Ratings&lt;/strong&gt;: Get and share reviews.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fan clubs&lt;/strong&gt;: Build fan clubs with people of similar interests&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Language learning&lt;/strong&gt;: Learn from people all over the internet.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Shopping advice&lt;/strong&gt;: Get shopping advice from those who already have purchased.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Study groups&lt;/strong&gt;: Create study group with students all over the world.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mentoring&lt;/strong&gt;: Teach or mentor others.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Networking&lt;/strong&gt;: Build networks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Community building&lt;/strong&gt;: Build communities.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Collaboration&lt;/strong&gt;: Work in collaboration with people over the globe.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Travel&lt;/strong&gt;: Plan your trips together.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Possibilities are unlimited.&lt;/strong&gt;&lt;/p&gt;




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

&lt;p&gt;📞 In addition to real-time communication, Browsemates also includes voice and text-based messaging, posts, comments, and many more. With these features, users can communicate with others in a variety of ways, making collaboration easier.&lt;/p&gt;

&lt;p&gt;💻 The user-friendly interface sets Browsemates apart, making it accessible and easy to use for people of all skill levels.&lt;/p&gt;




&lt;p&gt;🙌 I can't wait to see the impact &lt;strong&gt;Browsemates&lt;/strong&gt; will have on the world of remote work and online collaboration. Join me on this journey and stay tuned for updates on Twitter! Together, let's revolutionize the way people communicate and collaborate while browsing the web! 🔥&lt;/p&gt;




&lt;p&gt;Follow me on twitter: &lt;a href="https://twitter.com/rajesh_j3" rel="noopener noreferrer"&gt;@rajesh_j3&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Thank you&lt;br&gt;
Happy Coding&lt;/p&gt;

</description>
      <category>codenewbie</category>
      <category>beginners</category>
      <category>welcome</category>
      <category>career</category>
    </item>
    <item>
      <title>MongoDB Atlas Hackathon 2022 on DEV</title>
      <dc:creator>Rajesh Joshi</dc:creator>
      <pubDate>Thu, 08 Dec 2022 18:10:06 +0000</pubDate>
      <link>https://dev.to/rajeshjoshi-dev/mongodb-atlas-hackathon-2022-on-dev-5300</link>
      <guid>https://dev.to/rajeshjoshi-dev/mongodb-atlas-hackathon-2022-on-dev-5300</guid>
      <description>&lt;h2&gt;
  
  
  Multiplayer Math Game | Hackathon Submission
&lt;/h2&gt;

&lt;p&gt;Multiplayer Math Game is an online game, that anyone can play with their friends. The application is Build using the FARM(FastAPI, React, and MongoDB).&lt;/p&gt;




&lt;h3&gt;
  
  
  Category Submission: Think Outside the JS Box
&lt;/h3&gt;




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

&lt;p&gt;The game is live at: &lt;a href="https://mathmind.netlify.app/" rel="noopener noreferrer"&gt;mathmind.netlify.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; The online version may have a different version running. So, it is recommended to clone the repository and check the project out locally.&lt;/p&gt;




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

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Home Page&lt;/th&gt;
&lt;th&gt;Lobby Page&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&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%2F7tedo4ehvsz5epkq6d1y.png" alt="Home Page" width="800" height="500"&gt;&lt;/td&gt;
&lt;td&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%2Fxmpmbc21hfxvvymham11.png" alt="Screenshot of Lobby" width="800" height="500"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Game Page&lt;/th&gt;
&lt;th&gt;Results Page&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&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%2Fxnpxwyqqg6606oy2nrrf.png" alt="Game Page" width="800" height="500"&gt;&lt;/td&gt;
&lt;td&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%2Fkgmukwvqscgvjub126d8.png" alt="Results Page" width="800" height="500"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




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

&lt;p&gt;Multiplayer Math Game is an online game, that anyone can play with their friends or with the world. The application is Build using the FARM(FastAPI, React, and MongoDB). Using MongoDB Cloud as the primary database to save the game and it's stats.&lt;/p&gt;




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

&lt;p&gt;GitHub Link: &lt;a href="https://github.com/RajeshJ3/multiplayer-math-game" rel="noopener noreferrer"&gt;RajeshJ3/multiplayer-math-game&lt;/a&gt;&lt;/p&gt;




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

&lt;p&gt;&lt;a href="https://github.com/RajeshJ3/multiplayer-math-game/blob/main/LICENSE" rel="noopener noreferrer"&gt;MIT Licence&lt;/a&gt;&lt;/p&gt;




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

&lt;p&gt;As I am a big fan of Mathematics since childhood, I always wanted to build something that can be used by Mathematics students.&lt;/p&gt;




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

&lt;p&gt;I definitely learnt a lot of things while building this amazing project in FARM stack.&lt;/p&gt;




&lt;p&gt;Thank you&lt;/p&gt;

&lt;p&gt;cheers&lt;/p&gt;

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