<?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: Elizabeth Onyenekwe</title>
    <description>The latest articles on DEV Community by Elizabeth Onyenekwe (@elizabethonyen6).</description>
    <link>https://dev.to/elizabethonyen6</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%2F327124%2F2730f814-f433-45a8-9812-24489b52d625.JPG</url>
      <title>DEV Community: Elizabeth Onyenekwe</title>
      <link>https://dev.to/elizabethonyen6</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/elizabethonyen6"/>
    <language>en</language>
    <item>
      <title>The Use Of Data Transfer API In A Drag And Drop Project</title>
      <dc:creator>Elizabeth Onyenekwe</dc:creator>
      <pubDate>Sun, 18 Sep 2022 22:20:31 +0000</pubDate>
      <link>https://dev.to/elizabethonyen6/the-use-of-data-transfer-api-in-a-drag-and-drop-project-3p67</link>
      <guid>https://dev.to/elizabethonyen6/the-use-of-data-transfer-api-in-a-drag-and-drop-project-3p67</guid>
      <description>&lt;p&gt;The Data transfer API is a part of HTML5 Drag and Drop API and Clipboard events. It is used for interactions within a page and can be used to transfer data from the starting point(where the item is dragged from) to the endpoint(where the item is dropped).&lt;/p&gt;

&lt;p&gt;The Data transfer API has 2 methods:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;datatransfer.setData()&lt;/li&gt;
&lt;li&gt;datatransfer.getData()&lt;/li&gt;
&lt;li&gt;datatransfer.addElement()&lt;/li&gt;
&lt;li&gt;datatransfer.clearData()&lt;/li&gt;
&lt;li&gt;dataTransfer.setDragImage&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In firefox browsers, there are customary methods for the Data transfer API. It includes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;moz.setDataAt()&lt;/li&gt;
&lt;li&gt;moz.getDataAt()&lt;/li&gt;
&lt;li&gt;moz.clearDataAt()&lt;/li&gt;
&lt;li&gt;moz.TypesAt()&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  DataTransfer.setData()
&lt;/h2&gt;

&lt;p&gt;When the dragStart event is called, this method can be used to set the data to the specified data and type. It accepts 2 parameters, a string representing the type of data to add to the drag object and a string representing the data to add to the drag object.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dataTransfer.setData(format, setData)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  DataTransfer.getData()
&lt;/h2&gt;

&lt;p&gt;This method retrieves drag data for a specified type. It accepts only one parameter and it is used with the following drag events: dragenter(), dragover(), dragleave(), drop(). The dragged data can not be retrieved by the source element.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dataTransfer.getData(format)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  DataTransfer.addElement()
&lt;/h2&gt;

&lt;p&gt;This method sets an element as a drag source. The element is added when the drag event and the dragend event is fired.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dataTransfer.addElement()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  DataTransfer.clearData()
&lt;/h2&gt;

&lt;p&gt;This method removes the data for a given type and can only be called when the dragstart event is fired. It has one optional parameter and if that parameter is specified, then only that type of data is removed else all the data types are removed.&lt;/p&gt;

&lt;h2&gt;
  
  
  DataTransfer.setDragImage()
&lt;/h2&gt;

&lt;p&gt;By default, an image is created from the drag target when the dragstart event is fired but a custom image can be created by using this method. It accepts 3 parameters: the image element, the horizontal offset, the vertical offset.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dataTransfer.setDragImage(imgElement, xOffset, yOffset)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Properties Of The Data Transfer API
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;dropEffect&lt;/li&gt;
&lt;li&gt;effectAllowed&lt;/li&gt;
&lt;li&gt;files&lt;/li&gt;
&lt;li&gt;types&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Some specific properties in firefox browser includes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;mozCursor&lt;/li&gt;
&lt;li&gt;mozItemCount&lt;/li&gt;
&lt;li&gt;mozSourceNode&lt;/li&gt;
&lt;li&gt;mozUserCancelled&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  DropEffect
&lt;/h2&gt;

&lt;p&gt;This property specifies the type of drag and drop operation that is allowed and if the type of drag and drop operation isn't allowed, the dragged content won't be dropped. The value of the drop effect property also affects the style of the displayed cursor. The allowed types of transfer is specified in the dragstart event and modified in the dragenter and dragover event.&lt;/p&gt;

&lt;h2&gt;
  
  
  EffectAllowed
&lt;/h2&gt;

&lt;p&gt;This property specifies the effect that is allowed during a drag and drop operation. This property should be set in the dragstart event to set the desired drag effect for the drag source. Within the dragenter and dragover event, this property will be set to whatever value was assigned during the dragstart event.&lt;/p&gt;

