<?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: Dinushi Dhananjani ♥️ 🇱🇰</title>
    <description>The latest articles on DEV Community by Dinushi Dhananjani ♥️ 🇱🇰 (@vithanagedanu).</description>
    <link>https://dev.to/vithanagedanu</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%2F404089%2F9edfded5-0622-4bff-883a-891d536ee368.png</url>
      <title>DEV Community: Dinushi Dhananjani ♥️ 🇱🇰</title>
      <link>https://dev.to/vithanagedanu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vithanagedanu"/>
    <language>en</language>
    <item>
      <title>Building a Secure Password Manager with Python</title>
      <dc:creator>Dinushi Dhananjani ♥️ 🇱🇰</dc:creator>
      <pubDate>Wed, 12 Mar 2025 14:04:40 +0000</pubDate>
      <link>https://dev.to/vithanagedanu/building-a-secure-password-manager-with-python-2i0k</link>
      <guid>https://dev.to/vithanagedanu/building-a-secure-password-manager-with-python-2i0k</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;In today's digital world, securely managing passwords is crucial. Many users struggle to create and store strong passwords, leading to security vulnerabilities. To solve this problem, I developed a Python-based Password Manager - a desktop application that securely generates, stores, and manages passwords with encryption. This article will guide you through the project's features, implementation, and deployment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features of the Password Manager
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Generate Strong Passwords: Users can create random, strong passwords with customizable settings.&lt;/li&gt;
&lt;li&gt;Secure Storage: All passwords are encrypted using Fernet symmetric encryption and stored securely.&lt;/li&gt;
&lt;li&gt;Master Password Protection: Access to saved passwords is secured with a master password.&lt;/li&gt;
&lt;li&gt;User-friendly interface: A simple Tkinter-based GUI allows easy management.&lt;/li&gt;
&lt;li&gt;Clipboard Support: Copy passwords to the clipboard with a single click.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Technology Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The application is built using:&lt;/li&gt;
&lt;li&gt;Python 3.7+: Core programming language&lt;/li&gt;
&lt;li&gt;Tkinter: GUI framework for the desktop interface&lt;/li&gt;
&lt;li&gt;Fernet (from cryptography module): Encrypts stored passwords&lt;/li&gt;
&lt;li&gt;JSON-like dictionary storage: Stores passwords securely in an encrypted file&lt;/li&gt;
&lt;li&gt;PyInstaller: Converts the script into a standalone executable&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Password Generation&lt;/strong&gt;&lt;br&gt;
The application generates strong passwords using a combination of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Uppercase &amp;amp; lowercase letters&lt;/li&gt;
&lt;li&gt;Numbers&lt;/li&gt;
&lt;li&gt;Special characters&lt;/li&gt;
&lt;li&gt;Customizable length options&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Secure Storage with Encryption&lt;/strong&gt;&lt;br&gt;
Passwords are encrypted before being stored using Fernet encryption. The master password, set by the user, is required to decrypt them. This ensures that even if the storage file is accessed, data remains unreadable without the master key.&lt;/p&gt;

&lt;h2&gt;
  
  
  Storage Method
&lt;/h2&gt;

&lt;p&gt;The Password Manager implementation does not use SQLite. Instead, it stores passwords in a JSON-like dictionary, encrypts them using Fernet symmetric encryption, and saves them in a file (passwords.enc).&lt;/p&gt;

&lt;h2&gt;
  
  
  Running the Application
&lt;/h2&gt;

&lt;p&gt;To set up and run the Password Manager locally:&lt;/p&gt;

&lt;p&gt;Clone the repository:&lt;br&gt;
&lt;code&gt;git clone https://github.com/Dinushi94/Password-Generator.git&lt;br&gt;
cd Password-Generator&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Install dependencies:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;pip install -r requirements.txt&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Run the application:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;python main.p&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;On the first run, you will be prompted to create a master password.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Deploying as a Standalone Application&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;To convert the application into an executable file:&lt;/p&gt;

