<?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: Dharmelolar Ezekiel </title>
    <description>The latest articles on DEV Community by Dharmelolar Ezekiel  (@dharmelolar).</description>
    <link>https://dev.to/dharmelolar</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%2F205021%2Ffe11a3c0-e9e7-4d10-89ac-e96772ad8743.jpg</url>
      <title>DEV Community: Dharmelolar Ezekiel </title>
      <link>https://dev.to/dharmelolar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dharmelolar"/>
    <language>en</language>
    <item>
      <title>What is Virtualization: How to set up a Linux Virtual Machine with Virtual Box</title>
      <dc:creator>Dharmelolar Ezekiel </dc:creator>
      <pubDate>Wed, 31 May 2023 22:23:13 +0000</pubDate>
      <link>https://dev.to/dharmelolar/what-is-virtualization-how-to-set-up-a-linux-virtual-machine-with-virtual-box-4pen</link>
      <guid>https://dev.to/dharmelolar/what-is-virtualization-how-to-set-up-a-linux-virtual-machine-with-virtual-box-4pen</guid>
      <description>&lt;p&gt;Virtualization is the process of creating virtual instances of computing resources such as operating systems, CPU, storage, servers, etc. It involves abstracting the physical infrastructure and separating the software from the underlying hardware, allowing multiple virtual instances to run on a single physical machine or infrastructure.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a Virtual Machine?
&lt;/h2&gt;

&lt;p&gt;A virtual machine is the software emulation of a physical computer that acts as a separate computer with its operating system (OS ), CPU, and storage. It gives the ability to isolate and compartmentalize different computing environments.&lt;/p&gt;

&lt;p&gt;So you have a Windows machine running on a Windows operating system and you want to run or test an application that only works on another OS for example Linux. This means you need to get another computer and install the Linux OS to test that application. Instead of doing this, you can install a virtual machine that allows you to run Linux OS simultaneously with the Windows OS on your Windows machine. The virtual machine helps to isolate the Linux and Windows OS running on your computer without any interference.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a Hypervisor?
&lt;/h2&gt;

&lt;p&gt;A Hypervisor is a software that creates and manages virtual machines(VM). It allows the hosting of multiple virtual computers on a physical computer. It allocates resources such as CPU, memory, and storage to the virtual machine without interfering with the operation of the physical computer. &lt;br&gt;
There are two types of hypervisor:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Type 1:&lt;/strong&gt; This is also known as &lt;code&gt;Bare Metal hypervisor&lt;/code&gt; and it runs directly on the computer hardware instead of the operating system giving it direct access to the computer resources. It is mostly used by large organizations for their infrastructure common examples include VMware ESXi and Microsoft Hyper-v.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Type 2:&lt;/strong&gt;  The hypervisor is hosted on an existing operating system and it depends on the host computer for virtualization. It is mainly used for personal computers and end-to-end computing. This hypervisor is also known as &lt;code&gt;Hosted hypervisor&lt;/code&gt; and common examples include VirtualBox and VMware workstation.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Setting up a Linux (Ubuntu) Virtual Machine with VirtualBox
&lt;/h2&gt;

&lt;p&gt;Now that you’ve seen virtualization and virtual machines, I’ll show you how to install Linux (Ubuntu) Virtual Machine with VirtualBox.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;VirtualBox&lt;/code&gt; is an open-source virtual machine created by Oracle that allows you to create and host multiple operating systems on a physical computer. It is compatible and can run on any operating system including MacOS, Windows, Linux, etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Install VirtualBox&lt;/p&gt;

&lt;p&gt;From the &lt;a href="https://www.virtualbox.org/wiki/Downloads"&gt;VirtualBox download page&lt;/a&gt;, select and download the package compatible with your computer’s operating system. Follow the installation process to have VirtualBox running on your machine.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3DGjkX5B--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/szkfyx7f9ml44byzoyd0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3DGjkX5B--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/szkfyx7f9ml44byzoyd0.png" alt="VirtualBox download page" width="800" height="229"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Download the ISO file.&lt;/p&gt;