&lt;h2&gt;
  
  
  Files
&lt;/h2&gt;

&lt;p&gt;The file property is a list of the files in the drag operation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Types
&lt;/h2&gt;

&lt;p&gt;This property returns a list collection that contains the available data formats for the first item of the current drag and drop operation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;For a clearer explanation on the Data Transfer API, see &lt;a href="https://web.dev/drag-and-drop/"&gt;HTML Drag and Drop API&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Using Object.assign()</title>
      <dc:creator>Elizabeth Onyenekwe</dc:creator>
      <pubDate>Sat, 17 Sep 2022 06:36:45 +0000</pubDate>
      <link>https://dev.to/elizabethonyen6/using-objectassign-i84</link>
      <guid>https://dev.to/elizabethonyen6/using-objectassign-i84</guid>
      <description>&lt;p&gt;Recently, while working on a project, I encountered a situation where i tried to store an object in an array. After pushing that object into the array, I will return the value of the keys into an empty string. Pushing the object wasn't an issue as I used the spread operator and the push() array method and it worked. What I didn't notice was that I was making a reference to the object I was trying to push. So every time I made changes to that object, the members of the array changed too. Experiencing this bug, I understood the importance of Object.assign() and I decided to share. It might help someone who needs it too.&lt;/p&gt;

&lt;p&gt;Object.assign() clones all enumerable properties of an object and transfers it into a target source. It invokes getters and setters thereby defining new properties in the target source.&lt;/p&gt;

&lt;p&gt;Object.assign() is also used to merge object with same properties and the properties from the object which is cloned overwrites the properties in the target source which has the same key.&lt;/p&gt;

&lt;p&gt;The syntax for using object.assign in your code is&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;object.assign(target, ...source)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After cloning or merging an object, it returns the target.&lt;/p&gt;

&lt;h3&gt;
  
  
  Error
&lt;/h3&gt;

&lt;p&gt;A type error can occur if the property of the target source is non-writable.&lt;/p&gt;

&lt;h3&gt;
  
  
  Exceptions
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;An exception occurs if the properties of the target source are overwritten before the error is raised&lt;/li&gt;
&lt;li&gt;Object.assign does not work on null or undefined source values.&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
    <item>
      <title>Network Address Translation(NAT)</title>
      <dc:creator>Elizabeth Onyenekwe</dc:creator>
      <pubDate>Sat, 14 May 2022 10:49:17 +0000</pubDate>
      <link>https://dev.to/elizabethonyen6/network-address-translationnat-4b3o</link>
      <guid>https://dev.to/elizabethonyen6/network-address-translationnat-4b3o</guid>
      <description>&lt;p&gt;NAT is the process of mapping an internet protocol(ip) address to another so that a router can access resources outside a private network.&lt;/p&gt;

&lt;h3&gt;
  
  
  How Does NAT Work ?
&lt;/h3&gt;

