<?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: Grace Valerie Anyango</title>
    <description>The latest articles on DEV Community by Grace Valerie Anyango (@gracie254).</description>
    <link>https://dev.to/gracie254</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%2F764387%2F9cb3f1c1-70f3-4398-b72f-b1f3bd5819e1.jpeg</url>
      <title>DEV Community: Grace Valerie Anyango</title>
      <link>https://dev.to/gracie254</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gracie254"/>
    <language>en</language>
    <item>
      <title>Event emitters in node js</title>
      <dc:creator>Grace Valerie Anyango</dc:creator>
      <pubDate>Fri, 31 Dec 2021 06:54:38 +0000</pubDate>
      <link>https://dev.to/gracie254/event-emitters-in-node-js-2dmh</link>
      <guid>https://dev.to/gracie254/event-emitters-in-node-js-2dmh</guid>
      <description>&lt;p&gt;EventEmitter is a class of the event module that can be used to raise and handle custom events. This module facilitates communication between objects in Node and is at the core of asynchronous event-driven architecture. This class has properties like on which is used to bind functions on events and emit which fires events.&lt;/p&gt;

&lt;h2&gt;
  
  
  emit() function
&lt;/h2&gt;

&lt;p&gt;this function is used to create an event and it takes one parameter which is the event name.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const events = require('events')

const eventEmitter = new events.EventEmitter()
eventEmitter.emit('nameOfEvent')
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  on() function
&lt;/h2&gt;

&lt;p&gt;This function binds an event with an event handler JavaScript function and it takes two parameters: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;name of event to bind&lt;/li&gt;
&lt;li&gt;EventHandler Function
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// we require the module events
const EventEmitter = require('events')

const customEmitter = new EventEmitter()
// the event _myEvent_ is bound to the function parameter
customEmitter.on('myEvent', (name, age ) =&amp;gt; {
   console.log(`My name is ${name} and I am ${age} years old`)
})
//myEvent is triggered
customEmitter.emit('myEvent', 'Grace', 22)

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

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>Async patterns in node js</title>
      <dc:creator>Grace Valerie Anyango</dc:creator>
      <pubDate>Thu, 30 Dec 2021 06:23:12 +0000</pubDate>
      <link>https://dev.to/gracie254/async-patterns-in-node-js-dmk</link>
      <guid>https://dev.to/gracie254/async-patterns-in-node-js-dmk</guid>
      <description>&lt;p&gt;A code in node js should be nonblocking to avoid halting the execution of lines of code ahead of it. Implementing functionality that could take time is done asynchronously in order to take the execution part of that function out of the main loop.&lt;br&gt;
