<?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: Ranjit Odedra</title>
    <description>The latest articles on DEV Community by Ranjit Odedra (@ranjitodedra).</description>
    <link>https://dev.to/ranjitodedra</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%2F935894%2F6749b54b-7992-4104-b89a-48cc214061af.jpeg</url>
      <title>DEV Community: Ranjit Odedra</title>
      <link>https://dev.to/ranjitodedra</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ranjitodedra"/>
    <language>en</language>
    <item>
      <title>Getting Started with CircleCI</title>
      <dc:creator>Ranjit Odedra</dc:creator>
      <pubDate>Thu, 23 Mar 2023 13:59:11 +0000</pubDate>
      <link>https://dev.to/ranjitodedra/circlecl-o9p</link>
      <guid>https://dev.to/ranjitodedra/circlecl-o9p</guid>
      <description>&lt;p&gt;CircleCI is a CI/CD platform that assists software development teams in automating their build, test, and deployment processes. It has an easy-to-use interface and supports a number of programming languages, including Python, Java, Ruby, and Node.js. This article will introduce CircleCI to beginners and walk you through the process of creating your first project.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is CircleCI?
&lt;/h2&gt;

&lt;p&gt;CircleCI is a cloud-based CI/CD platform that helps development teams automate their build, test, and deployment processes. With CircleCI, you can build, test, and deploy your code automatically every time you push a change to your repository. This helps to catch errors early in the development process, and ensures that your code is always ready to be deployed.&lt;/p&gt;

&lt;h2&gt;
  
  
  CircleCI offers a variety of features, including:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A wide range of programming languages and frameworks are supported. Integration with well-known version control systems such as GitHub and Bitbucket.&lt;/li&gt;
&lt;li&gt;An easy to use interface that makes it simple to set up and manage your projects.&lt;/li&gt;
&lt;li&gt;Automated testing and deployment, so you can catch errors early and deploy your code with confidence.&lt;/li&gt;
&lt;li&gt;Scalability, so you can easily add more resources as your project grows.&lt;/li&gt;
&lt;li&gt;To get started with CircleCI, you will need to create an account and set up a project.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Steps to Get Started
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Create an account
&lt;/h3&gt;

&lt;p&gt;To create an account, go to the CircleCI website and click the "Sign Up" button. You can sign up using your GitHub, Bitbucket, or GitLab account.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Create a project
&lt;/h3&gt;

&lt;p&gt;Once you have created an account, you can create a new project by clicking the "Add Projects" button on the dashboard. Select the repository that you want to use, and follow the instructions to set up the project.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Set up your first build
&lt;/h3&gt;

&lt;p&gt;To set up your first build, you will need to add a CircleCI configuration file to your repository. This file should be named ".circleci/config.yml" and should contain the instructions for CircleCI to build, test, and deploy your code.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Configure your project
&lt;/h3&gt;

&lt;p&gt;After you have created your project, you will need to configure it. CircleCI uses a YAML configuration file to define the build, test, and deployment process for your project. You can create this file manually or use one of the pre-built templates provided by CircleCI.&lt;/p&gt;

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

&lt;p&gt;Here is an example configuration file for a Python project&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;version: 2
jobs:
  build:
    docker:
      - image: python:3.7
    steps:
      - checkout
      - run: pip install -r requirements.txt
      - run: pytest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This configuration file tells CircleCI to use the Python 3.7 Docker image, install the project's dependencies using pip, and run the project's tests using pytest.&lt;/p&gt;

&lt;p&gt;To add this configuration file to your repository, create a new file named ".circleci/config.yml" and paste the contents of the configuration file into it. Commit this file to your repository and push the changes to GitHub, Bitbucket, or GitLab.&lt;/p&gt;