&lt;p&gt;NAT occurs between an internal IP and an external IP via a router.&lt;br&gt;
A computer inside a network makes a request to a computer on the internet. Routers within that network recognise that the request is not for a resource inside the network so the routers act as agents between the public network and the private network, then sends the request to the firewall. The firewall sees the request from the computer within the internal IP, then makes same request to the internet using its own public IP address. The firewall then returns the response from the internet resource to the computer inside the private network.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ways By Which NAT Can Map IP Addresses
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;From a local IP address to one global IP address.&lt;/li&gt;
&lt;li&gt;Hiding an entire IP address space comprised of Private IP 
addresses behind a single IP address.&lt;/li&gt;
&lt;li&gt;To a large private network using a single public IP 
address.&lt;/li&gt;
&lt;li&gt;From a local IP address to a pool of public IP addresses.&lt;/li&gt;
&lt;li&gt;From a global IP address to a pool of local IP addresses.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Types Of NAT
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Static NAT: This maps a single unregistered IP Address with&lt;br&gt;&lt;br&gt;
a registered IP address.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dynamic NAT: This translates an unregistered IP Address &lt;br&gt;
into a registered IP address from a pool of public IP &lt;br&gt;
addresses.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reverse NAT: This allows users to connect to themselves &lt;br&gt;
using the internet or public network.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Port Address Translation: It is also known as NAT Overload &lt;br&gt;
or Port-level multiplexed NAT or Single Address NAT. In &lt;br&gt;
this, many local(private) IP addresses can be translated to &lt;br&gt;
a single registered IP address.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Overlapping NAT: This happens when two organisations whose &lt;br&gt;
networks uses the same IP address merge or when a &lt;br&gt;
registered IP address is assigned to multiple devices.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  References
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;What is Network Address Translation?&lt;/em&gt;.CGP Holdings, Inc.14 May, 2022. &lt;a href="https://whatismyipaddress.com/nat"&gt;https://whatismyipaddress.com/nat&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Katie Terrell Hanna. _Network Address Translation (NAT) _.[online]. TechTarget. 14 May, 2022. &lt;a href="https://www.techtarget.com/searchnetworking/definition/Network-Address-Translation-NAT"&gt;https://www.techtarget.com/searchnetworking/definition/Network-Address-Translation-NAT&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;3.&lt;em&gt;Network Address Translation&lt;/em&gt;. Avi Networks. 2022. 14 May, 2022. &lt;a href="https://avinetworks.com/glossary/network-address-translation/#:%7E:text=Network%20Address%20Translation%20(NAT)%20is,private%20network%20a%20public%20address"&gt;https://avinetworks.com/glossary/network-address-translation/#:~:text=Network%20Address%20Translation%20(NAT)%20is,private%20network%20a%20public%20address&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;4.saurabhsharma56. &lt;em&gt;Network Address Translation (NAT)&lt;/em&gt;. GeeksforGeeks. 13 Dec, 2021. 14 May, 2022. &lt;a href="https://www.geeksforgeeks.org/network-address-translation-nat/"&gt;https://www.geeksforgeeks.org/network-address-translation-nat/&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Basic Linux Commands</title>
      <dc:creator>Elizabeth Onyenekwe</dc:creator>
      <pubDate>Sun, 27 Mar 2022 20:47:03 +0000</pubDate>
      <link>https://dev.to/elizabethonyen6/basic-linux-commands-4bgo</link>
      <guid>https://dev.to/elizabethonyen6/basic-linux-commands-4bgo</guid>
      <description>&lt;h2&gt;
  
  
  Linux Shell Or Terminal
&lt;/h2&gt;

&lt;p&gt;A shell is a program that receives commands from the user and gives it to the OS to process, and it shows the output. Linux's shell is its main part. Its distros come in GUI (graphical user interface), but basically, Linux has a CLI (command line interface). In this article, I am going to cover the basic commands that we use in the shell of Linux.&lt;/p&gt;

&lt;h2&gt;
  
  
  Basic Linux Commands
&lt;/h2&gt;

&lt;p&gt;pwd: This command shows the current directory that you are in.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;~$ pwd
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ls: This command lists folders and files.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;~$ ls
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;cd [dirname]: This command opens a folder on the system&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;~$ cd Documents
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;mkdir [dirname]: This command creates a folder.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;~$ mkdir python-project
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;touch [filename]: This command creates a file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;~$ touch main.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;rm[filename]: This command deletes a file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;rm main.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;cd..: This command navigates up a directory.&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;rm -r [dirname]: This command deletes a folder&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;~$ rm -r python-project
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;cd /: This command takes the user to the root folder&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;clear: This command clears the terminal&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;~$ clear
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;cd [dirname]/[dirname]/[dirname]: This command lets you navigate down the directories to a particular folder.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;~$ cd usr/local/bin
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;cd ../..: This command moves two hierarchies up the file system&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;cd ~: This command takes the user back to the home directory&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd ~
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ls /[dirname]/[dirname]: This command lists all the files in the directory name after navigating to that particular directory.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ls /etc/network
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;mv[dirname][new-dirname]: This changes the folder name&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mv web-application java-app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;cp -r [dirname][new-dirname]: This copies the content of a particular folder into another folder.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cp -r java-app my-project
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;cp [filename][new-filename]: This copies the content of a file into another file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cp readme.md readme-test.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;mv[filename][filename]: This changes the filename&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mv readme.md readme-dev.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ls -r [dirname]: This shows the entire content of that directory.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ls -r Documents
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;history: Gives a history of all past commands typed in the current terminal session&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;~$ history
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ctrl + r: This key combination searches for the history of a command a user recently used.&lt;/p&gt;

&lt;p&gt;ctrl + c: This key combination stops the current command that is running.&lt;/p&gt;