There are three asynchronous patterns:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Callbacks&lt;/strong&gt;&lt;br&gt;
A callback is a function that is passed as an argument to another function and should be invoked whenever the asynchronous work is finished.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const { readFile } = require('fs')
console.log('start of program')
readFile('./myFile.txt', 'utf-8', (err, myfile) =&amp;gt; {
  if(err) {
console.log(err)
    return
}
console.log(myFile)
})
console.log('End of program')
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;the readfile function is asynchronous and therefore the program will move on to the next instruction while the function continues to run in the background.&lt;br&gt;
The output is as follows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;start of program
End of program
content inside the text file myFile
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Promises 
The promise object represents the eventual completion of async operations, regardless of the results(success or failure). It is also defined as a proxy for a value not necessarily known at the time it is created.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const { readFile } = require('fs')
const readMyFile = (path) =&amp;gt; new Promise((resolve, reject) =&amp;gt; {
  readFile(path, 'utf-8', (err, context) =&amp;gt; {
    if (err) {
      console.log(err)
      return
}
else {
   console.log(context)
}

})
})
readMyFile('./files/myFile.txt')
.then((result) =&amp;gt; console.log(result)
.catch((err) =&amp;gt; console.log(err)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A promise can exist in either one of these states:&lt;br&gt;
&lt;em&gt;&lt;strong&gt;Pending&lt;/strong&gt;&lt;/em&gt; - this is the initial state where it is neither resolved or rejected.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Fulfilled&lt;/strong&gt;&lt;/em&gt; - The promise will be in this state if the operation has been completed successfully.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Rejected&lt;/strong&gt;&lt;/em&gt; - the state when the operation has failed.&lt;/p&gt;
&lt;h2&gt;
  
  
  Promisify
&lt;/h2&gt;

&lt;p&gt;This function is defined in Node's util module as a standard and its goal is to convert callback to promise.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const { readFile } = require('fs')
const util = require('util')
const readMyFile = util.promisify(readFile)

async function start() {
  try {
      const myText = await readMyFile('./myFile', 'utf-8')
      console.log(myText)
   }
 catch (error) {
   console.log(error)
   }
}

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

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Async / Await
A method in which the parent method is declared with the async keyword and inside it await keyword is permitted.&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
    <item>
      <title>Components of machine learning</title>
      <dc:creator>Grace Valerie Anyango</dc:creator>
      <pubDate>Wed, 29 Dec 2021 10:43:39 +0000</pubDate>
      <link>https://dev.to/gracie254/components-of-machine-learning-2nmj</link>
      <guid>https://dev.to/gracie254/components-of-machine-learning-2nmj</guid>
      <description>&lt;p&gt;The three main components of machine learning include :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Machine Learning Model&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Model training algorithm&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Model Inference Algorithm&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Machine learning model
&lt;/h2&gt;

&lt;p&gt;This is a file that has been trained to recognize a certain type of pattern on a dataset and providing it an algorithm that it can use to solve different problems.&lt;br&gt;
The model can further be broken down into two subtypes: &lt;strong&gt;Supervised and Unsupervised Learning&lt;/strong&gt; .&lt;br&gt;
Machines are trained using labelled data therefore the datasets contain both input and output parameters.&lt;/p&gt;

&lt;h3&gt;
  
  
  Types of supervised learning
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Continuous label (Regression)&lt;br&gt;
This technique consists of mathematical methods which help in finding the correlation between variables and enables us to predict the continuous output variable based on one or more predictor variables.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Categorical label (Classification)&lt;br&gt;
This technique allows a program to learn from the given dataset or observations and then classify new observations into a number of groups.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;other types include :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Naive Bayesian Model&lt;/li&gt;
&lt;li&gt;Random Forest Model&lt;/li&gt;
&lt;li&gt;Neural Networks&lt;/li&gt;
&lt;li&gt;Support Vector Machines&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Unsupervised Learning
&lt;/h3&gt;

&lt;p&gt;This technique has input data but no corresponding outputs. The goal is to find the underlying structure of a dataset and group it according to similarities, then represent that dataset in a compressed format.&lt;br&gt;
&lt;u&gt;Types&lt;/u&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Clustering
This is the process of grouping similar data together. The aim is to find similarities in the data point and group similar data points together.&lt;/li&gt;
&lt;li&gt;Association
This technique checks for the dependency of one item on another data item and maps accordingly so that it can be more profitable.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Model training algorithm
&lt;/h2&gt;

&lt;p&gt;the algorithm is provided with training data which must contain the correct answer. it finds patterns in the training data that map the input data algorithm to the target and it outputs an ML model that captures these patterns.&lt;/p&gt;

&lt;h2&gt;
  
  
  Model Inference Algorithm
&lt;/h2&gt;

&lt;p&gt;Using a trained model to generate predictions.&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>ai</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Event loop in node js</title>
      <dc:creator>Grace Valerie Anyango</dc:creator>
      <pubDate>Tue, 28 Dec 2021 15:53:08 +0000</pubDate>
      <link>https://dev.to/gracie254/event-loop-in-node-js-5b45</link>
      <guid>https://dev.to/gracie254/event-loop-in-node-js-5b45</guid>
      <description>&lt;h2&gt;
  
  
  What is an event loop?
&lt;/h2&gt;

&lt;p&gt;JavaScript code runs in the sequence it is defined since it is synchronous. &lt;br&gt;
The event loop is what allows node js to perform non-blocking I/O operations(operations that allow a single process to perform multiple requests at the same time) despite the fact that JavaScript is single-threaded.&lt;/p&gt;
&lt;h3&gt;
  
  
  How it works
&lt;/h3&gt;

&lt;p&gt;The node js environment is made up of input/output terminals, the Call stack, node APIs and the Callback queue. if your program is synchronous you will only need to focus on the call stack.&lt;/p&gt;

&lt;p&gt;With the non-blocking behavior, all the synchronous events are executed first while the asynchronous functions are processed in the background while waiting to be executed.&lt;/p&gt;

&lt;p&gt;Suppose we have a program&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;console.log('Hello, I am first')
setTimeout(()=&amp;gt;{
 console.log('Finally, I get executed')
}, 0)
console.log('Let me wait for asynchronous function')

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

&lt;/div&gt;



&lt;p&gt;The output is as follows&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Hello, I am first
Let me wait for asynchronous function
Finally, I get executed
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When the program starts executing, an anonymous main() function is usually added to the call stack which wraps up the code. The first and last console.log are pushed to the call stack and executed in the output terminal since they are synchronous. The setTimeout function is asynchronous and is therefore not processed in the call stack but is added to the Node API where its events are registered and a callback function is waiting to be processed in the background.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;u&gt;Phases of the event loop&lt;/u&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hS87f4eO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c3z3rhs5iy1ljtpxebvo.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hS87f4eO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c3z3rhs5iy1ljtpxebvo.PNG" alt="Phases of the event loop diagram" width="554" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Timers&lt;br&gt;
These are functions that execute callbacks after a set period of time. This module has two global functions, setInterval() and setTimeout() where you can define code that will execute after a certain time period.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I/O Callbacks&lt;br&gt;
This phase allow for non-blocking I/O operations. Asynchronous I/O requests are recorded in the queue so that the main call stack can continue its operations.&lt;br&gt;
code example&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const {readFile} = require('fs')
console.log('first task has started')
// checking the file path and returning context of the text file
readFile('./myFile/text.txt', 'utf8',(err,result) =&amp;gt; {
if (err) {
  console.log(err)
  return 
}
console.log(result)
console.log('First task has been completed')
})
console.log('starting my second task)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The output is as follows&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;first task has started
starting my second task
I am content inside the text file
First task has been completed
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Idle&lt;br&gt;
This is the phase where the event loop performs internal operations of any callbacks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Poll phase&lt;br&gt;
All JavaScript code written is executed from the beginning to end. The event loop manages the I/O workload, calling the functions in the queue until the queue is empty.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;setImmediate()&lt;br&gt;
This is a special timer in node js which runs as soon as the poll phase becomes idle.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Close events &lt;br&gt;
Is used to clean the state of the application when the event loop is wrapping up one cycle and is ready to move on to the next one.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>node</category>
      <category>eventloop</category>
      <category>synchronous</category>
    </item>
    <item>
      <title>Machine Learning Introduction</title>
      <dc:creator>Grace Valerie Anyango</dc:creator>
      <pubDate>Mon, 27 Dec 2021 06:07:24 +0000</pubDate>
      <link>https://dev.to/gracie254/machine-learning-introduction-4daj</link>
      <guid>https://dev.to/gracie254/machine-learning-introduction-4daj</guid>
      <description>&lt;h3&gt;
  
  
  How Artificial Intelligence is related to Machine Learning
&lt;/h3&gt;

&lt;p&gt;AI is a field of computer science that is focused on building smart machines to perform activities using human-like intelligence.&lt;br&gt;
Machine learning is a branch of AI which allows computers to automatically learn and improve their accuracy using data and algorithms to imitate how humans learn without needing to be programmed.&lt;/p&gt;

&lt;h3&gt;
  
  
  Methods used in Machine Learning
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Supervised Learning
In this machine learning technique, every training sample from the dataset has a corresponding label or an output value associated with it.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Unsupervised Learning&lt;br&gt;
The training samples are not labeled. Machine learning algorithms are therefore used to analyze the unlabeled data and eventually discover the underlying patterns of data without needing human intervention.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Semi-supervised Learning&lt;br&gt;
The training uses a smaller labeled data set to guide classification and feature extraction from a larger, unlabeled data set.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reinforcement Learning&lt;br&gt;
The model learns what actions to take through trial and error.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Traditional Algorithm Models Vs Machine Learning
&lt;/h4&gt;

&lt;p&gt;Traditional models solve a problem by taking the problem and a program e.g. algorithm or code as inputs for the model.&lt;br&gt;
In Machine learning we solve or predict problems by using historical data and desired results for the model.&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>ai</category>
      <category>aws</category>
      <category>beginners</category>
    </item>
    <item>
      <title>HTML AND CSS GUIDE</title>
      <dc:creator>Grace Valerie Anyango</dc:creator>
      <pubDate>Mon, 29 Nov 2021 20:50:53 +0000</pubDate>
      <link>https://dev.to/gracie254/html-and-css-guide-1n3h</link>
      <guid>https://dev.to/gracie254/html-and-css-guide-1n3h</guid>
      <description>&lt;p&gt;This guide is a walkthrough on how to create a simple website using html and CSS. I will list the steps to follow and explain them.&lt;br&gt;
&lt;strong&gt;What is html&lt;/strong&gt;&lt;br&gt;
html is a markup language that is considered as a building block for the web.&lt;br&gt;
Designing the layout of your website using html&lt;br&gt;
First step is to instantiate your website as DOCTYPE html, wrap all elements inside a html tag define the basic layout with a head and body tag.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;/body
&amp;lt;/html&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Most html tags require an opening and closing tag with a few exceptions such as img tag which can otherwise be self closing.&lt;br&gt;
head tag&lt;br&gt;
Inside the head tag we can add external links &lt;br&gt;
&lt;strong&gt;Semantic HTML&lt;/strong&gt;&lt;br&gt;
This concept introduces meaning to the code for both the developer and the browser.&lt;br&gt;
The following semantic elements can be used in a web browser as shown &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fKwDk3L6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r3lfng7m5ob57at65lt5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fKwDk3L6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r3lfng7m5ob57at65lt5.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;br&gt;
The section element defines a specific section of the html document while the article element specifies independent, self-contained content. These two elements can be interchangeable be nested inside the other.&lt;br&gt;
The nav element is intended for a major block of navigation links e.g&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;nav&amp;gt;
&amp;lt;ul&amp;gt;
&amp;lt;li&amp;gt;&amp;lt;a href="home"&amp;gt;Home&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;li&amp;gt;&amp;lt;a href="about"&amp;gt;About&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;li&amp;gt;&amp;lt;a href="contact"&amp;gt;Contact&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;
&amp;lt;/nav&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;href is a html attribute used to reference the location of the element&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;details&amp;gt; and &amp;lt;summary&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;these semantic elements act as an accordion which is a way to fill lengthy content is small space&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;details open&amp;gt;
  &amp;lt;summary&amp;gt;Tutorial&amp;lt;/summary&amp;gt;
  &amp;lt;p&amp;gt;Extensive HTML and CSS documentation and tutorial&amp;lt;/p&amp;gt;
&amp;lt;/details&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;CSS&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;css specificity&lt;/em&gt;&lt;br&gt;
This is how the browser the most specific rules that should be applied to a html element when there are two or more conflicting rules.&lt;br&gt;
specificity based on selector type&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Universal Selector(*)&lt;br&gt;
this selector has no specificity and therefore any rule that follows will override it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Element / pseudo-element selector&lt;br&gt;
(div, ::selection)&lt;br&gt;
has slightly higher specificity and can only override the universal selector.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Class / pseudo-class selector&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;ID selector&lt;br&gt;
-Inline style attribute &lt;br&gt;
this specificity will override ant CSS rule and take effect. It has the highest specificity.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  CSS Units
&lt;/h2&gt;

&lt;p&gt;They are divided into two: absolute and relative units&lt;br&gt;
&lt;em&gt;Absolute units&lt;/em&gt; are fixed values therefore they appear exactly as their value on every display screen size.&lt;br&gt;
Example units include: cm, pt, px, pc, mm&lt;br&gt;
Relative units &lt;br&gt;
they are highly preferable for responsive web design over absolute units because of their flexibility.&lt;br&gt;
&lt;em&gt;em vs rem&lt;/em&gt;&lt;br&gt;
em unit is assigned depending on the font size of the parent element while rem is dependent on the root element's font size.&lt;br&gt;
use CSS columns to set the number and widths oc columns in a single declaration. &lt;/p&gt;

&lt;p&gt;**&lt;/p&gt;
&lt;h2&gt;
  
  
  Css Animations
&lt;/h2&gt;

&lt;p&gt;**&lt;br&gt;
Define the animation css styles within the @keyframes which will gradually transform the element to the animation style.&lt;br&gt;
The keyframe name is then bounded to a CSS element for the animation to work&lt;br&gt;
Animations can also be defined within svg's as follows&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div class="pattern1"&amp;gt;
    &amp;lt;svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg"&amp;gt;
        &amp;lt;defs&amp;gt;
            &amp;lt;pattern id="polygons" x="0" y="0" width="28" height="49" patternUnits="userSpaceOnUse"&amp;gt;
                &amp;lt;path id="flipper" style="fill:#ff003c;fill-rule:evenodd; fill-opacity:0.9; fill-rule:nonzero;" d="M13.99 9.25l13 7.5v15l-13 7.5L1 31.75v-15l12.99-7.5zM3 17.9v12.7l10.99 6.34 11-6.35V17.9l-11-6.34L3 17.9zM0 15l12.98-7.5V0h-2v6.35L0 12.69v2.3zm0 18.5L12.98 41v8h-2v-6.85L0 35.81v-2.3zM15 0v7.5L27.99 15H28v-2.31h-.01L17 6.35V0h-2zm0 49v-8l12.99-7.5H28v2.31h-.01L17 42.15V49h-2z"&amp;gt; &amp;lt;/path&amp;gt;
            &amp;lt;/pattern&amp;gt;
        &amp;lt;/defs&amp;gt;
        &amp;lt;rect x="0" y="0" width="100%" height="100%" fill="url(#polygons)"&amp;gt;&amp;lt;/rect&amp;gt;
        &amp;lt;animate xlink:href="#flipper" attributeName="fill" dur="20s" keyTimes="0; .15; .3; .45; .6; .75; .9; 1" keySplines=".42 0 1 1;
                0 0 .59 1;
                .42 0 1 1;
                0 0 .59 1;
                .42 0 1 1;
                0 0 .59 1;
                .42 0 1 1;
                0 0 .59 1;" repeatCount="indefinite" values="#ff003c; #ffae00; #ff6200; #00e6ff; #ff006f; #f700ff; #7b00ff; #0011ff;" /&amp;gt;


    &amp;lt;/svg&amp;gt;
    &amp;lt;div class="glass"&amp;gt;&amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;`&lt;/p&gt;

&lt;p&gt;:root {&lt;br&gt;
    --polygonColor: #0015ff;&lt;br&gt;
}&lt;br&gt;
body,&lt;br&gt;
html {&lt;br&gt;
    height: 100%;&lt;br&gt;
    display: grid;&lt;br&gt;
    background-color: #fff;&lt;br&gt;
    overflow: hidden;&lt;br&gt;
    background-image: radial-gradient(&lt;br&gt;
        circle closest-corner at center,&lt;br&gt;
        hsl(11, 10%, 50%),&lt;br&gt;
        hsl(3, 8%, 30%),&lt;br&gt;
        hsl(160, 0%, 0%)&lt;br&gt;
    );&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;.pattern1 {&lt;br&gt;
    margin: auto;&lt;br&gt;
    background-color: #151515;&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;width: 40rem;
height: 20rem;
box-shadow: 0 0 1rem 0 rgba(0, 0, 0, 0.2);
border-radius: 5px;
background-color: rgba(255, 255, 255, 0.15);

backdrop-filter: blur(5px);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;}&lt;/p&gt;

&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;/div&amp;gt;`
&lt;/code&gt;&lt;/pre&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Introduction to Version Control Systems</title>
      <dc:creator>Grace Valerie Anyango</dc:creator>
      <pubDate>Mon, 29 Nov 2021 14:21:38 +0000</pubDate>
      <link>https://dev.to/gracie254/introduction-to-version-control-systems-44ob</link>
      <guid>https://dev.to/gracie254/introduction-to-version-control-systems-44ob</guid>
      <description>&lt;p&gt;A &lt;strong&gt;version control system&lt;/strong&gt; is a software tool that helps the developer team to make changes and track the codebase. The codebase is simply the source code collection that was used to build a particular system or application. Version control is important because it helps the developer team to manage changes made to the source code and keep record of who made the changes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Types of Version Control Systems
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;- Local Version Control Systems&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
This system keeps track of files within your local computer. Any changes made to a particular file is stored as a patch and every patch set will only contain the changes made to the file since its last version.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;- Centralized Version Control System&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
A single repository contains all the versioned files where developers can commit changes to files. this system allows for collaboration among developers however the repository is the single point of failure which can affect other developer's working on it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;- Distributed Version Control System&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
This system contains multiple repositories and each user has their own working copy.&lt;/p&gt;

&lt;h2&gt;
  
  
  ** Benefits of Version Control**
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Distributed version control systems enabled individuals from around the world to make contributions to projects remotely and make collaborations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ability to track changes made to software and connect it to software testing tools.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;History logs of every file where when and who makes changes are tracked to enable future debugging of the system.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Users can have multiple backups locally therefore preventing loss of data in case of a system failure.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Best Version Control Systems&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Although there are many systems in the marketplace, a few of them standout and are mostly used by developers. They include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;GitHub&lt;/em&gt;&lt;br&gt;
Developers host their projects on this platform in repositories. They can easily track code changes and do rollbacks on app versions when necessary.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;GitLab&lt;/em&gt;&lt;br&gt;
It has continuous integration capabilities which you can use to perform automatic tests and deliver code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Perfoce&lt;/em&gt;&lt;br&gt;
it has a system known as HelixCore which comes with a single platform for seamless team collaboration,  and support for both centralized and distributed development workflows.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;BeanStalk&lt;/em&gt;&lt;br&gt;
This software is ideal for remote workers as it is based on browser and cloud, allowing users to code, commit, and deploy on the browser. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>github</category>
      <category>versioncontrol</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