&lt;p&gt;Once you have added the configuration file to your repository, CircleCI will automatically detect it and start building your project. You can monitor the progress of your build on the CircleCI dashboard.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why CircleCI over Jenkins
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Simplicity: CircleCI is a cloud-based service that is easy to set up and use, while Jenkins requires more configuration and maintenance.&lt;/li&gt;
&lt;li&gt;Speed: CircleCI can often run builds faster than Jenkins, especially when using its machine executor or Docker layer caching.&lt;/li&gt;
&lt;li&gt;Scalability: CircleCI can automatically scale up or down to handle varying workload demands, while Jenkins requires manual configuration to add or remove worker nodes.&lt;/li&gt;
&lt;li&gt;Security: CircleCI provides built-in security features such as automatic container scanning, which Jenkins requires additional plugins and configuration to achieve.&lt;/li&gt;
&lt;li&gt;Integration: CircleCI has seamless integration with GitHub, Bitbucket, and other version control systems, making it easier to set up and use with your existing workflow.&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;CircleCI is a powerful CI/CD platform that can help your development team automate your build, test, and deployment processes. With support for a wide range of programming languages and frameworks, and integration with popular version control systems, CircleCI makes it easy to get started with continuous integration and deployment.&lt;/p&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://medium.com/hackernoon/continuous-integration-circleci-vs-travis-ci-vs-jenkins-41a1c2bd95f5" rel="noopener noreferrer"&gt;https://medium.com/hackernoon/continuous-integration-circleci-vs-travis-ci-vs-jenkins-41a1c2bd95f5&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://medium.com/better-programming/how-to-setup-continuous-integration-ci-with-react-circleci-and-github-e0efd5040b03" rel="noopener noreferrer"&gt;https://medium.com/better-programming/how-to-setup-continuous-integration-ci-with-react-circleci-and-github-e0efd5040b03&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Author's
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;The article is written by &lt;br&gt;
&lt;a href="https://github.com/ranjitodedra" rel="noopener noreferrer"&gt;Ranjit Odedra&lt;/a&gt; and &lt;a href="https://github.com/PriyaMakadia" rel="noopener noreferrer"&gt;Priya Makadia&lt;/a&gt; — Student's at Charotar University of Science and technology.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>circlecl</category>
    </item>
    <item>
      <title>CRUD Operation in MongoDB</title>
      <dc:creator>Ranjit Odedra</dc:creator>
      <pubDate>Mon, 14 Nov 2022 09:56:50 +0000</pubDate>
      <link>https://dev.to/ranjitodedra/crud-operation-in-mongodb-1d63</link>
      <guid>https://dev.to/ranjitodedra/crud-operation-in-mongodb-1d63</guid>
      <description>&lt;h1&gt;
  
  
  Base Notes
&lt;/h1&gt;

&lt;p&gt;table → collections&lt;/p&gt;

&lt;p&gt;row → documents&lt;/p&gt;

&lt;p&gt;column → fields&lt;/p&gt;

&lt;h2&gt;
  
  
  Base Commands
&lt;/h2&gt;

&lt;p&gt;start mongodb → &lt;code&gt;mongo&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;show dbs&lt;/code&gt; → to show data bases&lt;/p&gt;

&lt;p&gt;&lt;code&gt;use newdb&lt;/code&gt; → if db is not present then create it otherwise use it&lt;/p&gt;

&lt;p&gt;&lt;code&gt;db&lt;/code&gt; → give active database &lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;&lt;em&gt;Create&lt;/em&gt;&lt;/strong&gt;
&lt;/h1&gt;

&lt;h2&gt;
  
  
  insertOne()
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;db.collectionname.insertOne({name:”ReactJS”,type:”frontend”,videos:80,active:true})&lt;/code&gt; → it create colleection of &lt;strong&gt;collectionname&lt;/strong&gt; and create document&lt;/p&gt;

&lt;h2&gt;
  
  
  insertMany()
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;db.collectionname.insertMany([{ name:”ReactJS”,type:”frontend”,videos:80,active:true},{name:”ReactJS”,type:”frontend”,videos:80,active:true}])show collections&lt;/code&gt; → gives all collections in db&lt;code&gt;db.collectionname.find()&lt;/code&gt; → gives all documents of the &lt;strong&gt;collectionname&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;db.collectionname.find().pretty()&lt;/code&gt; → give documents of &lt;strong&gt;collectionname&lt;/strong&gt; in a good format&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;&lt;em&gt;Read&lt;/em&gt;&lt;/strong&gt;
&lt;/h1&gt;

&lt;h2&gt;
  
  
  find()
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;db.collection.find({queary,projection})&lt;/code&gt; → for read&lt;/p&gt;

&lt;p&gt;&lt;code&gt;db.collection.find({name:”physics”},{_id:0,name:1})&lt;/code&gt; → it will print name of having name as physics&lt;/p&gt;