&lt;p&gt;history[number]: This shows the last set of commands that were typed. The last set is determined by the number the user inputs.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;history 20
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ls -a: It shows all files including hidden files&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ls -a
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;cat[filename]: This displays the file content&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cat main.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;uname -a: This displays the system information and the kernel&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;~$ uname -a
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;cat /etc/os-release: This shows the version of your operating system&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;~$ cat /etc/os-release
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;lscpu: This shows the cpu information&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;~$ lscpu
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;lsmem: This displays the memory information&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;~$ lsmem 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;ol&gt;
&lt;li&gt;Basic linux commands for beginners by Alok Naushad  " &lt;a href="https://maker.pro/linux/tutorial/basic-linux-commands-for-beginners"&gt;https://maker.pro/linux/tutorial/basic-linux-commands-for-beginners&lt;/a&gt; "&lt;/li&gt;
&lt;li&gt;Techworld with Nana Devops Bootcamp&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
    <item>
      <title>Linux File System</title>
      <dc:creator>Elizabeth Onyenekwe</dc:creator>
      <pubDate>Fri, 25 Mar 2022 22:44:04 +0000</pubDate>
      <link>https://dev.to/elizabethonyen6/linux-file-system-3g8n</link>
      <guid>https://dev.to/elizabethonyen6/linux-file-system-3g8n</guid>
      <description>&lt;p&gt;A Linux file system is a structured collection of files on a disk drive or a partition. Linux file system is generally a built-in layer of a Linux operating system used to handle the data management of the storage.&lt;/p&gt;

&lt;p&gt;The Linux file system contains the following sections:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The root directory (/)&lt;/li&gt;
&lt;li&gt;A specific data storage format (EXT3, EXT4, BTRFS, XFS and so on)&lt;/li&gt;
&lt;li&gt;A partition or logical volume having a particular file system.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The Root Directory
&lt;/h2&gt;

&lt;p&gt;In Linux, the file system creates a tree structure. All the files are arranged as a tree and its branches. The topmost directory called the root (/) directory. All other directories in Linux can be accessed from the root directory.&lt;/p&gt;

&lt;p&gt;Some of the directories include:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;/bin: It contains the most basic commands. It is available to all users on the system. It is written in the binary format and binaries are represented in 0's and 1's.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;/sbin: These are system binaries. It needs a super user permission to execute them. It can't be executed with a normal user.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;/lib: This hold the libraries for binaries.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;/usr: This was the original user location before the home directory was added. It also has /bin folder, /sbin folder, and /lib folder. The duplication is due to the historic reason of how this was designed originally in unix. Basically, because of the limitation in storage, making the duplicate of these folder to increase the storage size. The limitation does not exist anymore but the concept is still implemented.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;local: This is located inside the /usr folder. It also has /bin, /sbin, /lib folders. Third party applications installed goes into the local folder and the applications will be split into the different folders inside the local folder. Any application installed here will be used by the particular user who installed it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;/opt: External applications installed goes here. The difference between the /opt directory and the /usr directory is that the /opt directory does not split applications into different folder. All applications installed are in one folder. Any application installed here will be used by all users.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;/boot: This is basically for booting the system.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;/etc: This is where the system configuration is stored. Unlike other directories, this directory is not a read only folder, so the configuration can be changed or are writable.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;/dev: This stands for devices. Devices connected to your computer will be stored here.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;/var: When the operating system starts, it logs some data which are stored in this folder.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;/tmp: This stores temporary files for different applications which will be deleted later.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;/media: External media is mounted into this folder and this external media will also be referenced in the /dev folder.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These directories are not usually interacted with by the user manually, the operating system or the package manager tool will interact with the folder. &lt;/p&gt;

&lt;p&gt;There are hidden files in the home directory that are not seen by default. To see them, you can activate it in the settings. Hidden files are also called dot files because the file names start with dot. They are used to store configuration options. They are automatically created files.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features Of The Linux File System
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Linux does not use the backslash () to separate the components; it uses forward slash (/) as an alternative.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In Linux, we cannot tell whether we are addressing a partition, a network device, or an "ordinary" directory and a Drive.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Linux file system is case sensitive. It distinguishes between lowercase and uppercase file names. Such as, there is a difference between test.txt and Test.txt in Linux. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In Linux, a file may have the extension '.txt,' but it is not necessary that a file should have a file extension.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Linux distinguishes between standard files and hidden files, mostly the configuration files are hidden in Linux OS. &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Types Of Linux File System
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Ext, Ext2, Ext3 and Ext4 file system&lt;/li&gt;
&lt;li&gt;JFS File System&lt;/li&gt;
&lt;li&gt;ReiserFS File System&lt;/li&gt;
&lt;li&gt;XFS File System&lt;/li&gt;
&lt;li&gt;Btrfs File System&lt;/li&gt;
&lt;li&gt;Swap File System&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;References&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Javatpoint, "&lt;a href="https://www.javatpoint.com"&gt;https://www.javatpoint.com&lt;/a&gt;"&lt;/li&gt;
&lt;li&gt;Techworld with Nana Devops Bootcamp&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
    <item>
      <title>Server Virtualization</title>
      <dc:creator>Elizabeth Onyenekwe</dc:creator>
      <pubDate>Thu, 24 Mar 2022 23:36:32 +0000</pubDate>
      <link>https://dev.to/elizabethonyen6/server-virtualization-573j</link>
      <guid>https://dev.to/elizabethonyen6/server-virtualization-573j</guid>
      <description>&lt;p&gt;Server virtualization is the creation of a virtual version of an operating system, a server, a storage device or network resources.&lt;/p&gt;