&lt;p&gt;Install PyInstaller:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;pip install pyinstaller&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Create an executable:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;pyinstaller --onefile --windowed --name PasswordManager main.py&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The generated executable will be found in the dist/ directory.&lt;/p&gt;

&lt;h2&gt;
  
  
  Here are some screenshots of the application in action:
&lt;/h2&gt;

&lt;p&gt;This is the initial interface displayed when the application is launched. It provides easy navigation for generating and storing passwords.&lt;/p&gt;

&lt;p&gt;Application Interface&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%2Fbp2e5b147tqj6gkwwnoo.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%2Fbp2e5b147tqj6gkwwnoo.png" alt="Image description" width="800" height="473"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once a password is saved, it will appear in the storage section, ensuring quick access to encrypted credentials.&lt;/p&gt;

&lt;p&gt;Storing Passwords&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%2F5oa5d559hf6mdcz61e2b.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%2F5oa5d559hf6mdcz61e2b.png" alt="Image description" width="800" height="544"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Users can securely retrieve and view stored passwords after authentication, keeping their credentials organized and accessible.&lt;/p&gt;

&lt;p&gt;Viewing Stored Passwords&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%2Fgz8gnu1jfedzxcoqz0h4.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%2Fgz8gnu1jfedzxcoqz0h4.png" alt="Image description" width="800" height="579"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The built-in password generator allows users to create highly secure passwords based on custom requirements such as length, special characters, and numbers.&lt;br&gt;
Generating Strong Passwords&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%2Fpsbu90aa5ey7wjybr60l.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%2Fpsbu90aa5ey7wjybr60l.png" alt="Image description" width="800" height="518"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Distribution Options
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Direct Distribution: Share the executable file.&lt;/li&gt;
&lt;li&gt;Create an Installer: Use Inno Setup (Windows) for an installer.&lt;/li&gt;
&lt;li&gt;GitHub Releases: Upload the executable to a GitHub release for easy downloads.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Security Considerations
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The master password is never stored - it is used only for encryption and decryption.&lt;/li&gt;
&lt;li&gt;The encrypted password file cannot be decrypted without the master password.&lt;/li&gt;
&lt;li&gt;Users should avoid storing the password file in cloud-synced folders to prevent unauthorized access.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Future Enhancements
&lt;/h2&gt;

&lt;p&gt;To improve the project, I plan to add:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multi-factor authentication (MFA) for extra security.&lt;/li&gt;
&lt;li&gt;Cross-device synchronization with cloud-based encryption.&lt;/li&gt;
&lt;li&gt;Browser extensions for autofilling passwords.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;This Password Manager provides a secure and user-friendly way to generate and store passwords. Encrypting passwords with a master key ensures that sensitive information remains protected. I encourage developers to try it out, contribute to the project, and explore new security features.&lt;/p&gt;

&lt;p&gt;The full source code is available on &lt;a href="https://medium.com/r?url=https%3A%2F%2Fgithub.com%2FDinushi94%2FPassword-Generator" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;. Feel free to contribute and suggest improvements!&lt;/p&gt;

</description>
      <category>python</category>
      <category>programming</category>
      <category>devops</category>
    </item>
    <item>
      <title>Provisioning AWS VPC Using Terraform</title>
      <dc:creator>Dinushi Dhananjani ♥️ 🇱🇰</dc:creator>
      <pubDate>Tue, 20 Aug 2024 07:05:56 +0000</pubDate>
      <link>https://dev.to/vithanagedanu/provisioning-aws-vpc-using-terraform-231b</link>
      <guid>https://dev.to/vithanagedanu/provisioning-aws-vpc-using-terraform-231b</guid>
      <description>&lt;p&gt;In this guide, we’ll walk you through the process of using Terraform to establish an AWS VPC. This is what you’ll require,&lt;/p&gt;

&lt;p&gt;Terraform installed and configured on your local machine&lt;br&gt;
An AWS account&lt;br&gt;
A code editor like VS Code&lt;br&gt;
Step 1: Set Up the Terraform Provider&lt;br&gt;
Create “providers.tf ” file with the following content to specify the AWS provider&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;terraform {
  required_providers {
    aws = {
      source = "hashicorp/aws"
    }
  }
}