&lt;h2&gt;
  
  
  limit()
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;db.collection.find({name:”physics”},{_id:0,name:1}).limit(2)&lt;/code&gt;-&amp;gt; it will only print first 2&lt;/p&gt;

&lt;h2&gt;
  
  
  findOne() → gives on document
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;db.collection.findOne({name:”physics”},{_id:0,name:1})&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  skip(1)→ it will give from second one
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;db.collection.find({name:”physics”},{_id:0,name:1}).limit(2).skip(1)&lt;/code&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;&lt;em&gt;UPDATE&lt;/em&gt;&lt;/strong&gt;
&lt;/h1&gt;

&lt;h2&gt;
  
  
  updateOne() ⇒ db.collection.updateOne(,)
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;db.cone.updateOne({name:"Physics"},{$set:{value:300}})&lt;/code&gt; → update value by 300 of doc having name Physics&lt;/p&gt;

&lt;h2&gt;
  
  
  updateMany() ⇒ db.collection.updateMany(,)
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;db.cone.updateMany({name:"Physics"},{$set:{value:300}})&lt;/code&gt; → update value by 300 of docs having name Physics&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;&lt;em&gt;Delete&lt;/em&gt;&lt;/strong&gt;
&lt;/h1&gt;

&lt;h2&gt;
  
  
  deleteMany(criteria)
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;db.cone.deleteMany({name:"Physics"})&lt;/code&gt; → delete doc having name as Physics&lt;/p&gt;

&lt;p&gt;&lt;code&gt;db.cone.deleteMany({})&lt;/code&gt; → delete all docs&lt;/p&gt;

</description>
      <category>mern</category>
      <category>mongof</category>
      <category>nosql</category>
      <category>database</category>
    </item>
    <item>
      <title>Linux Commands</title>
      <dc:creator>Ranjit Odedra</dc:creator>
      <pubDate>Tue, 08 Nov 2022 12:59:45 +0000</pubDate>
      <link>https://dev.to/ranjitodedra/linux-commands-18hk</link>
      <guid>https://dev.to/ranjitodedra/linux-commands-18hk</guid>
      <description>&lt;p&gt;&lt;code&gt;mkdir&lt;/code&gt; → to make a new directory &lt;/p&gt;

&lt;p&gt;&lt;code&gt;ls&lt;/code&gt; → to print list of all dirctories and files&lt;/p&gt;

&lt;p&gt;&lt;code&gt;clear&lt;/code&gt; → to clear terminal&lt;/p&gt;

&lt;p&gt;&lt;code&gt;whoami&lt;/code&gt; → to display the current user&lt;/p&gt;

&lt;p&gt;&lt;code&gt;pwd&lt;/code&gt; → display the current working directory&lt;/p&gt;

&lt;p&gt;&lt;code&gt;cd&lt;/code&gt; → to change directory &lt;/p&gt;

&lt;p&gt;&lt;code&gt;touch filename.txt&lt;/code&gt; → create a empty text file&lt;/p&gt;

&lt;p&gt;&lt;code&gt;touch file{1..5}.txt&lt;/code&gt; → create 5 empty file&lt;/p&gt;

&lt;p&gt;&lt;code&gt;cat &amp;gt; filename.txt&lt;/code&gt; → add content to file from terminal&lt;/p&gt;

&lt;p&gt;&lt;code&gt;cat filename.txt&lt;/code&gt; → print content of file&lt;/p&gt;

&lt;p&gt;&lt;code&gt;cat file{1..2}.txt&lt;/code&gt; → print content of file1 to file2&lt;/p&gt;

&lt;p&gt;&lt;code&gt;cat &amp;gt;&amp;gt; file1.txt&lt;/code&gt; → to update content of file&lt;/p&gt;

&lt;p&gt;&lt;code&gt;cp file1.txt file2.txt&lt;/code&gt; → copy content of file1 into file2&lt;/p&gt;

&lt;p&gt;&lt;code&gt;mv file3.txt f3.txt&lt;/code&gt; → rename file3 as f3&lt;/p&gt;

&lt;p&gt;&lt;code&gt;wc -l file1.txt&lt;/code&gt; → print count of lines in file   &lt;/p&gt;