&lt;p&gt;Virtualization can be achieved using an "Hypervisor". Hypervisor is a technology that allows hosting several virtual computers on a physical computer. Hypervisors take some of the hardware resources from the physical computer to create the virtual computer.&lt;/p&gt;

&lt;p&gt;The virtual computer can only be given the hardware resources that is available on that computer. These virtual computers are completely isolated from the physical computer and if anything is running or breaking on the virtual computers, it won't affect the main operating system.&lt;/p&gt;

&lt;h2&gt;
  
  
  Benefits Of Using Virtualization
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Provides a cost effective way to separate email, database and web servers.&lt;/li&gt;
&lt;li&gt;Expedited deployment and redeployment&lt;/li&gt;
&lt;li&gt;Easier migration to the cloud&lt;/li&gt;
&lt;li&gt;Reduced heat and improved energy savings&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Types Of Hypervisor
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Type 1 Hypervisor:This installs guest operating system directly on the hardware. They are also called "Bare metal hypervisors". It controls the hardware resources. E.g VMware, ESXi, Microsoft Hyper-v&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Type 2 Hypervisor: This is the type of hypervisor that installs guest operating system on top of the host operating system. It is also called "Hosted hypervisors". It shares the hardware resources. E.g virtual box&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Advantages Of Virtualization
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Lower cost&lt;/li&gt;
&lt;li&gt;Easier disaster recovery&lt;/li&gt;
&lt;li&gt;Easier testing&lt;/li&gt;
&lt;li&gt;Quicker backups&lt;/li&gt;
&lt;li&gt;Improved productivity&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
    <item>
      <title>USING NETLIFY FORMS</title>
      <dc:creator>Elizabeth Onyenekwe</dc:creator>
      <pubDate>Mon, 10 Aug 2020 14:48:40 +0000</pubDate>
      <link>https://dev.to/elizabethonyen6/using-netlify-forms-5hj6</link>
      <guid>https://dev.to/elizabethonyen6/using-netlify-forms-5hj6</guid>
      <description>&lt;p&gt;While hosting your frontend applications on netlify, you can permit your forms to be submitted on Netlify without using any backend or api for submission and with just a little code, netlify takes care of it all.&lt;/p&gt;

&lt;p&gt;Form submission on netlify can be achieved by setting the form action to “POST” and adding a Netlify attribute called “DATA-NETLIFY” and setting this attribute to “TRUE”. Give a name attribute to your form and input fields so that Netlify can identify the fields properly. Deploy your form to Netlify and all messages sent through the form is displayed in the “RECENT FORM SUBMISSIONS” section.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setting  Notifications
&lt;/h2&gt;

&lt;p&gt;You can also be notified of a recent form submission on your email by going to the settings section on Netlify, then clicking on the forms section and then form notifications. Click on the “ADD NOTIFICATION” button and save Email notification to receive emails notifying you of recent form submissions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code Sample
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;form&lt;/span&gt; &lt;span class="na"&gt;action=&lt;/span&gt;&lt;span class="s"&gt;"POST"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"contact"&lt;/span&gt; &lt;span class="na"&gt;data-netlify=&lt;/span&gt;&lt;span class="s"&gt;"true"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"name"&lt;/span&gt; &lt;span class="na"&gt;placeholder=&lt;/span&gt;&lt;span class="s"&gt;"Your Name"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"email"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"email"&lt;/span&gt; &lt;span class="na"&gt;placeholder=&lt;/span&gt;&lt;span class="s"&gt;"Your Email"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"subject"&lt;/span&gt;  &lt;span class="na"&gt;placeholder=&lt;/span&gt;&lt;span class="s"&gt;"Subject"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;textarea&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"message"&lt;/span&gt; &lt;span class="na"&gt;rows=&lt;/span&gt;&lt;span class="s"&gt;"5"&lt;/span&gt; &lt;span class="na"&gt;placeholder=&lt;/span&gt;&lt;span class="s"&gt;"Message"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/textarea&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"submit"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Send Message&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/form&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
  </channel>
</rss>