&lt;p&gt;From the Ubuntu &lt;a href="https://ubuntu.com/download/desktop"&gt;website&lt;/a&gt;, download the ISO file for the Ubuntu operating system. An ISO file also known as ISO image is commonly used in virtual machines because it allows you to easily install an operating system or other software without needing a physical CD or DVD. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; Setting up the Virtual machine environment&lt;/p&gt;

&lt;p&gt;Now that your VirtualBox is running, you can go ahead and create a virtual machine. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click on &lt;code&gt;New&lt;/code&gt; to create an operating system and this will open up an interface to configure your operating system.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--U3mfOWVz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6xofsf9ijf4mctvzgk21.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--U3mfOWVz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6xofsf9ijf4mctvzgk21.png" alt="create a new vm" width="800" height="468"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Next, you’ll see a prompt that allows you to enter the name of your virtual machine and VirtualBox will fill the type and version field based on what you entered. This can be changed afterward. You will also select the ISO file for the virtual machine.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DVDZjvmy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u59mixmq5ry0m6y74srd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DVDZjvmy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u59mixmq5ry0m6y74srd.png" alt="create a new vm" width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Next, you enter the username and password for your virtual machine.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8ugNJ9EI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n1uhln15gv44vesqmnof.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8ugNJ9EI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n1uhln15gv44vesqmnof.png" alt="create a new vm" width="800" height="429"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Assign Ram storage and processor.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---eGa3HSL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3st8hvxnty2sci10af2g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---eGa3HSL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3st8hvxnty2sci10af2g.png" alt="create a new vm" width="800" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add virtual hard disk to the virtual machine.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4Px82R2J--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yvh2fb7few43hnph1hkn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4Px82R2J--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yvh2fb7few43hnph1hkn.png" alt="create a new vm" width="800" height="428"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Finally, you should see the summary of the configurations for your virtual machine.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--O_uR1PXJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kx3i0ejna8ks6p83fcft.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--O_uR1PXJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kx3i0ejna8ks6p83fcft.png" alt="create a new vm" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click on finish and allow the virtual machine to load the operating system selected. The operating system will require setup and when this is done, your machine should be up and running. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aHhT8lsp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y80y7p63od6ud8bktepd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aHhT8lsp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y80y7p63od6ud8bktepd.png" alt="create a new vm" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's it!!! You now have a Linux operating system running on your virtual machine.&lt;/p&gt;

</description>
      <category>linux</category>
      <category>virtualmachine</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Debugging And Handling Errors In JavaScript