&lt;p&gt;&lt;code&gt;wc -w file1.txt&lt;/code&gt; → print count of words in file&lt;/p&gt;

&lt;p&gt;&lt;code&gt;wc -m file1.txt&lt;/code&gt; → print count  of character in file&lt;/p&gt;

&lt;p&gt;&lt;code&gt;cmp file4.txt file5.txt&lt;/code&gt; → compare two file byte by byte and tell its identical or not&lt;/p&gt;

&lt;p&gt;&lt;code&gt;comm file4.txt file5.txt&lt;/code&gt; → gives what is comman in file4 and file5 (also used to find unique)&lt;/p&gt;

&lt;p&gt;&lt;code&gt;diff file4.txt file5.txt&lt;/code&gt; → give difference between file4 and file5&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sort f{1..2}.txt&lt;/code&gt; → sort content of f1.txt and f2.txt (alphabetically)&lt;/p&gt;

&lt;p&gt;&lt;code&gt;cat f1.txt f2.txt &amp;gt; f3.txt&lt;/code&gt; → merge two files f1.txt and f2.txt and copy in to f3.txt&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sort f3.txt | uniq -u&lt;/code&gt; → remove all dublicates from f3.txt and print (doesn’t affect the original file).&lt;/p&gt;

&lt;p&gt;&lt;code&gt;tr a-z A-Z &amp;lt; f1.txt&lt;/code&gt; → translate lower case to upper case  (doesn’t affect the original file).&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sed ‘s/[0-9]*//g’ &amp;lt; f1.txt&lt;/code&gt; → remove numeric values from file.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;head f3.txt&lt;/code&gt; → print first 10 lines from file&lt;/p&gt;

&lt;p&gt;&lt;code&gt;tail f3.txt&lt;/code&gt; → print last 10 lines from file&lt;/p&gt;

&lt;p&gt;&lt;code&gt;more f3.txt&lt;/code&gt; → print all things *&lt;/p&gt;

&lt;p&gt;&lt;code&gt;less f3.txt&lt;/code&gt; → print all things *&lt;/p&gt;

&lt;p&gt;&lt;code&gt;grep -w linux &amp;lt; file9.txt&lt;/code&gt; → it gives all lines containing linux word (grep linux file9.txt)&lt;/p&gt;

&lt;p&gt;&lt;code&gt;grep -n linux &amp;lt; file9.txt&lt;/code&gt; → it gives line number with line containing linux word &lt;/p&gt;

&lt;p&gt;&lt;code&gt;grep -a --count linux&lt;/code&gt; &amp;lt; file9.txt → it gives count of line containing linux word&lt;/p&gt;

&lt;p&gt;&lt;code&gt;grep ‘+linux*’ file9.txt&lt;/code&gt; → gives the lines which starts from linux word&lt;/p&gt;

&lt;p&gt;&lt;code&gt;grep ‘os$’ file9.txt&lt;/code&gt; → gives lines which ends with os word&lt;/p&gt;

&lt;p&gt;&lt;code&gt;ls -l&lt;/code&gt; → gives what permissions files have &lt;/p&gt;

&lt;p&gt;&lt;code&gt;ls -l&lt;/code&gt; filename→ gives what permissions files have &lt;/p&gt;

&lt;p&gt;&lt;code&gt;ls -ld&lt;/code&gt; → gives directory permissions&lt;/p&gt;

&lt;p&gt;&lt;code&gt;history&lt;/code&gt; &amp;gt; workdone.txt → history give all the commands that we just write we can store it text file&lt;/p&gt;

&lt;p&gt;&lt;code&gt;w&lt;/code&gt; → gives info about all users&lt;/p&gt;