provider "aws" {
  region                   = "us-west-2"
  shared_credentials_files = "~/.aws/credentials"
  profile                  = "ica"
}

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

&lt;/div&gt;



&lt;p&gt;erraform block: lists the providers needed to complete this configuration. Here, we specify that the AWS provider — which comes from HashiCorp’s registry — is required.&lt;/p&gt;

&lt;p&gt;provider “aws” block: Configures the AWS provider&lt;/p&gt;

&lt;p&gt;region: Specifies the AWS region to create the resources&lt;/p&gt;

&lt;p&gt;shared_credentials_files: Specifies the path to the AWS credentials file&lt;/p&gt;

&lt;p&gt;profile: Specifies the profile name from the credentials file to use.(AWS IAM user)&lt;/p&gt;

&lt;p&gt;Step 2: Define the AWS VPC&lt;br&gt;
Create a main.tf file to define the AWS VPC resource&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;resource "aws_vpc" "infa_terraf_vpc" {
  cidr_block           = "10.126.0.0/16"
  enable_dns_hostnames = true
  enable_dns_support   = true

  tags = {
    Name = "main"
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This defines a VPC with the specified CIDR block and enables DNS hostnames and support.&lt;/p&gt;

&lt;p&gt;cidr_block: The IP range for the VPC in CIDR notation&lt;/p&gt;

&lt;p&gt;nable_dns_hostnames: When set to true, this enables instances within the VPC to have public DNS hostnames. This is useful for accessing instances over the internet.&lt;/p&gt;

&lt;p&gt;enable_dns_support: When set to true, this enables DNS resolution within the VPC. This allows you to resolve internal domain names to their IP addresses.&lt;/p&gt;

&lt;p&gt;tags: A map of key-value pairs used to tag the resource. Tags are useful for organizing and identifying resources&lt;/p&gt;

&lt;p&gt;Step 3: Plan and Apply the Configuration&lt;br&gt;
Preview the changes that Terraform will make by running&lt;/p&gt;

&lt;p&gt;&lt;code&gt;terraform plan&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This command shows a summary of the actions Terraform will perform, such as creating the VPC.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Generates an execution plan, showing what actions Terraform will take to reach the desired state. This helps you verify the changes before applying them&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Apply the configuration to create the VPC in AWS&lt;/p&gt;

&lt;p&gt;&lt;code&gt;terraform apply&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Applies the changes required to reach the desired state of the configuration. It prompts for confirmation and then creates the resources in AWS&lt;/p&gt;

&lt;p&gt;Step 4: Verify the VPC&lt;br&gt;
Go to the AWS Management Console and navigate to the VPC section. So we can see the new VPC that was just created.&lt;/p&gt;

&lt;p&gt;In summary&lt;br&gt;
Using Terraform to create an AWS VPC is a strong method of managing cloud infrastructure. You may achieve consistency, scalability, and ease of maintenance by specifying your setup in code. Don’t forget to test changes thoroughly, adhere to best practices, and structure your code. Terraform is an essential tool for any cloud engineer since it allows you to automate and maintain your infrastructure effectively.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>A Developer’s Best Friend</title>
      <dc:creator>Dinushi Dhananjani ♥️ 🇱🇰</dc:creator>
      <pubDate>Tue, 20 Aug 2024 07:02:49 +0000</pubDate>
      <link>https://dev.to/vithanagedanu/a-developers-best-friend-1ehj</link>
      <guid>https://dev.to/vithanagedanu/a-developers-best-friend-1ehj</guid>
      <description>&lt;p&gt;Imagine you’re working on a big project with your team. Everyone contributes to the same files, making changes, adding new features, fixing bugs, and keeping track of who did what and when can be confusing and chaotic.&lt;/p&gt;

&lt;p&gt;So, how do developers work as a group and contribute to the project while keeping everything organized? We need a place to store our codebase where the whole team can access it.&lt;/p&gt;

&lt;p&gt;Every developer would have to handle their code files manually if there wasn’t a VCS like Git. Developers may become frustrated and waste time if they unintentionally overwrite the changes made by another developer.&lt;/p&gt;

&lt;p&gt;This is where a version control system like Git comes in handy.&lt;/p&gt;

&lt;p&gt;Let’s say, Noha and Liam, two developers, are implementing distinct features on the same file. After completing her work, Nohasaves her edits. Since there was no mechanism to keep track of who made modifications, Liam finished his work in the meanwhile and unintentionally saves it over Noha’s edits. Noha needs to start over because her work has been lost. Git might have prevented this scenario by enabling the two devs to work on their respective features independently.&lt;/p&gt;

&lt;p&gt;What is a Version Control System?&lt;br&gt;
One tool that helps developers manage code changes over time is a version control system or VCS. Because it keeps track of all the changes made to the codebase, keeps a history of those changes, and lets the team go back to earlier versions when needed, it makes it possible for numerous engineers to work together on a project.&lt;/p&gt;

&lt;p&gt;Why Do Developers Need a Version Control System?&lt;br&gt;
Collaboration&lt;/p&gt;

&lt;p&gt;Several developers collaborate on the same codebase in a team setting. Various team members’ contributions can be managed with a VCS without erasing each other’s work&lt;/p&gt;

&lt;p&gt;History Tracking&lt;/p&gt;

&lt;p&gt;By keeping track of all project modifications, a VCS enables developers to know the project’s past as well as who made what changes and why.&lt;/p&gt;

&lt;p&gt;Backup&lt;/p&gt;

&lt;p&gt;In the event of a local machine failure, the codebase is safe and recoverable because it is kept in a central repository.&lt;/p&gt;

&lt;p&gt;Branches and Merges&lt;/p&gt;

&lt;p&gt;Independent work on features or bug fixes can be done by developers by creating branches. The work can be integrated back into the main codebase after it has been finished and tested.&lt;/p&gt;

&lt;p&gt;There are many version control systems available, such as Git, Azure DevOps Server, Apache Subversion, and Mercurial. These tools offer various options to help manage and organize your source code effectively.&lt;/p&gt;

&lt;p&gt;In this article, I will focus on Git, the most popular version control system and the most widely used open-source option.&lt;/p&gt;

&lt;p&gt;Git and How Does Git Work?&lt;/p&gt;

&lt;p&gt;Git is a distributed version control system, Git ensures that every developer has a complete local copy of the repository. Because most processes are completed locally, this enables speedier operations. Here’s how Git manages code.&lt;/p&gt;

&lt;p&gt;Repository&lt;/p&gt;

&lt;p&gt;All of the project’s data, history, and branches are kept in one location — the repository.&lt;/p&gt;

&lt;p&gt;Commit&lt;/p&gt;

&lt;p&gt;When a developer makes a change, they create a “commit,” which is like a snapshot of the project at that point in time. Every commit is identified by a unique ID and includes a message detailing the changes that were performed.&lt;/p&gt;

&lt;p&gt;Branches&lt;/p&gt;

&lt;p&gt;To work on various project components without affecting the main source, developers can build branches. A team working on a new feature, for instance, would develop a branch named feature-x. The branch can be merged back into the main branch once the feature is finished.(commonly referred to as main or master)&lt;/p&gt;

&lt;p&gt;Let’s say that your group is working on a new website. For various elements like the homepage, login system, and payment gateway, the team may establish separate branches. In a different branch, every developer works on the given feature. The feature is integrated into the main branch, which contains the finished and tested version of the website, after it is ready.&lt;/p&gt;

&lt;p&gt;If a bug is discovered in the login system while it is being developed, the responsible developer can address it in the login-system branch and subsequently merge the fixed version into main to guarantee that the bug patch is present in the finished product.&lt;/p&gt;

&lt;p&gt;Merge&lt;/p&gt;

&lt;p&gt;Combining the modifications from one branch into another is known as a merge. For instance, a developer might merge a feature from the feature-x branch into the main branch once it is finished, including the feature into the main codebase.&lt;/p&gt;

&lt;p&gt;Here are some mostly used Git commands&lt;br&gt;
These commands cover the basics of using Git for version control and should help you manage your projects more effectively.&lt;/p&gt;

&lt;p&gt;git init&lt;br&gt;
Initializes a new Git repository in your project directory. Use this when starting a new project.&lt;/p&gt;

&lt;p&gt;git clone &lt;br&gt;
Clones an existing Git repository from a URL to your local machine.&lt;/p&gt;

&lt;p&gt;git status&lt;br&gt;
Displays the status of the working directory and staging area, showing which files have been modified, added, or deleted.&lt;/p&gt;

&lt;p&gt;git add &lt;br&gt;
Adds changes in the specified file(s) to the staging area. Use git add . to stage all changes.&lt;/p&gt;

&lt;p&gt;git commit -m “commit message”&lt;br&gt;
Records a snapshot of the staged changes, creating a new commit. The commit message should describe the changes made.&lt;/p&gt;

&lt;p&gt;git push&lt;br&gt;
Upload your local commits to a remote repository (e.g., GitHub). Use git push origin  to push changes to a specific branch.&lt;/p&gt;

&lt;p&gt;git pull&lt;br&gt;
Fetches and merges changes from a remote repository to your local branch, keeping your local repository up to date.&lt;/p&gt;

&lt;p&gt;git branch&lt;br&gt;
Lists all branches in the repository. Use git branch  to create a new branch.&lt;/p&gt;

&lt;p&gt;git checkout &lt;br&gt;
Switches to the specified branch. You can also use git checkout -b  to create and switch to a new branch in one command.&lt;/p&gt;

&lt;p&gt;git merge &lt;br&gt;
Merges the specified branch into the current branch, combining the changes from different branches.&lt;/p&gt;

&lt;p&gt;git log&lt;br&gt;
Displays the commit history, showing a list of commits along with their messages, authors, and dates.&lt;/p&gt;

&lt;p&gt;git stash&lt;br&gt;
Temporarily saves changes that are not ready to be committed, allowing you to switch branches or work on something else without losing your changes.&lt;/p&gt;

&lt;p&gt;git remote add origin &lt;br&gt;
Links your local repository to a remote repository, typically on a platform like GitHub.&lt;/p&gt;

&lt;p&gt;GitHub&lt;br&gt;
Version control is handled locally via Git, but GitHub offers an online infrastructure for hosting Git repositories, which facilitates collaboration. Teams may work together on projects, exchange code, and even manage tasks using pull requests and issues. GitHub also offers features like access control, bug tracking, and project management tools, making it an essential tool in modern software development.&lt;/p&gt;

&lt;p&gt;Conclusion&lt;br&gt;
In summary, a Version Control System (VCS) like Git is an essential tool for any development team. It makes collaboration easier by enabling several developers to work on the same project at once and makes sure that every change is recorded, giving a thorough history of the project. With a version control system (VCS), you may safely merge changes, work independently, and establish branches to keep your projects organized and avoid problems like overwritten or lost code. These skills are further enhanced by platforms like GitHub, which provide a centralized area for teams to work together, evaluate, and effectively manage their projects. One of the most important steps in creating software projects that are reliable, scalable, and well-managed is integrating VCS into your development process.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>The Future of the Internet</title>
      <dc:creator>Dinushi Dhananjani ♥️ 🇱🇰</dc:creator>
      <pubDate>Sun, 11 Aug 2024 08:53:14 +0000</pubDate>
      <link>https://dev.to/vithanagedanu/the-future-of-the-internet-pb2</link>
      <guid>https://dev.to/vithanagedanu/the-future-of-the-internet-pb2</guid>
      <description>&lt;p&gt;We are all part of the internet. Most people have smartphones, laptops, and other electronic devices we can access online. What will the future of the internet be? Yeah, it’s web3.0.&lt;/p&gt;

&lt;p&gt;Today we are going to talk about web 3.0. I am also learning and researching about web 3.0 but I like to share knowledge that I have found so far.&lt;/p&gt;

&lt;p&gt;Web 3.0 is the next evolution of internet technology. Better internet for everyone is the vision of Web 3.0. Web 3.0 is based on artificial intelligence, machine learning, and utilizing blockchain technology and the tools of decentralization. Web 3.0 transfers authority and power from corporations to individuals. That means in web3.0 you will be the owner of the content you publish online. This is somewhat accurate, so if you want a post to remain online, it will, but if you want to remove it, you can do so.&lt;/p&gt;

&lt;p&gt;Before we go deep down in web3.0 let’s figure out how we end up here and why…&lt;/p&gt;

&lt;p&gt;I love to explain it with the example that all of us face when we use the internet.&lt;/p&gt;

&lt;p&gt;All of us use social media and the internet because of that I am sure all of you have experienced that scenario.&lt;/p&gt;

&lt;p&gt;My friend and I talked about the iPhone and its pricing online, and I also searched the internet for information about the iPhone. While I was browsing some websites for some content, iPhone-related ads started popping up everywhere. Wow! How can it be? Well, you know what? We all know how that works. Those leading internet companies took our data and information and sold it to 3rd party companies. That’s why it happened.&lt;/p&gt;

&lt;p&gt;Before talking about this issue, I like to look at the history of the World Wide Web. I think it will help you to understand this better. Let’s break down the web into three parts. We have web1.0 web2.0 and web3.0&lt;/p&gt;

&lt;p&gt;Web1.0 ( 1990–2004)&lt;br&gt;
In 1989 Tim Berners Lee developed the decentralized protocols that help people to share information from anywhere on earth.&lt;/p&gt;

&lt;p&gt;Web 1.0 is read-only content just like a Wikipedia page and the web is not interactive.&lt;/p&gt;

&lt;p&gt;Web2.0 ( 2004-now)&lt;br&gt;
Web 2.0 is read-write content. JS, HTML5, and CSS3-like web technologies made the internet much more interactive, and because of that there are created several companies like Facebook, Youtube, etc… but the worst part is in Web 2.0 you were the product as you browsed social networks.&lt;/p&gt;

&lt;p&gt;When we seek out information or data from any kind of web platform on the internet, we unknowingly provide them with information related to our choices. The internet gives information that is stored in cookies and letters they send to various companies who make use of this data to advertise.&lt;/p&gt;

&lt;p&gt;this is how I was able to see ads for the iPhone that I used to search and talk with my friends and this is one of the biggest issues in web2.0&lt;/p&gt;

&lt;p&gt;We can change it to help with wb3.0, let’s see how&lt;/p&gt;

&lt;p&gt;Web3.0 ( The future)&lt;br&gt;
Gavin Wood, a co-founder of Ethereum, came up with the concept of “Web 3.0” immediately after Ethereum launched in 2014.&lt;/p&gt;

&lt;p&gt;The phrase “Web3” has come to represent the idea of a new, improved internet. In essence, Web3 uses blockchains, cryptocurrencies, and NFTs to return ownership and authority to the consumers.web3.0 will be read-write-own.&lt;/p&gt;

&lt;p&gt;The next chapter is the creation of the internet, which will employ blockchain and artificial intelligence to process data at a level of intellect close to that of a person. They operate cutting-edge systems that assist consumers by giving them pertinent options. It represents a significant step toward permissionless, open networks.&lt;/p&gt;

&lt;p&gt;Web 3.0 is propelled by new layers of technological innovation, whereas Web 2.0 was primarily driven by the advent of mobile, social, and cloud technologies.&lt;/p&gt;

&lt;p&gt;The layers of web3.0&lt;br&gt;
Edge computing&lt;/p&gt;

&lt;p&gt;A distributed computing paradigm called “edge computing” brings computation and data storage closer to the data sources.&lt;/p&gt;

&lt;p&gt;Edge is about processing data more quickly and in larger volumes near the point of generation, providing action-driven solutions in real time.&lt;/p&gt;

&lt;p&gt;Decentralization&lt;/p&gt;

&lt;p&gt;It can be stored in multiple locations at once, decentralizing it and destroying the biggest databases currently housed by internet behemoth corporations. Decentralization increases individual power.&lt;/p&gt;

&lt;p&gt;Artificial Intelligence &amp;amp; Machine Learning&lt;/p&gt;

&lt;p&gt;Natural language processing and semantic web principles are used to create Web 3.0 technology. Computers will be able to comprehend the data similarly to how people do.&lt;/p&gt;

&lt;p&gt;Blockchain&lt;/p&gt;

&lt;p&gt;Blockchain.com is a provider of financial services for cryptocurrencies. Blockchain is a decentralized, immutable database that makes it easier to track assets and record transactions in a corporate network.&lt;/p&gt;

&lt;p&gt;And also there are key features of web3.0&lt;br&gt;
Ownership&lt;/p&gt;

&lt;p&gt;Permission less&lt;/p&gt;

&lt;p&gt;Trustful&lt;/p&gt;

&lt;p&gt;Native Payments&lt;/p&gt;

&lt;p&gt;Identity&lt;/p&gt;

&lt;p&gt;Decentralized autonomous organizations&lt;/p&gt;

&lt;p&gt;Censorship resistance&lt;/p&gt;

&lt;p&gt;Through Web 3.0, everyone can access the internet at all times and from any location. LOT technology will introduce several upcoming smart devices. As opposed to Web 2.0, these internet-connected devices won’t just be restricted to computers and smartphones.&lt;/p&gt;

&lt;p&gt;With Web 3.0, participants can engage directly without the requirement for a trusted third party or authorization from a governing body. As a result, you can access any data that is pertinent to your choices without obtaining authorization from any other node or outside party. Simply put, we are not required to accept cookies on the website, and you are not required to submit any kind of information.&lt;/p&gt;

&lt;p&gt;Web 3.0 is a massive topic and a very interesting area to cover. I will learn more about web3.0 and come back with another article on webweb3.0. This article only covers the very basics of web3.0&lt;/p&gt;

</description>
    </item>
    <item>
      <title>What exactly is cloud computing ?</title>
      <dc:creator>Dinushi Dhananjani ♥️ 🇱🇰</dc:creator>
      <pubDate>Sun, 16 Oct 2022 18:48:32 +0000</pubDate>
      <link>https://dev.to/vithanagedanu/what-exactly-is-cloud-computing--3h0</link>
      <guid>https://dev.to/vithanagedanu/what-exactly-is-cloud-computing--3h0</guid>
      <description>&lt;p&gt;&lt;strong&gt;"Cloud computing is a computer in the sky." What? How is that possible?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When I first heard the name " Cloud Computing", a lot of questions sprang up in my mind. The first time we hear about the name, we get confused, so let's talk about what cloud computing is. By the time you finish reading this article, I hope you would've gotten a clear idea about this topic.&lt;/p&gt;

&lt;p&gt;Anna is a person who runs a shopping store in a town, and she went shopping to collect the resources she needed to host her online shopping application. She went to the computer store and got the CPU, monitor, network cables, and UPC, and she had to spend a lot of money on that computer hardware. She came to her shopping store and set up all the hardware components and hosted her online e-commerce application through the internet.&lt;/p&gt;

&lt;p&gt;Anna's web application was hosted on the internet for her customers, and her business grew steadily. When the new year came, Anna offered a 25% to 50% discount for all the items on her website. As a result, customers went into a shopping frenzy and began to shop and browse on her website. This resulted in a lot of traffic, and the application crashed due to the server and other hardware being unable to handle the load.&lt;/p&gt;

&lt;p&gt;To handle this amount of network traffic, Anna must upgrade to On-Premise Computing, which requires her to purchase another server. However, once the season is over, Anna no longer needs the extra server to handle network traffic on her application. So, what is the solution to her problem?&lt;/p&gt;

&lt;h2&gt;
  
  
  What exactly is On-Premise Computing?
&lt;/h2&gt;

&lt;p&gt;Honestly, it's really simple. Anna used on-premise computing to host her application. On-premise computing includes servers, databases, software applications, networking cables, and secure handling. Basically, we configure all the infrastructure locally in our building or office in "On-Premise Computing."&lt;/p&gt;

&lt;h2&gt;
  
  
  Why cloud computing?
&lt;/h2&gt;

&lt;p&gt;On-premise computing in Anna's scenario means that Anna has to pay a lot of money to obtain the servers and other infrastructure.&lt;/p&gt;

&lt;p&gt;When we face a situation like Anna's, at peak times, we cannot handle the network traffic on the application. To solve this problem, Anna has to purchase another server. But when the peak time is gone and the web traffic becomes normal, the additional server is useless, but she has already paid for the server.&lt;/p&gt;

&lt;p&gt;Simple on-premise is not easy with scalability. We have to pay for the setup, and once we scale up, it is difficult to scale down. There are also heavy losses in terms of infrastructure and maintenance costs.&lt;/p&gt;

&lt;p&gt;On-Premise Computing needs a lot of space for the servers, and those servers need power continuously. They also need to be maintained.&lt;/p&gt;

&lt;p&gt;The most important part is security. As a company, we have to protect our data security, but on-premise computing systems offer less data security and a complicated combination of physical and traditional IT security measures. If we lose the data, it's hard to recover it from an on-premise system. We need a team to manage hardware and software.&lt;/p&gt;

&lt;p&gt;In the past, those were the main issues that companies faced with on-premise computing systems. So this is where Cloud Computing saves the day.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cloud Computing
&lt;/h2&gt;

&lt;p&gt;Companies can have their own data centers or computing infrastructure. If not, companies can rent these computer resources and infrastructure from the cloud service providers through the internet. We call this "cloud computing."&lt;/p&gt;

&lt;p&gt;In On-Premise Computing, we have limited capacity in certain locations. In that capacity, we provide services like VMs or containers. Applications can be run on VMs and containers.&lt;/p&gt;

&lt;p&gt;When we consider cloud computing, it's not that different from on-premise computing. In the cloud, there is a huge amount of capacity. There are actual physical data centers in different locations. They can be different buildings, cities, or countries. In the data centers, there are clusters of servers and racks with various nodes that actually run a particular workload.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;" Cloud computing" is the on-demand delivery of IT resources over the Internet with pay-as-you-go pricing.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Imagine we manage our files and services on our local system. We can do it over the internet in a cost-efficient manner.&lt;br&gt;
Simply, we can use IT resources over the internet, servers, networking, storage, development tools, applications, etc. The good part is that we have to pay only for the resources that we use. We can rent IT resources through the cloud provider when we need them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Benefits of Cloud Computing
&lt;/h2&gt;

&lt;p&gt;In Anna's scenario, we get the idea about why we need cloud computing then let's talk about that,&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scalability&lt;/strong&gt; -  Scalability is one of the main benefits of cloud computing. When there is too much traffic on our application, we can schedule additional resources to be deployed to the server. We can scale up or down our server in seconds, and we only pay for the resources that we use.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cost&lt;/strong&gt; - cloud computing has a cost. Pay-as-you-go pricing means we pay only for what we need and when we use it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Speed&lt;/strong&gt; - We do not have to spend a lot of time setting up our servers and configuring the infrastructure. In cloud computing, we can set up our servers and all the infrastructure in a few minutes with just a few mouse clicks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reliability&lt;/strong&gt; - If there is a data loss, cloud computing systems have robust disaster recovery measures in place to ensure faster and easier data recovery. Reliability means when we access an online application, the application must be up and running, and it must be accessible at any time and any location. When we use the application, there will be no interruptions or downtime, and our connections must be secure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Availability&lt;/strong&gt; - High availability is one of the best benefits of cloud computing. High availability means our products, and services are available for our customers at any time, anywhere, and using any device across the internet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cloud availability is related to cloud reliability.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Security - Cloud computing offers better security and lets you avoid having to constantly monitor and manage security protocols&lt;/p&gt;

&lt;p&gt;Moving to cloud computing is a better way to run your business with less cost.&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>devops</category>
      <category>aws</category>
      <category>azure</category>
    </item>
  </channel>
</rss>