</title>
      <dc:creator>Dharmelolar Ezekiel </dc:creator>
      <pubDate>Thu, 17 Jun 2021 16:56:09 +0000</pubDate>
      <link>https://dev.to/dharmelolar/debugging-and-handling-errors-in-javascript-4klk</link>
      <guid>https://dev.to/dharmelolar/debugging-and-handling-errors-in-javascript-4klk</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;Introduction&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;As a developer or programmer, Errors are essentially part of our daily lives, and getting errors in our code does not really mean that we're not proficient. An error in your code most times, simply means you’re trying to do something that might be a little complicated (or very complicated), and it doesn’t quite work yet or you made some important ommissions in your code. Learning from our mistakes is actually a good thing because it helps to strengthen our knowledge and also gives us the ability to help others out when they run into similar issues. In this article, we'll be discussing errors in Javascript and how to handle them.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Types of Errors in Javascript&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;There are seven types of built-in errors in javascript, but we will be looking at the three common types in this article. You can check out  &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error"&gt;javascript documentation&lt;/a&gt; for more insights.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SyntaxError:&lt;/strong&gt;This error occurs when the syntax of a particular language is not met. This error is usually thrown when there are typos, mismatched brackets or curly braces, or missing semi-colons in our code.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function test{
    console.log('this code will throw a syntaxError')
}
test()
&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;/Users/dharmelolarezekiel/Desktop/test.js:1
function test{
             ^

SyntaxError: Unexpected token '{'

This code is throwing an error because a bracket 
is supposed to be after the test function.
&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;for(let i = 1, i&amp;lt;10; i++){
    console.log(i)
}
&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;/Users/dharmelolarezekiel/Desktop/test.js:1
for(let i = 1, i&amp;lt;10; i++){
               ^

SyntaxError: Identifier 'i' has already been declared

An error is being thrown because we used a comma 
instead of a semi-colon after declaring the variable **i**
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ReferenceError :&lt;/strong&gt;
This type of error occurs when you're trying to reference an invalid value. e.g calling a variable that was not defined. In some cases, the variable could be defined and you'll still get a reference error and this is usually the effect of scoping because when you declare a variable with &lt;strong&gt;let/const&lt;/strong&gt;, such variable can not be accessed outside the function where it is declared.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let ageRange= 25
if(ageRange&amp;gt;= 25){
    console.log('you are old enough')
}
console.log(AgeRange)
&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;/Users/dharmelolarezekiel/Desktop/test.js:5
console.log(AgeRange)
            ^

ReferenceError: AgeRange is not defined

This code is throwing an error because the variable 
that was defined and the one that was called are different 
from each other even though they are spelled the same way.
&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;function ageRange(){
    let age1= 25;
    let age2= 20
    return age1 * age2
    }

  console.log(age2)
&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;/Users/dharmelolarezekiel/Desktop/test.js:7
  console.log(age2)
              ^

ReferenceError: age2 is not defined

In this case, although age2 is defined we still got an error 
that says it is not defined. This is because age2 was defined
in a function and it cannot be accessed outside the function
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;TypeError:&lt;/strong&gt;This error is thrown when the value passed to an expression is not the expected type. e.g using a string method on a number.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let variable = 25
console.log(variable.toUpperCase())
&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;/Users/dharmelolarezekiel/Desktop/test.js:2
console.log(variable.toUpperCase())
                     ^

TypeError: variable.toUpperCase is not a function
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;Debugging errors in Javascript&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;In order to debug errors in javascript, there are few things you should do first. Luckily, the console always comes to the rescue here. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;In what line did the error occur:&lt;/strong&gt; This is usually the first thing to look out for when trying to debug. The console always points out the particular line where the error is.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/Users/dharmelolarezekiel/Desktop/test.js:2

In this case, our error is line 2 of our test.js file
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;What type of error was thrown:&lt;/strong&gt; After finding out the line where the error occurred, the next thing to do is check what type of error was logged to the console.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ReferenceError: age is not defined
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;What is the error message logged&lt;/strong&gt;: This will enable you to debug with ease since you already know the type of error you're dealing with.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Handling Errors In Javascript
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Error handling is the anticipation of errors and addressing them accordingly. &lt;br&gt;
                                                                                                         "Codecademy"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Error handling is mostly used when working with data from other sources or user inputs as the source code can be unreliable. When a code is being executed and it throws an error, that error is referred to as &lt;strong&gt;runtime error&lt;/strong&gt;. I'll be highlighting the different ways of handling errors and these are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;try... catch statement&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;try{
    // piece of code
}catch(err){
   //error handling
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;What this block of code does is that it first runs our code in the try block and if it goes smoothly, the catch block will be ignored. But if an error occurs, the try block stops executing and the handling process begins from the catch block and the &lt;strong&gt;err&lt;/strong&gt;(any name can be used) will log an error object that details what went wrong with the code. The try...catch statement does not stop our code from running because we have handled the error with the &lt;strong&gt;catch(err)&lt;/strong&gt; block.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Throw statement:&lt;/strong&gt; The throw keyword can be used to throw an error and halts the program from working. It can also be used to throw an error with a user-defined message. If you use throw together with try and catch, you can control program flow and generate custom error messages.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>javascript</category>
      <category>tutorial</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Deploying React applications to Netlify</title>
      <dc:creator>Dharmelolar Ezekiel </dc:creator>
      <pubDate>Tue, 04 May 2021 00:14:09 +0000</pubDate>
      <link>https://dev.to/dharmelolar/deploying-react-applications-to-netlify-491j</link>
      <guid>https://dev.to/dharmelolar/deploying-react-applications-to-netlify-491j</guid>
      <description>&lt;h3&gt;
  
  
  Introduction
&lt;/h3&gt;

&lt;p&gt;In this brief tutorial, I’ll be walking you through the process of deploying your React app on Netlify. There are 3 ways on how to deploy React applications to Netlify but in this tutorial, we will be focusing on just two.&lt;/p&gt;

&lt;h3&gt;
  
  
  Prerequisites
&lt;/h3&gt;

&lt;p&gt;At the end of this tutorial, you should be able to successfully deploy your React applications to Netlify but before that, there are a few things you should do or know. These are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Have basic knowledge of version control system (GitHub, GitLab, Bitbucket )&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Have a Netlify account&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Know how to create React applications.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Creating a React Application
&lt;/h3&gt;

&lt;p&gt;React is a JavaScript library that is used for building fast and interactive user interfaces. In order to create a react application, we'd be using the create-react-app library and the name of our app can be anything but I'd be using "my-react-app" (just for the purpose of this tutorial). From our terminal we will the command below:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx create-react-app my-react-app
cd my-react-app
npm start

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

&lt;/div&gt;



&lt;p&gt;After running this command, we should get the out below.&lt;/p&gt;

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

&lt;p&gt;This command installs all the necessary packages for creating our React application. We will not be making any changes to this app as it is assumed that we already know how to create react apps.&lt;/p&gt;

&lt;p&gt;After doing this you need to run this command on 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;npm run build
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;What this command does is that helps to optimize our site. It creates a script that can be used to run our application.&lt;/p&gt;

&lt;h3&gt;
  
  
  Deploying React app.
&lt;/h3&gt;

&lt;p&gt;1.Using Netlify Drag and Drop Feature.&lt;/p&gt;

&lt;p&gt;Using the drag and drop feature for deployment is really easy but first, you need to create an account on Netlify. If you already have one that’s fine and if you don’t just visit &lt;a href="https://www.netlify.com/"&gt;netlify&lt;/a&gt; and sign up using any of the available options.&lt;/p&gt;

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

&lt;p&gt;After signing up, you should see a replica of the image above. All you have to do after this is just drag and drop your folder. Since you already ran the "npm run build" command everything should work just fine.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KiCvm62---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/joze4ljz3btleun93kpb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KiCvm62---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/joze4ljz3btleun93kpb.png" alt="image"&gt;&lt;/a&gt;&lt;br&gt;
As you can see from the image, our site has been deployed. You can now customize the site.&lt;/p&gt;

&lt;p&gt;2.Using GitHub from Netlify's UI&lt;/p&gt;

&lt;p&gt;In order to use this method, we'd need to push to Github first. Again I won't be talking about how to push code to GitHub since it is assumed that we already know our way around it.&lt;/p&gt;

&lt;p&gt;First, we would need to sign in to Netlify with our already created GitHub account. Our dashboard should look like the image below.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XS7itC-Y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/685cmjpj28j3melzsc3w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XS7itC-Y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/685cmjpj28j3melzsc3w.png" alt="image"&gt;&lt;/a&gt;&lt;br&gt;
We can go ahead and click the "new site from git" button and this will take you to another page where you have to select the version control you would be using. Since we're using GitHub in this tutorial, you'll click on GitHub and then Netlify will do some authorizations. After doing this, Netlify will display the repositories available on your GitHub and ask you to confirm the one you want to deploy. &lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--unIca7vM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pzlevstttioevlo3ypz7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--unIca7vM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pzlevstttioevlo3ypz7.png" alt="image"&gt;&lt;/a&gt;&lt;br&gt;
After selecting the repository to deploy, we need to specify some basic build settings. Although our React app already comes with the necessary build steps since we already ran the npm-run-build command. But if we did not do this before we need to specify the build settings. the image below can serve as a guide. When all this is done, you can hit the deploy site button and that's it!!! Our React app has been deployed.&lt;/p&gt;

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

</description>
      <category>react</category>
      <category>netlify</category>
    </item>
    <item>
      <title>How To Use Live Share Extension For Collaboration</title>
      <dc:creator>Dharmelolar Ezekiel </dc:creator>
      <pubDate>Mon, 03 May 2021 18:41:15 +0000</pubDate>
      <link>https://dev.to/dharmelolar/how-to-use-live-share-extension-for-collaboration-l9j</link>
      <guid>https://dev.to/dharmelolar/how-to-use-live-share-extension-for-collaboration-l9j</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Live Share is a vs code extension that enables developers to collaborate with others in real-time. It enables users to share sessions, edit codes, and also debug each other's code. This extension has a lot of cool features that we will be looking at in this article. Throughout the course of this article, I will be focusing on the person sending out the invite(initiating the collaboration) and screenshots will be shared at intervals in order to understand how this works.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Installing live share extension
&lt;/h3&gt;

&lt;p&gt;Prior to now, you should already have visual studio code installed on your computer. The next step is to install the live share extension. It is advisable to install the live share extension pack as this would give you access to the whole features that I would be talking about in this article. After doing this, the live share icon will appear at the bottom of the code editor. You can click on it to sign in either by using a Microsoft or Github account.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OIYfK0WI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rrbhn62e38bbzs6lr2lt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OIYfK0WI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rrbhn62e38bbzs6lr2lt.png" alt="image"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--o4uVrNiH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2zox4s8ael6r5d44lkua.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--o4uVrNiH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2zox4s8ael6r5d44lkua.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The sign-in procedure will happen in the sequence of the images shown above. The last page will display a modal, which after clicking will redirect you back to vs code.&lt;/p&gt;

&lt;h3&gt;
  
  
  Collaborating with other users.
&lt;/h3&gt;

&lt;p&gt;In order to start collaborating with other users, you need to share a session and other participants will join from their own end. Clicking on the live share icon will begin a session and a URL will be displayed. you can now copy the link and share it with a trusted collaborator.&lt;/p&gt;

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

&lt;p&gt;After clicking on the URL from the other end, the URL redirects the user to VSccode and the user will also be prompted to sign in. When this is done the collaboration session can begin. A cursor will also appear with the name of the user that is currently editing.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---RCZOzfn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f512dgiv1k7wmwaub1fj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---RCZOzfn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f512dgiv1k7wmwaub1fj.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Enabling Audio calls
&lt;/h3&gt;

&lt;p&gt;Personally, this is one of the features I really love about this extension because it allows you to communicate with other users without having to use any other external applications or software. In order to enable audio call, you have to click on the Audio Call Participant from the side panel, after that, a modal will be displayed so you can grant access to the use of the microphone. When this is done, the user from the other end should click on join call from the side panel and that's all! The communication can begin.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Enabling session chat
&lt;/h3&gt;

&lt;p&gt;This is another cool feature of the extension. It allows you to send messages to other users during your session. You can enable this feature by clicking on chat sessions then session chat from the side panel and the chatbox will be opened on one part of your code editor.&lt;/p&gt;

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

&lt;p&gt;###Share a terminal&lt;/p&gt;

&lt;p&gt;While using the live share extension, the terminal can be used in two modes which are the read/write for everyone (this enables other participants to gain access to running commands in your terminal ) or the read-only mode(this means the other participants can only watch your terminal and they cannot make changes to it). To allow other users to gain access, simply click on share terminal from the side panel, and a popup will be displayed asking you for confirmation.&lt;/p&gt;

&lt;p&gt;Live share extension still has other features that I did not cover in this article. You can go over the &lt;a href="https://docs.microsoft.com/en-us/visualstudio/liveshare/overview/features"&gt;documentation&lt;/a&gt; for more reference. In this article, I've shared the most basic and common things that you can do with this extension.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Thanks for Reading!!!&lt;/strong&gt;😁&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