&lt;h2&gt;
  
  
  Permissions
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;rwx     rwx     rwx
user    group   other
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note that “r” is for read, “w” is for write, and “x” is for execute&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hAFxqGhj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3-us-west-2.amazonaws.com/secure.notion-static.com/f8941e1a-c0c5-4ced-b4b5-cbb733654550/Untitled.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hAFxqGhj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3-us-west-2.amazonaws.com/secure.notion-static.com/f8941e1a-c0c5-4ced-b4b5-cbb733654550/Untitled.png" alt="Untitled" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;chmod ugo+rwx foldername&lt;/code&gt; → to give read, write, and execute to everyone.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;chmod a=r foldername&lt;/code&gt; → to give only read permission for everyone.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--D5jEI7tz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3-us-west-2.amazonaws.com/secure.notion-static.com/6fa4b5c0-0e58-4fbb-aee5-a31d6f29b92f/Untitled.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--D5jEI7tz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3-us-west-2.amazonaws.com/secure.notion-static.com/6fa4b5c0-0e58-4fbb-aee5-a31d6f29b92f/Untitled.png" alt="Untitled" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The first character will almost always be either a ‘-‘, which means it’s a file, or a ‘d’, which means it’s a directory.&lt;/li&gt;
&lt;li&gt;The next nine characters (rw-r–r–) show the security; &lt;/li&gt;
&lt;li&gt;The next column shows the owner of the file. In this case it is me, my userID is “aditya314”.&lt;/li&gt;
&lt;li&gt;The next column shows the group owner of the file. In my case I want to give the “aditya314” group of people special access to these files.&lt;/li&gt;
&lt;li&gt;The next column shows the size of the file in bytes.&lt;/li&gt;
&lt;li&gt;The next column shows the date and time the file was last modified.&lt;/li&gt;
&lt;li&gt;And, of course, the final column gives the filename.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;code&gt;chmod 755 file.txt&lt;/code&gt; → to change permissions of file&lt;/p&gt;

&lt;p&gt;&lt;code&gt;chmod 555 ce&lt;/code&gt; → change permission of directory&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;new permission will be -rwxr-xr-x&lt;/em&gt;&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;&lt;code&gt;id&lt;/code&gt; → gives information about current user and groups and other info&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$HOME&lt;/code&gt; → gives path of home.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$PATH&lt;/code&gt; →  also give path&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo su&lt;/code&gt; → become root user&lt;/p&gt;

&lt;p&gt;&lt;code&gt;head -5 file.txt&lt;/code&gt; → print first five lines&lt;/p&gt;

&lt;p&gt;&lt;code&gt;tail -2 file.txt&lt;/code&gt; → print last two lines&lt;/p&gt;

&lt;p&gt;&lt;code&gt;rm file.txt&lt;/code&gt; → remove file&lt;/p&gt;

&lt;p&gt;&lt;code&gt;rm -r directory_name&lt;/code&gt; → remove dirctory&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo adduser username&lt;/code&gt; → adds a new user &lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo addgroup g1&lt;/code&gt; → adds new group &lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo groupadd -g 10000 groupname&lt;/code&gt; → create group &lt;/p&gt;

&lt;p&gt;&lt;code&gt;cat /etc/group&lt;/code&gt; → display all the groups&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo usermod -aG groupname username&lt;/code&gt; → add user to a group&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo chown username filename&lt;/code&gt; → to change username&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo chown username:groupname&lt;/code&gt; filename`→ change group name&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo chgrp groupname filename&lt;/code&gt; → change groupname&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo chgr groupname directoryname&lt;/code&gt; → change groupname&lt;/p&gt;

&lt;p&gt;&lt;code&gt;umask&lt;/code&gt; → display current value of shells mask&lt;/p&gt;

&lt;p&gt;&lt;code&gt;umask 531&lt;/code&gt; → set umask&lt;/p&gt;

&lt;p&gt;&lt;code&gt;top&lt;/code&gt; → display all processes&lt;/p&gt;

&lt;p&gt;&lt;code&gt;ps&lt;/code&gt; → give all process associated with current user&lt;/p&gt;

&lt;p&gt;&lt;code&gt;ps aux&lt;/code&gt; → list down all the processes associated with their terminal and states&lt;/p&gt;

&lt;p&gt;&lt;code&gt;ps l&lt;/code&gt; →&lt;/p&gt;

&lt;p&gt;&lt;code&gt;ps lx&lt;/code&gt; →&lt;/p&gt;

&lt;p&gt;&lt;code&gt;kill -l&lt;/code&gt; → display all names and number of available signal&lt;/p&gt;

</description>
      <category>linux</category>
      <category>operatingsystem</category>
      <category>opensource</category>
      <category>devjournal</category>
    </item>
    <item>
      <title>How To Contribute in Hacktoberfest</title>
      <dc:creator>Ranjit Odedra</dc:creator>
      <pubDate>Mon, 03 Oct 2022 13:28:25 +0000</pubDate>
      <link>https://dev.to/ranjitodedra/how-to-contribute-in-hacktoberfest-1bai</link>
      <guid>https://dev.to/ranjitodedra/how-to-contribute-in-hacktoberfest-1bai</guid>
      <description>&lt;h3&gt;
  
  
  follow the steps to make a contribution
&lt;/h3&gt;

&lt;p&gt;I considered that you already registered to hacktoberfest&lt;br&gt;
if note click &lt;a href="https://hacktoberfest.com/"&gt;HERE&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;before you start working on any issue you have to ask owner of that repo that I am work on this particular issue.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GVum8HWI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tnvbg85rkd1d6x27wfmc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GVum8HWI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tnvbg85rkd1d6x27wfmc.png" alt="assign" width="880" height="655"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;then maintainer will assign you that task&lt;/p&gt;
&lt;h3&gt;
  
  
  1. Fork The repo for first contribution
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VgZGktLY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uq3pa1m0x8ydrlc4e5ty.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VgZGktLY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uq3pa1m0x8ydrlc4e5ty.png" alt="fork" width="880" height="372"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;for your 2nd , 3rd and 4th contribution each time you have to sync changes instead of fork&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IGDI-n_m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y1xahwkrbjujyxget5lh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IGDI-n_m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y1xahwkrbjujyxget5lh.png" alt="synk" width="880" height="292"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  2. Clone Repo to your PC
&lt;/h3&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone https://github.com/&amp;lt;your-username&amp;gt;/trendit.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;for your 2nd , 3rd and 4th contribution each time you have to pull instead of clone&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git pull
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Make changes that mentioned in issue
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CTclswCw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3guhoamvgl5pi5soexl9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CTclswCw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3guhoamvgl5pi5soexl9.png" alt="issue" width="880" height="380"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4. push to you github account
&lt;/h3&gt;

&lt;p&gt;Add all files&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git add .
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Commit and provide message about what you did&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git commit -m "message about what you did"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;push the code&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git push origin main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;if you get any error in this steps then search in Stackoverflow &lt;br&gt;
Hopefully you will find solution.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. make pull request from your repo
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GVnc6SYZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qkvcoa72drj2js3c4owf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GVnc6SYZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qkvcoa72drj2js3c4owf.png" alt="Image description" width="880" height="326"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kPJG-XUd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/joxh5x1aypkm0c1xgsnp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kPJG-XUd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/joxh5x1aypkm0c1xgsnp.png" alt="Image description" width="880" height="276"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--I3Qr7Ml8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qhqrfq6qcm1zek9xarwm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--I3Qr7Ml8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qhqrfq6qcm1zek9xarwm.png" alt="Image description" width="880" height="320"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HZu20YZa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fmrzgb7js9qoti14dcfw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HZu20YZa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fmrzgb7js9qoti14dcfw.png" alt="Image description" width="880" height="392"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  6. check in Hacktoberfest site
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ilneHNEL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z7gd8hgm0vuacp2l3sdy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ilneHNEL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z7gd8hgm0vuacp2l3sdy.png" alt="Image description" width="880" height="233"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;after your pull request is merged you will this timer in hacktoberfest website &lt;/p&gt;

&lt;p&gt;after seven days your pull request will be count &lt;/p&gt;

&lt;p&gt;Now you are ready to get your goodies &lt;br&gt;
be in first 40000&lt;/p&gt;

&lt;p&gt;follow - &lt;a class="mentioned-user" href="https://dev.to/ranjitodedra"&gt;@ranjitodedra&lt;/a&gt;&lt;/p&gt;

</description>
      <category>contributorswanted</category>
      <category>hacktoberfest</category>
      <category>mern</category>
      <category>react</category>
    </item>
    <item>
      <title>All about Hecktoberfest</title>
      <dc:creator>Ranjit Odedra</dc:creator>
      <pubDate>Mon, 03 Oct 2022 11:39:08 +0000</pubDate>
      <link>https://dev.to/ranjitodedra/all-about-hecktoberfest-5el1</link>
      <guid>https://dev.to/ranjitodedra/all-about-hecktoberfest-5el1</guid>
      <description>&lt;h1&gt;
  
  
  What is Hacktoberfest ?
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;it is an event that yearly organized by Digitalocean to to encourage people to contribute to open source.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  What is Open Source ?
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Open source software is software with source code that anyone can inspect, modify, and enhance.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Why I should participate in Hacktoberfest ?
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;By participating in Hacktoberfest you will learn about Git and GitHub.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;you will opportunity to interact with people of different countries&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;you will get goodies&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dagadBXa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qb4jc9c2nym98tcrvpoy.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dagadBXa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qb4jc9c2nym98tcrvpoy.jpg" alt="Image description" width="219" height="230"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Criteria
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Have 4 pull/merge requests accepted between October 1 and October 31 to complete Hacktoberfest&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The first 40,000 participants (maintainers and contributors) who complete Hacktoberfest can elect to receive one of two prizes: a tree planted in their name, or the Hacktoberfest 2022 t-shirt.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;register from &lt;a href="https://hacktoberfest.com/"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;follow me on github I am maintainer of two repo where you can contact me&lt;br&gt;
&lt;a class="mentioned-user" href="https://dev.to/ranjitodedra"&gt;@ranjitodedra&lt;/a&gt; &lt;/p&gt;

</description>
      <category>mern</category>
      <category>hacktoberfest</category>
      <category>react</category>
      <category>reactnative</category>
    </item>
    <item>
      <title>Basics of Graph</title>
      <dc:creator>Ranjit Odedra</dc:creator>
      <pubDate>Sun, 02 Oct 2022 17:14:47 +0000</pubDate>
      <link>https://dev.to/ranjitodedra/basics-of-graph-13md</link>
      <guid>https://dev.to/ranjitodedra/basics-of-graph-13md</guid>
      <description>&lt;h1&gt;
  
  
  Basics of Graph
&lt;/h1&gt;

&lt;p&gt;Graph is data structure it has two componets &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;vertex / node&lt;/li&gt;
&lt;li&gt;edge&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Type of Graph
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;Undirect&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KDqRDkPt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ywfu703kv3rggrv54bqb.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KDqRDkPt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ywfu703kv3rggrv54bqb.jpg" alt="Image description" width="880" height="679"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;degree(1) = 2 ← no of connected edges &lt;/p&gt;

&lt;p&gt;degree(2) = 3&lt;/p&gt;

&lt;h3&gt;
  
  
  Total Number of edges in Undirect graph = 2 * E
&lt;/h3&gt;

&lt;p&gt;(where E = Number of edges)&lt;/p&gt;

&lt;h2&gt;
  
  
  Path
&lt;/h2&gt;

&lt;p&gt;sequence of node without reapeting or revisiting any node.&lt;/p&gt;

&lt;h3&gt;
  
  
  ex
&lt;/h3&gt;

&lt;p&gt;1 3 2&lt;/p&gt;

&lt;p&gt;1 5 &lt;/p&gt;

&lt;p&gt;❌1 3 2 3 → invalid can’t revisit&lt;/p&gt;

&lt;h3&gt;
  
  
  Undirected acyclic graph
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8qWvWn9y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/okm9ebrpp4pw9s1z3rht.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8qWvWn9y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/okm9ebrpp4pw9s1z3rht.jpg" alt="Image description" width="880" height="770"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Directed &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--iLSpWWNx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hladz22xqs4g0d9iw40u.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iLSpWWNx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hladz22xqs4g0d9iw40u.jpg" alt="Image description" width="880" height="523"&gt;&lt;/a&gt;&lt;br&gt;
Indegree(2) = 2 ← number of incoming edges&lt;/p&gt;

&lt;p&gt;Outdegree(2) = 2 ← number of outgoing edges&lt;/p&gt;

&lt;h2&gt;
  
  
  Path
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pDdYs7kI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dz3mewcauhnaums9z3sh.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pDdYs7kI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dz3mewcauhnaums9z3sh.jpg" alt="Image description" width="880" height="714"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Qwe can move 1 to 5 and 5 to 4&lt;/li&gt;
&lt;li&gt;similarly 1 to 2 and 2 to 3&lt;/li&gt;
&lt;li&gt;but we can not move from 5 to 1&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  suppose if 2 to 1 is not there then we can call this Directed Acyclic Graph (DAG)
&lt;/h3&gt;

&lt;h1&gt;
  
  
  Representation of Graph
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;adjacency matrix&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;→ when two node are connected put 1 at their position &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;adjacency list &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;→ write name of name and name of other connected nodes&lt;/p&gt;

&lt;h2&gt;
  
  
  Example
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Graph
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--V48f5Srm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p47tzprbqkilo0tlvzdy.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--V48f5Srm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p47tzprbqkilo0tlvzdy.jpg" alt="Image description" width="880" height="752"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Adjacency Matrix
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Khc7D_-b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u8cbru7z6yk5qp2mim37.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Khc7D_-b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u8cbru7z6yk5qp2mim37.jpg" alt="Image description" width="880" height="552"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Adjacency List
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--K7UksOIv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uunx5r55t7cby2g0jq5z.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--K7UksOIv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uunx5r55t7cby2g0jq5z.jpg" alt="Image description" width="880" height="844"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  If edges are having some weights then
&lt;/h1&gt;

&lt;h3&gt;
  
  
  weighted undirected graph
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IFXNwhOx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6zndnfuvgg4f6u7xf61z.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IFXNwhOx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6zndnfuvgg4f6u7xf61z.jpg" alt="Image description" width="880" height="929"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  if weight is not given if still you need then you can consider it as 1
&lt;/h3&gt;

&lt;p&gt;weighted directed graph&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zyIoyqdy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/teydt8cd3ziwm9h0hugu.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zyIoyqdy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/teydt8cd3ziwm9h0hugu.jpg" alt="Image description" width="880" height="575"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Traversal in Graph
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;DFS - Depth First Search&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;→ Take one node and search all child until you reach leaf node still if dont find then comeback one step&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;BFS - Breadth First Search &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;→ First Search all childs then grandchild then again child of grand childs&lt;/p&gt;

</description>
      <category>datastructure</category>
      <category>dsa</category>
      <category>algorithms</category>
    </item>
    <item>
      <title>How Internet works ?</title>
      <dc:creator>Ranjit Odedra</dc:creator>
      <pubDate>Sun, 02 Oct 2022 07:46:06 +0000</pubDate>
      <link>https://dev.to/ranjitodedra/how-internet-works--26b9</link>
      <guid>https://dev.to/ranjitodedra/how-internet-works--26b9</guid>
      <description>&lt;h2&gt;
  
  
  In simple word
&lt;/h2&gt;

&lt;p&gt;Internet is conections of computer. where one computer can ask for data of another computer.     all the computer of world are connected throught optical fiber cable. where data is converted to analog signal then that optical fiber cable get connected to a router that convert it in to digital or electromegnetic signal.&lt;/p&gt;

&lt;p&gt;mostly this optical fiber cable are connected whith you ISP (Internet Service Provider) ex. Jio,BSNL.&lt;/p&gt;

&lt;p&gt;from there router they convert it in to electromegnetic signals.&lt;/p&gt;

&lt;h2&gt;
  
  
  lets take example of youtube video
&lt;/h2&gt;

&lt;p&gt;A youtube videos is stored in Data center of Google. In data center it stored in server which also a computer having SSD (Solid State Drive) inside it where data is stored.&lt;/p&gt;

&lt;p&gt;it is possible that more then one web site are stored in one server then we can differentiate them by host header. sometimes it also happanes that entire data center is alloted one webite like google,fb.&lt;/p&gt;

&lt;p&gt;every digital device in this world have unique IP address including your phone and server of google.&lt;/p&gt;

&lt;h2&gt;
  
  
  IP → Internet Protocol
&lt;/h2&gt;

&lt;p&gt;IP address is like your post address from they companies located where they have send data. and from where.&lt;/p&gt;

&lt;p&gt;your video is sended you in binary formate . and in small packets example 6 bits in each packet     all this packet will be sended to use they all might arive from different routes . according to most efficient path any perticular package at that time.&lt;/p&gt;

&lt;p&gt;when a package i arived to router that it get reassemble. suppose any packet is lost they response is sended to server and again that part is sended.&lt;/p&gt;

&lt;p&gt;for wesite first its load html , css , js , then your video…&lt;/p&gt;

&lt;p&gt;so thats how you watch your video.&lt;/p&gt;

</description>
      <category>internet</category>
      <category>besics</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
